Jun 12, 2022

Akumajou Densetsu RAM Table (cleaner)

For the sake of legibility, I am cleaning up and reposting my RAM table. This is RAM table for Akumajou Densetsu specifically. I will be posting a RAM table for Castlevania III in the near future. I will still retain my previous, messy post as it still serves as my personal notes. Refer to that page for any concerns regarding specific address use.

 

WRAM    Usage Notes
0018 System State
room in GameMaker terms
#00 Title Screen
#01 unused?
#02 New Game transition to #0A
#03 Gameplay transition to #04
#04 Gameplay
#05 Game Over transition to #06
#06 Game Over
#07 Stage Select
#08 Country Map
#09 Prayer Scene
#0A Name Entry Screen
#0B Password Screen
#0C Epilogue
#0D Ending Credits
#0E Respawn transition to #04
#0F Sound Test
0019 System Substate Based on $0018
001B Step Counter Always incremented
001C PPU Update Flag Prevents stack overflow
by skipping game logic
001D Blackout Delay Prevents drawing during tileset refreshes
001E X-Register Copy
Used by various system functions
001F Pause Disabled
Unused, possbily remnant of Demo Mode
0020 Randomizer Increased by $001B+#01 until interrupt
0021 PPU Bank Write Value written to register $B003
0022 Unknown Increases by #44 every step
0023 Current PROM Bank
0024 Previous PROM Bank
0025 Backup of PROM Bank Used by some functions
0026 Bank Changed Probably for debugging
0028
..0029
Buttons Pressed Gamepad 1
Gamepad 2
002A
..002B
Buttons Held Gamepad 1
Gamepad 2
002C Game State #00 Initialize room
#01 Initialize nametables
#02 Horizontal room load
#03 Horizontal room play
#04 Vertical room load
#05 Vertical room play
#06 Stair transition start
#07 Stair transition fade
#08 Door transition
#09 Initialize fog
#0a Fog parallax (runs #03 also)
#0b Horizontal partner swap
#0c Vertical partner swap
#0d-#0e (CUT CONTENT)
#0f Autowalk stairs detect
#10 Autowalk stairs transition
#11 Tally score
#12 (UNUSED)
#13 Ruins escape
#14 Ruins flood init
#15 Ruins flood load
#16 Ruins flood play
#17 Map auto-transition
#18 Autowalk door
#19 Upgrade weapon
#1a Freeze river
#1b Thaw frozen river
#1c Bone King flee
#1d Ruins crumbling
#1e Map transition init
#1f Map transition exit
002D Paused By Button Set when player pauses
002E Stage Clear Set before tallying points
002F Entry End set when END selected
scrapped from Pass screen
0030 Checkpoint Stage calculated by password decryptor
0031 Grant Defeated
0032
..0033
Effect Timer Timer for System level effects
0034 Stage
0035 Block
0036 Room
0037 Lives
0038
..003F
CHR Banks Bank 0 PC
Bank 1 Weapons
Bank 2-3 NPCs
Bank 4 Door
Bank 5-6 Tiles
Bank 7 Miscellaneous
NOTE: Clockwork must use Bank 5
0040 IRQ Control Interrupt request mode to write
0041 IRQ Latch 1 Bottom of status bar
0042 IRQ Latch 2 Top of river (causes flicker)
Top of parallax clouds
0043 Default Draw State Write value for $006A each step
0044
..0046
Score
0047 Player ID Only used during partner swap
see $0048 for values
0048 Ally ID #00 Trevor
#01 Sypha
#02 Grant
#03 Alucard
#ff none
0049 Ally Swapped Set to 1 when controlling an ally
004A PC Health For status bar
004B Boss Health For status bar
004C Score Target Target value for $0046
to earn extra life
004D
..004E
Tile Assembly Room Address
004F
..0050
Tile Assembly Left Address
0051
..0052
Tile Assembly Right Address
0053
..0055
View Position uses $0055 for subpixel position
0056
..0057
Spawn Area Left edge
Right edge
0058
0059
Tile Assembies Loaded Left edge
Right edge
loads 1 row per step
005A
..005B
Tile Assembly Address PRAM address for current tileset
005C
..005D
Pallet Map Address PRAM address for current pallet map
005E
..005F
Nametable Write Target Address to update nametable from
0060 Tile Assembly Value Value of prefetched tile assembly
0061 Transition Timer Sets screen transition to run across 12 steps
0062 PC Direction #00 moving left
#01 moving right
#02 idle
0063 View Refreshed Recent Leftmost tile square position
0064 Update View Set when view has moved
0065 Room Orientation #00 Horizontal
#80 or #81 Vertical
#82 Scroll Up
#83 Scroll Down
#84 Collapse Up
#85 Collapse Down
0066
..0067
Stair Map Address of stair map for current room
0068 Door State
#00 unopened
#01 load next room
#02 scroll in next room
#03 unlatch door
#04 open door
#05 walk in
#06 = close door
#07 latch door
#08 scroll out old room
#09 end transition
0069 Current Instance ID of instance running current code
006A Active Draw State Not used for status bar, however
006B Scroll Speed Distance view has moved in current step
006C
..006D
PPU View Position PPU write address for the view
006E Room Size Size of room in 256px increments
006F CHR Write Mode #00 or #03 = write all CHR banks
#01 = write status bar banks
#02 = clear NPC & write status bar
0070 Room Orientation Previous Used for stair transitions
0071 Music Loaded
0072 Transition Nametable Cutoff Active nametable after door transition
#80 or #08 = use nametable 0
#90 or #09 = use nametable 1
0073 Horizontal Spawner Block Tracks which spawner block is processed
0074 Spawner Block Position Coordinates of first spawner block &#F0
0075 Boss Scroll Lock Locks view when boss is present
0076 Vertical Spawner Block Similar to $0073, but for vertical rooms
0077 Vertical Spawner Previous Rarely utilized, doesn't seem to do much
0078 Room Spawner Limit Prevents checking spawners outside the room
0079 Vertical Y-Coordinate Alternate
Used for partner swap in vertical rooms
007A Background Type #10 = Stormy Clouds (Forest Peak)
#11 = Wide Clouds (Forest)
#12 = High Clouds (Castle Keep)
#13 = Low Clouds (Castle Keep)
#20 = Auto Stairs (Forest Ruins)
#21 = Auto Door (Forest Exit)
#30 = River + Waterfalls (Causeway)
#40 = Clockwork (Dracula's Tower)
#41 = Fast Clockwork (Clocktower)
#50 = Watery Death (Sunken City 8:00:00)
#51 = Watery Death (Sunken City)
#52 = Watery Death (Sunken City)
#60 = Watery Death (Sunken City 8:00:01)
#71 = Rising Water (Sunken City)
#80 = Collapsing Bridge (Causeway)
#81 = Collapsing Bridge (Main Hall)
007B
..007C
Time The countdown clock
007D Wounded Invincibility Timer I-frame timer, affects flashing
007E Effect On PC Used for rideable terrain and enemy attacks
007F PC Collision Mask #00-#03 Character standing
#04-#07 Character ducking
#08 Bat
0080

