Releases: LIJI32/SameBoy
SameBoy v1.0.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
- Added support for more controllers in the iOS frontend, including singular Joy-Cons
- Pressing buttons while in a locked rewind state now exits rewind mode in the iOS frontend
- The iOS frontend now handles save conflicts with a dialog, making syncing saves across different machines and emulators easier
- An
examine/xcommand can now use the/smodifier to change its output style to RGBDS-compatible assembly - An
examine/xcommand can now use$in its modifier to use hexadecimal count values - It is now possible to adjust the maximum rumble strength
- It is now possible to modify and save a running ROM file from the Memory Viewer in the Cocoa frontend
- Controller buttons can now be assigned to one of 4 hotkey commands in the iOS frontend
- Periodic saves were added to the iOS frontend
- A new screenshot hotkey was added to the SDL frontend
- Controller UI hiding in the iOS frontend can now optionally disable the centering of the game screen
- The Cocoa and SDL frontends now save the battery more frequently
Accuracy Improvements/Fixes
- Added silence detection to eliminate rounding artifacts when playing nothing but frequencies above Nyquist
- Prevented abnormal vblank events from updating the SNES-side buffers prematurely
- Fixed a bug that made reading the PCM registers non-deterministic when emulating a CGB in CPU revision C or older
- Fixed a bug that caused ROMs to be running in the background under some cases in the Cocoa frontend
- Fixed a bug that caused channel
PCM12to output incorrect channel 2 values when emulating CGB in CPU revision C or older - Improved the accuracy of the
PCMregisters when emulating CGB in CPU revision C or older - Emulated a new quirk where volume envelope ticks are delayed while emulating a CGB in CPU revisions D or E
- Corrected the channel alignment of channels 1 and 2 while emulating CGB in CPU revision C or older
- Fixed a bug where a volume envelope quirk that was only applicable to channels 1 and 2 was also applied to channel 4
- Major improvements to emulation of channel 4 start delays
- Emulated a quirk where one of channel 4's internal counters counts while the channel is inactive
- Emulated LFSR corruptions and "zombie steps" when writing to
NR43, including revision differences
Bug Fixes
- Fixed mouse cursor hiding behavior while debugging in the Cocoa frontend
- Fixed an issue where rewinding could reset the ROM under some circumstances in the iOS frontend
- Fixed a visual glitch in the reverse search functionality of the Cocoa debugger console
- Fixed a memory leak in scenarios where
getlinefails on some platforms - Fixed a resource leak in scenarios where loading a cheat file fails
- Fixed resource leaks in certain scenarios where loading a battery save or an ISX ROM fails
- Fixed a bug that caused the SDL frontend to be stuck on the greyscale palette
- Fixed a bug where starting an audio recording could crash on Windows on some systems
- Fixed a bug where the Game Boy Camera could not be emulated correctly on some iPhone models
- Fixed a spelling mistake in an iOS tip message
- Fixed a bug where certain versions of macOS did not display SameBoy's icon
- Fixed an issue that made it impossible to change the RTC mode in link mode in the libretro frontend
Misc Internal Changes
- Updated the boot ROMs so they can be built with the latest version of RGBDS
- Removed code for supporting legacy Windows save states from versions no longer compatible with modern versions of SameBoy
- Fixed compilation of the SDL frontend on
unsigned charplatforms - Made it possible to build the Cocoa frontend using older SDKs
- Removed accidentally committed debugging code from the Cocoa frontend
SameBoy v1.0.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
- New
usagedebugger command, displaying the Game Boy CPU's time outside of halt/stop modes - The debugger window in the Cocoa frontend now has a CPU usage graph
- The debugger
print/evalcommand no longer adds zero padding by default - The Cocoa frontend now has an option to force an integer scaling factor with black borders, similar to the SDL frontend
- The iOS frontend can now configure rapid A and rapid B buttons on a controller
- The SDL frontend now supports two optional V-sync modes
- The Cocoa and iOS frontends were updated with UI and UX improvements for macOS and iOS 26, respectively
- This also includes new icons when using on these operating systems, as well as on watchOS 26
- Minor UI improvements were also done for older versions of macOS and iOS
- SameBoy now supports the new menu bar on iPad OS 26
- Improved frame skipping during turbo mode
- Turbo mode can now have a configurable speed cap on all frontends
- In the iOS frontend, this supersedes the 200% and 400% overclocking-based turbo mode options
- Major improvements to audio quality, eliminating aliasing when playing high frequency tones
- The iOS frontend will now alert the user if automatic save states could not be created for some reason (e.g. lack of disk space)
- The iOS frontend will now ask for confirmations before resetting a ROM
Accuracy Improvements/Fixes
- Fixed an inaccuracy where the channel bias is applied to disconnected channel when mixing audio while emulating the Game Boy Advance
Bug Fixes
- Fixed a bug that caused certain GameShark codes to be imported incorrectly
- Pressing the Zoom button with alt/option pressed now resizes the window to the next integer scale even on newer macOS versions
- The debugger side view in the Cocoa frontend no longer scrolls to the bottom on longer outputs
- Fixed a bug that causes cheat search to crash when used on a ROM with no cartridge RAM
- Fixed a bug that prevented the Game Boy Printer from saving printed images to the iOS photo library
- Fixed a bug where certain addresses would be described incorrectly in the Cocoa frontend's memory viewer
- Fixed a bug that caused GBS files to play the boot ROM jingle upon loading instead of the first track
- Fixed a bug that made the cheat search window remain open even after closing its ROM
- Fixed a bug where imported ROMs were copied instead of moved, and vice versa, on iOS
- Fixed a bug where Cocoa's VRAM viewer would not show scrolling on some macOS versions
- Fixed a bug where emulation would not automatically resume after reaching the end of the rewind buffer on iOS
- Fixed a bug where the Cocoa frontend will fail update itself if it wasn't moved to the Applications folder
- The iOS fronted now correctly handles cases where a user tries to open a ROM from an internal iOS or SameBoy folder
- Mitigated a rare bug where certain actions could spontaneously reset a ROM on iOS
- Fixed a bug with the
GB_save_stateAPI where it returned success even on failures - Fixed a bug that prevented the binary releases of the Cocoa frontend from using the Mac's camera while emulating the Game Boy Camera
- Fixed a bug where the interface would rotate while playing motion-controlled games on some iOS devices
Misc Internal Changes
- Fix build on OpenBSD
- SameBoy's headers are now compatible with ANSI C and C++ compilation modes
- The
DISABLE_*flags can now be used while building subsets of thelibtarget, as well as the newly-addedheaderstarget - The Windows build process was changed to require Git Bash and Make instead of the GNUWin package
SameBoy v1.0.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
- UI improvements to the Cocoa palette editor
- Improved audio quality on libretro; audio is now rendered by SameBoy at 2MHz, and downsampling is now handled by the libretro frontend itself
- In the Wii U build, downsampling is still done by SameBoy
- With the meaning of register
$FF75discovered, it is now referred to asrPGBin the debugger - The output of the
watchpointdebugger command now includes the watchpoint type (read-only, write-only, or read-write)- This makes the default watchpoint type (write-only) more obvious
- Windows 11 users can now optionally disable rounded corners in the Graphics Options menu
- Official Windows builds no longer require installing MSVC runtimes by linking against
mvscrt.dll - Major improvements to debugging in the SDL frontend:
- The main emulator window is no longer unresponsive when the debugger is stopped
- Pressing keys in the emulator window while the debugger is paused now triggers a terminal bell
- On Windows,
sameboy.exeandsameboy_debugger.exehave been merged. Press Ctrl+C at any time to interrupt the debugger and open the debugger console, and close the console window at any time to resume normal gameplay. - Async debugging now supports all compatible versions of Windows, adding support for Windows 7, 8.x, and earlier builds of Windows 10
- When using an external controller, joysticks can now optionally be used as faux analog controls
- This feature quickly alternates D-pad buttons between pressed and release states to simulate analog inputs
- The SDL frontend will now automatically resize the window when switching between models and border modes as long as the window hasn't been manually resized
- A workaround for an old RetroArch bug has been removed, audio in the Wii U libretro port is now louder
- It is now possible to enable audio for both Game Boys in the Link Cable mode of the libretro port
Accuracy Improvements/Fixes
- OAM randomization is now more accurate
- Fixed a bug where certain SGB transfers would copy data incorrectly when running SameBoy on big endian platforms
- This fixes many SGB games suffering from garbled graphics when playing on the Wii U
- Fixed a potential accuracy issue when emulating MBC7 games
- The number of band-limited phases was increased in order to reduce overtones in high-pitched sounds
Bug Fixes
- New palettes will now appear on the Cocoa frontend even if the user have previously customized palettes
- Fixed a bug that caused the Pink Pop theme to modify itself once opened in the palette editor, in both the Cocoa and iOS frontends
- Fixed a bug where the vertical layout was not usable on certain iPads
- Resetting emulation in the SDL version while the emulator is paused will now resume emulation
- Fixed a bug where changing the emulated model in the SDL frontend does not immediately closes the menu
- Removed Unicode characters from libretro settings, as many frontends cannot display them
- Fixed a bug that caused ROMs to run without a window in the Cocoa port after changing the emulated revision
- Several iOS and watchOS crashes have been fixed
Removed Features
- Integration with the Homebrew Hub has been removed from the iOS frontend
Misc Internal Changes
- The OpenDesktop thumbnailer is now stripped when built in release configuration, rather than being stripped only upon installation
- Official releases of SameBoy now build using the latest version of Clang, gaining speed boost of around 8%
- The FM synthesis routines used while rendering the SGB jingle have been optimized for speed
SameBoy v1.0
This version is backwards compatible with save states from SameBoy 0.14.3 and newer, as well as save states from any BESS compliant emulator
New/Improved Features
- SameBoy for watchOS is now available:
- Transfer ROMs and saves to and from the iOS frontend (App Store only)
- Two customizable control schemes optimized for a small screen
- Fast Forward and Rewind support
- Settings and synced from the paired iPhone
- Available to active supporters or via a one-time payment
- The Cocoa frontend is now digitally signed and notarized
- SameBoy on Open Desktop platform can now generate thumbnails in file browsers via theXDG Thumbnails API
- Improved AirPlay Mirroring support in the iOS frontend
- Full-screen mode is now supported in the iOS frontend if a controller is used
- The Cocoa and SDL frontends now support automatic model selection
- Cheat Search is now available from the Cheats menu in the Cocoa frontend
- The user interface for the Cheats window has been improved in the Cocoa frontend
- The Cocoa and SDL frontends can now associate keyboard or joypad buttons with Rapid A or Rapid B
- Game Boy Printer can now be emulated in the iOS frontend
- Cheats can now be used in the iOS frontend
- iCloud support was added to the iOS frontend (App Store release only)
- The palette editor was added to the iOS frontend; it can now import, export and create its own palettes
- 7 new palettes were added to all frontends
- The horizontal layout on iPhones that have a notch has been improved
- 3 new interface themes were added to the iOS frontend (App Store release only)
- Improved ISX file compatibility
- The Cocoa frontend and now select a monospace font to be used in the debugger and other development windows
- The cartridge icons have been retouched and visually improved
- The SDL frontend on Windows can now associate itself with supported ROM files, and provide them with icons
- The box filter used for audio downsampling has been replaced with band-limited synthesis, vastly improving audio quality in all frontends
- A warning is now shown when loading a ROM with a RAM size smaller than a single bank
- iPhones that have x4 and x5 cameras can now pick a virtual x2 zoom factor when emulating a Game Boy Camera
- Improved the OAM viewer in the Cocoa frontend so it correctly show objects even when the object palette is all set to a single color
- Quick Look has been updated to support the newer thumbnailing and previewing APIs, required by macOS Sequoia
Accuracy Improvements/Fixes
- Improvements to OAM accessibility timings
- Improvements to PPU timings in CGB revisions 0 to C
- These revisions are no longer marked as "Experimental"
- More accurate emulation of SCX write conflicts on all models
- More accurate PPU fetcher timings, fixes visual glitches in in “Mr. Chin's Gourmet Paradise” and “Turrican”
- Improved accuracy of cases where WX is 166 on pre-CGB models
- Improved accuracy of window edge cases, including emulation of a newly-discovered CGB window glitch, and improved accuracy in double speed mode
- Improved accuracy of LYC edge cases when emulating CGB revisions 0 to C in double speed mode
- Improved emulation of LCDC OBJ_EN write conflicts
Bug Fixes
- Fixed a bug that caused the Mute menu item to incorrectly appear marked while a ROM is paused in the Cocoa frontend
- Fixed a bug that made keyboard shortcuts affect the wrong ROM in certain cases where multiple ROMs and debug windows were open in the Cocoa frontend
- Fixed a bug that prevented macOS 10.13 and older from using Link Cable emulation in the Cocoa frontend
- Fixed a bug that made importing palettes in the Cocoa frontend glitchy
- Fixed a bug that made Game Boy Camera emulation in the Cocoa frontend sometime incorrectly stretch the camera input to incorrect aspect ratios
- Fixed a bug that made audio output too low in the iOS frontend under certain conditions
- Fixed a bug that caused the Library in the iOS frontend to crash if ROMs were modified in the Files app while it was open
Misc Internal Changes
- The core now supports outputting 2MHz audio (without downsampling)
- The Quick Look plugin and the main application now share the same code on disk, making the Cocoa frontend slightly smaller
- Fixed a bug that caused certain APIs to return success values despite failing
- Improved thread and context safety assertions in the core
make libbuilds SameBoy as a dynamic library now, in addition to the previously available static library- This includes Windows support, which remains unsupported for static libraries
- Improvements to the core APIs. The API is now stable and documented
SameBoy v0.16.7
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
- It is now possible to cycle between different main cameras on supported iPhone models in the iOS frontend
- The iOS frontend can now directly open ZIP archives
- ROMs can now be deleted from the iOS library using a context menu as well
- The Homebrew Hub in the iOS frontend was moved to a tab
- A new flat CRT filter is now available
- Retouched iOS icons, including support for dark and tinted icons
Bug Fixes
- Worked around a Wayland bug that sometimes caused SameBoy to crash it on exit
- Fixed a bug caused turbo/slow-motion/rewind modes to unexpectedly exit when using an external controller in the iOS frontend
- Prevented the console from flashing in the Windows version
- Fixed a bug when comparison operators had the wrong priority in the debugger
- Fixed a potential crash involving haptics in the iOS frontend
- Fixed a bug that caused the
deleteandunwatchcommands to list the wrong breakpoint/watchpoint after deleting one - Fixed more potential edge cases that could prevent the Cocoa frontend from opening files
- Fixed incorrect spellings of Game Genie as "GameGenie"
Misc Internal Changes
- Fixed an issue that made macOS binaries incompatible with some older versions of macOS when using the latest macOS SDK
- SDL2 has been upgraded for Windows releases
SameBoy v0.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)
SameBoy v0.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.
SameBoy v0.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
ticksdebugger 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
SameBoy v0.16.2
Accuracy Improvements/Fixes
- Improvements to the "Accurate" frame blending option; SameBoy now correctly tracks the "parity" of each frame, and uses a more realistic blending ratio
- Support for bootleg ROMs that claim to have no RAM in the MBC field, but also declare a non-zero RAM size
Bug Fixes
- Removed XAudio 2.7 support and replaced it with the redistributable version of XAudio 2.9, fixing various crashes on Windows 7
- Fixed an issue with the menu graphics being glitched in the SDL frontend if SameBoy is set to display a border
- Fixed the update dialog in the Cocoa frontend displaying the changelog in the wrong font on versions of macOS
- Fixed Quick Look support being broken on macOS Sonoma
- Fixed a bug where the Cocoa and iOS frontend would sometimes flicker when using the Metal renderer
SameBoy v0.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