Welcome to Data Crystal's new home! Data Crystal is now part of the TCRF family (sort of).
The wiki has recently moved; please report any issues in Discord. Pardon the dust.

Castlevania II: Simon's Quest/RAM map: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
m (oops)
m (hex numbers capitalization)
Line 6: Line 6:
|0x0005 || Pause Menu Displayed || 12h (hexadecimal) = no, 00h = yes
|0x0005 || Pause Menu Displayed || 12h (hexadecimal) = no, 00h = yes
|-
|-
|0x0018 || Game Mode || 00h = reset, 01h = title screen, 02h = something title?, 03h = title starts game, 04h = lives display, 05h = game, 06h = trigger life loss, 07h = game over, 08h = title menu, 09h = trigger ending (load mode), 0ah = ending, 0bh = trigger ???, 0ch = trigger load ending graphics and then trigger 09h?, 0dh = trigger 0ch?, 0eh = ending complete? back to title screen, 0fh = GAME START fade-out
|0x0018 || Game Mode || 00h = reset, 01h = title screen, 02h = something title?, 03h = title starts game, 04h = lives display, 05h = game, 06h = trigger life loss, 07h = game over, 08h = title menu, 09h = trigger ending (load mode), 0Ah = ending, 0Bh = trigger ???, 0Ch = trigger load ending graphics and then trigger 09h?, 0Dh = trigger 0Ch?, 0Eh = ending complete? back to title screen, 0Fh = GAME START fade-out
|-
|-
|0x0019 || Game Sub-Mode ||
|0x0019 || Game Sub-Mode ||
Line 18: Line 18:
|0x002A || Game Mode Timer ||  
|0x002A || Game Mode Timer ||  
|-
|-
|0x002c || Transition Type || 00h = trigger lives display, 01h = lives display, 02h = loading, 03h = no transition, 04h = day/night change dialog, 05h = fade out, 06h = black screen, 07h = fade back in, 08h = horizontal room transition, 09h = vertical room transition, 0ah = horizontal region transition, 0bh = vertical region transition
|0x002C || Transition Type || 00h = trigger lives display, 01h = lives display, 02h = loading, 03h = no transition, 04h = day/night change dialog, 05h = fade out, 06h = black screen, 07h = fade back in, 08h = horizontal room transition, 09h = vertical room transition, 0Ah = horizontal region transition, 0Bh = vertical region transition
|-
|-
|0x0030 || Region || 00h = town, 01h = mansion, 02h = woods, 03h = graveyard, 04h = mountains, 05h = castlevania's ruins
|0x0030 || Region || 00h = town, 01h = mansion, 02h = woods, 03h = graveyard, 04h = mountains, 05h = castlevania's ruins
Line 28: Line 28:
|0x0035 || Death Timer ||
|0x0035 || Death Timer ||
|-
|-
|0x0046 || Experience 00xx || Two digits 0-9
|0x0046-47 || Experience || Four digits 0-9
|-
|-
|0x0047 || Experience xx00 || Two digits 0-9
|0x0048-49 || Hearts || Four digits 0-9
|-
|-
|0x0048 || Hearts 00xx || Two digits 0-9
|0x004A || Acquired Sub-Weapons || Each sub-weapon one bit (01h = dagger, 02h = silver knife, 04h = gold knife, 08h = holy water, 10h = diamond, 20h = sacred flame, 40h = oak stake, 80h = nothing)
|-
|-
|0x0049 || Hearts xx00 || Two digits 0-9
|0x004C || Laurels Count || Two digits 0-9
|-
|-
|0x004a || Acquired Sub-Weapons || Each sub-weapon one bit (01h = dagger, 02h = silver knife, 04h = gold knife, 08h = holy water, 10h = diamond, 20h = sacred flame, 40h = oak stake, 80h = nothing)
|0x004D || Garlic Count || Two digits 0-9
|-
|-
|0x004c || Laurels Count || Two digits 0-9
|0x004F || Equipped Item ||
|-
|0x004d || Garlic Count || Two digits 0-9
|-
|0x004f || Equipped Item ||
|-
|-
|0x0053-54 || Simon X position in room (pixels) ||
|0x0053-54 || Simon X position in room (pixels) ||
|-
|-
|0x006c-6d || Simon X speed (sub-pixels and pixels) ||
|0x006C-6D || Simon X speed (sub-pixels and pixels) ||
|-
|-
|0x0077 || Dialog Box Letter Y Tile (in nametable) ||
|0x0077 || Dialog Box Letter Y Tile (in nametable) ||
Line 52: Line 48:
|0x0078 || Dialog Box Letter X Tile ||
|0x0078 || Dialog Box Letter X Tile ||
|-
|-
|0x007b || Dialog Box Letter Timer ||
|0x007B || Dialog Box Letter Timer ||
|-
|-
|0x007c || Dialog Box Letter ID ||
|0x007C || Dialog Box Letter ID ||
|-
|-
|0x007d || Dialog Box Line Starting X Tile & Merchant Dialog Box Refuse Timer ||
|0x007D || Dialog Box Line Starting X Tile & Merchant Dialog Box Refuse Timer ||
|-
|-
|0x007e || Dialog Box Choice || 0 = "NO", 1 = "YES"
|0x007E || Dialog Box Choice || 0 = "NO", 1 = "YES"
|-
|-
|0x0080 || Energy || Starts at 30h
|0x0080 || Energy || Starts at 30h
Line 68: Line 64:
|0x0083 || Time xx:00:00.00 || Days
|0x0083 || Time xx:00:00.00 || Days
|-
|-
|0x0084 || Time 00:00:00.xx || Frames (not displayed in-game, 15 frames per minute (0x00 to 0x0e inclusive))
|0x0084 || Time 00:00:00.xx || Frames (not displayed in-game, 15 frames per minute (0x00 to 0x0E inclusive))
|-
|-
|0x0085 || Time 00:00:xx.00 || Minutes
|0x0085 || Time 00:00:xx.00 || Minutes
Line 82: Line 78:
|0x0092 || More Acquired Items || Each item one bit (01h = silk bag, 02h = magic cross, 04h = laurels, 08h = garlic)
|0x0092 || More Acquired Items || Each item one bit (01h = silk bag, 02h = magic cross, 04h = laurels, 08h = garlic)
|-
|-
|0x00a1-a2 || Noise/DPCM Note Pointer ||  
|0x00A1-A2 || Noise/DPCM Note Pointer ||  
|-
|-
|0x00ab || Pulse 1 Note Time Left ||
|0x00AB || Pulse 1 Note Time Left ||
|-
|-
|0x00ac || Pulse 2 Note Time Left ||
|0x00AC || Pulse 2 Note Time Left ||
|-
|-
|0x00ad || Triangle Note Time Left ||
|0x00AD || Triangle Note Time Left ||
|-
|-
|0x00af || Noise active || 0 = no, 1 = yes
|0x00AF || Noise active || 0 = no, 1 = yes
|-
|-
|0x00bb || Noise Period and Volume || probably pointer to a table
|0x00BB || Noise Period and Volume || probably pointer to a table
|-
|-
|0x00bc || Noise/DPCM Note Pointer (copy of 0x00a1?) ||  
|0x00BC || Noise/DPCM Note Pointer (copy of 0x00A1?) ||  
|-
|-
|0x00f1 || Controller Held ||  
|0x00F1 || Controller Held ||  
|-
|-
|0x00f3 || Controller Tapped ||  
|0x00F3 || Controller Tapped ||  
|-
|-
|0x00fc || Y Screen Scroll (pixels) ||  
|0x00FC || Y Screen Scroll (pixels) ||  
|-
|-
|0x00fd || X Screen Scroll (pixels) ||  
|0x00FD || X Screen Scroll (pixels) ||  
|-
|-
|0x0124 || Pulse 1 Volume ||  
|0x0124 || Pulse 1 Volume ||  
Line 154: Line 150:
  |11 || Disappear during pause (0 = no, 4 = yes)
  |11 || Disappear during pause (0 = no, 4 = yes)
  |-
  |-
  |12 || State (possible values for Simon: 00h = standing, 01h = walking, 02h = jumping, 03h = crouching, 04h = attacking, 05h = fall from ledge, 06h = hurt, 07h = auto-align with stairs, 08h = start stairs, 09h = stand on stairs, 0ah = walk on stairs, 80h = start death, 81h = death hurt, 82h = dead on the floor, ffh = dead to lives display)
  |12 || State (possible values for Simon: 00h = standing, 01h = walking, 02h = jumping, 03h = crouching, 04h = attacking, 05h = fall from ledge, 06h = hurt, 07h = auto-align with stairs, 08h = start stairs, 09h = stand on stairs, 0Ah = walk on stairs, 80h = start death, 81h = death hurt, 82h = dead on the floor, FFh = dead to lives display)
  |-
  |-
  |13 || Timer until next Animation Frame
  |13 || Timer until next Animation Frame
