572 lines
26 KiB
NASM
572 lines
26 KiB
NASM
;================================================================================
|
||
; RAM Labels & Assertions
|
||
;--------------------------------------------------------------------------------
|
||
; 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.
|
||
;
|
||
; See the JP 1.0 disassembly for reference, specifically symbols_wram.asm
|
||
; (https://github.com/spannerisms/jpdasm/ - 19/11/2022)
|
||
;--------------------------------------------------------------------------------
|
||
pushpc
|
||
org 0
|
||
|
||
;================================================================================
|
||
; Bank 7E
|
||
;--------------------------------------------------------------------------------
|
||
;================================================================================
|
||
; Direct Page
|
||
;--------------------------------------------------------------------------------
|
||
base $7E0000
|
||
Scrap:
|
||
Scrap00: skip 1 ; Used as short-term scratch space. If you need some short-term
|
||
Scrap01: skip 1 ; RAM, you can often use these. Double check that the next use
|
||
Scrap02: skip 1 ; of the addresses you want to use is a write.
|
||
Scrap03: skip 1 ;
|
||
Scrap04: skip 1 ;
|
||
Scrap05: skip 1 ;
|
||
Scrap06: skip 1 ;
|
||
Scrap07: skip 1 ;
|
||
Scrap08: skip 1 ;
|
||
Scrap09: skip 1 ;
|
||
Scrap0A: skip 1 ;
|
||
Scrap0B: skip 1 ;
|
||
Scrap0C: skip 1 ;
|
||
Scrap0D: skip 1 ;
|
||
Scrap0E: skip 1 ;
|
||
Scrap0F: skip 1 ;
|
||
;
|
||
GameMode = $7E0010 ; Game mode & submode. Refer to disassembly.
|
||
GameSubMode = $7E0011 ;
|
||
;
|
||
FrameCounter = $7E001A ; Increments every frame that the game isn't lagging
|
||
IndoorsFlag = $7E001B ; $00 = Outdoors | $01 = Indoors
|
||
;
|
||
LinkPosY = $7E0020 ; Link's absolute x/y coordinates. Both are word length.
|
||
LinkPosX = $7E0022 ;
|
||
LinkPosZ = $7E0024 ; $FFFF when on ground
|
||
;
|
||
LinkRecoilY = $7E0027 ;
|
||
LinkRecoilX = $7E0028 ;
|
||
LinkRecoilZ = $7E0029 ;
|
||
;
|
||
LinkDirection = $7E002F ; $00 = Up | $02 = Down | $04 = Left | $06 = Right
|
||
;
|
||
OAMOffsetY = $7E0044 ;
|
||
OAMOffsetX = $7E0045 ;
|
||
;
|
||
LinkJumping = $7E004D ; $00 = None | $01 = Bonk/damage/water | $02 = Ledge
|
||
;
|
||
BunnyFlagDP = $7E0056 ; $00 = Link | $01 = Bunny
|
||
;
|
||
LinkSlipping = $7E005B ; $00 = None | $01 = Near pit
|
||
; $02 = Falling | $03 = Falling "more"
|
||
FallTimer = $7E005C ; Timer for falling animation
|
||
LinkState = $7E005D ; Main Link state handler
|
||
LinkSpeed = $7E005E ; Main Link speed handler
|
||
;
|
||
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.
|
||
;
|
||
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
|
||
;
|
||
SubSubModule = $7E00B0 ; Often used as a submodule, such as for transitions
|
||
;
|
||
ObjPtr = $7E00B7 ; Pointer for drawing room objects. Three bytes.
|
||
ObjPtrOffset = $7E00BA ; Used as an offset for ObjPointer. Word Length.
|
||
PlayerSpriteBank = $7E00BC ;
|
||
ScrapBufferBD = $7E00BD ; Another scrap buffer. $23 bytes.
|
||
FileSelectPosition = $7E00C8 ;
|
||
PasswordCodePosition = $7E00C8 ;
|
||
PasswordSelectPosition = $7E00C9 ;
|
||
;
|
||
BG1H = $7E00E0 ; Background scroll registers
|
||
BG2H = $7E00E2 ; For BG1 and BG2, these registers are used for calculations later for different writes to PPU.
|
||
BG3HOFSQL = $7E00E4 ; For BG3, the values are written directly to the PPU during NMI
|
||
BG1V = $7E00E6 ; Since BG1 and BG2 are not written directly to PPU they are given different names from BG3.
|
||
BG2V = $7E00E8 ;
|
||
BG3VOFSQL = $7E00EA ;
|
||
;
|
||
LinkLayer = $7E00EE ; Layer that Link is on. $00 = BG2 (upper) | $02 = BG1 (lower)
|
||
;
|
||
Joy1A_All = $7E00F0 ; Joypad input
|
||
Joy2A_All = $7E00F1 ; All = Current & previous frame
|
||
Joy1B_All = $7E00F2 ; New = Current frame
|
||
Joy2B_All = $7E00F3 ; Old = Previous frame
|
||
Joy1A_New = $7E00F4 ;
|
||
Joy2A_New = $7E00F5 ;
|
||
Joy1B_New = $7E00F6 ;
|
||
Joy2B_New = $7E00F7 ;
|
||
Joy1A_Old = $7E00F8 ;
|
||
Joy2A_Old = $7E00F9 ;
|
||
Joy1B_Old = $7E00FA ;
|
||
Joy2B_Old = $7E00FB ;
|
||
|
||
;================================================================================
|
||
; Mirrored WRAM
|
||
;--------------------------------------------------------------------------------
|
||
; Pages 0x00–0x1F of Bank7E are mirrored to every program bank ALTTP uses.
|
||
;--------------------------------------------------------------------------------
|
||
|
||
CurrentMSUTrack = $7E010B ;
|
||
GameModeCache = $7E010C ;
|
||
GameSubModeCache = $7E010D ;
|
||
;
|
||
MedallionFlag = $7E0112 ; Medallion cutscene flag. $01 = Cutscene active.
|
||
;
|
||
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 ;
|
||
;
|
||
SubModuleInterface = $7E0200 ; Word length. High byte expected to be $00.
|
||
ItemCursor = $7E0202 ; Current location of the item menu cursor.
|
||
;
|
||
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
|
||
;
|
||
ItemReceiptID = $7E02D8 ;
|
||
;
|
||
BunnyFlag = $7E02E0 ; $00 = Link | $01 = Bunny
|
||
;
|
||
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
|
||
CurrentYItem = $7E0303 ;
|
||
;
|
||
;
|
||
TileActDig = $7E035B ; Bitfield used by diggable ground. Word length. High byte unused.
|
||
;
|
||
ForceSwordUp = $7E03EF ; $01 = Force sword up pose.
|
||
;
|
||
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)
|
||
; u = 2nd key/heart piece | t = chest 4/rupees/swamp drain/bomb floor/mire wall
|
||
; 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.
|
||
;
|
||
OWEntranceCutscene = $7E04C6 ;
|
||
;
|
||
HeartBeepTimer = $7E04CA ;
|
||
;
|
||
NMIAux = $7E0632 ; Stores long address of NMI jump. Currently only used by shops.
|
||
;
|
||
SkipOAM = $7E0710 ; Set to skip OAM updates. High byte written $FF with exploding walls
|
||
;
|
||
BowDryFire = $7E0B9A ; If set, arrows are deleted immediately
|
||
;
|
||
SaveFileIndex = $7E0B9D ;
|
||
;
|
||
SpritePosYLow = $7E0D00 ; Sprite slot data. Each label has $10 bytes.
|
||
SpritePosXLow = $7E0D10 ;
|
||
SpritePosYHigh = $7E0D20 ;
|
||
SpritePosXHigh = $7E0D30 ;
|
||
SpriteVelocityY = $7E0D40 ;
|
||
SpriteVelocityX = $7E0D50 ;
|
||
;
|
||
SpriteUnknown = $7E0D80 ; Don't know what this is
|
||
;
|
||
SpriteAuxTable = $7E0DA0 ; $20 bytes.
|
||
SpriteGFXControl = $7E0DC0 ;
|
||
SpriteAITable = $7E0DD0 ; AI state of sprites. $10 bytes.
|
||
;
|
||
SpriteTimer = $7E0DF0 ;
|
||
;
|
||
SpriteTypeTable = $7E0E20 ; Which sprite occupies this slot. $10 bytes.
|
||
;
|
||
SpriteItemType = $7E0E80 ; Sprite Item Type. $10 bytes.
|
||
;
|
||
SpriteDirectionTable = $7E0EB0 ; Sprite direction. $10 bytes.
|
||
;
|
||
FreezeSprites = $7E0FC1 ; "Seems to freeze sprites"
|
||
;
|
||
SpriteCoordCacheX = $7E0FD8 ;
|
||
SpriteCoordCacheY = $7E0FDA ;
|
||
;
|
||
NoMenu = $7E0FFC ; When set prevents menu, mirror, medallions
|
||
;
|
||
TextID = $7E1CF0 ; Message ID and page. Word length.
|
||
;
|
||
ToastBuffer = $7E1E0E ; Multiworld buffer. Word length.
|
||
;
|
||
MSUResumeTime = $7E1E6B ; Mirrored MSU block
|
||
MSUResumeControl = $7E1E6F ;
|
||
MSUFallbackTable = $7E1E70 ;
|
||
MSUDelayedCommand = $7E1E79 ;
|
||
MSUPackCount = $7E1E7A ;
|
||
MSUPackCurrent = $7E1E7B ;
|
||
MSUPackRequest = $7E1E7C ;
|
||
MSULoadedTrack = $7E1E7D ;
|
||
MSUResumeTrack = $7E1E7F ;
|
||
|
||
ClockHours = $7E1E90 ; Clock Hours
|
||
ClockMinutes = $7E1E94 ; Clock Minutes
|
||
ClockSeconds = $7E1E98 ; Clock Seconds
|
||
ClockBuffer = $7E1E9C ; Clock Temporary
|
||
ScratchBufferNV = $7E1EA0 ; Non-volatile scratch buffer. Must preserve values through return.
|
||
ScratchBufferV = $7E1EB0 ; Volatile scratch buffer. Can clobber at will.
|
||
|
||
;================================================================================
|
||
; UNMIRRORED WRAM
|
||
; Addresses from here on can only be accessed with long addressing
|
||
; or absolute addressing with the appropriate data bank set
|
||
;--------------------------------------------------------------------------------
|
||
|
||
TileUploadBuffer = $7EA180 ; 0x300 bytes
|
||
SpriteOAM = $7EC025 ;
|
||
; $7EC700 - Tile map buffer for HUD
|
||
HUDKeyIcon = $7EC726 ;
|
||
HUDGoalIndicator = $7EC72A ;
|
||
HUDPrizeIcon = $7EC742 ;
|
||
HUDRupees = $7EC750 ;
|
||
HUDBombCount = $7EC75A ;
|
||
HUDArrowCount = $7EC760 ;
|
||
HUDKeyDigits = $7EC764 ;
|
||
|
||
BigRAM = $7EC900 ; Big buffer of free ram (0x1F00)
|
||
|
||
;================================================================================
|
||
; Bank 7F
|
||
;--------------------------------------------------------------------------------
|
||
DecompressionBuffer = $7F0000 ; Decompression Buffer. $2000 bytes.
|
||
|
||
base $7F5000
|
||
RedrawFlag: skip 1 ;
|
||
skip 2 ;
|
||
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 ;
|
||
HexToDecDigit4: skip 1 ;
|
||
HexToDecDigit5: skip 1 ;
|
||
SpriteSkipEOR: skip 2 ; Used in utilities.asm to determine when to skip drawing sprites. Zero-padded
|
||
skip $2B ; Unused
|
||
AltTextFlag: skip 2 ; dialog.asm: Determines whether to load from vanilla decompression buffer
|
||
; or from a secondary buffer (used for things like free dungeon item text)
|
||
BossKills: skip 1 ;
|
||
LagTime: skip 4 ; Computed during stats preparation for display
|
||
RupeesCollected: skip 2 ; Computed during stats preparation for display
|
||
NonChestCounter: skip 2 ; Computed during stats preparation for display
|
||
skip 2 ; Unused
|
||
TileUploadOffsetOverride: skip 2 ; Offset override for loading sprite gfx
|
||
skip 3 ;
|
||
skip 9 ;
|
||
; Shop Block $7F5050 - $7F506F
|
||
ShopId: skip 1 ; Shop ID. Used for indexing and loading inventory for custom shops
|
||
ShopType: skip 1 ; Shop type. $FF = vanilla shop
|
||
; t - - - - - - -
|
||
; t = Take-any
|
||
ShopInventory: skip $0D ; For three possible shop items, row major:
|
||
; [Item ID][Price low][Price High][Purchase Count]
|
||
ShopState: skip 1 ; - - - - - l c r | Bitfield that determines whether to draw an item
|
||
ShopCapacity: skip 1 ; Four lower bits of shop_config in ShopTable, number of items 1-3
|
||
ShopScratch: skip 1 ; Scratch byte used in shop drawing routines
|
||
ShopSRAMIndex: skip 1 ; SRAM index for purchase counts
|
||
ShopMerchant: skip 1 ; Loaded from ShopTable and used to jump to one of four drawing routines
|
||
skip 2 ; Unused
|
||
ShopPriceColumn: skip 3 ; Stores coordinates for drawing prices in shops
|
||
skip 7 ;
|
||
skip 2 ; Reserved for OneMind
|
||
OneMindId: skip 1 ; Current OneMind player
|
||
OneMindTimerRAM: skip 2 ; Frame counter for OneMind
|
||
skip 9 ; Unused
|
||
ClockStatus: skip 2 ; 2 bytes second always zero padding
|
||
; ---- --dn
|
||
; d - DNF mode
|
||
; n - Negative
|
||
skip $10 ; Unused
|
||
RNGLockIn: skip 1 ; Used for RNG item (currently unused by rando)
|
||
BusyItem: skip 1 ; Flags for indicating when these things are "busy"
|
||
BusyHealth: skip 1 ; e.g. doing some animation
|
||
BusyMagic: skip 1 ;
|
||
DialogOffsetPointer: skip 2 ; Offset and return pointer into new dialog buffer used
|
||
DialogReturnPointer: skip 2 ; for e.g. free dungeon item text.
|
||
skip 1 ; Unused
|
||
PreviousOverworldDoor: skip 1 ; Previous overworld door is cached or initialized here
|
||
skip 1 ; Reserved
|
||
skip 1 ; Unused
|
||
DuckMapFlag: skip 1 ; Temporary flag used and reset by flute map drawing routine
|
||
StalfosBombDamage: skip 1 ; Relocated from damage table
|
||
ValidKeyLoaded: skip 1 ;
|
||
TextBoxDefer: skip 1 ; Flag used to defer post-item text boxes
|
||
skip $10 ; Unused
|
||
skip $10 ; Reserved for enemizer
|
||
; Most of these modifiers are intended to be written to by
|
||
; a 3rd party (e.g. Crowd Control.) Writer is responsible
|
||
; for zeroing.
|
||
SwordModifier: skip 1 ; Adds level to current sword. Doesn't change graphics.
|
||
ShieldModifier: skip 1 ; Not implemented
|
||
ArmorModifier: skip 1 ; Adds level to current mail. Doesn't change graphics.
|
||
MagicModifier: skip 1 ; Adds level to magic consumption (1/2, 1/4.)
|
||
LightConeModifier: skip 1 ; Gives lamp cone when set to 1
|
||
CuccoStormer: skip 1 ; Non-zero write causes storm.
|
||
OldManDash: skip 1 ; Unused
|
||
IceModifier: skip 1 ; - - - g - - - i | Flipping either sets ice physics
|
||
InfiniteArrows: skip 1 ; Setting these to $01 will give infinite ammo. Set by
|
||
InfiniteBombs: skip 1 ; EscapeAssist.
|
||
InfiniteMagic: skip 1 ;
|
||
ControllerInverter: skip 1 ; $01 = D-pad | $02 = Buttons | $03 = Buttons and D-Pad
|
||
; >=$04 = Swap buttons and D-pad
|
||
OHKOFlag: skip 1 ; Any non-zero write sets OHKO mode
|
||
SpriteSwapper: skip 1 ; Loads new link sprite and glove/armor palette. No gfx or
|
||
; code currently in base ROM for this.
|
||
BootsModifier: skip 1 ; $01 = Give dash ability
|
||
skip 1 ; Unused
|
||
; Crypto Block ($7F50D0 - $7F51FF)
|
||
KeyBase: skip $10 ;
|
||
y: skip 4 ;
|
||
z: skip 4 ;
|
||
Sum: skip 4 ;
|
||
p: skip 4 ;
|
||
e: skip 2 ;
|
||
CryptoScratch: skip $0E ;
|
||
CryptoBuffer: ;
|
||
v: skip $100 ;
|
||
RNGPointers: skip $100 ; Pointers for static RNG
|
||
; Network I/O block. See servicerequest.asm. Rx and Tx channels
|
||
; also allocated 8 persistent bytes each in sram.asm.
|
||
RxBuffer: skip $7F ;
|
||
RxStatus: skip 1 ;
|
||
TxBuffer: skip $7F ;
|
||
TxStatus: skip 1 ;
|
||
skip $10 ; Unused
|
||
CompassTotalsWRAM: skip $10 ; skip $10
|
||
skip $40 ; Reserved for general dungeon tracking data. May have over
|
||
; allocated here. Feel free to reassign.
|
||
skip $40 ; Unused
|
||
skip $260 ; Unused
|
||
DialogBuffer: skip $100 ; Dialog Buffer
|
||
|
||
MiniGameTime = $7FFE00 ; Time spent in mini game. 32-bits.
|
||
MiniGameTimeFinal = $7FFE04 ; Final mini game time. 32 bits.
|
||
|
||
;================================================================================
|
||
; RAM Assertions
|
||
;--------------------------------------------------------------------------------
|
||
macro assertRAM(label, address)
|
||
assert <label> = <address>, "<label> labeled at incorrect address."
|
||
endmacro
|
||
|
||
%assertRAM(Scrap00, $7E0000)
|
||
%assertRAM(Scrap01, $7E0001)
|
||
%assertRAM(Scrap02, $7E0002)
|
||
%assertRAM(Scrap03, $7E0003)
|
||
%assertRAM(Scrap04, $7E0004)
|
||
%assertRAM(Scrap05, $7E0005)
|
||
%assertRAM(Scrap06, $7E0006)
|
||
%assertRAM(Scrap07, $7E0007)
|
||
%assertRAM(Scrap08, $7E0008)
|
||
%assertRAM(Scrap09, $7E0009)
|
||
%assertRAM(Scrap0A, $7E000A)
|
||
%assertRAM(Scrap0B, $7E000B)
|
||
%assertRAM(Scrap0C, $7E000C)
|
||
%assertRAM(Scrap0D, $7E000D)
|
||
%assertRAM(Scrap0E, $7E000E)
|
||
%assertRAM(Scrap0F, $7E000F)
|
||
%assertRAM(GameMode, $7E0010)
|
||
%assertRAM(GameSubMode, $7E0011)
|
||
%assertRAM(FrameCounter, $7E001A)
|
||
%assertRAM(IndoorsFlag, $7E001B)
|
||
%assertRAM(LinkPosY, $7E0020)
|
||
%assertRAM(LinkPosX, $7E0022)
|
||
%assertRAM(LinkPosZ, $7E0024)
|
||
%assertRAM(LinkRecoilY, $7E0027)
|
||
%assertRAM(LinkRecoilX, $7E0028)
|
||
%assertRAM(LinkRecoilZ, $7E0029)
|
||
%assertRAM(LinkDirection, $7E002F)
|
||
%assertRAM(OAMOffsetY, $7E0044)
|
||
%assertRAM(OAMOffsetX, $7E0045)
|
||
%assertRAM(LinkJumping, $7E004D)
|
||
%assertRAM(BunnyFlagDP, $7E0056)
|
||
%assertRAM(LinkSlipping, $7E005B)
|
||
%assertRAM(FallTimer, $7E005C)
|
||
%assertRAM(LinkState, $7E005D)
|
||
%assertRAM(LinkSpeed, $7E005E)
|
||
%assertRAM(OverworldIndex, $7E008A)
|
||
%assertRAM(OverlayID, $7E008C)
|
||
%assertRAM(RoomIndex, $7E00A0)
|
||
%assertRAM(PreviousRoom, $7E00A2)
|
||
%assertRAM(SubSubModule, $7E00B0)
|
||
%assertRAM(ObjPtr, $7E00B7)
|
||
%assertRAM(ObjPtrOffset, $7E00BA)
|
||
%assertRAM(ScrapBufferBD, $7E00BD)
|
||
%assertRAM(PlayerSpriteBank, $7E00BC)
|
||
%assertRAM(FileSelectPosition, $7E00C8)
|
||
%assertRAM(PasswordCodePosition, $7E00C8)
|
||
%assertRAM(PasswordSelectPosition, $7E00C9)
|
||
%assertRAM(BG1H, $7E00E0)
|
||
%assertRAM(BG2H, $7E00E2)
|
||
%assertRAM(BG3HOFSQL, $7E00E4)
|
||
%assertRAM(BG1V, $7E00E6)
|
||
%assertRAM(BG2V, $7E00E8)
|
||
%assertRAM(BG3VOFSQL, $7E00EA)
|
||
%assertRAM(LinkLayer, $7E00EE)
|
||
%assertRAM(CurrentMSUTrack, $7E010B)
|
||
%assertRAM(GameModeCache, $7E010C)
|
||
%assertRAM(GameSubModeCache, $7E010D)
|
||
%assertRAM(MedallionFlag, $7E0112)
|
||
%assertRAM(BG1ShakeV, $7E011A)
|
||
%assertRAM(BG1ShakeH, $7E011C)
|
||
%assertRAM(CurrentVolume, $7E0127)
|
||
%assertRAM(TargetVolume, $7E0129)
|
||
%assertRAM(CurrentControlRequest, $7E0133)
|
||
%assertRAM(MusicControl, $7E012B)
|
||
%assertRAM(MusicControlRequest, $7E012C)
|
||
%assertRAM(SFX1, $7E012D)
|
||
%assertRAM(SFX2, $7E012E)
|
||
%assertRAM(SFX3, $7E012F)
|
||
%assertRAM(SubModuleInterface, $7E0200)
|
||
%assertRAM(ItemCursor, $7E0202)
|
||
%assertRAM(BottleMenuCounter, $7E0205)
|
||
%assertRAM(MenuBlink, $7E0207)
|
||
%assertRAM(ItemReceiptID, $7E02D8)
|
||
%assertRAM(BunnyFlag, $7E02E0)
|
||
%assertRAM(CutsceneFlag, $7E02E4)
|
||
%assertRAM(ItemReceiptMethod, $7E02E9)
|
||
%assertRAM(TileActBE, $7E02EF)
|
||
%assertRAM(CurrentYItem, $7E0303)
|
||
%assertRAM(TileActDig, $7E035B)
|
||
%assertRAM(ForceSwordUp, $7E03EF)
|
||
%assertRAM(ItemsTaken, $7E0403)
|
||
%assertRAM(DungeonID, $7E040C)
|
||
%assertRAM(OWEntranceCutscene, $7E04C6)
|
||
%assertRAM(HeartBeepTimer, $7E04CA)
|
||
%assertRAM(NMIAux, $7E0632)
|
||
%assertRAM(SkipOAM, $7E0710)
|
||
%assertRAM(BowDryFire, $7E0B9A)
|
||
%assertRAM(SaveFileIndex, $7E0B9D)
|
||
%assertRAM(SpritePosYLow, $7E0D00)
|
||
%assertRAM(SpritePosXLow, $7E0D10)
|
||
%assertRAM(SpritePosYHigh, $7E0D20)
|
||
%assertRAM(SpritePosXHigh, $7E0D30)
|
||
%assertRAM(SpriteVelocityY, $7E0D40)
|
||
%assertRAM(SpriteVelocityX, $7E0D50)
|
||
%assertRAM(SpriteUnknown, $7E0D80)
|
||
%assertRAM(SpriteAuxTable, $7E0DA0)
|
||
%assertRAM(SpriteGFXControl, $7E0DC0)
|
||
%assertRAM(SpriteAITable, $7E0DD0)
|
||
%assertRAM(SpriteTimer, $7E0DF0)
|
||
%assertRAM(SpriteTypeTable, $7E0E20)
|
||
%assertRAM(SpriteItemType, $7E0E80)
|
||
%assertRAM(SpriteDirectionTable, $7E0EB0)
|
||
%assertRAM(FreezeSprites, $7E0FC1)
|
||
%assertRAM(SpriteCoordCacheX, $7E0FD8)
|
||
%assertRAM(SpriteCoordCacheY, $7E0FDA)
|
||
%assertRAM(NoMenu, $7E0FFC)
|
||
%assertRAM(TextID, $7E1CF0)
|
||
%assertRAM(ToastBuffer, $7E1E0E)
|
||
%assertRAM(MSUResumeTime, $7E1E6B)
|
||
%assertRAM(MSUResumeControl, $7E1E6F)
|
||
%assertRAM(MSUFallbackTable, $7E1E70)
|
||
%assertRAM(MSUDelayedCommand, $7E1E79)
|
||
%assertRAM(MSUPackCount, $7E1E7A)
|
||
%assertRAM(MSUPackCurrent, $7E1E7B)
|
||
%assertRAM(MSUPackRequest, $7E1E7C)
|
||
%assertRAM(MSULoadedTrack, $7E1E7D)
|
||
%assertRAM(MSUResumeTrack, $7E1E7F)
|
||
%assertRAM(ClockHours, $7E1E90)
|
||
%assertRAM(ClockMinutes, $7E1E94)
|
||
%assertRAM(ClockSeconds, $7E1E98)
|
||
%assertRAM(ClockBuffer, $7E1E9C)
|
||
%assertRAM(ScratchBufferNV, $7E1EA0)
|
||
%assertRAM(ScratchBufferV, $7E1EB0)
|
||
%assertRAM(TileUploadBuffer, $7EA180)
|
||
%assertRAM(SpriteOAM, $7EC025)
|
||
%assertRAM(HUDKeyIcon, $7EC726)
|
||
%assertRAM(HUDGoalIndicator, $7EC72A)
|
||
%assertRAM(HUDPrizeIcon, $7EC742)
|
||
%assertRAM(HUDRupees, $7EC750)
|
||
%assertRAM(HUDBombCount, $7EC75A)
|
||
%assertRAM(HUDArrowCount, $7EC760)
|
||
%assertRAM(HUDKeyDigits, $7EC764)
|
||
%assertRAM(BigRAM, $7EC900)
|
||
|
||
%assertRAM(DecompressionBuffer, $7F0000)
|
||
%assertRAM(RedrawFlag, $7F5000)
|
||
%assertRAM(HexToDecDigit1, $7F5003)
|
||
%assertRAM(HexToDecDigit2, $7F5004)
|
||
%assertRAM(HexToDecDigit3, $7F5005)
|
||
%assertRAM(HexToDecDigit4, $7F5006)
|
||
%assertRAM(HexToDecDigit5, $7F5007)
|
||
%assertRAM(SpriteSkipEOR, $7F5008)
|
||
%assertRAM(AltTextFlag, $7F5035)
|
||
%assertRAM(BossKills, $7F5037)
|
||
%assertRAM(LagTime, $7F5038)
|
||
%assertRAM(RupeesCollected, $7F503C)
|
||
%assertRAM(NonChestCounter, $7F503E)
|
||
%assertRAM(TileUploadOffsetOverride, $7F5042)
|
||
%assertRAM(ShopId, $7F5050)
|
||
%assertRAM(ShopType, $7F5051)
|
||
%assertRAM(ShopInventory, $7F5052)
|
||
%assertRAM(ShopState, $7F505F)
|
||
%assertRAM(ShopCapacity, $7F5060)
|
||
%assertRAM(ShopScratch, $7F5061)
|
||
%assertRAM(ShopSRAMIndex, $7F5062)
|
||
%assertRAM(ShopMerchant, $7F5063)
|
||
%assertRAM(ShopPriceColumn, $7F5066)
|
||
%assertRAM(OneMindId, $7F5072)
|
||
%assertRAM(OneMindTimerRAM, $7F5073)
|
||
%assertRAM(ClockStatus, $7F507E)
|
||
%assertRAM(RNGLockIn, $7F5090)
|
||
%assertRAM(BusyItem, $7F5091)
|
||
%assertRAM(BusyHealth, $7F5092)
|
||
%assertRAM(BusyMagic, $7F5093)
|
||
%assertRAM(DialogOffsetPointer, $7F5094)
|
||
%assertRAM(DialogReturnPointer, $7F5096)
|
||
%assertRAM(PreviousOverworldDoor, $7F5099)
|
||
%assertRAM(DuckMapFlag, $7F509C)
|
||
%assertRAM(StalfosBombDamage, $7F509D)
|
||
%assertRAM(ValidKeyLoaded, $7F509E)
|
||
%assertRAM(TextBoxDefer, $7F509F)
|
||
%assertRAM(SwordModifier, $7F50C0)
|
||
%assertRAM(ShieldModifier, $7F50C1)
|
||
%assertRAM(ArmorModifier, $7F50C2)
|
||
%assertRAM(MagicModifier, $7F50C3)
|
||
%assertRAM(LightConeModifier, $7F50C4)
|
||
%assertRAM(CuccoStormer, $7F50C5)
|
||
%assertRAM(OldManDash, $7F50C6)
|
||
%assertRAM(IceModifier, $7F50C7)
|
||
%assertRAM(InfiniteArrows, $7F50C8)
|
||
%assertRAM(InfiniteBombs, $7F50C9)
|
||
%assertRAM(InfiniteMagic, $7F50CA)
|
||
%assertRAM(ControllerInverter, $7F50CB)
|
||
%assertRAM(OHKOFlag, $7F50CC)
|
||
%assertRAM(SpriteSwapper, $7F50CD)
|
||
%assertRAM(BootsModifier, $7F50CE)
|
||
%assertRAM(KeyBase, $7F50D0)
|
||
%assertRAM(y, $7F50E0)
|
||
%assertRAM(z, $7F50E4)
|
||
%assertRAM(Sum, $7F50E8)
|
||
%assertRAM(p, $7F50EC)
|
||
%assertRAM(e, $7F50F0)
|
||
%assertRAM(CryptoScratch, $7F50F2)
|
||
%assertRAM(CryptoBuffer, $7F5100)
|
||
%assertRAM(v, $7F5100)
|
||
%assertRAM(RNGPointers, $7F5200)
|
||
%assertRAM(RxBuffer, $7F5300)
|
||
%assertRAM(RxStatus, $7F537F)
|
||
%assertRAM(TxBuffer, $7F5380)
|
||
%assertRAM(TxStatus, $7F53FF)
|
||
%assertRAM(CompassTotalsWRAM, $7F5410)
|
||
%assertRAM(DialogBuffer, $7F5700)
|
||
%assertRAM(MiniGameTime, $7FFE00)
|
||
%assertRAM(MiniGameTimeFinal, $7FFE04)
|
||
|
||
pullpc
|