github shanytc/snes9x 1.63.28

3 hours ago

Super FX 3 (FX3) — New Chip Support

Thanks to the legendary Randy Linden!

  • New cart types $17 (FX3) and $18 (FX3 + battery), detected alongside the classic GSU codes.
  • GSU MMIO relocated to $7000–$7FFF (mirroring every $400, $x300 quarter reads open bus); the old $3000 window and $6000–$7FFF RAM window are gone.
  • ROM banking widened to 4 MB for both the GSU and the CPU ($C0–$FF); RAM only at $70–$71.
  • ~4x GSU clock in both cycle and legacy timing modes, stacking with the SuperFX clock multiplier.
  • No SCMR RON/RAN bus arbitration; any ROM or RAM program bank is runnable.
  • STOP resets R15 to 0 — the FX3 has no completion IRQ; the CPU polls R15 from its V-IRQ.
  • MERGE repurposed as a command port keyed on R0: chunky-to-planar conversions (0–2) and framebuffer-third clears (3–5).
  • VCR reads $52. Savestates need no format change — the FX3 flag is re-derived from the cart on load.

SNES Rumble (Shake) Support

Support for the Port-1 pass-through rumble dongle the 2026 LRG carts drive (Tested with RT.SFC Rumble test demo).

  • The core decodes the WRIO ($4201) bit-bang protocol — one bit latched per $4016 read-clock, preamble $72, then right/left motor magnitudes.

Street Fighter EX Plus Alpha - Protection Simulation

The pirate cart's protection chip is now simulated, so the game finally runs: boot, menus, player select, full rounds with fighters, timer, damage, and round transitions.

  • Without the chip's three answers the game black-screened on boot (APU upload overran into the IPL), drew HUD-but-no-fighters, or hit the "CPU is deadlocked" crash via a 2-byte-per-frame stack leak.
  • The patch is pinned to the dump's CRC32 plus 12 code-byte matches, and the ROM-info dialog still identifies the original pre-patch dump.

Game Boy / Super Game Boy

  • Sachen MMC1 open bus: banks past the end of the ROM chip now read $FF instead of mirroring — fixes Rocman X Gold + 4 in 1 hanging forever on its boot-logo probe loop. All 17 Sachen carts in the test set A/B-verified.
  • Sachen RA7-high logo detection: carts that keep the Nintendo logo in the RA7-high half of the scrambled window ("4 in 1 + 8 in 1" and its three siblings) are now detected instead of booting to the SGB red-X reject screen.
  • MBC5 multicart base/mask banking: the 23 in 1 (Taiwan) menu's $5001/$5002 registers are implemented, so its sub-games (Super Mario 3, GB DBZ Gokou, Tarzan, Tetris, …) actually launch. Ordinary MBC5 carts are untouched.
  • SGB BIOS mode powers on with the LCD off, matching hardware — fixes the GB boot logo rendering as scattered tile fragments (Balloon Fight GB, Castlevania Legends). A mid-splash warm reset now power-cycles instead of stranding the BIOS on a half-drawn logo.

RetroAchievements

Full pass over the RA maintainer review's issue list:

  • The achievement list is modeless (the game keeps running), refreshes live once a second, and gains Progress and Type (Missable / Progression / Win Condition) columns plus a game/user summary header.
  • Hardcore now permits fast-forward/speed-up (RA rules only forbid sub-100% speeds); slow-mo, frame-advance, and rewind blocks show OSD notices instead of failing silently.
  • Real login feedback: server errors in a MessageBox, success confirmation with points, empty-field validation. Toasts expire in wall-clock time so a later ROM load doesn't replay a stale backlog.
  • Menu shows Logout <user> (<points>); new View Profile item opens the RA profile page.
  • Logging in with a game running hard-resets once the game is identified (single posted reset; the hardcore toggle no longer resets twice).
  • Netplay (snes9x netplay or Kaillera) suspends achievement processing so remote players' inputs can't earn unlocks on this account; triggers re-arm when the session ends.
  • libretro: GB memory maps are exposed to the frontend, so GB achievements finally evaluate against GB WRAM instead of never firing — also fixes RetroArch cheat search for GB games.

SFC-Box

  • The keyswitch 2/3 trial banner now reads "Free play in progress", and the check-play banner and minutes-only trial countdown are translated ("Time left N min").
  • gtk/qt builds compile the supervisor-board sources (sfcbox.cpp, hd64180.cpp) they were missing.

Input (win32)

  • Controller auto-assign is now user-pickable and newly plugged pads no longer hijack configured slots (#178): the Input Config device label is a dropdown of all detected controllers, and the free-slot fallback skips slots whose saved GUID belongs to another (possibly unplugged) device.

Libretro

  • Decoded values go through the frontend rumble interface (strong=left, weak=right).

Win32 / UI

  • Added Input → Enable Rumble (Shake) toggle (persisted, default on) drives the SDL gamepad holding Port 1's bindings; rumble auto-stops on pause/exit.
  • Registry file associations are opt-in (#180): AddToRegistry defaults to off, registration uses a SuperSnes9x identity instead of squatting on official Snes9x's, stale per-exe entries are swept (including renamed copies), and the Settings checkbox applies immediately.
  • i18n: translated dialog controls are measured and sized at runtime with the control's real font (33 languages, English layouts untouched); the menu-localization cache is keyed by command ID so the runtime-inserted BIOS popup no longer scrambles the Emulation menu on language switches.
  • Cheat search watch buttons moved clear of the Data Size group box (spotted by Nekokabu in PR #181).

Bootable Games:

  • Astro Hawk (PD)
  • Street Fighter EX Plus Alpha
  • StarFox 1 (FX3) - Patch the .bps onto StarFox
  • StarFox 2 (FX3) - Patch the .bps onto StartFox 2
  • Ultimate Doom (FX3)
  • Rocman X Gold + 4 in 1
  • 4 in 1 + 8in 1 (and its three siblings)

Images

FX3

image image image image

Street Fighter Ex Plus Alpha

image image image

RetroAchievements

image image

Win32

Cotroller Selection

image

Windows Registry Support

image

Rumble (Shake) support

image

Don't miss a new snes9x release

NewReleases is sending notifications on new releases.