0.13 / 31-05-2020

SameBoy

competition

SameBoy is a user friendly Game Boy and Game Boy Color emulator that's very accurate and includes a wide range of powerful debugging features. In addition to accuracy and developer capabilities, SameBoy has all the features one would expect from an emulator – from save states to scaling filters.

PerformancePerformance
AccuracyAccuracy
FeaturesFeatures

Windows: Doesn't mention minimum

Linux: Unix-like systems

Mac: Doesn't mention minimum

Most Recent Changes

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


New/Improved Features

  • When emulating a Game Boy, you can now select out of 4 different palettes

  • New Monochrome LCD scaling filter

  • It is now possible to display Super Game Boy, or a built-in default border, even when emulating different models

  • Improvements to the built-in boot ROMs; the DMG boot ROM has a new animation, and the CGB boot ROM now features an anti-aliased logo

  • Gamma correction added to the CRT scaling filter

  • Add “Reduce Contrast” as an additional color correction mode

  • Optional more accurate frame blending mode, emulating the scanline-like appearance of actual Game Boy displays

  • The next debugger command now skips over HALT

  • The registers debugger command now display IME as well

  • Added volume control to the SDL frontend

  • The SDL frontend will now load and save “prefs.bin” relative to the binary if such file exists

  • The sidebar in the Cocoa debugger is now resizable and collapsable

  • The Cocoa frontend now supports cheats

  • Added support to ISX files, used by the official toolchain

  • Rewritten and improved controller support in Cocoa, featuring rumble, player LEDs, and analog controls for turbo and slow motion. Controller support:
    GameCube adapters (Both official and PC adapters): Full support, including automatic mappings, multiplayer, analog controls, and rumbleUnofficial adapters in PC mode support analog rumble, as opposed to PWM binary rumble; the use of PC mode is recommended
    Generic “Twin USB” DualShock 2 PC adapter: Automatic mapping, multiplayer support
    Switch Pro Controller: Full support, including automatic mappings, rumble, and player LEDs; via both USB and Bluetooth
    DualShock 3: Full support, including automatic mappings, rumble, player LEDs, and analog controls; via both USB and BluetoothSome Macs seem to be unable to communicate LED and rumble information to DualShock 3 controllers; the use of USB for this controller is recommended
    Generic controllers: Basic functionality, may need to be manually remapped in settings
    Support for more controllers will come in future releases

  • Optionally add rumble support to all games, even those without a Rumble Pak, in all frontendsSDL rumble support varies between operating systems and SDL versions

  • The debugger now allows more than one symbol at the same address

  • Added the softbreak debugger command to enable/disable software breakpoints (ld b, b)

  • The SDL debugger now always outputs “>” when it’s waiting for an input

  • The SDL debugger allows the use of the magic binary sequence "\x03\x0a" to break the debugger from stdin in async-capable platforms


Accuracy Improvements/Fixes

  • Fixed a regression bug that made the first frame blank instead of repeated on the Game Boy Color

  • Fixed an APU sequencer edge case

  • Fixed a bug affecting HDMA timing

  • Color correction is now more accurate

  • Correct emulation of the OPRI register

  • More accurate emulation of STOP mode

  • More accurate emulation of LCDC write conflicts; although individual units may behave differently

  • Emulation of cases where PPU object fetched are aborted in the middle

  • Correct emulation of changing object height during fetch

  • More accurate emulation of the PPU fetcher’s timings

  • Accurate emulation of SCX’s upper 5 bits changing mid-line

  • Rewritten window implementation, which is much more accurate now, including the various timing scenarios

  • More accurate emulation of background FIFO push timings

  • Emulate some of the cases where the PPU and LCD desync

  • Accurate emulation of tilemap advance timings

  • Implement a missing SGB command (ATTR_CHR)

  • More accurate MBC2 emulation

  • More accurate MBC3 emulation and proper MBC30 support

  • Correct emulation of PCM12 and PCM34 reads when emulating CGB-C

  • Improved HuC-1 emulation

  • HuC-3 emulation, including RTC and alarm clock emulationAlarm clock emulation is only supported in the Cocoa frontend

  • Partial emulation of glitched VRAM reads that happen right after mode 3


Bug Fixes

  • Fixed a bug with scrolling menus in the SDL frontend when emulating a Super Game Boy

  • Fixed cases where the Cocoa frontend froze

  • Fixed a bug where an incorrect minimum window size was enforced on the Cocoa frontend

  • Assignments to 16-bit expression in the debugger is now working correctly

  • Fixed operator priorities in the debugger

  • Fixed a debugger parsing bug

  • Fixed compatibility with older macOS versions in the Cocoa version, restoring support for 10.9 (Mavericks) and newer


Misc Internal Changes

  • Added per-commit automatic GitHub builds, with basic sanity tests

  • When building the SDL frontend on macOS, the Brew version of SDL2 is used

  • Fixed various compilation errors with GCC

  • Make the libretro frontend compile without warnings

  • HuC-1 and HuC-3 IR are emulated now, but this is not currently supported in any frontend