Promote Xevious (U) and Zanac (U) from _wip/ to NROM/

- Xevious (U): Promoted from _wip/NROM/Xevious (U)/ to NROM/Xevious (U)/
  - Pass 3 complete: 34.5% code coverage, 143 semantic entry points,
    4 named data tables, ~20 semantic ZP aliases
  - NROM mapper 0, 32 KB PRG, 8 KB CHR, horizontal mirroring

- Zanac (U): Promoted from _wip/UNROM/Zanac (U)/ to NROM/Zanac (U)/
  - Pass 3 complete: 34.5% code coverage (bank 7 only), 133 semantic
    entry points, 26 named data tables, 14 semantic ZP aliases
  - UNROM mapper 2, 128 KB PRG (8 banks), no CHR
  - Bank 7 fixed at CPU -; banks 0-6 switchable at 000-
  - Bank 7 assembled separately as prg.07.s with .org

Both projects build byte-identical. Updated root README.md inventory,
per-project details, and WIP.md accordingly.

Move Zanac (U) to UNROM/ mapper directory

Zanac (U) is a UNROM (mapper 2) game, not NROM (mapper 0). Move it to
the correct mapper directory and update README.md and WIP.md references
accordingly. Update project counts in WIP.md (857->856 total, UNROM
98->97 projects).

Promote Mermaids of Atlantis (U) from _wip/ to MAPPER8/

Additional cleanup of Mermaids of Atlantis
This commit is contained in:
tmerritt committed 2026-10-21 07:20:59 -04:00
1 parent 49e117bfcc
commit df11857075
58 files changed
+39615 -263

No files matched your search

