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