SuperSnes9x
SuperSnes9x is an emulator for the Super Nintendo Entertainment System that supports GameBoy and GameBoy Color emulation and includes Lua scripting.
- Type: emulator
- Runs on Windows, Linux and macOS
- By shanytc
- Latest release 1.63.32, 2026-11-02
- Source: https://github.com/shanytc/snes9x
README
SuperSnes9x
SuperSnes9x - Portable Super Nintendo Entertainment System (TM) emulator
This is the un-official source code fork for the Snes9x project.
Please check our Wiki or the official Wiki for additional information.
SuperSnes9x Features:
- Super FX 3 (FX3) support for the 2026 LRG releases, with cycle-accurate GSU timing
- LRG SNES rumble dongle support (Ultimate Doom FX3, RT.SFC)
- Supports GameBoy, GameBoy Color, Super Game Boy, Super Game Boy 2, Super Game Boy Color (experimental)
- libretro core for SNES / SGB / GB / GBC
- Voicer-kun peripheral emulation (plays its audio CDs from cue/bin images, infrared transmitter/receiver)
- Super Famicom Box (hotel version, with live English OSD translations)
- Nintendo SuperDisc
- Nintendo Super System
- Event carts - PowerFest '94, Nintendo Campus Challenge '92
- Kaillera Server/Client
- RetroAchievements (without Hardcore)
- Wide-SNES - Supports the widescreen SMW ROM hack by Vitor Vilela
- PPU Sprite/Tile/Tiles viewers (SNES, GB, GBC, SGB)
- Audio waveform viewer (Logic-style per-channel tracks, solo/mute, level meters)
- Enhanced Cheat Search / Cheat Editor (SNES, GB — incl. GB cheats in SGB BIOS mode)
- Multi-Bind-Controller support
- Run-Ahead (Input lag reduction)
- Lua scripting - SuperSnes9x API, Editor & Debugger
- Color Correction Support / Native CRT Colors
- Barcodes - Barcode Battler II, Barcode Boy, Barcode Taisen Bardigun
- SDL Support
- Multi-Language Pack
- 100% Acid Tests support for gbc/gb/sgb (Emulator shootout)
SuperSnes9x libretro core
The SuperSnes9x libretro core (supersnes9x_libretro.so — SNES / SFC / SGB /
GB / GBC in one core) is built from this repository. Prebuilt cores for
Windows, Linux, macOS and Android are in the nightly builds.
To build the portable Linux core locally with Docker:
cd libretro/linux
./build-portable.sh x86_64 # output: libretro/linux/dist/x86_64/
Then copy supersnes9x_libretro.so together with
libretro/supersnes9x_libretro.info into your RetroArch cores directory
(e.g. ~/.config/retroarch/cores/). For authentic Super Game Boy mode,
place the SGB BIOS ROMs (SGB1.sfc / SGB2.sfc) in RetroArch's system
directory — without them, GB content runs on the built-in BIOS-less core.
For the original Game Boy / Game Boy Color power-on animation (the Nintendo
logo scrolling down, then the boot chime), drop a boot ROM in the same place:
dmg_boot.bin (256 bytes) for Game Boy and cgb_boot.bin (2304 bytes) for
Game Boy Color. The desktop builds also look next to the ROM and in the
configured BIOS directory — note that a relative BIOS directory in the config
resolves against the working directory the emulator was launched from, so an
absolute path is safer. None is bundled — with no matching file present, carts
start immediately exactly as before.
Emulation → BIOS then lists it alongside the Super Game Boy entries: No BIOS, Game Boy BIOS (or Game Boy Color BIOS, matching the loaded cart), SGB1, SGB2. Entries whose BIOS file is missing are greyed out, and the checked entry is whatever is actually running. With both an SGB BIOS and a GB boot ROM installed, SGB mode stays the default; picking the Game Boy entry runs the cart on its own console instead, and picking an SGB entry hands it back.
Or you can build all versions: appimage, linux, android (requires docker).
cd libretro
./build-all.sh
macOS
The Qt GUI and the libretro core both build on macOS, self-signed so they run without a paid Apple Developer account:
# Qt GUI -> qt/build-macos/super-snes9x-qt.app
cmake -S qt -B qt/build-macos -G Ninja -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_PREFIX_PATH="$(brew --prefix qt)"
cmake --build qt/build-macos -j"$(sysctl -n hw.ncpu)"
qt/scripts/makeapp-macos.sh
# libretro core -> libretro/macos/dist/ (universal x86_64 + arm64)
libretro/macos/build-macos.sh
Or build both at once with cd libretro && ./build-all.sh --osx. That flag
selects the macOS artifacts instead of the Linux and Android ones — the
Linux AppImages are native builds and the macOS ones need Xcode, so a single
host can't produce both.
The macOS GUI uses the Qt Software or OpenGL display driver; Vulkan is not
available on the platform. Because the builds are ad-hoc signed rather than
notarized, a copy that arrives over the network needs its quarantine flag
cleared: xattr -dr com.apple.quarantine <path>.
See qt/docs/README-macos.md for details.
Nightly builds
Every night that master has new commits, GitHub Actions builds everything
below and publishes it as the rolling
nightly pre-release.
The links always point at the newest nightly. These are untested snapshots
and may be broken. For stable builds use the
latest release.
| Platform | GUI | libretro core |
|---|---|---|
| Windows 64-bit | super-snes9x (x64) | core (x64) |
| Windows 32-bit | super-snes9x (x86) | core (x86) |
| Linux x86_64 | Qt AppImage · GTK AppImage | core (x86_64) |
| Linux x86 | Qt AppImage · GTK AppImage | core (x86) |
| macOS | Qt app (universal x86_64 + arm64) | core (universal x86_64 + arm64) |
| Android | — | arm64-v8a · armeabi-v7a |
Windows: unzip and run. Linux: chmod +x the AppImage. macOS: the app is
self-signed, so after copying it run
xattr -dr com.apple.quarantine super-snes9x-qt.app. Cores: unzip the core
and its .info file into RetroArch's cores directory.