Difference between revisions of "Castlevania III:RAM map"

From Data Crystal
Jump to navigation Jump to search
Line 2: Line 2:
 
  Address    Size    Description
 
  Address    Size    Description
 
  --------  ----    -----------
 
  --------  ----    -----------
  $19             Menu Mode (meaning depends on menu, i.e. title screen, password entry, game over, etc)
+
$0017              Repeat Counter
  $26             Controller 1 Pressed
+
$0018             System State
   $28             Controller 1
+
                            00 = Title; 02 = New Game; 03 = In-game Transition; 04 = In-Game;
   $32             Timer
+
                            05 = Game Over Transition; 06 = Game Over; 07 = Stage Select Debug;
  $35             Lives   
+
                            08 = Map Screen; 09 = Prayer Scene; 0a = Name Entry; 0b = Password Entry;
   $36             Score 0000xx    
+
                            0c = Epilogue; 0d = Credit Roll; 0e = Respawn; 0f = Sound Test Debug
   $37             Score 00xx00    
+
$0019              System Substate
   $38             Score xx0000  
+
$001A              Step Counter
   $39             Player   00 = None; 01 = Syfa; 02 = Grant; 03 = Alucard
+
$001C              Blackout Delay
  $3A             Partner  00 = None; 01 = Syfa; 02 = Grant; 03 = Alucard
+
$001F             Randomizer
  $3C             Energy  
+
$0026      #02    Controller Buttons Pressed
  $68             Menu selection (Start/Password or Continue/Password)
+
                            01 = right; 02 = left; 04 = down; 08 = up;
  $84             Hearts
+
                            10 = start; 20 = select; 40 = B; 80 = A
  $F8             Controller 1 Pressed (same as 26?)
+
$0028      #02   Controller Buttons Held
  $FA             Controller 1        (same as 28?)
+
$002A              Game State
   $7E              Time 00xx 
+
$002B              User Paused (toggled by Start button)
   $7F             Time xx00 
+
$002C             Boss Defeated
   
+
$002E              Checkpoint
 +
$002F              Grant Defeated
 +
$0030      #02   System Effect Timer
 +
$0032              Stage
 +
$0033              Block
 +
$0034             Room
 +
$0035             Lives   
 +
$0036      #03   Score 
 +
$003A              Partner 
 +
                            00 = Trevor; 01 = Syfa; 02 = Grant; 03 = Alucard; ff = None
 +
$003B              Partner Active
 +
$003C              Player's Health
 +
                            40 = full
 +
$003D              Boss Health
 +
$003E             Score Target (for extra life)
 +
$003F              Default Drawing State (write to $006D)
 +
$0046      #08   CHR Banks
 +
$004E              Hard Mode CHR Bank (overwrites $0049)
 +
$0056      #02   View Position (little endian)
 +
$0058             View Subpixel Position
 +
$0059              Left Spawn Area
 +
$005A              Right Spawn Area
 +
$005C              Tile Assembly Row Iterator
 +
$005D      #02    Tile Assembly Pointer
 +
$005F      #02   Pallet Map Pointer
 +
$0061      #02   Nametable Write Address
 +
$0063              Tile Assembly ID
 +
$0064              Transition Timer
 +
$0065             Scroll Direction
 +
                            00 = left; 01 = right; 02 = unchanged
 +
$0066              View Refreshed Position
 +
$0067              Update View
 +
  $0068              Room Orientation
 +
                            00 = horizontal; 80 or 81 = vertical; 82 = scroll up;
 +
                            83 = scroll down; 84 = collapse up; 85 = collapse down
 +
$0069      #02   Stair Map Address
 +
$006B             Player Animation State (for transitions)
 +
                    and menu selections
 +
$006C              Current Instance (saves X register)
 +
$006D              Drawing State
 +
$006E              View Speed
 +
$006F      #02    PPU Scroll
 +
$0071              Room Size
 +
$0072              CHR Write Mode
 +
                            00 or 03 = all CHR banks; 01 = status bar banks;  02 = clear NPC banks
 +
$0073              Previous Room Orientation
 +
$0074              Music Loaded
 +
$0075              Transition Nametable (nametable to use after door closes)
 +
$0076              Horizontal Spawner Block
 +
$0077              First Spawner Block
 +
$0078              Boss Scroll Lock
 +
$0079              Vertical Spawner Block
 +
$007A              Vertical Spawner Previous (?)
 +
$007B              Spawner Count
 +
$007D              Room Type
 +
                            10 = Stormclouds; 20 = Autowalk; 30 = River; 40 = Clockwork;
 +
                            50 and 60 = Watery Grave; 70 = Flood Zone; 80 = Collapsing Bridge
 +
                            Note: lower 4 bits alter behavior
 +
$007E      #02    Time
 +
$0080              Wounded Timer (invincibility frames)
 +
$0081              Damage Received
 +
$0082              PC Height
 +
                            00 = Trevor standing; 01 = Syfa standing; 02 = Grant standing; 03 = Alucard standing;
 +
                            04 = Trevor duck; 05 = Syfa duck; 06 = Grant duck; 07 = Alucard duck; 08 = Bat
 +
$0084              Hearts
 +
$0085              Trevor Subweapon
 +
                            00 = none; 01 = axe; 02 = boomerang; 03 = knife/book; 04 = holy water; 05 = fireball;
 +
                            06 = freeze; 07 = orb; 08 = axe; 09 = boomerang; 0a = knife/book ;0b = clock
 +
$0086              Partner Subweapon
 +
$0087              Trevor Subweapon Multiplier  00 = none; 01 = [II]; 02 = [III]
 +
$0088             Partner Subweapon Multiplier
 +
  $008B              Conveyance
 +
                            01 = Elevator/Frozen enemy; 02 = Scroll-locked right; 05 = Teeter-totter;
 +
                            06 = Cogwheel; 07 = Mud; 08 = Waterfall; 09 = Waterfall w/current;
 +
                            0a = Conveyor left; 0b = Conveyor right; 0d = Petrified; 0e = Auto-walk
 +
$008C              Whip Spark Timer
 +
$008D              Room Initialized
 +
$008E              Trevor Weapon Level 
 +
                            00 = short; 01 = medium; 02 = long
 +
$008F              Partner Weapon Level
 +
                            00 = one orb; 01 = two orbs; 03 = three orbs
 +
$0090              Knockback Direction
 +
                            00 = left; 01 = right
 +
$0091              Conveyor (see $008B)
 +
$0093              Cog Proximity
 +
                            00 = none; 01 = right OR below; 02 = right AND below
 +
$0094              Cog ID
 +
$0095              Cogwheel Size
 +
                            00 = small; 01 = large
 +
$009C              Subweapon Kill Count (affects multiplier drops)
 +
$009D              Variable Jump (for Grant)
 +
$009E              Subweapon Iterator
 +
$009F              Previous Game State
 +
$00A0              Recent Player Direction (copy of $009E)
 +
$00A1              Previous Player Direction (copy of $0062)
 +
$00A3              Game Step Counter (only increments while game not paused)
 +
$00A5              Check Right Tile
 +
$00AB              Stopwatch Active
 +
$00AC              Stopwatch Timer
 +
$00AD              Invincibility Potion Timer
 +
$00AE              Alucard Bat Timer (drains 1 heart when decreased to 0)
 +
$00AF              Landing Delay (prevents walking between elevators)
 +
$00B0              Load Doppelganger Sprites (forces CHR updates)
 +
$00B1              Current Instance (backup for X register)
 +