+136
View File
@@ -0,0 +1,136 @@
; Zanac (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.
VramPtrLo = $00 ; 25 refs; reads=12 writes=13; used at $C772, C780, C789, C799, +17 more
VramPtrHi = $01 ; 12 refs; reads=5 writes=7; used at $C77A, C784, C78D, C7B3, +5 more
Zp02 = $02 ; 3 refs; reads=2 writes=1; used at $C76B, C774, C791
Zp06 = $06 ; 1 refs; reads=1 writes=0; used at $E907
Zp08 = $08 ; 1 refs; reads=1 writes=0; used at $D454
Zp0F = $0F ; 7 refs; reads=4 writes=3; used at $C815, C819, C868, C875, +3 more
PlayerPtrLo = $10 ; 40 refs; reads=21 writes=19; used at $C700, C716, CAB2, CABB, +26 more
PlayerPtrHi = $11 ; 17 refs; reads=7 writes=10; used at $C702, C70F, D349, D352, +10 more
Zp12 = $12 ; 14 refs; reads=7 writes=7; used at $CD9B, CDC1, CE0D, CE2B, +6 more
Zp13 = $13 ; 6 refs; reads=4 writes=2; used at $CD9D, CDBE, CE3E, CE54, +2 more
Zp14 = $14 ; 17 refs; reads=9 writes=8; used at $C8E1, C8F7, C90B, C90F, +10 more
Zp15 = $15 ; 11 refs; reads=5 writes=6; used at $C8DF, C8EA, C908, D4FD, +6 more
ObjPtrLo = $16 ; 20 refs; reads=13 writes=7; used at $C6D6, C6DB, C6EC, C708, +16 more
ObjPtrHi = $17 ; 11 refs; reads=5 writes=6; used at $C6D3, C6DE, C71E, C722, +7 more
EnemyPtrLo = $18 ; 39 refs; reads=20 writes=19; used at $C918, CA9F, CB4F, CB6D, +34 more
EnemyPtrHi = $19 ; 35 refs; reads=12 writes=23; used at $C91C, CB4D, CB69, CB78, +27 more
Zp1A = $1A ; 3 refs; reads=2 writes=1; used at $DD26, DD60, DD94
Zp1C = $1C ; 6 refs; reads=5 writes=1; used at $EB7D, EB8A, EBAC, ED5D, +2 more
Zp1D = $1D ; 2 refs; reads=1 writes=1; used at $EB82, ED8C
Zp1E = $1E ; 16 refs; reads=12 writes=4; used at $EE0D, EE1B, EE23, EE71, +12 more
Zp1F = $1F ; 3 refs; reads=1 writes=2; used at $EE12, EFB3, EFBB
GameMode = $20 ; 11 refs; reads=6 writes=5; used at $C7FD, C803, C812, C8D8, +6 more
Zp21 = $21 ; 8 refs; reads=6 writes=2; used at $C7DA, C7FA, C80A, C80C, +4 more
Zp24 = $24 ; 2 refs; reads=1 writes=1; used at $C7FF, C80E
Zp25 = $25 ; 3 refs; reads=1 writes=2; used at $C7F8, C807, CE48
Zp26 = $26 ; 2 refs; reads=1 writes=1; used at $C902, CD6E
Zp27 = $27 ; 2 refs; reads=1 writes=1; used at $CE14, CE21
Zp28 = $28 ; 3 refs; reads=1 writes=2; used at $CE1F, CE27
Zp29 = $29 ; 3 refs; reads=2 writes=1; used at $CDAA, CDB6, CE76
Zp2A = $2A ; 2 refs; reads=1 writes=1; used at $CDC6, CE7B
Zp2B = $2B ; 17 refs; reads=10 writes=7; used at $C8D4, C8FA, C922, CD73, +13 more
Zp2C = $2C ; 13 refs; reads=9 writes=4; used at $C911, CDA7, CDB4, CDD4, +9 more
Zp2D = $2D ; 6 refs; reads=2 writes=4; used at $C916, CDDA, CE6C, CE8A
Zp2E = $2E ; 4 refs; reads=2 writes=2; used at $C91A, CE4F, CE5C, CE5E
Zp2F = $2F ; 4 refs; reads=2 writes=2; used at $C91E, CE4A, CE62
Zp30 = $30 ; 24 refs; reads=16 writes=8; used at $CB8E, CBD8, D0A4, D0A8, +20 more
Zp31 = $31 ; 3 refs; reads=1 writes=2; used at $CC59, E967, E96B
Zp32 = $32 ; 3 refs; reads=1 writes=2; used at $CB8A, D0AC, D40C
Zp33 = $33 ; 1 refs; reads=0 writes=1; used at $CB90
Zp39 = $39 ; 5 refs; reads=3 writes=2; used at $CBAF, D2C8, D2CC, D2E1
FrameCounter = $41 ; 5 refs; reads=3 writes=2; used at $CCE8, CCED, CCF3, CE9C
Zp45 = $45 ; 1 refs; reads=0 writes=1; used at $CBBD
Zp46 = $46 ; 3 refs; reads=1 writes=2; used at $CB94, D46A, D49C
Zp47 = $47 ; 7 refs; reads=4 writes=3; used at $CB96, D5C8, D5CC, D5E0, +1 more
Zp48 = $48 ; 3 refs; reads=1 writes=2; used at $CB98, D5C1, D5CE
Zp49 = $49 ; 2 refs; reads=1 writes=1; used at $CB92, D5FE
Zp4A = $4A ; 1 refs; reads=0 writes=1; used at $CBA0
Zp4B = $4B ; 4 refs; reads=2 writes=2; used at $CB9A, D5DD, E8CD, E8D6
Zp4C = $4C ; 4 refs; reads=2 writes=2; used at $D5D0, D5D4
Zp4D = $4D ; 6 refs; reads=3 writes=3; used at $CB9E, D47D, D4B2, D4B4
Zp4E = $4E ; 3 refs; reads=2 writes=1; used at $D4DA, D5F3, D60D
Zp4F = $4F ; 2 refs; reads=1 writes=1; used at $D4D6, D60F
Zp50 = $50 ; 6 refs; reads=3 writes=3; used at $D4CA, D4DC, D5F5, D5F9, +2 more
Zp51 = $51 ; 3 refs; reads=0 writes=3; used at $CBC8, CBEE, D446
Zp52 = $52 ; 4 refs; reads=1 writes=3; used at $D4AA, D4B0, D61C
Zp53 = $53 ; 2 refs; reads=1 writes=1; used at $D4AE, D61A
Zp54 = $54 ; 1 refs; reads=0 writes=1; used at $CBA4
Zp55 = $55 ; 1 refs; reads=0 writes=1; used at $CBB1
Zp56 = $56 ; 1 refs; reads=0 writes=1; used at $CBA2
Zp5A = $5A ; 1 refs; reads=0 writes=1; used at $CB9C
Zp5D = $5D ; 1 refs; reads=0 writes=1; used at $CBB5
Zp62 = $62 ; 8 refs; reads=5 writes=3; used at $CBC4, D487, D4BD, D56D, +4 more
Zp66 = $66 ; 3 refs; reads=0 writes=3; used at $D0C7, E073, E83C
Zp6C = $6C ; 5 refs; reads=4 writes=1; used at $D4FA, D59A, D5A0, D5B4, +1 more
Zp6D = $6D ; 2 refs; reads=1 writes=1; used at $D5B8, D5BC
Zp6E = $6E ; 3 refs; reads=2 writes=1; used at $D4EA, D4EE
Zp6F = $6F ; 10 refs; reads=4 writes=6; used at $D0E1, E07E, E0D4, E0E8, +5 more
Zp70 = $70 ; 11 refs; reads=7 writes=4; used at $E0D8, E0ED, E0F4, E119, +5 more
Zp71 = $71 ; 3 refs; reads=2 writes=1; used at $E653, E659
Zp72 = $72 ; 2 refs; reads=1 writes=1; used at $E4E9, E629
Zp73 = $73 ; 2 refs; reads=1 writes=1; used at $E4EB, E63A
Zp74 = $74 ; 3 refs; reads=1 writes=2; used at $E4EF, E657
Zp75 = $75 ; 1 refs; reads=0 writes=1; used at $E4F3
Zp77 = $77 ; 1 refs; reads=0 writes=1; used at $CBB9
Zp7A = $7A ; 4 refs; reads=2 writes=2; used at $D3C7, D3C9, D3CD
Zp7D = $7D ; 10 refs; reads=5 writes=5; used at $CC39, CC52, D414, D42D, +6 more
Zp7E = $7E ; 4 refs; reads=2 writes=2; used at $CAB4, CABD, CAC3, CACA
PpuStatusShadow = $7F ; 1 refs; reads=0 writes=1; used at $CEA1
Zp83 = $83 ; 4 refs; reads=2 writes=2; used at $D3B2, D3F1, D3FA
GameState = $90 ; 10 refs; reads=5 writes=5; used at $CEC5, D4DE, D69F, D6A3, +6 more
Zp91 = $91 ; 7 refs; reads=4 writes=3; used at $CBE2, CC54, CC6A, CC7A, +3 more
Zp92 = $92 ; 3 refs; reads=1 writes=2; used at $D41F, D436, E98C
Zp98 = $98 ; 7 refs; reads=4 writes=3; used at $C6AD, C6B9, D6C0, D6C6, +3 more
Zp99 = $99 ; 4 refs; reads=2 writes=2; used at $C6AF, C6C2, D6CF, D6D3
Zp9A = $9A ; 2 refs; reads=1 writes=1; used at $C6B1, C6B5
Zp9B = $9B ; 2 refs; reads=1 writes=1; used at $C6B3, C6C5
ObjCount = $9C ; 12 refs; reads=6 writes=6; used at $C7E4, C8D6, CD7E, CECC, +7 more
Zp9D = $9D ; 4 refs; reads=3 writes=1; used at $CEE5, D7AC, DB5C, DD8F
Zp9E = $9E ; 2 refs; reads=1 writes=1; used at $CEE0, D7B0
Zp9F = $9F ; 4 refs; reads=3 writes=1; used at $CF1C, CF30, D7B5, DD67
ZpA0 = $A0 ; 7 refs; reads=5 writes=2; used at $CED9, CF17, CF2B, D7BA, +3 more
ZpA1 = $A1 ; 9 refs; reads=6 writes=3; used at $D6FE, D770, D7A5, DB50, +4 more
ZpA2 = $A2 ; 7 refs; reads=4 writes=3; used at $CAC8, D4E4, D6F0, D737, +2 more
ZpA3 = $A3 ; 5 refs; reads=2 writes=3; used at $D6F2, D73D, D83B, D855
ZpA4 = $A4 ; 5 refs; reads=2 writes=3; used at $D6FA, D824, D829, D832, +1 more
ZpA8 = $A8 ; 3 refs; reads=2 writes=1; used at $D6F4, DA36, DA39
ZpA9 = $A9 ; 2 refs; reads=1 writes=1; used at $D6AF, D6B4
ZpAA = $AA ; 10 refs; reads=5 writes=5; used at $D6B2, D6E1, D753, D75B, +6 more
ZpAB = $AB ; 11 refs; reads=6 writes=5; used at $D6BC, D6E3, D756, D75F, +7 more
ZpAC = $AC ; 4 refs; reads=1 writes=3; used at $D45C, D741, D802, E929
ZpAD = $AD ; 4 refs; reads=1 writes=3; used at $D460, D745, D7F8, E925
ZpAE = $AE ; 4 refs; reads=3 writes=1; used at $D6BE, D6C3, D827, DD7B
ZpAF = $AF ; 4 refs; reads=2 writes=2; used at $DD41, DD51, DD59
ZpB0 = $B0 ; 1 refs; reads=1 writes=0; used at $DD53
ZpB2 = $B2 ; 6 refs; reads=2 writes=4; used at $D6E9, D6F6, DA4E, DA56, +1 more
ZpB3 = $B3 ; 3 refs; reads=2 writes=1; used at $D71E, D732, D851
ZpB4 = $B4 ; 3 refs; reads=2 writes=1; used at $D723, D739, D857
ZpB5 = $B5 ; 4 refs; reads=2 writes=2; used at $D72A, D85F, D861, D86C
ZpB6 = $B6 ; 3 refs; reads=1 writes=2; used at $D730, D863, D867
ZpB7 = $B7 ; 5 refs; reads=3 writes=2; used at $D702, D776, D840, DBB6, +1 more
ZpB8 = $B8 ; 2 refs; reads=1 writes=1; used at $CC90, DA3C
ZpB9 = $B9 ; 2 refs; reads=1 writes=1; used at $CC95, DA40
ZpBA = $BA ; 2 refs; reads=1 writes=1; used at $CC9D, DB20
ZpBB = $BB ; 2 refs; reads=1 writes=1; used at $CCA2, DB24
ZpC0 = $C0 ; 7 refs; reads=5 writes=2; used at $CBB3, D448, D496, D7EA, +3 more
ZpC2 = $C2 ; 1 refs; reads=0 writes=1; used at $D452
ZpCD = $CD ; 4 refs; reads=2 writes=2; used at $CBF7, CBF9, CBFD
ZpCE = $CE ; 4 refs; reads=1 writes=3; used at $CBE6, E077, E0A4
ZpD0 = $D0 ; 1 refs; reads=0 writes=1; used at $CBEA
ZpD2 = $D2 ; 1 refs; reads=0 writes=1; used at $CBF5
ZpD8 = $D8 ; 1 refs; reads=0 writes=1; used at $D874
ZpF5 = $F5 ; 10 refs; reads=8 writes=2; used at $CB1A, CB2F, CB3A, D0FF, +5 more
ZpF6 = $F6 ; 2 refs; reads=1 writes=1; used at $CB23
ZpF7 = $F7 ; 10 refs; reads=9 writes=1; used at $CB2D, CB33, CB36, CB38, +6 more
ZpF8 = $F8 ; 4 refs; reads=4 writes=0; used at $CB5A, CC42, E015, E43E
ZpFB = $FB ; 7 refs; reads=5 writes=2; used at $E769, E76C, E770, E77F, +3 more
ZpFC = $FC ; 2 refs; reads=1 writes=1; used at $C6BB, C7AD
ZpFD = $FD ; 2 refs; reads=1 writes=1; used at $C6B7, C7A8
NmiFlag = $FE ; 10 refs; reads=6 writes=4; used at $C8BF, CAD3, CADA, CADD, +6 more
ZpFF = $FF ; 13 refs; reads=10 writes=3; used at $C6BD, C6C7, C7A3, C8C5, +9 more