summaryrefslogtreecommitdiff
path: root/hram.asm
diff options
context:
space:
mode:
Diffstat (limited to 'hram.asm')
-rw-r--r--hram.asm132
1 files changed, 89 insertions, 43 deletions
diff --git a/hram.asm b/hram.asm
index 4beca9c4..ab18b8c9 100644
--- a/hram.asm
+++ b/hram.asm
@@ -1,3 +1,5 @@
+hDMARoutine EQU $FF80
+
hSoftReset EQU $FF8A
; Initialized to 16.
; Decremented each input iteration if the player
@@ -26,17 +28,17 @@ hSlideAmount EQU $FF8B
hRLEByteValue EQU $FF8B
-H_SPRITEWIDTH EQU $FF8B ; in tiles
-H_SPRITEINTERLACECOUNTER EQU $FF8B
-H_SPRITEHEIGHT EQU $FF8C ; in tiles
-H_SPRITEOFFSET EQU $FF8D
+hSpriteWidth EQU $FF8B ; in tiles
+hSpriteInterlaceCounter EQU $FF8B
+hSpriteHeight EQU $FF8C ; in tiles
+hSpriteOffset EQU $FF8D
; counters for blinking down arrow
-H_DOWNARROWBLINKCNT1 EQU $FF8B
-H_DOWNARROWBLINKCNT2 EQU $FF8C
+hDownArrowBlinkCount1 EQU $FF8B
+hDownArrowBlinkCount2 EQU $FF8C
-H_SPRITEDATAOFFSET EQU $FF8B
-H_SPRITEINDEX EQU $FF8C
+hSpriteDataOffset EQU $FF8B
+hSpriteIndex EQU $FF8C
hMapStride EQU $FF8B
hMapWidth EQU $FF8C
@@ -81,6 +83,11 @@ hOAMBufferOffset EQU $FF90
hSpriteScreenX EQU $FF91
hSpriteScreenY EQU $FF92
+hFF8F EQU $FF8F
+hFF90 EQU $FF90
+hFF91 EQU $FF91
+hFF92 EQU $FF92
+
hTilePlayerStandingOn EQU $FF93
hSpritePriority EQU $FF94
@@ -90,35 +97,41 @@ hSignCoordPointer EQU $FF95
hNPCMovementDirections2Index EQU $FF95
+hSwapItemID EQU $FF95
+hSwapItemQuantity EQU $FF96
+
; CalcPositionOfPlayerRelativeToNPC
hNPCSpriteOffset EQU $FF95
-; temp value used when swapping bytes
+; temp value used when swapping bytes or words
hSwapTemp EQU $FF95
hExperience EQU $FF96 ; 3 bytes, big endian
+hMutateWY EQU $FF96
+hMutateWX EQU $FF97
+
; Multiplication and division variables are meant
; to overlap for back-to-back usage. Big endian.
-H_MULTIPLICAND EQU $FF96 ; 3 bytes
-H_MULTIPLIER EQU $FF99 ; 1 byte
-H_PRODUCT EQU $FF95 ; 4 bytes
+hMultiplicand EQU $FF96 ; 3 bytes
+hMultiplier EQU $FF99 ; 1 byte
+hProduct EQU $FF95 ; 4 bytes
-H_DIVIDEND EQU $FF95 ; 4 bytes
-H_DIVISOR EQU $FF99 ; 1 byte
-H_QUOTIENT EQU $FF95 ; 4 bytes
-H_REMAINDER EQU $FF99 ; 1 byte
+hDividend EQU $FF95 ; 4 bytes
+hDivisor EQU $FF99 ; 1 byte
+hQuotient EQU $FF95 ; 4 bytes
+hRemainder EQU $FF99 ; 1 byte
-H_DIVIDEBUFFER EQU $FF9A
+hDivideBuffer EQU $FF9A
-H_MULTIPLYBUFFER EQU $FF9B
+hMultiplyBuffer EQU $FF9B
; PrintNumber (big endian).
-H_PASTLEADINGZEROES EQU $FF95 ; last char printed
-H_NUMTOPRINT EQU $FF96 ; 3 bytes
-H_POWEROFTEN EQU $FF99 ; 3 bytes
-H_SAVEDNUMTOPRINT EQU $FF9C ; 3 bytes
+hPastLeadingZeros EQU $FF95 ; last char printed
+hNumToPrint EQU $FF96 ; 3 bytes
+hPowerOf10 EQU $FF99 ; 3 bytes
+hSavedNumToPrint EQU $FF9C ; 3 bytes
; distance in steps between NPC and player
hNPCPlayerYDistance EQU $FF95
@@ -183,14 +196,14 @@ hJoy5 EQU $FFB5
hJoy6 EQU $FFB6
hJoy7 EQU $FFB7
-H_LOADEDROMBANK EQU $FFB8
+hLoadedROMBank EQU $FFB8
hSavedROMBank EQU $FFB9
; is automatic background transfer during V-blank enabled?
; if nonzero, yes
; if zero, no
-H_AUTOBGTRANSFERENABLED EQU $FFBA
+hAutoBGTransferEnabled EQU $FFBA
TRANSFERTOP EQU 0
TRANSFERMIDDLE EQU 1
@@ -199,45 +212,47 @@ TRANSFERBOTTOM EQU 2
; 00 = top third of background
; 01 = middle third of background
; 02 = bottom third of background
-H_AUTOBGTRANSFERPORTION EQU $FFBB
+hAutoBGTransferPortion EQU $FFBB
; the destination address of the automatic background transfer
-H_AUTOBGTRANSFERDEST EQU $FFBC ; 2 bytes
+hAutoBGTransferDest EQU $FFBC ; 2 bytes
+
+hRedrawMapViewRowOffset EQU $FFBE
; temporary storage for stack pointer during memory transfers that use pop
; to increase speed
-H_SPTEMP EQU $FFBF ; 2 bytes
+hSPTemp EQU $FFBF ; 2 bytes
; source address for VBlankCopyBgMap function
; the first byte doubles as the byte that enabled the transfer.
; if it is 0, the transfer is disabled
; if it is not 0, the transfer is enabled
; this means that XX00 is not a valid source address
-H_VBCOPYBGSRC EQU $FFC1 ; 2 bytes
+hVBlankCopyBGSource EQU $FFC1 ; 2 bytes
; destination address for VBlankCopyBgMap function
-H_VBCOPYBGDEST EQU $FFC3 ; 2 bytes
+hVBlankCopyBGDest EQU $FFC3 ; 2 bytes
; number of rows for VBlankCopyBgMap to copy
-H_VBCOPYBGNUMROWS EQU $FFC5
+hVBlankCopyBGNumRows EQU $FFC5
; size of VBlankCopy transfer in 16-byte units
-H_VBCOPYSIZE EQU $FFC6
+hVBlankCopySize EQU $FFC6
; source address for VBlankCopy function
-H_VBCOPYSRC EQU $FFC7
+hVBlankCopySource EQU $FFC7
; destination address for VBlankCopy function
-H_VBCOPYDEST EQU $FFC9
+hVBlankCopyDest EQU $FFC9
; size of source data for VBlankCopyDouble in 8-byte units
-H_VBCOPYDOUBLESIZE EQU $FFCB
+hVBlankCopyDoubleSize EQU $FFCB
; source address for VBlankCopyDouble function
-H_VBCOPYDOUBLESRC EQU $FFCC
+hVBlankCopyDoubleSource EQU $FFCC
; destination address for VBlankCopyDouble function
-H_VBCOPYDOUBLEDEST EQU $FFCE
+hVBlankCopyDoubleDest EQU $FFCE
; controls whether a row or column of 2x2 tile blocks is redrawn in V-blank
; 00 = no redraw
@@ -253,12 +268,12 @@ hRedrawRowOrColumnDest EQU $FFD1
hRandomAdd EQU $FFD3
hRandomSub EQU $FFD4
-H_FRAMECOUNTER EQU $FFD5 ; decremented every V-blank (used for delays)
+hFrameCounter EQU $FFD5 ; decremented every V-blank (used for delays)
; V-blank sets this to 0 each time it runs.
; So, by setting it to a nonzero value and waiting for it to become 0 again,
; you can detect that the V-blank handler has run since then.
-H_VBLANKOCCURRED EQU $FFD6
+hVBlankOccurred EQU $FFD6
; 00 = indoor
; 01 = cave
@@ -268,11 +283,12 @@ hTilesetType EQU $FFD7
hMovingBGTilesCounter1 EQU $FFD8
-H_CURRENTSPRITEOFFSET EQU $FFDA ; multiple of $10
+hCurrentSpriteOffset EQU $FFDA ; multiple of $10
hItemCounter EQU $FFDB
-hGymGateIndex EQU $FFDB
+hGymGateIndex EQU $FFDB
+hGymGateAnswer EQU $FFDC
hGymTrashCanRandNumMask EQU $FFDB
@@ -285,40 +301,70 @@ hDexRatingNumMonsOwned EQU $FFDC
; $FF = player cancelled
hOaksAideResult EQU $FFDB
+hSavedCoordIndex EQU $FFDB
+
hOaksAideRequirement EQU $FFDB ; required number of owned mons
hOaksAideRewardItem EQU $FFDC
hOaksAideNumMonsOwned EQU $FFDD
+hPlayerFacing EQU $FFDB
+hPlayerYCoord EQU $FFDC
+hPlayerXCoord EQU $FFDD
+
+hMissableObjectIndex EQU $FFDB
+
hItemToRemoveID EQU $FFDB
hItemToRemoveIndex EQU $FFDC
hVendingMachineItem EQU $FFDB
hVendingMachinePrice EQU $FFDC ; 3-byte BCD number
+hFFDB EQU $FFDB
+hFFDC EQU $FFDC
+
+hBackupGymGateIndex EQU $FFE0
+
+hUnlockedSilphCoDoors EQU $FFE0
+
; the first tile ID in a sequence of tile IDs that increase by 1 each step
hStartTileID EQU $FFE1
hNewPartyLength EQU $FFE4
+hIsHiddenMissableObject EQU $FFE5
+
hDividend2 EQU $FFE5
hDivisor2 EQU $FFE6
hQuotient2 EQU $FFE7
+hMapROMBank EQU $FFE8
+
hSpriteVRAMSlotAndFacing EQU $FFE9
hCoordsInFrontOfPlayerMatch EQU $FFEA
hSpriteAnimFrameCounter EQU $FFEA
-H_WHOSETURN EQU $FFF3 ; 0 on player’s turn, 1 on enemy’s turn
+hSpriteScreenYCoord EQU $FFEB
+hSpriteScreenXCoord EQU $FFEC
+hSpriteMapYCoord EQU $FFED
+hSpriteMapXCoord EQU $FFEE
+
+hFoundHiddenObjectOrBookshelf EQU $FFEB
+hFoundHiddenObject EQU $FFEE
+
+hSavedMapTextPtr EQU $FFEC
+
+hWhoseTurn EQU $FFF3 ; 0 on player’s turn, 1 on enemy’s turn
+
+hClearLetterPrintingDelayFlags EQU $FFF4
; bit 0: draw HP fraction to the right of bar instead of below (for party menu)
; bit 1: menu is double spaced
-hFlags_0xFFF6 EQU $FFF6
+hFlagsFFF6 EQU $FFF6
hFieldMoveMonMenuTopMenuItemX EQU $FFF7
hDisableJoypadPolling EQU $FFF9
hJoyInput EQU $FFF8
-