0081 Hearts Max 99 (or it will glitch)
0082
..0083
Subweapons Trevor's & ally's subweapons
0084
..0085
Multipliers Trevor's subweapon multiplier
Grant's subweapon multiplier
0088 Conveyance #01 Elevators or frozen enemies
#02 One Way Right
#03 Unknown/No effect
#04 Unknown/No effect
#05 On Teeter-Totter
#06 On Gears
#07 In Mud
#08 Under Waterfall
#09 Convey right under waterfall
#0A Convey left
#0B Convey right
#0D Petrified
#0E Auto-Walk
0089 Spark Timer On-hit whip spark duration
008A Room initialized Set before loading tileset
008B
..008C
Weapon Level Trevor's weapon level
Alucard's weapon level
008D Knockback Direction
008E Conveyor ID of object setting $0088
Note: rarely used
008F System Running
For debugging? Set to #ff each step
0090 Gear Proximity #00 none
#01 right or below
#02 right and below
0091 Gear Tooth ID of nearest gear tooth
0092 Big Gear Set when on BIG gear
0093 Terrain Present
0094

0095
..0096
Spawner Data Address
0097
..0098
Terrain Data Address
0099 Subweapon Counter Increases with each subweapon kill
009A Variable Jump Set when releasing A button as Grant
009B Subweapon Iterator (system use only)
009C Game State Previous Saves $002C when upgrading whip
009D PC Direction Recent Saves $009E when upgrading whip
009E PC Direction Previous Saves $0062 when upgrading whip
009F

