1.0 / 12-12-2024
SameBoy
Accuracy
Performance
Features
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, it has features such as Battery save support, states save states, scaling filters, multiple settings of high-pass audio filters, real time clock emulation and much more..!
Supports Game Boy (DMG), Game Boy Color (CGB) and GBC-Mode Game Boy Advance (AGB) emulation
Supports accurate high level emulation of Super Game Boy (SGB; NTSC and PAL) and Super Game Boy 2 (SGB2)
--
Windows: Doesn't mention minimum
Linux: Unix-like systems
Mac: Doesn't mention minimum
Most Recent Changes
--1.0--
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
SameBoy for watchOS is now available:Transfer ROMs and saves to and from the iOS frontend (App Store only)
Two customizable control schemes optimized for a small screen
Fast Forward and Rewind support
Settings and synced from the paired iPhone
Available to active supporters or via a one-time paymentThe Cocoa frontend is now digitally signed and notarized
SameBoy on Open Desktop platform can now generate thumbnails in file browsers via theXDG Thumbnails API
Improved AirPlay Mirroring support in the iOS frontend
Full-screen mode is now supported in the iOS frontend if a controller is used
The Cocoa and SDL frontends now support automatic model selection
Cheat Search is now available from the Cheats menu in the Cocoa frontend
The user interface for the Cheats window has been improved in the Cocoa frontend
The Cocoa and SDL frontends can now associate keyboard or joypad buttons with Rapid A or Rapid B
Game Boy Printer can now be emulated in the iOS frontend
Cheats can now be used in the iOS frontend
iCloud support was added to the iOS frontend (App Store release only)
The palette editor was added to the iOS frontend; it can now import, export and create its own palettes
7 new palettes were added to all frontends
The horizontal layout on iPhones that have a notch has been improved
3 new interface themes were added to the iOS frontend (App Store release only)
Improved ISX file compatibility
The Cocoa frontend and now select a monospace font to be used in the debugger and other development windows
The cartridge icons have been retouched and visually improved
The SDL frontend on Windows can now associate itself with supported ROM files, and provide them with icons
The box filter used for audio downsampling has been replaced with band-limited synthesis, vastly improving audio quality in all frontends
A warning is now shown when loading a ROM with a RAM size smaller than a single bank
iPhones that have x4 and x5 cameras can now pick a virtual x2 zoom factor when emulating a Game Boy Camera
Improved the OAM viewer in the Cocoa frontend so it correctly show objects even when the object palette is all set to a single color
Quick Look has been updated to support the newer thumbnailing and previewing APIs, required by macOS Sequoia
Accuracy Improvements/Fixes
Improvements to OAM accessibility timings
Improvements to PPU timings in CGB revisions 0 to CThese revisions are no longer marked as “Experimental”
More accurate emulation of SCX write conflicts on all models
More accurate PPU fetcher timings, fixes visual glitches in in “Mr. Chin’s Gourmet Paradise” and “Turrican”
Improved accuracy of cases where WX is 166 on pre-CGB models
Improved accuracy of window edge cases, including emulation of a newly-discovered CGB window glitch, and improved accuracy in double speed mode
Improved accuracy of LYC edge cases when emulating CGB revisions 0 to C in double speed mode
Improved emulation of LCDC OBJ_EN write conflicts
Bug Fixes
Fixed a bug that caused the Mute menu item to incorrectly appear marked while a ROM is paused in the Cocoa frontend
Fixed a bug that made keyboard shortcuts affect the wrong ROM in certain cases where multiple ROMs and debug windows were open in the Cocoa frontend
Fixed a bug that prevented macOS 10.13 and older from using Link Cable emulation in the Cocoa frontend
Fixed a bug that made importing palettes in the Cocoa frontend glitchy
Fixed a bug that made Game Boy Camera emulation in the Cocoa frontend sometime incorrectly stretch the camera input to incorrect aspect ratios
Fixed a bug that made audio output too low in the iOS frontend under certain conditions
Fixed a bug that caused the Library in the iOS frontend to crash if ROMs were modified in the Files app while it was open
Misc Internal Changes
The core now supports outputting 2MHz audio (without downsampling)
The Quick Look plugin and the main application now share the same code on disk, making the Cocoa frontend slightly smaller
Fixed a bug that caused certain APIs to return success values despite failing
Improved thread and context safety assertions in the core
make lib
builds SameBoy as a dynamic library now, in addition to the previously available static libraryThis includes Windows support, which remains unsupported for static libraries
Improvements to the core APIs. The API is now stable and documented
--0.16.7--
New/Improved Features
It is now possible to cycle between different main cameras on supported iPhone models in the iOS frontend
The iOS frontend can now directly open ZIP archives
ROMs can now be deleted from the iOS library using a context menu as well
The Homebrew Hub in the iOS frontend was moved to a tab
A new flat CRT filter is now available
Retouched iOS icons, including support for dark and tinted icons
Bug Fixes
Worked around a Wayland bug that sometimes caused SameBoy to crash it on exit
Fixed a bug caused turbo/slow-motion/rewind modes to unexpectedly exit when using an external controller in the iOS frontend
Prevented the console from flashing in the Windows version
Fixed a bug when comparison operators had the wrong priority in the debugger
Fixed a potential crash involving haptics in the iOS frontend
Fixed a bug that caused the "delete" and "unwatch" commands to list the wrong breakpoint/watchpoint after deleting one
Fixed more potential edge cases that could prevent the Cocoa frontend from opening files
Fixed incorrect spellings of Game Genie as “GameGenie”
Misc Internal Changes
Fixed an issue that made macOS binaries incompatible with some older versions of macOS when using the latest macOS SDK
SDL2 has been upgraded for Windows releases
--0.16.6--
New/Improved Features
You can now browse Homebrew Hub and download submitted games and demos directly in the iOS frontend.
Currently, only open-source submissions can be viewed in-app. The ability to allow other submissions to appear in SameBoy will be added to Homebrew Hub soon.
The option to open SameBoy’s Library in the Files app has been added to the iOS frontend’s Library screen.
Screen dimming is now disabled while emulation is running in the iOS frontend.
Improved D-pad controls in the iOS frontend – the center point of the D-pad is now a safe “rest” zone; dragging a touch outside of the D-pad no longer releases the button.
User-provided boot ROMs can now be selected in the iOS frontend.
Accuracy Improvements
Accuracy improvements to the square “zombie stepping” glitch in CGB-D and CGB-E, fixed Telefang title audio that was broken for these revisions.
Writing to NRx3 and NRx4 in the same cycle these registers are read by the APU is now emulated correctly.
SameBoy will now select cgbE_boot.bin, if available, when emulating CGB-E.
Bug Fixes
Fixed a bug that triggered occasional audio distortions on some Macs and iOS devices.
Fixed a bug that made the iOS version sometimes incorrectly prefer SGB over CGB emulation for some newly imported ROMs.
Fixed a bug that could crash SameBoy upon pausing in the iOS and Cocoa frontends.
Fixed a bug that made the Cocoa frontend’s Debug Console windows always on top.
Fixed a 0.16.5 regression that broke the Cocoa frontend’s Memory window on macOS Sonoma.
Fixed stability issues when emulating the Game Boy Camera in the iOS frontend.
Fixed a bug that caused haptics and rumble to temporarily stop working in the iOS frontend.
Misc Internal Changes
Internal support for AGB-0’s boot ROM was added to the core’s API (AGB-0 remains unsupported as an emulated revision for now)
--0.16.5--
New/Improved Features
The iOS frontend is now available on the App StoreThe App Store version requires iOS 13 or higher, while the version targeting side-loading and jailbroken devices still supports iOS 11 and 12.
The following new features has been added to the iOS frontend:Support for MFi, PlayStation, Switch and Xbox controllers. Support includes rumble functionality, motion controls, analog controls, and button remapping.
A launch screen was added.
A new “Import ROM File” button was added to the Library screen.
Multiple interface themes were added.The App Store version has additional themes that can be unlocked by supporting SameBoy’s development.
The iOS frontend now shows tips and facts in the pause menu.
Tapping SameBoy’s logo now opens the pause menu.
The button haptics strength can now be changed.
After importing a new ROM, a suitable model is automatically selectedThe default rewind duration in the Cocoa and iOS frontends was change to 2 minutes to match the SDL frontend.
Debugger windows no longer hide when the Cocoa frontend is out of focus.
Each debugger window now includes the ROM name in its titlebar in the Cocoa version.
Bug Fixes
The Cocoa and iOS frontends no longer incorrectly include the word “Version” in their version strings.
Fixed a bug that caused filtered screenshots to be saved as 32-bit per channel on the Cocoa frontend.
Fixed a bug affecting iPads that left the game paused under some conditions after exiting certain screens.
Fixed incorrect handling of loading save states of an incompatible MBC RAM size.
Fixed a visual glitch with the Monochrome LCD scaling filter, which also caused filter screenshots to be semi-transparent.
Fixed a bug that allowed rewinding auto-loaded states back to the boot ROM in the iOS frontend, potentially losing data.
Fixed a bug that caused the camera-change button to be positioned incorrectly on notched iPhones running the iOS frontend.
Misc Internal Changes
Fixed build issues when using the current master branch of RGBDS to build SameBoot.
Fixed a false positive warning when using certain GCC versions.
The iOS frontend’s license has been updated.
--0.16.3--
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 “Hot Swap Cartridge” functionality now allows hot swapping a file with a newer version of itself in the Cocoa versionThis can also be done with the new “Reload ROM” menu item, available while holding Shift in the Emulation menu.
The SDL frontend now uses the modern folder selection dialog when selecting a boot ROMs folder on Windows
Add an option to allow pressing A+B by touching the space between the two buttons in the iOS frontend
The iOS frontend can now choose between 3 audio modes; Enabled, Disabled, and Controlled by Silent Mode
The iOS IPA release is now ad-hoc signed to prevent TrollStore from signing it with the wrong entitlements
The iOS Deb release is now compatible with both rootful and rootless jailbreaks
Accuracy Improvements/Fixes
Updated the built-in SGB boot ROMs so they’re closer in timing to the original boot ROMs
Bug Fixes
The Cocoa and iOS versions now display the correct license for SameBoy
Improved compatibility with certain ISX files
Fixed the States screen displaying incorrectly in iOS 16 and newer
Fixed several spelling mistakes in the debugger
Fixed visual artifacts that may appear in certain scaling filters when scaling with a multiple of 3 factor
Prevent filtered screenshots from using 64-bit color depth on the Cocoa frontend, which improves compatibility with certain apps
The
ticks
debugger command no longer outputs “Tick count reset” if the keep flag was usedFixed a bug that prevented Turbo Mode from working on iOS if dynamic speed controls were not enabled
Misc Internal Changes
Improved integration with libretro’s build infrastructure, which should greatly improve the release schedule of the libretro version of SameBoy
--0.16.2--
Accuracy Improvements/Fixes
Improvements to the “Accurate” frame blending option; SameBoy now correctly tracks the “parity” of each frame, and uses a more realistic blending ratio
Support for bootleg ROMs that claim to have no RAM in the MBC field, but also declare a non-zero RAM size
Bug Fixes
Removed XAudio 2.7 support and replaced it with the redistributable version of XAudio 2.9, fixing various crashes on Windows 7
Fixed an issue with the menu graphics being glitched in the SDL frontend if SameBoy is set to display a border
Fixed the update dialog in the Cocoa frontend displaying the changelog in the wrong font on versions of macOS
Fixed Quick Look support being broken on macOS Sonoma
Fixed a bug where the Cocoa and iOS frontend would sometimes flicker when using the Metal renderer
--0.16.1--
New/Improved Features
SameBoy on iOS will now warn the user if it hasn’t been correctly signed, which could prevent “Open With” from working with SameBoy
Accuracy Improvements/Fixes
Fixed a bug that made SameBoy think a WorkBoy was connected in some cases where a Game Boy Printer was connected
Bug Fixes
Fixed a bug that made SameBoy incompatible with macOS versions 10.9 to 10.15
Fixed several UI issues with the Printer Feed on macOS Big Sur and newer
Prevent some Cocoa toolbar items from overflowing into a menu item that would crash on click
Fixed a bug that prevented SameBoy from opening ROM files if VisualBoyAdvance was also installed on macOS
VSync is now automatically disabled in the SDL frontend if the screen refresh rate is under 60Hz, which could cause garbled audio on some machines
Fixed a bug where the SDL frontend would indefinitely hang if the current audio device became unavailable while using the XAudio 2.7 driver
Misc Internal Changes
The iOS Deb releases no longer contain local file ownership information
The SDL version used in the Windows release has been updated to 2.28.5
--0.16--
New/Improved Features
A new, fully-featured iOS frontend:Supports every iPhone, iPad and iPod Touch model running iOS 11 or newer (iOS 13 or newer is recommended)
Can be installed by side-loading (using AltStore or TrollStore) or using a jailbreak
Innovative and customizable touch controls, including support for analog rewind, fast-forward and slow motion
Save states
Scaling filters
In-game rumble support
Game Boy Camera support
Motion controls for supported games
Notifications for alarm-clock-enabled games
Advanced emulation settings
A lot more!Reopening a ROM from Finder or other means now reloads the ROM in the Cocoa frontend
The SDL frontend received a small facelift
Cheats support in the SDL frontend
The SDL frontend can now pick a specific revision from CLI
A new
reset
command in the debugger, supporting 3 types of resetsSeveral new changes that improved performance:Disabled inlining of several slow-path functions
Enabled the compiler’s fast-math flag
Prevention of loop unrolling for large, non-speed-critical loops, to improve utilization of instruction caches
Optimize the GUI code for size rather than speed to improve utilization of instruction caches
Work around Clang and GCC generating slow code for inline compile-time constantsSupport for ranged breakpoints and watchpoints
Breakpoints and watchpoints are now identified by a unique ID rather than an address, deletion is now done by ID
The
IO_
prefix for hardware registers in the debugger has been removed in favor of the more standardr
prefixThe Cocoa memory viewer’s “Go to” field can now switch banks and address spaces
The Cocoa memory viewer now symbolicates its selection in the status bar
The debugger now supports backwards single stepping, if rewinding is enabled (experimental)
Sending
SIGUSR1
to the SDL frontend now triggers a reset commandImproved controller assignment in the Cocoa frontend, especially when playing multiplayer SGB games or when emulating the link cable
Menu and keyboard shortcuts to scale windows up and down to the next integer factor in the Cocoa frontend
The Windows builds are now 64-bit, greatly improving performance on Windows
Accuracy Improvements/Fixes
Emulation of open bus behavior when reading disabled cartridge RAM
More accurate emulation of volume envelope locking on the pre-Color models, as well as CGB revisions older than D
Improved Printer timings, allowing the mini game in Hello Kitty Pocket Camera to be played
First-party Nintendo games will now have correct initial register values when using the built-in CGB and AGB boot ROMs
Improved accuracy of
JOYP
switching delayFixed a timing issue when aborting an object fetch using an
LCDC
writeImprovements to object fetching address calculation timings
Accurate emulation of PPU registers write conflicts in CGB double speed mode
Correct emulation of reading
SVBK
, fixes Flyeyes (unlicensed game)Wired Switch Controllers now get automatic button mappings in the Cocoa frontend
Fixed a bug where GBS files were starting with a wrong value in the
IE
register, fixes several GBS filesEmulation of the OAM corruption glitch triggered by the
jr
instruction, as well ashalt
andstop
modesCorrect read emulation of the
BANK
register while still in the boot ROMFixed a bug where accurate RTC emulation halted while SameBoy wasn’t running
Accurate emulation of many sweep-related glitches, including revision differences
Fixed a bug where
HDMA5
was not correctly updated when disabling HBlank HDMACorrect, revision-accurate emulation of reading from VRAM in the last cycle of Mode 3
Channel 3 is now correctly mixed when emulating a GBA
Bug Fixes
The “Step” icon in the Cocoa debugger was broken on non-Retina displays
Fixed a bug where certain temperature tint settings would tint too much
Banked breakpoints no longer trigger while executing the boot ROM
Fixed camera emulation using the wrong aspect ratio on some Macs
Fixed a bug that caused artifacts on the right and bottom edges of the Game Boy Camera
Fixed a bug that allowed rewinding across ROM switches in the SDL frontend
Fixed a bug that made rewinding try to rewind across model changes
Fixed a bug that made save states created on Windows incompatible with other operating systems, and vice versa
Several settings in both the SDL and Cocoa frontends had some unexpected defaults, which have been adjusted
GameShark cheats were not imported correctly
Fixed imported cheats not appearing in the Cocoa frontend
Fixed the built-in MGB boot ROM being unexpectedly larger than it should be
Prevented cases where the Cocoa debug console would remain open after closing a ROM
Fixed a bug that caused the Libretro core to crash in link mode
Fixed support for Xbox Wireless Controllers in the Cocoa frontend
Some constants in the LCD and CRT filters were not updated when the shaders switched to linear RGB
Fixed a bug where jump-to breakpoints disassembled the wrong address under certain scenarios
Fixed an edge case where jump-to breakpoints did not work as expected, or took a slow code path
Fixes a bug where certain macOS versions would fail to restore the previously opened windows due to a regression in Apple’s code
Fixed a bug that caused the VRAM viewer’s toolbar to not appear on macOS Sonoma
Fixed a bug where controllers did not always automatically connect or reconnect in the SDL frontend
Misc Internal Changes
New APIs to explicitly reset the rewind buffer
When building SameBoy in debug mode, assertions will now make sure functions are always called from a safe thread context
Fixed an issue that caused the Cocoa preferences window to not open when building on some Macs
Certain false positive warnings when building with GCC 9 are now avoided
SameBoy can now be built as a library, allowing to disable certain features as required
New APU APIs to allow detailed querying of its state
SameBoy now correctly refers to its license as the Expat License
Fixed an issue that prevented SameBoy to be built if the repository’s path included a space
--0.15.8--
New/Improved Features
The button mapped to B, on both the keyboard and controllers, can now be used to return from menus in the SDL frontend
Bug Fixes
Fixed a bug that caused the new Cocoa debugger interface display glitched buttons on newer versions of macOS
--0.15.7--
New/Improved Features
Debugger inputs in the Cocoa frontend now work if the emulator is paused rather than in debugger-stopped
The Cocoa debugger was given an improved interface with better contrast, and traditional Continue/Step Over/Step In/Step Out buttons
The debugger now has an
interrupt
command, in addition to the previously-available ^C key sequenceSameBoy is now properly categorized as a Game app in macOS’s Launchpad
The
lcd
command now displays the background shifter and fetcher statesThe Cocoa frontend can now perform a “quick reset”, which is essentially equivalent to a reset via the cartridge reset pin, and retains RAM values, and other otherwise-uninitialized values
The Cocoa cheats window is now less strict about forcing a user to type
$
when typing an addressThe
tick
debugger command now has an optionalkeep
argument, which prevents resetting the tick countJoy-Cons are now fully supported in the Cocoa frontend:This includes the usual pack of zero-configuration key-mappings, rumble support, player LEDs, and motion controls
Additionally, a dedicated Joy-Con arrangement sheet lets you combine and separate Joy-Cons and switch their orientation from horizontal to vertical
Accuracy Improvements/Fixes
Fixed a regression that made DMA restart timing inaccurate
Fixed a regression that caused ROMs that trigger one of the pixel insertion glitches to display incorrectly (Release builds) or trigger an assertion (Debug builds)
Fixed a different regression in a different pixel insertion glitch
Bug Fixes
Fixed a bug where the debugger
finish
command did not behave as expected in certain cases where the ROM manipulated the stackFixed a bug that caused the Cocoa cheat window to send debugger commands
Fixed a regression that caused the Cocoa cheat window to crash when attempting to add an invalid GameShark or GameGenie code
Fixed a bug that caused the Cocoa cheat window to crash while typing a cheat address on newer versions of macOS
Misc Internal Changes
SameBoy (and SameBoot) can now be built with RGBDS 0.6.x; support for RGBDS 0.4.x has been dropped
Fixed potential compilation warnings for incoming versions of Clang and GCC
Added the
GB_quick_reset
API
--0.15.6--
New/Improved Features
All CGB revisions, as well as MGB, are now available in the libretro core
The debugger now guides users to use the
help
commandBoth frontends can now selectively mute and unmute each of the 4 audio channels
Both frontends now support cartridge hot swapping
Accuracy Improvements/Fixes
Fixed a bug where the libretro core sometimes ran at an incorrect speed after switching models
Fixed a minor DMA regression
Bug Fixes
Fixed a bug where the Cocoa Memory Viewer “Go To” field did not work correctly and occasionally crashed
--0.15.5--
New/Improved Features
Both frontends now include links to the debugger documentation and to the GitHub Sponsors page
Accuracy Improvements/Fixes
Fixed a bug where certain color correction modes were desaturating colors in an unbalanced manner
Accurate emulation of the first-frame-behavior while emulating the Game Boy Color and Game Boy Advance; fixes white flashes while playing games developed by THQ
More accurate emulation of the square channels sample repeat glitch, fixing certain audio pops in LSDj and various games while using a vibrato effect
Bug Fixes
Fixed a bug introduced in the previous release that introduced several issues in the Cocoa version, including:The memory viewer crashing under some conditions
Attempting to save state returned an error, despite saving being completed successfullyFixed a bug where MBC state was not properly reset, fixing bugs resulting in some games not booting correctly if they were loaded after certain other games in the SDL frontend, libretro, and other 3rd-party frontends
Misc Internal Changes
New memory management APIs for better integration of SameBoy as a library
--0.15.4--
New/Improved Features
The “Emulate Hardware” and “Preserve Brightness” color correction modes are now called “Modern – Balanced” and “Modern – Boost Contrast”, respectively, to better represent them in the context other modes that came after their introduction
A new “Modern – Accurate” color correction mode was added. This new mode preserves the modern saturation and contrast of “Modern – Balanced” but further improves on color balancing accuracy
The Cocoa preferences window now includes help buttons that describe the different Color Correction and High-Pass Filter modes
Major improvements to the performance of the Cocoa memory viewer
The Anti-aliased Scale4x filter has been revised and improved
Accuracy Improvements/Fixes
A color correction rounding error was fixed
Bug Fixes
Fixed potential visual artifacts when using certain scaling filters on some combinations of resolutions and devices
Fixed a bug that made SameBoy crash on launch on older versions of macOS if an update was available
Fixed a bug where the Cocoa memory viewer temporarily showed wrong addresses
The SDL will no longer get stuck (unless “Skip” is used) when trying to use certain joypads’ D-pad to configure the directional keys
Attempt to work around an X11 bug that caused file and directory selection dialogs to ignore mouse keys
Misc Internal Changes
The Cocoa memory viewer no longer requires access to internal structures
--0.15.3--
Accuracy Improvements/Fixes
Improvements to all color correction modes
Bug Fixes
Fixed a race condition that could cause the Memory Viewer to crash if used without pausing the ROM first
Fixed a bug that caused SameBoy to incorrectly warn about saves being unwritable
Fixed a bug that caused SameBoy on Windows to not warn about saves being unwritable
Fixed a bug that caused the SDL port to not respect the joypads-in-background setting at startup
--0.15.2--
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
A setting to allow joypad input when SameBoy is not in focus was added to both frontends
The SDL GUI now follows the user-configured Game Boy palette
The SDL frontend now supports Game Boy palettes exported from the Cocoa port, and now includes 7 new palettes to choose from
The scrollbar in the SDL frontend is now draggable
The SDL GUI now correctly allows using the user-configured buttons in its menu
An OpenAL audio driver is now available for Linux and other Unix users in the SDL port
Up to two joypad hotkeys may now be configured to perform actions such as pausing and saving states in both frontends
The
softbreak
debugger command was given a better descriptionBoth frontends will now warn you if progress cannot be saved when loading a ROM
Game Boy Player (using CPU AGB A) is now a selectable Game Boy Advance revision
Accuracy Improvements/Fixes
Emulated a glitch where a misconfigured window can insert pixels between tiles on models prior to the Game Boy Color, fixes Star Trek - 25th Anniversary
Fixed a window-related regression, affecting edge cases where WX=0
Accuracy improvements to emulation of the Game Boy Camera
Accurate emulation of JOYP switching delay on the DMG
Realistic emulation of button bouncing while keeping lag to a minimum
Bug Fixes
Fixed a bug where SameBoy crashed on Windows 7 when using turbo while the XAudio driver was in use
Misc Internal Changes
Fixed a potential memory corruption when SameBoy is used as a library in a C++ project
--0.15.1--
New/Improved Features
Improvements to the updater mechanism in the Cocoa port, should handle both Gatekeeper and write permissions better
The SDL frontend now allows switching between audio drivers, rather than defaulting to the “best” supported driver
The Windows XAudio2 drivers now use the system’s default sample rate, which prevents audio resampling and improves the audio quality
Bug Fixes
Fixed SameBoy crashing on launch on Windows 8 and Windows 8.1 machines
Misc Internal Changes
Fix code signing when locally building release builds of SameBoy on ARM-based Macs
--0.15--
New/Improved Features
Improved UI for the VRAM Viewer’s palette and object views
Customizable palettes for monochrome models in the Cocoa frontendBundled with several new palettes as examples
The bundled register names symbol file now correctly names several undocumented registers
Improved performance by better utilizing Link-Time Optimizations
The Memory Viewer, as well as the debugger
examine
command, no longer trigger side effects when reading from memoryThe Develop menu in the Cocoa frontend now lists options to hide or show the background or object “layers”
Introducing PPU “fast paths”, improving performance by up to 34% with no accuracy losses
Removed the use of slow floating point arithmetics in the APU code to improve performance
Introducing lazy APU output generation, improving performance by up to 17%
Link-Time Optimizations are now enabled for Windows build, significantly improving performance on Windows
A new
dma
debugger commandImproved the performance and responsiveness of the Cocoa VRAM Viewer and Memory Viewer
New icon, minor visual refresh across both the Cocoa and SDL frontends
Cartridge Instances now allow having multiple saves for the same ROM file in the Cocoa frontend
The debugger
apu
commands now display a single channelAudio recording is now available in both the Cocoa and SDL frontends
The SDL frontend now uses XAudio2 on Windows, when available
The more common
rX
hardware symbol naming scheme now replaces theIO_X
scheme; the latter remains supportedGeneral code optimizations for overall performance improvements
Accuracy Improvements/Fixes
The Game Boy Pocket/Light is now available for emulation
Every CGB revision is now available for emulation, adding CGB revisions 0, A, B and DAn option to select the CGB revision is now available in the SDL port
Added MBC7 supportThe mouse, as well as a joystick, can be used for motion controls
On the Cocoa frontend, a supported controller’s motion controls can be used as wellAccurate timing of clearing bits in the IF register
Improved accuracy of LY change timings
Improved accuracy of the LY=LYC condition in revisions prior to CGB-D
Improved emulation of a glitch that makes channel 3 use the CPU’s address bus as an index to the wave sample buffer
Fixed an incorrectly emulated theorized glitch where writing to VRAM in certain timings would corrupt data
Improved emulation of the TILE_SEL glitch
Major improvements to DMA, HDMA, and GDMA, including timings, revision differences, interaction with halt/stop, and all sorts of bus conflictsThis allows pixel-perfect emulation of certain demos, such as It Came from Planet Zilog
Improved IR modelling, fixes Gen 2 Pokémon Mystery Gift
Added MMM01 support, including Mani carts
Improved emulation of channel 1/2 “zombie stepping”
Improved serial accuracy
Correct emulation of how SCX prolongs mode 3Including emulation of “SCX banging”, which can disrupt the PPU state machine and, on a real device, damage the LCD.
Improved emulation of object timings where X=0
Fixed a regression where MBC5’s initial ROM bank was not 1
Improved emulation of the Game Boy Camera MBC
Improved HuC-1 emulation, fixes a Robopon Japanese Prototype ROM
Bug Fixes
Fixed a bug in the Cocoa frontend where screenshots with filters applied would come out blurry on Retina displays
Fix several instabilities in the Cocoa audio driver
Fixed a bug where certain writes, when emulating CGB-C, would corrupt the emulator state
Fixed a bug where the SDL fronted did not correctly load the palette setting
Fixed a bug where the debugger
undo
command was available while not stoppedFixed GDMA being used incorrectly in SameBoot
Fixed a bug where the obscured object indicator did not function correctly in the VRAM Viewer’s object view
Fixed the Preserve Waveforms setting, now it behaves as intended
Fixed a bug where closing an instance connected via serial to another instance would not behave correctly in the Cocoa frontend
Fixed SDL crashes on certain Linux systems
Fixed UI issues on OS X Mavericks
Fixed achievement supports in the Libretro frontend
Fixed the 16x16 cartridge icon in both Cocoa and FreeDesktop
Fixes audio glitches during the SGB jingle
Visual fixes for the GBS player on macOS Big Sur and newer
Misc Internal Changes
Improvements to the input hints API
Added safe memory read API
New memory write callback API
New API to determine DMG-mode CGB
Improved APIs to handle input
New execution callback API
New LCD line callback API
An API for adjusting the RTC speed, for TAS verifications
An API for detecting lag frames
The direct access API now supports accessing the CPU registers
An API for allowing illegal directional inputs
General preparation for future support of different AGB revisions
--0.14.7--
This version is backwards compatible with save states from SameBoy 0.11.x and newer, as well as save states from any BESS compliant emulator
New/Improved Features
The Cocoa frontend now has a built-in screenshot functionality
The Cocoa palette viewer now uses a monospaced font
Accuracy Improvements/Fixes
Fixed incorrect emulation of the SVBK registerThis fixed BESS compatibility issues between SameBoy and other emulators when importing save states of non-Color games on a Game Boy Color and using the original boot ROMs
This also fixes RAM not being properly randomized in DMG games running on a Game Boy Color when using the original boot ROMs
Bug Fixes
Improvements to stability and security when loading save states
The SDL port now detects ANSI-incompatible Windows consoles and reverts to the previous behavior
--0.14.6--
This version is backwards compatible with save states from SameBoy 0.11.x and newer, as well as save states from any BESS compliant emulator
New/Improved Features
Scrolling is now smooth when running the SDL port on macOS
The SDL port’s debugger now has a readline-like interface; featuring history, search, auto-complete, text formatting, and improved asynchronous inputThis also introduces asynchronous debugging to the Windows version
Minor UI improvements on Big Sur
Accuracy Improvements/Fixes
Fixed a bug where NR32 was treated as the wrong value after an APU reset
Writes to wave RAM are now blocked, as expected, when emulating a Game Boy Advance
Fixed the Game Boy Color and Advance boot ROM not properly initializing wave RAM
Improved accuracy of mid-line SCX writes, fixes Infinity
ld sp, hl
now triggers an OAM corruption on affected modelsImproved emulation of Super Game Boy multiplayer, fixes several games that were not responding to inputs
Fixed the Super Game Boy
ATTR_SET
command not working correctly, fixing several mis-colored SGB gamesFixed inaccurate Super Game Boy border fade timing, which caused some games to have corrupt borders
Fixed inaccurate Super Game Boy graphic transfers, which caused some games to have corrupt borders
Fixed Super Game Boy rendering of unused tiles, which caused some games to obscure the Game Boy viewport entirely
Fixed a bug that caused 7-part Super Game Boy commands to lock SGB features, effectively freezing some games on blank screens
Several timing improvements to the Super Game Boy
Fixed a mistyped condition that caused a timer glitch to be incorrectly emulated
Accurate emulation of how the wave channel behaves on restart
Mostly complete emulation of an APU glitch where channel 3 could read from wave RAM while inactive using the CPU’s main address bus on models prior to the Game Boy Advance
The Game Boy Color and Advance boot ROM animation had its timings slightly altered to better match the original boot ROMs
Bug Fixes
A typo was fixed in the debugger
mbc
commandFixed a crash in the SDL port that could happen when swapping ROMs
Handling of tiny (Less than 32KB) ROMs is now more consistent
Fixed a bug in the SDL port that flipped the controller left and right keys in the menu
Resetting a game after loading a save state from a different CPU revision now resets the CPU revision to the user-selected revision on the Cocoa port
Misc Internal Changes
Fixed an internal struct issue that could have lead to future compatibility issues
The automatic tester now supports Super Game Boy
--0.15.5--
This version is backwards compatible with save states from SameBoy 0.11.x and newer, as well as save states from any BESS compliant emulator. Outside of macOS, this version is identical to 0.14.4 other than the version number.
Fixed a bug that sometimes prevented opening GBS files
--0.14.4--
This version is backwards compatible with save states from SameBoy 0.11.x and newer, as well as save states from any BESS compliant emulator
New/Improved Features
GBS support updated to support common non-standard formats, as well as ugetab’s GBS extensions
ROM and GBS loading errors and handled better in the Cocoa frontend
SameBoy is now better categorized on Linux desktops
The Cocoa frontend now includes an optional update checker and installer
Improved support for running without OpenGL in the SDL frontend, added command-line flag to disable OpenGL
SameBoy will now attempt to load .snX save states (used by other emulators such as BGB) if a .sX save state is not found
The Cocoa frontend now has volume control
The Cocoa and SDL frontends now include an optional speedrun-friendly OSD
DualSense controllers now have first-tier support in the Cocoa frontend, with rumble, LED, and analog turbo/slow-motion support, in both wireless and USB modes
The SDL frontend now supports the -s/–stop-debugger command line flag, which starts SameBoy with a stopped debugged on the first instruction
A new realistic low contrast color correction mode, “Harsh Reality”, was added
Improved the ticks debugger command with more detailed output
Improved warnings when entering PPU or APU odd-modes
Major improvements to JoyKit, which should allow previously broken controllers such as Xbox controllers or 8BitDo controllers to work in the Cocoa frontend
The libretro frontend has been updated to the newer options API, which majorly improves core option screens in RetroArch and other libretro interfaces
Accuracy Improvements/Fixes
Improved accuracy of RTC latching
Fixed a bug that prevented STAT interrupt blocking from functioning correctly in the transition to VBlank while the OAM interrupt was disabled
Disabled an attempt to improve audio accuracy that resulted in audio regressions in several games
Improved T-cycle accuracy of VBlank
Major improvements to emulation of the STOP instruction and speed switching
MBC5’s RAM enable register is now correctly emulated as an 8-bit register
Improvements to several edge cases of the OAM corruption bug
Fixed an issue where several DMG games would boot with incorrect palettes when using SameBoy’s built-in boot ROMs
Bug Fixes
Fixed a bug where the ‘O’ key could not be mapped in the SDL frontend
Corrected the default mapping for DualShock 4 and DualSense controllers in the Cocoa frontend
Fixed a bug that prevented using the Switch Pro Controller in USB mode in the Cocoa frontend
Fixed a bug where Cocoa’s VRAM viewer could appear blurry
Misc Internal Changes
The GBS APIs now allow loading from a buffer
Redundant MBC data removed from BESS save states
--0.14.3--
This version is backwards compatible with save states from SameBoy 0.11.x and newer, as well as save states from any BESS compliant emulator
New/Improved Features
GBS APIs available in the core
Built-in GBS player in the Cocoa frontendLike standard ROMs in SameBoy, it supports debugging and selection of specific models/revisions
Support for emulation of the homebrew TPP1 MBC
Save states can be dropped into emulator windows to load them in both the Cocoa and SDL frontends
SameBoy now uses the BESS (Best Effort Save State) format within its save states, allowing interoperability between big and little endian save states, future versions of SameBoy, as well as other BESS compliant emulators (Such as the incoming releases of BGB and Emulicious)
Accuracy Improvements/Fixes
Fixed time syncing issues when turning the LCD off and on, fixes timing issues in Link’s Awakening
Fixed a bug where an invalid SGB command would be ignored, while the actual SGB firmware would still process it in some manner, fixes Donkey Kong Land
Bug Fixes
Better handling of more edge cases in the Linux build system
Fixed a memory leak in the SDL and libretro frontends when loading a second ROM
Fixed several potential crashes involving cheat codes
Fixed a bug where the screen would temporarily freeze in the Cocoa frontend if certain controllers are rumbling in specific strengths
--0.14.2--
New/Improved Features
FreeDesktop installations now register and associate .ISX files
Accuracy Improvements/Fixes
Fixed an audio regression where some games would play audio one octave lower when emulating a DMG
Bug Fixes
Fixed a bug where certain Cocoa windows would incorrectly remain open after closing a ROM
--0.14.1--
New/Improved Features
Improvements to installation and packaging support on Linux, BSD and other FreeDesktop environments
Accuracy Improvements/Fixes
Fixed a sweep regression when emulating DMG, SGB or CGB-C
Bug Fixes
Fixed various potential crashes when using symbol files
Fixed a bug where certain symbols would never be used with an offset
--0.14--
New/Improved Features
Emulation of the unreleased Workboy accessory in the Cocoa port
Emulation of Game Link Cable and infrared cross-game communication in the Cocoa port
Multiplayer support in the Libretro core now includes infrared support
The debugger now supports the
undo
command, which will revert the most recent state-modifying commandThe automatic tester can now optionally output TGA files instead of BMP files
The debugger will now issue a warning when a ROM triggers PPU odd-mode
Improved support to non-QWERTY, Latin keyboard layouts in the SDL port
Simulation of an ambient light’s effect on the non-backlit screens of the Game Boy, with user-controlled ambient light color temperature
Improved menu scrolling in the SDL frontend
Improved mouse support in the SDL frontend, with mouse wheel scrolling and a visual scrollbar
The SDL port can now select a boot ROMs folder
The escape button now returns to the previous menu in the SDL port instead of closing it completely
Improved noise when emulating the Game Boy Camera on frontends without webcam support
The SDL port will exit cleanly and report an error if it fails to initialize
The automatic tester can now optionally create battery save files
Support of two Real Time Clock emulation modes:Sync to system clock (Not affected by turbo, slow motion, pausing, etc.)
Accurate (Affected by the mentioned above)
The automation uses the new accurate RTC mode for stable results across runs
Refinements to the icon
Linux, BSD and other FreeDesktop users can now install SameBoy as both a command line utility and a GUI app by running
make install
Accuracy Improvements/Fixes
Emulation of a scenario where an interrupt might trigger OAM corruption
Emulation of CGB-mode TILE_SEL mixing
Correct emulation of wave RAM reads when emulating a Game Boy Advance
Accuracy improvements to infrared
Accuracy improvements to the window
Major APU improvements, with correct emulation of countless edge cases and newly discovered quirks:Complete rewrite of Channel 1’s sweep envelope
Complete rewrite of Channel 4’s noise generation, especially mid-pulse writes to NR43
Complete rewrite of the volume envelopes, including “Zombie Mode” and related quirks
The state of the NRx1 registers are now correctly preserved when emulating models prior to Game Boy Color
Emulation of a quirk where writes to NR44 might be delayed on models prior to Game Boy Color
Improved and more accurate color correction
Fixed a regression and improved the accuracy of speed switching, fixed a bug where odd-mode avoidance did not work correctly
Improved timing of the STOP instruction
Optional emulation of audio interference from the Game Boy SoC, with a user-controlled slider representing interference level
Emulation of an APU quirk where triggering Channels 1 and 2 might advance the duty cycle in certain cases in CGB-E (and CGB-D, currently unsupported)
Correct emulation of the differences between revisions when it comes to writes to NRx2 (“Zombie Mode”)
Accuracy improvements to RTC emulation
Minor improvements to MBC3 emulation
Prevent the printer from deadlocking if it was terminated during the transmission of a byte
Bug Fixes
Fixed a rare potential crash when loading symbol files
Fixed a bug where the Cocoa port would display wrong, dark, colors when disabling frame blending
Fixed a bug where the SDL and libretro ports would not update the game’s border when switching games and emulating a model other than the SGB
Fixed cases where the audio thread would deadlock the Cocoa frontend
Fixed a bug where changing the rewind length in the SDL port didn’t take effect until restarting
--0.13.6--
New/Improved Features
Prevent SameBoy from asking for notification permissions until that feature is needed by an HuC-3 game
Improved user interface on macOS Big Sur
The SDL frontend now has the ability change the default window size
Bug Fixes
Fixed a bug that caused the Quick Look previews to include a border on macOS Big Sur
Fixed a bug where the RTC might drift when loading older saves or states, or when pausing SameBoy for a long time
--0.13.5--
Bug Fixes
Fixed major regression introduced in 0.13.4 that prevented saving progress in games and caused several other issues
--0.13.4--
New/Improved Features
Native support for ARM-based Macs (Experimental)
Improved the loading time of battery saves with an RTC time set to the far past
Bug Fixes
Fixed a spelling mistake in the debugger
Fix several major regressions affecting games that use a real time clock
--0.13.3--
New/Improved Features
The scaling filters were updated to use gamma-corrected color mixing, improving the quality of all shaders, especially the LCD and CRT shaders.
Bug Fixes
Fixed a regression in the CGB and AGB boot ROMs where wrong palettes were chosen for Nintendo DMG games.
--0.13.2--
New/Improved Features
The Cocoa debugger now has tab completion
Conflicting key mappings are now highlighted in red in the Cocoa button configuration dialog
Improved Dark Mode appearance in the Cocoa port
Better, more system native appearance for the Cocoa memory viewer
Improved Printer Feed window in the Cocoa port, now with an option to print with an actual printer
Bug Fixes
Fixed a bug in the Libretro frontend that prevented certain achievements from triggering
Fixed a bug where the save state format effectively used by the Windows build was not following the intended format
The non-Windows builds can now read pre-0.13.2 Windows save states and vice versa
Fixed a minor compatibility issue between save states created on 32-bit machines and ones created on 64-bit machines
Fixed a potential crash when loading certain save states while a printer is connected in the Cocoa port
--0.13.1--
Bug Fixes
Fixed a potential memory corruption when loading certain malformed ROMs
Improved stability when loading corrupt preference files in the SDL port
--0.13--
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 HALTThe
registers
debugger command now display IME as wellAdded 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
--0.12.3--
This version is backwards compatible with save states from SameBoy 0.11.x and newer.
New/Improved Features
Super Game Boy color correction is now available in the libretro port
It is now possible to hide the Super Game Boy border in the libretro port
The SDL port will now hide the mouse while a ROM is running
Accuracy Improvements/Fixes
Changing the frequency of channels 1 and 2 is now more accurate
Audio rendering should now be accurate when emulating Game Boy Advance
Bug Fixes
Fixed garbled graphics while emulting Super Game Boy in the SDL port when OpenGL 3.2 is not available
The Cocoa build is now linked against the correct SDK version, restoring compatbility with older macOS versions that was mistakenly dropped in the previous release
Fixed fullscreen related issues in the SDL port
Fixed a bug where the SDL port did not save the battery in some cases
Bug fixes to libretro achievement support
Restored Game Boy Camera support on newer macOS versions
Fixed High-DPI support on Windows 10
Misc Internal Changes
Improvements to the audio and ICD2 APIs
Allow compiling SameBoy for platforms with a non-standard
bool
sizeImproved build portability, will now use
pkg-config
if available
--0.12.2--
This version is backwards compatible with save states from SameBoy 0.11.x and newer.
New/Improved Features
The Quick Look previewer now produces color-corrected thumbnails
The debugger now supports a wider range of symbol files
Accuracy Improvements/Fixes
Fixed a bug where samples in the wave channel were treated as if they’re 0, effectively muting the channel in some cases.
Fixed a regression that caused some PPU test ROMs to fail
More accurate emulation of memory access conflicts on the Super Game Boy
When emulating a Super Game Boy, built-in palettes for select games are now emulated
Accuracy improvements to Super Game Boy’s multiplayer mode
Super Game Boy and Game Boy Advance now have their own color correction filters
Bug Fixes
Improvements to audio in the SDL port, affecting some machines
Fixed a bug where the SDL port loaded the wrong boot ROM when emulating Super Game Boy 2
Fixed broken audio on libretro when used with some RetroArch audio drivers
Fixed a potential crash when closing a window in the Cocoa port
Fixed libretro achievements
Fixed major performence issues in the Cocoa port that affected some Macs, especially when emulating the original Super Game Boy
Misc Internal Changes
The emulation core now supports emulating a Super Game Boy without high level emulation of the SNES or SFC. SameBoy is now used for Game Boy emulation by bsnes, allowing extremely accurate low-level emulation of Super Game Boy.
Made it possible to compile the SDL port with older SDL versions
Compression improvements to the CGB and AGB boot ROMs
--0.12.1--
This version is a minor bug-fixing version that only affects the SDL version. The macOS version is identical, except for the version number.
Bug Fixes
Fixed the CGB and AGB boot ROMs being corrupt on the Windows version
Improved audio quality on the SDL ports on systems using a large audio buffer
--0.12--
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 CGBsFixed 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
--0.11.2--
New/Improved Features
Each debug console in Cocoa now displays the ROM file name in its titlebar
SameBoy can now load RTC information from battery saves from different emulators including BGB, VisualBoyAdvance, and VisualBoyAdvance-M and vice versa. Older battery saves will automatically be converted
Accuracy Improvements/Fixes
More accurate emulation of DAC charging and discharging. Fixes the buzzing sound heard in several games
Fixed a bug where the left and right audio channel were swapped
More accurate GDMA and HDMA timings
Fixed several bugs, one of which is a regression, where channels 1 and 2 could play without a delay. Fixes missing audio in Gensan 2
Correct emulation of enabling and disabling the volume envelope
Correct emulation of a glitch where the volume envelope ticks when it usually wouldn’t
Compensate for CPU prefetch in DIV’s initial value
Correct emulation of turning the DACs on and off. Fixes missing audio in several games
Bug Fixes
Fixed bugs in the debugger UI in Cocoa that made it unresponsive
Fixed a bug where the libretro core didn’t save and load the RTC properly
--0.11.1--
New/Improved Features
Introduced adaptive audio buffer length mechanism to improve audio quality systems that force big audio buffers
Accuracy Improvements/Fixes
Fixed a major regression where DMG games failed to switch to DMG mode when using SameBoy’s CGB boot ROM
Bug Fixes
Fixed the titlebar color in the Cocoa frontend
Fixed a bug where some macOS machines running High Sierra showed graphical garbage during fullscreen mode
--0.11--
This version is not compatible with save states of older versions.
New/Improved Features
The Cocoa and SDL ports can now rewind the game using a configurable key
The libretro port can now be compiled for Haiku and Wii U
The libretro port now has split-screen link cable emulation
The Cocoa and SDL ports can now under-clock the emulator for a “slow motion” effect
A new LCD screen filter for both the Cocoa and SDL ports
The new PPU and timing system introduced an up to 100% performance boost (More details in “Accuracy Improvements/Fixes”)
A new debugger operator –
{...}
can now be used to dereference a pointer to a 16-bit valueFullscreen support in the SDL port
Improved audio in the Windows SDL port, on supported versions of Windows
The
delete
andunwatch
debugger commands are now less strictAdded joystick hat support to the SDL port
The Cocoa port now uses Metal on supported Macs for better performance on laptops and less capable desktops
The Cocoa port now allows specifying a boot ROMs folder, so it can be used with the original boot ROMs
Improved the Cocoa debugger, it is now more responsive and no longer truncates output
The
lcd
debugger command now shows more accurate details about what the PPU is currently doingThe SDL port now has proper joypad configuration, similar to the Cocoa port
The SDL port now has more consistent joypad menu navigation, in comparison to keyboard navigation
Improved analog stick controls in both ports
Accuracy Improvements/Fixes
This version introduced major accuracy improvements, making SameBoy able to pass:All of mooneye-gb’s acceptance tests
All of Wilbert Pol’s tests
All of Blargg’s testsImproved emulation of analog characteristics of the APU for more accurate sound
Emulation of an open-bus-like quirk behavior in GDMA and HDMA
A whole new T-cycle accurate PPU:Accurate interrupt timing and blocking
Sprite timings are now accurate
Pixel pushing timing is now accurate, for pixel-perfect emulation of Prehistorik Man
Has accurate memory and register access timingsAccurate emulation of several timing edge cases related to the
halt
instructionAccurate emulation of a DMA bus quirk on the DMG
Complete and accurate emulation of the OAM bug, including cases not tested by Blagg’s tests
Fixed a regression in dmg_sound-2
Several accuracy fixes in SameBoy’s built-in boot ROMs
DMA now blocks PPU OAM access
Correct emulation of wiring both sets of buttons in JOYP
Fixed a bug where HDMA and GDMA were 4 times faster than they should have been
I/O register access conflicts are now emulated, including behavior differences between models
Improved accuracy of the
halt
bugCorrect emulation of the DMG
STAT
-write bug, which is just a specific case of I/O register access conflictEmulated an APU glitch where in some edge cases a
DIV
-triggered APU event is skipped
Bug Fixes
Minor text adjustments in both the Cocoa and SDL ports
Fixed the Android build of the libretro port
The
call
instruction is now properly symbolicatedFixed an issue that caused the Cocoa port to play a beep sound when certain buttons were pressed
Fixed several graphical issues with some of the filters
Worked around an SDL bug introduced in the macOS port of SDL
Fixed a bug where SameBoy froze after leaving turbo mode
Fixed a bug where the Windows port could not handle Unicode paths
Fixed a bug where the debugger wrote to the wrong CGB RAM bank
Fixed a bug where debugging symbols were not properly reloaded
Fixed save states in the SDL port
Fixed a bug where battery saves were not always saved in the SDL port
Fixed a bug where the
SWAP
instruction was incorrectly disassembled asRLC
Fixed a bug where the Cocoa memory viewer would play a beep sound and show a warning after resetting the emulator
Misc Internal Changes
API refinements
Minor improvements to the Windows build system
Documented several differences between DMG revisions and CGB revisions, and between DMG and MGB. SameBoy now explicitly targets DMG-CPU-B and CGB-CPU-E, and hopefully more revisions in the future
The official Windows binaries now use SDL 2.0.8
--0.10.1--
New/Improved Features
The libretro port can now be compiled for the Switch
Made the menu key more obvious in the SDL port
Can now emulate a Game Boy Advance in Game Boy Color mode
Changing a model in the SDL port is now done via the menu
Major improvements to the way the libretro port handles audio, significantly improving audio quality
It is now possible to select a specific model to emulate in the libretro port
Accuracy Improvements/Fixes
APU stereo volume levels are now scaled emulated correctly (Volume levels are 1-8, not 0-7)
Triggering a pulse by writing to NRx4 now correctly changes the volume level of the previously played pulse. Fixes sound pops in Link’s Awekening.
The CGB boot now finishes with correct register values
Fixed APU DIV events sometimes causing audio pops in disabled channels. Fixes sound pops in Super Mario Land 2
Fixed a bug where the effects of NR50 and NR51 were unintentionally delayed. Fixes sound pops in Pokémon Puzzle Challenge and Donkey Kong ‘94.
Bug Fixes
Fixed video issues with the libretro port when using Vulkan
Using a Joypad in the Cocoa port did not prevent the screen saver from starting
--0.10--
This version is not compatible with save states of older versions.
New/Improved Features
The CGB boot ROM will now wait until the user finishes choosing a palette
New SDL GUI:More user friendly, settings are now more accessible
Added configurable controls
Added scaling filters (requires OpenGL 3.2 support)
Added frame blending (requires OpenGL 3.2 support)Added joypad support to both the Cocoa and SDL ports
Accuracy Improvements/Fixes
More accurate PPU timings
The first frame after turning the LCD on is now skipped, as in hardware (Fixed Pokémon Pinball visual glitch)
Accurate emulation of VRAM and OAM blocking
More accurate emulation of MBC1
Improved serial cable timing emulation
Complete rewrite of the APU emulation (Fixed audio on several games)APU emulation is now sample-accurate in almost all case
Audio is now rendered at 2MHz (like real hardware), downsampled to 96KHz (or 44.1 on Windows)
Passes all of Blagg’s APU tests, as well as most of SameBoy’s (yet-to-be-released) APU tests
Added 3 modes of high-pass filtering (Disabled, Emulate Hardware, and Preserve Waveforms)
Fixed KEY1 being writable on a CGB in DMG mode
Refined window behavior (Fixed visual glitches in Pokémon G/S/C)
SCY latching is now correctly emulated
Refined SCX’s effects on PPU timings
Correctly emulate differences in interrupt timing when the CPU is in halt mode
More accurate emulation of interrupt servicing. (Fixed Pinball Deluxe)
Fixed OAM interrupt timing (Fixed Pinball Deluxe when emulating a DMG)
Added 4 modes of color correction (Disabled, Correct Curves, Emulate Hardware and Preserve Brightness)
Fixed EI behavior
Bug Fixes
Fixed
backtrace
command in the debugger (first item did not appear correctly)Fixed a bug that prevented saving games after resetting the emulator
Fixed several memory leaks
Fixed a bug that caused black screens after loading a save state when emulating a DMG
Fixed potential crashes when viewing OAMs in the VRAM viewer
Misc Internal Changes
API improvements
It is now possible to specify a boot ROM for the automatic tester
The Libretro core is now merged into the main branch
--0.9.1--
This version is a minor bug-fixing version
Bug Fixes
Fixed a bug where SameBoy froze for various amounts of time after using turbo mode.
--0.9--
This version is not compatible with save states of older versions.
New/Improved Features
A symbol file for IO-registers is now included
The Cocoa GUI now handles errors and warnings in a more user friendly manner
The debugger now includes an lcd command, that outputs information about the LCD controller and related registers
Improved audio quality, especially on Windows, by adding supersampling support
Upgraded the SDL port from SDL 1.2 to SDL 2.0
The following features were added to the SDL port:OpenGL renderer
Reset and pause shortcuts
Ability to mute and unmute the audio
Ability to switch model between CGB and DMG without restarting SameBoy
Ability to open ROMs with drag and drop
Resizing, with 3 different mode (Entire window, keep aspect, and integer ratio)
Help dialog, accessible by the Shift+? shortcut (macOS) or F1 (Other platforms)
Improved input in the Cocoa debugger; supports command history (up/down) and reverse search (^R)
Accuracy Improvements/Fixes
Much more accurate emulation of HDMA
The effect of the DI opcode is no longer delayed
SameBoy’s CGB boot ROM no longer incorrectly changes the RAM bank
Fixed a bug where HUC1 banks higher than 0x1F were not mapped correctly
Fixed a bug where MBC5 would map the wrong bank if address 3XXX is written before 2XXX is
The STOP instruction is now treated as a 2-byte opcode
LCD timing was rewritten and is now much more accurate
Corrected behavior of the HUC1 RAM enable switch
Large ROMs use MBC3 if the header claims no MBC should be use, for better compatibility with unofficial ROMs
Fixed a bug in the implementation of the STAT write bug
The value of SCX now affects the LCD’s mode 3 length
More accurate FPS capping that tracks time correctly even when the LCD is off
Window behavior rewritten and and is now much more accurate; fixes Donkey Kong ‘94
Fixed a bug where sound is generate on the wave channel while it shouldn’t be
The following games now pass the automatic testing: Alfred’s Adventure, Animorphs, Armada - FX Racers, Asterix - Search for Dogmatix, Bad Badtz-Maru Robo Battle, Barbie - Pet Rescue, Bear in the Big Blue House, Blue’s Clues - Blue’s Alphabet Book, Boarder Zone, Bob et Bobette - Les Dompteurs du Temps, Caesars Palace II, Captain Knick-Knack (Sachen), Daikaijuu Monogatari - The Miracle of the Zone II, Disney’s Tarzan, Doug’s Big Game, Dragon Tales - Dragon Wings, The Emperor’s New Groove, Fort Boyard, Honkaku Yonin Uchi Mahjong - Mahjong Ou, Hoyle Casino, Kinniku Banzuke GB3 - Shinseiki Survival Retsuden!, Konami GB Collection Vol.2, Konami GB Collection Vol.4, LEGO Racers, Lemmings & Oh No! More Lemmings, Les Aventures De TinTin - Le Temple du Soleil, Matchbox - Emergency Patrol, Microsoft Entertainment Pack, Pia Carrot he Youkoso!! 2.2, Pocket Music (E), Pokemon Card GB (J), Puchi Carat, San Francisco Rush 2049, Scrabble, The Simpsons - Night of the Living Treehouse of Horror, Star Wars Episode I - Obi-Wan’s Adventures, Supreme Snowboarding, Tintin in Tibet, Toki Tori, Tomb Raider - Curse of the Sword, Turok 3 - Shadow of Oblivion, VS Lemmings, World Destruction League - Thunder Tanks, Yu-Gi-Oh! Duel Monsters 4 - Saikyou Kettousha Senki
Bug Fixes
The SBC instruction was incorrectly printed as “LBC” in the debugger
The LDH instruction was not symbolicated
Fixed a bug with saving and loading save states and battery states on Windows
Fixed a bug where saving or loading save states sometimes worked incorrectly in the SDL port
Fixed a bug where the VRAM window would now show correctly if the game is paused
Fixed a bug where ^C in the Cocoa port would not move the focus to the console
Misc Internal Changes
Major refinements to the API
--0.8--
This version is not compatible with save states of older versions. This version ignores key bindings set by older versions
New/Improved Features
The debugger now includes a ticks command, to allow tick counting
The debugger now includes a palettes command, to allow dumping the palettes in CGB mode
General optimizations
Complete Game Boy Camera support in the Cocoa port, basic support in the SDL port
Debugger syntax improved, commands now allow modifiersprint/eval can now have a format modifier (e.g. print/d)
examine can now have a byte count modifier (e.g. x/4)The debugger now includes a disassemble command
Added a VRAM viewer to the Cocoa port
Game Boy Printer emulation in the Cocoa port
New icon for GBC files, following Nintendo’s color-coding convention, fixed icon alignment for both GB and GBC icons
Quick Look support in Cocoa: GB and GBC files now display in-game screenshots on their cartridge icon
Accuracy Improvements/Fixes
The APU emulation was refactored, and is now faster and now longer dependent on the sampling rate
LCDC’s bit 0 is now properly emulated (Fixes: Krusty’s Fun House)
The HALT bug is now emulated
The user is now prevented from pressing opposite keys at the same time (Fixes Pocket Bomberman)
Fixed MBC2 RAM emulation
Corrected emulation of the palette registers in CGB mode
HUC1 is now partially emulated, sans the IR sensor
Basic HUC3 support, only the MBC is emulated
Implemented the STAT-write interrupt bug (Fixed: Road Rash and Zero no Densetsu; these games do not work on CGBs)
Limited the LY=144 interrupt to DMG mode, as hinted by MooneyeGB’s test ROMs
The following games now pass the automatic testing: All-Star Baseball ‘99, Cave Noire, Daisenryaku, F-1 Race, Game Boy Camera, Hatris, Ironman, Konami Golf, Kwirk, Meitantei Conan, Nintendo World Cup, Pocket Bomberman (J), Puzzle Boy, SS Spinner, The Smurfs, Speedball 2, Tecmo Bowl, Teenage Mutant Ninja Turtles 2, Tsuri Sensei, Ultima, Ultra Golf, WordZap, Z - The Miracle of the Zone, Zerd no Densetsu
Bug Fixes
Fixed a deadlock in the Hex Editor/Viewer when viewing APU data
Fixed a crash when accessing MBC RAM on some ROMs that do not have MBC RAM
Multiple watchpoints did not function correctly
Improved the behavior and performance of the open dialog in Cocoa
Fixed dereferencing a non-banked address in the debugger
VRAM was not initialized
Fixed an edge case where the Hex Editor/Viewer crashed
Breakpoint and watchpoint conditions no longer trigger other watchpoints; fixed potential crashes
Better handling of input in the Cocoa port when the system has a non-ASCII keyboard layout
Minor fixes for the help debugger command
Misc Internal Changes
Added rumble API, but it is not actually used by any of the GUIs
Added serial API, but it is currently only used internally for the Game Boy Printer
--0.7--
New/Improved Features
The debugger now includes a backtrace command to show the stacktrace
Cocoa port now includes a Hex Editor/Viewer
The debugger help command was improved
General improvements to debugger usability
The SDL port now compiles on Windows (Binaries included)
Mouse hiding in Cocoa is now only enabled during full screen
The Cocoa port now remembers the mute setting
SameBoy now issues a warning when loading a game that uses an unsupported cartridge
Cocoa port now remembers previous breakpoints/watchpoints after reset
Cocoa port now automatically shows the open if needed
Accuracy Improvements/Fixes
OBP0/1 are now initialized to the correct value (Fixes Mooneye’s DMG hardware registers test).
A disconnected serial cable is now emulated. Fixes:Baseball
Faceball 2000
Fighting Simulator
Godzilla
Hiryuu Gaiden
In Your Face
Lunar Lander
Pinball Party
Sneaky Snakes
Super R.C. Pro-Am
WWF Stars
Yoshi’s Egg
Correctly emulating unused OAM RAM in DMG mode
DMG boot ROM now finishes with the original register values (Fixes Mooneye’s DMG boot registers test)
RTC clock latching is now emulated.
Fixed APU issues where simultaneously running games could affect each other
Fixed APU issue that could break some games. Fixes:Chiki Chiki Tengoku
Moguranya/Mole ManiaFixed MBC RAM not being properly reset. Old save data must be deleted for this fix to apply. Fixes:Purikura Pocket 3
Probably affects many other games
Bug Fixes
Boot ROMs were not trimmed correctly
Fixes several bugs that caused the Cocoa port to freeze when using the reset command during debugging
Misc Internal Changes
SameBoy can now be compiled with precompiled (non-SameBoy) boot ROMs
SameBoy includes an automated game ROM tester
--0.6--
New/Improved Features
Conditional r/w/rw debugger watchpoints
Added the “!=” operator to the debugger
Redefined the debugger input and output syntax, being more consistent with RGBDS
Debugger now reads .sym files (Tested with 3 popular formats). It shows symbols when possible, and allows using them in expressions
Debugger data types can now be either 16-bit values, or 25-bit full addresses that include a bank identifier
Debugger commands and expressions support full addresses as parameters. This allows, for example, breaking on an address on a specific ROM bank, or reading a value from a specific MBC RAM bank.
Some debugger commands may now run without breaking the debugger. (Similar to LLDB or GDB’s async mode)
SDL port now supports save states
Improved performance by about 6% by enabling link-time optimizations
Reduced file size by stripping executables
Several Cocoa-only UX improvements:Prevented being paused “twice” (Both by the pause option and the debugger)
Optional proportional resizing
Proper fullscreen support
Mouse cursor is now hidden while running
Accuracy Improvements/Fixes
This version includes major accuracy improvements, which allow it to pass 54 tests out of mooneye-gb’s 58 acceptance tests (2 of which fail due to not including the original boot ROM); more than any other emulator.
Rewritten MBC support, with MBC1M support (Fixing some N-in-1 cartridges)
Major accuracy improvements to OAM DMA.
Corrected a lot of instruction memory-access timings
Corrected some IO register masks
Major accuracy improvements to timers (TIMA/DIV)
Bug Fixes
Corrected operator priorities in the debugger
Fixed a bug where a breakpoint might have been ignored
Reduced CPU usage when running games with a real time clock
Handling ^C and ^D more sanely in SDL port
Fixed memory leak in Cocoa
Misc Internal Changes
Added infrared API, but it is not actually used by any of the GUIs
Fixed build system bugs that caused needless dep file generation, and made the Cocoa build fail sometimes if SDL is not installed
--0.5--
This version is not compatible with save states of older versions.
New/Improved Features
Updated save state format, should now be much more future compatible
Save state compatibility between 32 and 64 bit versions of SameBoy
Cocoa version is now using OpenGL 3
HQ2x filter added (Cocoa only)
A new, redesigned OmniScale filter; old filter is renamed to OmniScale Legacy (Cocoa only)
Cocoa port now “remembers” the last window size
Added boolean operators to the debugger
Added conditional breakpoints
Accuracy Improvements/Fixes
Better emulation of certain behaviors of the SCX register
Fixed emulation of the STOP instruction
Minor fix to the accuracy of the JOYPAD register
Minor improvements to HDMA accuracy
Bug Fixes
Improved concurrency in the Cocoa port
Fixed a bug where an emulator window in the Cocoa port will freeze until resized
Fixed incorrect disassembler outputs
Fixed a potential crash when deleting a breakpoint
Misc Internal Changes
Large code refactoring, getting ready to stabilize API
--0.4--
This version is not compatible with save states of older versions.
New/Improved Features
Cocoa port now includes several scaling algorithms, including a beta of the exclusive OmniScale algorithm
SDL port now includes sound support
SDL port now includes battery save support
Accuracy Improvements/Fixes
APU emulation now includes stereo support
Improved PCM registers emulation
More accurate STAT interrupt emulation. This fixes Altered Space.
Bug Fixes
The Cocoa port ignored some key presses if the user keyboard layout included non-ASCII characters
Fixed a bug that could cause a crash when adding or removing a breakpoint
--0.3--
New/Improved Features
New debugger command: cartridge (alias: mbc) shows information about the cartridge and the current status of the MBC
Experimental debugger command: sld (Short for Stack Leak Detection) behaves similarly to finish, but stops if a stack leak or stack overflow is detected
The Cocoa port now allows configuring controls
Accuracy Improvements/Fixes
ROM banks now wrap (Fixes game: Pocket Monster Adventures (Bootleg))
Fixed incorrect DMA behavior, DMA might fail for specific source addresses (Fixes game: The Smurfs 3)
Timer registers were counting too slow in CGB double speed mode
Corrected read behavior of the HDMA5 register (Fixes game: A Bug’s Life in CGB mode)
Fixed a bug with the CGB boot ROM that prevented initialization of the wave RAM
The CGB boot ROM now loads the DMG tilemap for specific games, just like the original ROM (Fixes game: X (intro animation))
Fixed a bug where audio channel 3 was playing silently while it should have been muted.
Bug Fixes
Debugger’s finish command now behaves correctly when interrupts are involved
Corrected the description for the breakpoint command
SameBoy will not create save files for ROMs without cartridge RAM or RTC, even if they report having a battery, preventing 0-bytes save files
--0.12.3--
This version is backwards compatible with save states from SameBoy 0.11.x and newer.
New/Improved Features
Super Game Boy color correction is now available in the libretro port
It is now possible to hide the Super Game Boy border in the libretro port
The SDL port will now hide the mouse while a ROM is running
Accuracy Improvements/Fixes
Changing the frequency of channels 1 and 2 is now more accurate
Audio rendering should now be accurate when emulating Game Boy Advance
Bug Fixes
Fixed garbled graphics while emulting Super Game Boy in the SDL port when OpenGL 3.2 is not available
The Cocoa build is now linked against the correct SDK version, restoring compatbility with older macOS versions that was mistakenly dropped in the previous release
Fixed fullscreen related issues in the SDL port
Fixed a bug where the SDL port did not save the battery in some cases
Bug fixes to libretro achievement support
Restored Game Boy Camera support on newer macOS versions
Fixed High-DPI support on Windows 10
Misc Internal Changes
Improvements to the audio and ICD2 APIs
Allow compiling SameBoy for platforms with a non-standard
bool
sizeImproved build portability, will now use
pkg-config
if available
--0.12.2--
This version is backwards compatible with save states from SameBoy 0.11.x and newer.
New/Improved Features
The Quick Look previewer now produces color-corrected thumbnails
The debugger now supports a wider range of symbol files
Accuracy Improvements/Fixes
Fixed a bug where samples in the wave channel were treated as if they’re 0, effectively muting the channel in some cases.
Fixed a regression that caused some PPU test ROMs to fail
More accurate emulation of memory access conflicts on the Super Game Boy
When emulating a Super Game Boy, built-in palettes for select games are now emulated
Accuracy improvements to Super Game Boy’s multiplayer mode
Super Game Boy and Game Boy Advance now have their own color correction filters
Bug Fixes
Improvements to audio in the SDL port, affecting some machines
Fixed a bug where the SDL port loaded the wrong boot ROM when emulating Super Game Boy 2
Fixed broken audio on libretro when used with some RetroArch audio drivers
Fixed a potential crash when closing a window in the Cocoa port
Fixed libretro achievements
Fixed major performence issues in the Cocoa port that affected some Macs, especially when emulating the original Super Game Boy
Misc Internal Changes
The emulation core now supports emulating a Super Game Boy without high level emulation of the SNES or SFC. SameBoy is now used for Game Boy emulation by bsnes, allowing extremely accurate low-level emulation of Super Game Boy.
Made it possible to compile the SDL port with older SDL versions
Compression improvements to the CGB and AGB boot ROMs
--0.12.1--
This version is a minor bug-fixing version that only affects the SDL version. The macOS version is identical, except for the version number.
Bug Fixes
Fixed the CGB and AGB boot ROMs being corrupt on the Windows version
Improved audio quality on the SDL ports on systems using a large audio buffer
--0.12--
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 CGBsFixed 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
--0.11.2--
New/Improved Features
Each debug console in Cocoa now displays the ROM file name in its titlebar
SameBoy can now load RTC information from battery saves from different emulators including BGB, VisualBoyAdvance, and VisualBoyAdvance-M and vice versa. Older battery saves will automatically be converted
Accuracy Improvements/Fixes
More accurate emulation of DAC charging and discharging. Fixes the buzzing sound heard in several games
Fixed a bug where the left and right audio channel were swapped
More accurate GDMA and HDMA timings
Fixed several bugs, one of which is a regression, where channels 1 and 2 could play without a delay. Fixes missing audio in Gensan 2
Correct emulation of enabling and disabling the volume envelope
Correct emulation of a glitch where the volume envelope ticks when it usually wouldn’t
Compensate for CPU prefetch in DIV’s initial value
Correct emulation of turning the DACs on and off. Fixes missing audio in several games
Bug Fixes
Fixed bugs in the debugger UI in Cocoa that made it unresponsive
Fixed a bug where the libretro core didn’t save and load the RTC properly
--0.11.1--
New/Improved Features
Introduced adaptive audio buffer length mechanism to improve audio quality systems that force big audio buffers
Accuracy Improvements/Fixes
Fixed a major regression where DMG games failed to switch to DMG mode when using SameBoy’s CGB boot ROM
Bug Fixes
Fixed the titlebar color in the Cocoa frontend
Fixed a bug where some macOS machines running High Sierra showed graphical garbage during fullscreen mode
--0.11--
This version is not compatible with save states of older versions.
New/Improved Features
The Cocoa and SDL ports can now rewind the game using a configurable key
The libretro port can now be compiled for Haiku and Wii U
The libretro port now has split-screen link cable emulation
The Cocoa and SDL ports can now under-clock the emulator for a “slow motion” effect
A new LCD screen filter for both the Cocoa and SDL ports
The new PPU and timing system introduced an up to 100% performance boost (More details in “Accuracy Improvements/Fixes”)
A new debugger operator –
{...}
can now be used to dereference a pointer to a 16-bit valueFullscreen support in the SDL port
Improved audio in the Windows SDL port, on supported versions of Windows
The
delete
andunwatch
debugger commands are now less strictAdded joystick hat support to the SDL port
The Cocoa port now uses Metal on supported Macs for better performance on laptops and less capable desktops
The Cocoa port now allows specifying a boot ROMs folder, so it can be used with the original boot ROMs
Improved the Cocoa debugger, it is now more responsive and no longer truncates output
The
lcd
debugger command now shows more accurate details about what the PPU is currently doingThe SDL port now has proper joypad configuration, similar to the Cocoa port
The SDL port now has more consistent joypad menu navigation, in comparison to keyboard navigation
Improved analog stick controls in both ports
Accuracy Improvements/Fixes
This version introduced major accuracy improvements, making SameBoy able to pass:All of mooneye-gb’s acceptance tests
All of Wilbert Pol’s tests
All of Blargg’s tests
Improved emulation of analog characteristics of the APU for more accurate sound
Emulation of an open-bus-like quirk behavior in GDMA and HDMA
A whole new T-cycle accurate PPU:Accurate interrupt timing and blocking
Sprite timings are now accurate
Pixel pushing timing is now accurate, for pixel-perfect emulation of Prehistorik Man
Has accurate memory and register access timingsAccurate emulation of several timing edge cases related to the
halt
instructionAccurate emulation of a DMA bus quirk on the DMG
Complete and accurate emulation of the OAM bug, including cases not tested by Blagg’s tests
Fixed a regression in dmg_sound-2
Several accuracy fixes in SameBoy’s built-in boot ROMs
DMA now blocks PPU OAM access
Correct emulation of wiring both sets of buttons in JOYP
Fixed a bug where HDMA and GDMA were 4 times faster than they should have been
I/O register access conflicts are now emulated, including behavior differences between models
Improved accuracy of the
halt
bugCorrect emulation of the DMG
STAT
-write bug, which is just a specific case of I/O register access conflictEmulated an APU glitch where in some edge cases a
DIV
-triggered APU event is skipped
Bug Fixes
Minor text adjustments in both the Cocoa and SDL ports
Fixed the Android build of the libretro port
The
call
instruction is now properly symbolicatedFixed an issue that caused the Cocoa port to play a beep sound when certain buttons were pressed
Fixed several graphical issues with some of the filters
Worked around an SDL bug introduced in the macOS port of SDL
Fixed a bug where SameBoy froze after leaving turbo mode
Fixed a bug where the Windows port could not handle Unicode paths
Fixed a bug where the debugger wrote to the wrong CGB RAM bank
Fixed a bug where debugging symbols were not properly reloaded
Fixed save states in the SDL port
Fixed a bug where battery saves were not always saved in the SDL port
Fixed a bug where the
SWAP
instruction was incorrectly disassembled asRLC
Fixed a bug where the Cocoa memory viewer would play a beep sound and show a warning after resetting the emulator
Misc Internal Changes
API refinements
Minor improvements to the Windows build system
Documented several differences between DMG revisions and CGB revisions, and between DMG and MGB. SameBoy now explicitly targets DMG-CPU-B and CGB-CPU-E, and hopefully more revisions in the future
The official Windows binaries now use SDL 2.0.8
--0.10.1--
New/Improved Features
The libretro port can now be compiled for the Switch
Made the menu key more obvious in the SDL port
Can now emulate a Game Boy Advance in Game Boy Color mode
Changing a model in the SDL port is now done via the menu
Major improvements to the way the libretro port handles audio, significantly improving audio quality
It is now possible to select a specific model to emulate in the libretro port
Accuracy Improvements/Fixes
APU stereo volume levels are now scaled emulated correctly (Volume levels are 1-8, not 0-7)
Triggering a pulse by writing to NRx4 now correctly changes the volume level of the previously played pulse. Fixes sound pops in Link’s Awekening.
The CGB boot now finishes with correct register values
Fixed APU DIV events sometimes causing audio pops in disabled channels. Fixes sound pops in Super Mario Land 2
Fixed a bug where the effects of NR50 and NR51 were unintentionally delayed. Fixes sound pops in Pokémon Puzzle Challenge and Donkey Kong ‘94.
Bug Fixes
Fixed video issues with the libretro port when using Vulkan
Using a Joypad in the Cocoa port did not prevent the screen saver from starting
--0.10--
This version is not compatible with save states of older versions.
New/Improved Features
The CGB boot ROM will now wait until the user finishes choosing a palette
New SDL GUI:More user friendly, settings are now more accessible
Added configurable controls
Added scaling filters (requires OpenGL 3.2 support)
Added frame blending (requires OpenGL 3.2 support)Added joypad support to both the Cocoa and SDL ports
Accuracy Improvements/Fixes
More accurate PPU timings
The first frame after turning the LCD on is now skipped, as in hardware (Fixed Pokémon Pinball visual glitch)
Accurate emulation of VRAM and OAM blocking
More accurate emulation of MBC1
Improved serial cable timing emulation
Complete rewrite of the APU emulation (Fixed audio on several games)APU emulation is now sample-accurate in almost all case
Audio is now rendered at 2MHz (like real hardware), downsampled to 96KHz (or 44.1 on Windows)
Passes all of Blagg’s APU tests, as well as most of SameBoy’s (yet-to-be-released) APU tests
Added 3 modes of high-pass filtering (Disabled, Emulate Hardware, and Preserve Waveforms)Fixed KEY1 being writable on a CGB in DMG mode
Refined window behavior (Fixed visual glitches in Pokémon G/S/C)
SCY latching is now correctly emulated
Refined SCX’s effects on PPU timings
Correctly emulate differences in interrupt timing when the CPU is in halt mode
More accurate emulation of interrupt servicing. (Fixed Pinball Deluxe)
Fixed OAM interrupt timing (Fixed Pinball Deluxe when emulating a DMG)
Added 4 modes of color correction (Disabled, Correct Curves, Emulate Hardware and Preserve Brightness)
Fixed EI behavior
Bug Fixes
Fixed
backtrace
command in the debugger (first item did not appear correctly)Fixed a bug that prevented saving games after resetting the emulator
Fixed several memory leaks
Fixed a bug that caused black screens after loading a save state when emulating a DMG
Fixed potential crashes when viewing OAMs in the VRAM viewer
Misc Internal Changes
API improvements
It is now possible to specify a boot ROM for the automatic tester
The Libretro core is now merged into the main branch
--0.9.1--
This version is a minor bug-fixing version
Bug Fixes
Fixed a bug where SameBoy froze for various amounts of time after using turbo mode.
--0.9--
This version is not compatible with save states of older versions.
New/Improved Features
A symbol file for IO-registers is now included
The Cocoa GUI now handles errors and warnings in a more user friendly manner
The debugger now includes an lcd command, that outputs information about the LCD controller and related registers
Improved audio quality, especially on Windows, by adding supersampling support
Upgraded the SDL port from SDL 1.2 to SDL 2.0
The following features were added to the SDL port:OpenGL renderer
Reset and pause shortcuts
Ability to mute and unmute the audio
Ability to switch model between CGB and DMG without restarting SameBoy
Ability to open ROMs with drag and drop
Resizing, with 3 different mode (Entire window, keep aspect, and integer ratio)
Help dialog, accessible by the Shift+? shortcut (macOS) or F1 (Other platforms)Improved input in the Cocoa debugger; supports command history (up/down) and reverse search (^R)
Accuracy Improvements/Fixes
Much more accurate emulation of HDMA
The effect of the DI opcode is no longer delayed
SameBoy’s CGB boot ROM no longer incorrectly changes the RAM bank
Fixed a bug where HUC1 banks higher than 0x1F were not mapped correctly
Fixed a bug where MBC5 would map the wrong bank if address 3XXX is written before 2XXX is
The STOP instruction is now treated as a 2-byte opcode
LCD timing was rewritten and is now much more accurate
Corrected behavior of the HUC1 RAM enable switch
Large ROMs use MBC3 if the header claims no MBC should be use, for better compatibility with unofficial ROMs
Fixed a bug in the implementation of the STAT write bug
The value of SCX now affects the LCD’s mode 3 length
More accurate FPS capping that tracks time correctly even when the LCD is off
Window behavior rewritten and and is now much more accurate; fixes Donkey Kong ‘94
Fixed a bug where sound is generate on the wave channel while it shouldn’t be
The following games now pass the automatic testing:
Alfred’s Adventure, Animorphs, Armada - FX Racers, Asterix - Search for Dogmatix, Bad Badtz-Maru Robo Battle, Barbie - Pet Rescue, Bear in the Big Blue House, Blue’s Clues - Blue’s Alphabet Book, Boarder Zone, Bob et Bobette - Les Dompteurs du Temps, Caesars Palace II, Captain Knick-Knack (Sachen), Daikaijuu Monogatari - The Miracle of the Zone II, Disney’s Tarzan, Doug’s Big Game, Dragon Tales - Dragon Wings, The Emperor’s New Groove, Fort Boyard, Honkaku Yonin Uchi Mahjong - Mahjong Ou, Hoyle Casino, Kinniku Banzuke GB3 - Shinseiki Survival Retsuden!, Konami GB Collection Vol.2, Konami GB Collection Vol.4, LEGO Racers, Lemmings & Oh No! More Lemmings, Les Aventures De TinTin - Le Temple du Soleil, Matchbox - Emergency Patrol, Microsoft Entertainment Pack, Pia Carrot he Youkoso!! 2.2, Pocket Music (E), Pokemon Card GB (J), Puchi Carat, San Francisco Rush 2049, Scrabble, The Simpsons - Night of the Living Treehouse of Horror, Star Wars Episode I - Obi-Wan’s Adventures, Supreme Snowboarding, Tintin in Tibet, Toki Tori, Tomb Raider - Curse of the Sword, Turok 3 - Shadow of Oblivion, VS Lemmings, World Destruction League - Thunder Tanks, Yu-Gi-Oh! Duel Monsters 4 - Saikyou Kettousha Senki
Bug Fixes
The SBC instruction was incorrectly printed as “LBC” in the debugger
The LDH instruction was not symbolicated
Fixed a bug with saving and loading save states and battery states on Windows
Fixed a bug where saving or loading save states sometimes worked incorrectly in the SDL port
Fixed a bug where the VRAM window would now show correctly if the game is paused
Fixed a bug where ^C in the Cocoa port would not move the focus to the console
Misc Internal Changes
Major refinements to the API
--0.8--
This version is not compatible with save states of older versions. This version ignores key bindings set by older versions
New/Improved Features
The debugger now includes a ticks command, to allow tick counting
The debugger now includes a palettes command, to allow dumping the palettes in CGB mode
General optimizations
Complete Game Boy Camera support in the Cocoa port, basic support in the SDL port
Debugger syntax improved, commands now allow modifiersprint/eval can now have a format modifier (e.g. print/d)
examine can now have a byte count modifier (e.g. x/4)
The debugger now includes a disassemble command
Added a VRAM viewer to the Cocoa port
Game Boy Printer emulation in the Cocoa port
New icon for GBC files, following Nintendo’s color-coding convention, fixed icon alignment for both GB and GBC icons
Quick Look support in Cocoa: GB and GBC files now display in-game screenshots on their cartridge icon
Accuracy Improvements/Fixes
The APU emulation was refactored, and is now faster and now longer dependent on the sampling rate
LCDC’s bit 0 is now properly emulated (Fixes: Krusty’s Fun House)
The HALT bug is now emulated
The user is now prevented from pressing opposite keys at the same time (Fixes Pocket Bomberman)
Fixed MBC2 RAM emulation
Corrected emulation of the palette registers in CGB mode
HUC1 is now partially emulated, sans the IR sensor
Basic HUC3 support, only the MBC is emulated
Implemented the STAT-write interrupt bug (Fixed: Road Rash and Zero no Densetsu; these games do not work on CGBs)
Limited the LY=144 interrupt to DMG mode, as hinted by MooneyeGB’s test ROMs
The following games now pass the automatic testing: All-Star Baseball ‘99, Cave Noire, Daisenryaku, F-1 Race, Game Boy Camera, Hatris, Ironman, Konami Golf, Kwirk, Meitantei Conan, Nintendo World Cup, Pocket Bomberman (J), Puzzle Boy, SS Spinner, The Smurfs, Speedball 2, Tecmo Bowl, Teenage Mutant Ninja Turtles 2, Tsuri Sensei, Ultima, Ultra Golf, WordZap, Z - The Miracle of the Zone, Zerd no Densetsu
Bug Fixes
Fixed a deadlock in the Hex Editor/Viewer when viewing APU data
Fixed a crash when accessing MBC RAM on some ROMs that do not have MBC RAM
Multiple watchpoints did not function correctly
Improved the behavior and performance of the open dialog in Cocoa
Fixed dereferencing a non-banked address in the debugger
VRAM was not initialized
Fixed an edge case where the Hex Editor/Viewer crashed
Breakpoint and watchpoint conditions no longer trigger other watchpoints; fixed potential crashes
Better handling of input in the Cocoa port when the system has a non-ASCII keyboard layout
Minor fixes for the help debugger command
Misc Internal Changes
Added rumble API, but it is not actually used by any of the GUIs
Added serial API, but it is currently only used internally for the Game Boy Printer
--0.7--
New/Improved Features
The debugger now includes a backtrace command to show the stacktrace
Cocoa port now includes a Hex Editor/Viewer
The debugger help command was improved
General improvements to debugger usability
The SDL port now compiles on Windows (Binaries included)
Mouse hiding in Cocoa is now only enabled during full screen
The Cocoa port now remembers the mute setting
SameBoy now issues a warning when loading a game that uses an unsupported cartridge
Cocoa port now remembers previous breakpoints/watchpoints after reset
Cocoa port now automatically shows the open if needed
Accuracy Improvements/Fixes
OBP0/1 are now initialized to the correct value (Fixes Mooneye’s DMG hardware registers test).
A disconnected serial cable is now emulated. Fixes:Baseball
Faceball 2000
Fighting Simulator
Godzilla
Hiryuu Gaiden
In Your Face
Lunar Lander
Pinball Party
Sneaky Snakes
Super R.C. Pro-Am
WWF Stars
Yoshi’s Egg
Correctly emulating unused OAM RAM in DMG mode
DMG boot ROM now finishes with the original register values (Fixes Mooneye’s DMG boot registers test)
RTC clock latching is now emulated.
Fixed APU issues where simultaneously running games could affect each other
Fixed APU issue that could break some games. Fixes:Chiki Chiki Tengoku
Moguranya/Mole Mania
Fixed MBC RAM not being properly reset. Old save data must be deleted for this fix to apply. Fixes:Purikura Pocket 3
Probably affects many other games
Bug Fixes
Boot ROMs were not trimmed correctly
Fixes several bugs that caused the Cocoa port to freeze when using the reset command during debugging
Misc Internal Changes
SameBoy can now be compiled with precompiled (non-SameBoy) boot ROMs
SameBoy includes an automated game ROM tester
--0.6--
New/Improved Features
Conditional r/w/rw debugger watchpoints
Added the “!=” operator to the debugger
Redefined the debugger input and output syntax, being more consistent with RGBDS
Debugger now reads .sym files (Tested with 3 popular formats). It shows symbols when possible, and allows using them in expressions
Debugger data types can now be either 16-bit values, or 25-bit full addresses that include a bank identifier
Debugger commands and expressions support full addresses as parameters. This allows, for example, breaking on an address on a specific ROM bank, or reading a value from a specific MBC RAM bank.
Some debugger commands may now run without breaking the debugger. (Similar to LLDB or GDB’s async mode)
SDL port now supports save states
Improved performance by about 6% by enabling link-time optimizations
Reduced file size by stripping executables
Several Cocoa-only UX improvements:Prevented being paused “twice” (Both by the pause option and the debugger)
Optional proportional resizing
Proper fullscreen support
Mouse cursor is now hidden while running
Accuracy Improvements/Fixes
This version includes major accuracy improvements, which allow it to pass 54 tests out of mooneye-gb’s 58 acceptance tests (2 of which fail due to not including the original boot ROM); more than any other emulator.
Rewritten MBC support, with MBC1M support (Fixing some N-in-1 cartridges)
Major accuracy improvements to OAM DMA.
Corrected a lot of instruction memory-access timings
Corrected some IO register masks
Major accuracy improvements to timers (TIMA/DIV)
Bug Fixes
Corrected operator priorities in the debugger
Fixed a bug where a breakpoint might have been ignored
Reduced CPU usage when running games with a real time clock
Handling ^C and ^D more sanely in SDL port
Fixed memory leak in Cocoa
Misc Internal Changes
Added infrared API, but it is not actually used by any of the GUIs
Fixed build system bugs that caused needless dep file generation, and made the Cocoa build fail sometimes if SDL is not installed
--0.5--
This version is not compatible with save states of older versions.
New/Improved Features
Updated save state format, should now be much more future compatible
Save state compatibility between 32 and 64 bit versions of SameBoy
Cocoa version is now using OpenGL 3
HQ2x filter added (Cocoa only)
A new, redesigned OmniScale filter; old filter is renamed to OmniScale Legacy (Cocoa only)
Cocoa port now “remembers” the last window size
Added boolean operators to the debugger
Added conditional breakpoints
Accuracy Improvements/Fixes
Better emulation of certain behaviors of the SCX register
Fixed emulation of the STOP instruction
Minor fix to the accuracy of the JOYPAD register
Minor improvements to HDMA accuracy
Bug Fixes
Improved concurrency in the Cocoa port
Fixed a bug where an emulator window in the Cocoa port will freeze until resized
Fixed incorrect disassembler outputs
Fixed a potential crash when deleting a breakpoint
Misc Internal Changes
Large code refactoring, getting ready to stabilize API
--0.4--
This version is not compatible with save states of older versions.
New/Improved Features
Cocoa port now includes several scaling algorithms, including a beta of the exclusive OmniScale algorithm
SDL port now includes sound support
SDL port now includes battery save support
Accuracy Improvements/Fixes
APU emulation now includes stereo support
Improved PCM registers emulation
More accurate STAT interrupt emulation. This fixes Altered Space.
Bug Fixes
The Cocoa port ignored some key presses if the user keyboard layout included non-ASCII characters
Fixed a bug that could cause a crash when adding or removing a breakpoint
--0.3--
New/Improved Features
New debugger command: cartridge (alias: mbc) shows information about the cartridge and the current status of the MBC
Experimental debugger command: sld (Short for Stack Leak Detection) behaves similarly to finish, but stops if a stack leak or stack overflow is detected
The Cocoa port now allows configuring controls
Accuracy Improvements/Fixes
ROM banks now wrap (Fixes game: Pocket Monster Adventures (Bootleg))
Fixed incorrect DMA behavior, DMA might fail for specific source addresses (Fixes game: The Smurfs 3)
Timer registers were counting too slow in CGB double speed mode
Corrected read behavior of the HDMA5 register (Fixes game: A Bug’s Life in CGB mode)
Fixed a bug with the CGB boot ROM that prevented initialization of the wave RAM
The CGB boot ROM now loads the DMG tilemap for specific games, just like the original ROM (Fixes game: X (intro animation))
Fixed a bug where audio channel 3 was playing silently while it should have been muted.
Bug Fixes
Debugger’s finish command now behaves correctly when interrupts are involved
Corrected the description for the breakpoint command
SameBoy will not create save files for ROMs without cartridge RAM or RTC, even if they report having a battery, preventing 0-bytes save files
--0.2--
New/Improved Features
Support for multiple breakpoints
Better debugger command style and error reporting; includes help command
In the SDL port, ^C in the terminal will break the debugger instead of quitting SameBoy
Cocoa port now saves preferences (Model and frame blending)
It is not possible to toggle console output and debugging in the Cocoa port
Accuracy Improvements/Fixes
Read/write masks corrected for several registers
Corrected 144th OAM interrupt behavior
LCD operation moved to advance_cycles, fixing some obscure timing issues (Fixes game: X / Ekkusu)
More accurate emulation of the registers controlling DMG emulation on CGB
Emulation of PCM_12 and PCM_34 in the SDL port
Bug Fixes
Debugger’s next command can now exit a function
--0.1--
Initial public release0.2
New/Improved Features
Support for multiple breakpoints
Better debugger command style and error reporting; includes help command
In the SDL port, ^C in the terminal will break the debugger instead of quitting SameBoy
Cocoa port now saves preferences (Model and frame blending)
It is not possible to toggle console output and debugging in the Cocoa port
Accuracy Improvements/Fixes
Read/write masks corrected for several registers
Corrected 144th OAM interrupt behavior
LCD operation moved to advance_cycles, fixing some obscure timing issues (Fixes game: X / Ekkusu)
More accurate emulation of the registers controlling DMG emulation on CGB
Emulation of PCM_12 and PCM_34 in the SDL port
Bug Fixes
Debugger’s next command can now exit a function
--0.1--
Initial public release