This article has a talk page!

Castlevania (NES, Famicom Disk System)/RAM map: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
mNo edit summary
(Added several new discovered ram values)
Line 10: Line 10:
|0x0007 || Title Bat Current sprite || May be used by something else.
|0x0007 || Title Bat Current sprite || May be used by something else.
|-
|-
|0x0018 || Mode || $01 = Title Screen
|0x0018 || Mode || $00 = Start game
 
$01 = Title Screen


$02 = Demo
$02 = Demo
Line 53: Line 55:
|-
|-
|0x0040 || Simon's X 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 ||
|0x0042 || 1's and 10's place of Time in BCD ||
Line 62: Line 66:
|0x0045 || Life Meter (Actual) || 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
|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
|0x005F || Kneeling || $00 = standing, $01 = kneeling
Line 94: Line 100:
|0x00BX || Noise channel || '
|0x00BX || Noise channel || '
|-
|-
|0x00F7 || Player 1 Controller || Similar to [https://datacrystal.romhacking.net/wiki/Metroid:RAM_map#Zero_Page_.28.240000.29 Metroid's 0x0014].
|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 [https://datacrystal.romhacking.net/wiki/Metroid:RAM_map#Zero_Page_.28.240000.29 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
|0x0159 || Simon's current image
Line 163: Line 181:
|-
|-
|0x0450 || Direction Simon looks || $00 = right, $01 = left
|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.
|0x0491-0494? || Projectile Animation Timers? || In a similar area than Candle Animation Timers. Appears to activate around projectile-firing enemies.
Line 182: Line 202:
|0x04B7 || Candle 6's current image || '
|0x04B7 || Candle 6's current image || '
|-
|-
|0x0584 || Simon's state || $00 = standing, $01 = going right, $02 = going left, etc.
|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...)
|0x07FC || Ones/Tenths of points || In pseudo Decimal (Ex.: $08, $09, $10...)

Revision as of 21:03, 12 June 2020

Chip tiny.png The following article is a RAM map for Castlevania (NES, Famicom Disk System).

So very stubbly.
This page is rather stubbly and could use some expansion.
Are you a bad enough dude to rescue this article?


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)

$00=standing,

$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.