SameBoy Versions Save

Game Boy and Game Boy Color emulator written in C

v0.16.3

1 month ago

This version is backwards compatible with save states from SameBoy 0.14.3 and newer, as well as save states from any BESS compliant emulator

New/Improved Features

  • The “Hot Swap Cartridge” functionality now allows hot swapping a file with a newer version of itself in the Cocoa version
    • This can also be done with the new “Reload ROM” menu item, available while holding Shift in the Emulation menu
  • The SDL frontend now uses the modern folder selection dialog when selecting a boot ROMs folder on Windows
  • Add an option to allow pressing A+B by touching the space between the two buttons in the iOS frontend
  • The iOS frontend can now choose between 3 audio modes; Enabled, Disabled, and Controlled by Silent Mode
  • The iOS IPA release is now ad-hoc signed to prevent TrollStore from signing it with the wrong entitlements
  • The iOS Deb release is now compatible with both rootful and rootless jailbreaks

Accuracy Improvements/Fixes

  • Updated the built-in SGB boot ROMs so they're closer in timing to the original boot ROMs

Bug Fixes

  • The Cocoa and iOS versions now display the correct license for SameBoy
  • Improved compatibility with certain ISX files
  • Fixed the States screen displaying incorrectly in iOS 16 and newer
  • Fixed several spelling mistakes in the debugger
  • Fixed visual artifacts that may appear in certain scaling filters when scaling with a multiple of 3 factor
  • Prevent filtered screenshots from using 64-bit color depth on the Cocoa frontend, which improves compatibility with certain apps
  • The ticks debugger command no longer outputs “Tick count reset” if the keep flag was used
  • Fixed a bug that prevented Turbo Mode from working on iOS if dynamic speed controls were not enabled

Misc Internal Changes

  • Improved integration with libretro's build infrastructure, which should greatly improve the release schedule of the libretro version of SameBoy

v0.16.2

4 months ago

Accuracy Improvements/Fixes

  • Improvements to the "Accurate" frame blending option; SameBoy now correctly tracks the "parity" of each frame, and uses a more realistic blending ratio
  • Support for bootleg ROMs that claim to have no RAM in the MBC field, but also declare a non-zero RAM size

Bug Fixes

  • Removed XAudio 2.7 support and replaced it with the redistributable version of XAudio 2.9, fixing various crashes on Windows 7
  • Fixed an issue with the menu graphics being glitched in the SDL frontend if SameBoy is set to display a border
  • Fixed the update dialog in the Cocoa frontend displaying the changelog in the wrong font on versions of macOS
  • Fixed Quick Look support being broken on macOS Sonoma
  • Fixed a bug where the Cocoa and iOS frontend would sometimes flicker when using the Metal renderer

v0.16.1

4 months ago

This version is backwards compatible with save states from SameBoy 0.14.3 and newer, as well as save states from any BESS compliant emulator

New/Improved Features

  • SameBoy on iOS will now warn the user if it hasn't been correctly signed, which could prevent "Open With" from working with SameBoy

Accuracy Improvements/Fixes

  • Fixed a bug that made SameBoy think a WorkBoy was connected in some cases where a Game Boy Printer was connected

Bug Fixes

  • Fixed a bug that made SameBoy incompatible with macOS versions 10.9 to 10.15
  • Fixed several UI issues with the Printer Feed on macOS Big Sur and newer
  • Prevent some Cocoa toolbar items from overflowing into a menu item that would crash on click
  • Fixed a bug that prevented SameBoy from opening ROM files if VisualBoyAdvance was also installed on macOS
  • VSync is now automatically disabled in the SDL frontend if the screen refresh rate is under 60Hz, which could cause garbled audio on some machines
  • Fixed a bug where the SDL frontend would indefinitely hang if the current audio device became unavailable while using the XAudio 2.7 driver

Misc Internal Changes

  • The iOS Deb releases no longer contain local file ownership information
  • The SDL version used in the Windows release has been updated to 2.28.5

v0.16

5 months ago

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 new, fully-featured iOS frontend:
    • Supports every iPhone, iPad and iPod Touch model running iOS 11 or newer (iOS 13 or newer is recommended)
    • Can be installed by side-loading (using AltStore or TrollStore) or using a jailbreak
    • Innovative and customizable touch controls, including support for analog rewind, fast-forward and slow motion
    • Save states
    • Scaling filters
    • In-game rumble support
    • Game Boy Camera support
    • Motion controls for supported games
    • Notifications for alarm-clock-enabled games
    • Advanced emulation settings
    • A lot more!
  • Reopening a ROM from Finder or other means now reloads the ROM in the Cocoa frontend
  • The SDL frontend received a small facelift
  • Cheats support in the SDL frontend
  • The SDL frontend can now pick a specific revision from CLI
  • A new reset command in the debugger, supporting 3 types of resets
  • Several new changes that improved performance:
    • Disabled inlining of several slow-path functions
    • Enabled the compiler's fast-math flag
    • Prevention of loop unrolling for large, non-speed-critical loops, to improve utilization of instruction caches
    • Optimize the GUI code for size rather than speed to improve utilization of instruction caches
    • Work around Clang and GCC generating slow code for inline compile-time constants
  • Support for ranged breakpoints and watchpoints
  • Breakpoints and watchpoints are now identified by a unique ID rather than an address, deletion is now done by ID
  • The IO_ prefix for hardware registers in the debugger has been removed in favor of the more standard r prefix
  • The Cocoa memory viewer's "Go to" field can now switch banks and address spaces
  • The Cocoa memory viewer now symbolicates its selection in the status bar
  • The debugger now supports backwards single stepping, if rewinding is enabled (experimental)
  • Sending SIGUSR1 to the SDL frontend now triggers a reset command
  • Improved controller assignment in the Cocoa frontend, especially when playing multiplayer SGB games or when emulating the link cable
  • Menu and keyboard shortcuts to scale windows up and down to the next integer factor in the Cocoa frontend
  • The Windows builds are now 64-bit, greatly improving performance on Windows

