Castlevania:RAM map

From Data Crystal
Revision as of 21:03, 12 June 2020 by NaOH (talk | contribs) (Added several new discovered ram values)
Jump to navigation Jump to search

RAM Function Details
0x0004 RNG Changes seemingly randomly.
0x0007 Title Bat Current sprite May be used by something else.
0x0018 Mode $00 = Start game

$01 = Title Screen

$02 = Demo

$04 = Intro Animation

$05 = Playing

$06 = Dead

$08 = Door Animation

$0A = Entering Castle Animation

$0C = Crystal ball

$0D = Game Over

$0F = End Credits

0x0019 Sub-mode The values vary with mode.
0x001A Timer Increments by 1 each frame. Resets each time you "change stage?"
0x001E Title Screen timer (time until demo mode) Counts slowly (each 8 frames) up to $11 (until castle bat becomes close),

then (each frame) down from $FF to $00.

0x0022 Paused $01 = yes, $00 = no
0x0028 Current Stage
0x002A Number of Lives
0x002B Full Game Loops $00 = Normal Mode (first game loop), $01 and above = Difficult Mode
0x002E Camera's X position
0x003E Is Simon on stairs $00 = yes, $01 = no
0x003F Simon's Y position (in level)
0x0040 Simon's X position (in level)
0x0041 High byte of Simon's X position (in level)
0x0042 1's and 10's place of Time in BCD
0x0043 100's and 1000's place of Time in BCD
0x0044 Life Meter (Graphic) 2 bars = +$08, Max = $40(64)
0x0045 Life Meter (Actual) 2 bars = +$08, Max = $40(64)
0x0046 Substage Either $00 or $01 since each stage has at most 2 substages. (The substage changes when crossing a vertical screen transition, namely by taking stairs.)
0x005B Simon's iframes When nonzero, Simon blinks with invulnerability and this byte counts down. Set to $30 after landing from knockback.
0x005F Kneeling $00 = standing, $01 = kneeling
0x0064 Subweapon Shot $00 = single shot, $01 = double shot, $02 = triple shot
0x0070 Whip length Set to $00, $01, or $02.
0x0071 Number of Hearts $00 to $63 (99 in decimal).
0x008X Pulse 1 channel Values determining how the sound plays.

0x00X0 = length of note remaining

0x00X1 = something to do with note octaves?

0x00X3 = note ID?

0x00X5 $X0 = note pulse width (C?, E or F)

0x00X7 $0X = note volume (3 to 0)

0x00XA = something to do with note octaves?

0x00XB = length of note remaining (but at note attack, starts at $02 more than 0x00X0 and decreases by $02/frame for 2 frames instead of $01/frame)

0x009X Pulse 2 channel Ditto.
0x00AX Triangle channel '
0x00BX Noise channel '
0x00F5 Player 1 Controller (Press) Like 0x00F7 except only stores the buttons which were just pressed this frame.
0x00F7 Player 1 Controller (Held) Similar to Metroid's 0x0014. The buttons currently held down.

$80: jump $40: attack $20: select $10: start $08: up $04: down $02: left $01: right

0x0159 Simon's current image

(unknown use : dosen't seem to affect gameplay)


$01-03 = walk,

$04 = jump and crouch,

$05-07 = whip/sub-weapon,

$0D-0E = walk up stairs,

$0F-10 = walk down stairs,

$12 = hurt

$1C = dead

$1D = collapsing

0x015B Subweapon $00 = no subweapon

$08 = Dagger

$09 = Boomerang

$0B = Holy Water

$0D = Axe

$0F = Stopwatch

0x0160 Simon's screen position (in room)
0x0162 Simon's screen position (in room) not 0x0160.
0x038C Simon's X position (in screen)
0x0390 Enemy 1's X position (in screen)
0x0391 Enemy 2's X position (in screen)
0x0392 Enemy 3's X position (in screen)
0x0393 Boss 1?'s X position (in screen)
0x0395 Bat/Medusa Head 1's X position (in screen)
0x0396 Bat/Medusa Head 2's X position (in screen)
0x0397 Bat/Medusa Head 3/Drac's Top Fireball's X position (in screen)
0x0398 Bat/Medusa Head 4/Drac's Middle Fireball's X position (in screen)
0x0399 Bat/Medusa Head 5/Drac's Bottom Fireball's X position (in screen)
0x03A0 Sub-weapon 1's X position (in screen)
0x03A1 Sub-weapon 2's X position (in screen)
0x03A3 Platform 1's X position (in screen)
0x03A4 Platform 2's X position (in screen)
0x0450 Direction Simon looks $00 = right, $01 = left
0x046c Simon's state $00 = standing/walking, $01 = jumping, $02 = attacking, $03 = crouching, $04 = stairs, $05 = knockback, $06 = walk-to-stair, $07 = dropping, $08 = dead, $09 = stunned
0x0491-0494? Projectile Animation Timers? In a similar area than Candle Animation Timers. Appears to activate around projectile-firing enemies.
0x0496-049B Candle Animation Timers Count down from $08 to $00. When Item is out, from $0F to $00 except when item is static, in which case it stays $80. Freezes when item is picked up.
0x04A4 Number of steps taken
0x04B2 Candle 1's current image Oscillates from $01 to $02.
0x04B3 Candle 2's current image Ditto
0x04B4 Candle 3's current image '
0x04B5 Candle 4's current image '
0x04B6 Candle 5's current image '
0x04B7 Candle 6's current image '
0x04DC Simon's vertical speed magnitude Ranges from 8F to A4 during a normal jump, reaching A4 at the crest. Used to look up the speed in pixels-per-frame from a table.
0x0514 Simon's vertical speed direction $00 = up, $01 = down.
0x054C Simon's hit-stun timer Must be 0 except during knockback or stun, or else the game glitches up.
0x0584 Simon's sub-state Bits 0 and 1 are for horizontal motion:

$00 = not moving, $01 = moving right, $02 = moving left

Other bits:

$04 = crouching

$40 = attacking

$80 = jumping

0x07FC Ones/Tenths of points In pseudo Decimal (Ex.: $08, $09, $10...)
0x07FD Hundreds/Thousands of points Ditto.
0x07FE Ten Thousands/Hundred Thousands of points '
0x6000-7FFF RNG 2 Strangely, these 8192 values are all equal to the same thing.

Internal Data for Castlevania

ROM MapRAM MapText TableNotesTutorials