Nowa wersja snes9x, czyli gratka dla fanów emulacji konsoli Super Nintendo. Jeden z najstarszych projektów emulacji tej niesamowitej zabawki i chociaż ma swoich poważniejszych konkurentów dla mnie najlepszy.
Snes9x 1.62.3 30/03/2023
- This fixes the backward-compatibility with save states from before 1.62. It also fixes issues with the libretro core mishandling our new filesystem functions.
Snes9x 1.62.2 27/03/2023
- Version 1.62.1 had a bug that would erase games' SRAM if save states were loaded. We have better luck with these .2 releases.
Snes9x 1.62.1 26/03/2023
- This contains several small fixes for bugs noticed after 1.62 was released. With luck, there will be a version 1.62.2.
Snes9x 1.62 23/03/2023
Another release containing a bunch of small things. There are a few game fixes and some UI tweaks, as well as some reorganization in the backend. The biggest front-facing feature is a Vulkan output for the Windows and Gtk ports. Like OpenGL, Vulkan can use the slang shaders in the libretro repository.
Changes
- Fixed SA1 division with negative dividend again. (Atari2)
- Fixed timing on several instructions. (pi1541)
- MSU1 audio with no loop point will not repeat from start.
- Modernized some old memory-related code.
- Fixed a desynchronization in interlaced modes and reporting.
- Remove SA1 access to WRAM.
- Added second set of registers between S-DSP and S-SMP. Fixes PAL version of Virtual Bart.
Gtk + Windows:
- Added a Vulkan graphics output method. Similar to OpenGL, this can use libretro's slang shaders.
- Changed the automatic frame skip throttle to take place immediately before showing the frame, making VRR work better.
- Add menu item to clear recent files entries.
- Add fixed window size changes up to 10x.
Windows:
- Improved the shader parameters dialog with sliders and resize.
- Allow disabling adding registry entries. Deletes any existing entries when the option is disabled.
Gtk:
- Switched to CMake for build system. Removed meson.
- Fixed some keys not working with modifiers. (Gutawer)
- Removed graphics options most people won't understand or need.
- Improved wayland support. Handle fractional DPI properly.
→ NOWSZY [SNES] SuperSnes9x 1.63.29 8/08/2026
SuperSnes9x 1.63.29 8/08/2026
Emulation
Voicer-kun
- Play Voicer-kun enabled games by attaching the included audio CDs with the game (can be in cue/bin files format, or .zip containing cue/bin);
- Voicer-kun IR peripheral is fully emulated so the games drive the CD themselves.
- Menu placed under Sound => "Voicer-kun"
- Only one disc can be attached in the drive at a time (EMIT requires to change CDs during the game).
- Port 2 is forced to a joypad as attached device so that the voicer-kun device is detected.
- IR burst looped so the learn wizard registers keys automatically, port 2 reports only the device id, not player buttons.
- IR burst will work when selecting the game's automatic mode (not manual)
- Supported voicer-kun games:
- EMIT Vol. 1 (CD1, CD2)
- EMIT Vol. 2 (CD1, CD2)
- EMIT Vol. 3 (CD1, CD2)
- Angelique (CD1)
GB / GBC / SuperGameBoy
- Optional
no-sprite-limitfor the BIOS-less GB/GBC core added toHacks...window. This fixes the sprite limitation of the actual hardware. Allow Invalid VRAM Accessoverride for games that need it, surfaced in Win32/GTK/Qt with proper enable/gray-out handling.- GB/SGB BIOS-mode audio repaired on GTK/Qt.
- libretro: SGB BIOS-mode SPC starvation no longer causes 60 Hz audio crackle.
- Emulator holds 60 fps in GB/SGB even when sound is muted.
- Sound => Mute now toggles the real mute instead of reducing volume to 0%.
- Video timing is set on the BIOS-less GB load path.
- Staged boot ROM is dropped when switching bios.
Audio
Audio Fidelity / Resampling (SRC)
Audio Resampling (Sample Rate Conversion) translates the native hardware sound frequency to your host system's target output rate (e.g., 48 kHz). Higher-quality algorithms (like Windowed-Sinc) eliminate high-frequency aliasing and harsh distortion rather than simple pitch shifting, which is particularly evident when scaling up lower native sample rates.
Anything below 32040 Hz (8000, 11025, 16000, 22050). The old Hermite kernel had no anti-alias filter at all when downsampling, so everything above the output Nyquist folded straight into the audible band. The sinc kernel scales its cutoff and tap count with the ratio (hitting the RESAMPLER_MAX_HALF ceiling of 160 taps at 8 kHz output), so this is where the difference is night-and-day.
- Added selectable Audio Fidelity (Resampler) in Sound Settings:
- Herminte (Legacy)
- Windowed-Sinc
- Added 32040 Hz "native" playback rate (works with WavOut audio driver).
- Playback rates list is now filtered per audio driver and mode (snes/gb/gbc/sgb).
Sound settings
- Added Pre-amp (gain) sliders.
- Live feedback as you change the sliders.
- Changed Sound Settings dialog to modeless (doesn't pause emulation).
- Fixed WaveOut pacing bug whiced caused the emulator to stutter and lag. (Upstream PR)
Linux:
General
- Linux packaging & rebranding support.
- Qt/Gtk AppImage packaging with an Ubuntu 20.04 shipping baseline
- Android NDK build script for the libretro core
Qt/GTK
- Added "Voicer-kun" support (matches win32.)
- Added Pre-amp (gain) sliders.
- Qt 6.2 compatibility restored for the 22.0g missing QAction includes.
- Docker AppImage build made clean and PCH-f.
- RetroAchievements upgrades (matches win32.)
Win32
- Added new file type icons registration via
Hacks...dialog window. - Added Per-console icons for SNES, Game Boy, Satellaview and Sufami Turbo ROMs.
- File type extension association support.
- Hacks warning now moved into the actual dialog itself (no more irritating dialog window.)
- Duplicate controller names are now numbered in the device list to avoid confusion.
Localization
- Dialogs that overwrite their text in WM_INITDIALOG now localize correctly.
- Japanese translation update (thanks Nekokabu.)
Turbohotkey labels renamed toFast Forwardin GTK UI.
SuperSnes9x 1.63.28 28/07/2026
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.
- Duplicate controller names now get numbered suffixes in the device dropdown.
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)
SuperSnes9x 1.63.27 23/07/2026
Cheats
-
SGB Correctly Scans GB Address Space
- BIOS mode gets the same GB-address-space cheat handling bios-less mode already had: the cheat search scans GB WRAM/SRAM/HRAM, results display as GB bus addresses,
- GB GameShark / Game Genie codes parse, and apply/restore route through the GB core. Previously BIOS mode scanned the SGB BIOS''s own SNES WRAM (useless for game cheats) and saved SNES-space cheats into the same per-game
.chtfile that bios-less mode interprets as GB cheats. - Load order is safe: both BIOS-mode load paths re-run
S9xInitCheatData()after the flag is set, with the GB cart already loaded.
-
Standard cheat/code formats
- Raw codes display and save as
xxxxxx:bb; conditionals asaddr?compare:value(e.g.198a?e0:f0) — the format cheat sites, decoders, and other emulators use. All legacy forms (=,addr:cmp?val,/) still parse, so old.chtfiles keep working. - GB cheats print without SNES-style
%06xzero padding, and GB bank-0 ROM patches no longer leak the internal0x01000000ROM-flag into the displayed address; the bare address parses back to the identical patch. - A conditional colon code previously matched the plain pattern and silently dropped its compare byte; the pattern order now handles it.
- Set Value takes the value as whatever follows the last
:/=of the displayed entry. - The Cheat Entry and Editor dialog gains a minimize box.
- Raw codes display and save as
-
ROM revision mismatch warning
- New checks for GB Game Genie code, verify byte against the loaded ROM (bank-0 sites directly, banked codes as any-bank match). The Win32 editor warns on Add/Update when a code was authored for a different revision and would silently no-op.
Rewind
- Never-ending rewind fixed.
- Paused reverse frame advance added**
StateManager::init()kept a stalebottom_ptracross re-inits, so once the ring had wrapped in an earlier epoch, holding rewind drained real history and then ran forever over stale entries.- Normalizes
pop()returns (negative error codes were truthy forSettings.Rewinding). - fixes for held-hotkey chords sticking when modifier and key release in the "wrong" order, and makes the rewind key while paused step exactly one frame back per tap (content-frame tags in the ring, hidden replay of the gap, re-push so consecutive taps stay O(1)).
Event-cart savestate loadng
- Remap the game window before PC base on unfreeze
- Non-fast unfreeze hard-resets first, which maps the PF94/CC92 menu back into the game window;
S9xSetPCBasethen resolved the restored PC against the menu mapping and the CPU derailed within frames on any in-game savestate load or rewind pop. - The PF9 block is now restored and the window remapped before
S9xSetPCBase, matching the SFC-Box supervisor restore ordering. Also rebases the session timer on load to avoid an instant time-over from unsigned wraparound.
- Non-fast unfreeze hard-resets first, which maps the PF94/CC92 menu back into the game window;
SGB Audio
- Core timing
- Slaving clock, scanline-wrap loss, and DRC seed fixes for the BIOS-mode pacing chain.
- ProcessSound() recreates the sync-to-sound throttle in BIOS mode and adds drain waits, fixing runaway speed and crackle.
Audio Waveform
- Logic Pro - style per-track L/R level meters with peak hold (
953d46bc), sqrt zoom + 20 Hz refresh defaults. - Logic-style record-arm [R] per track: unbounded-length WAV capture at source rate via cursor-based ring taps, Save-As on stop.
- Footer rate selectbox + stats-for-nerds toggle for per-row diagnostics (
aa39080c), vertical zoom selectbox, - Reset-on-close checkbox and solo-aware Channels menu.
- Cheaper waveform paint and continuous envelope trace.
SFC-Box (Super Famicom Box)
- Translated demo, countdown-hour, and coin-service OSD screens.
Hokeys Menu
- Label clipping, naming, conflict colors.
Hack...
- Clearer OSD language tooltip for SFC-Box.
Translations
- Fill missing plural forms for languages with >2 plural categories (ar/he/bn/...), drop stale entries.
SuperSnes9x 1.63.26 22/07/2026
Super Famicom Box (hotel) emulation
Full emulation of the Super Famicom Box (SFC-Box), the coin-operated hotel unit (snes9x#1046). Boots the real KROM 1.00 BIOS, reaches the attraction menu, and launches games — verified with Super Mario Kart (DSP-1), Super Donkey Kong, Star Fox, and two-cart PSS-61+63 images.
-
New HD64180 (Z180) CPU core — full documented Z80 set plus Z180 extensions, MMU, PRT timers, and interrupt handling for the supervisor board.
-
Board emulation — custom I/O ports, S-3520CF RTC, MB90082 on-screen-display renderer, joypad sniff/inject latches, coin switch, keyswitch, watchdog, and battery-RAM sidecar (
.box). -
GSU socket support — Star Fox runs in the box with full SuperFX polygon rendering, with dynamic arming/disarming as the KROM remaps between menu and game.
-
Savestate support — the entire supervisor board (Z180 core, latches, RTC, OSD state) travels in snapshots; menu and mid-game GSU states resume correctly.
-
English OSD translation — optional view-layer translation of the Japanese supervisor screens (~110-phrase dictionary covering every reachable screen, including coin-mode countdowns and continue prompts). The KROM itself runs untouched. Toggle via the new SFC-Box OSD Language option in the Hacks dialog.
-
Authentic OSD rendering — blue under-color backdrop on the boot/supervisor screens, correct MB90082 glyph decoding, per-character background colors (the attendant menu's yellow B-button icon), and full-resolution OSD output.
-
Hacks dialog controls — keyswitch position selector (1/OFF/ON/2/3) and an Insert Coin button, live while a box is loaded.
-
SFC Box hotkeys tab — bindable hotkeys for Insert Coin and all five keyswitch positions, with OSD confirmation and config persistence.
-
Fixes along the way — soft reset now restarts the current game instead of power-cycling the whole box; the KROM BIOS is found regardless of working directory; a missing BIOS reports a load error instead of hanging.
-
BIos Files:
- KROM1.bin
- MB90082.BIN
-
Rom files:
- any of the pssXX release:
- pss61_merged.sfc
- pss61+62_merged.sfc
- pss61+63_merged.sfc
- pss61+64_merged.sfc
- any of the pssXX release:
Note: There is no need to load pss62_xxxxx.sfc roms as they are just the 2nd slot which already added to the pss61_xxxxx.sfc
Audio: DAW viewer
- The audio-waveform viewer is reworked into Logic-style track rows: color-coded groups (SPC, GB, MIX) with per-track colors, collapsible per-source breakdowns (SPC voices V1–8, GB channels CH1–4), and a master MIX bus.
- Mute buttons on every track — GB channels get their own mute mask so silencing a GB channel no longer silences the matching SPC voice; group mutes remember the per-member pattern.
- Solo buttons with proper DAW semantics: solos union across cores, mute wins over solo, and solos auto-clear when the viewer closes or a ROM swap removes the track.
- Sound > Channels drives the GB APU too — menu channels 1–4 now toggle GB pulse A/B, wave, and noise; channels 5–8 grey out in GB mode.
GB/SGB
- Frame-advance and fast-forward now fully mute GB audio instead of banking up samples — no more ~0.3s audio burst on unmute or sped-up "screechy" playback after releasing turbo.
Win32
- The S-PPU viewer menu stays enabled in SGB BIOS mode, where the real S-PPU is running.
Libretro
- The SuperFX clock multiplier now defaults to 100 when the frontend doesn't answer core options — previously every SuperFX title hung in minimal harnesses.
SuperSnes9x 1.63.25 18/07/2026
SNES
Event Carts Support:
- PowerFest '94 event cart support (MX15001 board emulation): boot the Scoring ROM and it assembles the full competition cart from the sibling game dumps (Lost Levels, Super Mario Kart, Ken Griffey Jr. MLB) found next to it, zipped or raw
- PowerFest '94: on-screen tournament timer display + configurable time limit in the Hacks dialog (the board's DIP switches, 3–18 minutes)
- PowerFest '94: selecting a missing game reboots the menu and resets the session timer; game ROMs are rescanned on hard reset
- Nintendo Campus Challenge '92 event-cart support (SNES-EVENT board, EVENT-CC92): the combined cart image boots and chains menu → Super Mario World → F-Zero → Pilotwings (DSP-1 wired for Pilotwings)
- NFL Football (Europe) (Proto): pin the real board config (32 KB battery SRAM + PAL region) — the junk internal header made auto-detection run the game off the rails
Timing / IRQ
- Latch pending timer IRQ on
$4211read — a tight TIMEUP polling loop can no longer miss an IRQ that already fired mid-instruction (accepted upstream as snes9x PR snes9xgit#1062) - Revert Circuit USA APU speedup hack to 2 — the 1.59 SMP-clock retune value made the menu palette DMA race the CGRAM-gradient HDMA
SuperFX (GSU)
- Cycle-accurate GSU timing: replaced the flat per-scanline instruction budget with a master-clock cycle budget and real per-op costs derived from Mesen2 (cached/uncached fetch, RAM/ROM access, cache-line fill, plot/rpix, multiplies per CFGR MS0).
snes9x_overclock_superfxremains a true throughput knob (100 = hardware) - Fix RPIX clearing DREG too early (upstream, by Wyatt)
Game Boy
Audio (APU)
- Silence ultrasonic tone channels (CH1/CH2/CH3 parked above the output Nyquist) at the source — the box-filter decimator no longer folds them back into the audible band as fixed high-pitched tones; rate-adaptive (32k/48k, DMG/SGB/CGB)
- Keep digitized voice audible above Nyquist: channels streaming 4-bit PCM through ultrasonic squares now emit the physically-correct DC level (duty-cycle average / wave-RAM mean) instead of a frozen bit
Video / PPU
- Cycle-precise VBlank IRQ latch: the IRQ lands on the same instruction boundary as real DMG regardless of CPU/PPU interleave skew (verified byte-identical to SameBoy per-instruction traces)
- SGB: reconstruct DMG BGP raster write timing — mid-scanline palette stores are re-mapped to the dot they were aimed at and the corrected line is re-pushed into the ICD2 capture ring (SameBoy-verified)
GTK
- RetroAchievements support — full parity with win32/Qt: login/logout, achievement list, hardcore mode with confirm prompt, unlock toasts and challenge/progress badges via the shared overlay; config keys match win32/Qt so a shared install reuses the same credentials
Win32
- Fixed frozen screen when switching renderer Vulkan → Direct3D/DirectDraw (render window is recreated on display reset)
- Render window handle made local to win32_display.cpp; removed the OpenGL↔Vulkan toggle warnings (upstream, by OV2)
Internationalization / Translations
- Japanese translation updated (thanks Nekokabu)
Game fixed:
- Winter Gold / FX Skiing (SNES, Super FX) — the long-standing garbled-skier bug at race start is fixed: with cycle-accurate GSU timing the pose-cel publish is held one frame from CPU view (matching hardware measured frame-by-frame against a Mesen2 trace), so the game no longer commits a stale arrangement over the new pose tiles (upstream issue snes9xgit#533)
- Traverse: Starlight & Prairie (SNES, Japan) — no longer hangs after the birthday screen: its vsync-wait polls
$4211mid-instruction and now observes the timer IRQ as hardware would (regression since 1.55; upstream issues snes9xgit#540, snes9xgit#614) - Circuit USA (SNES) — menu no longer blacks out: the 512-byte palette DMA lands in VBlank again instead of racing the CGRAM-gradient HDMA mid-frame (upstream issue snes9xgit#563)
- PowerFest '94 (SNES) — the historical black-screen hang is gone (the MCU status register now reads 0 at boot) and the full tournament flow works: menu, all three game segments, DIP-switch time limit, score persistence; a standalone Lost Levels dump also plays as a normal game
- Nintendo Campus Challenge '92 (SNES) — boots and runs the full event chain (Super Mario World → F-Zero → Pilotwings) with its own timer settings
- NFL Football (Europe) (Proto) (SNES) — clean menus and full Mode 7 in-game rendering, no more crashes (was reading open-bus / wrapped save RAM due to the junk cart header)
- Sumou Fighter (GB) — stray '07' tile no longer appears in the background during the title scroll-in (the VBlank ISR fired one instruction late, letting a tile-copy run with the sound ISR's leftover ROM bank)
- Top Rank Tennis (GB) — the digitized "Play!" and score-call voices are back (they stream PCM through squares parked at freq 0x7FF, which the ultrasonic suppression was gating to silence)
- Pit Fighter (GB) — the ~13–19 kHz whines from CH2/CH3 left running at 0x7FF are now silenced at the source, matching SameBoy's band-limited output
- Prehistorik Man (SGB) — the black bands on the left/right edges of the scrolling title banner are gone (left band 307px → 6px, right band 449px → ~0, verified headless against SameBoy); the game's HALT-synced self-modifying BGP write chain now lands on the exact dot it was aimed at
SuperSnes9x 1.63.24
Game Boy
Camera:
- Added the Pocket Camera mapper so now
Game Boy Cameraboots. - Live viewfinder via host-side framebuffer injection (live USB webcam feed)
- Per-scanline viewfinder injection in SGB BIOS mode + always-on in SHOOT mode
- Viewfinder honors the contrast and matrix-based brightness slider
- Added Brightness slider for the viewfinder (host-side, Up/Down)
- Added Contrast slider for the viewfinder (host-side, Left/Right)
Audio (APU)
- Low-pass APU output to fixes the ultrasonic wave-channel output
- Seed DMG/SGB power-on wave RAM so CH3 isn't dead-silent
- Post-boot APU state on boot-skip
- PI rate-match / rate-lock the SPC resampler for once-per-frame SGB frontends (win32, GTK, Qt, libretro)
Video / PPU
- Block CGB palette (CRAM) writes during mode 3; restrict the mode-3 lock to pixel output
- Sample fetch_scy for the leftmost SCX-fine partial tile
- Auto frame-blend Boxing (Tonkin House) to stop HUD flicker
SNES
- BIOS-mode soft reset now restores a settled-title snapshot
- Preserve GBRomPath across the BIOS switch
Libretro
- Added Game Boy / Super Game Boy / GBC content support
- Rebranded core to SuperSnes9x (supersnes9x_libretro, library name + core info)
- Aligned valid_extensions with the core info file
- Added GB/GBC core sources to the MSVC project
- Mix the SGB BIOS SPC stream into audio output
Internationalization / Translations
- Shared i18n translation files support (win32/Qt/GTK)
- Extract the language-pack to i18n/ folder next to the executable.
- Note: some translations are AI enhanced (expect non-sense at some translations)
Qt / GTK
- GB frame-blend options (mode, layer, auto transparency) for GTK and Qt
- Qt matches win32 config keys and single-store model
- Poll joysticks more often; update SDL3 (FetchContent) and Windows Qt binary build scripts
Win32
- Fixed crash when opening the ROM dialog a second time (Custom ROM Open)
- Use a common function to get the base filename
Game fixed:
- Donkey Kong (SGB) — soft reset in SGB BIOS mode no longer shows a garbled title / leaves music playing; restores a settled-title snapshot instead of letting DK re-upload its border visibly
- Pit Fighter (GB) — fixed the faint continuous ~19 kHz whine (CH3 wave alias) with a 4th-order Butterworth low-pass on APU output
- Pit Fighter, Bart Simpson, Mortal Kombat 4 (GB) — fixed audio going silent after a soft reset (games that never write NR50/NR51 now get the post-boot $77/$F3 state on boot-skip)
- Game Boy Camera — now boots at all plus a full live webcam viewfinder with brightness/contrast sliders and steady per-scanline injection
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.
→ NOWSZY [SNES] Oficjalny Snes9x 1.63 09/07/2024
Snes9x 1.63 9/07/2024
- 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.
- Gtk:
- Fixed config file location to never put files directly in $HOME and obey
- $XDG_CONFIG_HOME.
- Updated translations from JakeSmarter and StanleyKid-22.
- 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.
→ [SNES] Oficjalny Snes9x 1.61 04/03/2022
Snes9x 1.61 04/03/2022
This is a small release for a bunch of little things that have accumulated. Big changes behind the hood are a change to the tile renderer so that it builds much quicker, and a swap of the Gtk port to C++ bindings, both of which should be unnoticeable. Michael Buckley also wrote a completely new macOS port, due to the complete deprecation of the classic APIs the old port used.
Changes
- Restructured tile.cpp tile renderer from heavy macros into C++
- templates, significantly lowering compile time. (yoffy)
- MichaelBuckley provided a brand new MacOS port that is completely
- rewritten based on newer, supported APIs.
- Fixed an out-of-bound memory access in sound DSP. (Sour, byuu)
- Revert default SFX2 clock speed increase.
- Added a render position hack. Fixes glitches in several games.
- Allow an SRAM mapping up to 128KB.
Win32:
- Apply turbo mode volume when rewinding.
- Added menu entry to load oops files, and an option to confirm before saving or loading states.
- Fixed sound volume resetting when sound reinitializes.
- Added a save-state preview dialog.
- Added save banks for up to 100 states
- Added support for relative-style save slots
- Fixed blargg rf filter.
- Show command line options on -h and /?
Gtk:
- Added an option to show time. (taimoorgit)
- Use a submodule for glslang, because it doesn't guarantee API stability.
- Switched to GTK's C++ interface, gtkmm3. This effectively drops GTK+ 2.0 support.
- Joysticks can now be hotplugged. (jraby)
Unix:
- Added audio output threading. (yoffy)
- Added screensaver prevention on joystick use. (greg-kennedy)
- Fix YUY2 conversion. (greg-kennedy)
- Add alsa output support. (cjacker)
- Add I420 conversion. (cjacker)
→ [SNES] Oficjalny Snes9x 1.60
The biggest changes in this release are some reversions which fix a couple games, some accuracy improvements which fix a couple more games, and some optimizations that speed things up a bit.
The Windows port now has an extra "Hacks" settings dialog that allows enabling some settings to allow older ROM hacks to work. The GTK port's hack settings are still hidden behind the -Ddangerous-hacks=true compile flag. The libretro port has had the remaining hack added. Use with caution and don't submit bug reports associated with enabling these hacks.
General
- Fixed subscreen blending with master brightness < 100%.
- Fixed NMI timing when toggling enable bit. Fixes Chou Aniki--hack removed.
- Reverted an IPL map optimization that misses a weird edge case that caused The Great Battle III to lock up.
- Clamp MSU1 addition to max amplitude instead of wrapping. Proper MSU1 tracks will not be affected by this.
- Save mipmap_input parameter with customized GLSL and slang shaders.
- Actually use mipmap_input parameter.
- Optimized subscreen math with help from Dwedit.
- Revert to measured APU clock speed instead of nominal speed. Fixes An American Tail.
- Fixed broken BPS patch support. (ArtiiP)
- Fixed MSU1 track restarting on load state.
Win32:
- Changed window flags to allow NVIDIA cards to auto-enable exclusive fullscreen mode in OpenGL.
- Added a hidden option "DWMSync" that allows OpenGL to sync to the window manager while in windowed or borderless windowed mode.
- The automatic frame skip option no longer limits to 59.94Hz.
- Fixed bad icon scaling.
- Added a hacks dialog to enable settings for older hacks to run.
libretro:
- Added ability to use Satellaview data in same directory as ROM.
- Fixed deviation from proper libretro spec.
- Added option to use the software NTSC filter. (stellarporter)
GTK:
- Added icons to the entries to clear binding assignments.
- Fixed overlap in xBRZ multithreading.
- Changed glFenceSync option to an OML_sync option that works better.
- Fixed accumulation of partial pixel data on mouse motion when we update the
mouse position more than once per frame. - Allow one key to be bound to many controller buttons on the same controller.
- Force menu and button icons.
- Add the view menu to right-click when SNES mouse isn't used.
- Remove unused status bar option.
- Startup background can be changed in snes9x.conf.
- Improved PortAudio driver.
Unix:
- Fixed sound output that broke with APU refactor.
→ [SNES] Oficjalny Snes9x 1.59.2
Snes9x 1.59.2
- Fix out-of-bounds access on APU memory.
Snes9x 1.59.1
- Fix sound core breakage.
Snes9x 1.59
- Count clock cycles to synchronize SA1 with S-CPU properly. Based mostly on work by Vitor Vilela.
- Only allow instant IRQ when toggling IRQ. Fixes WWF - Wrestlemania.
- Refactored APU output code to buffer less on the client side. Removed 8-bit, Mono, and Reverse Stereo options.
- Consistently handle interlacing when we skip frames.
- Changed APU clock to reflect nominal values for original hardware.
- Fix C4 square instruction regression.
Win32:
- Don't display Joypad 2 pressed keys if disabled.
- Add support for libretro ".slang" shaders to OpenGL driver.
- Removed glitch-prone DirectSound audio driver in favor of a generic Wave Out driver.
- Moved sound sync to drivers to be more reactive. This makes sound sync and dynamic resampling work more reliably.
- Cleaned up dialog boxes to be more consistently spaced.
- Fixed TVMode filter in Direct3D and OpenGL modes.
- Fixed an interaction slowdown with OpenGL and Blargg NTSC filters.
libretro:
- Fix multiline cheats.
GTK+:
- Switch from autotools to Meson build system.
- Readd glFinish option as alternative to glFenceSync.
- Fix size fallthrough with xBRZ filter.
- Fix loading of key bindings with spaces in them and modifier keys used alone.
- Add support for libretro ".slang" shaders to OpenGL driver.
- Use a cleaner onscreen font.
- Trap errors to allow OpenGL <= 2.1 to run again.
- Break display settings up to make it easier to access hardware accel section.
→ [SNES] Oficjalny Snes9x 1.58
Snes9x 1.58 16/12/18
- Move the LICENSE file to the base directory and use a stub in all the source files referring to it.
- Adjust Chou Aniki timing hack.
- Use 1-based numbering when displaying pressed keys.
- Hide controller port if disabled when displaying keys.
- Fix movie playback.
libretro:
- Fix interlaced modes when overscan crop is enabled.
- Allow overriding -flto. (orbea)
GTK+:
- Use shared snes_ntsc implementation.
- Remove extra LGPL licensing to avoid confusion.
- Don't translate config file entries. Fixes breakage on non-C languages.
- Fix issue where config file doesn't contain all configurable entries.
- Remove config options for Netplay, Joystick, and JMA. SDL 2.0 is now mandatory.
- Updated gettext and removed intltool. update-po should now catch all translatable strings.
- If available, reduce input lag option will now use fences instead of glFinish to prevent hogging the CPU.
- Onscreen text can be variable width and will show up in some more cases now. Win32:
- Add audio device selection (XAudio2 only)
→ [SNES] Oficjalny Snes9x 1.57
Snes9x 1.57 10/11/2018
- Various seta010 emulation fixes. (kps501)
- Pass blargg OAM tests with proper write behavior. (BearOso)
- Prevent interlacing in BG modes 1-4. (BearOso)
- Corrected IRQ and NMI emulation to allow more games to work properly. (BearOso, OV2)
- Use 1 instead of 0 for initial PPU left window coordinate, fixing garbage in left column of pixels in some games. (turhope)
- Added interpolation option hack for DSP. (kps501, mudlord, BearOso)
- Added sprite-tile limit disabling hack. (Tatsuya79)
- Added libretro's fast snapshot support. (OV2)
- Add overclocking hack that increases IPC (retrotalker)
- Fix controller initialization issues preventing some games from using multitap. (retrotalker)
- Proper write behavior for register $2122. (BearOso)
- Fix transparency issue with Star Fox asteroids. (redguy, BearOso)
- Increase SuperFX speed to more accurately represent hardware, and fix bugs with Stunt Race FX and Yoshi's Island. (BearOso)
- Resize viewport on state load. (retrotalker)
- Many fixes to variables not saved or saved incorrectly in save states. (Dwedit)
- Pass decimal tests in blargg's math test ROMs. (BearOso)
- Remove memory leak in loadzip.cpp. (bonimy)
- Fix screen size not reverting when overscan is turned on then off mid-frame. (BearOso)
Win32:
- Include DirectDraw libraries and compile with DirectDraw support by default. (OV2)
- Add a link to DirectX installer in error message displayed when the needed DirectX libraries can't be found. (OV2)
- Save window position when exiting via menu (OV2)
- Make custom ROM dialog resizable. (OV2)
- Fix various cheat dialog issues. (OV2)
- Remove d3d9x DLL dependency by using DirectXMath. (OV2)
- Remove rarely-used HLSL shader option. (OV2)
- Add InitialSnapshotFilename support. (BearOso)
- Disable BG toggle keys by default. (BearOso)
- Proper centering and cropping for overscanned and regular height modes. (OV2)
- Remove ability to disable the SNES's hires modes. (OV2)
- Added a Super Famicom-style icon resource to the EXE. (BearOso) MacOS:
- Partial support for new cheats format. (OV2)
- Fix MacOS build. (marconett)
- Set default for new config options. (tmkk)
- Fix compilation on Mac OS Mojave (meepingsnesroms)
libretro:
- Massive update of libretro code to latest downstream. (fr500, kps501, OV2, twinaphex, BearOso, hiddenasbestos, m4xw, kxyxz, claudiuslollarius)
- GTK+:
- Use datarootdir instead of datadir on install. (orbea)
- Fix --with-system-zip configure flag. (BearOso)
- Draw interlaced fields when ready. (BearOso)
- Initial Wayland support. (remicalixte)
- Allow XV only in X11. (BearOso)
- Add Wayland support via EGL. (BearOso)
- Significant rewrite of OpenGL driver to support newer standards. This won't work on cards < OpenGL ~1.5. (BearOso)
- Changed frameskip option to speed throttling option with simpler, but more relevant methods of speed control. (BearOso)
- Add support for relative-style save slots. (ichigo-0, BearOso)
- Remove XML config file format in favor of one more like Win32. Make joystick bindings and more options human- readable and editable. (BearOso)
- Try more device nodes when initializing OSS. (BearOso)
→ [SNES] nieOficjalny Snes9x 1.57
Snes9x 1.57 ??/11/2018
- Various seta010 emulation fixes. (kps501)
- Pass blargg OAM tests with proper write behavior. (BearOso)
- Prevent interlacing in BG modes 1-4. (BearOso)
- Corrected IRQ and NMI emulation to allow more games to work properly. (BearOso, OV2)
- Use 1 instead of 0 for initial PPU left window coordinate, fixing garbage in left column of pixels in some games. (turhope)
- Added interpolation option hack for DSP. (kps501, mudlord, BearOso)
- Added sprite-tile limit disabling hack. (Tatsuya79)
- Added libretro's fast snapshot support. (OV2)
- Add overclocking hack that increases IPC (retrotalker)
- Fix controller initialization issues preventing some games from using multitap. (retrotalker)
- Proper write behavior for register $2122. (BearOso)
- Fix transparency issue with Star Fox asteroids. (redguy, BearOso)
- Increase SuperFX speed to more accurately represent hardware, and fix bugs with Stunt Race FX and Yoshi's Island. (BearOso)
- Resize viewport on state load. (retrotalker)
- Many fixes to variables not saved or saved incorrectly in save states. (Dwedit)
- Pass decimal tests in blargg's math test ROMs. (BearOso)
- Remove memory leak in loadzip.cpp. (bonimy)
- Fix screen size not reverting when overscan is turned on then off mid-frame. (BearOso)
Win32:
- Include DirectDraw libraries and compile with DirectDraw support by default. (OV2)
- Add a link to DirectX installer in error message displayed when the needed DirectX libraries can't be found. (OV2)
- Save window position when exiting via menu (OV2)
- Make custom ROM dialog resizable. (OV2)
- Fix various cheat dialog issues. (OV2)
- Remove d3d9x DLL dependency by using DirectXMath. (OV2)
- Remove rarely-used HLSL shader option. (OV2)
- Add InitialSnapshotFilename support. (BearOso)
- Disable BG toggle keys by default. (BearOso)
- Proper centering and cropping for overscanned and regular height modes. (OV2)
- Remove ability to disable the SNES's hires modes. (OV2)
- Added a Super Famicom-style icon resource to the EXE. (BearOso) MacOS:
- Partial support for new cheats format. (OV2)
- Fix MacOS build. (marconett)
- Set default for new config options. (tmkk)
- Fix compilation on Mac OS Mojave (meepingsnesroms)
libretro:
- Massive update of libretro code to latest downstream. (fr500, kps501, OV2, twinaphex, BearOso, hiddenasbestos, m4xw, kxyxz, claudiuslollarius)
- GTK+:
- Use datarootdir instead of datadir on install. (orbea)
- Fix --with-system-zip configure flag. (BearOso)
- Draw interlaced fields when ready. (BearOso)
- Initial Wayland support. (remicalixte)
- Allow XV only in X11. (BearOso)
- Add Wayland support via EGL. (BearOso)
- Significant rewrite of OpenGL driver to support newer standards. This won't work on cards < OpenGL ~1.5. (BearOso)
- Changed frameskip option to speed throttling option with simpler, but more relevant methods of speed control. (BearOso)
- Add support for relative-style save slots. (ichigo-0, BearOso)
- Remove XML config file format in favor of one more like Win32. Make joystick bindings and more options human- readable and editable. (BearOso)
- Try more device nodes when initializing OSS. (BearOso)
→ [SNES] Oficjalny Snes9x 1.56.2
Snes9x 1.56.2 22/06/2018
- Fixed IRQ corner case that caused Umihara Kawase's water to cover the whole screen. (BearOso)
- Adjusted IRQ timing slightly. Fixes Dragon Ball Z - Super Butouden 2. (BearOso)
- Clear WAI when IRQLine is active. Fixes Top Gear 3000. (BearOso)
- Fix reading the wrong tile data in mosaic drawing. Gets rid of glitch at top of FF6 battle transitions. (BearOso)
- Break a specific opcode into cycles. Fixes Little Magic. (BearOso)
- Win32: Don't mix garbage into the last line with NTSC filter. (OV2)
- Win32: Allow disabling scanlines in NTSC filter. (BearOso)
- GTK+: Added an undo load state option. (BearOso)
- GTK+: Fixed compilation on big-endian systems. (OV2)
- Win32, GTK+: Added integer scaling option. (BearOso)
- GTK+, Unix: Preserve current joypad state when rewinding. (BearOso)
Vox populi
Dodaj komentarz!!!!
[SNES] SuperSnes9x 1.63.29 8/08/2026
[SNES] Super ZSnes 0.230 21/06/2026
![[SNES] Oficjalny Snes9x 1.62.3 30/03/2023](/Photos/www/picphoto/5ef97baf1.jpg,134)








Official source code repository for the Snes9x project.
Snes9x is a portable, freeware Super Nintendo Entertainment System (SNES) emulator. It basically allows you to play most games designed for the SNES and Super Famicom Nintendo game systems on your PC or Workstation; which includes some real gems that were only ever released in Japan.
Snes9x is the result of well over three years worth of part-time hacking, coding, recoding, debugging, divorce, etc. (just kidding about the divorce bit). Snes9x is coded in C++, with three assembler CPU emulation cores on the i386 Linux and Windows ports.