00A0 Game Stepcounter Same as $001B but during gameplay
00A1 Map Checkpoint

00A2 Right Tile Check Set when checking odd-numbered tiles
00A3Default Draw State BackupUsed in partner swapping
00A4
..00A5
IRQ Latch BackupUsed in partner swapping
00A6IRQ Control BackupUsed in partner swapping
00A7 Previous Game State Backup of $2C when changing characters
00A8 Stopwatch Active
00A9 Stopwatch Timer
00AA Potion Timer For Invincibility Potion
00AB Bat Timer Drains 1 heart every second in Bat form
00AC Landing Delay Prevents walking between elevators
and frozen enemies
00AD Force Doppelganger Forces loading sprite CHRs
00AE Reference Cache Backup X register or PROM page
00AF Rosary Flash Timer
00B0 Bridge Out set when bridge finishes collapsing
00B3 Vertical Room Tile Assembly Count
00B4 Powering Up
00B5 Platform Current Elevator or frozen enemy underfoot
00B6 Crash Timer Set when falling too far
00B7 Boss Fight Locks screen during boss fight
00BC Death Pause Pauses game when killed
00BD Halt Flooding
00BE Boss Object Index
00BF Boss Next Phase Used for some bosses
00C0 Boss Spawner ID
00C1
..00C2
Character Disabled Reset when leaving room,
but always 0?
00C3 Autowalk Data Pointer reference to 00:9140,
redirects autowalk states
00C4 Thaw Timer
00C5 Horizontal Scroll Lock Set by crumbling bridge
00C6

00C7 Flood Height Water level in flood zone
00C9
..00CA
Boss Stun Bitmask pointlessly bitmasked
00CB Kill Counter Counts kills until item drop chance
00CC Conveyance Previous Previous value of $0088
00CD Vertical Ceiling In vertical rooms
00CF Cog Wheel ID Copy
00D0 Grant Cornering Y Aligns Grant's sprite on corners
00D1 Cog Wheel ID
00E0
..00E1
Current Note Address
00E2
..00E3
Audio Redirect Address
Audio Data Temporary Variable

00E4
..00E5
Audio Data16bit variable
00E6
..00E7
Track Base Address
00E8
..00E9
Track Address
00EABGM Channelsused during init
00EBAudio Routine PROM Bank
00EC
..00ED
Current PeriodCurrent note pitch
00EECurrent Channel
00EF Audio Sample Latest audio sample value
00F0
..00F3
Candle Tracker Bitmasked flags to prevent
respawning candles
00F4
..00F7
Wall Tracker Bitmasked flags to prevent
respawning breakable walls
00F8
..00F9
Buttons Pressed Previous Gamepad 1
Gamepad 2
00FA
..00FB
Buttons Held Previous Gamepad 1
Gamepad 2
00FC
..00FD
PPUSCROLL Value PPU scroll position
00FE PPUMASK Value Persistent PPUMASK value
00FF PPUCTRL Value Persistent PPUCTRL value

