-
-
Notifications
You must be signed in to change notification settings - Fork 0
Reference Materials
The RustyNES project was heavily influenced by a wealth of external research, hardware documentation, and architectural surveys of other cycle-accurate emulators. While the main wiki pages cover the living implementation specifications of RustyNES, this page indexes the historical design documents and external references that paved the way for v1.0.0.
All of these documents are preserved in the main repository's ref-docs/ directory as immutable historical context.
These documents outline the original aspirational design of RustyNES. They have been retained to preserve the decision-making process, though the architecture may have evolved since they were written:
- Architecture & Technical Design Spec: The original comprehensive design spec covering vision, crate structure, pipelines, and the reference matrix.
-
GUI Framework Change: An evaluation memo comparing frameworks like Iced, WGPU, egui, SDL2, and Dioxus before standardizing on
winit+wgpu+egui+cpal. - UI/UX Design v1: Original UI/UX Phase 1 MVP design covering the "Nostalgic Futurism" theme.
- UI/UX Design v2: Aspirational design covering run-ahead, CRT pipelines, HTPC 10-foot modes, and HD packs.
These are deep research reports generated during the project's inception. They represent a snapshot of external knowledge on NES emulation and hardware behavior:
- Research Report: A deep synthesis of over 60 surveyed sources on CPU/PPU/APU hardware, mappers, lockstep models, and the state-of-the-art in emulation.
- Nesdev Wiki Technical Report: A distillation of hardware behavior, cartridge formats, test ROMs, and accuracy risks drawn directly from the canonical Nesdev community wiki.
- NES Emulator Comparison Survey: Accuracy benchmarks and feature matrices comparing leading NES emulators to guide the Rust implementation.
The ref-docs/Emulator_TechReports/ directory contains deep dives into notable NES emulators to survey architecture, accuracy approaches, mapper coverage, and reusable patterns:
- Mesen2: The 100%-accuracy gold-standard reference.
- Ares/Higan: Reference for lockstep PPU-dot scheduling.
- puNES: Broad mapper coverage and second-reference accuracy.
- FCEUX: TAS-tooling and debugging model reference.
- TetaNES: Pure-Rust architecture reference.
- Other Rust Implementations: Rustico, Pinky, rib, and others.
(Note: For the most up-to-date, code-synced documentation for RustyNES, refer to the other pages on this Wiki which summarize the docs/ tree).
RustyNES is a cycle-accurate Nintendo Entertainment System emulator written in pure Rust. Licensed under MIT OR Apache-2.0. | GitHub Repository | Web Demo