Accuracy Improvements/Fixes

  • Emulation of open bus behavior when reading disabled cartridge RAM
  • More accurate emulation of volume envelope locking on the pre-Color models, as well as CGB revisions older than D
  • Improved Printer timings, allowing the mini game in Hello Kitty Pocket Camera to be played
  • First-party Nintendo games will now have correct initial register values when using the built-in CGB and AGB boot ROMs
  • Improved accuracy of JOYP switching delay
  • Fixed a timing issue when aborting an object fetch using an LCDC write
  • Improvements to object fetching address calculation timings
  • Accurate emulation of PPU registers write conflicts in CGB double speed mode
  • Correct emulation of reading SVBK, fixes Flyeyes (unlicensed game)
  • Wired Switch Controllers now get automatic button mappings in the Cocoa frontend
  • Fixed a bug where GBS files were starting with a wrong value in the IE register, fixes several GBS files
  • Emulation of the OAM corruption glitch triggered by the jr instruction, as well as halt and stop modes
  • Correct read emulation of the BANK register while still in the boot ROM
  • Fixed a bug where accurate RTC emulation halted while SameBoy wasn't running
  • Accurate emulation of many sweep-related glitches, including revision differences
  • Fixed a bug where HDMA5 was not correctly updated when disabling HBlank HDMA
  • Correct, revision-accurate emulation of reading from VRAM in the last cycle of Mode 3
  • Channel 3 is now correctly mixed when emulating a GBA

Bug Fixes

  • The "Step" icon in the Cocoa debugger was broken on non-Retina displays
  • Fixed a bug where certain temperature tint settings would tint too much
  • Banked breakpoints no longer trigger while executing the boot ROM
  • Fixed camera emulation using the wrong aspect ratio on some Macs
  • Fixed a bug that caused artifacts on the right and bottom edges of the Game Boy Camera
  • Fixed a bug that allowed rewinding across ROM switches in the SDL frontend
  • Fixed a bug that made rewinding try to rewind across model changes
  • Fixed a bug that made save states created on Windows incompatible with other operating systems, and vice versa
  • Several settings in both the SDL and Cocoa frontends had some unexpected defaults, which have been adjusted
  • GameShark cheats were not imported correctly
  • Fixed imported cheats not appearing in the Cocoa frontend
  • Fixed the built-in MGB boot ROM being unexpectedly larger than it should be
  • Prevented cases where the Cocoa debug console would remain open after closing a ROM
  • Fixed a bug that caused the Libretro core to crash in link mode
  • Fixed support for Xbox Wireless Controllers in the Cocoa frontend
  • Some constants in the LCD and CRT filters were not updated when the shaders switched to linear RGB
  • Fixed a bug where jump-to breakpoints disassembled the wrong address under certain scenarios
  • Fixed an edge case where jump-to breakpoints did not work as expected, or took a slow code path
  • Fixes a bug where certain macOS versions would fail to restore the previously opened windows due to a regression in Apple's code
  • Fixed a bug that caused the VRAM viewer's toolbar to not appear on macOS Sonoma
  • Fixed a bug where controllers did not always automatically connect or reconnect in the SDL frontend

Misc Internal Changes

  • New APIs to explicitly reset the rewind buffer
  • When building SameBoy in debug mode, assertions will now make sure functions are always called from a safe thread context
  • Fixed an issue that caused the Cocoa preferences window to not open when building on some Macs
  • Certain false positive warnings when building with GCC 9 are now avoided
  • SameBoy can now be built as a library, allowing to disable certain features as required
  • New APU APIs to allow detailed querying of its state
  • SameBoy now correctly refers to its license as the Expat License
  • Fixed an issue that prevented SameBoy to be built if the repository's path included a space

v0.15.8

1 year ago

This version is backwards compatible with save states from SameBoy 0.14.3 and newer, as well as save states from any BESS compliant emulator

New/Improved Features

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

v0.15.7

1 year ago

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

  • 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

v0.15.6

1 year ago

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

  • 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

v0.15.5

1 year ago

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

  • 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

v0.15.4

1 year ago

This version is backwards compatible with save states from SameBoy 0.14.3 and newer, as well as save states from any BESS compliant emulator

New/Improved Features

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

v0.15.3

1 year ago

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

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