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
126 lines
9.7 KiB
PHP
126 lines
9.7 KiB
PHP
; Magmax (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 ; 47 refs; reads=39 writes=8; used at $BC95, BEC6, BFFD, C131, +43 more
|
|
Zp01 = $01 ; 5 refs; reads=2 writes=3; used at $BECE, D3E8, D3F9, D9CE
|
|
Zp02 = $02 ; 5 refs; reads=2 writes=3; used at $BEFF, D3EC, D51C, D9D0
|
|
Zp03 = $03 ; 9 refs; reads=5 writes=4; used at $D05E, D06A, D076, D09C, +3 more
|
|
Zp04 = $04 ; 9 refs; reads=5 writes=4; used at $D062, D064, D072, D0A1, +3 more
|
|
Zp05 = $05 ; 5 refs; reads=2 writes=3; used at $D388, D3CA, D3D5, D9DD
|
|
Zp06 = $06 ; 4 refs; reads=1 writes=3; used at $D38C, D3DA, D9E2
|
|
Zp07 = $07 ; 5 refs; reads=2 writes=3; used at $D38F, D3DF, D510, D9E7
|
|
Zp08 = $08 ; 4 refs; reads=1 writes=3; used at $D393, D3E4, D9EC
|
|
Zp09 = $09 ; 5 refs; reads=2 writes=3; used at $D3BF, D3C3, D431, D9D6
|
|
Zp0A = $0A ; 5 refs; reads=2 writes=3; used at $D507, D50B, D540, D9D8
|
|
Zp0B = $0B ; 10 refs; reads=7 writes=3; used at $BECA, D3F7, D41F, D9D2, +6 more
|
|
Zp0C = $0C ; 4 refs; reads=1 writes=3; used at $BEFB, D51A, D52E, D9D4
|
|
Zp0D = $0D ; 12 refs; reads=9 writes=3; used at $C375, CAE8, CB1F, CB3A, +8 more
|
|
Zp0E = $0E ; 8 refs; reads=5 writes=3; used at $C5A4, D022, D028, D048, +3 more
|
|
Zp0F = $0F ; 6 refs; reads=3 writes=3; used at $C31F, D026, D042, D055, +1 more
|
|
Zp10 = $10 ; 4 refs; reads=1 writes=3; used at $E6E8, E6F1, E6FA, E730
|
|
Zp20 = $20 ; 4 refs; reads=1 writes=3; used at $E703, E715, E71E, E727
|
|
Zp26 = $26 ; 2 refs; reads=1 writes=1; used at $E4D2
|
|
Zp30 = $30 ; 2 refs; reads=2 writes=0; used at $E67B, E6E6
|
|
Zp40 = $40 ; 1 refs; reads=1 writes=0; used at $E713
|
|
Zp50 = $50 ; 6 refs; reads=5 writes=1; used at $C5CA, CF9A, CFAA, CFAC, +1 more
|
|
Zp51 = $51 ; 5 refs; reads=4 writes=1; used at $CFA3, CFB6, CFB8, CFBC
|
|
Zp52 = $52 ; 2 refs; reads=1 writes=1; used at $CFA8, CFB2
|
|
Zp53 = $53 ; 2 refs; reads=1 writes=1; used at $CFB4, CFBE
|
|
Zp54 = $54 ; 8 refs; reads=7 writes=1; used at $C5B7, C5CE, CA6F, CB85, +4 more
|
|
Zp55 = $55 ; 1 refs; reads=0 writes=1; used at $CFBA
|
|
Zp56 = $56 ; 6 refs; reads=4 writes=2; used at $C5A9, C5CC, C5D2, C5F2, +2 more
|
|
Zp57 = $57 ; 3 refs; reads=1 writes=2; used at $C5A2, C5D0, C655
|
|
Zp58 = $58 ; 7 refs; reads=4 writes=3; used at $CBC5, D8E4, E66F, E671, +1 more
|
|
Zp59 = $59 ; 1 refs; reads=0 writes=1; used at $CBC7
|
|
Zp5A = $5A ; 4 refs; reads=2 writes=2; used at $CBCB, D8E0, D8E8, D8F0
|
|
Zp5B = $5B ; 1 refs; reads=0 writes=1; used at $CBCD
|
|
Zp5C = $5C ; 1 refs; reads=0 writes=1; used at $CBD1
|
|
Zp5D = $5D ; 1 refs; reads=0 writes=1; used at $CBD3
|
|
Zp5E = $5E ; 197 refs; reads=105 writes=92; used at $BC54, BC56, BC5E, BC60, +181 more
|
|
Zp5F = $5F ; 54 refs; reads=18 writes=36; used at $BC5A, BC64, BC68, BEDA, +40 more
|
|
Zp60 = $60 ; 72 refs; reads=40 writes=32; used at $BF7D, BF88, C310, C31C, +65 more
|
|
Zp61 = $61 ; 37 refs; reads=18 writes=19; used at $BF82, BF8C, BF92, BF96, +31 more
|
|
Zp62 = $62 ; 58 refs; reads=34 writes=24; used at $BF72, BF7B, BF80, BFB2, +50 more
|
|
Zp63 = $63 ; 16 refs; reads=6 writes=10; used at $BF77, C30A, C3B0, C3C0, +10 more
|
|
Zp64 = $64 ; 44 refs; reads=18 writes=26; used at $BF84, BF86, BFA3, C064, +37 more
|
|
Zp65 = $65 ; 41 refs; reads=17 writes=24; used at $BF94, BFA5, BFA7, BFAB, +34 more
|
|
Zp66 = $66 ; 18 refs; reads=9 writes=9; used at $C03E, C055, C3DD, C4F8, +11 more
|
|
Zp67 = $67 ; 17 refs; reads=8 writes=9; used at $C03A, C05D, C155, C407, +10 more
|
|
Zp68 = $68 ; 22 refs; reads=11 writes=11; used at $BF67, BF9E, C06E, C0C8, +18 more
|
|
Zp69 = $69 ; 11 refs; reads=6 writes=5; used at $C3AA, C3F8, C3FA, C410, +7 more
|
|
Zp6A = $6A ; 16 refs; reads=10 writes=6; used at $BCAC, BCB8, BCBC, BD61, +12 more
|
|
Zp6B = $6B ; 5 refs; reads=4 writes=1; used at $BCB3, BD40, C8A7, CE58, +1 more
|
|
Zp6C = $6C ; 13 refs; reads=10 writes=3; used at $BD45, C3B5, C486, CD8E, +8 more
|
|
Zp6D = $6D ; 1 refs; reads=1 writes=0; used at $BD4B
|
|
Zp6E = $6E ; 10 refs; reads=5 writes=5; used at $BD50, C004, C01E, C029, +6 more
|
|
Zp6F = $6F ; 25 refs; reads=14 writes=11; used at $BD56, E4F5, E545, E54B, +12 more
|
|
Zp70 = $70 ; 8 refs; reads=3 writes=5; used at $BD52, C09D, C0EE, CD92, +4 more
|
|
Zp71 = $71 ; 1 refs; reads=1 writes=0; used at $BD47
|
|
Zp72 = $72 ; 13 refs; reads=4 writes=9; used at $BF6B, C04F, C094, C0E5, +9 more
|
|
Zp73 = $73 ; 12 refs; reads=3 writes=9; used at $BFCC, C057, C0B4, C107, +8 more
|
|
Zp74 = $74 ; 11 refs; reads=3 writes=8; used at $BFD3, BFE0, C048, C0B9, +7 more
|
|
Zp75 = $75 ; 11 refs; reads=3 writes=8; used at $BFF8, C025, C037, C05F, +7 more
|
|
Zp79 = $79 ; 18 refs; reads=17 writes=1; used at $BD5B, C592, C59E, C9BF, +13 more
|
|
Zp7A = $7A ; 3 refs; reads=1 writes=2; used at $BD5F, CEAF, CFFB
|
|
Zp7B = $7B ; 8 refs; reads=5 writes=3; used at $D01C, D0BC, D105, D128, +4 more
|
|
Zp7C = $7C ; 14 refs; reads=10 writes=4; used at $CEFD, CF13, D018, D0B8, +9 more
|
|
Zp7D = $7D ; 3 refs; reads=1 writes=2; used at $CEF4, CF24, D385
|
|
Zp7F = $7F ; 7 refs; reads=3 writes=4; used at $BEDC, BEE3, BEE5, BEEA, +2 more
|
|
Zp80 = $80 ; 7 refs; reads=3 writes=4; used at $BF0D, BF14, BF16, BF1B, +2 more
|
|
Zp81 = $81 ; 5 refs; reads=2 writes=3; used at $D476, D505, DB84, DBB5, +1 more
|
|
Zp82 = $82 ; 3 refs; reads=1 writes=2; used at $D583, D665, E4FD
|
|
Zp85 = $85 ; 4 refs; reads=2 writes=2; used at $BD87, C5C4, CA77, FB1E
|
|
Zp86 = $86 ; 11 refs; reads=8 writes=3; used at $BD70, C598, CB46, CB5E, +7 more
|
|
Zp87 = $87 ; 4 refs; reads=3 writes=1; used at $CB8B, CB91, CB99, E66B
|
|
Zp88 = $88 ; 18 refs; reads=15 writes=3; used at $C5C7, CA0B, CA20, CD94, +14 more
|
|
Zp89 = $89 ; 47 refs; reads=35 writes=12; used at $C03C, C15D, C61C, C620, +34 more
|
|
Zp8A = $8A ; 55 refs; reads=41 writes=14; used at $C13E, C176, C5AB, C5DD, +44 more
|
|
Zp8B = $8B ; 21 refs; reads=13 writes=8; used at $C042, C5E3, C5F8, C608, +17 more
|
|
Zp8D = $8D ; 4 refs; reads=1 writes=3; used at $CB58, CB95, CBFA
|
|
Zp8E = $8E ; 4 refs; reads=2 writes=2; used at $CB67, CB7C, CBF8
|
|
Zp8F = $8F ; 59 refs; reads=30 writes=29; used at $CBE7, D4BD, D59D, E16E, +39 more
|
|
Zp90 = $90 ; 27 refs; reads=5 writes=22; used at $BDA4, C731, CBE3, D4B9, +23 more
|
|
Zp91 = $91 ; 4 refs; reads=2 writes=2; used at $C64E, C652, C65E
|
|
Zp92 = $92 ; 4 refs; reads=2 writes=2; used at $EC9C, ECA2, ECA4
|
|
Zp94 = $94 ; 12 refs; reads=1 writes=11; used at $C672, DA38, DB74, DBE3, +8 more
|
|
Zp95 = $95 ; 8 refs; reads=3 writes=5; used at $E1C8, E40E, E890, E921, +4 more
|
|
Zp96 = $96 ; 17 refs; reads=12 writes=5; used at $FAA8, FAE6, FAEA, FAF1, +12 more
|
|
Zp97 = $97 ; 9 refs; reads=4 writes=5; used at $FAAC, FAF6, FB12, FB1A, +4 more
|
|
Zp98 = $98 ; 9 refs; reads=5 writes=4; used at $C373, C37B, C383, C41B, +5 more
|
|
Zp99 = $99 ; 3 refs; reads=0 writes=3; used at $BDAB, ECC5, F7F5
|
|
Zp9A = $9A ; 3 refs; reads=0 writes=3; used at $BDB0, ECCA, F7FA
|
|
Zp9B = $9B ; 4 refs; reads=2 writes=2; used at $CBD7, E6CF, E6D1
|
|
Zp9C = $9C ; 4 refs; reads=1 writes=3; used at $CB2E, CB42, CE91, D3BA
|
|
Zp9D = $9D ; 2 refs; reads=0 writes=2; used at $CB10, DDAE
|
|
Zp9F = $9F ; 1 refs; reads=0 writes=1; used at $E4DF
|
|
ZpA3 = $A3 ; 1 refs; reads=0 writes=1; used at $CAF1
|
|
ZpA5 = $A5 ; 1 refs; reads=1 writes=0; used at $CB66
|
|
ZpA7 = $A7 ; 3 refs; reads=0 writes=3; used at $CAF6, CB7A, CB83
|
|
ZpAC = $AC ; 3 refs; reads=0 writes=3; used at $CB44, D3A0, D3BC
|
|
ZpBC = $BC ; 6 refs; reads=2 writes=4; used at $CF04, CF18, D2E0, D2E6, +2 more
|
|
ZpBD = $BD ; 1 refs; reads=1 writes=0; used at $BDF7
|
|
ZpE0 = $E0 ; 1 refs; reads=1 writes=0; used at $DBAF
|
|
|
|
; Pass 3 semantic aliases (proven from the disassembly):
|
|
PpuCtrlShadow = Zp6A
|
|
PpuMaskShadow = Zp6B
|
|
HandlerPtrLo = Zp99
|
|
HandlerPtrHi = Zp9A
|
|
VramWritePtrLo = Zp5E
|
|
VramWritePtrHi = Zp5F
|
|
VramReadPtrLo = Zp62
|
|
VramReadPtrHi = Zp63
|
|
ObjectX = Zp60
|
|
ObjectY = Zp61
|
|
GameState = Zp8A
|
|
LevelIndex = Zp8B
|
|
PlayerIndex = Zp00
|
|
PlayerIndex2 = Zp01
|
|
PlayerY = Zp90
|
|
TimerIndex = Zp64
|
|
ObjectTimer = Zp68
|
|
SpriteX = Zp88
|