Pass 1 complete for all 14 WIP projects; Pinball (JU) Pass 2 complete; tools fixed

- Pass 1 complete for all 14 WIP projects:
  - Donkey Kong (JU): 76.3% code
  - Donkey Kong Jr. Math (U): 81.9% code
  - Duck Hunt (JUE): 37.5% code
  - Hogan's Alley (JU): 41.8% code (needs CDL reclass for E970-E9C9 branch table)
  - Ice Climber (JE/U): 74.7% code
  - Lode Runner (U): 52.6% code
  - Millipede (U): 74.6% code
  - Pac-Man (Tengen) (U): 19.5% code
  - Pac-Man (U): 19.6% code
  - Pinball (JU): 59.5% code
  - Popeye (JU) PRG 0/1: 72.3% code
  - Raid on Bungeling Bay (U): 64.6% code
  - Raid on Bungeling Bay (U) [a2]: 64.3% code

- Pinball (JU) Pass 2 complete: 4,734 instructions, 196 semantic labels, 150 zero-page aliases, BYTE-IDENTICAL

- Tools fixed:
  - cdl_reclass.py: Fixed override logic to always win over CDL conflicts
  - nesdis.py: Fixed a: prefix parsing for JSR/JMP operands; fixed IND mode emission

- Root OVERVIEW.md updated with all Pass 1 completion statuses
- Pinball (JU) and Urban Champion (JU) project OVERVIEW.md updated

