Files
disasm/NROM/Xevious (U)/locals.inc
T
tmerritt df11857075 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
2026-10-21 07:20:59 -04:00

160 lines
7.1 KiB
PHP

; Xevious (U) application-specific RAM aliases - Pass 2
; Semantic names derived from observed usage in reachable code.
PPUCTRLShadow = $00 ; 24 refs; PPUCTRL mirror written each NMI
PPUMASKShadow = $01 ; 23 refs; PPUMASK mirror written each NMI
ScrollX = $02 ; 3 refs; horizontal scroll written to PPUSCROLL
ScrollY = $03 ; 18 refs; vertical scroll written to PPUSCROLL
VramPtrLo = $04 ; 53 refs; indirect pointer low byte for (Zp04),y
VramCopyCount = $05 ; 14 refs; copy/page counter (init to 7 in reset)
Joypad1Cur = $06 ; 4 refs; joypad 1 current state
Joypad1Prev = $07 ; 5 refs; joypad 1 previous state
Joypad2Cur = $08 ; 2 refs; joypad 2 current state
Joypad1Press = $09 ; 6 refs; joypad 1 newly-pressed buttons
Joypad2Cur2 = $0A ; 6 refs; joypad 2 current state (2nd copy)
Joypad2Prev = $0B ; 3 refs; joypad 2 previous state
UnusedZp0C = $0C ; 1 refs; read only at $FE73
NmiFrameFlag = $0D ; 5 refs; NMI frame flag
ObjUpdateFlag = $0E ; 51 refs; object update / sprite flag (heavily used)
NmiToggle = $0F ; 4 refs; NMI toggle flag (eor'd each frame)
GameMode = $10 ; 10 refs; game mode (0=title,1=game,2=demo?)
Zp12 = $12 ; 4 refs; reads=2 writes=2
ObjPtr = $13 ; 65 refs; object/entity pointer (heavily used)
Zp14 = $14 ; 10 refs
Zp15 = $15 ; 8 refs
Zp16 = $16 ; 1 refs
ObjectX = $18 ; 12 refs; object X coordinate
ObjectY = $19 ; 9 refs; object Y coordinate
Joypad1Press2 = $1A ; 10 refs; joypad press / frame counter
GameSubMode = $1B ; 24 refs; game sub-mode (read 22x, written 2x)
Zp1C = $1C ; 4 refs
Zp1D = $1D ; 3 refs
Zp1E = $1E ; 3 refs
Zp20 = $20 ; 4 refs; read only
FrameToggle = $22 ; 7 refs; toggle flag (r or'ed each NMI)
Zp23 = $23 ; 24 refs; read 23x, written 1x
Zp24 = $24 ; 18 refs; read 17x, written 1x
Zp25 = $25 ; 19 refs
Zp26 = $26 ; 2 refs
Zp27 = $27 ; 9 refs
Zp28 = $28 ; 2 refs; init to $F8 in reset
Zp29 = $29 ; 5 refs
Zp2A = $2A ; 36 refs; read 33x, written 3x
Zp2B = $2B ; 5 refs
Zp2C = $2C ; 13 refs
ObjectDeltaX = $2D ; 28 refs; object delta X (read 11x, written 17x)
Zp2E = $2E ; 6 refs
Zp2F = $2F ; 5 refs
Zp30 = $30 ; 9 refs
Zp31 = $31 ; 3 refs
Zp32 = $32 ; 5 refs
Zp33 = $33 ; 2 refs
Zp34 = $34 ; 3 refs
ObjectYLo = $35 ; 27 refs; object Y coordinate low
ObjectYHi = $36 ; 17 refs; object Y coordinate high
ObjectXLo = $37 ; 34 refs; object X coordinate low
ObjectXHi = $38 ; 37 refs; object X coordinate high
Zp39 = $39 ; 11 refs
Zp3A = $3A ; 2 refs
Zp3B = $3B ; 24 refs
ResetHi = $3C ; 10 refs; high byte from reset table
Zp3D = $3D ; 6 refs
Zp3E = $3E ; 6 refs
Zp3F = $3F ; 6 refs
Zp40 = $40 ; 3 refs
Zp41 = $41 ; 4 refs
Zp42 = $42 ; 4 refs; init to 4 in reset
Zp43 = $43 ; 1 refs; init to $FE in reset
Zp44 = $44 ; 4 refs
Zp45 = $45 ; 8 refs
Zp46 = $46 ; 9 refs
Zp48 = $48 ; 4 refs
Zp49 = $49 ; 2 refs
Zp4B = $4B ; 2 refs; copied from $0110 in reset
Zp4E = $4E ; 1 refs; init to 2 in reset
Zp52 = $52 ; 2 refs
Zp53 = $53 ; 2 refs; from reset table $FC25
Zp54 = $54 ; 1 refs; from reset table $FC26
Zp55 = $55 ; 1 refs; from reset table $FC27
Zp56 = $56 ; 1 refs; from reset table $FC28
Zp57 = $57 ; 4 refs
Zp58 = $58 ; 3 refs
Zp59 = $59 ; 9 refs
Zp5A = $5A ; 8 refs
Zp5B = $5B ; 3 refs
Zp5D = $5D ; 1 refs; from reset table $FC21
Zp5E = $5E ; 6 refs; copied from $0140 in reset
Zp5F = $5F ; 2 refs; from reset table $FC21
Zp60 = $60 ; 9 refs; read only (checked in NMI)
Zp61 = $61 ; 10 refs
Zp62 = $62 ; 3 refs
ObjIndex = $63 ; 6 refs; object/index slot (from reset $0141)
Zp65 = $65 ; 2 refs
Zp66 = $66 ; 2 refs; from reset table $FC1D
Zp69 = $69 ; 1 refs
Zp6C = $6C ; 2 refs
Zp6E = $6E ; 3 refs
Zp77 = $77 ; 1 refs
Zp7B = $7B ; 1 refs
Zp7F = $7F ; 2 refs
Zp80 = $80 ; 14 refs; copied from $0120 in reset
Zp81 = $81 ; 3 refs
Zp82 = $82 ; 1 refs
Zp83 = $83 ; 1 refs
Zp84 = $84 ; 1 refs
Zp85 = $85 ; 1 refs
Zp87 = $87 ; 4 refs
Zp88 = $88 ; 10 refs
Zp8A = $8A ; 1 refs
Zp8B = $8B ; 1 refs
Zp8C = $8C ; 2 refs
Zp8D = $8D ; 6 refs
Zp8E = $8E ; 4 refs
Zp8F = $8F ; 10 refs
Zp90 = $90 ; 8 refs
Zp91 = $91 ; 5 refs
Zp92 = $92 ; 5 refs
Zp93 = $93 ; 1 refs
Zp94 = $94 ; 2 refs
Zp95 = $95 ; 3 refs
Zp96 = $96 ; 2 refs
Zp97 = $97 ; 1 refs
Zp98 = $98 ; 3 refs
Zp99 = $99 ; 15 refs
Zp9A = $9A ; 4 refs; copied from $0130 in reset
ZpA2 = $A2 ; 1 refs
ZpA4 = $A4 ; 1 refs
ZpA7 = $A7 ; 3 refs
ZpA9 = $A9 ; 6 refs
ZpAA = $AA ; 1 refs
ZpAD = $AD ; 1 refs
ZpB3 = $B3 ; 1 refs
ZpC1 = $C1 ; 4 refs
ZpC3 = $C3 ; 2 refs
ZpC6 = $C6 ; 2 refs
ZpD7 = $D7 ; 3 refs
ZpD8 = $D8 ; 9 refs
ZpDE = $DE ; 2 refs
ZpE6 = $E6 ; 2 refs
SpriteAttr = $E8 ; 5 refs; sprite attribute byte (set in NMI)
ZpEA = $EA ; 2 refs
ZpEB = $EB ; 1 refs
NmiCounter = $ED ; 4 refs; NMI counter (inc'd each frame)
ZpEE = $EE ; 2 refs; bit 7 of Zp63 (sprite flag?)
ZpF0 = $F0 ; 8 refs
ZpF1 = $F1 ; 1 refs
ZpF2 = $F2 ; 43 refs; heavily used general-purpose
ZpF3 = $F3 ; 1 refs
ZpF4 = $F4 ; 3 refs
ZpF5 = $F5 ; 1 refs
ZpF6 = $F6 ; 4 refs
ZpF7 = $F7 ; 1 refs
ZpF8 = $F8 ; 2 refs
ZpF9 = $F9 ; 1 refs
ZpFA = $FA ; 1 refs
ZpFB = $FB ; 1 refs
ZpFC = $FC ; 10 refs
ZpFD = $FD ; 30 refs; heavily used general-purpose
ZpFE = $FE ; 15 refs; indirect jump lo (jmp ($fe) dispatch)
ZpFF = $FF ; 9 refs; indirect jump hi (jmp ($fe) dispatch)