Castlevania III: Dracula's Curse/RAM map: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
No edit summary
(Added audio engine mappings for AkuDen. Some bytes still missing or incorrect, in all honesty. Better than nothing!)
Line 141: Line 141:
  $00FE              PPU Mask (for hue shifts and greyscale)
  $00FE              PPU Mask (for hue shifts and greyscale)
  $00FF              PPU Control  
  $00FF              PPU Control  
  $0200      $100    OAM (sprites)
  $0200      #100    OAM Data
   
  $0300      #a0    Tile Data
  $0400      #1c    Sprite Frame Index
  $0400      #1c    Sprite Frame Index
  $041C      #1c    Y-Coordinate
  $041C      #1c    Y-Coordinate
Line 284: Line 284:
  --------  ----    -----------
  --------  ----    -----------
  $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;''
                             05 = Game Over Transition; 06 = Game Over; 07 = Stage Select Debug;
                             ''05 = Game Over Transition; 06 = Game Over; 07 = Stage Select Debug;''
                             08 = Map Screen; 09 = Prayer Scene; 0a = Name Entry; 0b = Password Entry;
                             ''08 = Map Screen; 09 = Prayer Scene; 0a = Name Entry; 0b = Password Entry;''
                             0c = Epilogue; 0d = Credit Roll; 0e = Respawn; 0f = Sound Test Debug
                             ''0c = Epilogue; 0d = Credit Roll; 0e = Respawn; 0f = Sound Test Debug''
  $0019              System Substate
  $0019              System Substate
  $001B              System Step Counter
  $001B              System Step Counter
Line 294: Line 294:
  $0021              PPU Bank (write to $B003)
  $0021              PPU Bank (write to $B003)
  $0028      #02    Controller Buttons Pressed
  $0028      #02    Controller Buttons Pressed
                             01 = right; 02 = left; 04 = down; 08 = up;
                             ''01 = right; 02 = left; 04 = down; 08 = up;''
                             10 = start; 20 = select; 40 = B; 80 = A
                             ''10 = start; 20 = select; 40 = B; 80 = A''
  $002A      #02    Controller Buttons Held
  $002A      #02    Controller Buttons Held
  $002C              Game State
  $002C              Game State
Line 313: Line 313:
  $0044      #03    Score
  $0044      #03    Score
  $0048              Partner   
  $0048              Partner   
                             00 = Trevor; 01 = Syfa; 02 = Grant; 03 = Alucard; ff = None
                             ''00 = Trevor; 01 = Syfa; 02 = Grant; 03 = Alucard; ff = None''
  $0049              Partner Active
  $0049              Partner Active
  $004A              Player's Health
  $004A              Player's Health
                             40 = full
                             ''40 = full''
  $004B              Boss Health  
  $004B              Boss Health  
  $004C              Score Target (for extra life)
  $004C              Score Target (for extra life)
Line 329: Line 329:
  $0061              Transition Timer
  $0061              Transition Timer
  $0062              Scroll Direction
  $0062              Scroll Direction
                             00 = left; 01 = right; 02 = unchanged
                             ''00 = left; 01 = right; 02 = unchanged''
  $0063              View Refreshed Position
  $0063              View Refreshed Position
  $0064              Update View
  $0064              Update View
  $0065              Room Orientation
  $0065              Room Orientation
                             00 = horizontal; 80 or 81 = vertical; 82 = scroll up;
                             ''00 = horizontal; 80 or 81 = vertical; 82 = scroll up;''
                             83 = scroll down; 84 = collapse up; 85 = collapse down
                             ''83 = scroll down; 84 = collapse up; 85 = collapse down''
  $0066      #02    Stair Map Address
  $0066      #02    Stair Map Address
  $0068              Player Animation State (for transitions)
  $0068              Player Animation State (for transitions)