Line 174: Line 170:
|0x0446 || Simon jump is rising || 0 = no, 1 = yes
|0x0446 || Simon jump is rising || 0 = no, 1 = yes
|-
|-
|0x050a?-6ff? || Block Clipdata? ||
|0x050A?-6FF? || Block Clipdata? ||
|-
|-
|}
|}
<br>
<br>

Revision as of 13:24, 30 April 2023

Chip tiny.png The following article is a RAM map for Castlevania II: Simon's Quest.


RAM Function Detail
0x0005 Pause Menu Displayed 12h (hexadecimal) = no, 00h = yes
0x0018 Game Mode 00h = reset, 01h = title screen, 02h = something title?, 03h = title starts game, 04h = lives display, 05h = game, 06h = trigger life loss, 07h = game over, 08h = title menu, 09h = trigger ending (load mode), 0Ah = ending, 0Bh = trigger ???, 0Ch = trigger load ending graphics and then trigger 09h?, 0Dh = trigger 0Ch?, 0Eh = ending complete? back to title screen, 0Fh = GAME START fade-out
0x0019 Game Sub-Mode
0x0022 Black Screen Timer 0 = no black screen, not 0 = black screen and counts down to 0
0x0023 Title Menu Option 0 = GAME START, 1 = PASSWORD
0x0026 Pause 0 = not paused, 1 = start pause, 2 = select pause
0x002A Game Mode Timer
0x002C Transition Type 00h = trigger lives display, 01h = lives display, 02h = loading, 03h = no transition, 04h = day/night change dialog, 05h = fade out, 06h = black screen, 07h = fade back in, 08h = horizontal room transition, 09h = vertical room transition, 0Ah = horizontal region transition, 0Bh = vertical region transition
0x0030 Region 00h = town, 01h = mansion, 02h = woods, 03h = graveyard, 04h = mountains, 05h = castlevania's ruins
0x0031 Lives
0x0034 Is Dead Flag 0 = no, not 0 = yes
0x0035 Death Timer
0x0046-47 Experience Four digits 0-9
0x0048-49 Hearts Four digits 0-9
0x004A Acquired Sub-Weapons Each sub-weapon one bit (01h = dagger, 02h = silver knife, 04h = gold knife, 08h = holy water, 10h = diamond, 20h = sacred flame, 40h = oak stake, 80h = nothing)
0x004C Laurels Count Two digits 0-9
0x004D Garlic Count Two digits 0-9
0x004F Equipped Item
0x0053-54 Simon X position in room (pixels)
0x006C-6D Simon X speed (sub-pixels and pixels)
0x0077 Dialog Box Letter Y Tile (in nametable)
0x0078 Dialog Box Letter X Tile
0x007B Dialog Box Letter Timer
0x007C Dialog Box Letter ID
0x007D Dialog Box Line Starting X Tile & Merchant Dialog Box Refuse Timer
0x007E Dialog Box Choice 0 = "NO", 1 = "YES"
0x0080 Energy Starts at 30h
0x0081 Max Energy
0x0082 Day or Night Flag 0 = Day, 1 = Night
0x0083 Time xx:00:00.00 Days
0x0084 Time 00:00:00.xx Frames (not displayed in-game, 15 frames per minute (0x00 to 0x0E inclusive))
0x0085 Time 00:00:xx.00 Minutes
0x0086 Time 00:xx:00.00 Hours
0x008B Level
0x0090 Equipped Sub-Weapon (0 for nothing and 1 to 7 in the same order as in the in-game menu)
0x0091 Acquired Items Each item one bit (01h = rib, 02h = heart, 04h = eye, 08h = nail, 10h = ring, 20h = white gem, 40h = blue gem, 20h+40h = red gem, 80h = nothing)
0x0092 More Acquired Items Each item one bit (01h = silk bag, 02h = magic cross, 04h = laurels, 08h = garlic)
0x00A1-A2 Noise/DPCM Note Pointer
0x00AB Pulse 1 Note Time Left
0x00AC Pulse 2 Note Time Left
0x00AD Triangle Note Time Left
0x00AF Noise active 0 = no, 1 = yes
0x00BB Noise Period and Volume probably pointer to a table
0x00BC Noise/DPCM Note Pointer (copy of 0x00A1?)
0x00F1 Controller Held
0x00F3 Controller Tapped
0x00FC Y Screen Scroll (pixels)
0x00FD X Screen Scroll (pixels)
0x0124 Pulse 1 Volume
0x0125 Pulse 2 Volume
0x0150 Pulse 1 Frame Of Volume Envelope
0x0151 Pulse 2 Frame Of Volume Envelope
0x0300-509? Objects Table let i be the index of an object and j be a property of that object, that property is at address (0x300 + j*18 + i).

