diff options
Diffstat (limited to 'hram.asm')
-rw-r--r-- | hram.asm | 302 |
1 files changed, 170 insertions, 132 deletions
@@ -1,132 +1,170 @@ -; HRAM uses constants instead of labels so that -; "ld a, [hAddress]" and "ld [hAddress], a" will -; use the more efficient "ldh" instruction. - -hTransferVirtualOAM EQU $ff80 ; 10 bytes - -hROMBankBackup EQU $ff8a -hBuffer EQU $ff8b -hFF8C EQU $ff8c -hRTCDayHi EQU $ff8d -hRTCDayLo EQU $ff8e -hRTCHours EQU $ff8f -hRTCMinutes EQU $ff90 -hRTCSeconds EQU $ff91 - -hHours EQU $ff94 - -hMinutes EQU $ff96 - -hSeconds EQU $ff98 - -hVBlankCounter EQU $ff9b - -hROMBank EQU $ff9d -hVBlank EQU $ff9e -hMapEntryMethod EQU $ff9f -hMenuReturn EQU $ffa0 - -hJoypadReleased EQU $ffa2 -hJoypadPressed EQU $ffa3 -hJoypadDown EQU $ffa4 -hJoypadSum EQU $ffa5 -hJoyReleased EQU $ffa6 -hJoyPressed EQU $ffa7 -hJoyDown EQU $ffa8 -hJoyLast EQU $ffa9 -hInMenu EQU $ffaa - -hPrinter EQU $ffac -hGraphicStartTile EQU $ffad -hMoveMon EQU $ffae - -hMapObjectIndexBuffer EQU $ffaf -hObjectStructIndexBuffer EQU $ffb0 - -hConnectionStripLength EQU $ffaf -hConnectedMapWidth EQU $ffb0 - -hPastLeadingZeroes EQU $ffb3 - -hEnemyMonSpeed EQU $ffb1 -hPartyMon1Speed EQU $ffb5 - -hDividend EQU $ffb3 ; length in b register, before 'call Divide' (max 4 bytes) -hDivisor EQU $ffb7 ; 1 byte long -hQuotient EQU $ffb4 ; result (3 bytes long) -hRemainder EQU $ffb7 - -hMultiplicand EQU $ffb4 ; 3 bytes long -hMultiplier EQU $ffb7 ; 1 byte long -hProduct EQU $ffb3 ; result (4 bytes long) - -hMathBuffer EQU $ffb8 - -hPrintNum1 EQU $ffb3 -hPrintNum2 EQU $ffb4 -hPrintNum3 EQU $ffb5 -hPrintNum4 EQU $ffb6 -hPrintNum5 EQU $ffb7 -hPrintNum6 EQU $ffb8 -hPrintNum7 EQU $ffb9 -hPrintNum8 EQU $ffba -hPrintNum9 EQU $ffbb -hPrintNum10 EQU $ffbc - -hMGStatusFlags EQU $ffbc - -hUsedSpriteIndex EQU $ffbd -hUsedSpriteTile EQU $ffbe -hFFBF EQU $ffbf -hFFC0 EQU $ffc0 -hFFC1 EQU $ffc1 -hFFC2 EQU $ffc2 -hMoneyTemp EQU $ffc3 - -hMGJoypadPressed EQU $ffc3 -hMGJoypadReleased EQU $ffc4 - -hLCDCPointer EQU $ffc6 -hLYOverrideStart EQU $ffc7 -hLYOverrideEnd EQU $ffc8 - -hMobileReceive EQU $ffc9 -hSerialReceivedNewData EQU $ffca -hSerialConnectionStatus EQU $ffcb -hSerialIgnoringInitialData EQU $ffcc -hSerialSend EQU $ffcd -hSerialReceive EQU $ffce - -hSCX EQU $ffcf -hSCY EQU $ffd0 -hWX EQU $ffd1 -hWY EQU $ffd2 -hTilesPerCycle EQU $ffd3 -hBGMapMode EQU $ffd4 -hBGMapThird EQU $ffd5 -hBGMapAddress EQU $ffd6 - -hOAMUpdate EQU $ffd8 -hSPBuffer EQU $ffd9 - -hBGMapUpdate EQU $ffdb -hBGMapTileCount EQU $ffdc - -hMapAnims EQU $ffde -hTileAnimFrame EQU $ffdf - -hLastTalked EQU $ffe0 - -hRandom EQU $ffe1 -hRandomAdd EQU $ffe1 -hRandomSub EQU $ffe2 -hSecondsBackup EQU $ffe3 -hBattleTurn EQU $ffe4 ; Which trainers turn is it? 0: Player, 1: Opponent Trainer -hCGBPalUpdate EQU $ffe5 -hCGB EQU $ffe6 -hSGB EQU $ffe7 -hDMATransfer EQU $ffe8 -hMobile EQU $ffe9 -hSystemBooted EQU $ffea -hClockResetTrigger EQU $ffeb -hFFEC EQU $ffec +SECTION "HRAM", HRAM + +hTransferVirtualOAM:: ds 10 ; ff80 + +hROMBankBackup:: db ; ff8a +hBuffer:: db ; ff8b +hFF8C:: db ; ff8c + +hRTCDayHi:: db ; ff8d +hRTCDayLo:: db ; ff8e +hRTCHours:: db ; ff8f +hRTCMinutes:: db ; ff90 +hRTCSeconds:: db ; ff91 + + ds 2 + +hHours:: db ; ff94 + ds 1 +hMinutes:: db ; ff96 + ds 1 +hSeconds:: db ; ff98 + ds 1 + + ds 1 + +hVBlankCounter:: db ; ff9b + + ds 1 + +hROMBank:: db ; ff9d +hVBlank:: db ; ff9e +hMapEntryMethod:: db ; ff9f +hMenuReturn:: db ; ffa0 + + ds 1 + +hJoypadReleased:: db ; ffa2 +hJoypadPressed:: db ; ffa3 +hJoypadDown:: db ; ffa4 +hJoypadSum:: db ; ffa5 +hJoyReleased:: db ; ffa6 +hJoyPressed:: db ; ffa7 +hJoyDown:: db ; ffa8 +hJoyLast:: db ; ffa9 + +hInMenu:: db ; ffaa + + ds 1 + +hPrinter:: db ; ffac +hGraphicStartTile:: db ; ffad +hMoveMon:: db ; ffae + +UNION ; ffaf +hMapObjectIndexBuffer:: db ; ffaf +hObjectStructIndexBuffer:: db ; ffb0 +NEXTU ; ffaf +hConnectionStripLength:: db ; ffaf +hConnectedMapWidth:: db ; ffb0 +ENDU ; ffb1 + +hEnemyMonSpeed:: dw ; ffb1 + +UNION ; ffb3 +; miscellaneous + ds 2 +hPartyMon1Speed:: dw ; ffb5 + ds 5 +hMGStatusFlags:: db ; ffbc + +NEXTU ; ffb3 +; inputs to Multiply + ds 1 +hMultiplicand:: ds 3 ; ffb4 +hMultiplier:: db ; ffb7 + +NEXTU ; ffb3 +; result of Multiply +hProduct:: ds 4 ; ffb3 + +NEXTU ; ffb3 +; inputs to Divide +hDividend:: ds 4 ; ffb3 +hDivisor:: db ; ffb7 + +NEXTU ; ffb3 +; results of Divide + ds 1 +hQuotient:: ds 3 ; ffb4 +hRemainder:: db ; ffb7 + +NEXTU ; ffb3 +; math-related scratch space + ds 5 +hMathBuffer:: ds 5 ; ffb8 + +NEXTU ; ffb3 +; PrintNum scratch space +hPrintNumBuffer:: ds 10 ; ffb3 +ENDU ; ffbd + +hUsedSpriteIndex:: db ; ffbd +hUsedSpriteTile:: db ; ffbe +hFFBF:: db ; ffbf +hFFC0:: db ; ffc0 +hFFC1:: db ; ffc1 +hFFC2:: db ; ffc2 + +UNION ; ffc3 +hMoneyTemp:: ds 3 ; ffc3 +NEXTU ; ffc3 +hMGJoypadPressed:: db ; ffc3 +hMGJoypadReleased:: db ; ffc4 +ENDU ; ffc6 + +hLCDCPointer:: db ; ffc6 +hLYOverrideStart:: db ; ffc7 +hLYOverrideEnd:: db ; ffc8 + +hMobileReceive:: db ; ffc9 +hSerialReceivedNewData:: db ; ffca +hSerialConnectionStatus:: db ; ffcb +hSerialIgnoringInitialData:: db ; ffcc +hSerialSend:: db ; ffcd +hSerialReceive:: db ; ffce + +hSCX:: db ; ffcf +hSCY:: db ; ffd0 +hWX:: db ; ffd1 +hWY:: db ; ffd2 +hTilesPerCycle:: db ; ffd3 +hBGMapMode:: db ; ffd4 +hBGMapThird:: db ; ffd5 +hBGMapAddress:: db ; ffd6 + + ds 1 + +hOAMUpdate:: db ; ffd8 + +hSPBuffer:: dw ; ffd9 + +hBGMapUpdate:: db ; ffdb +hBGMapTileCount:: db ; ffdc + + ds 1 + +hMapAnims:: db ; ffde +hTileAnimFrame:: db ; ffdf + +hLastTalked:: db ; ffe0 + +hRandom:: +hRandomAdd:: db ; ffe1 +hRandomSub:: db ; ffe2 + +hSecondsBackup:: db ; ffe3 + +hBattleTurn:: ; ffe4 +; Which trainer's turn is it? 0: player, 1: opponent trainer + db + +hCGBPalUpdate:: db ; ffe5 +hCGB:: db ; ffe6 +hSGB:: db ; ffe7 + +hDMATransfer:: db ; ffe8 +hMobile:: db ; ffe9 +hSystemBooted:: db ; ffea +hClockResetTrigger:: db ; ffeb +hFFEC:: db ; ffec |