Super Game Boy Color (new, Experimental)
- New SGBC mode: an SGB2 with a Game Boy Color inside with customs borders support.
- This mode runs a memory patched SGB2 BIOS with per-game in-memory patch to support colors and borders.
- Color now comes from the cart instead of the stale SGB palette.
- Pre-palette fallback goes through BGP.
- DMG-compatibility color is routed through BGP/OBP.
- Carts whose SGB detect beats the Color branch get dedicated patches.
- Note: not all games might work out of the box - some issues might occur during game play / boot.
Super Game Boy
- MLT_REQ is latched in the ICD2 instead of waiting for the BIOS.
- BIOS mode carries its cycle remainder instead of flooring twice, and deducts GB cycle overshoot (fixes audio pacing).
- Packet bits latch on the rising edge, not the falling one.
- MASK_EN honored on the BIOS pane, LCD-off treated as a freeze.
- Boot logo held on displayed content, hidden under the SGB BIOS, and shown only when a boot ROM was actually assigned.
- GBC-only carts are no longer forced out of SGB BIOS mode on the container path.
- Sprite-limit hack offered in SGB BIOS sessions.
Game Boy
- Mode 3 split into a timing skeleton and an output machine.
- Window insertion-glitch kill latched per machine, DMG window-kill narrowed to the tile-number stage, window output latch no longer double-counted.
- Mode-0 STAT interrupt sourced from the transition, CGB gets its own STAT mode-window edges.
- LCD-enable line timing passes mooneye lcdon_timing and lcdon_write_timing.
- WY comparator re-run on LCDC and WY writes.
- Pre-DMA OAM bytes kept for scan slots read before the transfer.
- Several emulator cores can run at once (used by the shootout pool).
- New "Suppress NRx Glitches" sound setting, default on (fixes the CH1 zombie click).
New Game Boy Mappers
- Added support for Unlicensed mapper families: Rocket, Makon/NT, BBD, Sintax, Li Cheng, Vast Fame, and kin.
- Enabled support for Zook Hero Z mapper and protection.
BIOS Manager, Game Boy Model selector
- GB/GBC carts boot through a real boot ROM for the power-on logo, offered as a fourth BIOS choice.
- New: File > BIOS Manager: assign BIOS files by path, now the source of truth for all BIOS files. Console list reordered, Super Game Boy 2 split out, SGB revision named, optional slots marked.
- SGB boot ROM slots with per-slot validation. Real SGB-CPU boot ROM dumps found by their No-Intro names. Blank slots resolved from the whole BIOS folder, zipped or renamed.
- Emulation > BIOS renamed to Game Boy Model. One Automatic model decided from the cart header. Entries with missing BIOS greyed. Model hotkeys added (win32 hotkey tab, Qt/GTK).
- Missing BIOS reported on the OSD instead of a modal box, UI stays in its no-game state.
- Hard reset picks up BIOS Manager changes. Both Super Famicom Box BIOS files named, only the required one blocks.
- Sufami Turbo and Satellaview carts load through File > Load Game (or double click on the rom file.)
- Mono carts boot on the Color without its BIOS.
- Cheat lifecycle fixed in the SGB BIOS-mode load paths.
SNES emulation
- PPU: A.S.P. Air Strike Patrol beam-raced mid-scanline effects (INIDISP brightness windows, raster spans bounded to their horizontal extent, mosaic onset, scroll boundaries, per-line backdrop).
- gfx: frames no longer skipped mid-interlace (half the scanlines went black).
- SuperFX: cycle-accurate GSU timing (Winter Gold), GSU ROM/RAM buffer overlap modelled (Yoshi's Island slowdown), 11MB SuperFX mapper, new vars moved into the gsu struct with a settings/command-line mode switch.
- MSU-1 packs load from archives, with an offer to rename plain .zip ones.
Audio (win32)
- WaveOut sound-sync pacing could lock about 20% below real time. Now paced from the play cursor.
RetroAchievements
- User agent now "SuperSnes9x/1.63.1", unicode truncation fixed.
- Logging out no longer disables RetroAchievements. The running game is identified on a mid-session login.
- Hardcore will not work anymore, it was declined by the RA team.
Qt/GTK (Linux)
- Updated to match win32's features:
- Added run ahead, output image processing filters, save state banks and state hotkeys,
- Added sound menu with per-channel toggles and mute plus Sound Settings, Color Correction dialog, LRG rumble cart support,
- Added input menu with controller device list, File > Save Other,
- Added movie and AVI recording, Audio Waveform viewer,
- Added SNES image and Game Boy Image settings,
- Added File > Choose Icon.
- Game Boy ROMs listed in the Open dialog.
- BIOS-less Game Boy frames shown instead of a black screen. SGB BIOS preference persisted.
- Config file migrated to the shared conffile format with comments and toggles, header written as "SuperSnes9x".
- Fixes: SRAM autosave interval, scrambled SoundFilter token map, Wayland segfault with Qt < 6.5, black menubar text on KDE dark schemes, Shader Settings only enabled with a preset, GTK Vulkan build and lockup, GTK accelerator table.
Win32
- Choose Logo renamed to Choose Icon, with an option to register file types under the chosen icon.
- Duplicate SuperFX speed control removed from Hacks.
- Sound Settings item moved to the end of its menu.
- OSD message fixes.
- American spelling in fork text.
Acid Tests
- When installed as acid/ folder next to the executable, a new Tests > Acid Tests menu will appear. SuperSnes9x passes all 264 tests, matching Coffee GB.
- Acid baselines per emulator from the shootout table, baselines fetch script replaces tracked files.
- Acid Tests dialog supports thread count, live rows, screenshots, pause, filters, export, per-emulator baselines, Test Diagnosis dialog, own Tests menu.
i18n
- Updated translation files (added missing keys / updated keys)
Build, CI, packaging
- macOS: Qt .app and universal libretro core, both self-signed. Info.plist regenerated after clean.
- GitHub Actions nightlies for win32, Qt/GTK AppImages, macOS, and the libretro cores.
- Android: minizip built without the fopen64 family, 32-bit file API.
- libretro: reports 1.63.29 without a git hash, ROM extension not stripped twice, built with zip support for MSU-1.
- Dangling libco submodule pointer dropped, gitignore cleanups, unzip includes fixed without SYSTEM_ZIP.
- Screenshot PNG output ordering and png_set_shift placement fixed.
Images
