Skip to content

Reference Materials

DoubleGate edited this page Jul 8, 2026 · 1 revision

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 reports

  • 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).

Study clones (not vendored)

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.

Architecture Decision Records

See Architecture-Decision-Records for the numbered, Nygard-format ADRs — the project's record of why, as opposed to docs/'s record of what.

Living specification (docs/)

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.

Clone this wiki locally