$00B8             Current Platform (ID of elevator or frozen enemy)
 +
  $00B9              Crash Timer (stuns Player after falling too far)
 +
$00BA              Boss Fight
 +
$00BF             Faint Pause (pauses game when killed or time runs out)
 +
$00C8              Horizontal Scroll Lock (used by crumbling bridge)
 +
$00CA              Flood Height
 +
$00CE              Weapon Kill Count (affects item drops)
 +
$00CF             Previous Conveyance (backup of $0088)
 +
$00D0             Vertical Ceiling (lowest y-coordinate in vertical room)
 +
$00EF             Audio Sample
 +
$00F0      #04    Candle Status (32-bit mask)
 +
$00F4      #04    Breakable Wall Status
 +
                            00 = unused/unbroken; ff = broken
 +
$00F8      #02   Previous Controller Buttons Pressed
 +
$00FA      #02    Previous Controller Buttons Held
 +
$00FC      #02   PPU Scroll
 +
$00FE             PPU Mask (for hue shifts and greyscale)
 +
  $00FF              PPU Control
 
  $0200      $100    OAM (sprites)
 
  $0200      $100    OAM (sprites)
 
   
 
   
  $05D8              Timer before crouch-landing (starts at 07 (when a jump starts), augments +1/frame until player starts falling and then decreases -1/frame until 00)
+
$0400      #1c    Sprite Frame Index
   
+
$041C      #1c    Y-Coordinate
  $0790      $10   Password data (populated during password entry)
+
$0438      #1c    X-Coordinate
  $07A0       $10   Password data (for display on game over)
+
$0454      #1c    Pallet Offset
  $07F8       $8   Player name
+
$0470      #1c    Attributes
 +
                            01 = destroyed; 02 = frozen; 04 = unknown; 08 = flicker;
 +
                            10 = illusory; 20 = inanimate; 40 = moving; 80 = invisible
 +
$048C      #1c    Animation Batch (even numbers)
 +
                            00-06 = Player; 08-12 = NPCs; 14 = Epilogue; 16-1C = Doppelganger
 +
$04A8      #1C    Sprite Mirrored
 +
$04C4      #17    X-Coordinate Subpixel
 +
$04DB      #17    Y-Coordinate Subpixel
 +
$04F2      #17    Horizontal Speed
 +
$0509      #17    Horizontal Speed Subpixel
 +
$0520      #17    Vertical Speed
 +
$0537      #17    Vertical Speed Subpixel
 +
$054E      #17    Object Index
 +
$0565              Player State
 +
$0566      #11    Stun Timer
 +
$0578              Weapon State
 +
$0579      #03    Subweapon State
 +
$057C      #17    Animation Timer
 +
$0593      #17    Sprite Frame (used to calculate $0400,X)
 +
$05AA      #17    Sprite Index
 +
$05C1              Moving Down
 +
$05C2      #12    NPC State
 +
$05D4              Player Stunned State
 +
$05D5      #03    Subweapon Throw Delay
 +
  $05D8              Player Jump State
 +
                              00-1D = Trevor/Syfa/Alucard; 1E-39 = Grant
 +
$05D9      #0c    Boss Use
 +
$05E5      #06    Candle Drop
 +
                              83 = Axe; 84 = Cross; 85 = Dagger; 86 = Holy Water; 87 = Stopwatch;
 +
                              88 = Syfa Fire; 89 = Syfa Ice; 8a = Syfa Water; 8b = Grant Dagger;
 +
                              8c Grant Axe; 8d-8f = Upgrades (8f removed); 90 = Wall Meat;
 +
                              91 = Invincibility Potion; 92 = Rosary; 93-9b = Coins; 9c = 1UP;
 +
                              9d = Big Heart; 9e = Small Heart; 9f-a0 = Multipliers
 +
$05EB              Stair Stun Timer
 +
$05EF              Stair Direction
 +
                    Grant Jump State Fraction (functions like speed variables)
 +
$05F0      #12    AI Class (determines behavior)
 +
$0602              Stair Stun (decreases $05EB)
 +
$0606              Grant Gravity Subpixel (increases $05EF for Grant)
 +
$0607      #12    State Timer (time between state changes for most NPCs)
 +
                    Sinusoid Center Axis
 +
$0619              Ally Swap Y-Coordinate
 +
$061A      #03    Subweapon Damage
 +
$061D              Stair Timer (time to climb one step)
 +
                    Grant Gravity (increases $05D8 for Grant)
 +
$061E      #12    Miscellaneous Ticker (usually timer or counter for NPCs)
 +
$0630              Weapon Damage
 +
$0631      #03    Subweapon Deflection (copy of $0658,X on Cross hit)
 +
$0634      #17    Miscellaneous Use (used by a couple NPCs)
 +
$0646      #12    Spawner Index
 +
$0658      #0d    NPC Damage
 +
$0664      #06    Candle Active
 +
$066A      #12    Applied Effect (copy of $061A,X on subweapon hit)
 +
$067B      #12    NPC Hitpoints
 +
$068E      #12    Weapons Impact
 +
                              01 = weapon; 02 = subweapon 1; 04 = subweapon 2; 08 = subweapon 3
 +
$06DC              Music Paused
 +
$06DD              Boss Scream Cutoff
 +
$06E0      #90    Collision Map
 +
$0770      #08    CHR5 Solid Definitions
 +
                              Byte 0 = empty; Byte 1 = mud; Byte 2 = convey right; Byte 3 = convey left;
 +
                              Byte 4 = crumbling; Byte 5 = ceiling spike; Byte 6 = solid; Byte 7 = floor spike
 +
$0778      #08    CHR6 Solid Definitions
 +
$0780              Background Animation Frame
 +
$0780              Entry Selector Column
 +
$0780              Map Clipping
 +
                              00 = To Grant; 01 = To Syfa; 02 = From Alucard
 +
$0781              Background Animation Timer
 +
$0781              Entry Selector Row
 +
$0781              Map Fade-out Value
 +
$0782              Previous Selector Column
 +
$0782              Map Timer
 +
$0782              Epilogue Ally
 +
$0783              Previous Selector Row
 +
$0783              Map Horizontal Speed Subpixel
 +
$0783              Epilogue State
 +
$0784              Name Cursor Position
 +
$0784              Map Horizontal Speed
 +
$0784              Castle Shake Direction
 +
$0785              Map Vertical Speed Subpixel
 +
$0785              Epilogue Text Page
 +
$0786              Password Icon
 +
$0786              Map Vertical Speed
 +
$0787              Previous Password Icon
 +
$0787              Map Scroll Timer
 +
$0788      #02    Password Decryption Dump
 +
$0788              Map X-coordinate Subpixel
 +
$0788              Epilogue Scroll Timer
 +
$0789              Map Y-coordinate Subpixel
 +
$078A              Epilogue Timer
 +
$078A              Map Path PPU Scroll
 +
$078B              Password Errors (used for debugging)
 +
  $088B              Map Path PPU Control
 +
$078C      #02    Map Path PPU Address
 +
$078C              Update Selector
 +
  $0790      #10    Entered Password
 +
                              00 = empty; 01 = whip; 02 = cross; 03 = heart
 +
$0790              Map Screen Platform
 +
                              00 = full; 01 = short west; 02 = bottom east;
 +
                              03 = top west; 04 = middle west; 05 = bottom west
 +
$07A0      #0a   Generated Password
 +
$07B1      #02    Stacked Breakable Wall
 +
$07B3      #02    Lower Block Broken
 +
$07B5      #02    Upper Block Broken
 +
