RAM: Bank 0x7E: Page 0x02

From TLoZ: ALTTP Hacking Resources
Jump to: navigation, search
This is a subpage of RAM
  • $0200 (01) = Sub-submodule index for mode E.
  • $0201 (01) = Seems to be never referenced
  • $0202 (01) = currently selected item (credit: Euclid)
  • $0203 (01) = Module 0x0E.0x01 references it but never seems to use it
  • $0204 (01) = Module 0x0E.0x01 references it but never seems to use it
  • $0205 (01) = Module 0x0E.0x01 uses it in the creation and destruction of the bottle submenu as a progress indicator
  • $0206 (01) = Module 0x0E.0x01 increments it as a frame counter similar to $1A, but it never seems to get used (debug probably)
  • $0207 (01) = Module 0x0E.0x01 references it but never seems to use it
  • $0208 (01) = Countdown timer that controls when the next animation of hearts being filled in occurs. (The rotating animation)
  • $0209 (01) = Index related to $0208. When $0208 counts down to zero, $0209 is incremented, then reassigned modulo 4 (logical and by 0x03) determines the graphics used in each step of the heart refill animation. (4 steps). Once $0209 reaches 4 (which is 0 modulo 4), $020A is set to zero to indicate that the animation for this particular heart is finished.
  • $020A (01) = Flag that indicates whether a heart refill animation is taking place. Nonzero if that is the case.
  • $020B (01) = Seems to be a debug value for Module 0x0E.0x01
  • $020C (01) = Oh hells naw
  • $020D (01) = Used in some submodule of module 0x0E in Bank 0x0A
  • $020E (01) = Floor index for the dungeon map.
    • Floor 1F = 0x00
    • Floor 1B = 0xFF
    • Floor 2F = 0x01
    • etc.
  • $020F (01) = Referenced in Module 0x0E in Bank 0x0A but doesn't seem to be used.
  • $0210 (01) = Mostly referenced in Module 0x0E in Bank 0x0A with various specific usages I've yet to document
  • $0211 (02) = ???? Shows up in Bank 0x0A only. Indexes $0217...
  • $0213 (02) = Shows up in Bank 0x0A only.
  • $0215 (02) = Relevant to dungeon map mode sprites...
  • $0217 (02) = Dungeon map related too?
  • $0219 (02) = Specifically used as the target address in VRAM for the HUD portion of the BG3 tile map. For the entirety of the game this is supposed to stay as 0x6040 (0xE080 in byte addressing)
  • $021B (02) = free ram
  • $021D (04) = Assigned the value 0x007F4841... doesn't seem to be referenced anywhere else though
  • $0221 (02) = Assigned a value of 0xFFFF (-1) in Bank 0x0C, never seems to be referenced though.
  • $0223 (02) = There's a few STZ $0223's that pop up in the rom but other than that it's not clear if it was ever used.
  • $0224 (0C) = Free RAM?
  • $0230 (50) = Tentatively considered to be free ram at this time
  • $0280 (0A) = special object OAM priority (full byte boolean)
    • If nonzero, use highest priority, otherwise use default priority.
  • $028A (0A) = Unknown special object variable
  • $0294 (0A) = Altitude velocity (Z-coordinate velocity)
  • $029E (0A) = Timers for special objects like Pendants (or altitude)
  • $02A8 (0A) = Subpixel portion of altitude
  • $02B2 (0E) = Free RAM
  • $02C0 (02) = bitfield possibly related to inroom staircases.
    • If this variable masked with 0x0070 is nonzero, Link moves as though he's on an in-room south staircase
    • If this variable masked with 0x0007 is nonzero, Link moves as though he's on an in-room north staircase
  • $02C2 (01) = The value of $5F gets cached here sometimes, unclear what $5F is for though right now.
  • $02C3 (01) = ????
  • $02C4 (01) = ????
  • $02C5 (01) = Related to $46 (damage countdown timer)
  • $02C6 (01) = ????
  • $02C7 (01) = Probably countdown timer associated with $29
  • $02C8 (01) = ????
  • $02C9 (01) = Very limited usage only in Bank 0x07.
  • $02CA (01) = ????
  • $02CB (01) = Very limited usage only in Bank 0x07.
  • $02CC (01) = Limited usage in Bank 0x07 and 0x0D.
  • $02CD (02) = Counter for the beginning of the game where Zelda telepathically contacts you over and over again.
  • $02CF (01) = It would appear that this is the index of the current tagalong state (out of 20 / 0x14 states) Exact usage is not clear, though.
  • $02D0 (01) = ????
  • $02D1 (01) = Cache location for $02D3
  • $02D2 (01) = ????
  • $02D3 (01) = Apparently a debug variable, doesn't appear to be used in the real game
  • $02D4 (01)
  • $02D5 (01) = free ram
  • $02D6 (01) = ???? relates to tagalongs
  • $02D7 (01) = ????
  • $02D8 (01) = The index of the item you receive when you open a chest or pick up an item off the ground, or otherwise obtain the item (like Link getting the sword from his Uncle)
  • $02D9 (01) = Related to $02D8, haven’t worked out the details b/c it wasn’t necessary yet.
  • $02DA (01) = Flag indicating whether Link is in the pose used to hold an item or not.
    • 0 = no extra pose,
    • 2 = holding up item with two hands pose (e.g. triforce),

