If you are still using the old URL (datacrystal.romhacking.net), please update your bookmarks! The old URL may stop working soon.
The current URL is datacrystal.tcrf.net.
The current URL is datacrystal.tcrf.net.
Adventures of Lolo 3/RAM map
Jump to navigation
Jump to search
The following article is a RAM map for Adventures of Lolo 3.
Foreword
The role of certain memory addresses varies and depends on whether one is in the main game or is on other screens such as the world map, training levels, etc.
RAM During Gameplay
This is memory when in the main game (i.e. solving puzzles)
RAM Address | Function | Details |
0000 | PPU Control Clone | |
0001 | PPU Mask Clone | |
0007 | Vblank Flag | Will be 0 when waiting for vblank, non-zero when in vblank |
0015 | Misc/Scratch memory | |
0016 | 〃 | |
0017 | 〃 | |
0018 | 〃 | |
0019 | 〃 | |
001a | 〃 | |
001b | 〃 | |
001c | 〃 | |
001d | 〃 | Generally for backing up A register |
001e | 〃 | Generally for backing up X register |
001f | 〃 | Generally for backing up Y register |
002b | Frame counter | Is incremented every NMI |
0049 | Controller Buttons Being Held (Gameplay only) | Buttons that constantly repeat actions when held (D-pad) |
004a | Controller Buttons Being Pressed (Gameplay only) | Buttons that trigger upon press and require a release/re-press to trigger again |
004c | Misc/Scratch memory for interacting with objects | Relates to the X position |
004d | Misc/Scratch memory for interacting with objects | Relates to the Y position |
004e | Power Heart Blink Animation flag | When the next heart yields a power, will indicate which hearts should blink. Alternates between columns every frame. |
0051 | Level's Room ID | Acts as a lookup index for the room among all the rooms in the game. (Will be a value of 0-109) |
0052 | Character/Misc Flags | Bitwise flags
%---1---- Set if ally is captured / Clear if both characters active |
0053 | Scripted Button Timer | If giving up in a training level, it's possible to have the game show the solution. This is a timer between scripted button presses |
0054 | Scripted Button Current Index | Index for the pointer of scripted button presses |
0055 - 0056 | Scripted Button Pointer | Pointer to scripted button press data |
0057 | Magic Shot Quantity | |
0058 | Available Power (Slot 1) | Will be 0: None 1: Arrow 2: Bridge 3: Hammer |
0059 | Available Power (Slot 2) | 〃 |
005a | Available Power (Slot 3) | 〃 |
005b | Hearts Needed for Power (Slot 1) | |
005c | Hearts Needed for Power (Slot 2) | |
005d | Hearts Needed for Power (Slot 3) | |
005e | Treasure Chest X Position | |
005f | Treasure Chest Y Position | |
0060 | Treasure Chest has Been Taken flag | |
0061 | Level Frame Timer | Unlike the global frame timer, this starts counting once the level actually starts (i.e. Lolo has moved at least once) |
0062 | Lolo Has Not Moved flag | Acts as pause until Lolo makes a move. Will be 1 if Lolo hasn't moved or 0 if he has |
0063 | Level Timer Paused flag | Acts as a freeze flag for most enemies/objects in the level. Will be 1 if active (i.e. no enemies/objects will move) or 0 if inactive (i.e. enemies/objects will move). Gets set to 0 once Lolo makes his first move. |
0064 | Lolo is Frozen flag | Gets set when entering the line of sight of a Medusa/Don Medusa |
0065 | Lolo State index | Will be 0: Standard 1: Playing death animation 2: Giving up the level |
0066 | Egg is in Water flag | |
0067 | Lolo Riding Egg in Water Enemy index | Will be a value between $00-$1f if true, signifying which enemy is being ridden Will be $ff if false |
0068 | Lolo Transitioning to/from egg in water | Will be 0 for false Will be between $01-$10 for getting on an egg and count down until fully on the egg Will be between $81-$90 for getting off an egg and count down until back on land |
0069 | Next Heart will Contain Power flag | Will be $ff if true Non-negative value if false. If non-negative and not zero, will count down to zero and turn off heart flashing after a power is collected. |
006a - 0089 | Misc Enemy/Object Memory (slot 1) | Role varies by enemy/object |
008a - 00a9 | Misc Enemy/Object Memory (slot 2) | 〃 |
00aa - 00c9 | Misc Enemy/Object Memory (slot 2) | 〃 |
00ca | Lolo Slow X Speed Value | Normally $80. When in sand gets toggled between $80 and $00 |
00cb | Lolo X Position | Pixel value for where Lolo's sprite is |
00cc | Lolo Slow Y Speed Value | |
00cd | Lolo Y Position | Pixel value for where Lolo's sprite is |
00ce | Lolo's Occupying X Position | Which square Lolo is occupying on the grid. Lolo moves in increments of $08(8) and this memory aligns with 00cb |
00cf | Lolo's Occupying Y Position | Same as Occupying X square. Aligns with 00cd |
00d0 | Lolo Moving Direction | 0 = up, 1 = right, 2 = down, 3 = left |
00d1 | Lolo Facing Direction | 〃 |
00d2 | Lolo Walk Animation Timer | |
00d4 | Rocky Push Lolo Direction | $ff if false. If Lolo's being pushed by a Rocky enemy then $00 for up, $02 for down (they only push vertically) |
00d5 | Lolo Death Animation Timer 1 | |
00d6 | Lolo Death Animation Timer 2 | |
00da | Magic Shot Move Direction | |
00db | Magic Shot X Position | |
00dc | Magic Shot Y Position | |
00dd - 00de | Magic Hit Enemy Indexes | Temp/scratch memory for magic shots potentially hitting an enemy. Magic shots are divided into two halves and both halves must hit the same enemy in order for it to be egged |
00df | Decode Level Iterator Index | Used when decompressing room data |
00e1 | Crossed Breaking Bridge X Position | When Lolo goes across breaking bridges |
00e2 | Crossed Breaking Bridge Y Position | 〃 |
00ec | Room Liquid Animation Frame | For animating water/lava palettes in rooms |
00ed | Room Liquid Animation Timer | 〃 |
00ee | Room Liquid Type | 0 = water, 1 = lava |
00ef | Use Bridge Power On Lava Count | How many bridges are currently on lava? (only applies to bridge powers Lolo used and not regular bridge tiles) |
00f0 - 00f2 | Bridges on Lava X/Y Coordinates | |
00f3 - 00f5 | Bridges on Lava Countdown Timers | |
00f6 - 00f8 | Bridges on Lava Countdown States | 0 = Fully disappeared, 1 = About to disappear, 2 = Active |
00f9 | Heart Frames in the Room | |
00fa | Heart Frames Collected | If 00fa = 00f9 then the chest opens, etc. |
RAM During Overworld
RAM Address | Function | Details |
0079 | Lolo's X Position (Overworld) | |
007A | Lala's X Position (Overworld) | |
0081 | Lolo's Y Position (Overworld) | |
0082 | Lala's Y Position (Overworld) | |
008A | Lolo's Sprite Frame (Overworld) | |
008B | Lala's Sprite Frame (Overworld) |