$07B7      #02    Wall ID (points to $00F4,X)
 +
  $07C2      #06    Spawner Type
 +
$07C8      #06    Spawner State
 +
$07CE      #06    Spawner Timer
 +
$07D4      #06    Spawner Y-Coordinate
 +
$07DA      #06    Spawner x-Coordinate
 +
$07E0      #06    Spawner Offscreen
 +
$07E6       #06    Spawner NPC Object
 +
$07EC      #06   Bone Dragon King Frames (two ribs per byte)
 +
$07EC              Cyclops Lightning State
 +
                    Bone Dragon Cycle
 +
                    Giant Bat Leader
 +
                    Dracula Phase
 +
                              00 = Dracula; 01 = demon; 02 = Pazuzu
 +
$07ED              Victory State
 +
                    Bone Dragon Mirrored
 +
                    Collapsing Bridge Length
 +
                    Giant Bat State
 +
$07EE              Bone Dragon Fireball Timer
 +
                    Death Scythe Count
 +
$07EF              Bone Dragon Attacking
 +
$07F3              Boss Phase
 +
                              00 = boss fight; 01 = boss defeat; 02 = crystal drop;
 +
                              03 = battle over; 80 = boss waiting
 +
                    Victory Delay (timer after battle over)
 +
$07F6              Hard Mode
 +
  $07F8       #08   Player Name
  
  
Line 42: Line 293:
 
  $0020              Randomizer
 
  $0020              Randomizer
 
  $0021              PPU Bank (write to $B003)
 
  $0021              PPU Bank (write to $B003)
  $0028         2   Controller Buttons Pressed
+
  $0028       #02   Controller Buttons Pressed
 
                             01 = right; 02 = left; 04 = down; 08 = up;
 
                             01 = right; 02 = left; 04 = down; 08 = up;
 
                             10 = start; 20 = select; 40 = B; 80 = A
 
                             10 = start; 20 = select; 40 = B; 80 = A
  $002A         2   Controller Buttons Held
+
  $002A       #02   Controller Buttons Held
 
  $002C              Game State
 
  $002C              Game State
 
  $002D              User Paused (toggled by Start button)
 
  $002D              User Paused (toggled by Start button)
  $002E              Stage Clear
+
  $002E              Boss Defeated
 
  $0030              Checkpoint (used for Password Entry)
 
  $0030              Checkpoint (used for Password Entry)
 
  $0031              Grant Defeated  
 
  $0031              Grant Defeated  
  $0032         2   System Effect Timer
+
  $0032       #02   System Effect Timer
 
  $0034              Stage
 
  $0034              Stage
 
  $0035              Block
 
  $0035              Block
 
  $0036              Room
 
  $0036              Room
 
  $0037              Lives
 
  $0037              Lives
  $0038         8   CHR Banks
+
  $0038       #08   CHR Banks
 
  $0040              IRQ Control
 
  $0040              IRQ Control
  $0041         2   IRQ Latch
+
  $0041       #02   IRQ Latch
 
  $0043              Default Drawing State (write to $006A)
 
  $0043              Default Drawing State (write to $006A)
  $0044         3   Score (little endian)
+
  $0044       #03   Score
 
  $0048              Partner   
 
  $0048              Partner   
 
                             00 = Trevor; 01 = Syfa; 02 = Grant; 03 = Alucard; ff = None
 
                             00 = Trevor; 01 = Syfa; 02 = Grant; 03 = Alucard; ff = None
  $0049              Partner Active (bool)
+
  $0049              Partner Active
 
  $004A              Player's Health
 
  $004A              Player's Health
 
                             40 = full
 
                             40 = full
 
  $004B              Boss Health  
 
  $004B              Boss Health  
  $0053         2   View Position (little endian)
+
$004C              Score Target (for extra life)
 +
  $0053       #02   View Position  
 
  $0055              View Subpixel Position
 
  $0055              View Subpixel Position
 
  $0056              Left Spawn Area
 
  $0056              Left Spawn Area
 
  $0057              Right Spawn Area
 
  $0057              Right Spawn Area
  $005A         2   Tile Assembly Pointer
+
  $005A       #02   Tile Assembly Pointer
  $005C         2   Pallet Map Pointer
+
  $005C       #02   Pallet Map Pointer
  $005E         2   Nametable Write Address
+
  $005E       #02   Nametable Write Address
 
  $0060              Tile Assembly ID
 
  $0060              Tile Assembly ID
 
  $0061              Transition Timer
 
  $0061              Transition Timer
  $0062              Player Direction
+
  $0062              Scroll Direction
                             00 = left; 01 = right; 02 = still
+
                             00 = left; 01 = right; 02 = unchanged
 
  $0063              View Refreshed Position
 
  $0063              View Refreshed Position
 
  $0064              Update View
 
  $0064              Update View
Line 83: Line 335:
 
                             00 = horizontal; 80 or 81 = vertical; 82 = scroll up;
 
                             00 = horizontal; 80 or 81 = vertical; 82 = scroll up;
 
                             83 = scroll down; 84 = collapse up; 85 = collapse down
 
                             83 = scroll down; 84 = collapse up; 85 = collapse down
  $0066         2   Stair Map Address
+
  $0066       #02   Stair Map Address
 
  $0068              Player Animation State (for transitions)
 
  $0068              Player Animation State (for transitions)
 
  $0069              Current Instance (saves X register)
 
  $0069              Current Instance (saves X register)
 
  $006A              Drawing State
 
  $006A              Drawing State
 
  $006B              View Speed
 
  $006B              View Speed
  $006C         2   PPU Write Position
+
  $006C       #02   PPU Write Position
 
  $006E              Room Size
 
  $006E              Room Size
 
  $006F              CHR Write Mode
 
  $006F              CHR Write Mode
Line 96: Line 348:
 
  $0072              Transition Nametable (nametable to use after door closes)
 
  $0072              Transition Nametable (nametable to use after door closes)
 
  $0073              Horizontal Spawner Block
 
  $0073              Horizontal Spawner Block
  $0074              Leftmost Spawner Block
+
  $0074              First Spawner Block
 
  $0075              Boss Scroll Lock
 
  $0075              Boss Scroll Lock
 
  $0076              Vertical Spawner Block
 
  $0076              Vertical Spawner Block
Line 104: Line 356:
 
                             10 = Stormclouds; 20 = Autowalk; 30 = River; 40 = Clockwork;
 
                             10 = Stormclouds; 20 = Autowalk; 30 = River; 40 = Clockwork;
 
                             50 and 60 = Watery Grave; 70 = Flood Zone; 80 = Collapsing Bridge
 
                             50 and 60 = Watery Grave; 70 = Flood Zone; 80 = Collapsing Bridge
  $007b        2   Time (little endian)
+
                            Note: lower 4 bits alter behavior
 +
  $007B      #02   Time  
 +
$007D              Wounded Timer (invincibility frames)
 +
$007E              Damage Received
 +
$007F              PC Height
 +
                            00 = Trevor standing; 01 = Syfa standing; 02 = Grant standing; 03 = Alucard standing;
 +
                            04 = Trevor duck; 05 = Syfa duck; 06 = Grant duck; 07 = Alucard duck; 08 = Bat
 
  $0081              Hearts
 
  $0081              Hearts
  $0082              Trevor Weapon
