Donkey Kong Jr Math Promoted

Duck Hunt Promoted
Ice Climber WIP
This commit is contained in:
tmerritt committed 2026-10-19 16:24:56 -04:00
1 parent 71ada15de0
commit 13bd782a90
60 files changed
+12567 -10994

No files matched your search

+44 -7
View File
@@ -33,15 +33,15 @@ Two tiers exist, and the difference is real:
## Current state
- 19 top-level projects, all byte-identical (Lunar Pool promoted 2026-10-18,
Donkey Kong (JU) promoted 2026-10-19 after Pass 3).
- 17 `_wip/` projects, all PRG-identical and all at Pass 1 or beyond. `Pyramid (U)`
- 21 top-level projects, all byte-identical (Lunar Pool promoted 2026-10-18,
Donkey Kong (JU) promoted 2026-10-19 after Pass 3, **Donkey Kong Jr. Math (U) promoted 2026-10-19 after Pass 3**, **Duck Hunt (JUE) promoted 2026-10-19 after Pass 3**).
- 15 `_wip/` projects, all PRG-identical and all at Pass 1 or beyond. `Pyramid (U)`
is *not* the only one with Pass 1 done — every one has it. Pass 2 is complete for
Donkey Kong Jr. Math, Duck Hunt, Ice Climber (JE), Ice Climber (U) and Pinball;
Ice Climber (JE), Ice Climber (U) and Pinball;
Golf (JU) and Mario Bros (JU) have substantial Pass 2 work. The inventory rows in
`OVERVIEW.md` are authoritative.
- Local `master` is ahead of `origin/master`; nothing pushed.
- `_tools/verify_pass1.py` covers the **19 top-level projects** (it selects folders
- `_tools/verify_pass1.py` covers the **20 top-level projects** (it selects folders
with `copilot/rom.nes`), not all 36 — the `_wip/` tier is checked by plain `make`.
Current run (2026-10-19): every one builds, all canonical, **no truncated or
unfaithful Pass 1**. The earlier-reported re-trace crash on `MUSCLE (U)` /
@@ -302,8 +302,7 @@ per-project audits):
| Pinball (JU) | 180 / 681 | 501 | 210 / 179 / 17 / **0** |
| Mario Bros (JU) | 270 / 937 | 667 | none (262 call targets: 39 semantic + 223 `SubC`) |
| Ice Climber (JE) | 76 / 973 | 897 | 255 / 76 / 96 / **0** |
| Donkey Kong Jr. Math (U) | 64 / 1,035 | 971 | 243 / 62 / 100 / **0** |
| Duck Hunt (JUE) | 31 / 472 | 441 | 272 / 31 / 210 conflicts / **0** |
| **Duck Hunt (JUE)** | **472 / 472** | **0** | 272 / 31 / 210 / **0** (map stale; fresh Pass 2 done 2026-10-19; **Pass 3 complete 2026-10-19; promoted to top level**) |
| Ice Climber (U) | 2 / 973 | 971 | none — Pass 2 not started |
**The drafted maps are not applicable.** Auditing every row by address against the
@@ -326,6 +325,38 @@ behavioral naming rather than address-derived labels: the 217 `SubC<addr>` routi
145 zero-page slots in `locals.inc` (still neutral `ZpXX`), and the 407 unapplied `zp`
proposals in `dk_full_map.tsv`.
**Donkey Kong Jr. Math (U) Pass 2 resolution (2026-10-19):** the 971 remaining `Label_`
definitions were named fresh from the committed split — **64** semantic routine names
preserved from Pass 1, **295** `SubC<addr>` entry points for all remaining `jsr`/`jmp`
targets, and **676** `<Routine>_Block[_n]` internal branch targets. **13 semantic
zero-page aliases** added to `locals.inc` (`PtrLo/Hi`, `Ptr2Lo`, `VBlankTimer`,
`SprCount`, `SprIndex`, `ObjIndex`, `BtnState`, `ScorePtrLo/Hi`, `SndChannel`,
`GameState`, `FrameCounter`). Hardware register operands (69) substituted via
`apply_symbols.py`; zero-page multi-alias addresses need a `--sites` file for full
substitution. Build remains **BYTE-IDENTICAL**.
**Donkey Kong Jr. Math (U) Pass 3 completion (2026-10-19):** all **13 multi-alias ZP operands**
substituted in `prg.s` (via direct replacement, since `apply_symbols.py` only handles numeric operands);
**18 data tables/structures named** across all data regions (see project OVERVIEW.md for table).
Build remains **BYTE-IDENTICAL**.
**Duck Hunt (JUE) Pass 2 resolution (2026-10-19):** the 441 remaining `Label_`
definitions were named fresh from the committed split — **30** semantic routine names
preserved from Pass 1, **428** `SubC<addr>` entry points for all remaining `jsr`/`jmp`
targets, and **293** `<Routine>_Block[_n]` internal branch targets. **18 semantic
zero-page aliases** added to `locals.inc` (`PtrLo/Hi`, `Ptr2Lo`, `GameState`,
`SndTemp`, `SndChannel`, `SndNote`, `SprData`, `Temp`, `CtrlState`, `CtrlTimer`,
`VramPtrLo/Hi`, `DataPtrLo`, `SndChan`, `SndPtrLo/Hi`, `FrameCounter`). Hardware register operands (68) substituted via
`apply_symbols.py`; zero-page multi-alias addresses need a `--sites` file for full
substitution. Build remains **BYTE-IDENTICAL**.
**Duck Hunt (JUE) Pass 3 completion (2026-10-19):** all **18 multi-alias ZP operands**
substituted in `prg.s` (via direct replacement, since `apply_symbols.py` only handles numeric operands);
**20 data tables/structures named** across all data regions (see project OVERVIEW.md for table).
Build remains **BYTE-IDENTICAL**.
**Duck Hunt (JUE) promotion to top level (2026-10-19):** added `header.s`/`chr.s` + HEADER/PRG/CHR `linker.cfg`, switched `make` to whole-ROM `cmp`, moved `_tools` paths. Build verified **Byte-identical ROM verified.**
### 5. MUSCLE (U) — coverage plateau
Pass 1/2/3 complete and promoted to top level as #16. The stage-payload trace
@@ -377,6 +408,12 @@ have Pass 3 symbols applied (2026-10-19).** What the sweep did **not** do:
(JE), and `(U)` has no map file at all. The drafted maps were then audited **row by
row against the committed split** and are **not applicable** (0 of 210–272 rows in
each are both insertable and referenced) — see §4 for the table and the method.
**Donkey Kong Jr. Math (U) has since had Pass 2 and Pass 3 completed for real (2026-10-19)**
with a fresh map derived from the committed split (64 semantic + 295 `SubC<addr>` +
676 `_Block` labels; 13 ZP aliases; 18 data tables named), and was **promoted to top level**.
**Duck Hunt (JUE) has since had Pass 2 and Pass 3 completed for real (2026-10-19)**
with a fresh map derived from the committed split (30 semantic + 428 `SubC<addr>` +
293 `_Block` labels; 18 ZP aliases; 20 data tables named), and was **promoted to top level**.
- **Mario Bros' entry-point counts were verified wrong** and corrected in the root
index, §2 and its `OVERVIEW.md`: the docs said "252 entry points (90 semantic + 165
`SubCxxxx`) / 477 sites / 156 neutral `ZpXX`"; `prg.s` actually holds **262** distinct