Files
disasm/NROM/Magmax (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

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