+
  $0082              Trevor Subweapon
 
                             00 = none; 01 = axe; 02 = boomerang; 03 = knife/book; 04 = holy water; 05 = fireball;  
 
                             00 = none; 01 = axe; 02 = boomerang; 03 = knife/book; 04 = holy water; 05 = fireball;  
 
                             06 = freeze; 07 = orb; 08 = axe; 09 = boomerang; 0a = knife/book ;0b = clock
 
                             06 = freeze; 07 = orb; 08 = axe; 09 = boomerang; 0a = knife/book ;0b = clock
  $0083              Partner Weapon
+
  $0083              Partner Subweapon
  $84             Weapon Multiplier  00 = none; 01 = [II]; 02 = [III]
+
$0084             Trevor Subweapon Multiplier  00 = none; 01 = [II]; 02 = [III]
  $85             Partner Weapon Multiplier
+
$0085             Partner Subweapon Multiplier
  $8b             Whip  00 = short; 01 = medium; 02 = long
+
$0088              Conveyance
 +
                            01 = Elevator/Frozen enemy; 02 = Scroll-locked right; 05 = Teeter-totter;
 +
                            06 = Cogwheel; 07 = Mud; 08 = Waterfall; 09 = Waterfall w/current;
 +
                            0a = Conveyor left; 0b = Conveyor right; 0d = Petrified; 0e = Auto-walk
 +
$0089             Whip Spark Timer
 +
$008A              Room Initialized
 +
$008B              Trevor Weapon Level    
 +
                            00 = short; 01 = medium; 02 = long
 +
$008C              Partner Weapon Level
 +
                            00 = one orb; 01 = two orbs; 03 = three orbs
 +
$008D              Knockback Direction
 +
                            00 = left; 01 = right
 +
$008E              Conveyor (see $0088)
 +
$0090              Cog Proximity
 +
                            00 = none; 01 = right OR below; 02 = right AND below
 +
$0091              Cog ID
 +
$0092              Cogwheel Size
 +
                            00 = small; 01 = large
 +
$0099              Subweapon Kill Count (affects multiplier drops)
 +
$009A              Variable Jump (for Grant)
 +
$009B              Subweapon Iterator
 +
$009C              Previous Game State
 +
$009D              Recent Player Direction (copy of $009E)
 +
$009E              Previous Player Direction (copy of $0062)
 +
$00A0              Game Step Counter (only increments while game not paused)
 +
$00A2              Check Right Tile
 +
$00A8              Stopwatch Active
 +
$00A9              Stopwatch Timer
 +
$00AA              Invincibility Potion Timer
 +
$00AB              Alucard Bat Timer (drains 1 heart when decreased to 0)
 +
$00AC              Landing Delay (prevents walking between elevators)
 +
$00AD              Load Doppelganger Sprites (forces CHR updates)
 +
$00AE              Current Instance (backup for X register)
 +
$00B5              Current Platform (ID of elevator or frozen enemy)
 +
$00B6              Crash Timer (stuns Player after falling too far)
 +
$00B7              Boss Fight
 +
$00BC              Faint Pause (pauses game when killed or time runs out)
 +
$00C5              Horizontal Scroll Lock (used by crumbling bridge)
 +
$00C7              Flood Height
 +
$00CB              Weapon Kill Count (affects item drops)
 +
$00CC              Previous Conveyance (backup of $0088)
 +
$00CD              Vertical Ceiling (lowest y-coordinate in vertical room)
 +
$00EF              Audio Sample
 +
$00F0      #04    Candle Status (32-bit mask)
 +
$00F4      #04    Breakable Wall Status
 +
                            00 = unused/unbroken; ff = broken
 +
$00F8      #02    Previous Controller Buttons Pressed
 +
$00FA      #02    Previous Controller Buttons Held
 +
$00FC      #02    PPU Scroll
 +
$00FE              PPU Mask (for hue shifts and greyscale)
 +
$00FF              PPU Control
 +
$0400      #1c    Sprite Frame Index
 +
$041C      #1c    Y-Coordinate
 +
$0438      #1c    X-Coordinate
 +
$0454      #1c    Pallet Offset
 +
$0470      #1c    Attributes
 +
                            01 = destroyed; 02 = frozen; 04 = unknown; 08 = flicker;
 +
                            10 = illusory; 20 = inanimate; 40 = moving; 80 = invisible
 +
$048C      #1c    Animation Batch (even numbers)
 +
                            00-06 = Player; 08-12 = NPCs; 14 = Epilogue; 16-1C = Doppelganger
 +
$04A8      #1C    Sprite Mirrored
 +
$04C4      #17    X-Coordinate Subpixel
 +
$04DB      #17    Y-Coordinate Subpixel
 +
$04F2      #17    Horizontal Speed
 +
$0509      #17    Horizontal Speed Subpixel
 +
$0520      #17    Vertical Speed
 +
$0537      #17    Vertical Speed Subpixel
 +
$054E      #17    Object Index
 +
$0565              Player State
 +
$0566      #11    Stun Timer
 +
$0578              Weapon State
 +
$0579      #03    Subweapon State
 +
$057C      #17    Animation Timer
 +
$0593      #17    Sprite Frame (used to calculate $0400,X)
 +
$05AA      #17    Sprite Index
 +
$05C1              Moving Down
 +
$05C2      #12    NPC State
 +
$05D4              Player Stunned State
 +
$05D5      #03    Subweapon Throw Delay
 +
$05D8              Player Jump State
 +
                              00-1D = Trevor/Syfa/Alucard; 1E-39 = Grant
 +
$05D9      #0c    Boss Use
 +
$05E5      #06    Candle Drop
 +
                              83 = Axe; 84 = Cross; 85 = Dagger; 86 = Holy Water; 87 = Stopwatch;
 +
                              88 = Syfa Fire; 89 = Syfa Ice; 8a = Syfa Water; 8b = Grant Dagger;
 +
                              8c Grant Axe; 8d-8f = Upgrades (8f removed); 90 = Wall Meat;
 +
                              91 = Invincibility Potion; 92 = Rosary; 93-9b = Coins; 9c = 1UP;
 +
                              9d = Big Heart; 9e = Small Heart; 9f-a0 = Multipliers
 +
$05EB              Stair Stun Timer
 +
$05EF              Stair Direction
 +
                    Grant Jump State Fraction (functions like speed variables)
 +
$05F0      #12    AI Class (determines behavior)
 +
$0602              Stair Stun (decreases $05EB)
 +
$0606              Grant Gravity Subpixel (increases $05EF for Grant)
 +
$0607      #12    State Timer (time between state changes for most NPCs)
 +
                    Sinusoid Center Axis
 +
$0619              Ally Swap Y-Coordinate
 +
$061A      #03    Subweapon Damage
 +
$061D              Stair Timer (time to climb one step)
 +
                    Grant Gravity (increases $05D8 for Grant)
 +
$061E      #12    Miscellaneous Ticker (usually timer or counter for NPCs)
 +
$0630              Weapon Damage
 +
$0631      #03    Subweapon Deflection (copy of $0658,X on Cross hit)
 +
$0634      #17    Miscellaneous Use (used by a couple NPCs)
 +
$0646      #12    Spawner Index
 +
$0658      #0d    NPC Damage
 +
$0664      #06    Candle Active
 +
$066A      #12    Applied Effect (copy of $061A,X on subweapon hit)
 +
$067B      #12    NPC Hitpoints
 +
$068E      #12    Weapons Impact
 +
                              01 = weapon; 02 = subweapon 1; 04 = subweapon 2; 08 = subweapon 3
 +
$06DC              Music Paused
 +
$06DD              Boss Scream Cutoff
 +
$06E0      #90    Collision Map
 +
$0770      #08    CHR5 Solid Definitions
 +
                              Byte 0 = empty; Byte 1 = mud; Byte 2 = convey right; Byte 3 = convey left;
 +
                              Byte 4 = crumbling; Byte 5 = ceiling spike; Byte 6 = solid; Byte 7 = floor spike
 +
$0778      #08    CHR6 Solid Definitions
 +
$0780              Background Animation Frame
 +
$0781              Background Animation Timer
 +
$0782              Epilogue Ally
 +
$0783              Epilogue State
 +
$0784              Castle Shake
 +
$0785              Epilogue Text Page
 +
$0780              Entry Selector Column
 +
$0780              Entry Selector Column
 +
$0780              Map Clipping
 +
                              00 = To Grant; 01 = To Syfa; 02 = From Alucard
 +
$0781              Background Animation Timer
 +
$0781              Entry Selector Row
 +
$0781              Map Fade-out Value
 +
$0782              Previous Selector Column
 +
$0782              Map Timer
 +
$0782              Epilogue Ally
 +
$0783              Previous Selector Row
 +
$0783              Map Horizontal Speed Subpixel
 +
$0783              Epilogue State
 +
$0784              Name Cursor Position
 +
$0784              Map Horizontal Speed
 +
$0784              Castle Shake Direction
 +
$0785              Map Vertical Speed Subpixel
 +
$0785              Epilogue Text Page
 +
$0786              Password Icon
 +
$0786              Map Vertical Speed
 +
$0787              Previous Password Icon
 +
$0787              Map Scroll Timer
 +
$0788      #02    Password Decryption Dump
 +
$0788              Map X-coordinate Subpixel
 +
$0788              Epilogue Scroll Timer
 +
$0789              Map Y-coordinate Subpixel
 +
$078A              Epilogue Timer
 +
$078A              Map Path PPU Scroll
 +
$078B              Password Errors (used for debugging)
 +
$088B              Map Path PPU Control
 +
$078C      #02    Map Path PPU Address
 +
$078C              Update Selector
 +
$0790      #10    Entered Password
 +
                              00 = empty; 01 = whip; 02 = cross; 03 = heart
 +
$0790              Map Screen Platform
 +
                              00 = full; 01 = short west; 02 = bottom east;
 +
                              03 = top west; 04 = middle west; 05 = bottom west
 +
$07A0      #0a    Generated Password
 +
$07B1      #02    Stacked Breakable Wall
 +
$07B3      #02    Lower Block Broken
 +
$07B5      #02    Upper Block Broken
 +
$07B7      #02    Wall ID (points to $00F4,X)
 +
$07C2      #06    Spawner Type
 +
$07C8      #06    Spawner State
 +
$07CE      #06    Spawner Timer
 +
$07D4      #06    Spawner Y-Coordinate
 +
$07DA      #06    Spawner x-Coordinate
 +
$07E0      #06    Spawner Offscreen
 +
$07E6      #06    Spawner NPC Object
 +
$07EC      #06    Bone Dragon King Frames (two ribs per byte)
 +
$07EC              Cyclops Lightning State
 +
                    Bone Dragon Cycle
 +
                    Giant Bat Leader
 +
                    Dracula Phase
 +
                              00 = Dracula; 01 = demon; 02 = Pazuzu
 +
$07ED              Victory State
 +
                    Bone Dragon Mirrored
 +
                    Collapsing Bridge Length
 +
                    Giant Bat State
 +
$07EE              Bone Dragon Fireball Timer
 +
                    Death Scythe Count
 +
$07EF              Bone Dragon Attacking
 +
$07F3              Boss Phase
 +
                              00 = boss fight; 01 = boss defeat; 02 = crystal drop;
 +
                              03 = battle over; 80 = boss waiting
 +
                    Victory Delay (timer after battle over)
 +
$07F6              Hard Mode
 +
$07F8      #08    Player Name
  
 
{{Internal Data|game=Castlevania III}}
 
{{Internal Data|game=Castlevania III}}

Revision as of 16:09, 17 June 2022

Address    Size    Description
--------   ----    -----------
$0017              Repeat Counter
$0018              System State
                            00 = Title; 02 = New Game; 03 = In-game Transition; 04 = In-Game;
                            05 = Game Over Transition; 06 = Game Over; 07 = Stage Select Debug;
                            08 = Map Screen; 09 = Prayer Scene; 0a = Name Entry; 0b = Password Entry;
                            0c = Epilogue; 0d = Credit Roll; 0e = Respawn; 0f = Sound Test Debug
$0019              System Substate
$001A              Step Counter
$001C              Blackout Delay
$001F              Randomizer
$0026       #02    Controller Buttons Pressed
                            01 = right; 02 = left; 04 = down; 08 = up;
                            10 = start; 20 = select; 40 = B; 80 = A
$0028       #02    Controller Buttons Held
$002A              Game State
$002B              User Paused (toggled by Start button)
$002C              Boss Defeated
$002E              Checkpoint
$002F              Grant Defeated
$0030       #02    System Effect Timer
$0032              Stage
$0033              Block
$0034              Room
$0035              Lives   
$0036       #03    Score  
$003A              Partner   
                            00 = Trevor; 01 = Syfa; 02 = Grant; 03 = Alucard; ff = None
$003B              Partner Active 
$003C              Player's Health
                            40 = full
$003D              Boss Health 
$003E              Score Target (for extra life)
$003F              Default Drawing State (write to $006D)
$0046       #08    CHR Banks
$004E              Hard Mode CHR Bank (overwrites $0049)
$0056       #02    View Position (little endian) 
$0058              View Subpixel Position
$0059              Left Spawn Area
$005A              Right Spawn Area
$005C              Tile Assembly Row Iterator
$005D       #02    Tile Assembly Pointer
$005F       #02    Pallet Map Pointer
$0061       #02    Nametable Write Address
$0063              Tile Assembly ID
$0064              Transition Timer
$0065              Scroll Direction
                            00 = left; 01 = right; 02 = unchanged
$0066              View Refreshed Position
$0067              Update View
$0068              Room Orientation
                            00 = horizontal; 80 or 81 = vertical; 82 = scroll up;
                            83 = scroll down; 84 = collapse up; 85 = collapse down
$0069       #02    Stair Map Address
$006B              Player Animation State (for transitions)
                   and menu selections
$006C              Current Instance (saves X register)
$006D              Drawing State
$006E              View Speed
$006F       #02    PPU Scroll 
$0071              Room Size
$0072              CHR Write Mode
                            00 or 03 = all CHR banks; 01 = status bar banks;  02 = clear NPC banks
$0073              Previous Room Orientation
$0074              Music Loaded
$0075              Transition Nametable (nametable to use after door closes)
$0076              Horizontal Spawner Block
$0077              First Spawner Block
$0078              Boss Scroll Lock
$0079              Vertical Spawner Block
$007A              Vertical Spawner Previous (?)
$007B              Spawner Count
$007D              Room Type
                            10 = Stormclouds; 20 = Autowalk; 30 = River; 40 = Clockwork;
                            50 and 60 = Watery Grave; 70 = Flood Zone; 80 = Collapsing Bridge
                            Note: lower 4 bits alter behavior
$007E       #02    Time
$0080              Wounded Timer (invincibility frames)
$0081              Damage Received
$0082              PC Height
                            00 = Trevor standing; 01 = Syfa standing; 02 = Grant standing; 03 = Alucard standing;
                            04 = Trevor duck; 05 = Syfa duck; 06 = Grant duck; 07 = Alucard duck; 08 = Bat
