SameBoy is an open source Game Boy (DMG) and Game Boy Color (CGB) emulator, written in portable C. It has a native Cocoa frontend for macOS, an SDL frontend for other operating systems, and a libretro core. It also includes a text-based debugger with an expression evaluator. Visit the website.
Features common to both Cocoa and SDL versions:
Features currently supported only with the Cocoa version:
SameBoy passes all of blargg's test ROMs, all of mooneye-gb's tests (Some tests require the original boot ROMs), and all of Wilbert Pol's tests. SameBoy should work with most games and demos, please report any broken ROM. The latest results for SameBoy's automatic tester are available here.
SameBoy requires the following tools and libraries to build:
On Windows, SameBoy also requires:
To compile, simply run make
. The targets are cocoa
(Default for macOS), sdl
(Default for everything else), libretro
, bootroms
and tester
. You may also specify CONF=debug
(default), CONF=release
or CONF=native_release
to control optimization and symbols. native_release
is faster than release
, but is optimized to the host's CPU and therefore is not portable. You may set BOOTROMS_DIR=...
to a directory containing precompiled dmg_boot.bin
and cgb_boot.bin
files, otherwise the build system will compile and use SameBoy's own boot ROMs.
By default, the SDL port will look for resource files with a path relative to executable. If you are packaging SameBoy, you may wish to override this by setting the DATA_DIR
variable during compilation to the target path of the directory containing all files (apart from the executable, that's not necessary) from the build/bin/SDL
directory in the source tree. Make sure the variable ends with a /
character.
SameBoy was compiled and tested on macOS, Ubuntu and 32-bit Windows 7.