Skip to content
Screenshot published by the prisme_snes project
Screenshot published in the prisme_snes project's official README. Image source: prisme_snes project on GitHub.

prisme_snes

SNES EMULATOR

prisme_snes

Prisme (prisme_snes) is an open-source Super Nintendo (SNES / Super Famicom) emulator written in Rust. It implements the 65C816 CPU, SPC700 audio, S-DSP, PPU (BG modes 0–7, Mode 7, sprites, windows, color math, hires/interlace), DMA, and cartridge mapping plus four cartridge coprocessors (SuperFX, SA-1, DSP-1, CX4). It includes a native Rust frontend with a

SNESPRIMARY SYSTEM
History documentedPROJECT BEGAN
Open sourcePROJECT MODEL

WHY IT MATTERS

Why Prisme exists

Prisme is a from-scratch SNES implementation in Rust intended as both an accuracy-focused emulator core and a self-contained frontend/library. The repository includes technical documentation (French and English), a plain-language walkthrough of the emulator internals, and a JSON agent channel for programmatic control; the project also experiments with an optional 'assistant' feature driven by a locally installed Claude CLI.

BEST FOR

Notable capabilities

Playable rendering and audio for LoROM and HiROM (NTSC and PAL); full 65C816 instruction set; SPC700 audio with S-DSP features (BRR, interpolation, ADSR/GAIN, echo); functioning SuperFX and SA-1 cores and HLE for DSP-1 and CX4; headless modes for PNG/WAV/trace dumps; save states and a game library frontend with metadata lookup.

Super Mario World gameplay on SNES
Gameplay from Super Mario World on SNES.

The people behind prisme_snes

Project & status notes

The repository presents a mature codebase with extensive unit tests (the README reports 758 passing tests split across core and frontend) and a status summary describing implemented subsystems and known gaps. The README describes a Version 1.4.0 feature set and verifies end-to-end gameplay on several commercial SNES cartridges (validation examples listed). The project is hosted on GitHub and distributed under its repository's license; development history, punchlist of accuracy items, and roadmap/ideas are documented in the repo's docs/ folder.

What prisme_snes supports

  • LoROM and HiROM SNES cartridges (file types: .sfc, .smc, .zip supported by frontend)
  • Cartridge coprocessors: SuperFX (GSU), SA-1, DSP-1 (HLE), CX4 (HLE)
  • Platforms: Linux, macOS, Windows (cross-platform Rust frontend using winit + pixels + cpal; macOS has an additional native menu bar integration)
  • Headless operation: scripted input, PNG/WAV/trace dumps, save-state export

Download and availability

OFFICIAL DOWNLOADS

Get prisme_snes

Official source and release builds are provided from the project's GitHub repository. The code and releases are available on the project's GitHub page and its Releases section; prebuilt binaries may appear there if the maintainer uploads them. For the canonical source and artifacts, use the repository and the Releases page.

Get prisme_snes ↗

DOCUMENTATION

Official documentation

Read the official configuration, compatibility, and troubleshooting material before changing advanced options.

Read official documentation ↗
Broken or missing download? Emulator projects move and official links sometimes change. Please contact Retro Replay so the source can be verified and updated.

prisme_snes setup guide

Setup note: This setup guide explains how to build and run prisme_snes from source, how to run the frontend and headless modes, and practical notes about controllers, saves, and the optional agent/assistant features. It is based on the project's official README and docs in the repository.

  1. 1) Get the source: Clone the official GitHub repository (stephanecot/prisme_snes). Use git to obtain the full history and docs directory so you have the project's documentation and 'emulateur-snes-explique.pdf'.
  2. 2) Install Rust toolchain: Install a recent stable Rust toolchain (rustup). The project builds with Cargo; the README states 'Requires a recent stable Rust toolchain.' Ensure rustc and cargo are on your PATH and up-to-date before building.
  3. 3) Build the project: From the repository root run: cargo build –release . This builds the workspace. If you only want the frontend binary you can invoke cargo run –release -p prisme — <options> as shown in the README.
  4. 4) Running the frontend (with a ROM): Run the frontend with a ROM path: cargo run –release -p prisme — path/to/game.sfc . The frontend accepts .sfc, .smc and .zip ROMs. Launching without a ROM opens a native file dialog filtered to supported extensions and starting in roms/ if that folder exists.
  5. 5) Headless and scripted operation: The emulator supports headless execution and scripted inputs. Example shown in the README: cargo run –release -p prisme — game.sfc –headless –frames 300 –script inputs.txt . Headless mode still requires a ROM path.
  6. 6) Controls and hotkeys: The README documents keyboard mappings (arrow keys for D-pad, Z/X/A/S for face buttons, Q/W for L/R, Enter/Right-Shift for Start/Select) and emulator hotkeys: P pause, N frame-advance, F5/F9 save/load state, F8 export SPC, F12 screenshot, F11 fullscreen, etc.
  7. 7) Save files and battery SRAM: The frontend persists cartridge SRAM sidecars (e.g. .srm) as described in the repository. Note: some multi-CPU cartridges (SA-1) keep battery data in the coprocessor's own BW-RAM; the README documents that such data may survive in save states but not be persisted by the front-end's simple cart.sram persistence (see docs/PUNCHLIST.md and frontend/src/save.rs).
  8. 8) Optional agent and assistant features: Prisme provides an –agent JSON stdin/stdout channel for programmatic control (step, press, screenshot, read/write memory, save/load state, cheats). An optional 'assistant' integration uses a locally installed claude CLI; absence of that tool disables the feature with a reason per the docs. Review docs/ASSISTANT.md before attempting to enable it.

Software reminder: Prisme does not include commercial game ROMs, BIOS, firmware, or keys. You must supply your own legally-obtained ROM files and any third-party tools (e.g., the optional claude CLI) the optional features require.

Sources and further reading

Detailed guides and tutorials

Explore step-by-step guides for prisme_snes as they are published.