Files
disasm/NROM/Kung Fu (U)/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

196 lines
16 KiB
PHP

; Kung Fu (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 ; 219 refs; reads=100 writes=119; used at $8274, 8277, 8287, 82AA, +203 more
Zp01 = $01 ; 135 refs; reads=55 writes=80; used at $8270, 827C, 8282, 828C, +115 more
Zp02 = $02 ; 82 refs; reads=37 writes=45; used at $83BF, 83CD, 83D2, 8F25, +66 more
Zp03 = $03 ; 62 refs; reads=27 writes=35; used at $83C5, 8ED0, 8F08, 8F0D, +55 more
Zp04 = $04 ; 36 refs; reads=15 writes=21; used at $8FD3, AA01, AA0D, AAC6, +28 more
Zp05 = $05 ; 43 refs; reads=23 writes=20; used at $8ED6, 8F39, A6EB, A6F6, +36 more
Zp06 = $06 ; 27 refs; reads=11 writes=16; used at $8F27, 8F4B, A5D3, A5DE, +23 more
Zp07 = $07 ; 25 refs; reads=14 writes=11; used at $8ED2, 8EEC, 8EF2, 8F0A, +20 more
Zp08 = $08 ; 9 refs; reads=4 writes=5; used at $8F0F, 8F11, 8F4D, B323, +3 more
Zp0A = $0A ; 44 refs; reads=22 writes=22; used at $8F1F, 8F47, AEDF, AF10, +37 more
Zp0B = $0B ; 9 refs; reads=3 writes=6; used at $B699, B6C0, B6C2, BFCE, +5 more
Zp0D = $0D ; 8 refs; reads=4 writes=4; used at $C141, C14D, C152, C15E, +4 more
Zp0E = $0E ; 7 refs; reads=3 writes=4; used at $B724, B73F, B780, C15A, +3 more
Zp0F = $0F ; 26 refs; reads=14 writes=12; used at $B3ED, B3F8, B3FA, B728, +21 more
Zp10 = $10 ; 11 refs; reads=6 writes=5; used at $82D6, 82DD, 838A, 8E18, +7 more
Zp11 = $11 ; 2 refs; reads=1 writes=1; used at $8304, 830B
Zp12 = $12 ; 16 refs; reads=13 writes=3; used at $8734, 8966, 8E88, 8FBA, +12 more
Zp13 = $13 ; 1 refs; reads=0 writes=1; used at $8FBF
Zp14 = $14 ; 7 refs; reads=6 writes=1; used at $836C, 8471, 87B1, 892D, +3 more
Zp15 = $15 ; 4 refs; reads=2 writes=2; used at $88E4, 9012, 9019, 902F
Zp18 = $18 ; 19 refs; reads=15 writes=4; used at $833B, 834B, 84EA, AA91, +12 more
Zp19 = $19 ; 15 refs; reads=14 writes=1; used at $8341, 834D, AB92, AC15, +10 more
Zp1A = $1A ; 7 refs; reads=6 writes=1; used at $834F, C58F, D018, D0A4, +2 more
Zp1B = $1B ; 4 refs; reads=3 writes=1; used at $8351, A9DE, D45D
Zp1C = $1C ; 2 refs; reads=1 writes=1; used at $8353
Zp1D = $1D ; 2 refs; reads=1 writes=1; used at $8355
Zp1E = $1E ; 2 refs; reads=1 writes=1; used at $8357
Zp1F = $1F ; 2 refs; reads=1 writes=1; used at $8359
Zp20 = $20 ; 6 refs; reads=2 writes=4; used at $8323, 8329, 837F, 84D4, +1 more
Zp21 = $21 ; 21 refs; reads=9 writes=12; used at $832D, 8331, 8763, 89C6, +16 more
Zp23 = $23 ; 4 refs; reads=3 writes=1; used at $A486, A82B, A866, A86D
Zp24 = $24 ; 2 refs; reads=1 writes=1; used at $A503, A80F
Zp25 = $25 ; 6 refs; reads=3 writes=3; used at $D151, D19D, D1C5, D226, +2 more
Zp26 = $26 ; 4 refs; reads=2 writes=2; used at $89D7, 89DD, C1C6, C1CB
Zp27 = $27 ; 1 refs; reads=1 writes=0; used at $9808
Zp2A = $2A ; 2 refs; reads=1 writes=1; used at $A76B, A78A
Zp2B = $2B ; 26 refs; reads=10 writes=16; used at $ACA9, AEA1, B108, B112, +22 more
Zp30 = $30 ; 24 refs; reads=13 writes=11; used at $8B94, CFDD, D02F, D307, +20 more
Zp32 = $32 ; 4 refs; reads=2 writes=2; used at $D046, D06C, D138, D148
Zp33 = $33 ; 3 refs; reads=1 writes=2; used at $8DD1, A9BF, AACC
Zp34 = $34 ; 4 refs; reads=2 writes=2; used at $8C0B, 8C11, D792, D79C
Zp35 = $35 ; 5 refs; reads=1 writes=4; used at $837C, 83B4, 84B8, 88BD, +1 more
Zp36 = $36 ; 6 refs; reads=3 writes=3; used at $8463, 8466, 8859, 88A4, +2 more
Zp37 = $37 ; 2 refs; reads=1 writes=1; used at $874B, 876D
Zp38 = $38 ; 12 refs; reads=6 writes=6; used at $8992, 8998, 8AE8, 8B6F, +8 more
Zp39 = $39 ; 5 refs; reads=3 writes=2; used at $8975, 899E, 89FC, 8C3E, +1 more
Zp3A = $3A ; 7 refs; reads=3 writes=4; used at $86EE, 872A, D16D, D172, +3 more
Zp3B = $3B ; 3 refs; reads=2 writes=1; used at $A72F, AA05, AAC0
Zp3C = $3C ; 6 refs; reads=2 writes=4; used at $A96B, D1C3, D23C, D357, +2 more
Zp3D = $3D ; 2 refs; reads=1 writes=1; used at $AB48, AC27
Zp3E = $3E ; 2 refs; reads=1 writes=1; used at $C7C1, C7C7
Zp3F = $3F ; 19 refs; reads=8 writes=11; used at $AEBE, AF66, AF7A, AFFE, +15 more
Zp44 = $44 ; 10 refs; reads=4 writes=6; used at $D08C, D0AC, D1B7, D222, +6 more
Zp47 = $47 ; 3 refs; reads=1 writes=2; used at $8DDE, CD07, CD13
Zp49 = $49 ; 14 refs; reads=12 writes=2; used at $8336, 84D6, 881D, 8A07, +9 more
Zp4A = $4A ; 5 refs; reads=2 writes=3; used at $84D8, A9C3, A9C7, AAE7
Zp4B = $4B ; 22 refs; reads=11 writes=11; used at $8412, 897C, 8A27, 8A32, +18 more
Zp4C = $4C ; 24 refs; reads=12 writes=12; used at $8980, 8A29, 8A51, 8A65, +20 more
Zp4D = $4D ; 5 refs; reads=3 writes=2; used at $8A2B, 8A70, 8A84, BA54, +1 more
Zp4E = $4E ; 8 refs; reads=4 writes=4; used at $8A05, 8A2E, 8A4A, 8A4D, +4 more
Zp4F = $4F ; 5 refs; reads=2 writes=3; used at $83C7, 83C9, 8720, 88C3
Zp50 = $50 ; 4 refs; reads=2 writes=2; used at $8300, 8392, 871D, 88C1
Zp51 = $51 ; 14 refs; reads=8 writes=6; used at $8396, 83A1, 83B8, 84BD, +7 more
Zp52 = $52 ; 26 refs; reads=2 writes=24; used at $82EE, 8315, 83EE, 8429, +22 more
Zp53 = $53 ; 15 refs; reads=14 writes=1; used at $8496, 8557, 8643, AC20, +11 more
Zp54 = $54 ; 8 refs; reads=6 writes=2; used at $8459, 8487, 8489, 848D, +3 more
Zp55 = $55 ; 17 refs; reads=14 writes=3; used at $8440, 8522, 8668, 86D9, +13 more
Zp56 = $56 ; 4 refs; reads=2 writes=2; used at $8432, 8524, 8C52
Zp57 = $57 ; 1 refs; reads=0 writes=1; used at $8434
Zp58 = $58 ; 6 refs; reads=3 writes=3; used at $8436, 8530, 8C44, 8C46, +1 more
Zp59 = $59 ; 1 refs; reads=0 writes=1; used at $8438
Zp5A = $5A ; 2 refs; reads=1 writes=1; used at $8613, BA3A
Zp5B = $5B ; 2 refs; reads=1 writes=1; used at $8619, BA40
Zp5C = $5C ; 11 refs; reads=7 writes=4; used at $8445, 84AC, 8882, 88B1, +5 more
Zp5D = $5D ; 5 refs; reads=3 writes=2; used at $8447, 84B4, 88DB, 8929, +1 more
Zp5E = $5E ; 5 refs; reads=4 writes=1; used at $8526, 8637, A979, A9F0, +1 more
Zp5F = $5F ; 40 refs; reads=39 writes=1; used at $8532, 853F, 856F, 858B, +36 more
Zp60 = $60 ; 4 refs; reads=2 writes=2; used at $8AD6, 8B3A, 8B80
Zp61 = $61 ; 6 refs; reads=3 writes=3; used at $8962, 8B5C, 8E92, A738, +2 more
Zp62 = $62 ; 8 refs; reads=3 writes=5; used at $85BA, 8EA8, A7FA, A803, +2 more
Zp63 = $63 ; 8 refs; reads=4 writes=4; used at $83DD, 8AF0, 8B76, 8E96, +4 more
Zp64 = $64 ; 9 refs; reads=5 writes=4; used at $85D3, 8B65, 8E9E, A797, +5 more
Zp65 = $65 ; 19 refs; reads=16 writes=3; used at $85A2, 8B58, A734, A745, +13 more
Zp66 = $66 ; 5 refs; reads=3 writes=2; used at $8317, A7C2, A7C4, C08E, +1 more
Zp67 = $67 ; 26 refs; reads=9 writes=17; used at $8AEE, A4CA, A4FF, A509, +22 more
Zp68 = $68 ; 34 refs; reads=20 writes=14; used at $87C0, 87C9, 89CE, 89D2, +26 more
Zp69 = $69 ; 56 refs; reads=46 writes=10; used at $85B3, 87BB, 87C5, 8AF5, +52 more
Zp6A = $6A ; 12 refs; reads=8 writes=4; used at $8728, 8775, 87B3, 8DFC, +8 more
Zp6B = $6B ; 4 refs; reads=3 writes=1; used at $8560, 8706, A77A, AAE0
Zp6C = $6C ; 9 refs; reads=5 writes=4; used at $8757, C4E5, C52A, C6FE, +5 more
Zp6D = $6D ; 1 refs; reads=0 writes=1; used at $8430
Zp6E = $6E ; 2 refs; reads=1 writes=1; used at $B214, C9FE
Zp6F = $6F ; 3 refs; reads=1 writes=2; used at $83D9, 83E1, 88CB
Zp70 = $70 ; 3 refs; reads=2 writes=1; used at $8848, 8E61, 8E65
Zp71 = $71 ; 3 refs; reads=1 writes=2; used at $869B, 875F, 8E3D
Zp72 = $72 ; 2 refs; reads=1 writes=1; used at $A507, A813
Zp73 = $73 ; 2 refs; reads=1 writes=1; used at $A719, A732
Zp74 = $74 ; 7 refs; reads=4 writes=3; used at $85D8, A71F, A72A, A9BD, +1 more
Zp75 = $75 ; 5 refs; reads=3 writes=2; used at $A9CA, A9FB, A9FE, AACE
Zp76 = $76 ; 2 refs; reads=1 writes=1; used at $A9E4, AAC4
Zp77 = $77 ; 2 refs; reads=1 writes=1; used at $A9EC, AA03
Zp78 = $78 ; 3 refs; reads=2 writes=1; used at $AB51, AB65
Zp79 = $79 ; 6 refs; reads=3 writes=3; used at $8DE0, CD0B, CD0F, CD19, +2 more
Zp7A = $7A ; 30 refs; reads=13 writes=17; used at $C4B6, C8B2, CD6B, CFE3, +23 more
Zp7B = $7B ; 35 refs; reads=18 writes=17; used at $C147, C18F, C197, C263, +30 more
Zp7C = $7C ; 9 refs; reads=4 writes=5; used at $CFEB, D0B2, D179, D405, +1 more
Zp7D = $7D ; 28 refs; reads=17 writes=11; used at $A49F, A4BC, A4F9, A57C, +20 more
Zp7E = $7E ; 11 refs; reads=8 writes=3; used at $85C1, A667, A7D9, A93E, +7 more
Zp7F = $7F ; 4 refs; reads=2 writes=2; used at $D3DA, D449, D44D
Zp80 = $80 ; 43 refs; reads=24 writes=19; used at $83F2, A704, A996, AA2B, +39 more
Zp82 = $82 ; 2 refs; reads=1 writes=1; used at $FFFA
Zp85 = $85 ; 4 refs; reads=3 writes=1; used at $85BE, BE0A, C88C, D487
Zp86 = $86 ; 5 refs; reads=1 writes=4; used at $83F4, 8857, 8B7E, 8BD2, +1 more
Zp87 = $87 ; 47 refs; reads=34 writes=13; used at $83FE, A69F, A990, AA97, +42 more
Zp8C = $8C ; 8 refs; reads=7 writes=1; used at $8591, C890, C8DB, C922, +4 more
Zp8D = $8D ; 2 refs; reads=0 writes=2; used at $8400, 8595
Zp8E = $8E ; 32 refs; reads=29 writes=3; used at $840A, A625, ACC3, AD53, +28 more
Zp93 = $93 ; 11 refs; reads=11 writes=0; used at $A670, A94D, A955, C8E5, +7 more
Zp94 = $94 ; 21 refs; reads=20 writes=1; used at $840E, 8B9F, A627, A673, +17 more
Zp95 = $95 ; 2 refs; reads=2 writes=0; used at $AC57, BA94
Zp99 = $99 ; 2 refs; reads=2 writes=0; used at $B998, CB5B
Zp9C = $9C ; 1 refs; reads=1 writes=0; used at $B91C
Zp9F = $9F ; 25 refs; reads=20 writes=5; used at $83F6, AA2F, ACBA, AD4D, +20 more
ZpA4 = $A4 ; 7 refs; reads=7 writes=0; used at $A66B, A942, C8A1, D492, +3 more
ZpA5 = $A5 ; 1 refs; reads=0 writes=1; used at $83F8
ZpA6 = $A6 ; 2 refs; reads=2 writes=0; used at $AC52, BA90
ZpAA = $AA ; 2 refs; reads=2 writes=0; used at $B978, CB50
ZpAD = $AD ; 1 refs; reads=1 writes=0; used at $B8FF
ZpB0 = $B0 ; 40 refs; reads=24 writes=16; used at $8404, 8C85, AAA5, AC0F, +36 more
ZpB5 = $B5 ; 5 refs; reads=3 writes=2; used at $8587, D1F7, D452, D4A2, +1 more
ZpB6 = $B6 ; 8 refs; reads=3 writes=5; used at $8406, 8589, 8BCA, 8BE8, +4 more
ZpB7 = $B7 ; 55 refs; reads=16 writes=39; used at $8C7A, A623, A642, AD83, +49 more
ZpBC = $BC ; 30 refs; reads=5 writes=25; used at $CFE1, CFE9, CFFB, D0B0, +24 more
ZpBD = $BD ; 6 refs; reads=2 writes=4; used at $8BAF, 8BC1, 8BC5, C4FF, +1 more
ZpBE = $BE ; 14 refs; reads=13 writes=1; used at $852E, 86FD, AAD8, AB05, +10 more
ZpC0 = $C0 ; 60 refs; reads=41 writes=19; used at $83FA, A9A4, AA9B, ACAE, +55 more
ZpC5 = $C5 ; 8 refs; reads=6 writes=2; used at $85B8, D555, D55F, D591, +4 more
ZpC6 = $C6 ; 3 refs; reads=2 writes=1; used at $8B22, 8B8F, 8BEC
ZpC7 = $C7 ; 27 refs; reads=14 writes=13; used at $B10C, B11F, B121, B145, +18 more
ZpCE = $CE ; 39 refs; reads=23 writes=16; used at $8B69, 8C81, AAB8, ABDB, +34 more
ZpD3 = $D3 ; 10 refs; reads=6 writes=4; used at $85CE, B24B, D061, D065, +6 more
ZpD4 = $D4 ; 12 refs; reads=9 writes=3; used at $85E2, A81D, A81F, ABAA, +8 more
ZpD5 = $D5 ; 1 refs; reads=0 writes=1; used at $85FD
ZpD9 = $D9 ; 3 refs; reads=1 writes=2; used at $B7BA, B7BC, B7F2
ZpDC = $DC ; 1 refs; reads=0 writes=1; used at $B8C1
ZpDF = $DF ; 61 refs; reads=35 writes=26; used at $8C7D, AAB0, AABC, AB99, +46 more
ZpE4 = $E4 ; 13 refs; reads=10 writes=3; used at $85C9, B24D, D059, D42A, +9 more
ZpE5 = $E5 ; 18 refs; reads=13 writes=5; used at $85DD, A81A, A823, AB97, +10 more
ZpE6 = $E6 ; 1 refs; reads=0 writes=1; used at $8602
ZpEA = $EA ; 5 refs; reads=2 writes=3; used at $B7B7, B7C0, B7F4
ZpED = $ED ; 1 refs; reads=0 writes=1; used at $B8C3
ZpF0 = $F0 ; 8 refs; reads=4 writes=4; used at $FB6A, FBA3, FBAA, FBAC, +2 more
ZpF1 = $F1 ; 3 refs; reads=1 writes=2; used at $F8E2, F8F4, F902
ZpF2 = $F2 ; 6 refs; reads=3 writes=3; used at $F92A, F948, F95F, F96D, +2 more
ZpF3 = $F3 ; 2 refs; reads=1 writes=1; used at $FB4B, FBBC
ZpF4 = $F4 ; 5 refs; reads=3 writes=2; used at $FB8B, FC21, FC2A, FC2C
ZpF5 = $F5 ; 10 refs; reads=8 writes=2; used at $FB40, FB49, FB56, FBB6, +6 more
ZpF6 = $F6 ; 8 refs; reads=4 writes=4; used at $F889, F89C, F8A8, F8B3, +3 more
ZpF7 = $F7 ; 2 refs; reads=1 writes=1; used at $FB77, FCE2
ZpF8 = $F8 ; 8 refs; reads=5 writes=3; used at $FB86, FC68, FC71, FC73, +2 more
ZpF9 = $F9 ; 7 refs; reads=6 writes=1; used at $FB7C, FBAE, FBDA, FC2E, +3 more
ZpFA = $FA ; 1 refs; reads=0 writes=1; used at $FB81
ZpFB = $FB ; 8 refs; reads=1 writes=7; used at $86F5, 875C, 8899, 890C, +4 more
ZpFC = $FC ; 23 refs; reads=5 writes=18; used at $8769, 8B9A, 8BBB, BED9, +15 more
ZpFD = $FD ; 10 refs; reads=2 writes=8; used at $8864, 899C, A5B5, A849, +6 more
ZpFE = $FE ; 11 refs; reads=3 writes=8; used at $8B6D, 8C04, A713, C4FD, +5 more
ZpFF = $FF ; 22 refs; reads=4 writes=18; used at $B041, B06F, B17F, B1B6, +15 more
; Pass 3 semantic aliases (proven from the disassembly):
PpuCtrlShadow = Zp10
VramWritePtrLo = Zp00
VramWritePtrHi = Zp01
DispatchPtrLo = Zp02
DispatchPtrHi = Zp03
PlayerIndex = Zp69
PlayerSide = ZpC5
SpriteIndex = Zp5F
GameState = ZpC0
LevelIndex = Zp50
PlayerX = ZpB0
PlayerY = ZpB7
EnemyIndex = Zp87
EnemyHealth = ZpDF
PpuMaskShadow = Zp86
GameMode = Zp9F
LifeCount = ZpA5
SpriteScore = ZpB6
SpriteTimer = Zp80
SpriteTimer2 = Zp8D