; Mermaids of Atlantis (U) - zero-page aliases. ; ; Pass 1 names every zero-page operand ZpXX; the names below are the ; semantic ones the dump proves. An address whose role is the same at ; every reference is renamed everywhere; an address the game reuses for ; several roles keeps the neutral ZpXX name and is listed at the end. ButtonState1 = $26 ; player 1 button bits, read from $4016 ButtonState2 = $27 ; player 2 button bits, read from $4017 PrevButton1 = $28 ; player 1 buttons of the previous frame PrevButton2 = $29 ; player 2 buttons of the previous frame NewButton1 = $2A ; player 1 buttons pressed this frame NewButton2 = $2B ; player 2 buttons pressed this frame PrgBankNumber = $2C ; the MMC3 PRG bank the game switches to HandlerIndex = $2D ; the index the banked call dispatches on IdleCounter = $2F ; the counter the idle loop spins on FrameCounter = $31 ; the frame counter, incremented at the end of the NMI ControllerBits = $05 ; the eight button bits assembled by the pad reader ControllerByte = $07 ; the raw byte read from $4016/$4017 GameMode = $6A ; the game mode flag (0 = playing, 1 = demo) ; --------------------------------------------------------------------------- ; The addresses below are used for more than one purpose in this dump, so ; they keep the neutral name. ; ; $00-$01 the RAM-clear pointer (and the banked-call scratch) ; $02 the PPUMASK shadow ; $06 the PRG bank shadow in the banked call ; $11-$14 indirect pointers: the VRAM pointer, the dispatch table pointer ; and the sound table pointer share the two pairs ; $19-$1F scroll, sprite and bubble coordinates, reused per actor ; $20-$2E per-actor scratch: the tile, the position and the frame counters ; $30-$3F per-actor state: the sprite index, the direction and the timers ; $40-$5F the level script variables: the stage, the wave and the score ; $60-$7F the game state: the mode flags, the player state and the timers ; $80-$9F the same, for the second half of the image ; $A0-$DF the sound engine state ; --------------------------------------------------------------------------- Zp2E = $2E; storage with a role not yet unique enough for a behavioral name Zp00 = $00; storage with a role not yet unique enough for a behavioral name Zp01 = $01; storage with a role not yet unique enough for a behavioral name Zp02 = $02; storage with a role not yet unique enough for a behavioral name Zp03 = $03; storage with a role not yet unique enough for a behavioral name Zp04 = $04; storage with a role not yet unique enough for a behavioral name Zp06 = $06; storage with a role not yet unique enough for a behavioral name Zp08 = $08; storage with a role not yet unique enough for a behavioral name Zp09 = $09; storage with a role not yet unique enough for a behavioral name Zp10 = $10; storage with a role not yet unique enough for a behavioral name Zp11 = $11; storage with a role not yet unique enough for a behavioral name Zp12 = $12; storage with a role not yet unique enough for a behavioral name Zp13 = $13; storage with a role not yet unique enough for a behavioral name Zp14 = $14; storage with a role not yet unique enough for a behavioral name Zp15 = $15; storage with a role not yet unique enough for a behavioral name Zp16 = $16; storage with a role not yet unique enough for a behavioral name Zp17 = $17; storage with a role not yet unique enough for a behavioral name Zp18 = $18; storage with a role not yet unique enough for a behavioral name Zp19 = $19; storage with a role not yet unique enough for a behavioral name Zp1A = $1A; storage with a role not yet unique enough for a behavioral name Zp1B = $1B; storage with a role not yet unique enough for a behavioral name Zp1C = $1C; storage with a role not yet unique enough for a behavioral name Zp1D = $1D; storage with a role not yet unique enough for a behavioral name Zp1E = $1E; storage with a role not yet unique enough for a behavioral name Zp1F = $1F; storage with a role not yet unique enough for a behavioral name Zp20 = $20; storage with a role not yet unique enough for a behavioral name Zp21 = $21; storage with a role not yet unique enough for a behavioral name Zp22 = $22; storage with a role not yet unique enough for a behavioral name Zp23 = $23; storage with a role not yet unique enough for a behavioral name Zp24 = $24; storage with a role not yet unique enough for a behavioral name Zp25 = $25; storage with a role not yet unique enough for a behavioral name Zp30 = $30; storage with a role not yet unique enough for a behavioral name Zp32 = $32; storage with a role not yet unique enough for a behavioral name Zp33 = $33; storage with a role not yet unique enough for a behavioral name Zp34 = $34; storage with a role not yet unique enough for a behavioral name Zp35 = $35; storage with a role not yet unique enough for a behavioral name Zp36 = $36; storage with a role not yet unique enough for a behavioral name Zp37 = $37; storage with a role not yet unique enough for a behavioral name Zp38 = $38; storage with a role not yet unique enough for a behavioral name Zp39 = $39; storage with a role not yet unique enough for a behavioral name Zp3A = $3A; storage with a role not yet unique enough for a behavioral name Zp3B = $3B; storage with a role not yet unique enough for a behavioral name Zp3C = $3C; storage with a role not yet unique enough for a behavioral name Zp3D = $3D; storage with a role not yet unique enough for a behavioral name Zp3E = $3E; storage with a role not yet unique enough for a behavioral name Zp3F = $3F; storage with a role not yet unique enough for a behavioral name Zp40 = $40; storage with a role not yet unique enough for a behavioral name Zp41 = $41; storage with a role not yet unique enough for a behavioral name Zp42 = $42; storage with a role not yet unique enough for a behavioral name Zp46 = $46; storage with a role not yet unique enough for a behavioral name Zp47 = $47; storage with a role not yet unique enough for a behavioral name Zp48 = $48; storage with a role not yet unique enough for a behavioral name Zp49 = $49; storage with a role not yet unique enough for a behavioral name Zp4A = $4A; storage with a role not yet unique enough for a behavioral name Zp4B = $4B; storage with a role not yet unique enough for a behavioral name Zp4C = $4C; storage with a role not yet unique enough for a behavioral name Zp4D = $4D; storage with a role not yet unique enough for a behavioral name Zp4E = $4E; storage with a role not yet unique enough for a behavioral name Zp52 = $52; storage with a role not yet unique enough for a behavioral name Zp56 = $56; storage with a role not yet unique enough for a behavioral name Zp58 = $58; storage with a role not yet unique enough for a behavioral name Zp59 = $59; storage with a role not yet unique enough for a behavioral name Zp5A = $5A; storage with a role not yet unique enough for a behavioral name Zp5B = $5B; storage with a role not yet unique enough for a behavioral name Zp5C = $5C; storage with a role not yet unique enough for a behavioral name Zp5D = $5D; storage with a role not yet unique enough for a behavioral name Zp5E = $5E; storage with a role not yet unique enough for a behavioral name Zp5F = $5F; storage with a role not yet unique enough for a behavioral name Zp60 = $60; storage with a role not yet unique enough for a behavioral name Zp61 = $61; storage with a role not yet unique enough for a behavioral name Zp62 = $62; storage with a role not yet unique enough for a behavioral name Zp63 = $63; storage with a role not yet unique enough for a behavioral name Zp64 = $64; storage with a role not yet unique enough for a behavioral name Zp65 = $65; storage with a role not yet unique enough for a behavioral name Zp66 = $66; storage with a role not yet unique enough for a behavioral name Zp67 = $67; storage with a role not yet unique enough for a behavioral name Zp68 = $68; storage with a role not yet unique enough for a behavioral name Zp69 = $69; storage with a role not yet unique enough for a behavioral name Zp6C = $6C; storage with a role not yet unique enough for a behavioral name Zp6E = $6E; storage with a role not yet unique enough for a behavioral name Zp6F = $6F; storage with a role not yet unique enough for a behavioral name Zp70 = $70; storage with a role not yet unique enough for a behavioral name Zp71 = $71; storage with a role not yet unique enough for a behavioral name Zp72 = $72; storage with a role not yet unique enough for a behavioral name Zp73 = $73; storage with a role not yet unique enough for a behavioral name Zp74 = $74; storage with a role not yet unique enough for a behavioral name Zp75 = $75; storage with a role not yet unique enough for a behavioral name Zp76 = $76; storage with a role not yet unique enough for a behavioral name Zp78 = $78; storage with a role not yet unique enough for a behavioral name Zp7E = $7E; storage with a role not yet unique enough for a behavioral name Zp80 = $80; storage with a role not yet unique enough for a behavioral name Zp85 = $85; storage with a role not yet unique enough for a behavioral name Zp86 = $86; storage with a role not yet unique enough for a behavioral name Zp91 = $91; storage with a role not yet unique enough for a behavioral name Zp93 = $93; storage with a role not yet unique enough for a behavioral name Zp94 = $94; storage with a role not yet unique enough for a behavioral name Zp95 = $95; storage with a role not yet unique enough for a behavioral name Zp96 = $96; storage with a role not yet unique enough for a behavioral name Zp97 = $97; storage with a role not yet unique enough for a behavioral name Zp99 = $99; storage with a role not yet unique enough for a behavioral name Zp9A = $9A; storage with a role not yet unique enough for a behavioral name Zp9D = $9D; storage with a role not yet unique enough for a behavioral name ZpA7 = $A7; storage with a role not yet unique enough for a behavioral name ZpAF = $AF; storage with a role not yet unique enough for a behavioral name ZpB7 = $B7; storage with a role not yet unique enough for a behavioral name ZpB9 = $B9; storage with a role not yet unique enough for a behavioral name ZpBE = $BE; storage with a role not yet unique enough for a behavioral name ZpC8 = $C8; storage with a role not yet unique enough for a behavioral name ZpC9 = $C9; storage with a role not yet unique enough for a behavioral name ZpCA = $CA; storage with a role not yet unique enough for a behavioral name ZpCB = $CB; storage with a role not yet unique enough for a behavioral name ZpCC = $CC; storage with a role not yet unique enough for a behavioral name ZpCD = $CD; storage with a role not yet unique enough for a behavioral name ZpCE = $CE; storage with a role not yet unique enough for a behavioral name ZpCF = $CF; storage with a role not yet unique enough for a behavioral name ZpD0 = $D0; storage with a role not yet unique enough for a behavioral name ZpD4 = $D4; storage with a role not yet unique enough for a behavioral name ZpD5 = $D5; storage with a role not yet unique enough for a behavioral name ZpD6 = $D6; storage with a role not yet unique enough for a behavioral name ZpD7 = $D7; storage with a role not yet unique enough for a behavioral name ZpD8 = $D8; storage with a role not yet unique enough for a behavioral name ZpD9 = $D9; storage with a role not yet unique enough for a behavioral name ZpDA = $DA; storage with a role not yet unique enough for a behavioral name ZpDB = $DB; storage with a role not yet unique enough for a behavioral name ZpDC = $DC; storage with a role not yet unique enough for a behavioral name ZpDD = $DD; storage with a role not yet unique enough for a behavioral name ZpDE = $DE; storage with a role not yet unique enough for a behavioral name ZpDF = $DF; storage with a role not yet unique enough for a behavioral name ZpE0 = $E0; storage with a role not yet unique enough for a behavioral name ZpE2 = $E2; storage with a role not yet unique enough for a behavioral name ZpE3 = $E3; storage with a role not yet unique enough for a behavioral name ZpE7 = $E7; storage with a role not yet unique enough for a behavioral name