-
Notifications
You must be signed in to change notification settings - Fork 0
Reference Materials
RustySNES's design draws on a body of external SNES hardware research and emulator-architecture survey work, preserved as immutable historical context in the main repository's ref-docs/ directory. Unlike the docs/ tree (which is the living specification, kept in sync with the code), ref-docs/ is never rewritten in place — a correction lands as a new, dated supplemental file, never an edit to the original.
- Research Report — the primary deep-research synthesis behind the project's architecture: hardware behavior, memory-map models, coprocessor survey, test-ROM corpora and their licenses, and the state-of-the-art in SNES emulation this project targets (Mesen2 / ares / higan / bsnes).
- 2026-06-24 — PPU — a focused hardware-behavior deep dive on PPU1/PPU2 (5C77/5C78) timing, HDMA, and DMA-crossing constraints.
- 2026-06-24 — APU — a focused deep dive on the SPC700/S-DSP audio subsystem and the CPU/APU async resync model.
- 2026-06-24 — Coprocessors — the primary source behind Cartridge-and-Coprocessors: the memory-map models, the full coprocessor survey (DSP-1..4, Super FX, SA-1, S-DD1, SPC7110, CX4, OBC1, ST010/011, ST018, S-RTC), and the shared-engine leverage insight (one µPD77C25/µPD96050 LLE core covering six chips).
The project studies (but never vendors code from) several reference emulators under ref-proj/ — a gitignored, local-only tree used to cross-check hardware behavior against independent implementations before committing to a formula. RustySNES's own decode logic is always a clean-room port grounded in cited hardware documentation, never a copy — see, for example, how the ExLoROM decode formula in Cartridge-and-Coprocessors was independently verified against both ares' and bsnes's source before being trusted.
See Architecture-Decision-Records for the numbered, Nygard-format ADRs — the project's record of why, as opposed to docs/'s record of what.
The other wiki pages summarize and link into the main repository's docs/ tree, which is the authoritative, always-current specification — kept in sync with the code in the same PR as any behavior change. If a wiki page and docs/ ever disagree, docs/ wins; please file an issue.
-
docs/architecture.md,docs/scheduler.md,docs/cpu.md,docs/ppu.md,docs/apu.md,docs/cart.md,docs/cartridge-format.md,docs/frontend.md,docs/testing-strategy.md,docs/performance.md,docs/glossary.md,docs/compatibility.md. -
docs/STATUS.md— the single source of truth for current per-subsystem state and per-suite pass counts.
RustySNES is a cycle-accurate Super Nintendo / Super Famicom emulator written in pure Rust. Licensed under MIT OR Apache-2.0. | GitHub Repository | Web Demo | API Docs