top of page
loading_reduced.jpg

0.15.8 / 07-11-2022

SameBoy

Accuracy

Performance

Features

average rating is 4.1 out of 5
average rating is 4 out of 5
average rating is 3.3 out of 5
competition

SameBoy is a user friendly Game Boy and Game Boy Color emulator that's very accurate and includes a wide range of powerful debugging features. In addition to accuracy and developer capabilities, 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

--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 sequence

  • SameBoy is now properly categorized as a Game app in macOS’s Launchpad

  • The lcd command now displays the background shifter and fetcher states

  • The 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 address

  • The tick debugger command now has an optional keep argument, which prevents resetting the tick count

  • Joy-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 stack

  • Fixed 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 command

  • Both 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 successfully

  • Fixed 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 description

  • Both 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 memory

  • The 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 command

  • Improved 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 channel

  • Audio 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 the IO_X scheme; the latter remains supported

  • General 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 well

  • Accurate 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 stopped

  • Fixed 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 models

  • Improved 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 games

  • Fixed 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 command

  • Fixed 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

Show Previous Changes

--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 command

  • The 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 HALT

  • The registers debugger command now display IME as well

  • Added volume control to the SDL frontend

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

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

  • The Cocoa frontend now supports cheats

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

  • Rewritten and improved controller support in Cocoa, featuring rumble, player LEDs, and analog controls for turbo and slow motion. Controller support:
    GameCube adapters (Both official and PC adapters): Full support, including automatic mappings, multiplayer, analog controls, and rumbleUnofficial adapters in PC mode support analog rumble, as opposed to PWM binary rumble; the use of PC mode is recommended
    Generic “Twin USB” DualShock 2 PC adapter: Automatic mapping, multiplayer support
    Switch Pro Controller: Full support, including automatic mappings, rumble, and player LEDs; via both USB and Bluetooth

    DualShock 3: Full support, including automatic mappings, rumble, player LEDs, and analog controls; via both USB and BluetoothSome Macs seem to be unable to communicate LED and rumble information to DualShock 3 controllers; the use of USB for this controller is recommended
    Generic controllers: Basic functionality, may need to be manually remapped in settings
    Support for more controllers will come in future releases

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

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

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

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

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


Accuracy Improvements/Fixes

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

  • Fixed an APU sequencer edge case

  • Fixed a bug affecting HDMA timing

  • Color correction is now more accurate

  • Correct emulation of the OPRI register

  • More accurate emulation of STOP mode

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

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

  • Correct emulation of changing object height during fetch

  • More accurate emulation of the PPU fetcher’s timings

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

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

  • More accurate emulation of background FIFO push timings

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

  • Accurate emulation of tilemap advance timings

  • Implement a missing SGB command (ATTR_CHR)

  • More accurate MBC2 emulation

  • More accurate MBC3 emulation and proper MBC30 support

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

  • Improved HuC-1 emulation

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

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


Bug Fixes

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

  • Fixed cases where the Cocoa frontend froze

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

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

  • Fixed operator priorities in the debugger

  • Fixed a debugger parsing bug

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


Misc Internal Changes

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

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

  • Fixed various compilation errors with GCC

  • Make the libretro frontend compile without warnings

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



--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 size

  • Improved 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 CGBs

  • Fixed an APU regression where the noise channel’s volume envelope ran too fast

  • More accurate emulation of analog APU characteristics

  • Fixed a CGB boot ROM bug that made some games boot with incorrect palettes

  • Fixed incorrect emulation of echo RAM

  • Fixed a very rare edge case when an interrupt occurs while the stack points to $FF11

  • Correct emulation of the time required to switch the CPU speed

  • Correct emulation of CGB palette accessibility in different PPU timings, fixes Lego Racers

  • Other accuracy improvements to OAM and VRAM accessibility

  • The serial registers now behave realistically by working with bits instead of bytes

  • More accurate initial RAM and VRAM values when using the built in CGB boot ROM

  • Accurate emulation of AGB audio mixing, which is different from older models

  • Fixed the behavior of the wave channel’s first sample playback, fixes buzzing sounds on LSDJ and several games

  • Most aspects of STOP mode are now accurately emulated

  • Fixed a bug where initial register values were incorrect when selecting a palette for a DMG game in the built in CGB boot ROM

  • Fixed incorrect emulation of the Background and Window enable bit in LCDC


