Super Snes9x to fork oficialnego projektu Snes9X - znajdziemy w nim to, co w zwykłej wersji plus dodatkowe poprawki, jakie autor Shany Golan, dodał do podstawki - całkiem tego sporo. Jakoż, że każdy powód jest dobry aby wrócić do Super Nintendo - nie ma co narzekać - trzeba testować... najlepiej w METAL MARINES;P
SuperSnes9x 1.63.21 5/06/2026
Game Boy Color Core:
- Game Boy Color emulation added — full CGB support in the SGB core.
- CGB-mode rendering, palette/color handling, and automatic CGB loading for CGB carts.
- Fixes CGB rendering under the SGB BIOS and refines cart routing so GB/GBC/SGB titles dispatch correctly.
Game Boy:
- New PPU debugger viewers — GB tile viewer, tilemap viewer, and sprite/OAM viewer, plus per-layer toggles.
- S-PPU and GB-PPU viewer menus are now context-enabled based on the loaded roms.
- MBC1 multicart (MBC1M) support — BANK2<<4 game-slot select so multicarts like "Mortal Kombat & Mortal Kombat II" boot to the correct game bank.
- APU DAC DC-bias modeling — models the DAC's DC bias so master-volume-driven PCM voices (NR50 PCM + CH4 carrier) are no longer cut off.
- Fixes half-playing digitized voices (e.g. Bart Simpson voice samples).
- Square-channel duty reset on trigger (master c0d9941) — resets square duty position on channel trigger, fixing the silent/garbled Telefang title-screen PCM voice jingle.
- Toggle Sprites/Background/Window layers.
Win32:
- Controller image switcher — USA / Euro-Japanese controller image selector in the Input Config dialog using right click on the image.
- Input config multi-bind fixes — fixes multi-bind / single-bind glitches in the input configuration dialog.
Libretro
- Recompiled libretro .dll to support the latest fixes.
SuperSnes9x 1.63.20 1/06/2026
Game Boy / Super Game Boy:
- New mapper support
- M161 mapper — adds support for the Mani 4-in-1 multicart (a forged-MBC3 cart) so its game-select menu works correctly
- Emulation accuracy fixes:
- Fixed a blank-screen hang in Spot caused by the EI; HALT halt-bug being armed while an EI was still pending,
corrupting the interrupt-vector fetch - Fixed the Mr. Do! title screen freezing by latching the STAT LYC-coincidence flag while the LCD is off, instead of
recomputing it from the parked LY
- Fixed a blank-screen hang in Spot caused by the EI; HALT halt-bug being armed while an EI was still pending,
- Auto Layer Transparency (frame-blend):
- New Auto Layer Transparency option that blends alternate frames to restore flicker-based transparency effects (e.g. ZAS)
- Per-layer selector so blending can be enabled independently for background / window / sprites
- Per-title "Auto Layer" defaults, with frame-blend automatically bypassed during fast-forward
- Fixed blend tearing and SGB flicker, and stopped static GB screens from ghosting; added a blend-mode dropdown
- GB blend controls moved into their own "Game Boy Image" group, disabled for SNES titles
- GB mix volume now persists in SGB BIOS mode
Windows (win32) input fixes:
- Hotkey modifiers now mask the GetAsyncKeyState high bit, preventing stray/stuck modifier detection
- Input binding fixes: maxKeys is now derived from the Single/Multi combo alone, capture re-enters when the binding
mode changes mid-focus, and the existing binding (rather than ...) is shown on a mid-focus mode switch
Linux (Qt/Gtk) build system:
- link libpng/zlib directly to the core target to fix a DSO missing link error
Libretro SBG Core (Win/Linux):
- Added Libretro support (separate branch) to build RetroArch core.
- Copy .info to /info, and .dll to /system
- Linux .so is not supplied and user will have to build it on their own from
sgb_libretrobranch
SuperSnes9x 1.63.19 30/05/2026
New Mappers:
Three previously-unsupported cartridge mappers now load and run under SGB emulation. All three reuse existing MbcState fields, so the GB savestate layout is unchanged.
- HuC1 (cart type $FD→ $FF) — Was a read-only stub, so ROM-bank-select writes were dropped and the game jumped into the wrong bank and locked up executing $FC filler.
Reimplemented as MBC1-with-infrared (ROM/RAM banking + IR register). Fixes Chousoku Spinner, Pokémon Trading Card Game. - HuC3 (cart type $FE) — Added the RTC command/response interface plus IR; boot gates on the RTC status command reading back ready. Fixes Robopon (Sun Version).
- Bandai TAMA5 (cart type $FD) — The ROM was rejected at load entirely. Implemented its unusual two-register port ($A001 selects, $A000 carries one nibble), a 32-byte battery-backed EEPROM, the $0A ready handshake, and the TAMA6 RTC. Fixes Game de Hakken!! Tamagotchi - Osutchi to Mesutchi.
Game Boy / Super Game Boy fixes:
- MBC5 keeps cart RAM readable when RAM-enable is off (2026-05-29). Some games run a trampoline out of SRAM; returning $FF while disabled hung them at boot. Fixes the Nettou King
of Fighters '97 SGB boot hang. - Optional frame-blend toggle — PR #87. Games that fake transparency by flickering two backgrounds (e.g. Chikyuu Kaihou Gun ZAS) can now blend each displayed frame 50/50 with the
previous one at the shared end-of-frame hook. New "Blend Game Boy Frames" checkbox in Display Settings. - Independent GB volume slider in SGB BIOS mode
SuperSnes9x 1.63.18 27/05/2026
Super Game Boy / GB emulation fixes:
This release fixes alot of games that uses Mappers as well as some games that are not playable on all emulators (like Messen)
GB PPU hardware correctness
- STAT IRQ hardware quirks (LCD-off guard, LY=153 edge case) — fixes Zerd no Densetsu boot
- DMG STAT-write quirk now only fires on newly-enabled source bits
- Mode 3 sprite stall + WX latching — fixes One Piece dialog torn edges
- BGP latch at mode 2→3 boundary — try-fix for split-scanline palette glitch
- SCX-fine mode-3 penalty modeled (per-scanline raster timing)
Cart mappers support
- Sachen MMC1 mapper + scrambled-logo detection (Sachen 4 in 1 4B-007 boot)
- Sachen BIOS-mode boot fix: value-gated unlock + MbcRead synth path
- MMM01 multicart mapper added (Mani / Taito 4-in-1)
- MMM01 sub-game SGB palette injection (no splash)
- Cart MBC now resets on File → Reset (Sachen 4B-007 no-cartridge post-reset)
- Cart SRAM defaults to $FF instead of $00 — fixes Initial D Gaiden text rendering
Audio:
- Independent GB volume slider in BIOS-less SGB mode enabled
SuperSnes9x 1.63.17 21/05/2026
SGB:
- Blank last visible scanline in OverlayBiosBorder (fixes bottom frame-glitch)
- Route GB cart .sav through CMemory::Save/LoadSRAM into SRAM_DIR
- Fix save state & restore state: boot ROM remap, handshake cache, ICD2 bridge
- Skip GBE block in S9xUnfreezeScreenshotFromStream
- Per-source SPC/GB volume sliders for SGB BIOS mix
Win32:
- Fix save-slot corruption from SelectSave hotkey on bank > 0 (Also merged into official snes9x project)
Linux: Qt
- Add SGB sources to CMake builds
- Configurable BIOS folder under Settings → Files
- Default Settings.SGB_BIOSPreference to 2 (SGB2 then SGB1)
- Add Emulation → BIOS submenu (None / SGB1 / SGB2)
- Move QActionGroup include above X11-pulling headers
- Mix SPC over GB after S9xMixSamples in SGB BIOS mode
- Master Regular/FastForward + per-source SGB SPC/GB volume
Linux: GTK
- BIOS folder + Emulation → BIOS submenu (parity with Qt)
- Fix snes9x.ui duplicate label157 (BIOS row crash)
- Track snes9x.ui and mini_icon.png in sourcify custom commands
- Mix SPC over GB after S9xMixSamples in SGB BIOS mode
- Master Regular/FastForward + per-source SGB SPC/GB volume
Misc:
- Added Patch Versioning
- Widen About dialog for better reading.
- Tag x64 in emulator's title
SuperSnes9x 1.63.16 20/05/2026
SGB / Game Boy Compatibility:
- General SGB accuracy: Restored instruction-level GB↔SNES interleaving. After each SNES opcode the GB core
syncs to the current SNES cycle, so ICD2 reads ($6000/$6002/$7800) see GB state that varies naturally with
execution. This removes the BIOS band-counter phase-lock that was producing striped/yellow artifacts on
SGB-enhanced carts, and lets us drop the BG3/OAM/tilemap workaround memsets entirely. Gated to
BIOS+post-release so plain GB carts keep the cheap sync. - Killer Instinct '95: Fixed the intro/title screen raster effect — the per-scanline SCX effect that animates
the logo and title text now advances correctly. Previously stalled at ~1 IRQ per frame because PpuWriteReg
never re-evaluated the STAT IRQ line on writes to $FF45 (LYC), $FF41 (STAT), $FF44 (LY reset), or $FF40 bit 7. - Olympic Summer Games: No longer hangs on the yellow BIOS screen. The SGB2 BIOS band-DMA wait at $00:BA6A is
now unblocked when the IRQ-disable flag is set after the JUMP packet handoff. Tiles, custom border, and audio
now appear. - Pro Mahjong Kiwame, Toy Story, and similar titles: Fixed BG3 tilemap being clobbered by the post-handoff
wipe. The 30-frame wipe was zeroing both BG3 char AND BG3 tilemap ($E000-$FFFF), but the BIOS IRQ DMA only
refills char data — tilemap stayed zero forever. Wipe range now matches the BIOS DMA range exactly (0x1680
bytes). - GB games with custom borders: Fixed regression that broke titles uploading their own CHR_TRN + PCT_TRN
borders. The BG3 wipe now also skips when a cart-supplied border is detected. - 2-player MLT handoff: Dropped the forced 2-player MLT at handoff that was causing input quirks.
SPC Audio:
- Eliminated the audible "chang" / release-click that played on every SGB game when the BIOS handed off to the
GB. The pre-release SPC residual sample is now muted through the transition window until the GB boot ROM
completes ($FF50 write); the SGB BIOS chime still plays normally.
GTK & QT Support
- Added support for SGB in QT and GTK.
- Added Bios/ folder selection in Settings => Files
- Added Audio Support for SGB (audio that the sgb is uploading to the Snes)
Save State Conversion Support
- Created a tool (in a new repository) that enables users to convert save states between snes9x and Messen2.
- Upgrade legacy (v6) snes9x save states to modern (v12)
- Download it here
Titles Fixed:
- Legend of Zelda, The - Link's Awakening DX (USA, Europe) (SGB Enhanced)
- Conker's Pocket Tales (USA, Europe) (En,Fr,De) (SGB Enhanced)
- Pro Mahjong Kiwame GB (Japan) (SGB Enhanced)
- Toy Story (Europe) (SGB Enhanced)
- Olympic Summer Games (USA, Europe) (SGB Enhanced)
Super Snes9x 1.63.15 14.05.2026
Cheat Editor Enhancements:
- Win32: cheat editor changes now apply live instead of waiting for the dialog to close
SGB:
- gate BIOS artifact-cleanup memsets on sgb_flag == 0x03 — the BIOS artifact-cleanup
memsets (added in PR #63 for SGB Tetris/Tetris Plus stripe fixes) are now gated on sgb_flag == 0x03, so they only run
for actual SGB carts and don't regress plain SNES titles.
SuperSnes9x 1.63.14
SGB audio:
- GB APU output through a Hermite resampler with adaptive ratio so GB samples match host playback rate.
- BIOS-released audio mix path in CXAudio2: GB owns the voice, SPC is mixed under via MixSpcOverGB.
- GB APU gain + DC blocker tuned to eliminate DC-step impulses at the source.
- Closed-loop SPC chip-clock DRC (S9xSpcAdjustRate + spc::drc_scale applied inside S9xAPUGetClock). Slows the SPC chip toward wall-native rate based on resampler fill, so SPC tempo + pitch stay correct independent of emulator pace.
- S9xSpcResetDrc restores neutral state when leaving SGB mode.
Audio Waveform viewer:
- new menu sub-item: Sound > Show Audio Waveform:
- Three-panel viewer (SPC / GB / MIX) with mint-green filled waveform on black, gray grid, right-side Y-axis
- (-30000…+30000, smpl header), hollow bordered panel labels, shared bottom X-axis (ms) on the MIX panel.
- Live readouts: GB output rate / emu fps, SPC effective Hz + resampler r_step, current UI refresh.
- Right-click refresh-rate menu — 2 / 5 / 10 / 20 / 30 / 60 Hz. Only affects the UI repaint timer; emulator thread is untouched.
- Double-buffered painting (memory DC + BitBlt) and WM_ERASEBKGND suppression — flicker-free at any refresh rate.
- SGB VRAM / handoff
- Hide GB boot-ROM Nintendo logo until the game writes VRAM.
- Latch row/bank for $6000 to fix vertical-stripe artifacts (Pokémon Red, Animaniacs, etc.).
- Zero BG1 tilemap + OAM at handoff, then re-zero each frame for the first 30 frames post-handoff (kills Tetris Plus stripes).
- Zero BG1 + BG3 tilemaps during the BIOS fade-out window, plus pattern-detected BG3 char cleanup for the Tetris fade-in.
- Removed the post-handoff $7800 write gate so CHR_TRN / PCT_TRN packets reach the BIOS.
SGB multi-player:
- Enabled MLT_REQ joypad rotation for SGB-flagged carts; auto-drop forced 2-player MLT after the detection window for
- single-player games miscategorised by the cart header.
UI:
- Video > Show Frame Number toggle.
SuperSnes9x 1.63.13
Build / packaging
- Renamed binary + config to super-snes9x (executable, x64, debug variants, plus super-snes9x.conf) so it no longer collides with stock Snes9X; existing snes9x.conf is left untouched.
Hotkey Configuration dialog
- Redesigned with a tabbed layout (Emulation / Turbo / Display & Tools) replacing the old 5-page dropdown.
- Added a dedicated States tab containing all Save/Load/Select Slot bindings plus Bank/Slot/Dialog/File tools.
- Tidied the header (dropped redundant "Key:" label, vertically centered Master Hotkey row) and grew the dialog so all four legend lines fit without clipping.
- Fixed paint glitches: InputCustomHot now draws its own EDGE_SUNKEN border, tab body uses EnableThemeDialogTexture, and tab switches force a full redraw + focus shift to clear capturing fields.
- Added a Reset Speed hotkey on page 1 (restores FrameTime to NTSC/PAL default; unbound by default).
File menu / window
- Added File → Choose Logo with bitmap previews to switch between the four embedded app icons live (title bar + taskbar, both sizes), persisted as Window:Icon in the config.
Cheat & viewer dialogs
- Cheat Editor is now resizable (WS_THICKFRAME / WS_MAXIMIZEBOX, anchor-based WM_SIZE, min-size floor) and its default width was shrunk from 450 to 280 DLU.
- Cheat Entry/Editor, Cheat Search, Tile (VRAM), Tilemap, and Sprite viewers now persist their position (and the cheat editor's size) across opens, clipped to the nearest monitor's work area.
- Tile Viewer's < / > address arrows now auto-repeat (250 ms hold delay, 50 ms repeat; pauses if you drag off the button).
Audio
- Killed the SGB first-boot click: APU-side one-pole DC blocker (~14 Hz HPF) with seeded initial state, plus onset-aligned cosine fade-in that defers firing until the buffer actually contains audio.
- Suppressed pause/resume and SGB source-switch clicks via cosine fade-in across underruns, fade-out tail on pause, and an APU cross-fade that carries the previous source's last sample forward.
- Fixed CXAudio2 SoundSync freeze on SGB speed change: ProcessSound now breaks out of its wait when bufferCount==0 so PushBuffer can re-prime; PC throttle bypass also gates on the runtime AllowSoundSync flag so off-100% speeds pace correctly.
SuperSnes9x 1.63.12
- Added Per-pixel PPU + per-dot CPU/PPU interleaving
- Fixes mid-LY SCX/BGP/LCDC/WX changes (e.g Animaniacs cloud strip, Balloon Kid title parallax)
- Fixes HBlank-IRQ SCX streaks (e.g Wario Land 2, Balloon Fight)
- STAT IRQs service before PPU advances
- Removed cycle_debt accumulator
- RunFrame runs to vblank past cycle budget so BlitScreen reads complete framebuffers;
- Stopped running a 2nd frame on each CHR/PCT_TRN packet (DK title was at half fps);
- Removed empirical sample-count cap that produced gibberish on some hosts;
- StateLoad no longer wipes sample_head/tail (was discarding runahead audio);
- Skip blit/present during runahead
- Per-opcode SNES→GB sync — added then reverted; aimed at BIOS-mode border corruption at default timing
- Slice-rotation defenses — added then dropped; clamp/phantom-rotation/freeze-capture layers for the 18-slice protocol
- Switched to 4-bank ICD2 protocol — replaced 18-slice;
- Fixed W6001-wobble frame jumps;
- $6000 returns (sgb_row & 0xF8) | (sgb_bank & 0x03);
- $7800 inline planar decode;
- sgb_bank persists across frames;
- Dropped full_frame, full_frame_planar, read_slice, slice_index, r7800_snapshot, freeze_capture defense
- Incompatible with 4-bank (caused stale lcd_ring reads → black flash); 4-bank doesn't need it since sgb_bank tracks actual GB scanline position
- Skip auto-mode throttle so SoundSync can pace SGB without underruns
- In auto frame-skip, WinThrottleFramerate locked to QPC 60.0988 fps;
- SoundSync can only slow the emulator, never speed it up, so QPC vs. host-audio-crystal drift drained the GB ring → S9xMixSamples zero-padded → crackling/slowdown; when SGB owns audio and SoundSync is on, fall through to no-throttle and let SoundSync pace
SuperSnes9x 1.63.11
- Built a self-contained Game Boy / Game Boy Color core (SM83 CPU, PPU, APU, timer, joypad, MBC1/3/5, battery SRAM, save states)
- Wired .gb / .gbc (and zipped variants) into Snes9x's loader so they route to the SGB subsystem instead of the 65816 parser
- Added authentic SGB1 / SGB2 BIOS mode running on the 65816 alongside the GB core, with ICD2 bridge.
- Implemented the SGB command set: palettes (PAL01/PAL23/PAL_TRN/PAL_SET), attributes (ATTR_BLK/LIN/DIV/CHR/SET/TRN), custom borders (CHR_TRN + PCT_TRN), MASK_EN, MLT_REQ
- Cleaned up the audio path: GB APU mixed correctly per mode, exact-pitch via Bresenham cps, mode-aware sample cap, SGB1 vs SGB2 vs DMG clock differentiation
- Added BIOS-mode SOU_TRN ($09) capture + SPC mix so cart-uploaded voice clips like Donkey Kong '94's "Help! Help!" are audible
- Added a BIOS menu (No BIOS / SGB1 / SGB2) with auto-detection
- Fixed RetroAchievements GB/GBC hash recognition and routed RA memory reads through GB-side WRAM/HRAM/cart ROM/SRAM
- Squashed real-game blockers along the way: Tetris Plus serial IRQ, Pokémon Yellow STAT-while-LCD-off hang, joypad nibble swap, BIOS-mode 2× over-stepping, $7800 row-ordering and scroll drift, File→Reset crash, cheat-search NULL deref
- Embedded SGB1 and SGB2 GB-side boot ROMs — taken from LIJI32/SameBoy under the Expat (MIT) license. We needed them because most publicly-dumped sgb*.boot.rom files are plain DMG boot ROMs that just scroll the Nintendo logo; the SGB BIOS expects a boot ROM that also sends the 5-packet SGB handshake (an LD A, $F1 sequence near $3E F1 is the giveaway). SameBoy ships proper SGB-specific variants. Without those, BIOS mode hangs on the splash screen.
- License compliance — ships the SameBoy Expat license text alongside the embedded ROMs.
Note: SGB Bios are not supplied, they are copyrighted!
SuperSnes9x 1.63.10
Adds three new Win32 S-PPU viewer dialogs:
- Tile viewer
- Tilemap viewer
- Sprite viewer. Which comes with bsnes-parity controls and transparency handling.
Sprite viewer highlights
- Per-refresh OAM snapshot so all panels stay coherent
- Correct tile addressing for N≥256; zoom applied to screen canvas
- Right-click context menu on the sprite list
- Auto-fit preview that follows the Background color
- Configurable update rate (Realtime / 0.25s / 0.5s / 1s / 2s)
- Export sprites and screen composition to PNG/ZIP
Tilemap viewer
- memory sources, rename menu, right-click canvas → export to PNG.
Tile/VRAM viewer
- bsnes-parity controls, transparency fix, right-click canvas → export to PNG.
- Shared plumbing
- debug_viewer_common.{cpp,h} — palette, OAM/VRAM helpers, widget rendering
- debug_viewer_export.{cpp,h} — PNG/ZIP export via libpng
- Canvas rendering switched to StretchBlt + memory DC
- Mouse drag to pan at any zoom; zoom defaults to 1×
- Project changes: new sources wired into snes9xw.vcxproj/filters, resource IDs in rsrc/resource.h/snes9x.rc, menu hooks in wsnes9x.cpp, and a win32/libpng/src submodule.
DirectInput Opt-in/Out
- Add DirectInput toggle and WM_DEVICECHANGE burst-retry for faster, stutter-free controller hot-plug
SuperSnes9x 1.63.9
Run-Ahead (latency reduction)
- New Emulation → Run Ahead submenu with five options: 0 (off), 1 frame, 2 frames, 3 frames, 4 frames
- Reduces apparent input latency by the selected number of frames using bsnes's approach: commit a hidden frame, save state, peek N-1 frames into the future, display that preview, then restore to the committed state
- Works with audio (preserves hermite filter continuity — no clicks, pops, or distortion from the hidden frames)
- Automatically skipped during rewind, turbo, and pause
- FPS counter reports the logical game frame rate (~60), not the internal emulation throughput, so it stays meaningful at every run-ahead setting
Color Correction
- New Video → Color Correction… dialog
- Toggle "Enable Color Correction (accurate SNES colors)" applies a 1.8/2.2 gamma curve to the palette, approximating the SNES DAC output as seen on a CRT — richer, more accurate colors
- Gamma / Contrast / Saturation adjustments
- Photoshop-style sliders in the same dialog, each ranging from -100 to +100 (centered at 0 = no change)
- Master "Apply Adjustments" checkbox to enable/disable the three sliders independently of Color Correction
- Gamma: symmetric exponential (2^(-v/100)) — slide left for darker, right for brighter
- Contrast: linear (1 + v/100) — -100 flattens to gray, +100 doubles contrast
- Saturation: linear (1 + v/100) — -100 gives grayscale, +100 doubles saturation
- "Defaults" button resets both toggles and all three sliders
- Applied at the palette level so it catches all rendering paths (standard palette, direct-color mode, and live CGDATA writes)
Performance
- Run-ahead was tuned for minimal overhead on a typical displayed frame:
- State-buffer size cached on first use instead of recomputed every frame
- FastSavestates mode enabled during the run-ahead block (skips the 512 KB screen memset and memory zeroing on load)
- Embedded screenshot dropped from the serialized state (~500 KB saved per freeze)
- S9xSyncSpeed skipped for hidden frames via a new Settings.InRunAhead flag
- Audio sample callback detached during hidden frames so their audio never reaches the OS buffer (otherwise the buffer
- fills 2× faster than it drains and throttles the iteration rate)
- Resampler state (ring pointers, phase accumulator, hermite history) snapshotted across the hidden block so the
- displayed frame's output flows seamlessly from the previous displayed frame's
SuperSnes9x 1.63.8
Input:
- Support hiding/showing Super Scope Crosshair during game play.
HotKey Configuration:
- Add support for Master Hotkey in Hokey Configuration dialog.
- If enabled and a key is set then:
- Hold the key for 2 seconds in game to toggle the usage of hotkeys. an mesage on the screen will tell you if hotkeys are ON or OFF.
- If enabled and a key is set then:
SuperSnes9x 1.63.7
SDL3 Gamepad Support
- Replaced the legacy WinMM joystick API with SDL3 for gamepad input
- Added SDL3 as a statically linked library — no SDL3.dll needed at runtime
Input Configuration Dialog
- Added Auto-Assign button that maps gamepad buttons automatically via SDL3's gamepad database
- Fixed Auto-Assign button and device name label overlapping help text
- Added hot-plug detection timer — device name and bindings refresh when controllers are connected/disconnected
- Auto-assign preserves existing keyboard bindings as extras when in multi-bind mode
- Joystick bindings are cleaned up automatically when a controller is disconnected
- Multi-Bind Smart Edit Mode (Input + Hotkey dialogs)
- Smart add mode: left-clicking a field with existing bindings preserves them and allows adding more (shows Left, J, ... in green) instead of clearing everything
Right-click context menu with:
- Reset — clears all bindings and enters fresh capture mode
- Remove — submenu listing each bound key individually for targeted removal
- Green highlight stays visible during the context menu and persists after pressing keys or removing bindings, so users know the control still accepts input
- Green highlight on one field is properly deactivated when right-clicking a different field
Bug Fixes
- Joystick input race condition: funky global was being overwritten by re-entrant messages during SDL_PollEvent — now only set by the active control right before polling
- keyPressLock blocking joystick: after one controller button press, all subsequent presses were ignored because only keyboard WM_KEYDOWN could reset the lock — joystick input now bypasses it (edge detection already prevents repeats)keyPressLock not resetting on focus: entering capture mode now resets the lock so controller input works reliably after Reset/Remove selectedItem clobbered after Reset: unconditional selectedItem = NULL at the end of the context menu handler was overwriting the Reset branch's assignment, breaking joystick polling
SuperSnes9x 1.63.6
Customize Hokeys:
- Add support for multiple key bindings for hotkeys. user can change modes between single and multi key-bindings.
Input Configuration:
- Add support for multiple key bindings. user can change modes between single and multi key-bindings.
RetroAchievements:
- Enabling HardCore mode is now compliant with the RetroAchinvemetns list: https://docs.retroachievements.org/general/hardcore-compliance-requirements.html
Sound:
- Added 'Mute' menu item to toggle between 0% and 100% volume (it affects the volume slider in Sound Settings)
SuperSnes9x 1.63.4
Input Configuration:
- Add support for multiple key bindings. select a button (it will be highlighted in yello), then press the keys you want to trigger this button.
SuperSnex9x SuperSnes9x 1.63.3
Cheat Entry and Editor:
- Allow user to edit and update multiple addresses with the same value
SuperSnes9x 1.63.2
Cheat Search
- Support conversion of sram addresses to their Hi/Lo/Ex Memory.
Cheat Entry and Editor:
- Add 'Update' option in Context Menu of a cheat value/description (Right Click on the input.) key updates the value of a cheat's value or description.
- Batch Add of cheats from the Cheat Search window will not include the Address in the description.
SuperSnes9x 1.63.1
General
- RetroAchivements supports SuperSnex9x with a unique User-Agent.
- Able to enable/disable RetroAchievments
Cheat Search dialog:
- Fix list view flickering with double buffering
- Sortable columns with sort arrows, result count in title bar
- Multi-select support, right-click context menu (Add Cheat, Add to Watch, Copy Address, Remove Selected)
- Mask dialog for hiding addresses, optimized with virtual list view
- Clear selection after context menu actions
- Delete key removes selected addresses (adds to mask list)
Cheat Entry and Editor dialog:
- Right-click context menu with Toggle Selected Cheat(s) and Delete Selected Cheat(s)
- Delete key support to delete selected cheats
- Ctrl+A to select all rows
- Batch add cheats directly when multiple rows selected from search
- Live-update editor when adding cheats from search dialog (both dialogs open simultaneously)
- Fix X button discarding pending changes — now applies changes same as OK
- Fix delete button not clearing edit fields when deleting the last/only row
QT/GTK
- Able to enable/disable RetroAchievments
SuperSnes9x 1.63
General:
- Added a shortcut to change the backdrop color for sprite extraction.
- Fixed QuickSave 0-9 slot shortcuts not working.
- Allow "Address:byte" form for cheat inputs.
- Fixed ZIP files not being closed after patch search.
- Various memmap fixes to allow unofficial mappings.
- Added usage of ImGui to draw things on top of the screen instead of inside.
Win32:
- Fixed AVI not recording audio.
- Fixed framerate throttling in turbo mode (now works during AVI recording).
- Fixed interlaced output speed being double.
- Fixed command line arguments not working.
- Fixed WaveOut device name display for names longer than 31 characters.
- Fixed Bank+/- hotkey saving.
- Added hotkeys for aspect ratio, cheat edit/search.
- Added multiselect for cheat edit dialog.
- Added RetroAchievements.
- Kaillera Server/Client.
- Allow Emulation with Cheat Engine opened (Game Genie, Pro-Action Replay Codes).
- Screenshots will now be saved correctly
Gtk:
- Fixed config file location to never put files directly in $HOME and obey
- $XDG_CONFIG_HOME.
- Updated translations from JakeSmarter and StanleyKid-22.
- RetroAchievements
- Vulcan/OpenGL drivers check, if fails to load them defaults to Qt Renderer instead of crashing.
Mac:
- Added a new cheat finder.
- Added MultiCart support back.
- Create a blank window when starting the program, so the global menu change
- doesn't go unnoticed.
Dodaj komentarz!!!!
[SNES] Super ZSnes 0.201 30/05/2026
[multi] BizHawk x64 2.11.1 1/05/2026
[SNES] Super...ZSnes 0.100

Official source code repository for the Snes9x project.
SuperSnes9x - Portable Super Nintendo Entertainment System (TM) emulator based on Snes9x - shanytc/snes9x
