Skip to content

matbo87/snes9x_3ds

 
 

Repository files navigation

Snes9x for 3DS

Overview

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.

Main features

  • 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

Setup

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.

3DSX version

  • Copy snes9x_3ds.3dsx to sd:/3ds/snes9x_3ds
  • Start it from the Homebrew Launcher

Assets (images and cheats)

Assets are provided in dedicated asset repository:

Notes:

  • The repository follows a 1G1R-style selection.
  • Naming is strict No-Intro style for matching.

Building from source

  • 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 3dsx builds: tex3ds, smdhtool, 3dsxtool (from the devkitPro 3DS toolchain).
  • For cia builds: makerom in addition to the above.

Common build targets:

  • make 3dsx
  • make citra
  • make 3dslink (sends the .3dsx to your Homebrew Launcher)

This repository bundles makerom binaries under makerom/ for convenience. Bundled binary provenance is documented in makerom/BINARY_SOURCES.md.

Emulator status

  • Citra macOS (Nightly 1989): incomplete (no audio, Mode 7 textures only partially visible)
  • Other 3DS emulators: not tested by me

Screenshots

Aladdin Donkey Kong Country
Start screen, File menu tab with "Game Thumbnail" option enabled Pause screen, RetroArch theme, per-game overlay enabled
Aladdin Donkey Kong Country
Original theme, pixel-perfect video, cheats enabled TV-style video, applied hotkeys + "Analog to Digital Type" disabled
Super Street Fighter II International Superstar Soccer Deluxe
Cropped 4:3 video, game-specific cover 4:3 video, swapped screen and Konami cheat via 2-Player-Switch

Frequently Asked Questions

A game runs slow. How can I improve performance?

  • Increase Frameskips (try 1-2 first)
  • Set SRAM Auto-Save Delay to 60 seconds or disable it
  • Set In-Frame Palette Changes to Disabled Style 1 or Disabled 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

A game looks broken or has visual glitches. What can I try?

  • Set In-Frame Palette Changes to Enabled
  • 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

Cheats are not working properly

  • The cheat set is only roughly tested
  • Some cheats may not work correctly and may damage save data
  • Always use cheats with caution

Snes core features

  • 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)

What's missing / needs to be improved

  • 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)

License

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:

Credits

About

SNES9x Port for 3DS / 2DS

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

No contributors

Languages

  • C++ 83.0%
  • C 16.4%
  • Makefile 0.6%