Skip to content
Tony Lukasavage edited this page Jan 24, 2022 · 26 revisions
Address(es) Description Details
0018 Game State
  • 0x00 - Black screen
  • 0x01 - Start screen
  • 0x04 - immediately follows state 0x0F when game is starting
  • 0x05 - main gameplay state, immediately follows state 0x04
  • 0x06 - after death, returns to 0x05
  • 0x07 - continue screen
  • 0x08 - game start/password screen, also password entry screen
  • 0x0A - game ending screens
  • 0x0E - after ending screen, just before transitioning back to start screen, followed by 0x00, then 0x01
  • 0x0F - pressed start on game start screen
001C Currently loaded memory bank  
0022 Length of PPU instruction(s) to execute from the $700-$7FF range  
0026 Gameplay State
  • 0x00 - Game Active
  • 0x01 - Inventory (start)
  • 0x02 - Pause (select)
0030 objset, which determines which section of the map loads, as well as which pattern table loads for the enemies and NPCs
  • 0x00 - Town
  • 0x01 - Mansion
  • 0x02 - Woods 1
  • 0x03 - Woods 2
  • 0x04 - Graveyard
  • 0x05 - Castlevania
0031 Lives  
0033 Index of selected inventory section
  • 0x00 - Quest items (Dracula parts and crystal)
  • 0x01 - Weapons, laurels, and garlic
003D Map Value 1  
003E Map Value 2  
0037 D-Pad Pushing
  • 0x00 - Idle
  • 0x01 - Left
  • 0xFF - Right
0046 Experience: 99XX  
0047 Experience: XX99  
0048 Hearts: 99XX  
0049 Hearts: XX99  
004A Weapon Bit Flag
  • 0x01 - Dagger
  • 0x02 - Silver Dagger
  • 0x04 - Golden Knife
  • 0x08 - Holy Water
  • 0x10 - Crystal
  • 0x20 - Sacred Flame
  • 0x40 - Oak Stake
004C Laurels  
004D Garlic  
004E Area prior to entering a door saves value at $50
004F Index of quest item selected in inventory
  • 01 - Rib
  • 02 - Heart
  • 03 - Eyeball
  • 04 - Nail
  • 05 - Ring
  • 06 - Crystal
0053 Simon x position relative to map (low byte)  
0054 Simon x position relative to map (high byte)  
0056 Simon y position relative to map (low byte)  
0057 Simon y position relative to map (high byte)  
0058 Map X Chunk  
0059 Map X Position  
005E Temp variable for low byte of nametable position  
005F Temp variable for high byte of nametable position  
006A Simon Y Position  
006D Simon X Delta  
0077 Dialog writing text row  
0078 Dialog writing text column  
007B Dialog text timeout until next letter.  
007C Dialog text memory offset  
007D Dialog starting column
  • Also the dialog timeout to automatically disappear
  • Also the option highlighted for Yes/No questions.
007F
  • Actor identifier, used in conjunction with objset, area, and submap to get unique id
  • Offset for dialog text pointer
 07:EEA4:A5 7F     LDA $007F = #$38
 07:EEA6:0A        ASL
 07:EEA7:AA        TAX
 07:EEA8:BD 82 8B  LDA $8B82,X @ $8BF2 = #$BF
 07:EEAB:85 00     STA $0000 = #$BF
 07:EEAD:BD 83 8B  LDA $8B83,X @ $8BF3 = #$92
 07:EEB0:85 01     STA $0001 = #$92
where $92BF points to dialog text in memory
0080 Current Hit Points  
0081 Maximum Hit Points  
0082 Sun flag (0=Day, 1=Night) MAY NOT BE ACCURATE
0083 Game Time (Days)  
0084 Game Time (Seconds)  
0085 Game Time (Minutes)  
0086 Game Time (Hours) (6-17 Day time, 18-5 Night time)  
0087 Counter for day/night palette shift.  
0088 Counter for day/night palette shift.  
008B Level  
0090 Index of selected weapon in inventory
  • 01 - Dagger
  • 02 - Silver Knife
  • 03 - Golden Knife
  • 04 - Holy Water
  • 05 - Diamond
  • 06 - Sacred Flame
  • 07 - Oak Stake
  • 08 - Laurels
  • 09 - Garlic
0091 Inventory Bit Flag
  • 01 - Rib
  • 02 - Heart
  • 03 - Eye
  • 04 - Nail
  • 05 - Ring
  • 06 - White Crystal
  • 07 - Blue Crystal
  • 6+7 - Red Crystal
0092 Carry Items Bit Flag
  • 01 - Silk Bag
  • 02 - Magic Cross
  • 03 - Laurels
  • 04 - Garlic
