FREEDOM251

Freedom251 › SNES Emulators

rust-wasm-snes

Free plan Web

Visit rust-wasm-snes Alternatives

rust-wasm-snes's own site

What rust-wasm-snes is

rust-wasm-snes is a free Super Nintendo emulator written in Rust, compiled to WebAssembly and run in a browser. Its CPU implements all 256 65C816 opcodes with master-cycle accuracy, and the project describes support for all 256 SPC700 opcodes. The sound implementation includes eight voices, BRR decoding, envelopes, interpolation and FIR echo. Graphics remain partial: PPU modes 0, 1 and 3 work, while mode 7 is partial. A browser ROM picker lists 746 titles via Internet Archive material served through a Cloudflare CORS proxy, but ROM files are not included and the README says users should bring their own. Compatibility differs by game: A Link to the Past works with its overworld and Mode 7, while Super Mario World has a known mode-07 input stall. Mega Man X plays with broken audio; Super Mario Kart needs a DSP-1 coprocessor and Chrono Trigger needs HiROM support. The MIT-licensed project documents browser and native builds, emulator-state snapshots and debugging tools.

Who it suits

This project may suit people looking for a browser-based SNES emulator and developers interested in its Rust and WebAssembly implementation. Users should be prepared to supply ROM files and encounter incomplete graphics or game-specific limits.

What it does well

  • Free and MIT-licensed.
  • Browser ROM picker lists 746 titles.
  • CPU implements all 256 65C816 opcodes.
  • Provides full emulator-state snapshots.
  • Documents audio and execution-trace comparison tools.

What to know first

  • ROM files are not included.
  • PPU graphics support is partial.
  • Mega Man X has broken audio.
  • Some games require unsupported coprocessor or HiROM support.

Verdict

rust-wasm-snes has detailed CPU and audio support, but its graphics and game compatibility remain incomplete. ROMs are not supplied, and users should check the listed game-specific limitations.

Facts from rust-wasm-snes's own pages

Audio
Its S-DSP implementation supports eight voices, BRR decoding, ADSR/GAIN envelopes, Gaussian interpolation, and eight-tap FIR echo. · github.com, 4 Oct 2026
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. · github.com, 4 Oct 2026
Build and run
The README documents a WebAssembly build with wasm-pack and a local Python server at http://localhost:8090. · github.com, 4 Oct 2026
Build targets
The README documents a browser WebAssembly build and a native build for debug tooling, headless ROM runners, audio comparison, and benchmarking. · github.com, 4 Oct 2026
CPU
The emulator implements all 256 65C816 CPU opcodes with master-cycle accuracy. · github.com, 4 Oct 2026
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. · github.com, 4 Oct 2026
Debugging tools
The project documents trace comparison against Mesen2 and includes tooling for waveform comparison and execution-trace diffs. · github.com, 4 Oct 2026
Experimental mode
An experimental off-main-thread worker scaffold is provided and requires COOP/COEP headers for SharedArrayBuffer. · github.com, 4 Oct 2026
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. · github.com, 4 Oct 2026
Graphics
PPU support is partial: modes 0, 1, and 3 work, while mode 7 is partial. · github.com, 4 Oct 2026
Graphics support
The PPU has partial mode coverage: modes 1 and 3 work, while mode 7 is partial. · github.com, 4 Oct 2026
Headquarters
Melbourne, Australia · github.com, 28 Sept 2026
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. · github.com, 4 Oct 2026
License
The project is licensed under MIT. · github.com, 4 Oct 2026
License and ROMs
The project is MIT-licensed; ROM files are not included, and the README says users should bring their own. · github.com, 4 Oct 2026
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. · github.com, 4 Oct 2026
Purpose
A cycle-accurate Super Nintendo emulator written in Rust, compiled to WebAssembly, and running in a browser. · github.com, 4 Oct 2026
ROM picker
The in-browser ROM picker lists 746 titles via Internet Archive, served through a Cloudflare CORS proxy. · github.com, 4 Oct 2026
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. · github.com, 4 Oct 2026
Save states
It serializes full emulator state, including CPU, bus, PPU, APU, and SRAM, into a roughly 484 KB binary snapshot. · github.com, 4 Oct 2026
Security and compliance
The repository’s Security and quality tab displays zero. · github.com, 4 Oct 2026
Support
The repository exposes GitHub Issues and Pull Requests for project activity. · github.com, 4 Oct 2026

Where rust-wasm-snes stands on Freedom251

Look at these too