Line 343: Line 343:
  $006E              Room Size
  $006E              Room Size
  $006F              CHR Write Mode
  $006F              CHR Write Mode
                             00 or 03 = all CHR banks; 01 = status bar banks;  02 = clear NPC banks
                             ''00 or 03 = all CHR banks; 01 = status bar banks;  02 = clear NPC banks''
  $0070              Previous Room Orientation
  $0070              Previous Room Orientation
  $0071              Music Loaded
  $0071              Music Loaded
Line 354: Line 354:
  $0078              Spawner Count
  $0078              Spawner Count
  $007A              Room Type
  $007A              Room Type
                             10 = Stormclouds; 20 = Autowalk; 30 = River; 40 = Clockwork;
                             ''10 = Stormclouds; 20 = Autowalk; 30 = River; 40 = Clockwork;''
                             50 and 60 = Watery Grave; 70 = Flood Zone; 80 = Collapsing Bridge
                             ''50 and 60 = Watery Grave; 70 = Flood Zone; 80 = Collapsing Bridge''
                             Note: lower 4 bits alter behavior
                             ''Note: lower 4 bits alter behavior''
  $007B      #02    Time  
  $007B      #02    Time  
  $007D              Wounded Timer (invincibility frames)
  $007D              Wounded Timer (invincibility frames)
  $007E              Damage Received
  $007E              Damage Received
  $007F              PC Height
  $007F              PC Height
                             00 = Trevor standing; 01 = Syfa standing; 02 = Grant standing; 03 = Alucard standing;
                             ''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
                             ''04 = Trevor duck; 05 = Syfa duck; 06 = Grant duck; 07 = Alucard duck; 08 = Bat''
  $0081              Hearts
  $0081              Hearts
  $0082              Trevor Subweapon
  $0082              Trevor Subweapon
Line 368: Line 368:
                             06 = freeze; 07 = orb; 08 = axe; 09 = boomerang; 0a = knife/book ;0b = clock
                             06 = freeze; 07 = orb; 08 = axe; 09 = boomerang; 0a = knife/book ;0b = clock
  $0083              Partner Subweapon
  $0083              Partner Subweapon
  $0084              Trevor Subweapon Multiplier  00 = none; 01 = [II]; 02 = [III]
  $0084              Trevor Subweapon Multiplier   
                            ''00 = none; 01 = [II]; 02 = [III]''
  $0085              Partner Subweapon Multiplier
  $0085              Partner Subweapon Multiplier
  $0088              Conveyance
  $0088              Conveyance
                             01 = Elevator/Frozen enemy; 02 = Scroll-locked right; 05 = Teeter-totter;
                             ''01 = Elevator/Frozen enemy; 02 = Scroll-locked right; 05 = Teeter-totter;''
                             06 = Cogwheel; 07 = Mud; 08 = Waterfall; 09 = Waterfall w/current;
                             ''06 = Cogwheel; 07 = Mud; 08 = Waterfall; 09 = Waterfall w/current;''
                             0a = Conveyor left; 0b = Conveyor right; 0d = Petrified; 0e = Auto-walk
                             ''0a = Conveyor left; 0b = Conveyor right; 0d = Petrified; 0e = Auto-walk''
  $0089              Whip Spark Timer
  $0089              Whip Spark Timer
  $008A              Room Initialized
  $008A              Room Initialized
  $008B              Trevor Weapon Level   
  $008B              Trevor Weapon Level   
                             00 = short; 01 = medium; 02 = long
                             ''00 = short; 01 = medium; 02 = long''
  $008C              Partner Weapon Level
  $008C              Partner Weapon Level
                             00 = one orb; 01 = two orbs; 03 = three orbs
                             ''00 = one orb; 01 = two orbs; 03 = three orbs''
  $008D              Knockback Direction
  $008D              Knockback Direction
                             00 = left; 01 = right
                             ''00 = left; 01 = right''
  $008E              Conveyor (see $0088)
  $008E              Conveyor (see $0088)
  $0090              Cog Proximity
  $0090              Cog Proximity
                             00 = none; 01 = right OR below; 02 = right AND below
                             ''00 = none; 01 = right OR below; 02 = right AND below''
  $0091              Cog ID
  $0091              Cog ID
  $0092              Cogwheel Size
  $0092              Cogwheel Size
                             00 = small; 01 = large
                             ''00 = small; 01 = large''
  $0099              Subweapon Kill Count (affects multiplier drops)
  $0099              Subweapon Kill Count (affects multiplier drops)
  $009A              Variable Jump (for Grant)
  $009A              Variable Jump (for Grant)
