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
188 lines
15 KiB
PHP
188 lines
15 KiB
PHP
; Ms Pac-Man (Namco) (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 ; 39 refs; reads=23 writes=16; used at $C02E, C030, C04A, C04F, +32 more
|
|
Zp01 = $01 ; 99 refs; reads=50 writes=49; used at $C02A, C035, C1E8, C295, +83 more
|
|
Zp02 = $02 ; 87 refs; reads=51 writes=36; used at $C1D7, C1DA, C1E2, C1E5, +74 more
|
|
Zp03 = $03 ; 35 refs; reads=15 writes=20; used at $C29A, C35E, C371, C3B4, +22 more
|
|
Zp04 = $04 ; 35 refs; reads=17 writes=18; used at $C224, C24A, C389, C4A5, +27 more
|
|
Zp05 = $05 ; 45 refs; reads=26 writes=19; used at $C2BE, C329, C344, D6F2, +30 more
|
|
Zp06 = $06 ; 27 refs; reads=14 writes=13; used at $C32B, C33C, C346, C34D, +18 more
|
|
Zp07 = $07 ; 25 refs; reads=12 writes=13; used at $C226, C259, C25B, D43D, +19 more
|
|
Zp08 = $08 ; 49 refs; reads=22 writes=27; used at $C2B4, C2C2, C2C9, C2E9, +44 more
|
|
Zp09 = $09 ; 26 refs; reads=2 writes=24; used at $C2B9, C2ED, C2FD, C308, +21 more
|
|
Zp0A = $0A ; 22 refs; reads=16 writes=6; used at $C29E, C2B2, C2B7, C2E7, +18 more
|
|
Zp0B = $0B ; 14 refs; reads=5 writes=9; used at $C2A2, C2B0, C2EB, C2FF, +6 more
|
|
Zp0C = $0C ; 3 refs; reads=2 writes=1; used at $D8E5, D8F1, D9DC
|
|
Zp0D = $0D ; 2 refs; reads=1 writes=1; used at $D8EB, D9DE
|
|
Zp0E = $0E ; 3 refs; reads=1 writes=2; used at $C2EF, C30B, D9E0
|
|
Zp0F = $0F ; 6 refs; reads=2 writes=4; used at $C22A, C257, C261, C2C6, +2 more
|
|
Zp10 = $10 ; 3 refs; reads=2 writes=1; used at $C4B2, C4BE, C4CC
|
|
Zp11 = $11 ; 2 refs; reads=1 writes=1; used at $C4B7, C4D5
|
|
Zp12 = $12 ; 2 refs; reads=1 writes=1; used at $C4B9, C4CA
|
|
Zp13 = $13 ; 4 refs; reads=2 writes=2; used at $C228, C246, C37D, C382
|
|
Zp14 = $14 ; 4 refs; reads=3 writes=1; used at $C248, C251, C270, C396
|
|
Zp16 = $16 ; 7 refs; reads=3 writes=4; used at $C2C4, C39B, E25D, E26E, +2 more
|
|
Zp17 = $17 ; 12 refs; reads=6 writes=6; used at $C22E, C263, C384, E25F, +6 more
|
|
Zp18 = $18 ; 124 refs; reads=75 writes=49; used at $E8B5, E8C3, E8C9, E981, +88 more
|
|
Zp19 = $19 ; 87 refs; reads=39 writes=48; used at $E8BA, E8C7, E986, E99C, +51 more
|
|
Zp1A = $1A ; 33 refs; reads=19 writes=14; used at $EA51, EAEB, EAF1, EAFD, +28 more
|
|
Zp1B = $1B ; 30 refs; reads=14 writes=16; used at $EC4E, EC5C, EC65, ECAA, +15 more
|
|
Zp1C = $1C ; 27 refs; reads=15 writes=12; used at $E84B, E853, E855, E85F, +23 more
|
|
Zp1D = $1D ; 16 refs; reads=5 writes=11; used at $E84F, E859, E85B, E8DC, +12 more
|
|
Zp1E = $1E ; 8 refs; reads=3 writes=5; used at $F09E, F0A0, F0AE, F18C, +3 more
|
|
Zp1F = $1F ; 6 refs; reads=2 writes=4; used at $F091, F093, F09C, F33A, +1 more
|
|
Zp20 = $20 ; 4 refs; reads=2 writes=2; used at $C147, C1BB, C88A, C8C1
|
|
Zp21 = $21 ; 2 refs; reads=1 writes=1; used at $C149, C183
|
|
Zp22 = $22 ; 4 refs; reads=2 writes=2; used at $C14B, C1BD, C88C, C8C3
|
|
Zp23 = $23 ; 2 refs; reads=1 writes=1; used at $C14D, C185
|
|
Zp24 = $24 ; 15 refs; reads=8 writes=7; used at $C14F, C1B4, C3C8, C50F, +11 more
|
|
Zp25 = $25 ; 2 refs; reads=1 writes=1; used at $C151, C190
|
|
Zp26 = $26 ; 6 refs; reads=3 writes=3; used at $C084, C136, DE49, DE4D, +2 more
|
|
Zp27 = $27 ; 12 refs; reads=6 writes=6; used at $C097, C0D2, C10F, C115, +6 more
|
|
Zp28 = $28 ; 23 refs; reads=22 writes=1; used at $C0A6, C1FC, C56D, C581, +19 more
|
|
Zp2A = $2A ; 13 refs; reads=12 writes=1; used at $C0A0, C1F8, C1FE, C567, +9 more
|
|
Zp2B = $2B ; 2 refs; reads=2 writes=0; used at $D354, D35B
|
|
Zp2C = $2C ; 4 refs; reads=2 writes=2; used at $C093, C0D0, C159
|
|
Zp2D = $2D ; 6 refs; reads=3 writes=3; used at $C138, C13C, C1C1, E712, +1 more
|
|
Zp2E = $2E ; 37 refs; reads=19 writes=18; used at $C125, C19B, C3C5, C687, +28 more
|
|
Zp2F = $2F ; 1 refs; reads=0 writes=1; used at $C1A0
|
|
Zp30 = $30 ; 7 refs; reads=2 writes=5; used at $C4DD, C573, CC8F, CE70, +3 more
|
|
Zp31 = $31 ; 17 refs; reads=7 writes=10; used at $C4EE, C577, C766, C7AA, +11 more
|
|
Zp32 = $32 ; 17 refs; reads=15 writes=2; used at $C4DB, C6F1, C9D7, CC16, +12 more
|
|
Zp33 = $33 ; 13 refs; reads=8 writes=5; used at $C6E8, C733, C749, C75D, +9 more
|
|
Zp34 = $34 ; 9 refs; reads=3 writes=6; used at $C6EC, C76E, C7AD, C7C8, +5 more
|
|
Zp36 = $36 ; 9 refs; reads=6 writes=3; used at $C515, C519, C9CA, C9CE, +5 more
|
|
Zp37 = $37 ; 1 refs; reads=0 writes=1; used at $C169
|
|
Zp38 = $38 ; 1 refs; reads=1 writes=0; used at $C165
|
|
Zp39 = $39 ; 10 refs; reads=3 writes=7; used at $C129, C454, C45A, C48C, +6 more
|
|
Zp3A = $3A ; 7 refs; reads=1 writes=6; used at $C0BA, C0C0, C9BC, CB4A, +3 more
|
|
Zp3B = $3B ; 2 refs; reads=1 writes=1; used at $C24C, C255
|
|
Zp3C = $3C ; 32 refs; reads=29 writes=3; used at $C3AC, C51D, C5EA, CB4F, +28 more
|
|
Zp3D = $3D ; 7 refs; reads=4 writes=3; used at $CC85, CE57, CE5B, DBE3, +2 more
|
|
Zp3E = $3E ; 10 refs; reads=7 writes=3; used at $C506, C625, C654, CD49, +6 more
|
|
Zp3F = $3F ; 9 refs; reads=6 writes=3; used at $CB3D, CB42, CCD9, CE3E, +3 more
|
|
Zp40 = $40 ; 6 refs; reads=4 writes=2; used at $CCC3, CCCF, CCD7, CCDF, +2 more
|
|
Zp41 = $41 ; 1 refs; reads=1 writes=0; used at $CCE3
|
|
Zp42 = $42 ; 1 refs; reads=1 writes=0; used at $CCE7
|
|
Zp43 = $43 ; 2 refs; reads=1 writes=1; used at $CCB9, CCBB
|
|
Zp44 = $44 ; 2 refs; reads=1 writes=1; used at $CCAC, CCAE
|
|
Zp45 = $45 ; 8 refs; reads=4 writes=4; used at $CBA9, CBAE, CC9F, E706, +1 more
|
|
Zp46 = $46 ; 2 refs; reads=1 writes=1; used at $DBE5, E355
|
|
Zp47 = $47 ; 5 refs; reads=3 writes=2; used at $CD43, CD47, CE38, CE3C, +1 more
|
|
Zp48 = $48 ; 5 refs; reads=2 writes=3; used at $E265, E306, E30A, E357, +1 more
|
|
Zp49 = $49 ; 4 refs; reads=1 writes=3; used at $E267, E30F, E35F, E36A
|
|
Zp4A = $4A ; 1 refs; reads=0 writes=1; used at $E234
|
|
Zp4B = $4B ; 3 refs; reads=2 writes=1; used at $C5C4, E046, E052
|
|
Zp4D = $4D ; 2 refs; reads=1 writes=1; used at $CE55, CE59
|
|
Zp4E = $4E ; 2 refs; reads=1 writes=1; used at $C508, E702
|
|
Zp4F = $4F ; 5 refs; reads=3 writes=2; used at $C5E8, CE4B, CE92, E700
|
|
Zp50 = $50 ; 1 refs; reads=1 writes=0; used at $E70C
|
|
Zp54 = $54 ; 2 refs; reads=1 writes=1; used at $E708
|
|
Zp55 = $55 ; 1 refs; reads=1 writes=0; used at $E70E
|
|
Zp5B = $5B ; 1 refs; reads=0 writes=1; used at $C5C6
|
|
Zp5E = $5E ; 4 refs; reads=2 writes=2; used at $D44E, D45D, D466, DFAA
|
|
Zp5F = $5F ; 7 refs; reads=5 writes=2; used at $D38D, D39D, D455, D468, +3 more
|
|
Zp60 = $60 ; 13 refs; reads=11 writes=2; used at $D41A, D434, D486, D527, +9 more
|
|
Zp62 = $62 ; 11 refs; reads=11 writes=0; used at $D436, D47F, D52C, DA89, +7 more
|
|
Zp64 = $64 ; 5 refs; reads=5 writes=0; used at $D4D3, DACE, DC9F, DCBC, +1 more
|
|
Zp66 = $66 ; 5 refs; reads=5 writes=0; used at $D4CC, DAD8, DCA6, DCB5, +1 more
|
|
Zp72 = $72 ; 1 refs; reads=1 writes=0; used at $DA8C
|
|
Zp78 = $78 ; 6 refs; reads=3 writes=3; used at $D364, D368, D37B, D39B, +2 more
|
|
Zp79 = $79 ; 3 refs; reads=1 writes=2; used at $D415, D543, DF91
|
|
Zp7A = $7A ; 1 refs; reads=0 writes=1; used at $D634
|
|
Zp7B = $7B ; 8 refs; reads=3 writes=5; used at $CB7C, D60C, D610, D771, +4 more
|
|
Zp7D = $7D ; 2 refs; reads=0 writes=2; used at $CB7E, DB6F
|
|
Zp7F = $7F ; 2 refs; reads=0 writes=2; used at $CB80, DB73
|
|
Zp81 = $81 ; 2 refs; reads=0 writes=2; used at $CB82, DB77
|
|
Zp82 = $82 ; 3 refs; reads=2 writes=1; used at $D646, DCEC, DD82
|
|
Zp84 = $84 ; 4 refs; reads=3 writes=1; used at $DE3B, DECB, E246, E4EF
|
|
Zp85 = $85 ; 2 refs; reads=1 writes=1; used at $D5F2, DD60
|
|
Zp86 = $86 ; 6 refs; reads=4 writes=2; used at $C230, C279, CDBA, CDCD, +2 more
|
|
Zp87 = $87 ; 1 refs; reads=0 writes=1; used at $DFA2
|
|
Zp88 = $88 ; 3 refs; reads=2 writes=1; used at $CD7A, CED3, DE66
|
|
Zp89 = $89 ; 4 refs; reads=3 writes=1; used at $C5F8, D40F, DD0A, DF8B
|
|
Zp8A = $8A ; 4 refs; reads=2 writes=2; used at $D35D, D429, D42D, D43F
|
|
Zp8B = $8B ; 10 refs; reads=1 writes=9; used at $C0B6, C0C2, CA1E, CBA7, +6 more
|
|
Zp8C = $8C ; 5 refs; reads=3 writes=2; used at $C5CA, C9DA, CA16, CA1A, +1 more
|
|
Zp8D = $8D ; 7 refs; reads=6 writes=1; used at $C091, C09C, C524, C563, +3 more
|
|
Zp8E = $8E ; 5 refs; reads=3 writes=2; used at $C51F, C592, C5A5, C5AD, +1 more
|
|
Zp8F = $8F ; 2 refs; reads=1 writes=1; used at $C0B2, C0C9
|
|
Zp90 = $90 ; 1 refs; reads=0 writes=1; used at $C078
|
|
Zp9F = $9F ; 2 refs; reads=1 writes=1; used at $C4E5
|
|
ZpA2 = $A2 ; 2 refs; reads=1 writes=1; used at $CBB8, CBC7
|
|
ZpA3 = $A3 ; 3 refs; reads=1 writes=2; used at $E244, E322, E32F
|
|
ZpA4 = $A4 ; 4 refs; reads=2 writes=2; used at $CB39, CB46, CCED
|
|
ZpA5 = $A5 ; 8 refs; reads=5 writes=3; used at $CB32, CC7F, CC83, CC9B, +4 more
|
|
ZpA7 = $A7 ; 1 refs; reads=1 writes=0; used at $DA9E
|
|
ZpA8 = $A8 ; 1 refs; reads=1 writes=0; used at $DAA2
|
|
ZpA9 = $A9 ; 4 refs; reads=1 writes=3; used at $DBFA, DC01, E062
|
|
ZpAA = $AA ; 3 refs; reads=1 writes=2; used at $DBF2, DBF8
|
|
ZpAB = $AB ; 6 refs; reads=3 writes=3; used at $CBA1, DB55, DB61, DB82, +1 more
|
|
ZpAC = $AC ; 6 refs; reads=3 writes=3; used at $CB9C, DB59, DB5F, DB88, +1 more
|
|
ZpAD = $AD ; 4 refs; reads=2 writes=2; used at $CB94, DD66, DD68
|
|
ZpAE = $AE ; 2 refs; reads=1 writes=1; used at $DC0C, DFEB
|
|
ZpAF = $AF ; 1 refs; reads=0 writes=1; used at $DFEF
|
|
ZpB0 = $B0 ; 2 refs; reads=1 writes=1; used at $DBD8, E01E
|
|
ZpB8 = $B8 ; 2 refs; reads=1 writes=1; used at $DBDE, E032
|
|
ZpBC = $BC ; 3 refs; reads=2 writes=1; used at $DBC8, DC16, DC4E
|
|
ZpBD = $BD ; 4 refs; reads=2 writes=2; used at $DBDC, DBE9, E02D
|
|
ZpBE = $BE ; 5 refs; reads=2 writes=3; used at $DBA6, DBB8, DBDA, E017
|
|
ZpBF = $BF ; 3 refs; reads=2 writes=1; used at $DC06, DC12
|
|
ZpC0 = $C0 ; 12 refs; reads=8 writes=4; used at $D5C2, D5CA, D5FD, D66D, +8 more
|
|
ZpC1 = $C1 ; 18 refs; reads=11 writes=7; used at $D605, D628, D709, D71F, +14 more
|
|
ZpC2 = $C2 ; 2 refs; reads=1 writes=1; used at $DC26, DC35
|
|
ZpC5 = $C5 ; 1 refs; reads=1 writes=0; used at $C4F3
|
|
ZpC6 = $C6 ; 1 refs; reads=1 writes=0; used at $DBEE
|
|
ZpCA = $CA ; 4 refs; reads=3 writes=1; used at $D8B5, DBC4, DBD0, DBD4
|
|
ZpCB = $CB ; 6 refs; reads=1 writes=5; used at $D8C9, D8FA, DAA0, DAAB, +2 more
|
|
ZpCC = $CC ; 6 refs; reads=1 writes=5; used at $D8CE, D914, DAA4, DAAF, +2 more
|
|
ZpCD = $CD ; 5 refs; reads=3 writes=2; used at $C4EA, C4EC, D7DD
|
|
ZpCE = $CE ; 32 refs; reads=17 writes=15; used at $C53D, C53F, C627, C647, +21 more
|
|
ZpCF = $CF ; 16 refs; reads=11 writes=5; used at $CB98, CEA8, D36D, D624, +12 more
|
|
ZpD0 = $D0 ; 1 refs; reads=0 writes=1; used at $D375
|
|
ZpD1 = $D1 ; 1 refs; reads=0 writes=1; used at $D379
|
|
ZpD2 = $D2 ; 5 refs; reads=0 writes=5; used at $D768, D779, D788, D795, +1 more
|
|
ZpD3 = $D3 ; 5 refs; reads=0 writes=5; used at $D76C, D77D, D78C, D799, +1 more
|
|
ZpDA = $DA ; 1 refs; reads=0 writes=1; used at $D759
|
|
ZpDB = $DB ; 1 refs; reads=0 writes=1; used at $D75D
|
|
ZpDC = $DC ; 2 refs; reads=1 writes=1; used at $D373, E084
|
|
ZpDD = $DD ; 1 refs; reads=1 writes=0; used at $D377
|
|
ZpE0 = $E0 ; 2 refs; reads=1 writes=1; used at $D793, DC1D
|
|
ZpE1 = $E1 ; 2 refs; reads=1 writes=1; used at $D797, DC21
|
|
ZpE2 = $E2 ; 1 refs; reads=1 writes=0; used at $DC1B
|
|
ZpE3 = $E3 ; 1 refs; reads=1 writes=0; used at $DC1F
|
|
ZpE6 = $E6 ; 1 refs; reads=1 writes=0; used at $D79E
|
|
ZpE7 = $E7 ; 1 refs; reads=1 writes=0; used at $D7A2
|
|
ZpE8 = $E8 ; 3 refs; reads=2 writes=1; used at $D786, F017
|
|
ZpE9 = $E9 ; 1 refs; reads=1 writes=0; used at $D78A
|
|
ZpEA = $EA ; 1 refs; reads=1 writes=0; used at $D777
|
|
ZpEB = $EB ; 1 refs; reads=1 writes=0; used at $D77B
|
|
ZpEC = $EC ; 2 refs; reads=1 writes=1; used at $D1A1, D1B3
|
|
ZpEE = $EE ; 6 refs; reads=4 writes=2; used at $CECF, D1A3, DBBC, DBBE, +1 more
|
|
ZpEF = $EF ; 6 refs; reads=3 writes=3; used at $CED1, D1AA, DBAC, DBAE, +1 more
|
|
ZpFF = $FF ; 1 refs; reads=0 writes=1; used at $DD34
|
|
|
|
; Pass 3 semantic aliases (proven from the disassembly):
|
|
PpuCtrlShadow = Zp24
|
|
PpuMaskShadow = Zp26
|
|
VramWritePtrLo = Zp00
|
|
VramWritePtrHi = Zp01
|
|
VramReadPtrLo = Zp08
|
|
VramReadPtrHi = Zp09
|
|
DispatchPtrLo = Zp0A
|
|
DispatchPtrHi = Zp0B
|
|
GameMode = Zp2E
|
|
LevelIndex = Zp0F
|
|
PlayerX = Zp18
|
|
PlayerY = Zp19
|
|
SpriteX = Zp05
|
|
SpriteY = Zp16
|
|
PlayerSpriteIndex = Zp01
|
|
ControllerState = Zp02
|
|
SpriteTile = Zp8B
|
|
SpriteIndex = Zp88
|