Below ranges span 28 bytes as follows: 0 = PC
1-12 = NPC
13..18 = Luminary
19 = Whip
20-22 = Subweapon
23 = On-hit Spark
24 = Subweapon Icon
25 = Multiplier Icon
26-27 = Breakable Block
0400
..041B
Frame Index Actual sprite frame, #00 = no image
041C
..0437
Y Coordinate
0438
..0453
X Coordinate
0454
..046F
Pallet Offset Only used for pallet cycling
0470
..048B
Attributes Bit 0 = Destroyed
Bit 1 = Frozen
Bit 2 = Unknown
Bit 3 = Flicker (forces bit 7)
Bit 4 = Illusory
Bit 5 = Inanimate
Bit 6 = Moving
Bit 7 = Invisible
048C
..04A7
Animation Batch Index Always even numbered
#00-#06 = PC
#08-#12 = NPC
#14 = Sypha Rescue & Epilog
#16-#1C = Doppelganger
04A8
..04C3
Image Mirror Mirrors sprite if set

Below Ranges span 23 bytes as follows: 0 = PC (use differs)
1-12 = NPC
13..18 = Luminary
19 = Whip (use differs)
20-22 = Subweapon (use differs)
04C4
..04DA
X Subpixel For subpixel movement
04DB
..04F1
Y Subpixel For subpixel movement
04F2
..0508
Horizontal Speed
(0505) Partner Swap Ghosting

Pixel offset of ghosting
0509
..051F
Horizontal Speed Subpixel
(051C) Partner Swap Ghosting Fraction
For subpixel movement,
Fractional offset of ghosting
0520
..0536
Vertical Speed
0537
..054D
Vertical Speed Subpixel For subpixel movement
054E
..0564
Object Index
0565 PC State FSM state
0566
..0577
NPC Stun Timer No effect on luminary?
0578 Whip State FSM state
0579
..057B
Subweapon State FSM state
057C
..0592
Animation Timer Increases frame on 0
0593
..05A9
Animation Frame Determines Frame Index
05AA
..05C0
Animation Index
05C1 Moving Down Falling or going down stairs
05C2
..05D3
NPC State FSM state,
substate for bosses
05D4 PC Stun State State of PC at time of getting stunned
05D5
..05D7
Subweapon Throw Delay Time until subweapon released
05D8 PC Jump State #1E-#39 reserved for Grant
05D9
..05E4
Boss Use Awakening timer & misc. boss uses
05E5
..05EA
Luminary Drop Item stored in luminary
05EB Stair Stun Timer
Partner Swap Ghost Speed Fractional
Stuns on stairs,
Adjusts rate $0602 changes
05EC
..05EE
Subweapon Variable Unused
05EF Stair Direction
Jump State Fractional
Horizontal direction on stairs,
also Grant's fractional jump state
05F0
..0601
Object Class