$0084              Hearts
$0085              Trevor Subweapon
                            00 = none; 01 = axe; 02 = boomerang; 03 = knife/book; 04 = holy water; 05 = fireball; 
                            06 = freeze; 07 = orb; 08 = axe; 09 = boomerang; 0a = knife/book ;0b = clock
$0086              Partner Subweapon
$0087              Trevor Subweapon Multiplier   00 = none; 01 = [II]; 02 = [III]
$0088              Partner Subweapon Multiplier
$008B              Conveyance
                            01 = Elevator/Frozen enemy; 02 = Scroll-locked right; 05 = Teeter-totter;
                            06 = Cogwheel; 07 = Mud; 08 = Waterfall; 09 = Waterfall w/current;
                            0a = Conveyor left; 0b = Conveyor right; 0d = Petrified; 0e = Auto-walk
$008C              Whip Spark Timer
$008D              Room Initialized
$008E              Trevor Weapon Level   
                            00 = short; 01 = medium; 02 = long
$008F              Partner Weapon Level
                            00 = one orb; 01 = two orbs; 03 = three orbs
$0090              Knockback Direction
                            00 = left; 01 = right
$0091              Conveyor (see $008B)
$0093              Cog Proximity
                            00 = none; 01 = right OR below; 02 = right AND below
$0094              Cog ID
$0095              Cogwheel Size
                            00 = small; 01 = large
$009C              Subweapon Kill Count (affects multiplier drops)
$009D              Variable Jump (for Grant)
$009E              Subweapon Iterator
$009F              Previous Game State
$00A0              Recent Player Direction (copy of $009E)
$00A1              Previous Player Direction (copy of $0062)
$00A3              Game Step Counter (only increments while game not paused)
$00A5              Check Right Tile
$00AB              Stopwatch Active
$00AC              Stopwatch Timer
$00AD              Invincibility Potion Timer
$00AE              Alucard Bat Timer (drains 1 heart when decreased to 0)
$00AF              Landing Delay (prevents walking between elevators)
$00B0              Load Doppelganger Sprites (forces CHR updates)
$00B1              Current Instance (backup for X register)
$00B8              Current Platform (ID of elevator or frozen enemy)
$00B9              Crash Timer (stuns Player after falling too far)
$00BA              Boss Fight
$00BF              Faint Pause (pauses game when killed or time runs out)
$00C8              Horizontal Scroll Lock (used by crumbling bridge)
$00CA              Flood Height
$00CE              Weapon Kill Count (affects item drops)
$00CF              Previous Conveyance (backup of $0088)
$00D0              Vertical Ceiling (lowest y-coordinate in vertical room)
$00EF              Audio Sample
$00F0       #04    Candle Status (32-bit mask)
$00F4       #04    Breakable Wall Status
                            00 = unused/unbroken; ff = broken
$00F8       #02    Previous Controller Buttons Pressed
$00FA       #02    Previous Controller Buttons Held
$00FC       #02    PPU Scroll
$00FE              PPU Mask (for hue shifts and greyscale)
$00FF              PPU Control 
$0200      $100    OAM (sprites)

$0400       #1c    Sprite Frame Index
$041C       #1c    Y-Coordinate
$0438       #1c    X-Coordinate 
$0454       #1c    Pallet Offset
$0470       #1c    Attributes
                            01 = destroyed; 02 = frozen; 04 = unknown; 08 = flicker;
                            10 = illusory; 20 = inanimate; 40 = moving; 80 = invisible
$048C       #1c    Animation Batch (even numbers)
                            00-06 = Player; 08-12 = NPCs; 14 = Epilogue; 16-1C = Doppelganger
$04A8       #1C    Sprite Mirrored
$04C4       #17    X-Coordinate Subpixel
$04DB       #17    Y-Coordinate Subpixel
$04F2       #17    Horizontal Speed
$0509       #17    Horizontal Speed Subpixel
$0520       #17    Vertical Speed
$0537       #17    Vertical Speed Subpixel
$054E       #17    Object Index
$0565              Player State
$0566       #11    Stun Timer
$0578              Weapon State
$0579       #03    Subweapon State
$057C       #17    Animation Timer
$0593       #17    Sprite Frame (used to calculate $0400,X)
$05AA       #17    Sprite Index
$05C1              Moving Down
$05C2       #12    NPC State
$05D4              Player Stunned State
$05D5       #03    Subweapon Throw Delay
$05D8              Player Jump State
                             00-1D = Trevor/Syfa/Alucard; 1E-39 = Grant
$05D9       #0c    Boss Use
$05E5       #06    Candle Drop
                             83 = Axe; 84 = Cross; 85 = Dagger; 86 = Holy Water; 87 = Stopwatch;
                             88 = Syfa Fire; 89 = Syfa Ice; 8a = Syfa Water; 8b = Grant Dagger;
                             8c Grant Axe; 8d-8f = Upgrades (8f removed); 90 = Wall Meat; 
                             91 = Invincibility Potion; 92 = Rosary; 93-9b = Coins; 9c = 1UP; 
                             9d = Big Heart; 9e = Small Heart; 9f-a0 = Multipliers
$05EB              Stair Stun Timer
$05EF              Stair Direction
                   Grant Jump State Fraction (functions like speed variables)
$05F0       #12    AI Class (determines behavior)
$0602              Stair Stun (decreases $05EB)
$0606              Grant Gravity Subpixel (increases $05EF for Grant)
$0607       #12    State Timer (time between state changes for most NPCs)
                   Sinusoid Center Axis
$0619              Ally Swap Y-Coordinate
$061A       #03    Subweapon Damage
$061D              Stair Timer (time to climb one step)
                   Grant Gravity (increases $05D8 for Grant)
$061E       #12    Miscellaneous Ticker (usually timer or counter for NPCs)
$0630              Weapon Damage
$0631       #03    Subweapon Deflection (copy of $0658,X on Cross hit)
$0634       #17    Miscellaneous Use (used by a couple NPCs)
$0646       #12    Spawner Index
$0658       #0d    NPC Damage
$0664       #06    Candle Active
$066A       #12    Applied Effect (copy of $061A,X on subweapon hit)
$067B       #12    NPC Hitpoints
$068E       #12    Weapons Impact
                             01 = weapon; 02 = subweapon 1; 04 = subweapon 2; 08 = subweapon 3
$06DC              Music Paused
$06DD              Boss Scream Cutoff
$06E0       #90    Collision Map
$0770       #08    CHR5 Solid Definitions
                             Byte 0 = empty; Byte 1 = mud; Byte 2 = convey right; Byte 3 = convey left;
                             Byte 4 = crumbling; Byte 5 = ceiling spike; Byte 6 = solid; Byte 7 = floor spike
$0778       #08    CHR6 Solid Definitions 
$0780              Background Animation Frame
$0780              Entry Selector Column
$0780              Map Clipping
                             00 = To Grant; 01 = To Syfa; 02 = From Alucard
$0781              Background Animation Timer
$0781              Entry Selector Row
$0781              Map Fade-out Value
$0782              Previous Selector Column
$0782              Map Timer
$0782              Epilogue Ally
$0783              Previous Selector Row
$0783              Map Horizontal Speed Subpixel
$0783              Epilogue State
$0784              Name Cursor Position
$0784              Map Horizontal Speed
$0784              Castle Shake Direction
$0785              Map Vertical Speed Subpixel
$0785              Epilogue Text Page
$0786              Password Icon
$0786              Map Vertical Speed
$0787              Previous Password Icon
$0787              Map Scroll Timer
$0788       #02    Password Decryption Dump
$0788              Map X-coordinate Subpixel
$0788              Epilogue Scroll Timer
$0789              Map Y-coordinate Subpixel
$078A              Epilogue Timer
$078A              Map Path PPU Scroll
$078B              Password Errors (used for debugging)
$088B              Map Path PPU Control
$078C       #02    Map Path PPU Address
$078C              Update Selector
$0790       #10    Entered Password
                             00 = empty; 01 = whip; 02 = cross; 03 = heart
