0.16.6
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
- You can now browse Homebrew Hub and download submitted games and demos directly in the iOS frontend.
- Currently, only open-source submissions can be viewed in-app. The ability to allow other submissions to appear in SameBoy will be added to Homebrew Hub soon.
- The option to open SameBoy’s Library in the Files app has been added to the iOS frontend’s Library screen.
- Screen dimming is now disabled while emulation is running in the iOS frontend.
- Improved D-pad controls in the iOS frontend – the center point of the D-pad is now a safe “rest” zone; dragging a touch outside of the D-pad no longer releases the button.
- User-provided boot ROMs can now be selected in the iOS frontend.
Accuracy Improvements
- Accuracy improvements to the square “zombie stepping” glitch in CGB-D and CGB-E, fixed Telefang title audio that was broken for these revisions.
- Writing to NRx3 and NRx4 in the same cycle these registers are read by the APU is now emulated correctly.
- SameBoy will now select
cgbE_boot.bin
, if available, when emulating CGB-E.
Bug Fixes
- Fixed a bug that triggered occasional audio distortions on some Macs and iOS devices.
- Fixed a bug that made the iOS version sometimes incorrectly prefer SGB over CGB emulation for some newly imported ROMs.
- Fixed a bug that could crash SameBoy upon pausing in the iOS and Cocoa frontends.
- Fixed a bug that made the Cocoa frontend’s Debug Console windows always on top.
- Fixed a 0.16.5 regression that broke the Cocoa frontend’s Memory window on macOS Sonoma.
- Fixed stability issues when emulating the Game Boy Camera in the iOS frontend.
- Fixed a bug that caused haptics and rumble to temporarily stop working in the iOS frontend.
Misc Internal Changes
- Internal support for AGB-0’s boot ROM was added to the core’s API (AGB-0 remains unsupported as an emulated revision for now)
Version 0.16.5
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. This version’s change set includes the changes from version 0.16.4, which was exclusive to the iOS App Store.
New/Improved Features
- The iOS frontend is now available on the App Store
- The App Store version requires iOS 13 or higher, while the version targeting side-loading and jailbroken devices still supports iOS 11 and 12.
- The following new features has been added to the iOS frontend:
- Support for MFi, PlayStation, Switch and Xbox controllers. Support includes rumble functionality, motion controls, analog controls, and button remapping.
- A launch screen was added.
- A new “Import ROM File” button was added to the Library screen.
- Multiple interface themes were added.
- The App Store version has additional themes that can be unlocked by supporting SameBoy’s development.
- The iOS frontend now shows tips and facts in the pause menu.
- Tapping SameBoy’s logo now opens the pause menu.
- The button haptics strength can now be changed.
- After importing a new ROM, a suitable model is automatically selected
- The default rewind duration in the Cocoa and iOS frontends was change to 2 minutes to match the SDL frontend.
- Debugger windows no longer hide when the Cocoa frontend is out of focus.
- Each debugger window now includes the ROM name in its titlebar in the Cocoa version.
Bug Fixes
- The Cocoa and iOS frontends no longer incorrectly include the word “Version” in their version strings.
- Fixed a bug that caused filtered screenshots to be saved as 32-bit per channel on the Cocoa frontend.
- Fixed a bug affecting iPads that left the game paused under some conditions after exiting certain screens.
- Fixed incorrect handling of loading save states of an incompatible MBC RAM size.
- Fixed a visual glitch with the Monochrome LCD scaling filter, which also caused filter screenshots to be semi-transparent.
- Fixed a bug that allowed rewinding auto-loaded states back to the boot ROM in the iOS frontend, potentially losing data.
- Fixed a bug that caused the camera-change button to be positioned incorrectly on notched iPhones running the iOS frontend.
Misc Internal Changes
- Fixed build issues when using the current master branch of RGBDS to build SameBoot.
- Fixed a false positive warning when using certain GCC versions.
- The iOS frontend’s license has been updated.
Version 0.16.3
This version is backwards compatible with save states from SameBoy 0.14.3 and newer, as well as save states from any BESS compliant emulator
New/Improved Features
- The “Hot Swap Cartridge” functionality now allows hot swapping a file with a newer version of itself in the Cocoa 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
Version 0.16.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
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
Version 0.16.1
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
Version 0.16
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