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
Street Fighter Ex Plus Alpha
RetroAchievements
Win32
Cotroller Selection
Windows Registry Support
Rumble (Shake) support
