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

156 lines
12 KiB
PHP

; Slalom (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 ; 18 refs; reads=5 writes=13; used at $8071, 80B9, 80DC, 80E3, +14 more
Zp01 = $01 ; 10 refs; reads=1 writes=9; used at $8075, 80E7, 8387, 8542, +6 more
Zp02 = $02 ; 14 refs; reads=4 writes=10; used at $8133, 81AF, 821B, 8227, +10 more
Zp03 = $03 ; 12 refs; reads=4 writes=8; used at $85A8, 8D40, 8D44, 9E05, +8 more
Zp04 = $04 ; 7 refs; reads=3 writes=4; used at $8D56, 8D5A, A68D, A695, +3 more
Zp05 = $05 ; 5 refs; reads=1 writes=4; used at $809E, 8D4C, A6A0, A967, +1 more
Zp06 = $06 ; 20 refs; reads=19 writes=1; used at $8373, 8D1F, 8D25, 8D2E, +15 more
Zp07 = $07 ; 4 refs; reads=3 writes=1; used at $8D23, 8D30, 9147
Zp08 = $08 ; 8 refs; reads=7 writes=1; used at $8D27, 8D2C, 96E9, 9907, +4 more
Zp09 = $09 ; 1 refs; reads=0 writes=1; used at $8D32
Zp0A = $0A ; 15 refs; reads=11 writes=4; used at $807F, 8BAB, 8BAF, 8CA7, +11 more
Zp0B = $0B ; 3 refs; reads=1 writes=2; used at $8081, 8BAD, 8BB1
Zp0C = $0C ; 12 refs; reads=11 writes=1; used at $8410, 88CF, 88FC, 8929, +8 more
Zp0D = $0D ; 19 refs; reads=13 writes=6; used at $8083, 83BD, 83DE, 8569, +15 more
Zp0E = $0E ; 4 refs; reads=3 writes=1; used at $A8E0, A97B, A982, A9A8
Zp0F = $0F ; 33 refs; reads=17 writes=16; used at $81BC, 82E9, 8325, 8DBF, +28 more
Zp10 = $10 ; 28 refs; reads=24 writes=4; used at $8183, 9274, 94FF, 9537, +24 more
Zp11 = $11 ; 23 refs; reads=19 writes=4; used at $916B, 927D, 94E7, 958B, +19 more
Zp12 = $12 ; 12 refs; reads=10 writes=2; used at $916F, 9584, 9589, 9678, +8 more
Zp13 = $13 ; 35 refs; reads=28 writes=7; used at $8D69, 8D9E, 8E09, 8E11, +31 more
Zp14 = $14 ; 33 refs; reads=27 writes=6; used at $8DC3, 90E2, 9561, 9564, +28 more
Zp15 = $15 ; 9 refs; reads=3 writes=6; used at $8DC5, 961B, 961D, B14A, +5 more
Zp16 = $16 ; 23 refs; reads=16 writes=7; used at $8DF4, 8E18, 8E23, 8E25, +19 more
Zp17 = $17 ; 11 refs; reads=6 writes=5; used at $8DC7, 8E3D, 8E46, 8E6A, +7 more
Zp18 = $18 ; 9 refs; reads=6 writes=3; used at $8DC9, 8E97, 8EAD, 8EB9, +5 more
Zp19 = $19 ; 7 refs; reads=4 writes=3; used at $8DCB, 8EB5, 8EC2, 9579, +2 more
Zp1A = $1A ; 3 refs; reads=2 writes=1; used at $9575, 9577, 9587
Zp1B = $1B ; 2 refs; reads=1 writes=1; used at $98F7, 9905
Zp1C = $1C ; 1 refs; reads=0 writes=1; used at $9921
Zp1D = $1D ; 1 refs; reads=0 writes=1; used at $9925
Zp1E = $1E ; 2 refs; reads=1 writes=1; used at $96D0, 9929
Zp1F = $1F ; 1 refs; reads=0 writes=1; used at $9935
Zp20 = $20 ; 1 refs; reads=0 writes=1; used at $990F
Zp23 = $23 ; 1 refs; reads=0 writes=1; used at $9937
Zp24 = $24 ; 1 refs; reads=0 writes=1; used at $9917
Zp25 = $25 ; 1 refs; reads=0 writes=1; used at $991B
Zp26 = $26 ; 1 refs; reads=0 writes=1; used at $991D
Zp33 = $33 ; 5 refs; reads=4 writes=1; used at $8D62, 8D76, 8D7C, 94EF, +1 more
Zp34 = $34 ; 1 refs; reads=0 writes=1; used at $9504
Zp35 = $35 ; 1 refs; reads=0 writes=1; used at $9508
Zp36 = $36 ; 1 refs; reads=0 writes=1; used at $950C
Zp37 = $37 ; 2 refs; reads=1 writes=1; used at $8D66, 951B
Zp38 = $38 ; 1 refs; reads=0 writes=1; used at $950E
Zp39 = $39 ; 1 refs; reads=0 writes=1; used at $9510
Zp4C = $4C ; 1 refs; reads=0 writes=1; used at $AEEF
Zp63 = $63 ; 13 refs; reads=5 writes=8; used at $8C61, 8C73, 90B4, 9105, +9 more
Zp64 = $64 ; 19 refs; reads=9 writes=10; used at $8C6D, 90BD, 913A, 91A7, +15 more
Zp65 = $65 ; 13 refs; reads=7 writes=6; used at $8C71, 90C2, 91AD, 91CA, +9 more
Zp66 = $66 ; 15 refs; reads=7 writes=8; used at $8C69, 90C6, 90CC, 9179, +11 more
Zp67 = $67 ; 4 refs; reads=2 writes=2; used at $90B8, 9362, 93C5, 9403
Zp68 = $68 ; 7 refs; reads=2 writes=5; used at $8329, 96E3, 9B4D, AF53, +3 more
Zp69 = $69 ; 3 refs; reads=1 writes=2; used at $80EC, A391, A39F
Zp6A = $6A ; 2 refs; reads=1 writes=1; used at $9714, 9718
Zp6B = $6B ; 4 refs; reads=2 writes=2; used at $B0D7, B154, B18E, B1F2
Zp6C = $6C ; 4 refs; reads=3 writes=1; used at $90F4, B271, B27E, B843
Zp6D = $6D ; 9 refs; reads=9 writes=0; used at $81EF, 8242, 82A9, 8D1A, +5 more
Zp6E = $6E ; 5 refs; reads=1 writes=4; used at $808F, 80CA, A667, FE49, +1 more
Zp6F = $6F ; 4 refs; reads=1 writes=3; used at $96DC, 96E5, 99F7, 9B25
Zp70 = $70 ; 4 refs; reads=1 writes=3; used at $99CF, 9B78, B28D, B29B
Zp71 = $71 ; 6 refs; reads=3 writes=3; used at $AF0C, AF79, AF7B, AF81, +1 more
Zp72 = $72 ; 2 refs; reads=1 writes=1; used at $92D2, B002
Zp73 = $73 ; 3 refs; reads=2 writes=1; used at $95D7, AEC2, B06F
Zp74 = $74 ; 1 refs; reads=0 writes=1; used at $95DC
Zp75 = $75 ; 17 refs; reads=13 writes=4; used at $8175, 8E3B, 8E78, 90CA, +13 more
Zp76 = $76 ; 5 refs; reads=2 writes=3; used at $94E3, 94EB, 9506, 95F6, +1 more
Zp77 = $77 ; 6 refs; reads=4 writes=2; used at $94D7, 94DC, 9512, 951D, +2 more
Zp78 = $78 ; 3 refs; reads=1 writes=2; used at $9526, 9548
Zp79 = $79 ; 10 refs; reads=9 writes=1; used at $8177, 8F4A, 952B, 95D1, +6 more
Zp7A = $7A ; 4 refs; reads=2 writes=2; used at $9672, AE83, AE8E, AEB0
Zp7B = $7B ; 5 refs; reads=3 writes=2; used at $9676, AE88, AE91, AEA9, +1 more
Zp7C = $7C ; 2 refs; reads=1 writes=1; used at $967A, B052
Zp7D = $7D ; 8 refs; reads=5 writes=3; used at $8198, 8EA2, 8F34, 9605, +4 more
Zp7E = $7E ; 10 refs; reads=6 writes=4; used at $819A, 8EA0, 8F01, 8F2E, +6 more
Zp7F = $7F ; 9 refs; reads=5 writes=4; used at $819C, 8E9E, 8F28, 95FD, +5 more
Zp80 = $80 ; 6 refs; reads=5 writes=1; used at $960E, 990D, B1BF, B1CC, +2 more
Zp81 = $81 ; 6 refs; reads=2 writes=4; used at $B140, B1DC, B1DF, B1E7, +2 more
Zp82 = $82 ; 6 refs; reads=2 writes=4; used at $95E2, B088, B08D, B09B, +2 more
Zp83 = $83 ; 7 refs; reads=4 writes=3; used at $8194, 984B, 9864, 9866, +1 more
Zp84 = $84 ; 5 refs; reads=4 writes=1; used at $8196, 9861, A3D0, A3E8, +1 more
Zp85 = $85 ; 6 refs; reads=3 writes=3; used at $969E, 96B3, 982B, 9BCE, +1 more
Zp86 = $86 ; 27 refs; reads=21 writes=6; used at $820B, 82F3, 82FC, 8501, +22 more
Zp87 = $87 ; 11 refs; reads=8 writes=3; used at $8503, 8D51, A687, A933, +6 more
Zp88 = $88 ; 3 refs; reads=1 writes=2; used at $AFE3, B0E3, B213
Zp89 = $89 ; 5 refs; reads=2 writes=3; used at $9762, 97B2, 97D5, 9B97, +1 more
Zp8A = $8A ; 4 refs; reads=2 writes=2; used at $9BA5, AFB6, AFBA
Zp8B = $8B ; 24 refs; reads=9 writes=15; used at $8192, 8237, 82DF, 9087, +20 more
Zp8D = $8D ; 8 refs; reads=6 writes=2; used at $8173, 81BA, 81D9, 81DE, +4 more
Zp8F = $8F ; 85 refs; reads=51 writes=34; used at $817C, 8185, 83C8, 83E7, +79 more
Zp90 = $90 ; 31 refs; reads=6 writes=25; used at $8181, 83CD, 83EB, 857B, +24 more
Zp91 = $91 ; 54 refs; reads=26 writes=28; used at $8138, 81C3, 8477, 848C, +47 more
Zp92 = $92 ; 26 refs; reads=8 writes=18; used at $813D, 81C8, 847C, 857F, +22 more
Zp93 = $93 ; 37 refs; reads=18 writes=19; used at $8910, 891C, 8931, 896E, +24 more
Zp94 = $94 ; 9 refs; reads=4 writes=5; used at $8B2F, 8B54, A49B, A4C3, +3 more
Zp95 = $95 ; 160 refs; reads=90 writes=70; used at $8300, 8305, 8309, 831B, +146 more
Zp96 = $96 ; 42 refs; reads=23 writes=19; used at $8F2C, 8F30, 8F41, 8F48, +37 more
Zp97 = $97 ; 13 refs; reads=8 writes=5; used at $8F2A, 8F38, 8F3F, 8F6B, +9 more
Zp99 = $99 ; 29 refs; reads=19 writes=10; used at $8DD3, 8E8C, 8EDE, 9037, +24 more
Zp9A = $9A ; 27 refs; reads=13 writes=14; used at $9689, 9690, 969C, 96C9, +20 more
Zp9B = $9B ; 18 refs; reads=13 writes=5; used at $B612, C470, C622, C62D, +13 more
Zp9C = $9C ; 7 refs; reads=2 writes=5; used at $B617, C631, C688, C694, +2 more
Zp9D = $9D ; 6 refs; reads=3 writes=3; used at $B647, C67E, C686, C699, +2 more
Zp9E = $9E ; 6 refs; reads=3 writes=3; used at $B649, C680, C68A, C69B, +2 more
Zp9F = $9F ; 1 refs; reads=0 writes=1; used at $B61C
ZpA0 = $A0 ; 1 refs; reads=0 writes=1; used at $B621
ZpA1 = $A1 ; 1 refs; reads=0 writes=1; used at $B64B
ZpA2 = $A2 ; 1 refs; reads=0 writes=1; used at $B64D
ZpA3 = $A3 ; 1 refs; reads=0 writes=1; used at $B626
ZpA4 = $A4 ; 1 refs; reads=0 writes=1; used at $B62B
ZpA5 = $A5 ; 3 refs; reads=1 writes=2; used at $9826, B64F
ZpA6 = $A6 ; 1 refs; reads=0 writes=1; used at $B651
ZpA7 = $A7 ; 1 refs; reads=0 writes=1; used at $B630
ZpA8 = $A8 ; 1 refs; reads=0 writes=1; used at $B635
ZpA9 = $A9 ; 1 refs; reads=0 writes=1; used at $B653
ZpAA = $AA ; 1 refs; reads=0 writes=1; used at $B655
ZpAE = $AE ; 3 refs; reads=1 writes=2; used at $AEF1, FE0F
ZpB0 = $B0 ; 1 refs; reads=0 writes=1; used at $FE5C
ZpB5 = $B5 ; 1 refs; reads=1 writes=0; used at $B829
ZpB7 = $B7 ; 3 refs; reads=2 writes=1; used at $B7F2, B82B, FE5E
ZpBB = $BB ; 1 refs; reads=0 writes=1; used at $FE92
ZpC5 = $C5 ; 3 refs; reads=1 writes=2; used at $FE2B, FED9
ZpCF = $CF ; 3 refs; reads=1 writes=2; used at $FE6A, FEA7, FEA9
ZpD3 = $D3 ; 4 refs; reads=1 writes=3; used at $FE2F, FEB3, FEBE, FEC3
ZpD7 = $D7 ; 2 refs; reads=0 writes=2; used at $FE6C, FEAB
ZpDB = $DB ; 1 refs; reads=0 writes=1; used at $FE60
ZpDC = $DC ; 1 refs; reads=0 writes=1; used at $B7ED
ZpDE = $DE ; 1 refs; reads=0 writes=1; used at $FE62
ZpE3 = $E3 ; 2 refs; reads=0 writes=2; used at $FE39, FE41
ZpE8 = $E8 ; 1 refs; reads=0 writes=1; used at $FE64
ZpEA = $EA ; 1 refs; reads=0 writes=1; used at $FE47
ZpED = $ED ; 1 refs; reads=0 writes=1; used at $FE66
ZpF0 = $F0 ; 2 refs; reads=1 writes=1; used at $AF00
; Pass 3 semantic aliases (proven from the disassembly):
PpuCtrlShadow = Zp00
PpuMaskShadow = Zp01
PlayerX = Zp95
PlayerY = Zp96
PlayerZ = Zp97
DispatchPtrLo = Zp91
DispatchPtrHi = Zp92
VramWritePtrLo = Zp8F
VramWritePtrHi = Zp90
ObjectIndex = Zp0F
SkierX = Zp7D
SkierY = Zp7E
SkierZ = Zp7F
GameState = Zp14
PpuAddrLow = Zp8D
CourseIndex = Zp79