A curated list of tools, libraries, documentation, and projects for Super Nintendo Entertainment System / Super Famicom homebrew development.
The SNES (Super Famicom) is a 65816-based console from 1990 with a capable PPU and an SPC700 sound subsystem. This list collects the assemblers, C toolchains, emulators, debuggers, graphics and audio tools, hardware references, tutorials, example projects, and communities for building real SNES software.
See also: Awesome NESdev.
- Getting Started & References
- Tutorials & Guides
- Assemblers & Toolchains
- C & High-Level Toolchains & Libraries
- Emulators & Debuggers
- Graphics Tools
- Audio & Music Tools
- Hardware Docs
- Example & Open-Source Games
- Flashcarts & Hardware
- Communities
- AI & ML on the SNES
- Contributing
- SNESdev Wiki - Community wiki covering SNES/Super Famicom hardware, registers, and development.
- Super Famicom Development Wiki - Community SNES dev wiki with register maps, tutorials, and tooling notes.
- fullsnes - nocash's exhaustive single-page SNES hardware specification (CPU, PPU, APU, DSP).
- snesdev-notes - undisbeliever's practical notes on a range of SNES development topics.
- Assembly for the SNES (Ersanio) - A plain-English 65c816 assembly guide focused on opcodes and SNES internals.
- Retro Game Mechanics Explained - Video series with in-depth SNES hardware breakdowns (Mode 7, HDMA, palettes, audio).
- cc65 / ca65 -
ca65supports the 65816, making the cc65 suite usable for SNES assembly projects. - WLA-DX - Multi-platform cross assembler with full 65816 and SPC700 support, widely used for SNES.
- bass - Maintained fork of byuu's
bassmulti-architecture assembler, common for 65816 SNES work.
- PVSnesLib - The main open C development kit for the SNES, with a tcc-based toolchain, libraries, and examples.
- libSFX - A full SNES development framework built on ca65.
- lorom-template - An SNES LoROM (mode $20) ca65 project template.
- snes-hello - A Hello-World SNES starter accompanying a video tutorial series.
- bsnes - Accuracy-focused SNES emulator.
- bsnes-plus - Debug-oriented fork of bsnes with a disassembler, breakpoints, and memory tools.
- Snes9x - Portable, long-standing SNES emulator.
- Mesen2 - Multi-system emulator with a strong SNES debugger; the repository is archived but it remains a reference tool.
- higan - byuu's accuracy- and preservation-focused multi-system emulator with a strong SNES core.
- ares - Actively developed successor lineage to higan; accurate SNES emulation with a debugger.
- no$sns - nocash's SNES emulator/debugger with VRAM and memory monitoring tools (companion to fullsnes).
- SuperFamiconv - Flexible tile, palette, and map graphics converter supporting SNES (and other console) formats.
- Tiled - Free, open-source tile map editor widely used for level design, with community SNES export tooling.
- tmx2snes - Converts Tiled
.tmxtilemaps into SNES background maps.
- Terrific Audio Driver - Modern homebrew SNES SPC700 audio driver with a GUI editor.
- SNESMod - SPC700 music and sound driver that plays IT-format modules on the SNES.
- C700 - SPC700 software-sampler AU/VST plugin for authoring SNES-format instruments.
- fullsnes - In-depth coverage of the SPC700, PPU, and DSP registers (same nocash reference).
- Anomie's SNES Documents - The canonical SNES hardware register reference (regs.txt), part of Anomie's SNES doc set covering memory mapping, timing, and the S-DSP.
- WDC W65C816S datasheet - The official Western Design Center datasheet for the SNES CPU core.
- SNES Assembly Adventure - Code accompanying a step-by-step 65816 SNES assembly tutorial series.
- unnamed-snes-engine - A single-screen top-down SNES game demo and engine.
- snes-breakout - A small, complete Breakout clone written in SNES assembly.
- SNES_00 - nesdoug's SNES test and example code, part of a numbered example series.
- SA1-Root - An open project for accelerating SNES games with the SA-1 chip, with substantial documented 65816/SA-1 source.
- sd2snes / FXPAK Pro firmware - Open-source firmware for the SD-card SNES flashcart used to run homebrew on real hardware.
- Super EverDrive X6 (Krikzz) - Official product page for the SNES SD flashcart.
- NESdev Forums (SNESdev section) - Hosts the primary SNES/Super Famicom development discussion boards.
- NESdev Discord - Active real-time chat covering both NES and SNES development.
- elya-snes - A ternary transformer LLM on the SNES 65816, showing ternary beating int8 by 2.02x despite the hardware multiplier.
Contributions are welcome. Please read the contributing guidelines first, then open a pull request.
To the extent possible under law, the contributors have waived all copyright and related or neighboring rights to this work.
