This project is a fork of the legacy snes9x_3ds codebase by bubble2k and continues that work with a modernized architecture and improved user experience. It builds with current devkitARM, libctru and citro3d releases (as of March 2026). Optional assets are available in the dedicated asset repository: snes9x_3ds-assets.
It works on all 2DS and 3DS models. Old 2DS/3DS can struggle with demanding games (e.g. Super FX titles like Star Fox), but many SNES games still run well.
Feedback, bug reports and contributions are welcome.
- Thumbnail support (box art, title and gameplay)
- Per-game backgrounds for top and bottom screens, overlays with auto-fit option
- SNES refresh rate matching (60.1 Hz for NTSC, 50 Hz for PAL)
- Theme support
- Improved cheat management
- Clean, RetroArch-style folder structure
- Directory caching for faster ROM list loading
- Extended hotkey options and screen swap support
- A modded 3DS is required.
- Install via Universal Updater, or install the latest
.ciafrom Releases - Optional: download asset packs from snes9x_3ds-assets releases.
ROMs can be stored in any folder. ZIP files are not supported.
Supported ROM formats:
.smc.sfc.fig
Configs, saves and imported assets are stored in sd:/3ds/snes9x_3ds.
- Copy
snes9x_3ds.3dsxtosd:/3ds/snes9x_3ds - Start it from the Homebrew Launcher
Assets are provided in dedicated asset repository:
Notes:
- The repository follows a 1G1R-style selection.
- Naming is strict No-Intro style for matching.
- Install devkitPro and 3DS toolchain packages (including devkitARM, libctru, citro3d). If needed, follow the devkitPro pacman guide.
- The Makefile is based on TricksterGuy's 3ds-template.
Required command-line tools in PATH:
- For
3dsxbuilds:tex3ds,smdhtool,3dsxtool(from the devkitPro 3DS toolchain). - For
ciabuilds:makeromin addition to the above.
Common build targets:
make 3dsxmake citramake 3dslink(sends the.3dsxto your Homebrew Launcher)
This repository bundles makerom binaries under makerom/ for convenience.
Bundled binary provenance is documented in makerom/BINARY_SOURCES.md.
- Citra macOS (Nightly 1989): incomplete (no audio, Mode 7 textures only partially visible)
- Other 3DS emulators: not tested by me
- Increase
Frameskips(try 1-2 first) - Set
SRAM Auto-Save Delayto 60 seconds or disable it - Set
In-Frame Palette ChangestoDisabled Style 1orDisabled Style 2 - Disable 3D and/or on-screen display settings
- Super FX games often run poorly on old 2DS/3DS models
- Check the Compatibility List with care, it may be outdated
- Set
In-Frame Palette ChangestoEnabled - Enabled cheats can break visuals or gameplay; disable cheats and reload the game
- Check if your ROM is valid (No-Intro is highly recommended; ROM hacks may have issues)
- Check the Compatibility List with care, it may be outdated
- The cheat set is only roughly tested
- Some cheats may not work correctly and may damage save data
- Always use cheats with caution
- Graphic modes 0 * 7.
- Frame skipping.
- Stretch to full screen / 4:3 ratio
- SDD1 chip (Street Fighter 2 Alpha, Star Ocean)
- SFX1/2 chip (Yoshi's Island, but slow on old 3DS)
- CX4 chip (Megaman X-2, Megaman X-3)
- DSP chips (Super Mario Kart)
- SA-1 chip (Super Mario RPG, Kirby Superstar)
- Sound emulation (32KHz, with echo and gaussian interpolation)
- Citra support is incomplete (no audio, partial Mode 7 rendering)
- Audio backend depends on deprecated CSND service
- Minor sound emulation errors
- Poor performance in some Super FX games (for example Doom)
- Mosaic effects
- In-frame palette changes (a small number of games show color issues)
Some files may carry their own license headers, but because this project includes the Snes9x core (source/Snes9x/), redistribution of the combined project follows the Snes9x non-commercial license terms.
See:
- bubble2k for snes9x_3ds
- ramzinouri for snes9x_3ds fork
- willjow for snes9x_3ds fork
- Wyatt-James for warning/safety/audio fixes adapted from Wyatt-James/snes9x_3ds:





