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: Difference between revisions
Jump to navigation
Jump to search
(Added rammap template) |
(A lot of memory expanded and notes added about how memory varies based on game state - Step 1) |
||
Line 1: | Line 1: | ||
{{rammap|game=Adventures of Lolo III}} | {{rammap|game=Adventures of Lolo III}} | ||
== 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) | |||
{| border="1" cellpadding="1" | {| border="1" cellpadding="1" | ||
|'''RAM Address''' || '''Function''' || '''Details''' | |'''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 | ||
<tt>%---1----</tt> Set if ally is captured / Clear if both characters active<br> | |||
<tt>%----1---</tt> Set if rainbow bridge cutscene viewed / Clear otherwise<br> | |||
<tt>%-----1--</tt> Set if rainbow bridge cutscene playing / Clear otherwise<br> | |||
<tt>%-------1</tt> Set if controlling Lala / Clear if controlling Lolo | |||
|- | |- | ||
| | | 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 || | ||
|- | |- | ||
| 00CB || Lolo's X Position(α) (Dungeon) || Pixel value | | 00CB || Lolo's X Position(α) (Dungeon) || Pixel value | ||
Line 32: | Line 80: | ||
|- | |- | ||
| 00FA || Heart Frames collected || If 00FA = 00F9 then the chest opens, etc. | | 00FA || Heart Frames collected || If 00FA = 00F9 then the chest opens, etc. | ||
|- | |||
|} | |||
=== RAM During Overworld === | |||
{| border="1" cellpadding="1" | |||
|'''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) || | |||
|- | |- | ||
|} | |} |
Revision as of 14:09, 8 October 2023
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 | |
00CB | Lolo's X Position(α) (Dungeon) | Pixel value |
00CD | Lolo's Y Position(α) (Dungeon) | Pixel value |
00CE | Lolo's X Position(β) (Dungeon) | Moves in increments of $08(8) and aligns with 00CB |
00CF | Lolo's Y Position(β) (Dungeon) | Moves in increments of $08(8) and aligns with 00CD |
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) |