Releases: LIJI32/SameBoy
SameBoy v0.15.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
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
SameBoy v0.15.4
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
SameBoy v0.15.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
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
SameBoy v0.15.2
This version is backwards compatible with save states from SameBoy 0.14.3 and newer, as well as save states from any BESS compliant emulator
New/Improved Features
- A setting to allow joypad input when SameBoy is not in focus was added to both frontends
- The SDL GUI now follows the user-configured Game Boy palette
- The SDL frontend now supports Game Boy palettes exported from the Cocoa port, and now includes 7 new palettes to choose from
- The scrollbar in the SDL frontend is now draggable
- The SDL GUI now correctly allows using the user-configured buttons in its menu
- An OpenAL audio driver is now available for Linux and other Unix users in the SDL port
- Up to two joypad hotkeys may now be configured to perform actions such as pausing and saving states in both frontends
- The
softbreak
debugger command was given a better description - Both frontends will now warn you if progress cannot be saved when loading a ROM
- Game Boy Player (using CPU AGB A) is now a selectable Game Boy Advance revision
Accuracy Improvements/Fixes
- Emulated a glitch where a misconfigured window can insert pixelsΒ between tiles on models prior to the Game Boy Color, fixes Star Trek - 25th Anniversary
- Fixed a window-related regression, affecting edge cases where WX=0
- Accuracy improvements to emulation of the Game Boy Camera
- Accurate emulation of JOYP switching delay on the DMG
- Realistic emulation of button bouncing while keeping lag to a minimum
Bug Fixes
- Fixed a bug where SameBoy crashed on Windows 7 when using turbo while the XAudio driver was in use
Misc Internal Changes
- Fixed a potential memory corruption when SameBoy is used as a library in a C++ project
SameBoy v0.15.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
- Improvements to the updater mechanism in the Cocoa port, should handle both Gatekeeper and write permissions better
- The SDL frontend now allows switching between audio drivers, rather than defaulting to the "best" supported driver
- The Windows XAudio2 drivers now use the system's default sample rate, which prevents audio resampling and improves the audio quality
Bug Fixes
- Fixed SameBoy crashing on launch on Windows 8 and Windows 8.1 machines
Misc Internal Changes
- Fix code signing when locally building release builds of SameBoy on ARM-based Macs
SameBoy v0.15
New/Improved Features
- Improved UI for the VRAM Viewer's palette and object views
- Customizable palettes for monochrome models in the Cocoa frontend
- Bundled with several new palettes as examples
- The bundled register names symbol file now correctly names several undocumented registers
- Improved performance by better utilizing Link-Time Optimizations
- The Memory Viewer, as well as the debugger
examine
command, no longer trigger side effects when reading from memory - The Develop menu in the Cocoa frontend now lists options to hide or show the background or object "layers"
- Introducing PPU "fast paths", improving performance by up to 34% with not accuracy losses
- Removed the use of slow floating point arithmetics in the APU code to improve performance
- Introducing lazy APU output generation, improving performance by up to 17%
- Link-Time Optimizations are now enabled for Windows build, significantly improving performance on Windows
- A new
dma
debugger command - Improved the performance and responsiveness of the Cocoa VRAM Viewer and Memory Viewer
- New icon, minor visual refresh across both the Cocoa and SDL frontends
- Cartridge Instances now allow having multiple saves for the same ROM file in the Cocoa frontend
- The debugger
apu
commands now display a single channel - Audio recording is now available in both the Cocoa and SDL frontends
- The SDL frontend now uses XAudio2 on Windows, when available
- The more common
rX
hardware symbol naming scheme now replaces theIO_X
scheme; the latter remains supported - General code optimizations for overall performance improvements
Accuracy Improvements/Fixes
- The Game Boy Pocket/Light is now available for emulation
- Every CGB revision is now available for emulation, adding CGB revisions 0, A, B and D
- An option to select the CGB revision is now available in the SDL port
- Added MBC7 support
- The mouse, as well as a joystick, can be used for motion controls
- On the Cocoa frontend, a supported controller's motion controls can be used as well
- Accurate timing of clearing bits in the IF register
- Improved accuracy of LY change timings
- Improved accuracy of the LY=LYC condition in revisions prior to CGB-D
- Improved emulation of a glitch that makes channel 3 use the CPU's address bus as an index to the wave sample buffer
- Fixed an incorrectly emulated theorized glitch where writing to VRAM in certain timings would corrupt data
- Improved emulation of the TILE_SEL glitch
- Major improvements to DMA, HDMA, and GDMA, including timings, revision differences, interaction with halt/stop, and all sorts of bus conflicts
- This allows pixel-perfect emulation of certain demos, such as It Came from Planet Zilog
- Improved IR modelling, fixes Gen 2 PokΓ©mon Mystery Gift
- Added MMM01 support, including Mani carts
- Improved emulation of channel 1/2 "zombie stepping"
- Improved serial accuracy
- Correct emulation of how SCX prolongs mode 3
- Including emulation of "SCX banging", which can disrupt the PPU state machine and, on a real device, damage the LCD
- Improved emulation of object timings where X=0
- Fixed a regression where MBC5's initial ROM bank was not 1
- Improved emulation of the Game Boy Camera MBC
- Improved HuC-1 emulation, fixes a Robopon Japanese Prototype ROM
Bug Fixes
- Fixed a bug in the Cocoa frontend where screenshots with filters applied would come out blurry on Retina displays
- Fix several instabilities in the Cocoa audio driver
- Fixed a bug where certain writes, when emulating CGB-C, would corrupt the emulator state
- Fixed a bug where the SDL fronted did not correctly load the palette setting
- Fixed a bug where the debugger
undo
command was available while not stopped - Fixed GDMA being used incorrectly in SameBoot
- Fixed a bug where the obscured object indicator did not function correctly in the VRAM Viewer's object view
- Fixed the Preserve Waveforms setting, now it behaves as intended
- Fixed a bug where closing an instance connected via serial to another instance would not behave correctly in the Cocoa frontend
- Fixed SDL crashes on certain Linux systems
- Fixed UI issues on OS X Mavericks
- Fixed achievement supports in the Libretro frontend
- Fixed the 16x16 cartridge icon in both Cocoa and FreeDesktop
- Fixes audio glitches during the SGB jingle
- Visual fixes for the GBS player on macOS Big Sur and newer
Misc Internal Changes
- Improvements to the input hints API
- Added safe memory read API
- New memory write callback API
- New API to determine DMG-mode CGB
- Improved APIs to handle input
- New execution callback API
- New LCD line callback API
- An API for adjusting the RTC speed, for TAS verifications
- An API for detecting lag frames
- The direct access API now supports accessing the CPU registers
- An API for allowing illegal directional inputs
- General preparation for future support of different AGB revisions
SameBoy v0.14.7
This version is backwards compatible with save states from SameBoy 0.11.x and newer, as well as save states from any BESS compliant emulator
New/Improved Features
- The Cocoa frontend now has a built-in screenshot functionality
- The Cocoa palette viewer now uses a monospaced font
Accuracy Improvements/Fixes
- Fixed incorrect emulation of the SVBK register
- This fixed BESS compatibility issues between SameBoy and other emulators when importing save states of non-Color games on a Game Boy Color and using the original boot ROMs
- This also fixes RAM not being properly randomized in DMG games running on a Game Boy Color when using the original boot ROMs
Bug Fixes
- Improvements to stability and security when loading save states
- The SDL port now detects ANSI-incompatible Windows consoles and reverts to the previous behavior
SameBoy v0.14.6
This version is backwards compatible with save states from SameBoy 0.11.x and newer, as well as save states from any BESS compliant emulator
New/Improved Features
- Scrolling is now smooth when running the SDL port on macOS
- The SDL port's debugger now has a readline-like interface; featuring history, search, auto-complete, text formatting, and improved asynchronous input
- This also introduces asynchronous debugging to the Windows version
- Minor UI improvements on Big Sur
Accuracy Improvements/Fixes
- Fixed a bug where NR32 was treated as the wrong value after an APU reset
- Writes to wave RAM are now blocked, as expected, when emulating a Game Boy Advance
- Fixed the Game Boy Color and Advance boot ROM not properly initializing wave RAM
- Improved accuracy of mid-line SCX writes, fixes Infinity
ld sp, hl
now triggers an OAM corruption on affected models- Improved emulation of Super Game Boy multiplayer, fixes several games that were not responding to inputs
- Fixed the Super Game Boy
ATTR_SET
command not working correctly, fixing several mis-colored SGB games - Fixed inaccurate Super Game Boy border fade timing, which caused some games to have corrupt borders
- Fixed inaccurate Super Game Boy graphic transfers, which caused some games to have corrupt borders
- Fixed Super Game Boy rendering of unused tiles, which caused some games to obscure the Game Boy viewport entirely
- Fixed a bug that caused 7-part Super Game Boy commands to lock SGB features, effectively freezing some games on blank screens
- Several timing improvements to the Super Game Boy
- Fixed a mistyped condition that caused a timer glitch to be incorrectly emulated
- Accurate emulation of how the wave channel behaves on restart
- Mostly complete emulation of an APU glitch where channel 3 could read from wave RAM while inactive using the CPU's main address bus on models prior to the Game Boy Advance
- The Game Boy Color and Advance boot ROM animation had its timings slightly altered to better match the original boot ROMs
Bug Fixes
- A typo was fixed in the debugger
mbc
command - Fixed a crash in the SDL port that could happen when swapping ROMs
- Handling of tiny (Less than 32KB) ROMs is now more consistent
- Fixed a bug in the SDL port that flipped the controller left and right keys in the menu
- Resetting a game after loading a save state from a different CPU revision now resets the CPU revision to the user-selected revision on the Cocoa port
Misc Internal Changes
- Fixed an internal struct issue that could have lead to future compatibility issues
- The automatic tester now supports Super Game Boy
SameBoy v0.14.5
This version is backwards compatible with save states from SameBoy 0.11.x and newer, as well as save states from any BESS compliant emulator. Outside of macOS, this version is identical to 0.14.4 other than the version number.
Bug Fixes
- Fixed a bug that sometimes prevented opening GBS files
SameBoy v0.14.4
This version is backwards compatible with save states from SameBoy 0.11.x and newer, as well as save states from any BESS compliant emulator
New/Improved Features
- GBS support updated to support common non-standard formats, as well as ugetab's GBS extensions
- ROM and GBS loading errors and handled better in the Cocoa frontend
- SameBoy is now better categorized on Linux desktops
- The Cocoa frontend now includes an optional update checker and installer
- Improved support for running without OpenGL in the SDL frontend, added command-line flag to disable OpenGL
- SameBoy will now attempt to load .snX save states (used by other emulators such as BGB) if a .sX save state is not found
- The Cocoa frontend now has volume control
- The Cocoa and SDL frontends now include an optional speedrun-friendly OSD
- DualSense controllers now have first-tier support in the Cocoa frontend, with rumble, LED, and analog turbo/slow-motion support, in both wireless and USB modes
- The SDL frontend now supports the -s/--stop-debugger command line flag, which starts SameBoy with a stopped debugged on the first instruction
- A new realistic low contrast color correction mode, "Harsh Reality", was added
- Improved the ticks debugger command with more detailed output
- Improved warnings when entering PPU or APU odd-modes
- Major improvements to JoyKit, which should allow previously broken controllers such as Xbox controllers or 8BitDo controllers to work in the Cocoa frontend
- The libretro frontend has been updated to the newer options API, which majorly improves core option screens in RetroArch and other libretro interfaces
Accuracy Improvements/Fixes
- Improved accuracy of RTC latching
- Fixed a bug that prevented STAT interrupt blocking from functioning correctly in the transition to VBlank while the OAM interrupt was disabled
- Disabled an attempt to improve audio accuracy that resulted in audio regressions in several games
- Improved T-cycle accuracy of VBlank
- Major improvements to emulation of the STOP instruction and speed switching
- MBC5's RAM enable register is now correctly emulated as an 8-bit register
- Improvements to several edge cases of the OAM corruption bug
- Fixed an issue where several DMG games would boot with incorrect palettes when using SameBoy's built-in boot ROMs
Bug Fixes
- Fixed a bug where the 'O' key could not be mapped in the SDL frontend
- Corrected the default mapping for DualShock 4 and DualSense controllers in the Cocoa frontend
- Fixed a bug that prevented using the Switch Pro Controller in USB mode in the Cocoa frontend
- Fixed a bug where Cocoa's VRAM viewer could appear blurry
Misc Internal Changes
- The GBS APIs now allow loading from a buffer
- Redundant MBC data removed from BESS save states