Line 412: Line 413:
  $00CC              Previous Conveyance (backup of $0088)
  $00CC              Previous Conveyance (backup of $0088)
  $00CD              Vertical Ceiling (lowest y-coordinate in vertical room)
  $00CD              Vertical Ceiling (lowest y-coordinate in vertical room)
  $00EF              Audio Sample
$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 Song Base Address
$00E8      #02    Audio Song 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 Song ID
  $00F0      #04    Candle Status (32-bit mask)
  $00F0      #04    Candle Status (32-bit mask)
  $00F4      #04    Breakable Wall Status
  $00F4      #04    Breakable Wall Status
                             00 = unused/unbroken; ff = broken
                             ''00 = unused/unbroken; ff = broken''
  $00F8      #02    Previous Controller Buttons Pressed
  $00F8      #02    Previous Controller Buttons Pressed
  $00FA      #02    Previous Controller Buttons Held
  $00FA      #02    Previous Controller Buttons Held
Line 421: Line 432:
  $00FE              PPU Mask (for hue shifts and greyscale)
  $00FE              PPU Mask (for hue shifts and greyscale)
  $00FF              PPU Control
  $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 $01BF); bits 1-2 = playback state; bit 3 = pattern loop;''
                              ''bit 6 = ignore envelope;'' '''needs more info'''
$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 Pattern Loop Address Low Byte
$0148      #09    Audio Channel Pattern Loop Address High Byte
$0151      #09    Audio Channel Repeat Address Low Byte
$015A      #09    Audio Channel Repeat 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 Volume
  $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              Audio SFX Square 1 Sweep ''(write to $4001)''
$019E              Audio DPCM ID
$019F      #02    Audio Square Period Low Byte ''(write to $4002/$4006)''
$01A3      #05    Audio Channel Downshift ''(doubles period of default note '''n''' times)''
$01A8      #05    Audio Channel Note Offset
                              ''(adds signed value to note ID to look up period)''
$01AD      #05    Audio Channel Period Low ''(usually write to each channel's period register)''
$01B2      #05    Audio Channel Period High ''(usually write to each channel's period register)''
$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)''
$01C0      #40    The Stack
$0200      #100    OAM Data
$0300      #a0    Tile Data
$03C0      #05    Audio Channel Volume Duration
$03C5      #05    Audio Channel Fade Duration
$03D4      #05    Audio Channel Fade Out 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 Delay
$03E3      #05    Audio Channel Fade Delay
$03E8      #05    Audio Channel Alternate Duty Cycle
$03ED      #05    Audio Channel Next Envelope Duration
$03F2      #05    Audio Channel Envelope Duration
$03F7      #05    Audio Channel Sweep Rate
  $0400      #1c    Sprite Frame Index
  $0400      #1c    Sprite Frame Index
  $041C      #1c    Y-Coordinate
  $041C      #1c    Y-Coordinate
Line 426: Line 494:
  $0454      #1c    Pallet Offset
  $0454      #1c    Pallet Offset
  $0470      #1c    Attributes
  $0470      #1c    Attributes
                            01 = destroyed; 02 = frozen; 04 = unknown; 08 = flicker;
                              ''01 = destroyed; 02 = frozen; 04 = unknown; 08 = flicker;''
                            10 = illusory; 20 = inanimate; 40 = moving; 80 = invisible
                              ''10 = illusory; 20 = inanimate; 40 = moving; 80 = invisible''
  $048C      #1c    Animation Batch (even numbers)
  $048C      #1c    Animation Batch (even numbers)
                            00-06 = Player; 08-12 = NPCs; 14 = Epilogue; 16-1C = Doppelganger
                              ''00-06 = Player; 08-12 = NPCs; 14 = Epilogue; 16-1C = Doppelganger''
  $04A8      #1C    Sprite Mirrored
  $04A8      #1C    Sprite Mirrored
  $04C4      #17    X-Coordinate Subpixel
  $04C4      #17    X-Coordinate Subpixel
