# Status ## Done - Repo set up, backed up the original game ROMs to roms/backup (gitignored, stays local) - Got a full set of CPU test ROMs in roms/test/cpu: kevtris nestest (with reference log) plus the blargg suite (instr tests, timing, interrupts, dummy reads, reset checks) - Cartridge module done and working (src/cartridge.rs): - iNES header parser (magic, PRG/CHR sizes, mapper, mirroring, flags) - Mapper 0 (NROM) support only: 16KB PRG mirroring, 32KB direct, CHR-ROM and CHR-RAM (zeroed 8KB buffer) - read_prg/read_chr/write_chr with debug_assert guards - Split from_file (thin I/O wrapper) / parse_data (pure parser) for testability - 8 unit tests, all passing (header, PRG mapping, error cases, CHR-RAM roundtrip) ## Next - CPU (6502 core) - biggest remaining piece for this milestone - Then bus to connect CPU to RAM/cartridge - Verify CPU with nestest log diff + blargg suite before any graphics - GUI (egui + winit) and PPU come after the CPU milestone ## Decisions - No external dependencies yet, keeping it pure std until the GUI milestone - GUI choice: egui + winit (decided, not yet used) - Scope: cartridge + CPU first, verified headless before graphics - Mapper 0 first, other mappers (MMC1, CNROM) implemented after CPU works - Test ROMs are homebrew/open, no ethics issue; game backups stay in gitignored roms/backup