rust-wasm-snes
github.com
Spec sheet
- Purpose
- A cycle-accurate Super Nintendo emulator written in Rust, compiled to WebAssembly, and running in a browser.Read 4 Oct 2026 · github.com
- Support
- The repository exposes GitHub Issues and Pull Requests for project activity.Read 4 Oct 2026 · github.com
- License
- The project is licensed under MIT.Read 4 Oct 2026 · github.com
- Headquarters
- Melbourne, AustraliaRead 28 Sep 2026 · github.com
- Audio
- Its S-DSP implementation supports eight voices, BRR decoding, ADSR/GAIN envelopes, Gaussian interpolation, and eight-tap FIR echo.Read 4 Oct 2026 · github.com
- Audio verification
- The project compares audio output against blargg’s snes_spc reference implementation using principal-component analysis and reports 1.01× amplitude versus the reference.Read 4 Oct 2026 · github.com
- Build and run
- The README documents a WebAssembly build with wasm-pack and a local Python server at http://localhost:8090.Read 4 Oct 2026 · github.com
- Build targets
- The README documents a browser WebAssembly build and a native build for debug tooling, headless ROM runners, audio comparison, and benchmarking.Read 4 Oct 2026 · github.com
- CPU
- The emulator implements all 256 65C816 CPU opcodes with master-cycle accuracy.Read 4 Oct 2026 · github.com
- CPU and sound
- The project describes support for all 256 65C816 CPU opcodes and all 256 SPC700 opcodes, with cycle-aware timing and an S-DSP supporting eight voices and BRR decoding.Read 4 Oct 2026 · github.com
- Debugging tools
- The project documents trace comparison against Mesen2 and includes tooling for waveform comparison and execution-trace diffs.Read 4 Oct 2026 · github.com
- Experimental mode
- An experimental off-main-thread worker scaffold is provided and requires COOP/COEP headers for SharedArrayBuffer.Read 4 Oct 2026 · github.com
- Game compatibility
- The README says A Link to the Past works with its overworld and Mode 7, while Super Mario World has a known mode-07 input stall.Read 4 Oct 2026 · github.com
- Graphics
- PPU support is partial: modes 0, 1, and 3 work, while mode 7 is partial.Read 4 Oct 2026 · github.com
- Graphics support
- The PPU has partial mode coverage: modes 1 and 3 work, while mode 7 is partial.Read 4 Oct 2026 · github.com
- Known limits
- Mega Man X boots and plays but has broken audio; Super Mario Kart needs a DSP-1 coprocessor, and Chrono Trigger needs HiROM support.Read 4 Oct 2026 · github.com
- License and ROMs
- The project is MIT-licensed; ROM files are not included, and the README says users should bring their own.Read 4 Oct 2026 · github.com
- Live demo
- The repository links to a live demo with an in-browser ROM picker listing 746 titles via Internet Archive, served through a Cloudflare CORS proxy.Read 4 Oct 2026 · github.com
- ROM picker
- The in-browser ROM picker lists 746 titles via Internet Archive, served through a Cloudflare CORS proxy.Read 4 Oct 2026 · github.com
- ROM requirement
- ROM files are not included, and the README says to bring your own; the browser ROM picker uses publicly archived Internet Archive material.Read 4 Oct 2026 · github.com
- Save states
- It serializes full emulator state, including CPU, bus, PPU, APU, and SRAM, into a roughly 484 KB binary snapshot.Read 4 Oct 2026 · github.com
- Security and compliance
- The repository’s Security and quality tab displays zero.Read 4 Oct 2026 · github.com
Where Specifiction places it
- SNES Emulators#22 of 307.0