00AE Pulse sound effect enable (0 or 1)  
00AF Noise sound effect enable (0 or 1)  
00B4 Pulse sound effect id  
00B5 Noise sound effect id  
00BA Pulse sound effect pointer (low byte)  
00BB Noise sound effect pointer (low byte)  
00C0 Pulse sound effect pointer (high byte)  
00C1 Noise sound effect pointer (high byte)  
00C6 Pulse sound effect enable (0 or 1)  
00C7 Noise sound effect enable (0 or 1)  
00F1 Gamepad input mask
  • 00 - no input
  • 01 - right
  • 02 - left
  • 04 - down
  • 08 - up
  • 10 - start button
  • 20 - select button
  • 40 - B button
  • 80 - A button
00FC PPU_SCROLL (y-axis)  
00FD PPU_SCROLL (x-axis)  
00FE PPU_MASK  
00FF PPU_CONTROL  
0110-0150 Music  
0197 Laurels effect countdown (laurels active if value greater than 0)  
0200-02FF OAM RAM PPU OAM explanation on nesdev.com
0300 Simon Sprite Frame  
0303-0305 Weapon Frame  
0306-030B Object Frame  
0318-031D Object Palette  
0324 Simon Y Pos on Screen  
0327-0329 Weapon Y  
032A-032F Object Y  
0336 Simon Jumping Work (Y subpixel for floor drops)  
0339-033B Weapon Work 1?  
033C Object Work ?  
0348 Simon X Pos on Screen  
034B-034D Weapon X  
034E-0353 Object X  
0360 Object Work?  
036C Simon Y Delta  
036F-0371 Weapon Y Delta (Signed)  
0372-0377 Object Y Delta (Signed)  
037E Object Work ?  
0381-0383 Weapon Work 2?  
0384 Object Work?  
0393-0395 Weapon X Delta (Signed)  
0396-039B Object X Delta (Signed)  
03B5 When not zero, trigger simon whipping animation  
03B7-03B9 Weapon Index (See List)  
03BA-03BF Object Index (See List)  
03D8 Simon Action
  • 00 - Idle
  • 01 - Walking
  • 02 - Jumping
  • 03 - Crouching
  • 04 - Attacking
  • 05 - Floor Drop (Walking + Attacking bits)
  • 06 - Damage Boosting
  • 09 - On Stairs (Standing Still)
  • 0A - On Stairs (2nd frame of moving animation)
  • 80 - Dead (First frame)
  • 81 - Dead (Flying into air)
  • 82 - Dead (Lying on ground)
03DB-03DD Weapon Flags  
0402-0407 Object Frame  
040E Movement flag? (00  
0420 Simon Sprite Mirroring  
0423-0425 Weapon Sprite Mirroring  
0426-042B Object Sprite Mirroring  
0434 Whip
  • 00 - Leather Whip
  • 01 - Thorn Whip
  • 02 - Chain Whip
  • 03 - Morning Star
  • 04 - Flame Whip
0445 Whip State
  • 00 - Idle
  • 01 - Back
  • 02 - Middle
  • 03 - Forward
0446 Jumping Flag  
0447-0449 Weapon Flags  
044A Object Work?  
0457 Delay between next whip.  
0458 Simon x position relative to map prior to entering a door (low byte) saves the value at $53
045C Object Work?  
046A Simon x position relative to map prior to entering a door (high byte) saves the value at $54
046E Object Work?  
047A Post-ending screen transition state
  • 0x01 - ending text on screen
  • 0x02 - Simon and text disappear
  • 0x03 - Dracula's grave begins to rumble
  • 0x04 - Dracula's hand starts rising from grave
  • 0x07 - Dracula's hand rests on top of grave
047C
  • Simon y position relative to map prior to entering a door (low byte)
  • Countdown until next screen transition after final ending text (leading to Dracula rising)
When used for y position, it saves the value at $56
047D Y position of current ending text character  
047F X position of current ending text character  
0480 Countdown until next character on ending screen
  • ??? between each character
  • 0x35 between each line of text
0482 Countdown until next ending screen 0x40 frames between screens
048E Simon y position relative to map prior to entering a door (high byte) saves the value at $57
04A0 Simon x position on screen prior to entering a door saves the value at $348
04B2 Simon y position on screen prior to entering a door saves the value at $324
04C2 Set at 1 when up is pressed, set to 0 when down is pressed.  
04C5-04C7 Weapon State  
04C8-04CD Object Hit Points / OR  
04DA Object Work?  
04F8 Invulnerable Timeout  
0700-07FF PPU Instructions (See PPU Instruction format)  
C185 Address of subroutine responsible for bank switching Set value $1C to the number of the bank then execute a JSR at the given address. If you want to set $1C based on the accumulator, subtract 2 from the RAM address, which will in turn set $1C to the value of the accumulator.
8BE2 Whip damage (leather) 0x01
8BE3 Whip damage (thorn) 0x02
8BE4 Whip damage (chain) 0x04
8BE5 Whip damage (morning star) 0x08
8BE6 Whip damage (flame) 0x0F
Clone this wiki locally