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.
Features common to both Cocoa and SDL versions:
Supports Game Boy (DMG) and Game Boy Color (CGB) emulation
Lets you choose the model you want to emulate regardless of ROM
High quality 96KHz audio
Battery save support
Save states
Advanced text-based debugger with an expression evaluator, disassembler, conditional breakpoints, conditional watchpoints, backtracing and other features
Extremely high accuracy
Emulates PCM_12 and PCM_34 registers
T-cycle accurate emulation of LCD timing effects, supporting the Demotronic trick, Prehistorik Man, GBVideoPlayer and other tech demos
Real time clock emulation
Retina/High DPI display support, allowing a wider range of scaling factors without artifacts
Optional frame blending (Requires OpenGL 3.2 or later)
Several scaling algorithms (Including exclusive algorithms like OmniScale and Anti-aliased Scale2x; Requires OpenGL 3.2 or later or Metal)
What's new in 1.0.4
This version is backwards compatible with save states from SameBoy 0.14.3 and newer, as well as save states from any BESS compliant emulator New/Improved Features - The libretro core now supports API extensions to retrieve additional metadata and create more portable battery save files - The iOS frontend has been updated with improved iOS 27 support - iPhone Duo support was added to the iOS frontend - The CRT scaling filter has been updated with an improved look - A new Pixelated/Sharp Bilinear scaling filter - This new filter is now the default filter in the Cocoa and SDL frontends - VFS support was added to the libretro core - Logging support was added to the libretro core - The libretro core will now render audio directly in the frontend's audio sample rate, if supported - Recording audio to a VGM log file is now possible in the Cocoa and SDL frontends - Minor UI improvements in the Cocoa frontend
Accuracy Improvements/Fixes
Workboy emulation now correctly reports the current weekday
Fixed a bug that made certain small ROM files be incorrectly detected as MMM01 cartridges
More accurate emulation of SGB command processing
Bug Fixes
Fixed a bug where periodic battery saves were performed from the wrong thread in the Cocoa frontend, causing debug builds to crash
Fixed controller hotkeys not working on newer macOS versions in the Cocoa frontend
Fixed a bug that prevented mapping Load State commands to a controller hotkey in the Cocoa frontend
The libretro core no longer reports an RTC memory region when emulating cartridges without an RTC
Fixed a bug that could trigger memory corruptions on x86-64 platforms when loading malformed save states
Improved sanitization of the Game Boy Printer save state data
Fixed an incorrectly label “Rumble strength” label in the Cocoa frontend
File dialogs on Windows now switch Full Screen mode off before they appear, working around bugs in Windows' windowing system
Fixed a bug that made the Joycon autopair button not work in the Cocoa frontend
Fixed a bug that made breakpoints created by the GB_debugger_execute_command API would not trigger under some conditions when using SameBoy as a library
Misc Internal Changes
The build system no longer prints ignored errors when building SameBoy without RGBDS installed if prebuilt boot ROMs are used
ibtool no longer silently fails when building the Cocoa or iOS frontends …