Last Updated: 2025-12-18 Total Documents: 37
- CPU Documentation
- PPU Documentation
- APU Documentation
- Bus & Memory
- Mappers
- Input
- Testing
- API Reference
- Development
Complete 6502 CPU implementation reference.
| Document | Description | Lines | Status |
|---|---|---|---|
| CPU_6502.md | High-level CPU overview | 666 | Complete |
| CPU_6502_SPECIFICATION.md | All 256 opcodes with cycle-accurate timing | 610 | New |
| CPU_TIMING_REFERENCE.md | Per-instruction cycle counts | 450+ | New |
| CPU_TIMING.md | Timing overview | 566 | Complete |
| CPU_UNOFFICIAL_OPCODES.md | Illegal opcode reference | 617 | Complete |
- All 256 Opcodes: Official (151) + Unofficial (105)
- Addressing Modes: 13 modes with page crossing behavior
- Interrupt Handling: NMI, IRQ, BRK, RESET timing
- Cycle Accuracy: Exact cycle counts including penalties
- DMA Timing: OAM DMA and DMC DMA interaction
Complete 2C02 PPU rendering pipeline.
| Document | Description | Lines | Status |
|---|---|---|---|
| PPU_OVERVIEW.md | High-level PPU architecture | 695 | Complete |
| PPU_2C02_SPECIFICATION.md | Complete register behavior | 500+ | New |
| PPU_TIMING_DIAGRAM.md | 262 scanlines × 341 dots | 475+ | New |
| PPU_TIMING.md | Timing overview | 485 | Complete |
| PPU_RENDERING.md | Rendering pipeline | 578 | Complete |
| Document | Description | Lines | Status |
|---|---|---|---|
| PPU_SCROLLING.md | Scrolling overview | 500 | Complete |
| PPU_SCROLLING_INTERNALS.md | Loopy's implementation | 425+ | New |
| PPU_SPRITE_EVALUATION.md | Sprite eval, overflow bug, sprite 0 | 475+ | New |
- Registers: $2000-$2007 complete specification
- Internal Registers: v, t, x, w (Loopy's model)
- Rendering: Dot-by-dot pipeline (341 dots/scanline)
- Scrolling: Mid-frame changes, split-screen
- Sprites: 8 sprites/scanline, overflow bug, sprite 0 hit
Complete 2A03 audio processing unit.
| Document | Description | Lines | Status |
|---|---|---|---|
| APU_OVERVIEW.md | High-level APU architecture | 530 | Complete |
| APU_2A03_SPECIFICATION.md | Complete channel specs | 425+ | New |
| APU_CHANNELS.md | Channel details | 595 | Complete |
| APU_TIMING.md | Frame sequencer | 574 | Complete |
- 5 Channels: Pulse 1/2, Triangle, Noise, DMC
- Frame Sequencer: 4-step (60 Hz) and 5-step (48 Hz)
- Envelope Generator: ADSR for pulse/noise
- Sweep Unit: Automatic frequency adjustment
- Non-Linear Mixer: Accurate channel mixing formulas
Memory mapping and bus architecture.
| Document | Description | Lines | Status |
|---|---|---|---|
| MEMORY_MAP.md | CPU address space | 560 | Complete |
| BUS_CONFLICTS.md | Bus conflict handling | 558 | Complete |
- CPU Address Space: $0000-$FFFF mapping
- PPU Address Space: $0000-$3FFF mapping
- Open Bus Behavior: Read from unmapped addresses
- Bus Conflicts: NROM, CNROM, UXROM handling
NES cartridge mapper implementations.
| Document | Description | Lines | Status |
|---|---|---|---|
| MAPPER_OVERVIEW.md | Mapper architecture | 532 | Complete |
| MAPPER_IMPLEMENTATION_GUIDE.md | How to implement mappers | 450+ | New |
| Document | Mapper # | Name | Lines | Status |
|---|---|---|---|---|
| MAPPER_NROM.md | 000 | NROM | 343 | Complete |
| MAPPER_MMC1.md | 001 | MMC1 | 246 | Complete |
| MAPPER_UXROM.md | 002 | UxROM | 459 | Complete |
| MAPPER_CNROM.md | 003 | CNROM | 238 | Complete |
| MAPPER_MMC3.md | 004 | MMC3 | 275 | Complete |
- Mapper Trait: Rust trait for all mappers
- Banking Systems: PRG/CHR banking patterns
- IRQ Generation: Scanline counters (MMC3, VRC)
- Bus Conflicts: Hardware quirks
- Testing: Per-mapper test ROMs
Controller and input device handling.
| Document | Description | Lines | Status |
|---|---|---|---|
| INPUT_HANDLING.md | Controller implementation | 342 | Complete |
- Standard Controller: D-pad, A, B, Select, Start
- Shift Register: Serial reading protocol
- Multiple Controllers: Up to 4 controllers
- Special Devices: Zapper, Power Pad
Test ROMs and validation methodology.
| Document | Description | Lines | Status |
|---|---|---|---|
| TEST_ROM_GUIDE.md | Complete test ROM catalog | 425+ | New |
| NESTEST_GOLDEN_LOG.md | nestest.nes methodology | 400+ | New |
- nestest.nes: CPU golden log comparison
- Blargg Suite: instr_test-v5, cpu_timing, cpu_interrupts
- PPU Tests: sprite_hit, sprite_overflow, ppu_vbl_nmi
- APU Tests: apu_test, dmc_tests
- Mapper Tests: mmc3_test, mapper-specific ROMs
Public API for RustyNES crates.
| Document | Description | Lines | Status |
|---|---|---|---|
| CORE_API.md | Core crate API | 297 | Complete |
| SAVE_STATES.md | Save state format | 327 | Complete |
| CONFIGURATION.md | Configuration API | 303 | Complete |
- Embedding: Using RustyNES as a library
- Save States: State serialization/deserialization
- Configuration: Runtime settings
- Callbacks: Frame rendering, audio output
Developer guides and contribution information.
| Document | Description | Lines | Status |
|---|---|---|---|
| BUILD.md | Build instructions | 172 | Complete |
| CONTRIBUTING.md | Contribution guide | 203 | Complete |
| TESTING.md | Testing strategy | 188 | Complete |
| DEBUGGING.md | Debugging guide | 187 | Complete |
| GLOSSARY.md | NES terminology | 253 | Complete |
- Building: Prerequisites, feature flags
- Contributing: Code style, PR process
- Testing: Test ROM automation, CI/CD
- Debugging: Common issues, tools
- Glossary: NES hardware terms
- Bold = New document created 2025-12-18
- Lines = Approximate line count
- Status:
- Complete = Existing documentation
- New = Created in this session
- Planned = Future documentation
- CPU_6502_SPECIFICATION.md (610 lines) - All 256 opcodes
- CPU_TIMING_REFERENCE.md (450+ lines) - Cycle-accurate timing
- PPU_2C02_SPECIFICATION.md (500+ lines) - Complete register behavior
- PPU_TIMING_DIAGRAM.md (475+ lines) - Dot-by-dot timing
- PPU_SCROLLING_INTERNALS.md (425+ lines) - Loopy's implementation
- PPU_SPRITE_EVALUATION.md (475+ lines) - Sprite evaluation + overflow bug
- APU_2A03_SPECIFICATION.md (425+ lines) - Complete APU specification
- MAPPER_IMPLEMENTATION_GUIDE.md (450+ lines) - Mapper development guide
- TEST_ROM_GUIDE.md (425+ lines) - Test ROM catalog
- NESTEST_GOLDEN_LOG.md (400+ lines) - nestest methodology
See DOCUMENTATION_GENERATION_SUMMARY.md for complete details.
- APU channel deep-dives (Pulse, Triangle, Noise, DMC)
- Additional mapper specs (MMC1, MMC3, NROM, UxROM, CNROM)
- Bus architecture documentation
- Save state format specification
- ROM formats (iNES, NES 2.0, NSF, FM2, FDS)
- API documentation (per-crate APIs, Lua scripting)
- Advanced features (RetroAchievements, netplay, TAS tools)
- Platform guides (Windows, macOS, Linux, WASM builds)
- Testing documentation (Blargg matrix, accuracy validation)
- Development process (coding standards, architecture decisions)
- NESdev Wiki - Hardware specifications
- NESdev Forums - Technical discussions
- TASVideos - Accuracy tests
- Visual 6502 - Transistor-level CPU simulation
- Visual 2C02 - PPU simulation
Total Documentation: 37 documents New This Session: 10 comprehensive specifications (5,000+ lines) Last Updated: 2025-12-18