Bug Fixes

  • Fixed a bug where the SDL port would not recognize joypads if started directly to a ROM

  • Fixed a bug where the Quick Look previewer would show glitched thumbnails for DMG games

  • Fixed a regression that made the Cocoa port unable to display anything on Macs not supporting Metal

  • Fixed a bug where modifying RTC data could corrupt MBC RAM data

  • Fixed a bug where CGB save states were significantly larger than they should have been, older save states are converted

  • Fixed several bugs in expression parsing in the debugger

  • Work around a bug where some Windows 10 machines using Intel HD Graphics had unresponsive UI in the SDL port

  • Fixed a bug where the D-Pad did not work on several gamepads in the Cocoa port

  • Fixed a bug where the gamepad D-Pad had unexpected behaviors in the menus of the SDL port

  • Fixed a bug where underclocking slowed down the core to ~40% of its speed instead of an exact 50%


Misc Internal Changes

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

  • Size optimization in the CGB boot ROM



--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 value

  • Fullscreen support in the SDL port

  • Improved audio in the Windows SDL port, on supported versions of Windows

  • The delete and unwatch debugger commands are now less strict

  • Added 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 doing

  • The 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 timings

  • Accurate emulation of several timing edge cases related to the halt instruction

  • Accurate 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 bug

  • Correct emulation of the DMG STAT-write bug, which is just a specific case of I/O register access conflict

  • Emulated 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 symbolicated

  • Fixed 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 as RLC

  • 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.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 size

  • Improved 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 CGBs

  • Fixed an APU regression where the noise channel’s volume envelope ran too fast

  • More accurate emulation of analog APU characteristics

  • Fixed a CGB boot ROM bug that made some games boot with incorrect palettes

  • Fixed incorrect emulation of echo RAM

  • Fixed a very rare edge case when an interrupt occurs while the stack points to $FF11

  • Correct emulation of the time required to switch the CPU speed

  • Correct emulation of CGB palette accessibility in different PPU timings, fixes Lego Racers

  • Other accuracy improvements to OAM and VRAM accessibility

  • The serial registers now behave realistically by working with bits instead of bytes

  • More accurate initial RAM and VRAM values when using the built in CGB boot ROM

  • Accurate emulation of AGB audio mixing, which is different from older models

  • Fixed the behavior of the wave channel’s first sample playback, fixes buzzing sounds on LSDJ and several games

  • Most aspects of STOP mode are now accurately emulated

  • Fixed a bug where initial register values were incorrect when selecting a palette for a DMG game in the built in CGB boot ROM

  • Fixed incorrect emulation of the Background and Window enable bit in LCDC


Bug Fixes

  • Fixed a bug where the SDL port would not recognize joypads if started directly to a ROM

  • Fixed a bug where the Quick Look previewer would show glitched thumbnails for DMG games

  • Fixed a regression that made the Cocoa port unable to display anything on Macs not supporting Metal

  • Fixed a bug where modifying RTC data could corrupt MBC RAM data

  • Fixed a bug where CGB save states were significantly larger than they should have been, older save states are converted

  • Fixed several bugs in expression parsing in the debugger

  • Work around a bug where some Windows 10 machines using Intel HD Graphics had unresponsive UI in the SDL port

  • Fixed a bug where the D-Pad did not work on several gamepads in the Cocoa port

  • Fixed a bug where the gamepad D-Pad had unexpected behaviors in the menus of the SDL port

  • Fixed a bug where underclocking slowed down the core to ~40% of its speed instead of an exact 50%


Misc Internal Changes

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

  • Size optimization in the CGB boot ROM



--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 value

  • Fullscreen support in the SDL port

  • Improved audio in the Windows SDL port, on supported versions of Windows

  • The delete and unwatch debugger commands are now less strict

  • Added 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 doing

  • The 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 timings

  • Accurate emulation of several timing edge cases related to the halt instruction

  • Accurate 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 bug

  • Correct emulation of the DMG STAT-write bug, which is just a specific case of I/O register access conflict

  • Emulated 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 symbolicated

  • Fixed 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 as RLC

  • 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

bottom of page