-
Notifications
You must be signed in to change notification settings - Fork 0
Reference Materials
DoubleGate edited this page Jul 8, 2026
·
1 revision
Rusty2600's accuracy work leans on two open-source references for cross-checking real hardware behavior. Both are GPL-licensed, incompatible with this project's MIT/Apache-2.0 dual license, so they are read and run for comparison, never copied into this codebase:
- Stella — the canonical, long-maintained C++ Atari 2600 emulator. Treated as the behavioral oracle whenever prose documentation and observed hardware behavior disagree.
-
Gopher2600 — a Go implementation used as a headless differential-testing harness: built and run directly against the same ROM as Rusty2600, then compared instruction-by-instruction. This technique found the project's hardest real bugs, including a Frogger
WSYNCline-boundary jitter bug (see Lockstep-Scheduler) and a Pitfall II RIOT-timer boot-loop divergence (see RIOT).
-
Klaus Dormann's
6502_functional_testand6502_decimal_test— public-domain 6502 functional and BCD-decimal-mode conformance suites. -
SingleStepTests / ProcessorTests
6502corpus — per-opcode, per-cycle bus-activity vectors, including undocumented NMOS opcode behavior. Rusty2600 passes all 233 opcodes on the trimmed corpus and re-verifies the full ~10,000-case-per-opcode corpus weekly in CI.
See Testing-Strategy for how these fit into the full accuracy battery.
- The Stella Programmer's Guide — the primary hardware reference for TIA register semantics, cited throughout the codebase's own documentation (with corrections noted where measured behavior differs from its stated values, e.g. the TIA audio clock).
- Real Atari 2600 hardware behavior, cross-checked against Stella/Gopher2600 wherever the written documentation is ambiguous or silent.
-
docs/— the authoritative per-subsystem spec documents (architecture.md,cpu.md,tia.md,riot.md,cart.md,scheduler.md,netplay.md,scripting.md,mobile.md,frontend.md,testing-strategy.md,performance.md,compatibility.md) — this wiki summarizes them; the repository docs are the primary source when the two ever diverge. -
docs/adr/— the numbered Architecture Decision Records; see Architecture-Decision-Records. -
docs/STATUS.md— the single source of truth for current pass counts, the board matrix, and version policy. -
to-dos/ROADMAP.md— the planning entry point; see Roadmap.
Rusty2600 is a cycle-accurate Atari 2600 (VCS) emulator written in pure Rust. Licensed under MIT OR Apache-2.0. | GitHub Repository | Web Demo