- 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
160 lines
7.1 KiB
PHP
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)
|