Files
tmerritt 6740550ac0 CDL re-trace: 1942 (JU) 46.6%, Galaga (U) 32.3% (Pass 2/3 complete)
Pass 3 _wip: semantic ZP aliases for Sqoon (U) (FrameCounter, PpuCtrlShadow, NmiFrameFlag) and Elevator Action (U) (PpuCtrlShadow, NmiSaveA/X/Y)
Pass 3 Slalom (U): semantic ZP aliases (PpuCtrlShadow, PpuMaskShadow)
Pass 3 Kung Fu (U): semantic ZP alias (PpuCtrlShadow)
Pass 3 Othello (U): semantic ZP alias (PpuCtrlShadow)
Pass 3 1942 (JU): semantic ZP alias (PpuCtrlShadow)
Pass 3 Galaga (U): semantic ZP aliases (PpuCtrlShadow, PpuMaskShadow)
Docs: add power-on flow + data-table inventory to READMEs of 13 promoted NROM projects
Pass 3 Elevator Action (U): add NmiFrameFlag alias
Pass 3 Elevator Action (U): full ZP naming (23 aliases) + 25 named data tables, 59.4% coverage
Pass 1/2/3 re-trace: recover unreached code in 7 NROM projects (Sqoon 56.4%, Elevator Action 59.3%, Kung Fu 52.1%, 1942 52.1%)
Pass 3 Sqoon (U): full ZP naming (22 aliases) + 17 named data tables
Pass 3 Kung Fu (U): full ZP naming (21 aliases) + 13 named data tables
Pass 3 Othello (U): full ZP naming (18 aliases) + 27 named data tables
Pass 3 1942 (JU): full ZP naming (14 aliases) + 19 named data tables
Pass 3 Galaga (U): full ZP naming (15 aliases) + 14 named data tables
Pass 3 Slalom (U): full ZP naming (16 aliases) + 16 named data tables
Pass 2/3: re-apply naming to Slalom (U), Othello (U), Galaga (U) after re-seed
Pass 1/2/3 re-trace: recover unreached code in 6 more promoted NROM projects
Pass 3 Stack-Up (JU): full ZP naming (15 aliases) + 12 named data tables
Pass 3 Tag Team Wrestling (U): full ZP naming (20 aliases) + 11 named data tables
Pass 3 Kung Fu (U) (a1): full ZP naming (20 aliases) + 12 named data tables
Pass 3 Magmax (U): full ZP naming (18 aliases) + 6 named data tables
Pass 3 Soccer (JU): full ZP naming (18 aliases) + 9 named data tables
Pass 3 Ms Pac-Man (Namco) (U): full ZP naming (18 aliases) + 8 named data tables
Docs: refresh coverage numbers and data-table inventories for 13 promoted NROM projects
2026-10-21 16:43:54 -04:00

173 lines
13 KiB
PHP

