Castlevania III:RAM map
Jump to navigation
Jump to search
The following article is a RAM map for Castlevania III.
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 $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 $009C Subweapon Kill Count (affects multiplier drops) $009D Variable Jump (for Grant) $009E Subweapon Iterator $009F 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 $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 $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) $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 Pallet Offset $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 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 Akumajou Densetsu.
Address Size Description -------- ---- ----------- $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 $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 $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 $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 $0099 Subweapon Kill Count (affects multiplier drops) $009A Variable Jump (for Grant) $009B Subweapon Iterator $009C 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 $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 $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) $00C4 Thaw Timer (for frozen waters) $00C5 Horizontal Scroll Lock (used by crumbling bridge) $00C7 Flood Height $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 Pallet Offset $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 Background Animation Frame $0781 Background Animation Timer $0782 Epilogue Ally $0783 Epilogue State $0784 Castle Shake $0785 Epilogue Text Page $0780 Entry Selector Column $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 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
Internal Data for Castlevania III |
---|
ROM Map • RAM Map • Text Table • Notes • Tutorials |