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 screen data definition pointer table (4 pointers, one per stage).
 0x350D-3526    Stage 1 pointer table (8 pointers, one for each sublevel, starting from left).
 0x3527-351C    Stage 2 pointer table
 0x351D-3546    Stage 3 pointer table
 0x3547-3567    Stage 4 pointer table
0x357B-3582    Sublevel length pointer table (in metatiles; determines when to stop scrolling).
 0x3583-0x358F   Stage 1 sublevel lengths
 
  0x35B0-35C8    Stage 1 sublevel 1 screen 1 definition (1 screen requires 25 bytes = 5 rows of 5 metatiles)
  0x35C9-35E1    Stage 1 sublevel 1 screen 2 definition
  ...
  0x3614-362C    Stage 1 sublevel 1 screen 5 definition
0x41FE-4205    Pointer table (4 pointers, one per stage)
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)
0x46D9-477E    Player sprite animation pointer table
 0x477F-4BBD    Player sprite animation data
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/1A&1B = rolling eyeballs, etc.) / 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)