Determines FSM for NPC,
primary FSM for bosses
0602 Stair Stun
Character Swap Ghost Speed
Set when hit on stairs,
Speed sprite ghosting expands
0606 Grant Gravity Subpixel Never used?
0607
..0618
State Timer
Starting Y
Usually timer between states,
starting y in sinusoidal enemies
0619 Swapping Y PC Y coordinate used for
IRQ timing during ally swap
061A
..061C
Subweapon Damage Bits 0-2 = Coin drop (Trevor, Sypha's Fire)
Bit 2 = Ice spell freeze
Bits 4-7 = damage
061D Stair Timer
Grant Gravity
Timer to climb one step on stairs,
Grant's variable gravity
061E
..062F
Miscellaneous Timer Usually counter or timer
0630 Weapon Damage Bits 4-7 = damage
0631
..0633
Subweapon Deflected Used by Cross to check if enemy
damage is #03 (shielded)
0634
..0640
Miscellaneous Use Rarely used by NPCs

Below Ranges span only NPCs and Luminaries
0646
..0657
Spawner Index Spawner's block index
0658
..0663
NPC Damage Bits 4-7 = damage
Bits 1+2 = shielded
0664
..0669
Luminary Active Set to 0 when damaged
066A
..067B
Applied Effect Damage value of collided (sub)weapon
067C
..0687
NPC Hitpoints
068E
..069F
Weapon Mask Bitmasked I-frames against each weapon

I think this gap is for audio stuff
06DC BGM Paused Stop music while stopwatch active
06DD Scream Cutoff Stops boss screams after 240 steps
06E0
..076F
Collision Map Read top-to-bottom,
two side-by-side tiles per byte
0770
...0777
Solid Definitions CHR5 Minimum tile value for each type
Byte 0 = Not solid
Byte 1 = Muddy
Byte 2 = Convey right
Byte 3 = Convey left
Byte 4 = Crumbling ledge
Byte 5 = Ceiling spike
Byte 6 = Solid ground
Byte 7 = Floor spike
0780 Background Frame
Cursor Column
For animated backgrounds;
For name & password entry
0781 Background Timer
Cursor Row
Timer for background animation speed;
For name & password entry
0782 Epilog Ally
Previous Password Column
Ally shown in the epilog
0783 Epilog State
Previous Password Row
FSM state
0784 Castle Shake
Current Letter
Reverses castle motion in epilogue;
For name entry
0785 Epilog Text Text scroll page for epilog
0788 Epilog Scroll Timer Time until PPU scrolls down
078A Epilog Timer Time until castle disappears;
Time until next text loaded
078B Password Errors Bitmasked "error messages" for debugging
password decryption code
078C Password Cell Changed changes attribute table
078D Password Icon Changed changes attribute table
0790
..079F
Password Entered Icons for password entry
07A0
..07A9
Password Generated Actual password, temporary
07A7
..07A8
Wall State 00 = detect collision,
01 = spawn item,
02 = falling,
03 = wait for pickup,
80 = inactive
07A9
..07AA
Wall Terrain Index probably for debugging
07AB
..07AC
Wall Y (subpixel) used when item drops
07AD
..07AE
Wall Vertical Speed used when item drops
07AF
..07B0
Wall Vertical Speed (subpixel) use when item drops
07B1
..07B2
Tall Wall Set for 2-block breakable walls
07B3
..07B4
Baseless Wall Set when 2-block breakable wall
base block is destroyed
07B5
..07B6
Topless Wall Set when 2-block breakable wall
top block is destroyed
07B7
..07B8
Wall Flag Offset from $00F4
07B9
..07BA
Wall Y
07C2
..07C7
Spawner Type NPC spawner ID
07C8
..07CD
Spawner State FSM state
07CE
..07D3
Spawner Timer Delays spawning NPCs
07D4
..07D9
Spawner Y Spawner y-coordinate in view
07DA
..07DF
Spawner X Spawner x-coordinate in view
07E0
..07E5
Spawner Offscreen Set when spawner out of view
07E6
..07EB
Spawner NPC Index of spawned NPC
07EC
..07F1
Bone Dragon King Frames Frame index of parts
07EC Lightning State FSM state for Cyclops lightning
07EC Bonedrac Cycle
Giant Bat Leader
Dracula Phase
Handles Bonedrac movement
Current lead Bat
Dracula battle phase
   0 = Sorceror
   1 = Demon
   2 = Pazuzu
07ED Victory State FSM state for boss victory
07ED Bonedrac Mirror
Bridge Length
Giant Bat State
Mirrors Bonedrac
Collapsing bridge length
Giant bat's main state
07EE Bonedrac Charge
Death Scythes
Time until Bonedrac spits
Death's remaining scythes
07EF Bonedrac Spitting Set when Bonedrac can spit
07F0

07F1

07F2

07F3 Boss Phase #00 = Boss fight
#01 = Boss defeated
#02 = Crystal dropped
#03 = Battle over
#80 = Boss waiting
07F3 Victory Delay Time until scoring after boss fight
07F6 Hard Mode
07F8
..07FF
Player Name

No comments:

Post a Comment

©TheouAegis Productions™. Powered by Blogger.