Castlevania Chronicles/RAM map: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
mNo edit summary
No edit summary
Line 2: Line 2:


{{note|
{{note|
* This RAM map is currently still being documented, pieces of data may be partially incorrect or have missing information.
* Pieces of data may be partially incorrect or have missing information.
* Any (!!)s indicate unknown properties/information on addresses
* Any (!!)s indicate there are likely unknown properties/information on addresses
}}
}}


Line 18: Line 18:
  90F0-12A  Names & health meters      "PLAYER", "ENEMY", pointers for both meters' tile graphics
  90F0-12A  Names & health meters      "PLAYER", "ENEMY", pointers for both meters' tile graphics
  911B-12A  Heart and life counts      Heart icon, "P-", pointers for both counts tile graphics
  911B-12A  Heart and life counts      Heart icon, "P-", pointers for both counts tile graphics
  9248-9    Camera x-coordinates (!!)  Follows camera, byte goes up to FF, every max returns byte to 00 and adds 1 to the second byte
  9248-9    Camera sector coords (!!)  See $800592D4-5, unknown why information is duplicated in RAM
  9270      Face/trigger input detection - Left nybble for face buttons, right for back triggers
  9270      Face/trigger input detection - Left nybble for face buttons, right for back triggers
  9271      Left analog stick/d-pad/middle button detection - Left nybble for directional inputs, right for start and select
  9271      Left analog stick/d-pad/middle button detection - Left nybble for directional inputs, right for start and select
Line 24: Line 24:
  9292      Life count
  9292      Life count
  92C4      Block number                Acts like an instant level select, goes up to 07 (Dracula's block), does not change the stage value
  92C4      Block number                Acts like an instant level select, goes up to 07 (Dracula's block), does not change the stage value
92D0      Stage number (!!)          Each block's separated rooms have numbers dedicated to them, exiting a room adds one to this value, game crashes if the block has no room dedicated to an incremented value of the byte, tiles are corrupted when the room byte doesn't match up to the loaded room's given byte
92D4      Camera x-position (!!)      Based on 255-units long sectors of stages which are pieced together to create levels, not much more is known on sectors
92D5      Room sector number (!!)    Self-explanatory, coupled with byte above
  92DC-F    Score value
  92DC-F    Score value
  930D      Camera type (!!)           00 results in an instant death, 01 and 02 lock vertical scrolling (any open drops are death pits), 03+ moves with Simon aside from level edges
92E8      Entity layer vertical anchor position (!!) - Self-explanatory
  930D      Camera movement type (!!)   00 results in an instant death, 01 and 02 lock vertical scrolling (any open drops are death pits), 03+ moves with Simon aside from level edges
  A822      Player health value        Byte starts at 10 (visually full)
  A822      Player health value        Byte starts at 10 (visually full)
  A823      Unknown (!!)                Changing this value to anything other than 00 changes Simon's palette to be gray
  A823      Unknown (!!)                Changing this value to anything other than 00 changes Simon's palette to be gray

Revision as of 00:17, 24 February 2024

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

Note for template.png
Note:
  • Pieces of data may be partially incorrect or have missing information.
  • Any (!!)s indicate there are likely unknown properties/information on addresses


$80010...

Address   Function             Details
-------   ------------------   ----------------------------
3A8-C7    Top row of the HUD   Contains score, timer and stage counts
3C8-D3    "PRESS START"        Flashes over enemy health meter during idle demos

$8005...

Address    Function                    Details
--------   ------------------          ----------------------------
90CB-D1    "NOMIS" (!!)                "SIMON" backwards, little-endian format for some purpose maybe
90F0-12A   Names & health meters       "PLAYER", "ENEMY", pointers for both meters' tile graphics
911B-12A   Heart and life counts       Heart icon, "P-", pointers for both counts tile graphics
9248-9     Camera sector coords (!!)   See $800592D4-5, unknown why information is duplicated in RAM
9270       Face/trigger input detection - Left nybble for face buttons, right for back triggers
9271       Left analog stick/d-pad/middle button detection - Left nybble for directional inputs, right for start and select
9290-1     Timer value (!!)            First byte is calculated in usual hex (e.g. FF = 255) and is subtracted from by one, second seems to be multiplied by 256, both are somehow used together to calculate the timer's value (00 02 = 512, FF 00 = 255)
9292       Life count
92C4       Block number                Acts like an instant level select, goes up to 07 (Dracula's block), does not change the stage value
92D0       Stage number (!!)           Each block's separated rooms have numbers dedicated to them, exiting a room adds one to this value, game crashes if the block has no room dedicated to an incremented value of the byte, tiles are corrupted when the room byte doesn't match up to the loaded room's given byte
92D4       Camera x-position (!!)      Based on 255-units long sectors of stages which are pieced together to create levels, not much more is known on sectors
92D5       Room sector number (!!)     Self-explanatory, coupled with byte above
92DC-F     Score value
92E8       Entity layer vertical anchor position (!!) - Self-explanatory
930D       Camera movement type (!!)   00 results in an instant death, 01 and 02 lock vertical scrolling (any open drops are death pits), 03+ moves with Simon aside from level edges
A822       Player health value         Byte starts at 10 (visually full)
A823       Unknown (!!)                Changing this value to anything other than 00 changes Simon's palette to be gray
A834       Counts up each frame Simon is in the air - Byte adding stops at 28, where Simon begins dropping like a brick (if dropping without jumping, very quickly incremented to 28)
A835       State of Simon whipping     00 if not whipping, 01 if whipping forward, 02 if whipping directly downward in air, 03 if whipping diagonally downward in air
A836       Whip level/sprites          00 for leather whip, 01 for chain whip, 02 for Morning Star, beyond results in glitched sprites
A837       Whip state counter          When the whip button is pressed, counts up to 14, returns to 00 during the last couple frames of the whipping action, can be interrupted, where it will stay at the value it was up to before being interrupted, but will return to 01 and count up to 14 again when a whip button is pressed
A838       Hearts value                Maximum is FF (255), goes back to 00 when added to at max
A839       Stairs flag (!!)            Byte is set to 01 if Simon is on stairs, if set to 01 when not on stairs, Simon slides forward facing one direction involuntarily until the jump button is pressed

$8010...

Address    Function                    Details
--------   ------------------          ----------------------------
02D0-2F0   Sound test menu display (!!) - Does not include song names or song visualization* (*visualization might be in/near the range but requires further investigation)
0318-39F   Save select menu display
03A0-3D6   Time attack menu display
03D7-3DE   Somewhat unknown (!!)       Says "L1" and "R1" both separated by bytes of 00 (likely connected to the secret sound module menu)
03DF-412   Ranking menu display (!!)   (Address range might be off)
04A7-4CB   Game over display
068F-69C   Unknown (!!)                Arranged to make "PRESS BUTTON"
06CF-724   Secret "Extra Mode" menu display
0877-8E0   Options menu display
08F7-93E   Arrange option menu display (!!) - Strangely, "ON" and "OFF" are not found in the RAM for the Time Limit option
093F-96A   Adjust display menu display
F5D7-794   Sound test menu song names