If you are still using the old URL (datacrystal.romhacking.net), please update your bookmarks! The old URL may stop working soon.
The current URL is datacrystal.tcrf.net.
The current URL is datacrystal.tcrf.net.
Castlevania III: Dracula's Curse/RAM map: Difference between revisions
Jump to navigation
Jump to search
TheouAegis (talk | contribs) mNo edit summary |
TheouAegis (talk | contribs) No edit summary |
||
Line 424: | Line 424: | ||
Address Size Description | Address Size Description | ||
-------- ---- ----------- | -------- ---- ----------- | ||
$0017 Story Reel Border State | |||
''00 = no border; 01 = draw border; 03 = write to $0303 | |||
$0018 System State | $0018 System State | ||
''00 = Title; 02 = New Game; 03 = In-game Transition; 04 = In-Game;'' | ''00 = Title; 02 = New Game; 03 = In-game Transition; 04 = In-Game;'' | ||
Line 458: | Line 460: | ||
$002D User Paused ''(toggled by Start button) | $002D User Paused ''(toggled by Start button) | ||
$002E Boss Defeated | $002E Boss Defeated | ||
$002F Name-Pass Entry Complete ''(unused residual code) | |||
$0030 Checkpoint ''(used for Password Entry) | $0030 Checkpoint ''(used for Password Entry) | ||
$0031 Grant Defeated | $0031 Grant Defeated |
Revision as of 21:33, 4 November 2022
The following article is a RAM map for Castlevania III: Dracula's Curse.
Address Size Description -------- ---- ----------- $0017 Repeat Counter $0018 System State 00 = Title; 02 = New Game; 03 = In-game Transition; 04 = In-Game; 05 = Game Over Transition; 06 = Game Over; 07 = Stage Select Debug; 08 = Map Screen; 09 = Prayer Scene; 0a = Name Entry; 0b = Password Entry; 0c = Epilogue; 0d = Credit Roll; 0e = Respawn; 0f = Sound Test Debug $0019 System Substate $001A Step Counter $001C Blackout Delay $001D X Register Backup $001F Randomizer $0020 OAM Batch $0021 Current PROM Bank $0022 Previous PROM Bank $0023 PROM Bank Backup (used by some functions) $0024 Bank Changed (for debugging probably) $0025 Nametable Mapping $0026 #02 Controller Buttons Pressed 01 = right; 02 = left; 04 = down; 08 = up; 10 = start; 20 = select; 40 = B; 80 = A $0028 #02 Controller Buttons Held $002A Game State (set $006B to 00 before changing) 00 = initialize room; 01 = initialize nametables; 02 = load horizontal room; 03 = horizontal gameplay; 04 = load vertical room; 05 = vertical gameplay; 06 = stair transition start; 07 = stair transition fade; 08 = door transition; 09 = initialize fog; 0a = fog parallax; 0b = horizontal partner swap; 0c = vertical partner swap; 0d/0e = <CUT CONTENT>; 0f = detect automatic stairs; 10 = automatic stair transition; 11 = tally score; 12 = <UNUSED>; 13 = flee Aquarius; 14 = initialize flooding; 15 = load flood room; 16 = flood room gameplay; 17 = map transition; 18 = autowalk to door; 19 = powering up; 1a = freeze water; 1b = thaw ice; 1c = Bone King escape; 1d = Aquarius ruptured; 1e = initialize map transition; 1f = map transition exit $002B User Paused (toggled by Start button) $002C Boss Defeated $002E Checkpoint $002F Grant Defeated $0030 #02 System Effect Timer $0032 Stage $0033 Block $0034 Room $0035 Lives $0036 #03 Score $0039 Main Character (change this to not always be Trevor) $003A Partner 00 = Trevor; 01 = Syfa; 02 = Grant; 03 = Alucard; ff = None $003B Partner Active $003C Player's Health 40 = full $003D Boss Health $003E Score Target (for extra life) $003F Default Drawing State (write to $006D) $0040 Scanline IRQ $0041 Scanline Target $0043 Scanline Next Target $0044 #02 Draw State Address $0046 #08 CHR Banks $004E Hard Mode CHR Bank (overwrites $0049) $0050 #02 Tile Assembly Starting Address $0052 #02 Tile Assembly Left Address $0054 #02 Tile Assembly Right Address $0056 #02 View Position (little endian) $0058 View Subpixel Position $0059 Left Spawn Area $005A Right Spawn Area $005B Tile Assembly Count Left $005C Tile Assembly Count Right $005D #02 Tile Assembly Pointer $005F #02 Pallet Map Pointer $0061 #02 Nametable Write Address $0063 Tile Assembly ID $0064 Transition Timer $0065 Scroll Direction 00 = left; 01 = right; 02 = unchanged $0066 View Refreshed Position $0067 Update View $0068 Room Orientation 00 = horizontal; 80 or 81 = vertical; 82 = scroll up; 83 = scroll down; 84 = collapse up; 85 = collapse down $0069 #02 Stair Map Address $006B Game Substate and menu selections $006C Current Instance (saves X register) $006D Drawing State $006E View Speed $006F #02 PPU Scroll $0071 Room Size $0072 CHR Write Mode 00 or 03 = all CHR banks; 01 = status bar banks; 02 = clear NPC banks $0073 Previous Room Orientation $0074 Music Loaded $0075 Transition Nametable (nametable to use after door closes) $0076 Horizontal Spawner Block $0077 First Spawner Block $0078 Boss Scroll Lock $0079 Vertical Spawner Block $007A Vertical Spawner Previous (?) $007B Spawner Count $007D Room Type 10 = Stormclouds; 20 = Autowalk; 30 = River; 40 = Clockwork; 50 and 60 = Watery Grave; 70 = Flood Zone; 80 = Collapsing Bridge Note: lower 4 bits alter behavior $007E #02 Time $0080 Wounded Timer (invincibility frames) $0081 Damage Received/Effect on Player $0082 PC Height 00 = Trevor standing; 01 = Syfa standing; 02 = Grant standing; 03 = Alucard standing; 04 = Trevor duck; 05 = Syfa duck; 06 = Grant duck; 07 = Alucard duck; 08 = Bat $0084 Hearts $0085 Trevor Subweapon 00 = none; 01 = axe; 02 = boomerang; 03 = knife/book; 04 = holy water; 05 = fireball; 06 = freeze; 07 = orb; 08 = axe; 09 = boomerang; 0a = knife/book ;0b = clock $0086 Partner Subweapon $0087 Trevor Subweapon Multiplier 00 = none; 01 = [II]; 02 = [III] $0088 Partner Subweapon Multiplier $0089 Scanline Start $008B Conveyance 01 = Elevator/Frozen enemy; 02 = Scroll-locked right; 05 = Teeter-totter; 06 = Cogwheel; 07 = Mud; 08 = Waterfall; 09 = Waterfall w/current; 0a = Conveyor left; 0b = Conveyor right; 0d = Petrified; 0e = Auto-walk $008C Whip Spark Timer $008D Room Initialized $008E Trevor Weapon Level 00 = short; 01 = medium; 02 = long $008F Partner Weapon Level 00 = one orb; 01 = two orbs; 03 = three orbs $0090 Knockback Direction 00 = left; 01 = right $0091 Conveyor (see $008B) $0093 Cog Proximity 00 = none; 01 = right OR below; 02 = right AND below $0094 Cog ID $0095 Cogwheel Size 00 = small; 01 = large $0096 Terrain Present $0098 #02 Spawner Data Address $009a #02 Terrain Data Address $009C Subweapon Kill Count (affects multiplier drops) $009D Variable Jump (for Grant) $009E Subweapon Iterator $009F Upgrade Previous Game State $00A0 Recent Player Direction (copy of $009E) $00A1 Previous Player Direction (copy of $0062) $00A3 Game Step Counter (only increments while game not paused) $00A4 Map Transition Checkpoint $00A5 Check Right Tile $00AA Partner Swap Previous Game State $00AB Stopwatch Active $00AC Stopwatch Timer $00AD Invincibility Potion Timer $00AE Alucard Bat Timer (drains 1 heart when decreased to 0) $00AF Landing Delay (prevents walking between elevators) $00B0 Load Doppelganger Sprites (forces CHR updates) $00B1 Current Instance (backup for X register) $00B2 Rosary Flash Timer $00B3 Bridge Out $00B6 Tile Assembly Count Vertical (only for vertical rooms) $00B7 Power Up (used for weapon upgrade) $00B8 Current Platform (ID of elevator or frozen enemy) $00B9 Crash Timer (stuns Player after falling too far) $00BA Boss Fight $00BF Faint Pause (pauses game when killed or time runs out) $00C0 Flood Halted $00C1 Boss Object $00C2 Boss Second Phase $00C3 Boss Spawner $00C4 #02 Character Disabled (cleared in every transition) $00C7 Thaw Timer (for frozen water) $00C8 Horizontal Scroll Lock (used by crumbling bridge) $00CA Flood Height $00CE Weapon Kill Count (affects item drops) $00CF Previous Conveyance (backup of $0088) $00D0 Vertical Ceiling (lowest y-coordinate in vertical room) $00D2 Cogwheel ID Copy $00D4 Cogwheel ID $00E0 #02 Audio Current Note Address $00E2 #02 Audio Redirect Address $00E2 Audio Data Temporary Variable $00E4 #02 Audio Data 16-bit Variable $00E6 #02 Audio Track Base Address $00E8 #02 Audio Track Address $00EA Audio Channels to Load $00EB Audio Routine PROM Bank $00EC #02 Audio Current Period (i.e., pitch) $00EE Audio Current Channel $00EF Audio Track ID $00F0 #04 Candle Status (32-bit mask) $00F4 #04 Breakable Wall Status 00 = unused/unbroken; ff = broken $00F8 #02 Previous Controller Buttons Pressed $00FA #02 Previous Controller Buttons Held $00FC #02 PPU Scroll $00FE PPU Mask (for hue shifts and greyscale) $00FF PPU Control Audio channels: (grouped by 3, 5, or 7) 00 = BGM Square 1; 021 = BGM Square 2; 02 = BGM Triangle; 03 = SFX Square 1; 04 = SFX Square 2; 05 = Drums (DCM & Noise); 06 = Noise $0100 #07 Audio Channel Note Duration $0107 #07 Audio Channel Song ID $010E #07 Audio Channel Next Note Duration $0115 #07 Audio Channel Behavior bit 0 = SFX (ignore ritenuto); bits 1-2 = init/decay/sustain/release; bit 3 = Al segno loop; bit 5 = coda loop; bit 6 = ignore envelope; $011C #07 Audio Channel Loop Count $0123 #07 Audio Channel Note Address Low Byte $012A #07 Audio Channel Note Address High Byte $0131 #07 Audio Channel Al Segno Address Low Byte $0138 #07 Audio Channel Al Segno Address High Byte $013F #07 Audio Channel Coda Address Low Byte $0146 #07 Audio Channel Coda Address High Byte $014D #07 Audio Channel Previous Period High Byte $0152 Audio Global Dampening (lowers volume for all channels) $0154 #07 Audio Channel Volume $0159 Audio Global Fade Timer (decreases $017C after 2b steps) $015B #07 Audio Channel Next Control Value / Channel Dampening Placeholder $0160 Audio Global Fade Delay $0162 #07 Audio Channel Default Duty Cycle $0167 Audio Global Mute for Pause $0169 #05 Audio Channel Dampening (lowers volume for specific channel) $016E #05 Audio Channel Attributes bit 4 = use waveform; bit 5 = alternate duty; bit 7 = disabled needs more info $0173 #05 Audio Channel Pitch Bend Amount $0178 #05 Audio Channel Period Low Byte Backup (useless?) $017D #03 Audio Channel Octave (raises octave by 5-n) $0180 #03 Audio Channel Note Offset (adds signed value to note ID to look up period) $0183 #03 Audio Channel Period Low $0186 #03 Audio Channel Period High $0189 #03 Audio Channel Volume Envelope (if bit 7 set, fade out instead based on bits 0-3) $018C Audio SFX Register Offset $018D Audio Global Ritenuto Delay (counts up to $018E) $018E Audio Global Ritenuto Cutoff (frames until $018F set) $018F Audio Global Ritenuto (prolongs BGM note duration when set) $0190 #02 Audio SFX Square Sweep $0192 Audio Current DPCM $0193 Audio Triangle Staccato Timer $0194 Audio Triangle Linear Counter (only used with $193) $0195 #07 Audio Channel PROM Bank $019C Audio SFX Square 1 Sweep (write to $4001) $0200 #100 OAM Data $0300 #a0 Tile Data $03C0 #03 Audio Channel Volume Envelope Duration $03C3 #03 Audio Channel Volume Envelope Position $03C6 #03 Audio Channel Volume Envelope Loop Count $03C9 #03 Audio Channel Volume Envelope Loop Point $03CC #03 Audio Channel Fadeout Point (fades out when equal to $100,X) $03CF #03 Audio Channel Volume Envelope (bits 0-3 = value; $03CC = duration*value >> 4) $03D2 #03 Audio Channel Next Fade Duration $03D5 #03 Audio Channel Fade Duration $03D8 #03 Audio Channel Alternate Duty Cycle $03DB #03 Audio Channel Next Pitchbend Duration $03DE #03 Audio Channel Pitchbend Duration $03E1 #03 Audio Channel Sweep Rate $0400 #1c Sprite Frame Index $041C #1c Y-Coordinate $0438 #1c X-Coordinate $0454 #1c Sprite Attributes (palette & background priority) $0470 #1c Attributes 01 = destroyed; 02 = frozen; 04 = unknown; 08 = flicker; 10 = illusory; 20 = inanimate; 40 = moving; 80 = invisible $048C #1c Animation Batch (even numbers) 00-06 = Player; 08-12 = NPCs; 14 = Epilogue; 16-1C = Doppelganger $04A8 #1C Sprite Mirrored $04C4 #17 X-Coordinate Subpixel $04DB #17 Y-Coordinate Subpixel $04F2 #17 Horizontal Speed $0509 #17 Horizontal Speed Subpixel $0520 #17 Vertical Speed $0537 #17 Vertical Speed Subpixel $054E #17 Object Index $0565 Player State $0566 #11 Stun Timer $0578 Weapon State $0579 #03 Subweapon State $057C #17 Animation Timer $0593 #17 Sprite Frame (used to calculate $0400,X) $05AA #17 Sprite Index $05C1 Moving Down $05C2 #12 NPC State $05D4 Player Stunned State $05D5 #03 Subweapon Throw Delay $05D8 Player Jump State 00-1D = Trevor/Syfa/Alucard; 1E-39 = Grant $05D9 #0c Boss Use $05E5 #06 Candle Drop 83 = Axe; 84 = Cross; 85 = Dagger; 86 = Holy Water; 87 = Stopwatch; 88 = Syfa Fire; 89 = Syfa Ice; 8a = Syfa Water; 8b = Grant Dagger; 8c Grant Axe; 8d-8f = Upgrades (8f removed); 90 = Wall Meat; 91 = Invincibility Potion; 92 = Rosary; 93-9b = Coins; 9c = 1UP; 9d = Big Heart; 9e = Small Heart; 9f-a0 = Multipliers $05EB Stair Stun Timer $05EF Stair Direction Grant Jump State Fraction (functions like speed variables) $05F0 #12 AI Class (determines behavior) $0602 Stair Stun (decreases $05EB) $0606 Grant Gravity Subpixel (increases $05EF for Grant) $0607 #12 State Timer (time between state changes for most NPCs) Sinusoid Center Axis $0619 Ally Swap Y-Coordinate $061A #03 Subweapon Damage and Multikill Count $061D Stair Timer (time to climb one step) Grant Gravity (increases $05D8 for Grant) $061E #12 Miscellaneous Ticker (usually timer or counter for NPCs) $0630 Weapon Damage $0631 #03 Subweapon Deflection (copy of $0658,X on Cross hit) $0634 #17 Miscellaneous Use (used by a couple NPCs) $0646 #12 Spawner Index $0658 #0d NPC Damage $0664 #06 Candle Active $066A #12 Applied Effect (copy of $061A,X on subweapon hit) $067B #12 NPC Hitpoints $068E #12 Weapons Impact 01 = weapon; 02 = subweapon 1; 04 = subweapon 2; 08 = subweapon 3 $06A0 #03 Audio Channel Pitch Envelope Loop Start $06A3 #03 Audio Channel Pitch Envelope ID $06A6 #03 Audio Channel Pitch Envelope Position $06A9 #03 Audio Channel Pitch Envelope Loop Count $06AC #03 Audio Channel Sustain State (80 = disabled) $06AF #03 Audio Channel Sustain Position (from 0 to 3) $06B2 #03 Audio Channel Sustain Dampen $06B5 #04 Audio BGM Square 1 Sustain Period Low Bytes $06B9 #04 Audio BGM Square 2 Sustain Period Low Bytes $06BD #04 Audio BGM Square 1 Sustain Period High Bytes $06C1 #04 Audio BGM Square 2 Sustain Period High Bytes $06C8 Boss Scream Time (stops DPCM at f0) $06C9 Music Paused $06E0 #90 Collision Map 00 = empty; 01 = mud; 02 = convey right; 03 = convey left; 04 = fragile; 05 = ceiling spike; 06 = solid; 07 = floor spike; 08 = ice; 0c-0f = cracking $0770 #08 CHR5 Solid Definitions Byte 0 = empty; Byte 1 = mud; Byte 2 = convey right; Byte 3 = convey left; Byte 4 = fragile; Byte 5 = ceiling spike; Byte 6 = solid; Byte 7 = floor spike $0778 #08 CHR6 Solid Definitions $0780 Background Animation Frame $0780 Entry Selector Column $0780 Map Clipping 00 = To Grant; 01 = To Syfa; 02 = From Alucard $0781 Background Animation Timer $0781 Entry Selector Row $0781 Map Fade-out Value $0782 #40 Fog Parallax Positions 32 rows of parallax with 2 bytes per row: Byte 0 = subpixel offset; Byte 1 = pixel offset $0782 Previous Selector Column $0782 Map Timer $0782 Epilogue Ally $0782 Sypha's Frozen Tile Column $0783 Previous Selector Row $0783 Map Horizontal Speed Subpixel $0783 Epilogue State $0783 Sypha's Frozen Tile Row $0784 Name Cursor Position $0784 Map Horizontal Speed $0784 Castle Shake Direction $0784 Leftmost Frozen Tile Column $0785 Map Vertical Speed Subpixel $0785 Epilogue Text Page $0785 Leftmost Frozen Tile Row $0786 Password Icon $0786 Map Vertical Speed $0786 Rightmost Frozen Tile Column $0787 Previous Password Icon $0787 Map Scroll Timer $0787 Rightmost Frozen Tile Row $0788 #02 Password Decryption Dump $0788 Map X-coordinate Subpixel $0788 Epilogue Scroll Timer $0788 Water Freeze Counter $0789 Map Y-coordinate Subpixel $0789 Frozen Water Room Type $078A Epilogue Timer $078A Map Path PPU Scroll $078B Map Path PPU Control $078B Password Errors (used for debugging) $078C #02 Map Path PPU Address $078C Update Selector $0790 #10 Entered Password 00 = empty; 01 = whip; 02 = cross; 03 = heart $0790 #10 Boss Stun Timer $0790 Map Screen Platform 00 = full; 01 = short west; 02 = bottom east; 03 = top west; 04 = middle west; 05 = bottom west $07A0 #0a Generated Password $07B1 #02 Stacked Breakable Wall $07B3 #02 Lower Block Broken $07B5 #02 Upper Block Broken $07B7 #02 Wall ID (points to $00F4,X) $07C2 #06 Spawner Type $07C8 #06 Spawner State $07CE #06 Spawner Timer $07D4 #06 Spawner Y-Coordinate $07DA #06 Spawner x-Coordinate $07E0 #06 Spawner Offscreen $07E6 #06 Spawner NPC Object $07EC #06 Bone Dragon King Frames (two ribs per byte) $07EC Cyclops Lightning State Bone Dragon Cycle Giant Bat Leader Dracula Phase 00 = Dracula; 01 = demon; 02 = Pazuzu $07ED Victory State Bone Dragon Mirrored Collapsing Bridge Length Giant Bat State $07EE Bone Dragon Fireball Timer Death Scythe Count $07EF Bone Dragon Attacking $07F3 Boss Phase 00 = boss fight; 01 = boss defeat; 02 = crystal drop; 03 = battle over; 80 = boss waiting Victory Delay (timer after battle over) $07F6 Hard Mode $07F8 #08 Player Name
The following article is a RAM map for Castlevania III: Dracula's Curse.
Address Size Description -------- ---- ----------- $0017 Story Reel Border State 00 = no border; 01 = draw border; 03 = write to $0303 $0018 System State 00 = Title; 02 = New Game; 03 = In-game Transition; 04 = In-Game; 05 = Game Over Transition; 06 = Game Over; 07 = Stage Select Debug; 08 = Map Screen; 09 = Prayer Scene; 0a = Name Entry; 0b = Password Entry; 0c = Epilogue; 0d = Credit Roll; 0e = Respawn; 0f = Sound Test Debug $0019 System Substate $001B System Step Counter $001D Blackout Delay $001E X Register Backup $001F Pausing Disabled (always 00?) $0020 Randomizer $0021 PPU Bank (write to $B003) $0022 OAM Batch $0023 Current PROM Bank $0024 Previous PROM Bank $0025 PROM Bank Backup (used by some functions) $0026 Bank Changed (for debugging probably) $0028 #02 Controller Buttons Pressed 01 = right; 02 = left; 04 = down; 08 = up; 10 = start; 20 = select; 40 = B; 80 = A $002A #02 Controller Buttons Held $002C Game State (set $0068 to 00 before changing) 00 = initialize room; 01 = initialize nametables; 02 = load horizontal room; 03 = horizontal gameplay; 04 = load vertical room; 05 = vertical gameplay; 06 = stair transition start; 07 = stair transition fade; 08 = door transition; 09 = initialize fog; 0a = fog parallax; 0b = horizontal partner swap; 0c = vertical partner swap; 0d/0e = <CUT CONTENT>; 0f = detect automatic stairs; 10 = automatic stair transition; 11 = tally score; 12 = <UNUSED>; 13 = flee Aquarius; 14 = initialize flooding; 15 = load flood room; 16 = flood room gameplay; 17 = map transition; 18 = autowalk to door; 19 = powering up; 1a = freeze water; 1b = thaw ice; 1c = Bone King escape; 1d = Aquarius ruptured; 1e = initialize map transition; 1f = map transition exit $002D User Paused (toggled by Start button) $002E Boss Defeated $002F Name-Pass Entry Complete (unused residual code) $0030 Checkpoint (used for Password Entry) $0031 Grant Defeated $0032 #02 System Effect Timer $0034 Stage $0035 Block $0036 Room $0037 Lives $0038 #08 CHR Banks $0040 IRQ Control $0041 #02 IRQ Latch $0043 Default Drawing State (write to $006A) $0044 #03 Score $0047 Player Object (change this to not always be Trevor) $0048 Partner 00 = Trevor; 01 = Syfa; 02 = Grant; 03 = Alucard; ff = None $0049 Partner Active $004A Player's Health 40 = full $004B Boss Health $004C Score Target (for extra life) $004D #02 Tile Assembly Room Address $004F #02 Tile Assembly Left Address $0051 #02 Tile Assembly Right Address $0053 #02 View Position $0055 View Subpixel Position $0056 Left Spawn Area $0057 Right Spawn Area $0058 Tile Assembly Count Left $0059 Tile Assembly Count Right $005A #02 Tile Assembly Pointer $005C #02 Pallet Map Pointer $005E #02 Nametable Write Address $0060 Tile Assembly ID $0061 Transition Timer $0062 Scroll Direction 00 = left; 01 = right; 02 = unchanged $0063 View Refreshed Position $0064 Update View $0065 Room Orientation 00 = horizontal; 80 or 81 = vertical; 82 = scroll up; 83 = scroll down; 84 = collapse up; 85 = collapse down $0066 #02 Stair Map Address $0068 Game Substate $0069 Current Instance (saves X register) $006A Drawing State $006B View Speed $006C #02 PPU Write Position $006E Room Size $006F CHR Write Mode 00 or 03 = all CHR banks; 01 = status bar banks; 02 = clear NPC banks $0070 Previous Room Orientation $0071 Music Loaded $0072 Transition Nametable (nametable to use after door closes) $0073 Horizontal Spawner Block $0074 First Spawner Block $0075 Boss Scroll Lock $0076 Vertical Spawner Block $0077 Vertical Spawner Previous (?) $0078 Spawner Count $007A Room Type 10 = Stormclouds; 20 = Autowalk; 30 = River; 40 = Clockwork; 50 and 60 = Watery Grave; 70 = Flood Zone; 80 = Collapsing Bridge Note: lower 4 bits alter behavior $007B #02 Time $007D Wounded Timer (invincibility frames) $007E Damage Received/Effect On Player $007F PC Height 00 = Trevor standing; 01 = Syfa standing; 02 = Grant standing; 03 = Alucard standing; 04 = Trevor duck; 05 = Syfa duck; 06 = Grant duck; 07 = Alucard duck; 08 = Bat $0081 Hearts $0082 Trevor Subweapon 00 = none; 01 = axe; 02 = boomerang; 03 = knife/book; 04 = holy water; 05 = fireball; 06 = freeze; 07 = orb; 08 = axe; 09 = boomerang; 0a = knife/book ;0b = clock $0083 Partner Subweapon $0084 Trevor Subweapon Multiplier 00 = none; 01 = [II]; 02 = [III] $0085 Partner Subweapon Multiplier $0088 Conveyance 01 = Elevator/Frozen enemy; 02 = Scroll-locked right; 05 = Teeter-totter; 06 = Cogwheel; 07 = Mud; 08 = Waterfall; 09 = Waterfall w/current; 0a = Conveyor left; 0b = Conveyor right; 0d = Petrified; 0e = Auto-walk $0089 Whip Spark Timer $008A Room Initialized $008B Trevor Weapon Level 00 = short; 01 = medium; 02 = long $008C Partner Weapon Level 00 = one orb; 01 = two orbs; 03 = three orbs $008D Knockback Direction 00 = left; 01 = right $008E Conveyor (see $0088) $0090 Cog Proximity 00 = none; 01 = right OR below; 02 = right AND below $0091 Cog ID $0092 Cogwheel Size 00 = small; 01 = large $0093 Terrain Present $0095 #02 Spawner Data Address $0097 #02 Terrain Data Address $0099 Subweapon Kill Count (affects multiplier drops) $009A Variable Jump (for Grant) $009B Subweapon Iterator $009C Upgrade Previous Game State $009D Recent Player Direction (copy of $009E) $009E Previous Player Direction (copy of $0062) $00A0 Game Step Counter (only increments while game not paused) $00A1 Map Transition Checkpoint $00A2 Check Right Tile $00A7 Partner Swap Previous Game State $00A8 Stopwatch Active $00A9 Stopwatch Timer $00AA Invincibility Potion Timer $00AB Alucard Bat Timer (drains 1 heart when decreased to 0) $00AC Landing Delay (prevents walking between elevators) $00AD Load Doppelganger Sprites (forces CHR updates) $00AE Current Instance (backup for X register) $00AF Rosary Flash Timer $00B0 Bridge Out $00B3 Tile Assembly Count Vertical (only for vertical rooms) $00B4 Power Up (used for weapon upgrade) $00B5 Current Platform (ID of elevator or frozen enemy) $00B6 Crash Timer (stuns Player after falling too far) $00B7 Boss Fight $00BC Faint Pause (pauses game when killed or time runs out) $00BD Flood Paused (only set when Bone Dragon flees?) $00BE Boss Object $00BF Boss Second Phase (for Death, set then cleared for Bone Dragon) $00C0 Boss Spawner ID $00C1 #02 Character Disabled (cleared in every transition) $00C4 Thaw Timer (for frozen waters) $00C5 Horizontal Scroll Lock (used by crumbling bridge) $00C7 Flood Height $00C8 Flood Height Subpixel $00C9 #02 Boss Stun Bitmask $00CB Weapon Kill Count (affects item drops) $00CC Previous Conveyance (backup of $0088) $00CD Vertical Ceiling (lowest y-coordinate in vertical room) $00CF Cogwheel ID Copy $00D1 Cogwheel ID $00E0 #02 Audio Current Note Address $00E2 #02 Audio Redirect Address $00E2 Audio Data Temporary Variable $00E4 #02 Audio Data 16-bit Variable $00E6 #02 Audio Track Base Address $00E8 #02 Audio Track Address $00EA Audio Channels to Load $00EB Audio Routine PROM Bank $00EC #02 Audio Current Period (i.e., pitch) $00EE Audio Current Channel $00EF Audio Track ID $00F0 #04 Candle Status (32-bit mask) $00F4 #04 Breakable Wall Status 00 = unused/unbroken; ff = broken $00F8 #02 Previous Controller Buttons Pressed $00FA #02 Previous Controller Buttons Held $00FC #02 PPU Scroll $00FE PPU Mask (for hue shifts and greyscale) $00FF PPU Control Audio channels: (grouped by 5, 7, or 9) 00 = Pulse 1; 01 = Pulse 2; 02 = Sawtooth; 03 = BGM Square 1; 04 = BGM Square 2 05 = SFX Square 1; 06 = SFX Square 2; 07 = Drums (DCM & Noise); 08 = Noise $0100 #09 Audio Channel Note Duration $0109 #09 Audio Channel Song ID $0112 #09 Audio Channel Next Note Duration $011B #09 Audio Channel Behavior bit 0 = SFX (ignore ritenuto); bits 1-2 = init/decay/sustain/release; bit 3 = Al segno loop; bit 5 = coda loop; bit 6 = ignore envelope; $0124 #09 Audio Channel Loop Count $012D #09 Audio Channel Note Address Low Byte $0136 #09 Audio Channel Note Address High Byte $013F #09 Audio Channel Al Segno Address Low Byte $0148 #09 Audio Channel Al Segno Address High Byte $0151 #09 Audio Channel Coda Address Low Byte $015A #09 Audio Channel Coda Address High Byte $0163 #09 Audio Channel Previous Period High Byte $016A Audio Global Dampening (lowers volume for all channels) $016C #09 Audio Channel Volume $0173 Audio Global Fade Timer (decreases $017C after 2b steps) $0175 #09 Audio Channel Next Control Value / Channel Dampening Placeholder $017C Audio Global Fade Delay $017E #09 Audio Channel Default Duty Cycle $0185 Audio Global Mute for Pause $0187 #07 Audio Channel Dampening (lowers volume for specific channel) $018E #07 Audio Channel Attributes bit 4 = use waveform; bit 5 = alternate duty; bit 7 = disabled needs more info $0195 #07 Audio Channel Pitch Bend Amount $019C #02 Audio SFX Square Sweep $019E Audio DPCM ID $019F #02 Audio Square Period Low Byte (write to $4002/$4006) $01A3 #05 Audio Channel Octave (raises octave by 5-n) $01A8 #05 Audio Channel Note Offset (adds signed value to note ID to look up period) $01AD #05 Audio Channel Period Low $01B2 #05 Audio Channel Period High $01B7 #05 Audio Channel Volume Envelope (if bit 7 set, fade out instead based on bits 0-3) $01BC Audio SFX Square Register Offset $01BD Audio Global Ritenuto Delay (counts up to $01BE) $01BE Audio Global Ritenuto Cutoff (frames until $01BF set) $01BF Audio Global Ritenuto (prolongs BGM note duration when set) $0200 #100 OAM Data $0300 #a0 Tile Data $03C0 #05 Audio Channel Volume Envelope Duration $03C5 #05 Audio Channel Volume Envelope Position $03CA #05 Audio Channel Volume Envelope Loop Count $03CF #05 Audio Channel Volume Envelope Loop Point $03D4 #05 Audio Channel Fadeout Point (fades out when equal to $100,X) $03D9 #05 Audio Channel Volume Envelope (bits 0-3 = value; $03D4 = duration*value >> 4) $03DE #05 Audio Channel Next Fade Duration $03E3 #05 Audio Channel Fade Duration $03E8 #05 Audio Channel Alternate Duty Cycle $03ED #05 Audio Channel Next Pitchbend Duration $03F2 #05 Audio Channel Pitchbend Duration $03F7 #05 Audio Channel Sweep Rate $0400 #1c Sprite Frame Index $041C #1c Y-Coordinate $0438 #1c X-Coordinate $0454 #1c Sprite Attributes (palette & background priority) $0470 #1c Attributes 01 = destroyed; 02 = frozen; 04 = unknown; 08 = flicker; 10 = illusory; 20 = inanimate; 40 = moving; 80 = invisible $048C #1c Animation Batch (even numbers) 00-06 = Player; 08-12 = NPCs; 14 = Epilogue; 16-1C = Doppelganger $04A8 #1C Sprite Mirrored $04C4 #17 X-Coordinate Subpixel $04DB #17 Y-Coordinate Subpixel $04F2 #17 Horizontal Speed $0509 #17 Horizontal Speed Subpixel $0520 #17 Vertical Speed $0537 #17 Vertical Speed Subpixel $054E #17 Object Index $0565 Player State $0566 #11 Stun Timer $0578 Weapon State $0579 #03 Subweapon State $057C #17 Animation Timer $0593 #17 Sprite Frame (used to calculate $0400,X) $05AA #17 Sprite Index $05C1 Moving Down $05C2 #12 NPC State $05D4 Player Stunned State $05D5 #03 Subweapon Throw Delay $05D8 Player Jump State 00-1D = Trevor/Syfa/Alucard; 1E-39 = Grant $05D9 #0c Boss Use $05E5 #06 Candle Drop 83 = Axe; 84 = Cross; 85 = Dagger; 86 = Holy Water; 87 = Stopwatch; 88 = Syfa Fire; 89 = Syfa Ice; 8a = Syfa Water; 8b = Grant Dagger; 8c Grant Axe; 8d-8f = Upgrades (8f removed); 90 = Wall Meat; 91 = Invincibility Potion; 92 = Rosary; 93-9b = Coins; 9c = 1UP; 9d = Big Heart; 9e = Small Heart; 9f-a0 = Multipliers $05EB Stair Stun Timer $05EF Stair Direction Grant Jump State Fraction (functions like speed variables) $05F0 #12 AI Class (determines behavior) $0602 Stair Stun (decreases $05EB) Freezing Rivers Turning Into Bat $0606 Grant Gravity Subpixel (increases $05EF for Grant) $0607 #12 State Timer (time between state changes for most NPCs) Sinusoid Center Axis $0619 Ally Swap Y-Coordinate $061A #03 Subweapon Damage and Multikill Count $061D Stair Timer (time to climb one step) Grant Gravity (increases $05D8 for Grant) $061E #12 Miscellaneous Ticker (usually timer or counter for NPCs) $0630 Weapon Damage $0631 #03 Subweapon Deflection (copy of $0658,X on Cross hit) $0634 #17 Miscellaneous Use (used by a couple NPCs) $0646 #12 Spawner Index $0658 #0d NPC Damage $0664 #06 Candle Active $066A #12 Applied Effect (copy of $061A,X on subweapon hit) $067B #12 NPC Hitpoints $068E #12 Weapons Impact 01 = weapon; 02 = subweapon 1; 04 = subweapon 2; 08 = subweapon 3 $06A0 #05 Audio Channel Pitch Envelope Loop Start $06A5 #05 Audio Channel Pitch Envelope ID $06AA #05 Audio Channel Pitch Envelope Position $06AF #05 Audio Channel Pitch Envelope Loop Count $06B4 #05 Audio Channel Sustain State $06B9 #05 Audio Channel Sustain Position (from 0 to 3) $06BE #05 Audio Channel Sustain Dampen $06C3 #04 Audio BGM Square 1 Sustain Period Low Bytes $06C7 #04 Audio BGM Square 2 Sustain Period Low Bytes $06CB #04 Audio BGM Square 1 Sustain Period High Bytes $06CF #04 Audio BGM Square 2 Sustain Period High Bytes $06D3 #09 Audio Channel PROM Bank $06DC Music Paused $06DD Boss Scream Duration stops DPCM playback $06E0 #90 Collision Map 00 = empty; 01 = mud; 02 = convey right; 03 = convey left; 04 = fragile; 05 = ceiling spike; 06 = solid; 07 = floor spike; 08 = ice; 0c-0f = cracking $0770 #08 CHR5 Solid Definitions Byte 0 = empty; Byte 1 = mud; Byte 2 = convey right; Byte 3 = convey left; Byte 4 = fragile; Byte 5 = ceiling spike; Byte 6 = solid; Byte 7 = floor spike $0778 #08 CHR6 Solid Definitions $0780 Entry Selector Column $0780 Background Animation Frame $0780 Map Clipping 00 = To Grant; 01 = To Syfa; 02 = From Alucard $0781 Background Animation Timer $0781 Entry Selector Row $0781 Map Fade-out Value $0782 #40 Fog Parallax Positions 32 rows of parallax with 2 bytes per row: Byte 0 = subpixel offset; Byte 1 = pixel offset $0782 Previous Selector Column $0782 Map Timer $0782 Epilogue Ally $0782 Sypha's Frozen Tile Column $0783 Previous Selector Row $0783 Map Horizontal Speed Subpixel $0783 Epilogue State $0783 Sypha's Frozen Tile Row $0784 Name Cursor Position $0784 Map Horizontal Speed $0784 Castle Shake Direction $0784 Leftmost Frozen Tile Column $0785 Map Vertical Speed Subpixel $0785 Epilogue Text Page $0785 Leftmost Frozen Tile Row $0786 Password Icon $0786 Map Vertical Speed $0786 Rightmost Frozen Tile Column $0787 Previous Password Icon $0787 Map Scroll Timer $0787 Rightmost Frozen Tile Row $0788 #02 Password Decryption Dump $0788 Map X-coordinate Subpixel $0788 Epilogue Scroll Timer $0788 Water Freeze Counter $0789 Map Y-coordinate Subpixel $0789 Frozen Water Room Type $078A Epilogue Timer $078A Map Path PPU Scroll $078B Map Path PPU Control $078B Password Errors (used for debugging) $078C #02 Map Path PPU Address $078C Update Selector $0790 #10 Entered Password 00 = empty; 01 = whip; 02 = cross; 03 = heart $0790 #10 Boss Stun Timer $0790 Map Screen Platform 00 = full; 01 = short west; 02 = bottom east; 03 = top west; 04 = middle west; 05 = bottom west $07A0 #0a Generated Password $07B1 #02 Stacked Breakable Wall $07B3 #02 Lower Block Broken $07B5 #02 Upper Block Broken $07B7 #02 Wall ID (points to $00F4,X) $07C2 #06 Spawner Type $07C8 #06 Spawner State $07CE #06 Spawner Timer $07D4 #06 Spawner Y-Coordinate $07DA #06 Spawner x-Coordinate $07E0 #06 Spawner Offscreen $07E6 #06 Spawner NPC Object $07EC #06 Bone Dragon King Frames (two ribs per byte) $07EC Cyclops Lightning State Bone Dragon Cycle Giant Bat Leader Dracula Phase 00 = Dracula; 01 = demon; 02 = Pazuzu $07ED Victory State Bone Dragon Mirrored Collapsing Bridge Length Giant Bat State $07EE Bone Dragon Fireball Timer Death Scythe Count $07EF Bone Dragon Attacking $07EF Intro Story Text Line $07F0 Intro Story Scanline $07F1 #02 Intro Story Text Address $07F3 Boss Phase 00 = boss fight; 01 = boss defeat; 02 = crystal drop; 03 = battle over; 80 = boss waiting Victory Delay (timer after battle over) $07F6 Hard Mode $07F8 #08 Player Name
Internal Data for Castlevania III
| |
---|---|