everything else - holding up item with one hand pose

  • $02DB (01) = Flag that deals with Link warping with the magic mirror.... but not exactly sure what it means.
  • $02DC (02) = Mirror of Link's X coordinate which is used in Bank 07's movement routines
  • $02DE (02) = Mirror of Link's Y coordinate which is used in Bank 07's movement routines
  • $02E0 (01) = Flag for Link's graphics set. (Mirrored at $56)
    • 0 = Normal Link,
    • 1 = Bunny Link.
  • $02E1 (01) = Link is transforming? (Poofing in a cloud to transform into something else.)
  • $02E2 (01) = Timer for when Link transforms between Link and Bunny modes.
  • $02E3 (01) = ????
  • $02E4 (01) = Flag that if set will not allow Link to move. Requires further research as to its generalized usage. Also... Link cannot bring down the menu if this is nonzero. Additionally, Euclid says that the value 0x1A is written here after you kill Ganon. (And he's right)
  • $02E5 (01) = Bitfield for chest interaction
    • uuuucccc
      • c = touching chest
      • u = free ram
  • $02E6 (01) = free ram, but could be used as a bitfield for expanded tile types
  • $02E7 (01) = Bitfield for big key locks and gravestone interactions
    • bbbbgggg
      • b = big key lock
      • g = gravestone
  • $02E8 (01) = Bitfield for spike / cactus and barrier tile interactions?
    • bbbbssss
      • s = spike blocks / cactus tiles
      • b = orange / blue barrier tiles that are up
  • $02E9 (01) = Item Receipt Method
    • 0 = Receiving item from an NPC or message
    • 1 = Receiving item from a chest
    • 2 = Receiving item that was spawned in the game by a sprite
    • 3 = Receiving item that was spawned by a special object.
  • $02EA (02) = Set to the tile type
  • $02EC (01) = seems to be a flag for (Link's) collision with bombs. Maybe other uses
  • $02ED (01) = If nonzero, it indicates that Link is near the tile that triggers the Desert Palace opening with the Book of Mudora
  • $02EE (01) = Bitfield for spike floor and ????? tile interactions
    • ssssuuud
      • d = desert palace entrance trigger
      • s = spike floor tiles
      • u = not tested
  • $02EF (01) = Bitfield for dashable (breakable with dash) and ????? tile interactions
    • dddd????
      • d = Dashable
      • ? = Not tested
  • $02F1 (01) = ??? related to dashing. Set to 0x40 at start, counts down to 0x20
  • $02F2 (01) = Something to do with Kiki the monkey?
  • $02F3 (01) = There is one place where the value of zero is written to it, but otherwise it could be considered free ram.
  • $02F4 (01) = Only use is for caching the current value of $0314 in some instances
  • $02F5 (01) =
    • 0 = Not on a Somaria Platform.
    • 2 = On a Somaria Platform.
  • $02F6 (02) = Bitfield for interaction with Blue Rupee, Grabbable, and Key Door tiles
    • rrrrrrrr kkkkgggg
      • k = Key Door tiles
      • g = Tiles grabbable by Hookshot
      • r = Blue Rupee tiles
  • $02F8 (01) = Flag used to make Link make a noise when he gets done bouncing after a wall he's dashed into. Thus, it only has any use in relation to dashing.
  • $02F9 (01) = best guess so far: zero if your tagalong is transforming, nonzero otherwise
  • $02FA (01) = Flag that is set if you are near a moveable statue (close enough to grab it)
  • $02FB (05) = Free ram

Navigate

Table of Contents
SpritesDungeonsOverworldUnderworldSRAM MapRAM MapROM MapMusicMonologueCreditsDumpsMiscellaneousTo-Do/Suggestions