gnuboy is a portable emulator for the Game Boy and Game Boy Color video game systems. As the 'gnu' in its name would imply, gnuboy is free software licensed under the GNU General Public License, however, it is not part of the GNU project. Versions are available for DOS, Windows, Linux, BSD, Unix, BeOS, and PocketPC, using the SDL library for cross-platform input, display, and sound support. It is written in C with the option of an optimised x86 assembly language core for better performance on slow hardware.
The core of gnuboy contains an emulation of the GB/GBC's Z80 CPU, its display hardware, and its simple sound system. This basic emulation is said to run at full speed on a Pentium-75, although I've never tested it on hardware that slow. gnuboy is accurate enough that only seven games are known to have glitches with the most current version, of which only two prevent the game from running, and of which four are purely cosmetic and do not affect gameplay. Input to gnuboy is done either with the keyboard or through SDL's joystick/gamepad support.
The main unemulated Game Boy Color feature is Link Cable support. The gnuboy authors do not have enough of the technical details to properly implement this feature. Similarly, the GBC IR port is unemulated, but given its lack of use it hardly seems worth the trouble. Also, gnuboy does not support Super Game Boy extensions, but then again neither do the Game Boy Color, Game Boy Advance, and Game Boy Player.
Unlike many other emulators, gnuboy does not include an interpolation library such as 2xSaI or Super Eagle. This is because the gnuboy developers do not believe that their licences are compatible with the GNU GPL. Additionally, the graphics on Game Boy systems are so simple that they may be beyond the point of diminishing returns for these interpolation engines. Similarly, there is no support in gnuboy for compressed ROM files, though once again the specifics of Game Boy emulation are such that this may not be worth implementing.
No GUI is built into gnuboy, even on Windows where it is considered essential to provide one. The gnuboy coders believe it is best for the code to be as simple and uncluttered as possible, providing a rich enough command line interface for useful front end software to be written. This view is common in emulators on Linux/Unix platforms but it is rarely applied across platforms. gnuboy configuration is done through a simple and well-documented text file, gnuboy.rc, as is traditional on the Unix platform.
Of the emulators available for Game Boy, gnuboy is one of the newest. Its first public release was in February 2001. Version 1.0 was released in June 2001, and as of that release it was very complete and stable. As such, there hasn't been a new release of gnuboy since version 1.0.3 in fall of 2001, with the general interest of the emulation community transferring to the Game Boy Advance.
The main developers of gnuboy are Laguna and Gilgamesh, and the project website is http://gnuboy.unix-fu.org/ . gnuboy is available in several Linux distributions, including Debian and Gentoo.
This writeup is copyright 2004 D.G. Roberge and is released under the Creative Commons Attribution-NonCommercial-ShareAlike licence. Details can be found at http://creativecommons.org/licenses/by-nc-sa/2.0/ .