$0790              Map Screen Platform
                             00 = full; 01 = short west; 02 = bottom east;
                             03 = top west; 04 = middle west; 05 = bottom west
$07A0       #0a    Generated Password
$07B1       #02    Stacked Breakable Wall
$07B3       #02    Lower Block Broken
$07B5       #02    Upper Block Broken
$07B7       #02    Wall ID (points to $00F4,X)
$07C2       #06    Spawner Type
$07C8       #06    Spawner State
$07CE       #06    Spawner Timer
$07D4       #06    Spawner Y-Coordinate
$07DA       #06    Spawner x-Coordinate
$07E0       #06    Spawner Offscreen
$07E6       #06    Spawner NPC Object
$07EC       #06    Bone Dragon King Frames (two ribs per byte)
$07EC              Cyclops Lightning State
                   Bone Dragon Cycle
                   Giant Bat Leader
                   Dracula Phase
                             00 = Dracula; 01 = demon; 02 = Pazuzu
$07ED              Victory State
                   Bone Dragon Mirrored
                   Collapsing Bridge Length
                   Giant Bat State
$07EE              Bone Dragon Fireball Timer
                   Death Scythe Count
$07EF              Bone Dragon Attacking
$07F3              Boss Phase
                             00 = boss fight; 01 = boss defeat; 02 = crystal drop;
                             03 = battle over; 80 = boss waiting
                   Victory Delay (timer after battle over)
$07F6              Hard Mode
$07F8       #08    Player Name


Address    Size    Description
--------   ----    -----------
$0018              System State
                            00 = Title; 02 = New Game; 03 = In-game Transition; 04 = In-Game;
                            05 = Game Over Transition; 06 = Game Over; 07 = Stage Select Debug;
                            08 = Map Screen; 09 = Prayer Scene; 0a = Name Entry; 0b = Password Entry;
                            0c = Epilogue; 0d = Credit Roll; 0e = Respawn; 0f = Sound Test Debug
$0019              System Substate
$001B              System Step Counter
$001D              Blackout Delay
$0020              Randomizer
$0021              PPU Bank (write to $B003)
$0028       #02    Controller Buttons Pressed
                            01 = right; 02 = left; 04 = down; 08 = up;
                            10 = start; 20 = select; 40 = B; 80 = A
$002A       #02    Controller Buttons Held
$002C              Game State
$002D              User Paused (toggled by Start button)
$002E              Boss Defeated 
$0030              Checkpoint (used for Password Entry)
$0031              Grant Defeated 
$0032       #02    System Effect Timer
$0034              Stage
$0035              Block
$0036              Room
$0037              Lives
$0038       #08    CHR Banks
$0040              IRQ Control
$0041       #02    IRQ Latch
$0043              Default Drawing State (write to $006A)
$0044       #03    Score
$0048              Partner   
                            00 = Trevor; 01 = Syfa; 02 = Grant; 03 = Alucard; ff = None
$0049              Partner Active
$004A              Player's Health
                            40 = full
$004B              Boss Health 
$004C              Score Target (for extra life)
$0053       #02    View Position 
$0055              View Subpixel Position
$0056              Left Spawn Area
$0057              Right Spawn Area
$005A       #02    Tile Assembly Pointer
$005C       #02    Pallet Map Pointer
$005E       #02    Nametable Write Address
$0060              Tile Assembly ID
$0061              Transition Timer
$0062              Scroll Direction
                            00 = left; 01 = right; 02 = unchanged
$0063              View Refreshed Position
$0064              Update View
$0065              Room Orientation
                            00 = horizontal; 80 or 81 = vertical; 82 = scroll up;
                            83 = scroll down; 84 = collapse up; 85 = collapse down
$0066       #02    Stair Map Address
$0068              Player Animation State (for transitions)
$0069              Current Instance (saves X register)
$006A              Drawing State
$006B              View Speed
$006C       #02    PPU Write Position
$006E              Room Size
$006F              CHR Write Mode
                            00 or 03 = all CHR banks; 01 = status bar banks;  02 = clear NPC banks
$0070              Previous Room Orientation
$0071              Music Loaded
$0072              Transition Nametable (nametable to use after door closes)
$0073              Horizontal Spawner Block
$0074              First Spawner Block
$0075              Boss Scroll Lock
$0076              Vertical Spawner Block
$0077              Vertical Spawner Previous (?)
$0078              Spawner Count
$007A              Room Type
                            10 = Stormclouds; 20 = Autowalk; 30 = River; 40 = Clockwork;
                            50 and 60 = Watery Grave; 70 = Flood Zone; 80 = Collapsing Bridge
                            Note: lower 4 bits alter behavior
$007B       #02    Time 
$007D              Wounded Timer (invincibility frames)
$007E              Damage Received
$007F              PC Height
                            00 = Trevor standing; 01 = Syfa standing; 02 = Grant standing; 03 = Alucard standing;
                            04 = Trevor duck; 05 = Syfa duck; 06 = Grant duck; 07 = Alucard duck; 08 = Bat
$0081              Hearts
$0082              Trevor Subweapon
                            00 = none; 01 = axe; 02 = boomerang; 03 = knife/book; 04 = holy water; 05 = fireball; 
                            06 = freeze; 07 = orb; 08 = axe; 09 = boomerang; 0a = knife/book ;0b = clock
$0083              Partner Subweapon
$0084              Trevor Subweapon Multiplier   00 = none; 01 = [II]; 02 = [III]
$0085              Partner Subweapon Multiplier
$0088              Conveyance
                            01 = Elevator/Frozen enemy; 02 = Scroll-locked right; 05 = Teeter-totter;
                            06 = Cogwheel; 07 = Mud; 08 = Waterfall; 09 = Waterfall w/current;
                            0a = Conveyor left; 0b = Conveyor right; 0d = Petrified; 0e = Auto-walk
$0089              Whip Spark Timer
$008A              Room Initialized
$008B              Trevor Weapon Level   
                            00 = short; 01 = medium; 02 = long
$008C              Partner Weapon Level
                            00 = one orb; 01 = two orbs; 03 = three orbs
$008D              Knockback Direction
                            00 = left; 01 = right
$008E              Conveyor (see $0088)
$0090              Cog Proximity
                            00 = none; 01 = right OR below; 02 = right AND below
$0091              Cog ID
$0092              Cogwheel Size
                            00 = small; 01 = large
$0099              Subweapon Kill Count (affects multiplier drops)
$009A              Variable Jump (for Grant)
$009B              Subweapon Iterator
$009C              Previous Game State
$009D              Recent Player Direction (copy of $009E)
$009E              Previous Player Direction (copy of $0062)
$00A0              Game Step Counter (only increments while game not paused)
$00A2              Check Right Tile
$00A8              Stopwatch Active
$00A9              Stopwatch Timer
$00AA              Invincibility Potion Timer
$00AB              Alucard Bat Timer (drains 1 heart when decreased to 0)
$00AC              Landing Delay (prevents walking between elevators)
$00AD              Load Doppelganger Sprites (forces CHR updates)
$00AE              Current Instance (backup for X register)
$00B5              Current Platform (ID of elevator or frozen enemy)
$00B6              Crash Timer (stuns Player after falling too far)
$00B7              Boss Fight
$00BC              Faint Pause (pauses game when killed or time runs out)
$00C5              Horizontal Scroll Lock (used by crumbling bridge)
$00C7              Flood Height
$00CB              Weapon Kill Count (affects item drops)
$00CC              Previous Conveyance (backup of $0088)
$00CD              Vertical Ceiling (lowest y-coordinate in vertical room)
$00EF              Audio Sample
$00F0       #04    Candle Status (32-bit mask)
$00F4       #04    Breakable Wall Status
                            00 = unused/unbroken; ff = broken
