Castlevania: The Adventure/ROM map

From Data Crystal
Jump to navigation Jump to search

Chip tiny.png The following article is a ROM map for Castlevania: The Adventure.

(r:symbol) marks the start of a callable subroutine. (RSTxy:symbol) marks a callable subroutine which can be called with the special quick-access RST commands.

Address        Description
----------------------------
0x0000         (RST0:jumptable) jumptable following RST0 call by register A.
0x09AA-09B1      Timer data pointer table (4 pointers, one per stage)
 0x09B2-09B7      Stage 1 timer data (2 bytes for each clear point)
 0x09B8-09BF      Stage 2 timer data
 0x09C0-09B5      Stage 3 timer data
 0x09B6-09BC      Stage 4 timer data
0x1833         Belmont's state jumptable
0x3505-350C    Stage data definition pointer table (4 pointers, one per stage).
 0x350D-3526    Stage 1 sublevel data pointer table (8 pointers, one for each sublevel, starting from left).
 0x3527-351C    Stage 2 sublevel data pointer table
 0x351D-3546    Stage 3 sublevel data pointer table
 0x3547-356D    Stage 4 sublevel data pointer table
  0x35B0-35C8    Stage 1 sublevel 1 screen 1 definition (25 bytes, defining the screen row by row of metatiles)
  0x35C9-35E1    Stage 1 sublevel 1 screen 2 definition
  ...
  0x3614-362C    Stage 1 sublevel 1 screen 5 definition
0x4206-420D    Stage sublevel transitions pointer table.
               Ropes at the extremities of sublevels serve as sublevel transitions.
               They have a hit box that locks the player to the rope, allowing to climb up/down to the next sublevel.
               This data is read each time the player jumps, to see if he is in the hitbox.
 0x420E-421D    Stage 1 pointer table
 0x421E-4227    Stage 2 pointer table
 0x4228-4247    Stage 3 pointer table
 0x4248-4267    Stage 4 pointer table
  0x4268-426E    Stage 1 sublevel 1 to sublevel 2 data
                 Data in chunks of 7 bytes: 1 & 2 = hitbox Xpos / 3 & 4 = Ypos of hitbox / 5 = sublevel transitionID / 6 & 7 = unclear, but another Xpos)
0x44A7-4548    Spawn position pointer table
 0x4549-46D8?   Spawn position data (5 bytes: sublevel / X metatile offset / Xpos 1 and 2 / Ypos)
0x7BB9-7C1A    Enemy data pointer table (first 4 pointers for stages, the others for their sublevels)
0x7C1B-7FA7    Enemy data (in chunks of 5 bytes, with terminal x00 xE0)
                1&2 = enemy Xpos / 3 = Ypos / 4 = enemyID (3=bird/9=bat/B=stage1 boss, etc. note: some IDs require the proper tilesets) / 5 = enemyNumber)
0xA63F-A6A1    Candle data pointer table (first 4 pointers for the stages, the others for their sublevels)
0xA342-AA31    Candle data (in chunks of 5 bytes)
                1&2 = candle Xpos / 3 = Ypos / 4 = itemID (0=ball/1=invincibility/2=heart/3=blinking heart/4=1UP/5=coin/6=boss orb) / 5 = candleNumber)