Line 450: Line 518:
  $05D5      #03    Subweapon Throw Delay
  $05D5      #03    Subweapon Throw Delay
  $05D8              Player Jump State
  $05D8              Player Jump State
                               00-1D = Trevor/Syfa/Alucard; 1E-39 = Grant
                               ''00-1D = Trevor/Syfa/Alucard; 1E-39 = Grant''
  $05D9      #0c    Boss Use
  $05D9      #0c    Boss Use
  $05E5      #06    Candle Drop
  $05E5      #06    Candle Drop
                               83 = Axe; 84 = Cross; 85 = Dagger; 86 = Holy Water; 87 = Stopwatch;
                               ''83 = Axe; 84 = Cross; 85 = Dagger; 86 = Holy Water; 87 = Stopwatch;''
                               88 = Syfa Fire; 89 = Syfa Ice; 8a = Syfa Water; 8b = Grant Dagger;
                               ''88 = Syfa Fire; 89 = Syfa Ice; 8a = Syfa Water; 8b = Grant Dagger;''
                               8c Grant Axe; 8d-8f = Upgrades (8f removed); 90 = Wall Meat;  
                               ''8c Grant Axe; 8d-8f = Upgrades (8f removed); 90 = Wall Meat; ''
                               91 = Invincibility Potion; 92 = Rosary; 93-9b = Coins; 9c = 1UP;  
                               ''91 = Invincibility Potion; 92 = Rosary; 93-9b = Coins; 9c = 1UP; ''
                               9d = Big Heart; 9e = Small Heart; 9f-a0 = Multipliers
                               ''9d = Big Heart; 9e = Small Heart; 9f-a0 = Multipliers''
  $05EB              Stair Stun Timer
  $05EB              Stair Stun Timer
  $05EF              Stair Direction
  $05EF              Stair Direction
Line 480: Line 548:
  $067B      #12    NPC Hitpoints
  $067B      #12    NPC Hitpoints
  $068E      #12    Weapons Impact
  $068E      #12    Weapons Impact
                               01 = weapon; 02 = subweapon 1; 04 = subweapon 2; 08 = subweapon 3
                               ''01 = weapon; 02 = subweapon 1; 04 = subweapon 2; 08 = subweapon 3''
$06A0      #05    Audio Channel Pitch Envelope Loop
$06A5      #05    Audio Channel Pitch Envelope
$06AA      #05    Audio Channel Pitch Envelope Position
$06AF      #05    Audio Channel Pitch Envelope Loop Count
$06B4      #05    Audio Channel Pitch Envelope State
$06B9      #05    Audio Channel Arpeggio Position
$06C3      #04    Audio BGM Square 1 Arpeggio Low Bytes
$06C7      #04    Audio BGM Square 2 Arpeggio Low Bytes
$06CB      #04    Audio BGM Square 1 Arpeggio High Bytes
$06CF      #04    Audio BGM Square 2 Apreggio High Bytes
$06D3      #09    Audio Channel PROM Bank
  $06DC              Music Paused
  $06DC              Music Paused
  $06DD              Boss Scream Cutoff
  $06DD              Boss Scream Cutoff
  $06E0      #90    Collision Map
  $06E0      #90    Collision Map
  $0770      #08    CHR5 Solid Definitions
  $0770      #08    CHR5 Solid Definitions
                               Byte 0 = empty; Byte 1 = mud; Byte 2 = convey right; Byte 3 = convey left;
                               ''Byte 0 = empty; Byte 1 = mud; Byte 2 = convey right; Byte 3 = convey left;''
                               Byte 4 = crumbling; Byte 5 = ceiling spike; Byte 6 = solid; Byte 7 = floor spike
                               ''Byte 4 = crumbling; Byte 5 = ceiling spike; Byte 6 = solid; Byte 7 = floor spike''
  $0778      #08    CHR6 Solid Definitions
  $0778      #08    CHR6 Solid Definitions
  $0780              Background Animation Frame
  $0780              Background Animation Frame
