Castlevania Chronicles/RAM map: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
 
(3 intermediate revisions by the same user not shown)
Line 15: Line 15:
  Address    Function                    Details
  Address    Function                    Details
  --------  ------------------          ----------------------------
  --------  ------------------          ----------------------------
  90CB-D1    "NOMIS" (!!)                "SIMON" backwards, little-endian format for some purpose maybe
  90CB-D1    "NOMIS" (!!)                "SIMON" backwards, unknown purpose
  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 sector coords (!!)  See $800592D4-5, unknown why information is duplicated in RAM
  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      Input detection 1          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      Input detection 2          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)
9274      "PRESS START" demo flag    The "PRESS START" that flashes over the enemy healthbar/name in the HUD during idle demos, 00 is off, any
                                        other value is on, can flash even during normal gameplay
  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
  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
  92D0      Stage number (!!)          Each block's separated rooms have numbers dedicated to them, exiting a room adds one to this value, game
  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
                                        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
  92D5      Room sector number (!!)    Self-explanatory, coupled with byte above
  92DC-F    Score value
  92DC-F    Score value
  92E8      Entity layer vertical anchor position (!!) - Self-explanatory
  92E8      Entity y-axis floor (!!)   Value for entities' floor collision
  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
  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
  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)
  A834      Simon airtime in frames    Byte adding stops at 28, where Simon begins dropping like a brick (if dropping without jumping, very quickly
  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
                                        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
  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
  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
  A838      Hearts value                Maximum is FF (255), goes back to 00 when added to at max
                                        action, can be interrupted, where it will stay at the value it was up to before being interrupted, but will
  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
                                        return to 01 and count up to 14 again when a whip button is pressed
  A838      Hearts value                Maximum is FF (255), overflows 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...==
==$8010...==
  Address    Function                   Details
  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)
  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
  0318-39F  Save select menu display
  03A0-3D6  Time attack 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)
  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)
  03DF-412  Ranking menu display (!!)         (Address range might be off)
  04A7-4CB  Game over display
  04A7-4CB  Game over display
  068F-69C  Unknown (!!)               Arranged to make "PRESS BUTTON"
  068F-69C  Unknown (!!)                       Arranged to make "PRESS BUTTON"
  06CF-724  Secret "Extra Mode" menu display
  06CF-724  Secret "Extra Mode" menu display
  0877-8E0  Options 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
  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
  093F-96A  Adjust display menu display
  F5D7-794  Sound test menu song names
  F5D7-794  Sound test menu song names

Latest revision as of 21:51, 1 July 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, unknown purpose
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       Input detection 1           Left nybble for face buttons, right for back triggers
9271       Input detection 2           Left nybble for directional inputs, right for start and select
9274       "PRESS START" demo flag     The "PRESS START" that flashes over the enemy healthbar/name in the HUD during idle demos, 00 is off, any
                                       other value is on, can flash even during normal gameplay
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 y-axis floor (!!)    Value for entities' floor collision
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       Simon airtime in frames     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), overflows 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