List of Objects

i (in decimal) Object
0 Simon
1 Simon whip
2 Simon whip tip
3-5 Simon sub-weapons
6-14 at least NPCs/Enemies/Collectibles

List of Properties

j (in decimal) Property
0 Absolute Animation Frame
2 Y position in camera (pixels)
3 Y position in camera (sub-pixels)
4 X position in camera (pixels)
5 X position in camera (sub-pixels)
6 Y speed (signed pixels)
7 Y speed (sub-pixels)
8 X speed (signed pixels)
9 X speed (sub-pixels)
10 AI
11 Disappear during pause (0 = no, 4 = yes)
12 State (possible values for Simon: 00h = standing, 01h = walking, 02h = jumping, 03h = crouching, 04h = attacking, 05h = fall from ledge, 06h = hurt, 07h = auto-align with stairs, 08h = start stairs, 09h = stand on stairs, 0Ah = walk on stairs, 80h = start death, 81h = death hurt, 82h = dead on the floor, FFh = dead to lives display)
13 Timer until next Animation Frame
14 Animation Frame of Current Animation
16 Direction faced (0 = left, 1 = right)
18 Sub-State
25 Health
28 I-Frames
0x0434 Current Whip 00h = leather, 01h = thorn, 02h = chain, 03h = morning star, 04h = flame
0x0446 Simon jump is rising 0 = no, 1 = yes
0x050A?-6FF? Block Clipdata?