Line 497: Line 576:
  $0780              Entry Selector Column
  $0780              Entry Selector Column
  $0780              Map Clipping
  $0780              Map Clipping
                               00 = To Grant; 01 = To Syfa; 02 = From Alucard
                               ''00 = To Grant; 01 = To Syfa; 02 = From Alucard''
  $0781              Background Animation Timer
  $0781              Background Animation Timer
  $0781              Entry Selector Row
  $0781              Entry Selector Row
Line 527: Line 606:
  $078C              Update Selector
  $078C              Update Selector
  $0790      #10    Entered Password
  $0790      #10    Entered Password
                               00 = empty; 01 = whip; 02 = cross; 03 = heart
                               ''00 = empty; 01 = whip; 02 = cross; 03 = heart''
  $0790              Map Screen Platform
  $0790              Map Screen Platform
                               00 = full; 01 = short west; 02 = bottom east;
                               ''00 = full; 01 = short west; 02 = bottom east;''
                               03 = top west; 04 = middle west; 05 = bottom west
                               ''03 = top west; 04 = middle west; 05 = bottom west''
  $07A0      #0a    Generated Password
  $07A0      #0a    Generated Password
  $07B1      #02    Stacked Breakable Wall
  $07B1      #02    Stacked Breakable Wall
Line 548: Line 627:
                     Giant Bat Leader
                     Giant Bat Leader
                     Dracula Phase
                     Dracula Phase
                               00 = Dracula; 01 = demon; 02 = Pazuzu
                               ''00 = Dracula; 01 = demon; 02 = Pazuzu''
  $07ED              Victory State
  $07ED              Victory State
                     Bone Dragon Mirrored
                     Bone Dragon Mirrored
Line 557: Line 636:
  $07EF              Bone Dragon Attacking
  $07EF              Bone Dragon Attacking
  $07F3              Boss Phase
  $07F3              Boss Phase
                               00 = boss fight; 01 = boss defeat; 02 = crystal drop;
                               ''00 = boss fight; 01 = boss defeat; 02 = crystal drop;''
                               03 = battle over; 80 = boss waiting
                               ''03 = battle over; 80 = boss waiting''
                     Victory Delay (timer after battle over)
                     Victory Delay (timer after battle over)
  $07F6              Hard Mode
  $07F6              Hard Mode

Revision as of 00:34, 30 July 2022

Chip tiny.png 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
$001F              Randomizer
$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
$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)
$0046       #08    CHR Banks
$004E              Hard Mode CHR Bank (overwrites $0049)
$0056       #02    View Position (little endian) 
$0058              View Subpixel Position
$0059              Left Spawn Area
$005A              Right Spawn Area
$005C              Tile Assembly Row Iterator
$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              Player Animation State (for transitions)
                   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
$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
$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)
$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)
$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)
$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)
$00EF              Audio Sample
$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 
$0200      #100    OAM Data
$0300       #a0    Tile Data
$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
$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
$06DC              Music Paused
$06DD              Boss Scream Cutoff
$06E0       #90    Collision Map
$0770       #08    CHR5 Solid Definitions
                             Byte 0 = empty; Byte 1 = mud; Byte 2 = convey right; Byte 3 = convey left;
                             Byte 4 = crumbling; 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              Previous Selector Column
$0782              Map Timer
$0782              Epilogue Ally
$0783              Previous Selector Row
$0783              Map Horizontal Speed Subpixel
$0783              Epilogue State
$0784              Name Cursor Position
$0784              Map Horizontal Speed
$0784              Castle Shake Direction
$0785              Map Vertical Speed Subpixel
$0785              Epilogue Text Page
$0786              Password Icon
$0786              Map Vertical Speed
$0787              Previous Password Icon
$0787              Map Scroll Timer
$0788       #02    Password Decryption Dump
$0788              Map X-coordinate Subpixel
$0788              Epilogue Scroll Timer
$0789              Map Y-coordinate Subpixel
$078A              Epilogue Timer
$078A              Map Path PPU Scroll
$078B              Password Errors (used for debugging)
$088B              Map Path PPU Control
$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