; Sqoon (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 ; 5 refs; reads=0 writes=5; used at $82E5, 82EB, 8306, 8D46, +1 more
Zp01 = $01 ; 7 refs; reads=2 writes=5; used at $82E7, 82FE, 830B, 8D4A, +1 more
Zp02 = $02 ; 4 refs; reads=2 writes=2; used at $82BD, 8312, 8D32, 8D5E
Zp03 = $03 ; 6 refs; reads=2 writes=4; used at $80E6, 8230, 824C, 85BB, +1 more
Zp04 = $04 ; 6 refs; reads=1 writes=5; used at $845B, 8722, 8754, 8BAA, +2 more
Zp05 = $05 ; 9 refs; reads=8 writes=1; used at $8D13, 8E4E, 90E9, 93B4, +5 more
Zp06 = $06 ; 6 refs; reads=1 writes=5; used at $840D, 8489, 84E6, 851A, +1 more
Zp07 = $07 ; 6 refs; reads=1 writes=5; used at $8411, 848B, 84E8, 851C, +1 more
Zp08 = $08 ; 1 refs; reads=0 writes=1; used at $83B6
Zp09 = $09 ; 1 refs; reads=0 writes=1; used at $83BB
Zp0A = $0A ; 12 refs; reads=3 writes=9; used at $8071, 819B, 81D2, 8427, +8 more
Zp0B = $0B ; 8 refs; reads=3 writes=5; used at $807F, 81D4, 8429, 84C8, +4 more
Zp0C = $0C ; 10 refs; reads=3 writes=7; used at $8076, 81A0, 81D6, 863F, +4 more
Zp0D = $0D ; 3 refs; reads=1 writes=2; used at $8083, 81D8, 8E09
Zp10 = $10 ; 8 refs; reads=3 writes=5; used at $8482, 86B8, 86BD, 86C3, +3 more
Zp11 = $11 ; 10 refs; reads=3 writes=7; used at $847E, 86AA, 86AE, 86B6, +5 more
Zp12 = $12 ; 13 refs; reads=4 writes=9; used at $8462, 84DB, 8649, 86DA, +9 more
Zp13 = $13 ; 8 refs; reads=0 writes=8; used at $8466, 84DF, 864E, 8738, +4 more
Zp14 = $14 ; 4 refs; reads=3 writes=1; used at $8258, 8264, 86D5, 86F1
Zp15 = $15 ; 10 refs; reads=6 writes=4; used at $8253, 825F, 86C1, 86CB, +3 more
Zp18 = $18 ; 12 refs; reads=7 writes=5; used at $826E, 8292, 8298, 86E7, +4 more
Zp19 = $19 ; 135 refs; reads=31 writes=104; used at $823A, 85C6, 8682, 872E, +131 more
Zp1A = $1A ; 143 refs; reads=6 writes=137; used at $85D3, 8668, 875C, 8782, +135 more
Zp1B = $1B ; 89 refs; reads=0 writes=89; used at $85CA, 85D7, 8678, 8726, +85 more
Zp1C = $1C ; 122 refs; reads=25 writes=97; used at $8225, 85C2, 85DC, 85E1, +118 more
Zp1D = $1D ; 14 refs; reads=8 writes=6; used at $8023, 8027, 807B, 8081, +10 more
Zp1E = $1E ; 1 refs; reads=0 writes=1; used at $81A7
Zp1F = $1F ; 13 refs; reads=11 writes=2; used at $810B, 8148, 814D, 8153, +8 more
Zp20 = $20 ; 2 refs; reads=1 writes=1; used at $810D, 814F
Zp21 = $21 ; 12 refs; reads=10 writes=2; used at $80AB, 8155, 8404, 8490, +8 more
Zp22 = $22 ; 1 refs; reads=0 writes=1; used at $8151
Zp23 = $23 ; 2 refs; reads=1 writes=1; used at $8142, 8145
Zp24 = $24 ; 3 refs; reads=1 writes=2; used at $8569, 856D, 8BB1
Zp2C = $2C ; 1 refs; reads=1 writes=0; used at $87C7
Zp2F = $2F ; 16 refs; reads=8 writes=8; used at $8567, 856B, 857A, 8581, +7 more
Zp32 = $32 ; 4 refs; reads=2 writes=2; used at $853C, 8CE6, 8E97
Zp36 = $36 ; 2 refs; reads=2 writes=0; used at $8863, 8875
Zp37 = $37 ; 3 refs; reads=1 writes=2; used at $8850, 8852, 8B7A
Zp38 = $38 ; 3 refs; reads=1 writes=2; used at $8856, 8858, 8B7C
Zp39 = $39 ; 3 refs; reads=1 writes=2; used at $885C, 885E, 8B7E
Zp3A = $3A ; 6 refs; reads=2 writes=4; used at $87F7, 8806, 880C, 884E, +2 more
Zp3B = $3B ; 3 refs; reads=1 writes=2; used at $8854, 8B82, 901F
Zp40 = $40 ; 1 refs; reads=0 writes=1; used at $87C3
Zp41 = $41 ; 1 refs; reads=0 writes=1; used at $87BF
Zp42 = $42 ; 4 refs; reads=2 writes=2; used at $8865, 8877, 8880, 8882
Zp43 = $43 ; 2 refs; reads=1 writes=1; used at $82D9, 82F5
Zp46 = $46 ; 64 refs; reads=30 writes=34; used at $80CB, 80DC, 8442, 87D4, +55 more
Zp47 = $47 ; 22 refs; reads=2 writes=20; used at $80CF, 80D8, 8446, 893C, +17 more
Zp48 = $48 ; 17 refs; reads=5 writes=12; used at $844A, 8834, 8843, 8940, +11 more
Zp49 = $49 ; 12 refs; reads=4 writes=8; used at $844E, 8828, 8944, 8BD6, +8 more
Zp4A = $4A ; 85 refs; reads=36 writes=49; used at $829D, 82A1, 83A5, 83B4, +80 more
Zp4B = $4B ; 46 refs; reads=14 writes=32; used at $82A3, 82A7, 83A9, 8A0A, +42 more
Zp4C = $4C ; 15 refs; reads=5 writes=10; used at $882A, 93E5, 9B1C, 9EA6, +10 more
Zp4D = $4D ; 34 refs; reads=10 writes=24; used at $829F, 82AA, 87DD, 883B, +30 more
Zp4E = $4E ; 15 refs; reads=7 writes=8; used at $82A5, 82AE, 98C8, A337, +11 more
Zp4F = $4F ; 1 refs; reads=0 writes=1; used at $B33C
Zp50 = $50 ; 6 refs; reads=3 writes=3; used at $80B6, 80BD, 83AB, 841C, +1 more
Zp51 = $51 ; 6 refs; reads=3 writes=3; used at $83BD, 8420, 848D, 849B
Zp52 = $52 ; 9 refs; reads=4 writes=5; used at $8BD8, 8BED, 8C02, 8C17, +1 more
Zp54 = $54 ; 41 refs; reads=40 writes=1; used at $801E, 80D1, 8160, 8237, +36 more
Zp55 = $55 ; 30 refs; reads=21 writes=9; used at $8050, 80B1, 8103, 8329, +25 more
Zp56 = $56 ; 4 refs; reads=1 writes=3; used at $B98C, DCB3, DCBA, DCC8
Zp59 = $59 ; 2 refs; reads=0 writes=2; used at $8033, B7BC
Zp5B = $5B ; 4 refs; reads=1 writes=3; used at $92A7, 92AF, 92B5, 92BB
Zp5C = $5C ; 3 refs; reads=0 writes=3; used at $B44A, B7CE, B7D4
Zp5D = $5D ; 2 refs; reads=0 writes=2; used at $8035, B7BE
Zp5E = $5E ; 3 refs; reads=0 writes=3; used at $8DE1, 8DF3, 8DFD
Zp5F = $5F ; 3 refs; reads=0 writes=3; used at $8DE5, 8DEF, 8DF9
Zp61 = $61 ; 2 refs; reads=0 writes=2; used at $8037, B7C0
Zp62 = $62 ; 2 refs; reads=0 writes=2; used at $866C, 88CE
Zp63 = $63 ; 2 refs; reads=0 writes=2; used at $8670, 88D2
Zp64 = $64 ; 2 refs; reads=0 writes=2; used at $8674, 88D6
Zp65 = $65 ; 9 refs; reads=4 writes=5; used at $8031, 84CF, 8E99, B436, +5 more
Zp66 = $66 ; 6 refs; reads=2 writes=4; used at $84D3, 860E, 8616, 8619, +1 more
Zp67 = $67 ; 3 refs; reads=0 writes=3; used at $84D7, 9061, B403
Zp69 = $69 ; 2 refs; reads=0 writes=2; used at $8039, B7C4
Zp6A = $6A ; 1 refs; reads=0 writes=1; used at $B3FF
Zp6B = $6B ; 2 refs; reads=0 writes=2; used at $9063, B405
Zp6D = $6D ; 2 refs; reads=0 writes=2; used at $803B, B7C6
Zp6F = $6F ; 4 refs; reads=0 writes=4; used at $B438, B78A, B798, B7A2
Zp70 = $70 ; 4 refs; reads=0 writes=4; used at $B43A, B78E, B79C, B7A6
Zp71 = $71 ; 2 refs; reads=0 writes=2; used at $803D, B7C8
Zp73 = $73 ; 5 refs; reads=0 writes=5; used at $B43C, B786, B794, B7AE, +1 more
Zp74 = $74 ; 2 refs; reads=0 writes=2; used at $B43E, B7D8
Zp75 = $75 ; 2 refs; reads=0 writes=2; used at $803F, B7CA
Zp76 = $76 ; 17 refs; reads=0 writes=17; used at $8C90, 9100, 9121, 913B, +13 more
Zp77 = $77 ; 12 refs; reads=0 writes=12; used at $8C8C, 9102, 9193, 91AC, +8 more
Zp79 = $79 ; 8 refs; reads=4 writes=4; used at $88BE, 8C2B, 8C6B, A170, +4 more
Zp7A = $7A ; 5 refs; reads=1 writes=4; used at $88C2, 8C36, 8C71, A17A, +1 more
Zp7B = $7B ; 9 refs; reads=4 writes=5; used at $8B84, 9019, 902B, DC35, +5 more
Zp7C = $7C ; 9 refs; reads=4 writes=5; used at $8B86, 901D, 902D, DC3B, +5 more
Zp7D = $7D ; 6 refs; reads=2 writes=4; used at $80C5, 815B, 821E, 8548, +2 more
Zp7E = $7E ; 4 refs; reads=2 writes=2; used at $8A38, 8AAD, 8E3D, 8E47
Zp8D = $8D ; 9 refs; reads=3 writes=6; used at $8A6F, 8AA4, E126, E12A, +5 more
Zp8F = $8F ; 10 refs; reads=6 writes=4; used at $E0DF, E2CF, E3D1, E406, +5 more
Zp90 = $90 ; 6 refs; reads=2 writes=4; used at $E0E4, E3D5, E4A4, E4B2
Zp91 = $91 ; 1 refs; reads=0 writes=1; used at $E0F3
Zp92 = $92 ; 1 refs; reads=0 writes=1; used at $E0F8
Zp93 = $93 ; 2 refs; reads=0 writes=2; used at $E107, E3D9
Zp94 = $94 ; 2 refs; reads=0 writes=2; used at $E10C, E3DD
Zp95 = $95 ; 1 refs; reads=0 writes=1; used at $E11B
Zp96 = $96 ; 1 refs; reads=0 writes=1; used at $E120
Zp9A = $9A ; 20 refs; reads=4 writes=16; used at $800F, 809E, 83D9, 83EC, +16 more
Zp9B = $9B ; 6 refs; reads=1 writes=5; used at $88BA, 8B93, 8E28, B5E3, +1 more
ZpA0 = $A0 ; 30 refs; reads=17 writes=13; used at $88A8, 8C26, B60A, B60C, +26 more
ZpA1 = $A1 ; 18 refs; reads=5 writes=13; used at $88AC, 8C31, B610, B612, +14 more
ZpA2 = $A2 ; 2 refs; reads=1 writes=1; used at $B6AC, B757
ZpA3 = $A3 ; 2 refs; reads=1 writes=1; used at $B6B0, B75B
ZpA4 = $A4 ; 2 refs; reads=1 writes=1; used at $B6B2, B75F
ZpA5 = $A5 ; 12 refs; reads=5 writes=7; used at $88B0, 8B8D, 8E1A, B607, +8 more
ZpA6 = $A6 ; 11 refs; reads=3 writes=8; used at $88B2, 8BA4, 8E20, B62C, +7 more
ZpA7 = $A7 ; 8 refs; reads=2 writes=6; used at $88B4, 8BA6, 8E22, B8BE, +3 more
ZpA8 = $A8 ; 9 refs; reads=4 writes=5; used at $8B97, 8E1C, B61E, B8B9, +5 more
ZpA9 = $A9 ; 9 refs; reads=4 writes=5; used at $8B9B, 8E2C, B619, B8B4, +5 more
ZpAB = $AB ; 2 refs; reads=1 writes=1; used at $E08B, E08F
ZpAC = $AC ; 9 refs; reads=5 writes=4; used at $83F0, 9034, 9068, 90DB, +5 more
ZpAD = $AD ; 4 refs; reads=2 writes=2; used at $E0C1, E351, E361
ZpAE = $AE ; 4 refs; reads=1 writes=3; used at $E0E8, E256, E3E1
ZpAF = $AF ; 1 refs; reads=0 writes=1; used at $E0FC
ZpB0 = $B0 ; 2 refs; reads=0 writes=2; used at $E110, E3E3
ZpB1 = $B1 ; 1 refs; reads=0 writes=1; used at $E124
ZpB2 = $B2 ; 12 refs; reads=4 writes=8; used at $E25F, E264, E26E, E288, +8 more
ZpB6 = $B6 ; 10 refs; reads=5 writes=5; used at $E25A, E270, E280, E297, +2 more
ZpBA = $BA ; 3 refs; reads=1 writes=2; used at $E274, E27C
ZpBE = $BE ; 1 refs; reads=1 writes=0; used at $E2C1
ZpC2 = $C2 ; 2 refs; reads=1 writes=1; used at $E31D, E464
ZpC6 = $C6 ; 1 refs; reads=1 writes=0; used at $E313
ZpCA = $CA ; 2 refs; reads=2 writes=0; used at $E2A6, E2AA
ZpCE = $CE ; 2 refs; reads=2 writes=0; used at $E266, E26C
ZpD2 = $D2 ; 1 refs; reads=1 writes=0; used at $E2A2
ZpD6 = $D6 ; 1 refs; reads=1 writes=0; used at $E262
ZpDA = $DA ; 1 refs; reads=1 writes=0; used at $E272
ZpDE = $DE ; 1 refs; reads=1 writes=0; used at $E28B
ZpE2 = $E2 ; 3 refs; reads=3 writes=0; used at $E468, E47C, E48C
ZpE6 = $E6 ; 8 refs; reads=5 writes=3; used at $E46C, E46E, E474, E47A, +3 more
ZpF7 = $F7 ; 2 refs; reads=1 writes=1; used at $8D42, 8D69
ZpF8 = $F8 ; 2 refs; reads=1 writes=1; used at $8D3D, 8D64
ZpF9 = $F9 ; 2 refs; reads=1 writes=1; used at $8D38, 8D60
ZpFA = $FA ; 2 refs; reads=1 writes=1; used at $8D34, 8D5C
ZpFB = $FB ; 12 refs; reads=10 writes=2; used at $8B65, 9895, 98D3, B649, +8 more
ZpFC = $FC ; 22 refs; reads=17 writes=5; used at $888A, 8B15, 8B5B, 8C1C, +18 more
ZpFE = $FE ; 7 refs; reads=3 writes=4; used at $8003, 800D, 8015, 801C, +1 more
ZpFF = $FF ; 4 refs; reads=2 writes=2; used at $82C3, 8316, 8D36, 8D62
; Pass 3 semantic aliases (proven from the disassembly):
PpuCtrlShadow = Zp1D
FrameCounter = Zp54
NmiFrameFlag = ZpFE
PlayerXLow = Zp1A
PlayerXHigh = Zp19
PlayerYLow = Zp1B
PlayerYHigh = Zp1C
DispatchPtrLo = Zp4A
DispatchPtrHi = Zp4B
ScrollX = Zp4D
ScrollY = Zp4E
VramWritePtrLo = Zp46
VramWritePtrHi = Zp47
SpriteX = ZpA0
SpriteY = ZpA1
SpriteTile = Zp79
SpriteAttr = Zp7A
LevelIndex = ZpFC
GameState = Zp9A
PlayerIndex = Zp08
PlayerIndex2 = Zp09