All 17 top-level projects pass verify_pass1.py; 13/14 WIP projects build (Hogan's Alley needs CDL reclass for E970-E9C9 branch table)
This commit is contained in:
tmerritt committed 2026-10-18 20:52:49 -04:00
1 parent 4b9cb7231c
commit 2ae09f78ce
58 files changed
+204873 -401

No files matched your search

+98 -2
View File
@@ -1,2 +1,98 @@
; Pac-Man (Tengen) (U) zero-page aliases (declared during Pass 2).
; These intentionally conservative names will be refined in Passes 2 and 3.
; Pac-Man (Tengen) (U) application-specific RAM aliases - Pass 1
; Generated from every direct zero-page operand in reachable code:
; ref counts are reads/writes, `where` lists the referencing addresses.
; ZpXX names indicate storage with a role not yet unique enough for a behavioral name;
; Pass 2 replaces them with names derived from observed usage.
Zp00 = $00 ; 58 refs; reads=26 writes=32; used at $C054, C0B5, C0BD, C27F, +51 more
Zp01 = $01 ; 33 refs; reads=13 writes=20; used at $C059, C05B, C283, C293, +25 more
Zp02 = $02 ; 45 refs; reads=18 writes=27; used at $C287, C2B4, C920, C93E, +39 more
Zp03 = $03 ; 18 refs; reads=6 writes=12; used at $C29A, C2A3, C925, C943, +12 more
Zp04 = $04 ; 18 refs; reads=11 writes=7; used at $D803, D8E7, D8FA, DAC2, +12 more
Zp05 = $05 ; 40 refs; reads=22 writes=18; used at $D761, D771, D773, D775, +24 more
Zp06 = $06 ; 13 refs; reads=6 writes=7; used at $D779, D791, D7A0, D7B5, +8 more
Zp07 = $07 ; 2 refs; reads=1 writes=1; used at $D78F, D793
Zp08 = $08 ; 4 refs; reads=2 writes=2; used at $D76A, D76F, D784, D789
Zp0A = $0A ; 2 refs; reads=1 writes=1; used at $D740, E47D
Zp0B = $0B ; 5 refs; reads=2 writes=3; used at $D745, E485, E4A1, E4BC
Zp0C = $0C ; 3 refs; reads=2 writes=1; used at $D74A, D75A, E472
Zp0D = $0D ; 2 refs; reads=1 writes=1; used at $D754, E474
Zp0E = $0E ; 1 refs; reads=0 writes=1; used at $E476
Zp0F = $0F ; 1 refs; reads=0 writes=1; used at $E478
Zp10 = $10 ; 4 refs; reads=0 writes=4; used at $C249, D3C3, D908, D9AF
Zp11 = $11 ; 4 refs; reads=0 writes=4; used at $C24E, D3C8, D90D, D9B4
Zp12 = $12 ; 4 refs; reads=2 writes=2; used at $E286, E28A, E294, E298
Zp13 = $13 ; 4 refs; reads=2 writes=2; used at $E28C, E290, E29A, E29E
Zp14 = $14 ; 2 refs; reads=2 writes=0; used at $E288, E296
Zp15 = $15 ; 2 refs; reads=2 writes=0; used at $E28E, E29C
Zp1A = $1A ; 5 refs; reads=5 writes=0; used at $C8AA, C9BB, D370, D723, +1 more
Zp1C = $1C ; 3 refs; reads=3 writes=0; used at $D372, D72D, D733
Zp1E = $1E ; 2 refs; reads=2 writes=0; used at $C8ED, D726
Zp1F = $1F ; 1 refs; reads=1 writes=0; used at $C8F1
Zp20 = $20 ; 1 refs; reads=1 writes=0; used at $D730
Zp2A = $2A ; 1 refs; reads=0 writes=1; used at $C90D
Zp2B = $2B ; 1 refs; reads=0 writes=1; used at $C911
Zp3F = $3F ; 3 refs; reads=2 writes=1; used at $C0A2, C22D, C244
Zp40 = $40 ; 5 refs; reads=2 writes=3; used at $C109, C1D5, C1D7, C23E, +1 more
Zp41 = $41 ; 3 refs; reads=1 writes=2; used at $C06C, C119, C225
Zp42 = $42 ; 3 refs; reads=1 writes=2; used at $C06E, C11E, C223
Zp43 = $43 ; 4 refs; reads=1 writes=3; used at $C0D9, C12A, C1E0, C23A
Zp45 = $45 ; 2 refs; reads=1 writes=1; used at $C0A6, C10B
Zp46 = $46 ; 9 refs; reads=7 writes=2; used at $C0AE, C125, C152, C1F1, +5 more
Zp47 = $47 ; 10 refs; reads=8 writes=2; used at $C0AA, C123, C154, C21F, +6 more
Zp48 = $48 ; 4 refs; reads=2 writes=2; used at $C0E0, C15E, C21B, DE3D
Zp4B = $4B ; 12 refs; reads=11 writes=1; used at $C15C, C977, C982, C9D3, +7 more
Zp4C = $4C ; 1 refs; reads=0 writes=1; used at $C227
Zp4D = $4D ; 3 refs; reads=2 writes=1; used at $C142, C150
Zp4E = $4E ; 3 refs; reads=2 writes=1; used at $C14B, C158
Zp4F = $4F ; 1 refs; reads=0 writes=1; used at $C15A
Zp50 = $50 ; 5 refs; reads=3 writes=2; used at $D365, D378, D381, D388, +1 more
Zp51 = $51 ; 4 refs; reads=3 writes=1; used at $D36C, D383, D391, D3BC
Zp64 = $64 ; 1 refs; reads=0 writes=1; used at $C09E
Zp6C = $6C ; 2 refs; reads=1 writes=1; used at $C20E, DEF5
Zp6D = $6D ; 1 refs; reads=0 writes=1; used at $C210
Zp6E = $6E ; 1 refs; reads=0 writes=1; used at $C212
Zp6F = $6F ; 1 refs; reads=0 writes=1; used at $C214
Zp87 = $87 ; 7 refs; reads=4 writes=3; used at $C229, C565, C567, C589, +1 more
Zp88 = $88 ; 4 refs; reads=2 writes=2; used at $C22B, C560, D397, D805
Zp89 = $89 ; 3 refs; reads=2 writes=1; used at $C8CF, C8D1
Zp8A = $8A ; 1 refs; reads=0 writes=1; used at $C8D5
Zp9F = $9F ; 1 refs; reads=1 writes=0; used at $D3B4
ZpA0 = $A0 ; 1 refs; reads=1 writes=0; used at $D3B8
ZpAF = $AF ; 1 refs; reads=1 writes=0; used at $D815
ZpB0 = $B0 ; 1 refs; reads=1 writes=0; used at $D819
ZpB1 = $B1 ; 1 refs; reads=1 writes=0; used at $D81E
ZpB2 = $B2 ; 1 refs; reads=1 writes=0; used at $D822
ZpB3 = $B3 ; 1 refs; reads=1 writes=0; used at $D7FA
ZpB4 = $B4 ; 1 refs; reads=1 writes=0; used at $D7FE
ZpB5 = $B5 ; 1 refs; reads=0 writes=1; used at $D3B6
ZpB6 = $B6 ; 1 refs; reads=0 writes=1; used at $D3BA
ZpB7 = $B7 ; 3 refs; reads=2 writes=1; used at $C9C3, C9C5
ZpB8 = $B8 ; 4 refs; reads=4 writes=0; used at $D737, D7E0, D903, D9AA
ZpB9 = $B9 ; 4 refs; reads=3 writes=1; used at $D75C, D7B9, D7CC, E492
ZpBA = $BA ; 2 refs; reads=1 writes=1; used at $D24B, D251
ZpC2 = $C2 ; 5 refs; reads=0 writes=5; used at $D7FC, D80E, D817, D820, +1 more
ZpC3 = $C3 ; 5 refs; reads=0 writes=5; used at $D800, D812, D81B, D824, +1 more
ZpCA = $CA ; 1 refs; reads=1 writes=0; used at $D80C
ZpCB = $CB ; 1 refs; reads=1 writes=0; used at $D810
ZpCD = $CD ; 2 refs; reads=1 writes=1; used at $D72B, D763
ZpCE = $CE ; 2 refs; reads=1 writes=1; used at $D735, D77B
ZpE3 = $E3 ; 3 refs; reads=1 writes=2; used at $D4C7, D4D4
ZpE4 = $E4 ; 6 refs; reads=4 writes=2; used at $D4C5, D4CB, D4CD, D4CF
ZpEF = $EF ; 2 refs; reads=2 writes=0; used at $F020, F050
ZpF0 = $F0 ; 4 refs; reads=1 writes=3; used at $EE4D, EE77, EEF4, F001
ZpF1 = $F1 ; 1 refs; reads=0 writes=1; used at $EE51
ZpF2 = $F2 ; 30 refs; reads=10 writes=20; used at $EE55, EE84, EEA3, EEC8, +26 more
ZpF3 = $F3 ; 1 refs; reads=0 writes=1; used at $EE59
ZpF4 = $F4 ; 3 refs; reads=2 writes=1; used at $EE5E, EF05, EF16
ZpF5 = $F5 ; 1 refs; reads=0 writes=1; used at $EE63
ZpF6 = $F6 ; 4 refs; reads=1 writes=3; used at $EECD, EED7, EED9
ZpF7 = $F7 ; 1 refs; reads=0 writes=1; used at $EE67
ZpF8 = $F8 ; 1 refs; reads=0 writes=1; used at $EE91
ZpF9 = $F9 ; 1 refs; reads=0 writes=1; used at $EE93
ZpFA = $FA ; 1 refs; reads=0 writes=1; used at $EE95
ZpFB = $FB ; 1 refs; reads=0 writes=1; used at $EE97
ZpFC = $FC ; 6 refs; reads=4 writes=2; used at $EEEE, EEF2, EF01, EF10, +2 more
ZpFD = $FD ; 23 refs; reads=19 writes=4; used at $EE99, EEA1, EEC6, EEE1, +19 more
ZpFE = $FE ; 12 refs; reads=5 writes=7; used at $EE9F, EEB1, EEBA, EEC0, +7 more
ZpFF = $FF ; 8 refs; reads=3 writes=5; used at $EE9B, EF7B, EF85, EF98, +3 more
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,195 @@
al 00F082 .Label_F082
al 00F050 .Label_F050
al 00F020 .Label_F020
al 00F001 .Label_F001
al 00EFCB .Label_EFCB
al 00EF83 .Label_EF83
al 00EF8A .Label_EF8A
al 00EFAA .Label_EFAA
al 00EFCC .Label_EFCC
al 00EF61 .Label_EF61
al 00EFB7 .Label_EFB7
al 00EF52 .Label_EF52
al 00EEFB .Label_EEFB
al 00EEF2 .Label_EEF2
al 00EED3 .Label_EED3
al 00EEB6 .Label_EEB6
al 00EEE1 .Label_EEE1
al 00EEA1 .Label_EEA1
al 00EE8F .Label_EE8F
al 00EE82 .Label_EE82
al 00EE77 .Label_EE77
al 00EE73 .Label_EE73
al 00EE4B .Label_EE4B
al 00EB71 .Label_EB71
al 00EB6F .Label_EB6F
al 00EB65 .Label_EB65
al 00EB5E .Label_EB5E
al 00EA21 .Label_EA21
al 00EA2F .Label_EA2F
al 00EA19 .Label_EA19
al 00EA03 .Label_EA03
al 00EA0D .Label_EA0D
al 00EA33 .Label_EA33
al 00E9EA .Label_E9EA
al 00E9D8 .Label_E9D8
al 00E4B7 .Label_E4B7
al 00E4A5 .Label_E4A5
al 00E4A3 .Label_E4A3
al 00E48D .Label_E48D
al 00E489 .Label_E489
al 00E47B .Label_E47B
al 00E470 .Label_E470
al 00E445 .Label_E445
al 00E450 .Label_E450
al 00E447 .Label_E447
al 00E435 .Label_E435
al 00E433 .Label_E433
al 00E432 .Label_E432
al 00E42E .Label_E42E
al 00E3F9 .Label_E3F9
al 00E3F5 .Label_E3F5
al 00E3D8 .Label_E3D8
al 00E3EA .Label_E3EA
al 00E3AF .Label_E3AF
al 00E3A2 .Label_E3A2
al 00E39F .Label_E39F
al 00E38E .Label_E38E
al 00E37A .Label_E37A
al 00E363 .Label_E363
al 00E355 .Label_E355
al 00E344 .Label_E344
al 00E293 .Label_E293
al 00E285 .Label_E285
al 00E268 .Label_E268
al 00E261 .Label_E261
al 00E259 .Label_E259
al 00E222 .Label_E222
al 00E196 .Label_E196
al 00E18D .Label_E18D
al 00DF18 .Label_DF18
al 00DF27 .Label_DF27
al 00DF06 .Label_DF06
al 00DEE6 .Label_DEE6
al 00DF01 .Label_DF01
al 00DECC .Label_DECC
al 00DEBD .Label_DEBD
al 00DECA .Label_DECA
al 00DED4 .Label_DED4
al 00DE8B .Label_DE8B
al 00DEA0 .Label_DEA0
al 00DE5C .Label_DE5C
al 00DE73 .Label_DE73
al 00DE44 .Label_DE44
al 00DE3D .Label_DE3D
al 00DBAC .Label_DBAC
al 00DB9A .Label_DB9A
al 00DB84 .Label_DB84
al 00DB80 .Label_DB80
al 00DB76 .Label_DB76
al 00DB33 .Label_DB33
al 00DB56 .Label_DB56
al 00DB10 .Label_DB10
al 00DAD7 .Label_DAD7
al 00DAD3 .Label_DAD3
al 00DAC9 .Label_DAC9
al 00DAC4 .Label_DAC4
al 00DAB0 .Label_DAB0
al 00D9AA .Label_D9AA
al 00D99E .Label_D99E
al 00D99A .Label_D99A
al 00D98B .Label_D98B
al 00D903 .Label_D903
al 00D8E9 .Label_D8E9
al 00D8D3 .Label_D8D3
al 00D815 .Label_D815
al 00D81E .Label_D81E
al 00D7FA .Label_D7FA
al 00D803 .Label_D803
al 00D827 .Label_D827
al 00D7E0 .Label_D7E0
al 00D7D5 .Label_D7D5
al 00D7C2 .Label_D7C2
al 00D7A9 .Label_D7A9
al 00D7A2 .Label_D7A2
al 00D799 .Label_D799
al 00D78F .Label_D78F
al 00D779 .Label_D779
al 00D75F .Label_D75F
al 00D75C .Label_D75C
al 00D754 .Label_D754
al 00D723 .Label_D723
al 00D4D6 .Label_D4D6
al 00D4C5 .Label_D4C5
al 00D3B4 .Label_D3B4
al 00D39D .Label_D39D
al 00D395 .Label_D395
al 00D381 .Label_D381
al 00D388 .Label_D388
al 00D365 .Label_D365
al 00D254 .Label_D254
al 00D24B .Label_D24B
al 00D249 .Label_D249
al 00C9F9 .Label_C9F9
al 00C9EF .Label_C9EF
al 00C9E2 .Label_C9E2
al 00C9DA .Label_C9DA
al 00C9C1 .Label_C9C1
al 00C9B9 .Label_C9B9
al 00C98A .Label_C98A
al 00C97E .Label_C97E
al 00C977 .Label_C977
al 00C966 .Label_C966
al 00C94F .Label_C94F
al 00C929 .Label_C929
al 00C8F7 .Label_C8F7
al 00C8ED .Label_C8ED
al 00C8CF .Label_C8CF
al 00C8C4 .Label_C8C4
al 00C8BB .Label_C8BB
al 00C8AF .Label_C8AF
al 00C8AA .Label_C8AA
al 00C89B .Label_C89B
al 00C5B0 .Label_C5B0
al 00C5A6 .Label_C5A6
al 00C597 .Label_C597
al 00C589 .Label_C589
al 00C560 .Label_C560
al 00C2F1 .Label_C2F1
al 00C2E2 .Label_C2E2
al 00C2DC .Label_C2DC
al 00C2CF .Label_C2CF
al 00C2BE .Label_C2BE
al 00C29C .Label_C29C
al 00C28B .Label_C28B
al 00C27D .Label_C27D
al 00C240 .Label_C240
al 00C23C .Label_C23C
al 00C237 .Label_C237
al 00C235 .Label_C235
al 00C201 .Label_C201
al 00C1EB .Label_C1EB
al 00C1D7 .Label_C1D7
al 00C1D3 .Label_C1D3
al 00C1BC .Label_C1BC
al 00C1A2 .Label_C1A2
al 00C1AD .Label_C1AD
al 00C181 .Label_C181
al 00C18C .Label_C18C
al 00C16B .Label_C16B
al 00C16A .IrqHandler
al 00C165 .Label_C165
al 00C15A .Label_C15A
al 00C13B .Label_C13B
al 00C0FA .NmiHandler
al 00C0B2 .Label_C0B2
al 00C0C7 .Label_C0C7
al 00C091 .Label_C091
al 00C089 .Label_C089
al 00C0A0 .Label_C0A0
al 00C086 .Label_C086
al 00C077 .Label_C077
al 00C054 .Label_C054
al 00C048 .Label_C048
al 00C03D .Label_C03D
al 00C033 .Reset