gnuboy project is a portable multi-platform GPL'd GameBoy emulator.
gnuboy emulates the Color GameBoy handheld console in portable C, with interfaces for X11, Linux fbcon and svgalib, SDL, DOS, and Windows, with other ports planned in the future.
Compatibility with ROMs tested is around 99 percent, and all major hardware features except SGB extensions are supported.
With the optional optimized i386 assembly code, gnuboy can run at the full 60 FPS even on Pentium/75s and below.
No special libraries are required to compile, and gnuboy is known to build on many *nix variants.
Here are some key features of "gnuboy":
· Full GBZ80 instruction set.
· Scanline-based LCD engine.
· Ten sprites per scanline limit.
· Support for all CGB graphics extensions.
· Sprite DMA, HDMA, and GDMA.
· All four sound channels including digital samples.
· MBC1, MBC2, MBC3 (including clock), and MBC5 mappers.
· Wave pattern memory corruption when sound channel 3 is played.
· Pad, timer, divide counter, and other basic hardware registers.
· CGB double-speed CPU mode.