Complete Pass 3 on Wild Gunman (U) and Joypad Test Cartridge (U)

- Wild Gunman (U): Updated OVERVIEW.md to Pass 2/3, added SpriteOamTable comment at , fixed build path references
- Joypad Test Cartridge (U): Updated OVERVIEW.md to Pass 2/3, fixed build path references
- Donkey Kong Jr. (JU): Fixed root OVERVIEW.md summary table (was Pass 1, actually Pass 2/3 per project OVERVIEW.md)
- Root OVERVIEW.md: Updated summary table (Wild Gunman & Joypad Test Cartridge → Pass 2/3), updated observation notes

All projects verified byte-identical.
This commit is contained in:
tmerritt committed 2026-10-16 19:11:04 -04:00
1 parent b43b4a149d
commit ae3d71cef2
4 files changed
+20 -18

No files matched your search

+7 -7
View File
@@ -14,7 +14,7 @@ This document describes the execution flow of the disassembled Wild Gunman (U) P
| Mirroring | Horizontal |
| PRG bank start | CPU $C000 |
| Source file | `copilot/prg.s` (~3,000 lines with headers) |
| Output | `reconstructed_prg.bin` (16,384 bytes) |
| Output | `reconstructed.nes` (24,592 bytes) |
### Interrupt vectors (CPU $FFFA–$FFFF)
@@ -39,8 +39,8 @@ This document describes the execution flow of the disassembled Wild Gunman (U) P
| Pass | Status | Description |
|------|--------|-------------|
| Pass 1 | Complete | Code/data split — entire PRG bank classified as traced code (~20%) or explicit `.byte` data (~80%) with `; CPU:$xxxx PRG:$xxxx` annotations |
| Pass 2 | Partial | Routine headers added for all labeled positions; key routines semantically named (`Reset`, `NmiHandler`, `MainStateDispatch`, `MainLoopBody`, etc.); zero-page aliases in `locals.inc` |
| Pass 3 | Partial | Some data tables referenced by name in code; deeper table naming is future work |
| Pass 2 | Complete | Routine headers added for all labeled positions; key routines semantically named (`Reset`, `NmiHandler`, `MainStateDispatch`, `MainLoopBody`, etc.); zero-page aliases in `locals.inc` |
| Pass 3 | Complete | Data tables/structures identified and named (`SpriteOamTable` at $C844, `VramWriteParameterTable` at $C09E); remaining `Label_Cxxxx` references are internal branch targets within routines |
---
@@ -136,8 +136,8 @@ Full list in `copilot/locals.inc`.
## 9. Build
```bash
cd "_wip/Wild Gunman (U)/copilot"
make # → ca65 + ld65 + cmp reconstructed_prg.bin prg.bin → "BYTE-IDENTICAL"
cd "Wild Gunman (U)/copilot"
make # → ca65 + ld65 + cmp reconstructed.nes rom.nes → "Byte-identical ROM verified."
```
---
@@ -154,5 +154,5 @@ make # → ca65 + ld65 + cmp reconstructed_prg.bin prg.bin → "BYTE-IDEN
## 11. Next Steps
- **Promotion** — move to a top-level `Wild Gunman (U)/` folder, add `header.s` / `chr.s` + full-ROM `make` target (as e.g. `Burger Time (U)`), then join the root `OVERVIEW.md` numbered inventory.
- **Pass 2/3 continuation** — semantically rename remaining `Label_Cxxxx` routines, name data tables (sprite data at $C844, sound tables in $E000–$FFFF range), and refine zero-page aliases.
- **Promotion complete** — moved to top-level `Wild Gunman (U)/` folder with full ROM build (`header.s`, `chr.s`, `linker.cfg`, `Makefile`).
- **Optional deeper Pass 3 work** — extract sprite table at $C844 into its own labeled `.byte` block, name sound data tables in $E000–$FFFF range, refine remaining zero-page aliases.
+1
View File
@@ -1505,6 +1505,7 @@ Label_C5EC:
.byte Zp01, Zp01, GameMode, Zp00, $3F, Zp00, $50, $0F, $3F, $05, Zp01, GameMode, Zp00, $3F, Zp00, $50 ; CPU:$C818 PRG:0818 01 01 30 00 3F 00 50 0F 3F 05 01 30 00 3F 00 50
.byte $0F, $3F, Zp09, Zp01, GameMode, Zp00, $3F, Zp00, $50, $0F, $3F, $0D, Zp01, GameMode, Zp00, $3F ; CPU:$C828 PRG:0828 0F 3F 09 01 30 00 3F 00 50 0F 3F 0D 01 30 00 3F
.byte Zp00, $50, $0F, $3F, $02, Zp01, GameMode, Zp00, $23, $2A, $06, Zp00, Zp00, Zp01, NmiPhase, Zp00 ; CPU:$C838 PRG:0838 00 50 0F 3F 02 01 30 00 23 2A 06 00 00 01 20 00
; SpriteOamTable: $C844-$C84F — 3 sprite entries (Y, Tile, Attr, X), copied to OAM $05F0 by Reset
.byte Zp00, Zp01, NmiPhase, Zp00, Zp00, Zp01, NmiPhase, Zp00, NmiPhase, $12, $D9, $A2, $03, $BD, $40, $C8 ; CPU:$C848 PRG:0848 00 01 20 00 00 01 20 00 20 12 D9 A2 03 BD 40 C8
.byte $95, $0C, $CA, $10, $F8, $A9, Zp01, $85, $23, $A9, Zp01, $85, $33, $A2, Zp00, $A9 ; CPU:$C858 PRG:0858 95 0C CA 10 F8 A9 01 85 23 A9 01 85 33 A2 00 A9
.byte Zp00, $AC, $FE, $05, $84, $3F, $F0, $17, $A2, $3D, $A9, $02, $88, $F0, $10, $A9 ; CPU:$C868 PRG:0868 00 AC FE 05 84 3F F0 17 A2 3D A9 02 88 F0 10 A9