Releases: LIJI32/SameBoy
Releases · LIJI32/SameBoy
SameBoy v0.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
SameBoy v0.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 - The
registers
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
- GameCube adapters (Both official and PC adapters): Full support, including automatic mappings, multiplayer, analog controls, and rumble
- 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
) - 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
SameBoy v0.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 - Improved build portability, will now use
pkg-config
if available
SameBoy v0.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
SameBoy v0.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
SameBoy v0.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 - 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
SameBoy v0.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
SameBoy v0.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
SameBoy v0.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 - Fullscreen support in the SDL port
- Improved audio in the Windows SDL port, on supported versions of Windows
- The
delete
andunwatch
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 - 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 - 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 - Correct emulation of the DMG
STAT
-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 - 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 asRLC
- 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
SameBoy v0.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