github shanytc/snes9x 1.63.30

6 hours ago

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

image image image image image image image image image image

Don't miss a new snes9x release

NewReleases is sending notifications on new releases.