This version is backwards compatible with save states from SameBoy 0.11.x.

New/Improved Features

  • An experimental support for emulating CGB-CPU C is now available in the Cocoa port. This is still experimental and does not accurately represent all differences between CGB-CPU E and CGB-CPU C yet
  • The Libretro port no longer restarts the core after changes to the high-pass filter or color correction
  • The SDL port can now start in fullscreen mode via a command line argument
  • High level emulation of Super Game Boy:
    • Supports game colorization
    • Supports borders, including correct emulation of the fade animations and borders that obscure parts of the Game Boy display window
    • Up to 4-player multiplayer (Currently only in the Cocoa and Libretro ports)
    • Can choose between Super Game Boy (NTSC), Super Game Boy (PAL) and Super Game Boy 2, with correct CPU speed emulation
    • All models include open source boot ROMs, just like previously supported models
    • Includes a default border for games without SGB support
    • Includes a boot animation
    • Accurate emulation of cases where the internal frame buffer loses sync with the SNES/SFC side
  • New CRT display filter
  • New preference panel in the Cocoa port
  • Minor visual improvements to the icon
  • Many performance all around the core
  • The debugger now includes jump-to breakpoints
  • New APU debugger commands
  • The SDL port now has mouse support
  • The SDL port now has an “Open ROM” dialog window, in addition to the previously available drag and drop support
  • The Cocoa and SDL ports now have better support for sub-frame input accuracy
  • The VRAM display window in the Cocoa port can now display SCX and SCY on the tilemap
  • Redesigned audio API that should improve audio quality in all ports

Accuracy Improvements/Fixes

  • WRAM, VRAM, and other types of memory are now realistically initialized to random values. The randomization patterns vary across emulated models and revisions. This fixes several games that rely on non-zero values on boot
  • Slightly more accurate emulation of the undocumented $FF4C register, which controls DMG mode on CGBs
  • Fixed an APU regression where the noise channel’s volume envelope ran too fast
  • More accurate emulation of analog APU characteristics
  • Fixed a CGB boot ROM bug that made some games boot with incorrect palettes
  • Fixed incorrect emulation of echo RAM
  • Fixed a very rare edge case when an interrupt occurs while the stack points to $FF11
  • Correct emulation of the time required to switch the CPU speed
  • Correct emulation of CGB palette accessibility in different PPU timings, fixes Lego Racers
  • Other accuracy improvements to OAM and VRAM accessibility
  • The serial registers now behave realistically by working with bits instead of bytes
  • More accurate initial RAM and VRAM values when using the built in CGB boot ROM
  • Accurate emulation of AGB audio mixing, which is different from older models
  • Fixed the behavior of the wave channel’s first sample playback, fixes buzzing sounds on LSDJ and several games
  • Most aspects of STOP mode are now accurately emulated
  • Fixed a bug where initial register values were incorrect when selecting a palette for a DMG game in the built in CGB boot ROM
  • Fixed incorrect emulation of the Background and Window enable bit in LCDC

Bug Fixes

  • Fixed a bug where the SDL port would not recognize joypads if started directly to a ROM
  • Fixed a bug where the Quick Look previewer would show glitched thumbnails for DMG games
  • Fixed a regression that made the Cocoa port unable to display anything on Macs not supporting Metal
  • Fixed a bug where modifying RTC data could corrupt MBC RAM data
  • Fixed a bug where CGB save states were significantly larger than they should have been, older save states are converted
  • Fixed several bugs in expression parsing in the debugger
  • Work around a bug where some Windows 10 machines using Intel HD Graphics had unresponsive UI in the SDL port
  • Fixed a bug where the D-Pad did not work on several gamepads in the Cocoa port
  • Fixed a bug where the gamepad D-Pad had unexpected behaviors in the menus of the SDL port
  • Fixed a bug where underclocking slowed down the core to ~40% of its speed instead of an exact 50%

Misc Internal Changes

  • Rename all Z80 instances to SM83, which is most likely the name of the CPU core used in the Game Boy
  • Size optimization in the CGB boot ROM