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. Co prawda, gro zmian operuje wokół dopieszczania emulacji dostawki do SNES'a umożliwiającej używania kartów z GB/CGB.
SuperSnes9x 1.63.23 11/06/2026
Game Boy / Super Game Boy
- Borderless BIOS-less mode — BIOS-less GB/GBC/SGB games now render at their native 160×144 instead of being composited into the 256×224 SGB frame with the gray border. The host scales the picture to the window just like SNES output; SGB/SGB2 BIOS mode keeps the full border. Includes win32 render fixes so filters (FakeTV, xBRZ, Blargg NTSC) honor sub-SNES source sizes, and AVI recording captures at the GB frame size.
- GB cheat engine — the cheat search and editor now work on BIOS-less GB/GBC/SGB games, operating on the GB bus: native
$0000–$FFFF addressing with banked CGB WRAM, cart SRAM banks, HRAM, and physical ROM patches. Parses GB GameShark (01/8x/9x) and GB Game Genie (6/9-digit) codes; per-game .cht files load/save like the SNES paths. Also fixes a stale CGB WRAM window in PeekRAByte so RetroAchievements sees banks 2–7. - GB layer toggles on SNES hotkeys — when a GB cart is loaded, the Graphics layer 1/2 and Sprites hotkeys now drive the GB-PPU Show
Background/Window/Sprites menu toggles, with matching OSD feedback.
RetroAchievements
- On-screen badge images — active challenge indicators and measured-progress achievements display as badge images anchored
bottom-right (per RA team guidelines) instead of toast messages. Badges fetch asynchronously and render as imgui quads, so all video
backends work without GPU texture management. New "Toggle Achievements Images" menu item (default on) falls back to the old toast behavior.
Emulation / UI
- Soft Reset / Hard Reset split — File→Reset Game is replaced by two Emulation-menu items, Mesen-style. Hard Reset (Ctrl+Alt+R)
is a full power cycle that replays the SGB BIOS splash; Soft Reset (Ctrl+R) is the console reset button on SNES, and on GB a new warm reset that restarts at $0100 with no splash, preserving SRAM and the SGB handshake. The new hotkey is rebindable. - Instant screenshots while paused — the screenshot hotkey/menu previously only flagged a capture serviced at end-of-frame, so pausing made it wait for a frame advance and grab the next frame. Capture now happens immediately from the last rendered frame when emulation is halted.
- SNES tile viewer layout option — Layout dropdown (Normal / 8×16 same line / 16×16 same line) so fonts and graphics stored as tile groups display unscrambled; click-select maps back through the inverse, keeping tile index/address info correct.
SuperSnes9x 1.63.22 10/06/2026
Improved Game Boy / Game Boy Color emulation accuracies:
New mappers & cartridge support:
- MBC7 (accelerometer + 93LC56 EEPROM) — Kirby Tilt 'n' Tumble now boots past its loading hang
- MBC6 (dual half-bank ROM windows + split SRAM) — Net de Get: Minigame @ 100 now boots
- Duz 2-in-1 MBC3 multicart — custom game-select register support fixes Pokémon Red/Blue 2-in-1
- Sachen mapper fixes — header-transform lifetime corrections for 4B-008/4B-009
- runs-raw boundary moved to the header end, and logo-less
- Sachen carts (Beast Fighter) now load and SGB-boot
Game Boy Color DMA fixes
- GDMA now advances the HDMA source/destination registers ($FF51–54) to end-of-transfer — fixes NASCAR 2000 title screen and menu corruption
- HBLANK HDMA destination auto-advance + transfers happen in the H-blank they're armed in (live VBK bank) — fixes The Little Mermaid II garbled graphics
- HBLANK HDMA armed while the LCD is off copies one block immediately — fixes Worms quickstart freeze
- $FF46 (OAM DMA) reads its correct boot value of $00 on CGB — fixes Doc Cosmos title marquee pop
PPU & timing fixes
- DMG window/background pixel alignment — fixes Star Trek: 25th Anniversary TV-frame glitches
- Window WY-trigger latch matches real hardware — fixes Zerd no Densetsu HUD corruption
- STAT-write bug correctly gated to DMG/SGB only — fixes NASCAR 2000 title on CGB
- LY=LYC STAT re-latch at scanline boundaries — unblocks chained-LYC raster effects, fixes Ken Griffey Jr. field flicker
- PPU-raised STAT IRQs deferred 24 dots + first frame after LCD enable held — fixes RoboCop one-frame flashes
- Persistent double-speed CPU budget + tile-granular SCY fetching — fixes Demotronic demo raster effects
- Auto frame-blend entry for 3D Pocket Pool — its 2-phase sprite/background multiplexing no longer flashes
Audio fixes:
- Dynamic-rate control locks GB sample production to host pacing — eliminates static/crackle from APU–host rate drift
- Wave RAM reads while channel 3 plays return the current byte on CGB and $FF on DMG — Demotronic "NO BOY!" detection passes
Super Game Boy:
- SGB BIOS cold-boots on soft reset — fixes black screen after reset
- GBC-only carts honor the SGB BIOS preference (lockout restored)
Windows GUI
- Updated Logo icons:
- Jap/Europe - flat/embossed variations
- USA - flat and embossed variations.
- File → Choose Logo can now also replace the .exe's own shell icon
- Added "Allow .exe icon replacement" opt-in toggle in Emulator => Hacks...
- Cheat Search enhancements:
- the New Value field in the add-cheat dialog is pre-filled and sign-extended correctly
- Support signed values to be added to the game genie cheat editor.
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.
Vox populi
Dodaj komentarz!!!!
[SNES] Super ZSnes 0.220 11/06/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
