Version 0.13.6

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

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

Version 0.13.5

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

Bug Fixes

Fixed major regression introduced in 0.13.4 that prevented saving progress in games and caused several other issues

Version 0.13.4

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

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

Version 0.13.3

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

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.

Version 0.13.2

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

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

Version 0.13.1

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

Bug Fixes

Fixed a potential memory corruption when loading certain malformed ROMs

Improved stability when loading corrupt preference files in the SDL port

Version 0.13

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

New/Improved Features

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

New Monochrome LCD scaling filter

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

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

Gamma correction added to the CRT scaling filter

Add “Reduce Contrast” as an additional color correction mode

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

The next debugger command now skips over HALT

debugger command now skips over HALT The registers debugger command now display IME as well

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 rumble Unofficial 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 Bluetooth Some 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 frontends SDL 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 )

debugger command to enable/disable software breakpoints ( ) 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 emulation Alarm 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

Version 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

size Improved build portability, will now use pkg-config if available

Version 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

Version 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

Version 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

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

Version 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

Version 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

Version 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

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

and 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

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

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

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

-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

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

instruction was incorrectly disassembled as 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

Version 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

Version 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)

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

Version 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.

Version 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

Version 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 modifiers print/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

Version 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

Version 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

Version 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

Version 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

Version 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

Version 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

Version 0.1

Initial public release