Chip tiny.png The following article is a RAM map for Castlevania III: Dracula's Curse.

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)
$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
$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)
$0053       #02    View Position 
$0055              View Subpixel Position
$0056              Left Spawn Area
$0057              Right Spawn Area
$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              Player Animation State (for transitions)
$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
$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)
$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)
$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)
$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)
$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 Song Base Address
$00E8       #02    Audio Song 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 Song 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 $01BF); bits 1-2 = playback state; bit 3 = pattern loop;
                             bit 6 = ignore envelope; needs more info
$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 Pattern Loop Address Low Byte
$0148       #09    Audio Channel Pattern Loop Address High Byte
$0151       #09    Audio Channel Repeat Address Low Byte
$015A       #09    Audio Channel Repeat 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 Volume
  $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              Audio SFX Square 1 Sweep (write to $4001)
$019E              Audio DPCM ID
$019F       #02    Audio Square Period Low Byte (write to $4002/$4006)
$01A3       #05    Audio Channel Downshift (doubles period of default note n times)
$01A8       #05    Audio Channel Note Offset
                             (adds signed value to note ID to look up period)
$01AD       #05    Audio Channel Period Low (usually write to each channel's period register)
$01B2       #05    Audio Channel Period High (usually write to each channel's period register)
$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)
$01C0       #40    The Stack
$0200      #100    OAM Data
$0300       #a0    Tile Data
$03C0       #05    Audio Channel Volume Duration
$03C5       #05    Audio Channel Fade Duration
$03D4       #05    Audio Channel Fade Out 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 Delay
$03E3       #05    Audio Channel Fade Delay
$03E8       #05    Audio Channel Alternate Duty Cycle
$03ED       #05    Audio Channel Next Envelope Duration
$03F2       #05    Audio Channel Envelope 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)
$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
$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 
$06A5       #05    Audio Channel Pitch Envelope
$06AA       #05    Audio Channel Pitch Envelope Position
$06AF       #05    Audio Channel Pitch Envelope Loop Count
$06B4       #05    Audio Channel Pitch Envelope State
$06B9       #05    Audio Channel Arpeggio Position
$06C3       #04    Audio BGM Square 1 Arpeggio Low Bytes
$06C7       #04    Audio BGM Square 2 Arpeggio Low Bytes
$06CB       #04    Audio BGM Square 1 Arpeggio High Bytes
$06CF       #04    Audio BGM Square 2 Apreggio High Bytes
$06D3       #09    Audio Channel PROM Bank
$06DC              Music Paused
$06DD              Boss Scream Cutoff
$06E0       #90    Collision Map
$0770       #08    CHR5 Solid Definitions
                             Byte 0 = empty; Byte 1 = mud; Byte 2 = convey right; Byte 3 = convey left;
                             Byte 4 = crumbling; 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              Previous Selector Column
$0782              Map Timer
$0782              Epilogue Ally
$0783              Previous Selector Row
$0783              Map Horizontal Speed Subpixel
$0783              Epilogue State
$0784              Name Cursor Position
$0784              Map Horizontal Speed
$0784              Castle Shake Direction
$0785              Map Vertical Speed Subpixel
$0785              Epilogue Text Page
$0786              Password Icon
$0786              Map Vertical Speed
$0787              Previous Password Icon
$0787              Map Scroll Timer
$0788       #02    Password Decryption Dump
$0788              Map X-coordinate Subpixel
$0788              Epilogue Scroll Timer
$0789              Map Y-coordinate Subpixel
$078A              Epilogue Timer
$078A              Map Path PPU Scroll
$078B              Password Errors (used for debugging)
$088B              Map Path PPU Control
$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