Castlevania: The Adventure/RAM map

From Data Crystal
Jump to navigation Jump to search

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

Address Description

----------------------------
0xC00C         Input held (1: right. 2: left. 4: up. 8: down. 10: a [jump]. 20: b [whip]. 40: select. 80: start.) Copied to C41A.
0xC00D         Input pressed this frame. (As above.) Copied to C41D.
0xC02A         Current sublevel transition tracker
0xC02B         Current stage
0xC030-C032    Hi-Score (C030 = ones and tens, C031 = hundreds and thousands, C032 = tens of thousands)
0xC034-C036    Current Score
0xC040         Current lives
0xC171-C172    Channel 1 music note pointer?
0xC173         Channel 1 music note timer
0xC178         Channel 1 music note cuts/releases/echo?
0xC17C         Channel 1 music octave
0xC17D-C17E    Channel 1 music pitch
0xC181         Channel 1 music volume envelope
0xC183         Channel 1 music note length before silence?
0xC196-C197    Channel 2 music note pointer?
0xC300-C39F    Copied to OAM (0xFE00-FE9F)
0xC3C8-C3C9    Copy of C00C,C00D; used only during input polling routine for robustness to entropy
0xC3CB         Tracks if player's Xpos is in the bounding zone for a sublevel transition (set at 0x1EDA)
0xC402         Current sublevel X position in metatiles (4 tiles)
0xC412         Current sublevel
0xC41A         Copy of 0xC00C. Code prefers to read this address instead of 0xC00C for some reason. 0xC00C seems to be exclusively read/written during the input polling routine.
0xC41D         as above, for input pressed this frame.
0xC436         Level Timer's seconds
0xC437         Level Timer's minutes
0xC502         Christopher's action state ($00 = standing/walking.  $01 = jumping. $02 = crouching. $03 = rope. $04 = whipping/whip-jumping/whip-crouching. )
0xC505         Timer related to Christopher whipping
0xC50A-C50C    Christopher's current X position (pixels and sub-pixels)
0xC50D         Christopher's jump state ($00 = grounded, $01 = jumpsquat, $0F = rising, $0A = falling)
0xC50E         Christopher's gravity (sub-pixels, normally $60)
0xC50F-C510    Christopher's current Y velocity (pixels and sub-pixels)
0xC511-C512    Christopher's current Y position in camera? (pixels and sub-pixels)
0xC513         Christopher's current X position in camera
0xC514         Christopher's pose ($01 = standing/walking, $02 = crouching/jumping, $03 = whipping, $05 = crouch-whipping, $07 = knockback, $09 = climbing rope...)
0xC515         Bit 5 of this is facing ($20 = right; 0 = left)
0xC519         Christopher's current health
0xC51B         Christopher's current whip attack type ($00 = grounded, $01 = jumping, $02 = crouching)
0xC51C         Christopher's whip status ($00 = regular / $01 = chain whip / $02 = fireball whip)
0xC6xx         Enemy slot (20 bytes)
 0xC600         Is slot taken? x80 if slot taken
 0xC601         EnemyID or AI
 0xC602         Enemy status (for eyeball, 01 = midair / 02 = rolling)
 0xC606         Related to enemy movement (for eyeball, set at 1A; if change, it spins in place)
 0xC607         Enemy Xpos
 0xC60C         Respawn? 0 = yes / 1 = no
 0xC612         Enemy Ypos
 0xC615         Sprite information
 0xC616         Animation counter
 0xC617         Current animation frame ID
 0xC618         More sprite information