Files
disasm/NROM/Soccer (JU)/locals.inc
T
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

206 lines
17 KiB
PHP

; Soccer (JU) 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 ; 87 refs; reads=40 writes=47; used at $801F, 8023, 83AB, 83E2, +74 more
Zp01 = $01 ; 39 refs; reads=17 writes=22; used at $801D, 8028, 802A, 83AD, +32 more
Zp02 = $02 ; 36 refs; reads=17 writes=19; used at $846C, 8485, 8537, 853D, +31 more
Zp03 = $03 ; 23 refs; reads=6 writes=17; used at $85B7, 85C2, 85CD, 85DE, +19 more
Zp04 = $04 ; 12 refs; reads=7 writes=5; used at $8543, 857F, 85AC, 8F34, +7 more
Zp05 = $05 ; 8 refs; reads=5 writes=3; used at $853B, 8558, 85CF, 85F6, +4 more
Zp06 = $06 ; 5 refs; reads=3 writes=2; used at $855A, 8568, 85C4, 85EB
Zp07 = $07 ; 16 refs; reads=10 writes=6; used at $85B9, 85E0, 8687, 868E, +11 more
Zp08 = $08 ; 8 refs; reads=3 writes=5; used at $8076, 8412, 8419, 845A, +4 more
Zp09 = $09 ; 5 refs; reads=2 writes=3; used at $807A, 8268, 86C2, 86C6, +1 more
Zp0A = $0A ; 20 refs; reads=14 writes=6; used at $805E, 81AF, 8525, 88E1, +16 more
Zp0B = $0B ; 3 refs; reads=2 writes=1; used at $8063, 852A, C419
Zp0C = $0C ; 87 refs; reads=42 writes=45; used at $82C0, 82E8, 83F0, 83FC, +76 more
Zp0D = $0D ; 47 refs; reads=25 writes=22; used at $82C2, 82C6, 82D7, 83F5, +40 more
Zp0E = $0E ; 11 refs; reads=7 writes=4; used at $88DF, 88F8, 9412, 9443, +5 more
Zp0F = $0F ; 10 refs; reads=6 writes=4; used at $88CB, 88D9, 88F1, 9EBA, +6 more
Zp10 = $10 ; 29 refs; reads=10 writes=19; used at $8E61, 8E76, B9B6, B9C5, +24 more
Zp11 = $11 ; 43 refs; reads=21 writes=22; used at $8E63, 8E7C, B9BE, B9CB, +36 more
Zp12 = $12 ; 9 refs; reads=2 writes=7; used at $B716, B749, DCAB, DCBF, +5 more
Zp13 = $13 ; 3 refs; reads=1 writes=2; used at $DCB3, DCC3, DEE0
Zp14 = $14 ; 30 refs; reads=20 writes=10; used at $84C5, 84CA, 84CE, 84D2, +26 more
Zp15 = $15 ; 23 refs; reads=7 writes=16; used at $84C8, 84D0, 87F6, 87FE, +16 more
Zp16 = $16 ; 25 refs; reads=16 writes=9; used at $80F9, 818B, 81D0, 81D8, +21 more
Zp17 = $17 ; 28 refs; reads=14 writes=14; used at $89A4, 9829, 9BD1, 9BDF, +24 more
Zp18 = $18 ; 4 refs; reads=2 writes=2; used at $80FF, 8103, 815A
Zp19 = $19 ; 3 refs; reads=1 writes=2; used at $81E2, 8200, 8231
Zp1D = $1D ; 2 refs; reads=1 writes=1; used at $8122, 838A
Zp1E = $1E ; 2 refs; reads=1 writes=1; used at $86E0, 86E5
Zp20 = $20 ; 6 refs; reads=2 writes=4; used at $8084, 8091, 8095, 80C5, +2 more
Zp21 = $21 ; 3 refs; reads=1 writes=2; used at $8406, 8447, 8533
Zp23 = $23 ; 7 refs; reads=1 writes=6; used at $812A, 82B5, 839D, 83C2, +3 more
Zp24 = $24 ; 14 refs; reads=11 writes=3; used at $806A, 80F2, 81A9, 867E, +10 more
Zp25 = $25 ; 15 refs; reads=6 writes=9; used at $8105, 8120, 8126, 815C, +8 more
Zp26 = $26 ; 12 refs; reads=6 writes=6; used at $8193, 81BB, 81F1, 824C, +5 more
Zp27 = $27 ; 2 refs; reads=1 writes=1; used at $84BD, 84D4
Zp28 = $28 ; 2 refs; reads=1 writes=1; used at $84BF, 84D6
Zp29 = $29 ; 9 refs; reads=4 writes=5; used at $8118, 818C, 8385, 849E, +2 more
Zp2A = $2A ; 6 refs; reads=4 writes=2; used at $84A8, 84AC, 9125, A404, +1 more
Zp2B = $2B ; 1 refs; reads=1 writes=0; used at $8112
Zp2C = $2C ; 13 refs; reads=7 writes=6; used at $8233, 823B, 86DC, 86E7, +9 more
Zp2E = $2E ; 9 refs; reads=8 writes=1; used at $8093, 8343, 83D1, C2E3, +4 more
Zp2F = $2F ; 5 refs; reads=3 writes=2; used at $84B1, 84B5, 84BA, 8B8E
Zp30 = $30 ; 11 refs; reads=3 writes=8; used at $80C7, 8168, 81AD, 81F3, +6 more
Zp3A = $3A ; 1 refs; reads=1 writes=0; used at $C417
Zp3B = $3B ; 4 refs; reads=2 writes=2; used at $8199, 81A0, 81CE, 822D
Zp3C = $3C ; 7 refs; reads=3 writes=4; used at $8E65, 8E6F, 9EBC, 9EE4, +1 more
Zp3D = $3D ; 6 refs; reads=3 writes=3; used at $8E69, 8E74, 8E78, 8E83, +1 more
Zp3E = $3E ; 6 refs; reads=3 writes=3; used at $8E6B, 8E7A, 8E7E, 8E81, +1 more
Zp3F = $3F ; 2 refs; reads=1 writes=1; used at $E5A7
Zp41 = $41 ; 1 refs; reads=1 writes=0; used at $B63C
Zp43 = $43 ; 9 refs; reads=7 writes=2; used at $8B71, 8B9B, 8BB6, 8BC0, +5 more
Zp44 = $44 ; 11 refs; reads=8 writes=3; used at $8B75, 8B9D, 8BA1, 8BAD, +7 more
Zp45 = $45 ; 4 refs; reads=1 writes=3; used at $8B79, 8B93, 8B99
Zp46 = $46 ; 2 refs; reads=1 writes=1; used at $8B7D, 8B97
Zp47 = $47 ; 27 refs; reads=22 writes=5; used at $81B3, 81FB, 820B, 8213, +23 more
Zp48 = $48 ; 4 refs; reads=3 writes=1; used at $81B1, 81F9, 8226, A13F
Zp4D = $4D ; 1 refs; reads=1 writes=0; used at $859B
Zp50 = $50 ; 6 refs; reads=4 writes=2; used at $8013, 8047, 85B0, 85D7, +2 more
Zp51 = $51 ; 7 refs; reads=4 writes=3; used at $85CB, 85D4, 85F2, 85FB, +3 more
Zp52 = $52 ; 8 refs; reads=5 writes=3; used at $85C0, 85C9, 85E7, 85F0, +4 more
Zp53 = $53 ; 7 refs; reads=4 writes=3; used at $85B5, 85BE, 85DC, 85E5, +3 more
Zp54 = $54 ; 1 refs; reads=0 writes=1; used at $BE63
Zp55 = $55 ; 1 refs; reads=0 writes=1; used at $BE65
Zp56 = $56 ; 1 refs; reads=0 writes=1; used at $BE67
Zp57 = $57 ; 1 refs; reads=0 writes=1; used at $BE69
Zp58 = $58 ; 1 refs; reads=0 writes=1; used at $BE6B
Zp59 = $59 ; 1 refs; reads=0 writes=1; used at $BE6D
Zp5A = $5A ; 1 refs; reads=0 writes=1; used at $BE6F
Zp5B = $5B ; 1 refs; reads=0 writes=1; used at $BE71
Zp5E = $5E ; 1 refs; reads=0 writes=1; used at $8051
Zp5F = $5F ; 1 refs; reads=0 writes=1; used at $8055
Zp60 = $60 ; 8 refs; reads=6 writes=2; used at $9816, 9844, 984A, 984F, +3 more
Zp61 = $61 ; 5 refs; reads=3 writes=2; used at $82DD, 9880, 9897, 98BD, +1 more
Zp62 = $62 ; 4 refs; reads=3 writes=1; used at $8B6C, 989C, 98B3, 98D1
Zp63 = $63 ; 18 refs; reads=11 writes=7; used at $8164, 8297, 97FB, 997B, +10 more
Zp64 = $64 ; 3 refs; reads=1 writes=2; used at $829E, 97FF, A0AD
Zp67 = $67 ; 1 refs; reads=1 writes=0; used at $B63E
Zp68 = $68 ; 2 refs; reads=1 writes=1; used at $FB07
Zp70 = $70 ; 23 refs; reads=12 writes=11; used at $87B4, 87D7, 87E4, 8837, +19 more
Zp71 = $71 ; 20 refs; reads=8 writes=12; used at $87C0, 8883, 890B, 8A16, +12 more
Zp72 = $72 ; 26 refs; reads=16 writes=10; used at $87C5, 87DF, 8854, 8859, +22 more
Zp73 = $73 ; 13 refs; reads=6 writes=7; used at $87D0, 889A, 88AA, 88C6, +9 more
Zp74 = $74 ; 2 refs; reads=1 writes=1; used at $882D, 8847
Zp75 = $75 ; 2 refs; reads=1 writes=1; used at $87F0, 8831
Zp76 = $76 ; 2 refs; reads=1 writes=1; used at $E5AB
Zp77 = $77 ; 11 refs; reads=8 writes=3; used at $87AF, 87D5, 87E9, 9026, +6 more
Zp79 = $79 ; 54 refs; reads=48 writes=6; used at $87AD, 87F2, 8A12, 8A3C, +50 more
Zp7B = $7B ; 19 refs; reads=19 writes=0; used at $8997, 89A0, 8E2A, 9C3D, +15 more
Zp7C = $7C ; 1 refs; reads=0 writes=1; used at $81F7
Zp7D = $7D ; 4 refs; reads=2 writes=2; used at $A0D9, A0DB, A0E3
Zp80 = $80 ; 1 refs; reads=0 writes=1; used at $8182
Zp83 = $83 ; 6 refs; reads=4 writes=2; used at $8C36, 8C6C, 8C7C, BE57, +2 more
Zp84 = $84 ; 4 refs; reads=3 writes=1; used at $8C43, BE59, C871, E5B2
Zp85 = $85 ; 1 refs; reads=1 writes=0; used at $C505
Zp88 = $88 ; 9 refs; reads=4 writes=5; used at $A0EB, A133, A14B, A14F, +5 more
Zp89 = $89 ; 5 refs; reads=2 writes=3; used at $A0F0, A158, A1B8
Zp8A = $8A ; 9 refs; reads=4 writes=5; used at $A0F5, A167, A16E, A172, +5 more
Zp8B = $8B ; 5 refs; reads=2 writes=3; used at $A0FA, A17B, A1E9
Zp8C = $8C ; 5 refs; reads=2 writes=3; used at $A0FE, A124, A128, A14D
Zp8D = $8D ; 3 refs; reads=2 writes=1; used at $A092, A12A, A148
Zp8E = $8E ; 5 refs; reads=2 writes=3; used at $A100, A15A, A15E, A170
Zp8F = $8F ; 2 refs; reads=1 writes=1; used at $A160, A16B
Zp90 = $90 ; 97 refs; reads=71 writes=26; used at $9058, 931C, B5E6, B628, +93 more
Zp91 = $91 ; 4 refs; reads=0 writes=4; used at $C0D0, D083, D0A1, D0B6
Zp92 = $92 ; 18 refs; reads=7 writes=11; used at $C0D4, C25D, C283, C2AF, +14 more
Zp93 = $93 ; 1 refs; reads=0 writes=1; used at $C0D8
Zp94 = $94 ; 38 refs; reads=27 writes=11; used at $9B83, B7D7, B8B4, B8BD, +34 more
Zp95 = $95 ; 3 refs; reads=2 writes=1; used at $9004, B96E, E111
Zp96 = $96 ; 5 refs; reads=5 writes=0; used at $9D67, 9D6B, 9D8A, B964, +1 more
Zp97 = $97 ; 16 refs; reads=13 writes=3; used at $8161, BDC3, BF8B, BF97, +12 more
Zp98 = $98 ; 1 refs; reads=0 writes=1; used at $BDC7
Zp99 = $99 ; 14 refs; reads=8 writes=6; used at $BDCB, BF87, BF90, BF9B, +10 more
Zp9A = $9A ; 1 refs; reads=0 writes=1; used at $BDCF
Zp9B = $9B ; 3 refs; reads=1 writes=2; used at $9BE8, BDD3
Zp9C = $9C ; 1 refs; reads=0 writes=1; used at $BDD5
Zp9E = $9E ; 2 refs; reads=1 writes=1; used at $B9F7, B9FB
ZpA0 = $A0 ; 3 refs; reads=2 writes=1; used at $BAC3, BBB5, D964
ZpA1 = $A1 ; 16 refs; reads=7 writes=9; used at $9F76, B68D, B813, B936, +10 more
ZpA2 = $A2 ; 29 refs; reads=16 writes=13; used at $9F6E, B68B, B815, B934, +20 more
ZpA3 = $A3 ; 44 refs; reads=28 writes=16; used at $831E, 9285, 92EA, 92FA, +36 more
ZpA4 = $A4 ; 35 refs; reads=20 writes=15; used at $831C, 928A, 92E4, 92E6, +31 more
ZpA5 = $A5 ; 1 refs; reads=0 writes=1; used at $818A
ZpA6 = $A6 ; 15 refs; reads=8 writes=7; used at $9F78, A40A, B640, B691, +11 more
ZpA7 = $A7 ; 14 refs; reads=7 writes=7; used at $9F70, B68F, B822, B938, +10 more
ZpA8 = $A8 ; 35 refs; reads=22 writes=13; used at $8324, 8F2F, 927B, A384, +29 more
ZpA9 = $A9 ; 36 refs; reads=20 writes=16; used at $8322, 8F2B, 9280, A366, +29 more
ZpAA = $AA ; 6 refs; reads=1 writes=5; used at $A408, B697, B826, BB47, +2 more
ZpAB = $AB ; 18 refs; reads=8 writes=10; used at $9EED, 9F7A, B69B, B77B, +13 more
ZpAC = $AC ; 23 refs; reads=13 writes=10; used at $9EEB, 9F72, B699, B779, +18 more
ZpAD = $AD ; 24 refs; reads=11 writes=13; used at $928E, 9DB1, A38C, B69D, +18 more
ZpAE = $AE ; 23 refs; reads=10 writes=13; used at $9292, 9DB3, A38E, B69F, +19 more
ZpB6 = $B6 ; 2 refs; reads=1 writes=1; used at $B635
ZpB7 = $B7 ; 2 refs; reads=1 writes=1; used at $A368
ZpB9 = $B9 ; 2 refs; reads=1 writes=1; used at $B9F2
ZpBD = $BD ; 2 refs; reads=1 writes=1; used at $8162
ZpBE = $BE ; 15 refs; reads=1 writes=14; used at $816A, 816C, 816E, 8170, +10 more
ZpC0 = $C0 ; 7 refs; reads=5 writes=2; used at $F52D, F7FC, F89F, F8A5, +3 more
ZpC2 = $C2 ; 5 refs; reads=2 writes=3; used at $F84B, F857, F8D1, F90D
ZpC4 = $C4 ; 4 refs; reads=2 writes=2; used at $F800, F8F0, F8F6, F8F9
ZpC6 = $C6 ; 4 refs; reads=1 writes=3; used at $F84D, F94F, F96C
ZpC8 = $C8 ; 4 refs; reads=2 writes=2; used at $F802, F98B, F991, F994
ZpCA = $CA ; 5 refs; reads=2 writes=3; used at $F84F, F9BD, F9C8, F9D4
ZpCD = $CD ; 1 refs; reads=1 writes=0; used at $C430
ZpD0 = $D0 ; 2 refs; reads=1 writes=1; used at $B647
ZpD8 = $D8 ; 5 refs; reads=1 writes=4; used at $F74B, F773, F77C, F794, +1 more
ZpDA = $DA ; 4 refs; reads=2 writes=2; used at $F80F, F867, F869
ZpDB = $DB ; 2 refs; reads=1 writes=1; used at $C41B
ZpDC = $DC ; 6 refs; reads=3 writes=3; used at $8184, F847, F9F4, F9F6
ZpDD = $DD ; 4 refs; reads=1 writes=3; used at $F851, F9F0, F9FD
ZpDE = $DE ; 3 refs; reads=1 writes=2; used at $F855, F965, F9A2
ZpDF = $DF ; 4 refs; reads=2 writes=2; used at $F909, F938, F93C
ZpE0 = $E0 ; 4 refs; reads=2 writes=2; used at $F99E, F9AD, F9B1
ZpE1 = $E1 ; 5 refs; reads=3 writes=2; used at $F6B0, F6CF, F6E9, F6EB
ZpE2 = $E2 ; 2 refs; reads=1 writes=1; used at $F819, F884
ZpE3 = $E3 ; 4 refs; reads=2 writes=2; used at $F58A, F5B5, F5C0
ZpE4 = $E4 ; 4 refs; reads=1 writes=3; used at $F5AF, F5C4, F5CC, F659
ZpE5 = $E5 ; 2 refs; reads=1 writes=1; used at $A36A
ZpE6 = $E6 ; 3 refs; reads=1 writes=2; used at $F712, F71E
ZpE7 = $E7 ; 4 refs; reads=2 writes=2; used at $F724, F726, F72A
ZpE9 = $E9 ; 8 refs; reads=4 writes=4; used at $F74F, F755, F769, F798, +3 more
ZpEA = $EA ; 5 refs; reads=2 writes=3; used at $A402, F65B, F76D, F775, +1 more
ZpEC = $EC ; 9 refs; reads=4 writes=5; used at $F525, F535, F53E, F547, +3 more
ZpEE = $EE ; 3 refs; reads=1 writes=2; used at $F751, F77A
ZpF0 = $F0 ; 6 refs; reads=3 writes=3; used at $F821, F85B, F85D, F86E, +1 more
ZpF1 = $F1 ; 11 refs; reads=4 writes=7; used at $F58C, F594, F5E2, F609, +7 more
ZpF2 = $F2 ; 3 refs; reads=1 writes=2; used at $F57C, F586, F5CA
ZpF3 = $F3 ; 6 refs; reads=4 writes=2; used at $F6FD, F70E, F743, F8D3, +2 more
ZpF4 = $F4 ; 8 refs; reads=5 writes=3; used at $F842, F953, F957, F959, +2 more
ZpF5 = $F5 ; 16 refs; reads=13 writes=3; used at $F527, F5D6, F808, F815, +12 more
ZpF6 = $F6 ; 17 refs; reads=8 writes=9; used at $F5E4, F5E6, F5F3, F60D, +9 more
ZpF7 = $F7 ; 2 refs; reads=1 writes=1; used at $F82E, FA29
ZpF8 = $F8 ; 6 refs; reads=3 writes=3; used at $F83D, F875, F87A, F9B9, +1 more
ZpF9 = $F9 ; 7 refs; reads=5 writes=2; used at $905D, F833, F85F, F95B, +3 more
ZpFA = $FA ; 1 refs; reads=0 writes=1; used at $F838
ZpFB = $FB ; 7 refs; reads=5 writes=2; used at $87A8, 87AA, F523, F7F4, +3 more
ZpFC = $FC ; 13 refs; reads=7 writes=6; used at $877D, 877F, CA7A, CA89, +6 more
ZpFD = $FD ; 12 refs; reads=8 writes=4; used at $8752, 8754, F51F, F59F, +6 more
ZpFE = $FE ; 6 refs; reads=3 writes=3; used at $873B, 873D, F51D, F57A, +1 more
ZpFF = $FF ; 30 refs; reads=15 writes=15; used at $872C, 872E, CA73, CA82, +18 more
; Pass 3 semantic aliases (proven from the disassembly):
PpuCtrlShadow = Zp08
PpuMaskShadow = Zp09
VramWritePtrLo = Zp00
VramWritePtrHi = Zp01
VramReadPtrLo = Zp0C
VramReadPtrHi = Zp0D
PlayerIndex = Zp79
PlayerX = Zp70
GameState = Zp0D
GameMode = Zp72
TimerIndex = ZpA3
TimerIndex2 = ZpA4
TimerIndex3 = ZpA8
TimerIndex4 = ZpA9
PlayerSpeed = Zp95
PlayerSpeed2 = Zp90
FrameCounter = Zp02
FrameCounter2 = Zp25