$00F8       #02    Previous Controller Buttons Pressed
$00FA       #02    Previous Controller Buttons Held
$00FC       #02    PPU Scroll
$00FE              PPU Mask (for hue shifts and greyscale)
$00FF              PPU Control
$0400       #1c    Sprite Frame Index
$041C       #1c    Y-Coordinate
$0438       #1c    X-Coordinate 
$0454       #1c    Pallet Offset
$0470       #1c    Attributes
                            01 = destroyed; 02 = frozen; 04 = unknown; 08 = flicker;
                            10 = illusory; 20 = inanimate; 40 = moving; 80 = invisible
$048C       #1c    Animation Batch (even numbers)
                            00-06 = Player; 08-12 = NPCs; 14 = Epilogue; 16-1C = Doppelganger
$04A8       #1C    Sprite Mirrored
$04C4       #17    X-Coordinate Subpixel
$04DB       #17    Y-Coordinate Subpixel
$04F2       #17    Horizontal Speed
$0509       #17    Horizontal Speed Subpixel
$0520       #17    Vertical Speed
$0537       #17    Vertical Speed Subpixel
$054E       #17    Object Index
$0565              Player State
$0566       #11    Stun Timer
$0578              Weapon State
$0579       #03    Subweapon State
$057C       #17    Animation Timer
$0593       #17    Sprite Frame (used to calculate $0400,X)
$05AA       #17    Sprite Index
$05C1              Moving Down
$05C2       #12    NPC State
$05D4              Player Stunned State
$05D5       #03    Subweapon Throw Delay
$05D8              Player Jump State
                             00-1D = Trevor/Syfa/Alucard; 1E-39 = Grant
$05D9       #0c    Boss Use
$05E5       #06    Candle Drop
                             83 = Axe; 84 = Cross; 85 = Dagger; 86 = Holy Water; 87 = Stopwatch;
                             88 = Syfa Fire; 89 = Syfa Ice; 8a = Syfa Water; 8b = Grant Dagger;
                             8c Grant Axe; 8d-8f = Upgrades (8f removed); 90 = Wall Meat; 
                             91 = Invincibility Potion; 92 = Rosary; 93-9b = Coins; 9c = 1UP; 
                             9d = Big Heart; 9e = Small Heart; 9f-a0 = Multipliers
$05EB              Stair Stun Timer
$05EF              Stair Direction
                   Grant Jump State Fraction (functions like speed variables)
$05F0       #12    AI Class (determines behavior)
$0602              Stair Stun (decreases $05EB)
$0606              Grant Gravity Subpixel (increases $05EF for Grant)
$0607       #12    State Timer (time between state changes for most NPCs)
                   Sinusoid Center Axis
$0619              Ally Swap Y-Coordinate
$061A       #03    Subweapon Damage
$061D              Stair Timer (time to climb one step)
                   Grant Gravity (increases $05D8 for Grant)
$061E       #12    Miscellaneous Ticker (usually timer or counter for NPCs)
$0630              Weapon Damage
$0631       #03    Subweapon Deflection (copy of $0658,X on Cross hit)
$0634       #17    Miscellaneous Use (used by a couple NPCs)
$0646       #12    Spawner Index
$0658       #0d    NPC Damage
$0664       #06    Candle Active
$066A       #12    Applied Effect (copy of $061A,X on subweapon hit)
$067B       #12    NPC Hitpoints
$068E       #12    Weapons Impact
                             01 = weapon; 02 = subweapon 1; 04 = subweapon 2; 08 = subweapon 3
$06DC              Music Paused
$06DD              Boss Scream Cutoff
$06E0       #90    Collision Map
$0770       #08    CHR5 Solid Definitions
                             Byte 0 = empty; Byte 1 = mud; Byte 2 = convey right; Byte 3 = convey left;
                             Byte 4 = crumbling; Byte 5 = ceiling spike; Byte 6 = solid; Byte 7 = floor spike
$0778       #08    CHR6 Solid Definitions
$0780              Background Animation Frame
$0781              Background Animation Timer
$0782              Epilogue Ally
$0783              Epilogue State
$0784              Castle Shake
$0785              Epilogue Text Page
$0780              Entry Selector Column
$0780              Entry Selector Column
$0780              Map Clipping
                             00 = To Grant; 01 = To Syfa; 02 = From Alucard
$0781              Background Animation Timer
$0781              Entry Selector Row
$0781              Map Fade-out Value
$0782              Previous Selector Column
$0782              Map Timer
$0782              Epilogue Ally
$0783              Previous Selector Row
$0783              Map Horizontal Speed Subpixel
$0783              Epilogue State
$0784              Name Cursor Position
$0784              Map Horizontal Speed
$0784              Castle Shake Direction
$0785              Map Vertical Speed Subpixel
$0785              Epilogue Text Page
$0786              Password Icon
$0786              Map Vertical Speed
$0787              Previous Password Icon
$0787              Map Scroll Timer
$0788       #02    Password Decryption Dump
$0788              Map X-coordinate Subpixel
$0788              Epilogue Scroll Timer
$0789              Map Y-coordinate Subpixel
$078A              Epilogue Timer
$078A              Map Path PPU Scroll
$078B              Password Errors (used for debugging)
$088B              Map Path PPU Control
$078C       #02    Map Path PPU Address
$078C              Update Selector
$0790       #10    Entered Password
                             00 = empty; 01 = whip; 02 = cross; 03 = heart
$0790              Map Screen Platform
                             00 = full; 01 = short west; 02 = bottom east;
                             03 = top west; 04 = middle west; 05 = bottom west
$07A0       #0a    Generated Password
$07B1       #02    Stacked Breakable Wall
$07B3       #02    Lower Block Broken
$07B5       #02    Upper Block Broken
$07B7       #02    Wall ID (points to $00F4,X)
$07C2       #06    Spawner Type
$07C8       #06    Spawner State
$07CE       #06    Spawner Timer
$07D4       #06    Spawner Y-Coordinate
$07DA       #06    Spawner x-Coordinate
$07E0       #06    Spawner Offscreen
$07E6       #06    Spawner NPC Object
$07EC       #06    Bone Dragon King Frames (two ribs per byte)
$07EC              Cyclops Lightning State
                   Bone Dragon Cycle
                   Giant Bat Leader
                   Dracula Phase
                             00 = Dracula; 01 = demon; 02 = Pazuzu
$07ED              Victory State
                   Bone Dragon Mirrored
                   Collapsing Bridge Length
                   Giant Bat State
$07EE              Bone Dragon Fireball Timer
                   Death Scythe Count
$07EF              Bone Dragon Attacking
$07F3              Boss Phase
                             00 = boss fight; 01 = boss defeat; 02 = crystal drop;
                             03 = battle over; 80 = boss waiting
                   Victory Delay (timer after battle over)
$07F6              Hard Mode
$07F8       #08    Player Name


Internal Data for Castlevania III

ROM MapRAM MapText TableNotesTutorials