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 |
00A3 | Default Draw State Backup | Used in partner swapping |
00A4 ..00A5 | IRQ Latch Backup | Used in partner swapping |
00A6 | IRQ Control Backup | Used 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 Data | 16bit variable |
00E6 ..00E7 | Track Base Address | |
00E8 ..00E9 | Track Address | |
00EA | BGM Channels | used during init |
00EB | Audio Routine PROM Bank | |
00EC ..00ED | Current Period | Current note pitch |
00EE | Current 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