Adventures of Lolo 3/RAM map

From Data Crystal
< Adventures of Lolo 3
Revision as of 14:34, 8 October 2023 by Sivak (talk | contribs) (More ZP filled in)
Jump to navigation Jump to search

Chip tiny.png 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
%----1--- Set if rainbow bridge cutscene viewed / Clear otherwise
%-----1-- Set if rainbow bridge cutscene playing / Clear otherwise
%-------1 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
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
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)