More RAM labels

Fixed tablets checking for item collected, uses NpcFlags+1
Deleted mantle.asm, moved to lampmantlecone.asm
This commit is contained in:
cassidoxa
2022-11-24 18:34:35 -05:00
parent da8576546d
commit 7426ce5945
52 changed files with 1048 additions and 778 deletions

385
ram.asm
View File

@@ -4,9 +4,9 @@
; This module is primarily concerned with labeling WRAM addresses used by the
; randomizer and documenting their usage. We use a combination of base $[address]
; and WRAMLabel = $[address] here, favoring the former when we have larger blocks
; of contiguous ram labeled. In some cases the label name can be descriptive enough
; without documentation, you may want to consult more in-depth reference materials,
; or I just don't understand what they are.
; of contiguous ram labeled. A line is skipped when the next address is non-cotiguous,
; but comments will go in the empty space if multi-line. In some cases the label
; name can be descriptive enough without documentation. Or I just didn't know what it was.
;
; See the JP 1.0 disassembly for reference, specifically symbols_wram.asm
; (https://github.com/spannerisms/jpdasm/ - 19/11/2022)
@@ -38,28 +38,42 @@ Scrap0C: skip 1 ;
Scrap0D: skip 1 ;
Scrap0E: skip 1 ;
Scrap0F: skip 1 ;
;
GameMode = $7E0010 ; Game mode & submode. Refer to disassembly.
GameSubMode = $7E0011 ;
;
NMIDoneFlag = $7E0012 ; $00 = Main loop done | $01 = Not done (lag)
INIDISPQ = $7E0013 ; Queue for INIDISP updates. Written during NMI.
NMISTRIPES = $7E0014 ; NMI update flags.
NMICGRAM = $7E0015 ; When non-zero, will trigger a specific gfx update
NMIHUD = $7E0016 ; during NMI.
NMIINCR = $7E0017 ;
NMIUP1100 = $7E0018 ;
UPINCVH = $7E0019 ; Incremental upload VRAM high byte
FrameCounter = $7E001A ; Increments every frame that the game isn't lagging
IndoorsFlag = $7E001B ; $00 = Outdoors | $01 = Indoors
;
MAINDESQ = $7E001C ; PPU register queues written during NMI
SUBDESQ = $7E001D ;
TMWQ = $7E001E ;
TSWQ = $7E001F ;
LinkPosY = $7E0020 ; Link's absolute x/y coordinates. Both are word length.
LinkPosX = $7E0022 ;
LinkPosZ = $7E0024 ; $FFFF when on ground
;
LinkPushDirection = $7E0026 ; - - - - u d l r
LinkRecoilY = $7E0027 ;
LinkRecoilX = $7E0028 ;
LinkRecoilZ = $7E0029 ;
;
LinkSubPixelVelocty = $7E002A ; Word length
LinkAnimationStep = $7E002E ;
LinkDirection = $7E002F ; $00 = Up | $02 = Down | $04 = Left | $06 = Right
;
OAMOffsetY = $7E0044 ;
OAMOffsetX = $7E0045 ;
;
CapeTimer = $7E004C ; Countdown for cape sapping magic Countdown for cape sapping magic..
LinkJumping = $7E004D ; $00 = None | $01 = Bonk/damage/water | $02 = Ledge
;
Strafe = $7E0050 ; ???
;
CapeOn = $7E0055 ; Link invisible and untouchable when set.
BunnyFlagDP = $7E0056 ; $00 = Link | $01 = Bunny
;
LinkSlipping = $7E005B ; $00 = None | $01 = Near pit
@@ -68,14 +82,35 @@ FallTimer = $7E005C ; Timer for falling animation
LinkState = $7E005D ; Main Link state handler
LinkSpeed = $7E005E ; Main Link speed handler
;
LinkWalkDirection = $7E0067 ; - - - - u d l r
;
ScrapBuffer72 = $7E0072 ; Volatile scrap buffer. 5 bytes.
;
WorldCache = $7E007B ; $00 = Light world | $40 bit set for dark world.
;
OverworldIndex = $7E008A ; Overworld screen index. Word length. Dark world is OR $40 of
; light world screen in same position. Zeroed on UW entry.
OverlayID = $7E008C ; Overworld overlay ID. One Byte.
;
OAMPtr = $7E0090 ; Pointer used to indirectly address OAM buffer. 4 bytes.
BGMODEQ = $7E0094 ; Various PPU queues handled during NMI
MOSAICQ = $7E0095 ;
W12SELQ = $7E0096 ;
W34SELQ = $7E0097 ;
WOBJSELQ = $7E0098 ;
CGWSELQ = $7E0099 ;
CGADSUBQ = $7E009A ;
HDMAENQ = $7E009B ; HDMA enable flags
;
RoomIndex = $7E00A0 ; Underworld room index. Word length. High byte: $00 = EG1 | $01 = EG2
; Not zeroed on exit to overworld.
PreviousRoom = $7E00A2 ; Stores previous value of RoomIndex
;
CameraBoundH = $7E00A6 ; Which set of camera boundaries to use.
CameraBoundV = $7E00A7 ;
;
RoomTag = $7E00AE ; Room effects; e.g. kill room, shutter switch, etc. Word length.
;
SubSubModule = $7E00B0 ; Often used as a submodule, such as for transitions
;
ObjPtr = $7E00B7 ; Pointer for drawing room objects. Three bytes.
@@ -114,23 +149,31 @@ Joy2B_Old = $7E00FB ;
; Pages 0x000x1F of Bank7E are mirrored to every program bank ALTTP uses.
;--------------------------------------------------------------------------------
DeathReloadFlag = $7E010A ; Flag set on death for dungeon reload
CurrentMSUTrack = $7E010B ;
GameModeCache = $7E010C ;
GameSubModeCache = $7E010D ;
EntranceIndex = $7E010E ; Entrance ID into underworld. Word length.
;
MedallionFlag = $7E0112 ; Medallion cutscene flag. $01 = Cutscene active.
;
VRAMUploadAddress = $7E0118 ; Incremental VRAM upload address. Low byte always 0. Word length.
;
BG1ShakeV = $7E011A ; Applied to BG Scroll. Word Length.
BG1ShakeH = $7E011C ;
;
CurrentVolume = $7E0127 ;
TargetVolume = $7E0129 ;
CurrentControlRequest = $7E0133 ; Last thing written to MusicControlRequest
MusicControl = $7E012B ;
MusicControlRequest = $7E012C ;
SFX1 = $7E012D ;
SFX2 = $7E012E ;
SFX3 = $7E012F ;
LastAPUCommand = $7E0130 ; Last non-zero command given to SPC.
LastSFX1 = $7E0131 ; Last non-zero SFX1
MusicControlQueue = $7E0132 ; Used to queue up writes to MusicControlRequest
CurrentControlRequest = $7E0133 ; Last thing written to MusicControlRequest
LastAPU = $7E0134 ; Stores last anything written to MusicControlRequest
;
SubModuleInterface = $7E0200 ; Word length. High byte expected to be $00.
ItemCursor = $7E0202 ; Current location of the item menu cursor.
@@ -139,22 +182,51 @@ BottleMenuCounter = $7E0205 ; Step counter for opening bottle menu
MenuFrameCounter = $7E0206 ; Incremented every menu frame. Never read.
MenuBlink = $7E0207 ; Incremented every frame and masked with $10 to blink cursor
;
RaceGameFlag = $7E021B ;
;
MessageJunk = $7E0223 ; Zeroed but never used (?)
;
ItemReceiptID = $7E02D8 ;
ItemReceiptPose = $7E02DA ; $00 = No pose | $01 = One hand up | $02 = Two hands up
;
BunnyFlag = $7E02E0 ; $00 = Link | $01 = Bunny
;
Poofing = $7E02E1 ; Flags cape and bunny poof.
PoofTimer = $7E02E2 ; Countdown timer for poofing.
SwordCooldown = $7E02E3 ; Cooldown for sword after dashing through an enemy.
CutsceneFlag = $7E02E4 ; Flags various cutscenes. All non-zero behave the same.
;
ItemReceiptMethod = $7E02E9 ;
;
TileActBE = $7E02EF ; Bitfield used by breakables and entrances. b b b b d d d d
; b = Breakables | d = Entrances
UseY1 = $7E0301 ; Bitfield for Y-item usage: b p - a x z h r
; b = Boomerang | p = Powder | a = Bow | x = Hammer (tested, never set)
; z = Rods (tested, never set) | h = Hammer | r = Rods
CurrentYItem = $7E0303 ;
;
AButtonAct = $7E0308 ; Bitfield for A-actions. $80 = Carry/toss | $02 Prayer | $01 = Tree pull
CarryAct = $7E0309 ; Bitfield for carrying. $02 = Tossing | $01 = Lifting
;
TileActIce = $7E0348 ; Bitfield used by ice. Word length.
;
TileActDig = $7E035B ; Bitfield used by diggable ground. Word length. High byte unused.
;
LinkZap = $7E0360 ; When set, recoil zaps Link.
;
DamageReceived = $7E0373 ; Damage to deal to Link.
;
UseY2 = $7E037A ; - - b n c h - s
; b = Book | n = Net | c = Canes | h = Hookshot | s = Shovel
NoDamage = $7E037B ; Prevents Link from receiving damage.
;
AncillaGeneral = $7E039F ; General use buffer for front slot ancillae. $0F bytes.
;
AncillaSearch = $7E03C4 ; Used to search through ancilla when every front slot is occupied.
;
ForceSwordUp = $7E03EF ; $01 = Force sword up pose.
FluteTimer = $7E03F0 ; Countdown timer for being able to use the flute
;
YButtonOverride = $7E03FC ; Y override for minigames. $00 = Selected item | $01 = Shovel | $02 = Bow
;
ItemsTaken = $7E0403 ; Items taken in a room: b k u t s e h c
; b = boss kill/item | k = key/heart piece (prevents crystals)
@@ -162,46 +234,124 @@ ItemsTaken = $7E0403 ; Items taken in a room: b k u t s e h c
; s = chest 3/pod or dp wall | e, h, c = chest 2, 1, 0
DungeonID = $7E040C ; High byte mostly unused but sometimes read. Word length.
;
LayerAdjustment = $7E047A ; Flags layer adjustments. Arms EG.
;
RoomIndexMirror = $7E048E ; Mirrors RoomIndex
;
RespawnFlag = $7E04AA ; If set, entrance loading is treated as a respawn. Word length.
Map16ChangeIndex = $7E04AC ; Word length.
;
OWEntranceCutscene = $7E04C6 ;
;
HeartBeepTimer = $7E04CA ;
;
CameraScrollN = $7E0618 ; Camera scroll trigger areas for directions NSEW
CameraScrollS = $7E061A ; The higher boundary should always be +2 from the lower in
CameraScrollW = $7E061C ; underworld and -2 in overworld.
CameraScrollE = $7E061E ;
;
NMIAux = $7E0632 ; Stores long address of NMI jump. Currently only used by shops.
;
SpriteRoomTag = $7E0642 ; Set high by sprites triggering room tags.
;
SomariaSwitchFlag = $7E0646 ; Set by Somaria when on a switch.
;
TileMapEntranceDoors = $7E0696 ; Tilemap location of entrance doors. Word length.
TileMapTile32 = $7E0698 ; Tilemap location of new tile32 objects, such as from graves/rocks. Word length.
;
SkipOAM = $7E0710 ; Set to skip OAM updates. High byte written $FF with exploding walls
OWScreenSize = $7E0712 ; Flags overworld screen size.
;
OWTransitionFlag = $7E0ABF ; Used for certain transitions like smith, witch, etc.
;
ArcVariable = $7E0B08 ; Arc variable. Word length.
OverlordXLow = $7E0B08 ; $08 bytes.
OverlordXHigh = $7E0B10 ; $08 bytes.
PlayerNameCursor = $7E0B12 ; Player name screen.
OverlordYLow = $7E0B18 ; $08 bytes.
OverlordYHigh = $7E0B20 ; $08 bytes.
;
EnemyStunTimer = $7E0B58 ; Auto-decrementing timer for stunned enemies. $10 bytes.
;
BowDryFire = $7E0B9A ; If set, arrows are deleted immediately
;
SaveFileIndex = $7E0B9D ;
;
SpritePosYLow = $7E0D00 ; Sprite slot data. Each label has $10 bytes.
SpritePosXLow = $7E0D10 ;
SpritePosYHigh = $7E0D20 ;
SpriteAncillaInteract = $7E0BA0 ; If nonzero, ancillae do not interact with the sprite. $10 bytes.
;
AncillaVelocityY = $7E0C22 ; $0A bytes.
AncillaVelocityX = $7E0C2C ; $0A bytes.
;
AncillaID = $7E0C4A ; $0A bytes.
;
AncillaGet = $7E0C5E ; Used by varius ancilla in various ways. $0F bytes.
;
SpriteBump = $7E0CD2 ; See symbols_wram.asm. $10 bytes.
;
TreePullKills = $7E0CFB ; Kills for tree pulls.
TreePullHits = $7E0CFC ; Hits taken for tree pulls.
;
SpritePosYLow = $7E0D00 ; Sprite slot data. Each label has $10 bytes unless otherwise
SpritePosXLow = $7E0D10 ; specified. Some of these I'm not sure what they are. May
SpritePosYHigh = $7E0D20 ; have taken a guess or just made something up.
SpritePosXHigh = $7E0D30 ;
SpriteVelocityY = $7E0D40 ;
SpriteVelocityX = $7E0D50 ;
;
SpriteUnknown = $7E0D80 ; Don't know what this is
SpriteSubPixelY = $7E0D60 ;
SpriteSubPixelX = $7E0D70 ;
SpriteActivity = $7E0D80 ; Not sure what this is.
SpriteMovement = $7E0D90 ; Not sure what this is.
;
SpriteAuxTable = $7E0DA0 ; $20 bytes.
SpriteGFXControl = $7E0DC0 ;
SpriteAITable = $7E0DD0 ; AI state of sprites. $10 bytes.
SpriteMoveDirection = $7E0DE0 ; $00 = Right | $01 = Left | $02 = Down | $03 = Up
;
SpriteTimer = $7E0DF0 ;
;
SpriteTypeTable = $7E0E20 ; Which sprite occupies this slot. $10 bytes.
;
SpriteAux = $7E0E30 ;
SpriteOAMProperties = $7E0E40 ; h m w o o o o o | h = Harmless | m = master sword? | w = walls?
; | o = OAM allocation
SpriteHitPoints = $7E0E50 ; Set from $0DB173
SpriteControl = $7E0E60 ; n i o s p p p t | n = Death animation? | i = Immune to attack/collion?
; o = Shadow | p = OAM prop palette | t = OAM prop name table
SpriteItemType = $7E0E80 ; Sprite Item Type. $10 bytes.
;
SpriteSpawnStep = $7E0ED0 ; Related to enemies spawning other sprites (eg pikit, zirro)
;
SpriteDirectionTable = $7E0EB0 ; Sprite direction. $10 bytes.
;
SpriteHalt = $7E0F00 ;
SpriteTimerE = $7E0F10 ; ?
;
SpriteLayer = $7E0F20 ;
;
SpriteOAMProp = $7E0F50 ;
;
SpriteZCoord = $7E0F70 ;
SpriteVelocityZ = $7E0F80 ;
SpriteSubPixelZ = $7E0F90 ;
;
FreezeSprites = $7E0FC1 ; "Seems to freeze sprites"
;
PrizePackIndexes = $7E0FC7 ; $07 bytes. One for each prize pack.
;
SpriteCoordCacheX = $7E0FD8 ;
SpriteCoordCacheY = $7E0FDA ;
;
NoMenu = $7E0FFC ; When set prevents menu, mirror, medallions
;
GFXStripes = $7E1000 ; Used by stripes for arbitrary VRAM transfers. $100 bytes.
RoomStripes = $7E1100 ; Used for room drawing.
;
IrisPtr = $7E1B00 ; Spotlight pointers for HDMA. $1C0 bytes (?).
;
MessageSubModule = $7E1CD8 ;
;
MessageCursor = $7E1CE8 ; Chosen option in message.
DelayTimer = $7E1CE9 ;
;
TextID = $7E1CF0 ; Message ID and page. Word length.
;
ToastBuffer = $7E1E0E ; Multiworld buffer. Word length.
@@ -230,8 +380,56 @@ ScratchBufferV = $7E1EB0 ; Volatile scratch buffer. Can clobber at will
;--------------------------------------------------------------------------------
TileUploadBuffer = $7EA180 ; 0x300 bytes
;
RoomFade = $7EC005 ; Flags fade to black on room transitions. Word length.
FadeTimer = $7EC007 ; Timer for transition fading and mosaics. Word length.
FadeDirection = $7EC009 ; Word length
FadeLevel = $7EC00B ; Target fade level. Word length.
;
;
MosaicLevel = $7EC011 ; Word length. High byte unused
;
RoomDarkness = $7EC017 ; Darkness level of a room. High byte unused. Word length.
;
SpriteOAM = $7EC025 ;
; $7EC700 - Tile map buffer for HUD
;
EN_OWSCR2 = $7EC140 ; $7EC140-$7EC171 Used for caching with entrances.
EN_MAINDESQ = $7EC142 ; Copied from the JP disassembly.
EN_SUBDESQ = $7EC143 ;
EN_BG2VERT = $7EC144 ;
EN_BG2HORZ = $7EC146 ;
EN_POSY = $7EC148 ;
EN_POSX = $7EC14A ;
EN_OWSCR = $7EC14C ;
EN_OWTMAPI = $7EC14E ;
EN_SCROLLATN = $7EC150 ;
EN_SCROLLATW = $7EC152 ;
EN_SCROLLAN = $7EC154 ;
EN_SCROLLBN = $7EC156 ;
EN_SCROLLAS = $7EC158 ;
EN_SCROLLBS = $7EC15A ;
EN_OWTARGN = $7EC15C ;
EN_OWTARGS = $7EC15E ;
EN_OWTARGW = $7EC160 ;
EN_OWTARGE = $7EC162 ;
EN_AA0 = $7EC164 ;
EN_BGSET1 = $7EC165 ;
EN_BGSET2 = $7EC166 ;
EN_SPRSET1 = $7EC167 ;
; 2 bytes free RAM.
EN_SCRMODYA = $7EC16A ;
EN_SCRMODYB = $7EC16C ;
EN_SCRMODXA = $7EC16E ;
EN_SCRMODXB = $7EC170 ;
PegColor = $7EC172 ;
;
GameOverSongCache = $7EC227 ;
;
LastBGSet = $7EC2F8 ; Lists loaded sheets to check for decompression. 4 bytes.
;
PaletteBufferAux = $7EC300 ; Secondary and main palette buffer. See symbols_wram.asm
PaletteBuffer = $7EC500 ; in the disassembly.
HUDTileMapBuffer = $7EC700 ; HUD tile map buffer. $100 bytes (?)
HUDKeyIcon = $7EC726 ;
HUDGoalIndicator = $7EC72A ;
HUDPrizeIcon = $7EC742 ;
@@ -239,7 +437,7 @@ HUDRupees = $7EC750 ;
HUDBombCount = $7EC75A ;
HUDArrowCount = $7EC760 ;
HUDKeyDigits = $7EC764 ;
;
BigRAM = $7EC900 ; Big buffer of free ram (0x1F00)
;================================================================================
@@ -249,7 +447,7 @@ DecompressionBuffer = $7F0000 ; Decompression Buffer. $2000 bytes.
base $7F5000
RedrawFlag: skip 1 ;
skip 2 ;
skip 2 ; Unused
HexToDecDigit1: skip 1 ; Space for storing the result of hex to decimal conversion.
HexToDecDigit2: skip 1 ; Digits are stored from high to low.
HexToDecDigit3: skip 1 ;
@@ -381,27 +579,59 @@ endmacro
%assertRAM(Scrap0F, $7E000F)
%assertRAM(GameMode, $7E0010)
%assertRAM(GameSubMode, $7E0011)
%assertRAM(NMIDoneFlag, $7E0012)
%assertRAM(INIDISPQ, $7E0013)
%assertRAM(NMISTRIPES, $7E0014)
%assertRAM(NMICGRAM, $7E0015)
%assertRAM(NMIHUD, $7E0016)
%assertRAM(NMIINCR, $7E0017)
%assertRAM(NMIUP1100, $7E0018)
%assertRAM(UPINCVH, $7E0019)
%assertRAM(FrameCounter, $7E001A)
%assertRAM(IndoorsFlag, $7E001B)
%assertRAM(MAINDESQ, $7E001C)
%assertRAM(SUBDESQ, $7E001D)
%assertRAM(TMWQ, $7E001E)
%assertRAM(TSWQ, $7E001F)
%assertRAM(LinkPosY, $7E0020)
%assertRAM(LinkPosX, $7E0022)
%assertRAM(LinkPosZ, $7E0024)
%assertRAM(LinkPushDirection, $7E0026)
%assertRAM(LinkRecoilY, $7E0027)
%assertRAM(LinkRecoilX, $7E0028)
%assertRAM(LinkRecoilZ, $7E0029)
%assertRAM(LinkDirection, $7E002F)
%assertRAM(LinkAnimationStep, $7E002E)
%assertRAM(OAMOffsetY, $7E0044)
%assertRAM(OAMOffsetX, $7E0045)
%assertRAM(CapeTimer, $7E004C)
%assertRAM(LinkJumping, $7E004D)
%assertRAM(Strafe, $7E0050)
%assertRAM(CapeOn, $7E0055)
%assertRAM(BunnyFlagDP, $7E0056)
%assertRAM(LinkSlipping, $7E005B)
%assertRAM(FallTimer, $7E005C)
%assertRAM(LinkState, $7E005D)
%assertRAM(LinkSpeed, $7E005E)
%assertRAM(LinkWalkDirection, $7E0067)
%assertRAM(ScrapBuffer72, $7E0072)
%assertRAM(WorldCache, $7E007B)
%assertRAM(OverworldIndex, $7E008A)
%assertRAM(OverlayID, $7E008C)
%assertRAM(OAMPtr, $7E0090)
%assertRAM(BGMODEQ, $7E0094)
%assertRAM(MOSAICQ, $7E0095)
%assertRAM(W12SELQ, $7E0096)
%assertRAM(W34SELQ, $7E0097)
%assertRAM(WOBJSELQ, $7E0098)
%assertRAM(CGWSELQ, $7E0099)
%assertRAM(CGADSUBQ, $7E009A)
%assertRAM(HDMAENQ, $7E009B)
%assertRAM(RoomIndex, $7E00A0)
%assertRAM(PreviousRoom, $7E00A2)
%assertRAM(CameraBoundH, $7E00A6)
%assertRAM(CameraBoundV, $7E00A7)
%assertRAM(RoomTag, $7E00AE)
%assertRAM(SubSubModule, $7E00B0)
%assertRAM(ObjPtr, $7E00B7)
%assertRAM(ObjPtrOffset, $7E00BA)
@@ -417,10 +647,13 @@ endmacro
%assertRAM(BG2V, $7E00E8)
%assertRAM(BG3VOFSQL, $7E00EA)
%assertRAM(LinkLayer, $7E00EE)
%assertRAM(DeathReloadFlag, $7E010A)
%assertRAM(CurrentMSUTrack, $7E010B)
%assertRAM(GameModeCache, $7E010C)
%assertRAM(GameSubModeCache, $7E010D)
%assertRAM(EntranceIndex, $7E010E)
%assertRAM(MedallionFlag, $7E0112)
%assertRAM(VRAMUploadAddress, $7E0118)
%assertRAM(BG1ShakeV, $7E011A)
%assertRAM(BG1ShakeH, $7E011C)
%assertRAM(CurrentVolume, $7E0127)
@@ -431,44 +664,144 @@ endmacro
%assertRAM(SFX1, $7E012D)
%assertRAM(SFX2, $7E012E)
%assertRAM(SFX3, $7E012F)
%assertRAM(LastAPUCommand, $7E0130)
%assertRAM(LastSFX1, $7E0131)
%assertRAM(MusicControlQueue, $7E0132)
%assertRAM(CurrentControlRequest, $7E0133)
%assertRAM(LastAPU, $7E0134)
%assertRAM(SubModuleInterface, $7E0200)
%assertRAM(ItemCursor, $7E0202)
%assertRAM(BottleMenuCounter, $7E0205)
%assertRAM(MenuBlink, $7E0207)
%assertRAM(RaceGameFlag, $7E021B)
%assertRAM(MessageJunk, $7E0223)
%assertRAM(ItemReceiptID, $7E02D8)
%assertRAM(ItemReceiptPose, $7E02DA)
%assertRAM(BunnyFlag, $7E02E0)
%assertRAM(Poofing, $7E02E1)
%assertRAM(PoofTimer, $7E02E2)
%assertRAM(SwordCooldown, $7E02E3)
%assertRAM(CutsceneFlag, $7E02E4)
%assertRAM(ItemReceiptMethod, $7E02E9)
%assertRAM(TileActBE, $7E02EF)
%assertRAM(UseY1, $7E0301)
%assertRAM(CurrentYItem, $7E0303)
%assertRAM(AButtonAct, $7E0308)
%assertRAM(TileActIce, $7E0348)
%assertRAM(TileActDig, $7E035B)
%assertRAM(LinkZap, $7E0360)
%assertRAM(DamageReceived, $7E0373)
%assertRAM(UseY2, $7E037A)
%assertRAM(NoDamage, $7E037B)
%assertRAM(AncillaGeneral, $7E039F)
%assertRAM(AncillaSearch, $7E03C4)
%assertRAM(ForceSwordUp, $7E03EF)
%assertRAM(FluteTimer, $7E03F0)
%assertRAM(YButtonOverride, $7E03FC)
%assertRAM(ItemsTaken, $7E0403)
%assertRAM(DungeonID, $7E040C)
%assertRAM(LayerAdjustment, $7E047A)
%assertRAM(RoomIndexMirror, $7E048E)
%assertRAM(RespawnFlag, $7E04AA)
%assertRAM(Map16ChangeIndex, $7E04AC)
%assertRAM(OWEntranceCutscene, $7E04C6)
%assertRAM(HeartBeepTimer, $7E04CA)
%assertRAM(CameraScrollN, $7E0618)
%assertRAM(CameraScrollS, $7E061A)
%assertRAM(CameraScrollW, $7E061C)
%assertRAM(CameraScrollE, $7E061E)
%assertRAM(NMIAux, $7E0632)
%assertRAM(SpriteRoomTag, $7E0642)
%assertRAM(SomariaSwitchFlag, $7E0646)
%assertRAM(TileMapEntranceDoors, $7E0696)
%assertRAM(TileMapTile32, $7E0698)
%assertRAM(SkipOAM, $7E0710)
%assertRAM(OWScreenSize, $7E0712)
%assertRAM(OWTransitionFlag, $7E0ABF)
%assertRAM(TreePullKills, $7E0CFB)
%assertRAM(TreePullHits, $7E0CFC)
%assertRAM(ArcVariable, $7E0B08)
%assertRAM(OverlordXLow, $7E0B08)
%assertRAM(OverlordXHigh, $7E0B10)
%assertRAM(OverlordYLow, $7E0B18)
%assertRAM(OverlordYHigh, $7E0B20)
%assertRAM(EnemyStunTimer, $7E0B58)
%assertRAM(BowDryFire, $7E0B9A)
%assertRAM(SaveFileIndex, $7E0B9D)
%assertRAM(SpriteAncillaInteract, $7E0BA0)
%assertRAM(AncillaVelocityY, $7E0C22)
%assertRAM(AncillaVelocityX, $7E0C2C)
%assertRAM(AncillaID, $7E0C4A)
%assertRAM(AncillaGet, $7E0C5E)
%assertRAM(SpriteBump, $7E0CD2)
%assertRAM(SpritePosYLow, $7E0D00)
%assertRAM(SpritePosXLow, $7E0D10)
%assertRAM(SpritePosYHigh, $7E0D20)
%assertRAM(SpritePosXHigh, $7E0D30)
%assertRAM(SpriteVelocityY, $7E0D40)
%assertRAM(SpriteVelocityX, $7E0D50)
%assertRAM(SpriteUnknown, $7E0D80)
%assertRAM(SpriteSubPixelY, $7E0D60)
%assertRAM(SpriteSubPixelX, $7E0D70)
%assertRAM(SpriteActivity, $7E0D80)
%assertRAM(SpriteMovement, $7E0D90)
%assertRAM(SpriteAuxTable, $7E0DA0)
%assertRAM(SpriteGFXControl, $7E0DC0)
%assertRAM(SpriteAITable, $7E0DD0)
%assertRAM(SpriteMoveDirection, $7E0DE0)
%assertRAM(SpriteTimer, $7E0DF0)
%assertRAM(SpriteTypeTable, $7E0E20)
%assertRAM(SpriteAux, $7E0E30)
%assertRAM(SpriteOAMProperties, $7E0E40)
%assertRAM(SpriteHitPoints, $7E0E50)
%assertRAM(SpriteControl, $7E0E60)
%assertRAM(SpriteItemType, $7E0E80)
%assertRAM(SpriteSpawnStep, $7E0ED0)
%assertRAM(SpriteDirectionTable, $7E0EB0)
%assertRAM(SpriteHalt, $7E0F00)
%assertRAM(SpriteTimerE, $7E0F10)
%assertRAM(SpriteLayer, $7E0F20)
%assertRAM(SpriteOAMProp, $7E0F50)
%assertRAM(EN_OWSCR2, $7EC140)
%assertRAM(EN_MAINDESQ, $7EC142)
%assertRAM(EN_SUBDESQ, $7EC143)
%assertRAM(EN_BG2VERT, $7EC144)
%assertRAM(EN_BG2HORZ, $7EC146)
%assertRAM(EN_POSY, $7EC148)
%assertRAM(EN_POSX, $7EC14A)
%assertRAM(EN_OWSCR, $7EC14C)
%assertRAM(EN_OWTMAPI, $7EC14E)
%assertRAM(EN_SCROLLATN, $7EC150)
%assertRAM(EN_SCROLLATW, $7EC152)
%assertRAM(EN_SCROLLAN, $7EC154)
%assertRAM(EN_SCROLLBN, $7EC156)
%assertRAM(EN_SCROLLAS, $7EC158)
%assertRAM(EN_SCROLLBS, $7EC15A)
%assertRAM(EN_OWTARGN, $7EC15C)
%assertRAM(EN_OWTARGS, $7EC15E)
%assertRAM(EN_OWTARGW, $7EC160)
%assertRAM(EN_OWTARGE, $7EC162)
%assertRAM(EN_AA0, $7EC164)
%assertRAM(EN_BGSET1, $7EC165)
%assertRAM(EN_BGSET2, $7EC166)
%assertRAM(EN_SPRSET1, $7EC167)
%assertRAM(EN_SCRMODYA, $7EC16A)
%assertRAM(EN_SCRMODYB, $7EC16C)
%assertRAM(EN_SCRMODXA, $7EC16E)
%assertRAM(EN_SCRMODXB, $7EC170)
%assertRAM(SpriteZCoord, $7E0F70)
%assertRAM(SpriteVelocityZ, $7E0F80)
%assertRAM(SpriteSubPixelZ, $7E0F90)
%assertRAM(FreezeSprites, $7E0FC1)
%assertRAM(PrizePackIndexes, $7E0FC7)
%assertRAM(SpriteCoordCacheX, $7E0FD8)
%assertRAM(SpriteCoordCacheY, $7E0FDA)
%assertRAM(NoMenu, $7E0FFC)
%assertRAM(GFXStripes, $7E1000)
%assertRAM(RoomStripes, $7E1100)
%assertRAM(IrisPtr, $7E1B00)
%assertRAM(MessageSubModule, $7E1CD8)
%assertRAM(MessageCursor, $7E1CE8)
%assertRAM(DelayTimer, $7E1CE9)
%assertRAM(TextID, $7E1CF0)
%assertRAM(ToastBuffer, $7E1E0E)
%assertRAM(MSUResumeTime, $7E1E6B)
@@ -487,7 +820,19 @@ endmacro
%assertRAM(ScratchBufferNV, $7E1EA0)
%assertRAM(ScratchBufferV, $7E1EB0)
%assertRAM(TileUploadBuffer, $7EA180)
%assertRAM(RoomFade, $7EC005)
%assertRAM(FadeTimer, $7EC007)
%assertRAM(FadeDirection, $7EC009)
%assertRAM(FadeLevel, $7EC00B)
%assertRAM(MosaicLevel, $7EC011)
%assertRAM(RoomDarkness, $7EC017)
%assertRAM(SpriteOAM, $7EC025)
%assertRAM(PegColor, $7EC172)
%assertRAM(GameOverSongCache, $7EC227)
%assertRAM(LastBGSet, $7EC2F8)
%assertRAM(PaletteBufferAux, $7EC300)
%assertRAM(PaletteBuffer, $7EC500)
%assertRAM(HUDTileMapBuffer, $7EC700)
%assertRAM(HUDKeyIcon, $7EC726)
%assertRAM(HUDGoalIndicator, $7EC72A)
%assertRAM(HUDPrizeIcon, $7EC742)