Go to file
Lior Halphon eefc998e43 Removed for loop in APU 2016-09-13 17:06:35 +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 shows the open dialog if no ROM is open. 2016-09-10 19:46:42 +03:00
Core Removed for loop in APU 2016-09-13 17:06:35 +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
Tester More false-negative fixes 2016-09-09 19:29:14 +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.7 2016-09-10 20:59:02 +03:00
LICENSE Added license and copyright 2016-04-01 22:13:05 +03:00
Makefile Updated change log and incremented version to 0.7 2016-09-10 20:59:02 +03:00
README.md Added link to automation results 2016-09-03 23:24:47 +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. The latest results for SameBoy's automatic tester are available here.

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.