From 6f2001c670f63c6158e700f7b7323c56c7cc8545 Mon Sep 17 00:00:00 2001 From: JakeBreath Date: Fri, 7 Aug 2026 22:19:47 -0500 Subject: [PATCH] updated Project state after milestone --- STATE.md | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/STATE.md b/STATE.md index d7d33e6..bd22ab7 100644 --- a/STATE.md +++ b/STATE.md @@ -1,3 +1,27 @@ -# Start: +# Status -Just made the repo, backed up the original game roms, still need to find actual test roms for develompment +## 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