The current URL is datacrystal.tcrf.net.
Castlevania (NES, Famicom Disk System)/RAM map: Difference between revisions
Mariofan2468 (talk | contribs) 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 = | |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
The following article is a RAM map for Castlevania (NES, Famicom Disk System).
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. |
Internal Data for Castlevania
| |
---|---|