Go to file
Lior Halphon 833cd88aea Allow compilation with precompiled boot ROMs. 2016-08-27 01:30:11 +03:00
BootROMs Updated DMG boot ROM to finish with the same register values as the original boot ROM 2016-08-06 19:11:54 +03:00
Cocoa Cocoa port now remembers the mute switch 2016-08-21 21:58:33 +03:00
Core Support for RTC latching. Fixes #4. 2016-08-21 22:33:57 +03:00
HexFiend Memory viewer now has a Goto command, different memory space modes, and allows viewing/editing specific banks 2016-08-19 14:54:54 +03:00
SDL Initial Windows support 2016-08-20 17:51:17 +03:00
Shaders Fixed smooth bilinear filter 2016-06-18 02:05:52 +03:00
Windows Added icon and version information to Windows port 2016-08-20 22:59:03 +03:00
.gitignore Initial public commit 2016-04-01 21:27:01 +03:00
CHANGES.md Updated change log and incremented version to 0.6 2016-08-06 17:16:39 +03:00
LICENSE Added license and copyright 2016-04-01 22:13:05 +03:00
Makefile Allow compilation with precompiled boot ROMs. 2016-08-27 01:30:11 +03:00
README.md Allow compilation with precompiled boot ROMs. 2016-08-27 01:30:11 +03:00
SCALING.md Updated SCALING.md 2016-06-18 00:01:51 +03:00

README.md

SameBoy

SameBoy is an open source Gameboy (DMG) and Gameboy Color (CGB) emulator, written in portable C. It has a native Cocoa frontend for OS X, and an incomplete experimental SDL frontend for other operating systems. It also includes a text-based debugger with an expression evaluator.

Features

Features common to both Cocoa and SDL versions:

  • Supports Gameboy (DMG) and Gameboy Color (CGB) emulation
  • Lets you choose the model you want to emulate regardless of ROM
  • Includes open source DMG and CGB boot ROMs:
    • Complete support for (and documentation of) all game-specific palettes in the CGB boot ROM, for accurate emulation of Gameboy games on a Gameboy Color
    • Supports manual palette selection with key combinations, with 4 additional new palettes (A + B + direction)
    • Supports palette selection in a CGB game, forcing it to run in 'paletted' DMG mode, if ROM allows doing so.
    • Support for games with a non-Nintendo logo in the header
    • No long animation in the DMG boot
  • Has a text-based debugger with an expression evaluator
  • Emulates PCM_12 and PCM_34 registers
  • Emulates LCD timing effects, supporting the Demotronic trick, GBVideoPlayer and other tech demos
  • Accurate instruction and memory timings
  • Real time clock emulation

Features currently supported only with the Cocoa version:

  • Native Cocoa interface, with support for all system-wide features, such as drag-and-drop and smart titlebars
  • Retina display support, allowing a wider range of scaling factors without artifacts
  • High quality 96KHz audio
  • Battery save support
  • Save states
  • Optional frame blending
  • Several scaling algorithms (Including exclusive algorithms like OmniScale and Anti-aliased Scale2x)

Compatibility

SameBoy passes many of blargg's test ROMs, as well as most of mooneye-gb's acceptance tests. SameBoy should work with most games and demos, please report any broken ROM.

Compilation

SameBoy requires the following tools and libraries to build:

  • clang
  • make
  • Cocoa port: OS X SDK and Xcode command line tools
  • SDL port: SDL.framework (OS X) or libsdl (Other platforms)
  • rgbds, for boot ROM compilation

On Windows, SameBoy also requires:

  • Visual Studio (For headers, etc.)
  • GnuWin
  • Running vcvars32 before running make. Make sure all required tools and libraries are in %PATH% and %lib%, repsectively.

To compile, simply run make. The targets are cocoa (Default for OS X), sdl (Default for everything else) and bootroms. You may also specify CONF=debug (default) or CONF=release to control optimization and symbols, and specify BOOTROMS_DIR=... to a directory containing precomiled dmg_boot.bin and cgb_boot.bin files, otherwise the build system will compile and use SameBoy's own boot ROMs.

SameBoy was compiled and tested on OS X, Ubuntu and Windows 7 32-bit.