summaryrefslogtreecommitdiff
path: root/home.asm
diff options
context:
space:
mode:
Diffstat (limited to 'home.asm')
-rw-r--r--home.asm549
1 files changed, 273 insertions, 276 deletions
diff --git a/home.asm b/home.asm
index a06d2b7b..4bcf2d4d 100644
--- a/home.asm
+++ b/home.asm
@@ -117,8 +117,7 @@ INCLUDE "home/joypad.asm"
INCLUDE "data/map_header_pointers.asm"
INCLUDE "home/overworld.asm"
-
-CheckForUserInterruption:: ; 12f8 (0:12f8)
+CheckForUserInterruption::
; Return carry if Up+Select+B, Start or A are pressed in c frames.
; Used only in the intro and title screen.
call DelayFrame
@@ -148,7 +147,7 @@ CheckForUserInterruption:: ; 12f8 (0:12f8)
; function to load position data for destination warp when switching maps
; INPUT:
; a = ID of destination warp within destination map
-LoadDestinationWarpPosition:: ; 1313 (0:1313)
+LoadDestinationWarpPosition::
ld b,a
ld a,[H_LOADEDROMBANK]
push af
@@ -170,7 +169,7 @@ LoadDestinationWarpPosition:: ; 1313 (0:1313)
ret
-DrawHPBar:: ; 1336 (0:1336)
+DrawHPBar::
; Draw an HP bar d tiles long, and fill it to e pixels.
; If c is nonzero, show at least a sliver regardless.
; The right end of the bar changes with [wHPBarType].
@@ -252,11 +251,10 @@ DrawHPBar:: ; 1336 (0:1336)
; [wcf91] = pokemon ID
; wLoadedMon = base address of pokemon data
; wMonHeader = base address of base stats
-LoadMonData:: ; 1372 (0:1372)
+LoadMonData::
jpab LoadMonData_
-
-OverwritewMoves:: ; 137a (0:137a)
+OverwritewMoves::
; Write c to [wMoves + b]. Unused.
ld hl, wMoves
ld e, b
@@ -266,11 +264,11 @@ OverwritewMoves:: ; 137a (0:137a)
ld [hl], a
ret
-LoadFlippedFrontSpriteByMonIndex:: ; 1384 (0:1384)
+LoadFlippedFrontSpriteByMonIndex::
ld a, 1
ld [wSpriteFlipped], a
-LoadFrontSpriteByMonIndex:: ; 1389 (0:1389)
+LoadFrontSpriteByMonIndex::
push hl
ld a, [wd11e]
push af
@@ -311,13 +309,13 @@ LoadFrontSpriteByMonIndex:: ; 1389 (0:1389)
ret
-PlayCry:: ; 13d0 (0:13d0)
+PlayCry::
; Play monster a's cry.
call GetCryData
call PlaySound
jp WaitForSoundToFinish
-GetCryData:: ; 13d9 (0:13d9)
+GetCryData::
; Load cry data for monster a.
dec a
ld c, a
@@ -327,7 +325,7 @@ GetCryData:: ; 13d9 (0:13d9)
add hl, bc
add hl, bc
- ld a, Bank(CryData)
+ ld a, BANK(CryData)
call BankswitchHome
ld a, [hli]
ld b, a ; cry id
@@ -347,8 +345,7 @@ GetCryData:: ; 13d9 (0:13d9)
add c
ret
-
-DisplayPartyMenu:: ; 13fc (0:13fc)
+DisplayPartyMenu::
ld a,[hTilesetType]
push af
xor a
@@ -359,7 +356,7 @@ DisplayPartyMenu:: ; 13fc (0:13fc)
call DrawPartyMenu
jp HandlePartyMenuInput
-GoBackToPartyMenu:: ; 1411 (0:1411)
+GoBackToPartyMenu::
ld a,[hTilesetType]
push af
xor a
@@ -368,7 +365,7 @@ GoBackToPartyMenu:: ; 1411 (0:1411)
call RedrawPartyMenu
jp HandlePartyMenuInput
-PartyMenuInit:: ; 1420 (0:1420)
+PartyMenuInit::
ld a, 1 ; hardcoded bank
call BankswitchHome
call LoadHpBarAndStatusTilePatterns
@@ -407,7 +404,7 @@ PartyMenuInit:: ; 1420 (0:1420)
ld [hl], a ; old menu item ID
ret
-HandlePartyMenuInput:: ; 145a (0:145a)
+HandlePartyMenuInput::
ld a,1
ld [wMenuWrappingEnabled],a
ld a,$40
@@ -463,14 +460,14 @@ HandlePartyMenuInput:: ; 145a (0:145a)
callba SwitchPartyMon
jr HandlePartyMenuInput
-DrawPartyMenu:: ; 14d4 (0:14d4)
+DrawPartyMenu::
ld hl, DrawPartyMenu_
jr DrawPartyMenuCommon
-RedrawPartyMenu:: ; 14d9 (0:14d9)
+RedrawPartyMenu::
ld hl, RedrawPartyMenu_
-DrawPartyMenuCommon:: ; 14dc (0:14dc)
+DrawPartyMenuCommon::
ld b, BANK(RedrawPartyMenu_)
jp Bankswitch
@@ -478,7 +475,7 @@ DrawPartyMenuCommon:: ; 14dc (0:14dc)
; INPUT:
; de = address of status condition
; hl = destination address
-PrintStatusCondition:: ; 14e1 (0:14e1)
+PrintStatusCondition::
push de
dec de
dec de ; de = address of current HP
@@ -495,7 +492,8 @@ PrintStatusCondition:: ; 14e1 (0:14e1)
ld [hl],"O"
and a
ret
-PrintStatusConditionNotFainted: ; 14f6
+
+PrintStatusConditionNotFainted:
ld a,[H_LOADEDROMBANK]
push af
ld a,BANK(PrintStatusAilment)
@@ -512,12 +510,12 @@ PrintStatusConditionNotFainted: ; 14f6
; INPUT:
; hl = destination address
; [wLoadedMonLevel] = level
-PrintLevel:: ; 150b (0:150b)
+PrintLevel::
ld a,$6e ; ":L" tile ID
ld [hli],a
ld c,2 ; number of digits
ld a,[wLoadedMonLevel] ; level
- cp a,100
+ cp 100
jr c,PrintLevelCommon
; if level at least 100, write over the ":L" tile
dec hl
@@ -528,19 +526,19 @@ PrintLevel:: ; 150b (0:150b)
; INPUT:
; hl = destination address
; [wLoadedMonLevel] = level
-PrintLevelFull:: ; 151b (0:151b)
+PrintLevelFull::
ld a,$6e ; ":L" tile ID
ld [hli],a
ld c,3 ; number of digits
ld a,[wLoadedMonLevel] ; level
-PrintLevelCommon:: ; 1523 (0:1523)
+PrintLevelCommon::
ld [wd11e],a
ld de,wd11e
ld b,LEFT_ALIGN | 1 ; 1 byte
jp PrintNumber
-GetwMoves:: ; 152e (0:152e)
+GetwMoves::
; Unused. Returns the move at index a from wMoves in a
ld hl,wMoves
ld c,a
@@ -552,7 +550,7 @@ GetwMoves:: ; 152e (0:152e)
; copies the base stat data of a pokemon to wMonHeader
; INPUT:
; [wd0b5] = pokemon ID
-GetMonHeader:: ; 1537 (0:1537)
+GetMonHeader::
ld a,[H_LOADEDROMBANK]
push af
ld a,BANK(BaseStats)
@@ -567,25 +565,25 @@ GetMonHeader:: ; 1537 (0:1537)
ld [wd11e],a
ld de,FossilKabutopsPic
ld b,$66 ; size of Kabutops fossil and Ghost sprites
- cp a,FOSSIL_KABUTOPS ; Kabutops fossil
+ cp FOSSIL_KABUTOPS ; Kabutops fossil
jr z,.specialID
ld de,GhostPic
- cp a,MON_GHOST ; Ghost
+ cp MON_GHOST ; Ghost
jr z,.specialID
ld de,FossilAerodactylPic
ld b,$77 ; size of Aerodactyl fossil sprite
- cp a,FOSSIL_AERODACTYL ; Aerodactyl fossil
+ cp FOSSIL_AERODACTYL ; Aerodactyl fossil
jr z,.specialID
cp a,MEW
jr z,.mew
predef IndexToPokedex ; convert pokemon ID in [wd11e] to pokedex number
ld a,[wd11e]
dec a
- ld bc,MonBaseStatsEnd - MonBaseStats
+ ld bc, MonBaseStatsEnd - MonBaseStats
ld hl,BaseStats
call AddNTimes
ld de,wMonHeader
- ld bc,MonBaseStatsEnd - MonBaseStats
+ ld bc, MonBaseStatsEnd - MonBaseStats
call CopyData
jr .done
.specialID
@@ -616,12 +614,12 @@ GetMonHeader:: ; 1537 (0:1537)
ret
; copy party pokemon's name to wcd6d
-GetPartyMonName2:: ; 15b4 (0:15b4)
+GetPartyMonName2::
ld a,[wWhichPokemon] ; index within party
ld hl,wPartyMonNicks
; this is called more often
-GetPartyMonName:: ; 15ba (0:15ba)
+GetPartyMonName::
push hl
push bc
call SkipFixedLengthTextEntries ; add NAME_LENGTH to hl, a times
@@ -647,7 +645,7 @@ GetPartyMonName:: ; 15ba (0:15ba)
; bits 0-4: length of BCD number in bytes
; Note that bits 5 and 7 are modified during execution. The above reflects
; their meaning at the beginning of the functions's execution.
-PrintBCDNumber:: ; 15cd (0:15cd)
+PrintBCDNumber::
ld b,c ; save flags in b
res 7,c
res 6,c
@@ -685,7 +683,7 @@ PrintBCDNumber:: ; 15cd (0:15cd)
.done
ret
-PrintBCDDigit:: ; 1604 (0:1604)
+PrintBCDDigit::
and $f
and a
jr z,.zeroDigit
@@ -701,7 +699,7 @@ PrintBCDDigit:: ; 1604 (0:1604)
.skipCurrencySymbol
res 7,b ; unset 7 to indicate that a nonzero digit has been reached
.outputDigit
- add a,"0"
+ add "0"
ld [hli],a
jp PrintLetterDelay
.zeroDigit
@@ -715,7 +713,7 @@ PrintBCDDigit:: ; 1604 (0:1604)
; uncompresses the front or back sprite of the specified mon
; assumes the corresponding mon header is already loaded
; hl contains offset to sprite pointer ($b for front or $d for back)
-UncompressMonSprite:: ; 1627 (0:1627)
+UncompressMonSprite::
ld bc,wMonHeader
add hl,bc
ld a,[hli]
@@ -760,7 +758,7 @@ UncompressMonSprite:: ; 1627 (0:1627)
jp UncompressSpriteData
; de: destination location
-LoadMonFrontSprite:: ; 1665 (0:1665)
+LoadMonFrontSprite::
push de
ld hl, wMonHFrontSprite - wMonHeader
call UncompressMonSprite
@@ -774,7 +772,7 @@ LoadMonFrontSprite:: ; 1665 (0:1665)
; calculates alignment parameters to place both sprite chunks in the center of the 7*7 tile sprite buffers
; de: destination location
; a,c: sprite dimensions (in tiles of 8x8 each)
-LoadUncompressedSpriteData:: ; 1672 (0:1672)
+LoadUncompressedSpriteData::
push de
and $f
ld [H_SPRITEWIDTH], a ; each byte contains 8 pixels (in 1bpp), so tiles=bytes for width
@@ -823,7 +821,7 @@ LoadUncompressedSpriteData:: ; 1672 (0:1672)
; copies and aligns the sprite data properly inside the sprite buffer
; sprite buffers are 7*7 tiles in size, the loaded sprite is centered within this area
-AlignSpriteDataCentered:: ; 16c2 (0:16c2)
+AlignSpriteDataCentered::
ld a, [H_SPRITEOFFSET]
ld b, $0
ld c, a
@@ -849,7 +847,7 @@ AlignSpriteDataCentered:: ; 16c2 (0:16c2)
ret
; fills the sprite buffer (pointed to in hl) with zeros
-ZeroSpriteBuffer:: ; 16df (0:16df)
+ZeroSpriteBuffer::
ld bc, SPRITEBUFFERSIZE
.nextByteLoop
xor a
@@ -863,7 +861,7 @@ ZeroSpriteBuffer:: ; 16df (0:16df)
; combines the (7*7 tiles, 1bpp) sprite chunks in buffer 0 and 1 into a 2bpp sprite located in buffer 1 through 2
; in the resulting sprite, the rows of the two source sprites are interlaced
; de: output address
-InterlaceMergeSpriteBuffers:: ; 16ea (0:16ea)
+InterlaceMergeSpriteBuffers::
xor a
ld [$4000], a
push de
@@ -922,7 +920,7 @@ INCLUDE "home/timer.asm"
INCLUDE "home/audio.asm"
-UpdateSprites:: ; 2429 (0:2429)
+UpdateSprites::
ld a, [wUpdateSpritesEnabled]
dec a
ret nz
@@ -939,34 +937,33 @@ UpdateSprites:: ; 2429 (0:2429)
INCLUDE "data/mart_inventories.asm"
-TextScriptEndingChar:: ; 24d6 (0:24d6)
+TextScriptEndingChar::
db "@"
-TextScriptEnd:: ; 24d7 (0:24d7)
+TextScriptEnd::
ld hl,TextScriptEndingChar
ret
-ExclamationText:: ; 24db (0:24db)
+ExclamationText::
TX_FAR _ExclamationText
db "@"
-GroundRoseText:: ; 24e0 (0:24e0)
+GroundRoseText::
TX_FAR _GroundRoseText
db "@"
-BoulderText:: ; 24e5 (0:24e5)
+BoulderText::
TX_FAR _BoulderText
db "@"
-MartSignText:: ; 24ea (0:24ea)
+MartSignText::
TX_FAR _MartSignText
db "@"
-PokeCenterSignText:: ; 24ef (0:24ef)
+PokeCenterSignText::
TX_FAR _PokeCenterSignText
db "@"
-PickUpItemText:: ; 24f4 (0:24f4)
-; XXX better label (what does predef $5C do?)
+PickUpItemText::
TX_ASM
predef PickUpItem
jp TextScriptEnd
@@ -975,7 +972,7 @@ PickUpItemText:: ; 24f4 (0:24f4)
INCLUDE "home/pic.asm"
-ResetPlayerSpriteData:: ; 28a6 (0:28a6)
+ResetPlayerSpriteData::
ld hl, wSpriteStateData1
call ResetPlayerSpriteData_ClearSpriteData
ld hl, wSpriteStateData2
@@ -991,22 +988,22 @@ ResetPlayerSpriteData:: ; 28a6 (0:28a6)
ret
; overwrites sprite data with zeroes
-ResetPlayerSpriteData_ClearSpriteData:: ; 28c4 (0:28c4)
+ResetPlayerSpriteData_ClearSpriteData::
ld bc, $10
xor a
jp FillMemory
-FadeOutAudio:: ; 28cb (0:28cb)
+FadeOutAudio::
ld a, [wAudioFadeOutControl]
- and a
- jr nz, .asm_28dc
+ and a ; currently fading out audio?
+ jr nz, .fadingOut
ld a, [wd72c]
bit 1, a
ret nz
ld a, $77
ld [rNR50], a
ret
-.asm_28dc
+.fadingOut
ld a, [wAudioFadeOutCounter]
and a
jr z, .counterReachedZero
@@ -1017,8 +1014,8 @@ FadeOutAudio:: ; 28cb (0:28cb)
ld a, [wAudioFadeOutCounterReloadValue]
ld [wAudioFadeOutCounter], a
ld a, [rNR50]
- and a
- jr z, .asm_2903
+ and a ; has the volume reached 0?
+ jr z, .fadeOutComplete
ld b, a
and $f
dec a
@@ -1031,7 +1028,7 @@ FadeOutAudio:: ; 28cb (0:28cb)
or c
ld [rNR50], a
ret
-.asm_2903
+.fadeOutComplete
ld a, [wAudioFadeOutControl]
ld b, a
xor a
@@ -1047,7 +1044,7 @@ FadeOutAudio:: ; 28cb (0:28cb)
; this function is used to display sign messages, sprite dialog, etc.
; INPUT: [hSpriteIndexOrTextID] = sprite ID or text ID
-DisplayTextID:: ; 2920 (0:2920)
+DisplayTextID::
ld a,[H_LOADEDROMBANK]
push af
callba DisplayTextIDInit ; initialization
@@ -1069,13 +1066,13 @@ DisplayTextID:: ; 2920 (0:2920)
ld [wSpriteIndex],a
and a
jp z,DisplayStartMenu
- cp a,TEXT_SAFARI_GAME_OVER
+ cp TEXT_SAFARI_GAME_OVER
jp z,DisplaySafariGameOverText
- cp a,TEXT_MON_FAINTED
+ cp TEXT_MON_FAINTED
jp z,DisplayPokemonFaintedText
- cp a,TEXT_BLACKED_OUT
+ cp TEXT_BLACKED_OUT
jp z,DisplayPlayerBlackedOutText
- cp a,TEXT_REPEL_WORE_OFF
+ cp TEXT_REPEL_WORE_OFF
jp z,DisplayRepelWoreOffText
ld a,[wNumSprites]
ld e,a
@@ -1114,24 +1111,24 @@ DisplayTextID:: ; 2920 (0:2920)
ld l,a ; hl = address of the text
ld a,[hl] ; a = first byte of text
; check first byte of text for special cases
- cp a,$fe ; Pokemart NPC
+ cp $fe ; Pokemart NPC
jp z,DisplayPokemartDialogue
- cp a,$ff ; Pokemon Center NPC
+ cp $ff ; Pokemon Center NPC
jp z,DisplayPokemonCenterDialogue
- cp a,$fc ; Item Storage PC
+ cp $fc ; Item Storage PC
jp z,FuncTX_ItemStoragePC
- cp a,$fd ; Bill's PC
+ cp $fd ; Bill's PC
jp z,FuncTX_BillsPC
- cp a,$f9 ; Pokemon Center PC
+ cp $f9 ; Pokemon Center PC
jp z,FuncTX_PokemonCenterPC
- cp a,$f5 ; Vending Machine
+ cp $f5 ; Vending Machine
jr nz,.notVendingMachine
callba VendingMachineMenu ; jump banks to vending machine routine
jr AfterDisplayingTextID
.notVendingMachine
- cp a,$f7 ; slot machine
- jp z,FuncTX_SlotMachine
- cp a,$f6 ; cable connection NPC in Pokemon Center
+ cp $f7 ; prize menu
+ jp z, FuncTX_GameCornerPrizeMenu
+ cp $f6 ; cable connection NPC in Pokemon Center
jr nz,.notSpecialCase
callab CableClubNPC
jr AfterDisplayingTextID
@@ -1141,20 +1138,20 @@ DisplayTextID:: ; 2920 (0:2920)
and a
jr nz,HoldTextDisplayOpen
-AfterDisplayingTextID:: ; 29d6 (0:29d6)
+AfterDisplayingTextID::
ld a,[wEnteringCableClub]
and a
jr nz,HoldTextDisplayOpen
call WaitForTextScrollButtonPress ; wait for a button press after displaying all the text
; loop to hold the dialogue box open as long as the player keeps holding down the A button
-HoldTextDisplayOpen:: ; 29df (0:29df)
+HoldTextDisplayOpen::
call Joypad
ld a,[hJoyHeld]
bit 0,a ; is the A button being pressed?
jr nz,HoldTextDisplayOpen
-CloseTextDisplay:: ; 29e8 (0:29e8)
+CloseTextDisplay::
ld a,[wCurMap]
call SwitchToMapRomBank
ld a,$90
@@ -1190,7 +1187,7 @@ CloseTextDisplay:: ; 29e8 (0:29e8)
ld [MBC1RomBank],a
jp UpdateSprites
-DisplayPokemartDialogue:: ; 2a2e (0:2a2e)
+DisplayPokemartDialogue::
push hl
ld hl,PokemartGreetingText
call PrintText
@@ -1210,11 +1207,11 @@ DisplayPokemartDialogue:: ; 2a2e (0:2a2e)
ld [MBC1RomBank],a
jp AfterDisplayingTextID
-PokemartGreetingText:: ; 2a55 (0:2a55)
+PokemartGreetingText::
TX_FAR _PokemartGreetingText
db "@"
-LoadItemList:: ; 2a5a (0:2a5a)
+LoadItemList::
ld a,1
ld [wUpdateSpritesEnabled],a
ld a,h
@@ -1226,11 +1223,11 @@ LoadItemList:: ; 2a5a (0:2a5a)
ld a,[hli]
ld [de],a
inc de
- cp a,$ff
+ cp $ff
jr nz,.loop
ret
-DisplayPokemonCenterDialogue:: ; 2a72 (0:2a72)
+DisplayPokemonCenterDialogue::
; zeroing these doesn't appear to serve any purpose
xor a
ld [$ff8b],a
@@ -1249,20 +1246,20 @@ DisplayPokemonCenterDialogue:: ; 2a72 (0:2a72)
ld [MBC1RomBank],a
jp AfterDisplayingTextID
-DisplaySafariGameOverText:: ; 2a90 (0:2a90)
+DisplaySafariGameOverText::
callab PrintSafariGameOverText
jp AfterDisplayingTextID
-DisplayPokemonFaintedText:: ; 2a9b (0:2a9b)
+DisplayPokemonFaintedText::
ld hl,PokemonFaintedText
call PrintText
jp AfterDisplayingTextID
-PokemonFaintedText:: ; 2aa4 (0:2aa4)
+PokemonFaintedText::
TX_FAR _PokemonFaintedText
db "@"
-DisplayPlayerBlackedOutText:: ; 2aa5 (0:2aa5)
+DisplayPlayerBlackedOutText::
ld hl,PlayerBlackedOutText
call PrintText
ld a,[wd732]
@@ -1281,17 +1278,16 @@ DisplayPlayerBlackedOutText:: ; 2aa5 (0:2aa5)
.didnotblackoutinsafari
jp HoldTextDisplayOpen
-
-PlayerBlackedOutText:: ; 2aba (0:2aba)
+PlayerBlackedOutText::
TX_FAR _PlayerBlackedOutText
db "@"
-DisplayRepelWoreOffText:: ; 2abf (0:2abf)
+DisplayRepelWoreOffText::
ld hl,RepelWoreOffText
call PrintText
jp AfterDisplayingTextID
-RepelWoreOffText:: ; 2ac8 (0:2ac8)
+RepelWoreOffText::
TX_FAR _RepelWoreOffText
db "@"
@@ -1303,7 +1299,7 @@ INCLUDE "engine/menu/start_menu.asm"
; b = length of string of bytes
; OUTPUT:
; [wNumSetBits] = number of set bits
-CountSetBits:: ; 2b7f (0:2b7f)
+CountSetBits::
ld c,0
.loop
ld a,[hli]
@@ -1324,11 +1320,11 @@ CountSetBits:: ; 2b7f (0:2b7f)
; subtracts the amount the player paid from their money
; sets carry flag if there is enough money and unsets carry flag if not
-SubtractAmountPaidFromMoney:: ; 2b96 (0:2b96)
+SubtractAmountPaidFromMoney::
jpba SubtractAmountPaidFromMoney_
; adds the amount the player sold to their money
-AddAmountSoldToMoney:: ; 2b9e (0:2b9e)
+AddAmountSoldToMoney::
ld de,wPlayerMoney + 2
ld hl,$ffa1 ; total price of items
ld c,3 ; length of money in bytes
@@ -1345,7 +1341,7 @@ AddAmountSoldToMoney:: ; 2b9e (0:2b9e)
; HL = address of inventory (either wNumBagItems or wNumBoxItems)
; [wWhichPokemon] = index (within the inventory) of the item to remove
; [wItemQuantity] = quantity to remove
-RemoveItemFromInventory:: ; 2bbb (0:2bbb)
+RemoveItemFromInventory::
ld a,[H_LOADEDROMBANK]
push af
ld a,BANK(RemoveItemFromInventory_)
@@ -1363,7 +1359,7 @@ RemoveItemFromInventory:: ; 2bbb (0:2bbb)
; [wcf91] = item ID
; [wItemQuantity] = item quantity
; sets carry flag if successful, unsets carry flag if unsuccessful
-AddItemToInventory:: ; 2bcf (0:2bcf)
+AddItemToInventory::
push bc
ld a,[H_LOADEDROMBANK]
push af
@@ -1381,7 +1377,7 @@ AddItemToInventory:: ; 2bcf (0:2bcf)
; INPUT:
; [wListMenuID] = list menu ID
; [wListPointer] = address of the list (2 bytes)
-DisplayListMenuID:: ; 2be6 (0:2be6)
+DisplayListMenuID::
xor a
ld [H_AUTOBGTRANSFERENABLED],a ; disable auto-transfer
ld a,1
@@ -1392,7 +1388,7 @@ DisplayListMenuID:: ; 2be6 (0:2be6)
ld a,$01 ; hardcoded bank
jr .bankswitch
.specialBattleType ; Old Man battle
- ld a, Bank(DisplayBattleMenu)
+ ld a, BANK(DisplayBattleMenu)
.bankswitch
call BankswitchHome
ld hl,wd730
@@ -1421,7 +1417,7 @@ DisplayListMenuID:: ; 2be6 (0:2be6)
ld a,1 ; max menu item ID is 1 if the list has less than 2 entries
ld [wMenuWatchMovingOutOfBounds],a
ld a,[wListCount]
- cp a,2 ; does the list have less than 2 entries?
+ cp 2 ; does the list have less than 2 entries?
jr c,.setMenuVariables
ld a,2 ; max menu item ID is 2 if the list has at least 2 entries
.setMenuVariables
@@ -1435,7 +1431,7 @@ DisplayListMenuID:: ; 2be6 (0:2be6)
ld c,10
call DelayFrames
-DisplayListMenuIDLoop:: ; 2c53 (0:2c53)
+DisplayListMenuIDLoop::
xor a
ld [H_AUTOBGTRANSFERENABLED],a ; disable transfer
call PrintListMenuEntries
@@ -1491,7 +1487,7 @@ DisplayListMenuIDLoop:: ; 2c53 (0:2c53)
ld a,c
ld [wWhichPokemon],a
ld a,[wListMenuID]
- cp a,ITEMLISTMENU
+ cp ITEMLISTMENU
jr nz,.skipMultiplying
; if it's an item menu
sla c ; item entries are 2 bytes long, so multiply by 2
@@ -1512,7 +1508,7 @@ DisplayListMenuIDLoop:: ; 2c53 (0:2c53)
call GetItemPrice
pop hl
ld a,[wListMenuID]
- cp a,ITEMLISTMENU
+ cp ITEMLISTMENU
jr nz,.skipGettingQuantity
; if it's an item menu
inc hl
@@ -1558,7 +1554,7 @@ DisplayListMenuIDLoop:: ; 2c53 (0:2c53)
jr z,.upPressed
.downPressed
ld a,[hl]
- add a,3
+ add 3
ld b,a
ld a,[wListCount]
cp b ; will going down scroll past the Cancel button?
@@ -1572,13 +1568,13 @@ DisplayListMenuIDLoop:: ; 2c53 (0:2c53)
dec [hl]
jp DisplayListMenuIDLoop
-DisplayChooseQuantityMenu:: ; 2d57 (0:2d57)
+DisplayChooseQuantityMenu::
; text box dimensions/coordinates for just quantity
coord hl, 15, 9
ld b,1 ; height
ld c,3 ; width
ld a,[wListMenuID]
- cp a,PRICEDITEMLISTMENU
+ cp PRICEDITEMLISTMENU
jr nz,.drawTextBox
; text box dimensions/coordinates for quantity and price
coord hl, 7, 9
@@ -1588,7 +1584,7 @@ DisplayChooseQuantityMenu:: ; 2d57 (0:2d57)
call TextBoxBorder
coord hl, 16, 10
ld a,[wListMenuID]
- cp a,PRICEDITEMLISTMENU
+ cp PRICEDITEMLISTMENU
jr nz,.printInitialQuantity
ld a,"¥"
ld [$C47A],a
@@ -1634,7 +1630,7 @@ DisplayChooseQuantityMenu:: ; 2d57 (0:2d57)
.handleNewQuantity
coord hl, 17, 10
ld a,[wListMenuID]
- cp a,PRICEDITEMLISTMENU
+ cp PRICEDITEMLISTMENU
jr nz,.printQuantity
.printPrice
ld c,$03
@@ -1693,13 +1689,13 @@ DisplayChooseQuantityMenu:: ; 2d57 (0:2d57)
ld a,$ff
ret
-InitialQuantityText:: ; 2e30 (0:2e30)
+InitialQuantityText::
db "×01@"
-SpacesBetweenQuantityAndPriceText:: ; 2e34 (0:2e34)
+SpacesBetweenQuantityAndPriceText::
db " @"
-ExitListMenu:: ; 2e3b (0:2e3b)
+ExitListMenu::
ld a,[wCurrentMenuItem]
ld [wChosenMenuItem],a
ld a,CANCELLED_MENU
@@ -1715,7 +1711,7 @@ ExitListMenu:: ; 2e3b (0:2e3b)
scf
ret
-PrintListMenuEntries:: ; 2e5a (0:2e5a)
+PrintListMenuEntries::
coord hl, 5, 3
ld b,9
ld c,14
@@ -1728,7 +1724,7 @@ PrintListMenuEntries:: ; 2e5a (0:2e5a)
ld a,[wListScrollOffset]
ld c,a
ld a,[wListMenuID]
- cp a,ITEMLISTMENU
+ cp ITEMLISTMENU
ld a,c
jr nz,.skipMultiplying
; if it's an item menu
@@ -1748,7 +1744,7 @@ PrintListMenuEntries:: ; 2e5a (0:2e5a)
ld [wWhichPokemon],a
ld a,[de]
ld [wd11e],a
- cp a,$ff
+ cp $ff
jp z,.printCancelMenuItem
push bc
push de
@@ -1758,7 +1754,7 @@ PrintListMenuEntries:: ; 2e5a (0:2e5a)
ld a,[wListMenuID]
and a
jr z,.pokemonPCMenu
- cp a,$01
+ cp MOVESLISTMENU
jr z,.movesMenu
.itemMenu
call GetItemName
@@ -1847,7 +1843,7 @@ PrintListMenuEntries:: ; 2e5a (0:2e5a)
pop de
inc de
ld a,[wListMenuID]
- cp a,ITEMLISTMENU
+ cp ITEMLISTMENU
jr nz,.nextListEntry
.printItemQuantity
ld a,[wd11e]
@@ -1898,17 +1894,17 @@ PrintListMenuEntries:: ; 2e5a (0:2e5a)
jp nz,.loop
ld bc,-8
add hl,bc
- ld a,$ee ; down arrow
+ ld a,"▼"
ld [hl],a
ret
.printCancelMenuItem
ld de,ListMenuCancelText
jp PlaceString
-ListMenuCancelText:: ; 2f97 (0:2f97)
+ListMenuCancelText::
db "RETOUR@"
-GetMonName:: ; 2f9e (0:2f9e)
+GetMonName::
push hl
ld a,[H_LOADEDROMBANK]
push af
@@ -1934,7 +1930,7 @@ GetMonName:: ; 2f9e (0:2f9e)
pop hl
ret
-GetItemName:: ; 2fcf (0:2fcf)
+GetItemName::
; given an item ID at [wd11e], store the name of the item into a string
; starting at wcd6d
push hl
@@ -1959,7 +1955,7 @@ GetItemName:: ; 2fcf (0:2fcf)
pop hl
ret
-GetMachineName:: ; 2ff3 (0:2ff3)
+GetMachineName::
; copies the name of the TM/HM in [wd11e] to wcd6d
push hl
push de
@@ -2004,7 +2000,6 @@ GetMachineName:: ; 2ff3 (0:2ff3)
inc de
ld a,"@"
ld [de],a
-
pop af
ld [wd11e],a
pop bc
@@ -2012,17 +2007,17 @@ GetMachineName:: ; 2ff3 (0:2ff3)
pop hl
ret
-TechnicalPrefix:: ; 303c (0:303c)
+TechnicalPrefix::
db "CT"
-HiddenPrefix:: ; 303e (0:303e)
+HiddenPrefix::
db "CS"
; sets carry if item is HM, clears carry if item is not HM
; Input: a = item ID
-IsItemHM:: ; 3040 (0:3040)
- cp a,HM_01
+IsItemHM::
+ cp HM_01
jr c,.notHM
- cp a,TM_01
+ cp TM_01
ret
.notHM
and a
@@ -2030,16 +2025,16 @@ IsItemHM:: ; 3040 (0:3040)
; sets carry if move is an HM, clears carry if move is not an HM
; Input: a = move ID
-IsMoveHM:: ; 3049 (0:3049)
+IsMoveHM::
ld hl,HMMoves
ld de,1
jp IsInArray
-HMMoves:: ; 3052 (0:3052)
+HMMoves::
db CUT,FLY,SURF,STRENGTH,FLASH
db $ff ; terminator
-GetMoveName:: ; 3058 (0:3058)
+GetMoveName::
push hl
ld a,MOVE_NAME
ld [wNameListType],a
@@ -2053,7 +2048,7 @@ GetMoveName:: ; 3058 (0:3058)
ret
; reloads text box tile patterns, current map view, and tileset tile patterns
-ReloadMapData:: ; 3071 (0:3071)
+ReloadMapData::
ld a,[H_LOADEDROMBANK]
push af
ld a,[wCurMap]
@@ -2069,7 +2064,7 @@ ReloadMapData:: ; 3071 (0:3071)
ret
; reloads tileset tile patterns
-ReloadTilesetTilePatterns:: ; 3090 (0:3090)
+ReloadTilesetTilePatterns::
ld a,[H_LOADEDROMBANK]
push af
ld a,[wCurMap]
@@ -2083,13 +2078,13 @@ ReloadTilesetTilePatterns:: ; 3090 (0:3090)
ret
; shows the town map and lets the player choose a destination to fly to
-ChooseFlyDestination:: ; 30a9 (0:30a9)
+ChooseFlyDestination::
ld hl,wd72e
res 4,[hl]
jpba LoadTownMap_Fly
; causes the text box to close without waiting for a button press after displaying text
-DisableWaitingAfterTextDisplay:: ; 30b6 (0:30b6)
+DisableWaitingAfterTextDisplay::
ld a,$01
ld [wDoNotWaitForButtonPressAfterDisplayingText],a
ret
@@ -2103,7 +2098,7 @@ DisableWaitingAfterTextDisplay:: ; 30b6 (0:30b6)
; 00: unsucessful
; 01: successful
; 02: not able to be used right now, no extra menu displayed (only certain items use this)
-UseItem:: ; 30bc (0:30bc)
+UseItem::
jpba UseItem_
; confirms the item toss and then tosses the item
@@ -2114,7 +2109,7 @@ UseItem:: ; 30bc (0:30bc)
; [wItemQuantity] = quantity to toss
; OUTPUT:
; clears carry flag if the item is tossed, sets carry flag if not
-TossItem:: ; 30c4 (0:30c4)
+TossItem::
ld a,[H_LOADEDROMBANK]
push af
ld a,BANK(TossItem_)
@@ -2134,7 +2129,7 @@ TossItem:: ; 30c4 (0:30c4)
; [wIsKeyItem] = result
; 00: item is not key item
; 01: item is key item
-IsKeyItem:: ; 30d9 (0:30d9)
+IsKeyItem::
push hl
push de
push bc
@@ -2148,7 +2143,7 @@ IsKeyItem:: ; 30d9 (0:30d9)
; INPUT:
; [wTextBoxID] = text box ID
; b, c = y, x cursor position (TWO_OPTION_MENU only)
-DisplayTextBoxID:: ; 30e8 (0:30e8)
+DisplayTextBoxID::
ld a,[H_LOADEDROMBANK]
push af
ld a,BANK(DisplayTextBoxID_)
@@ -2163,7 +2158,7 @@ DisplayTextBoxID:: ; 30e8 (0:30e8)
; not zero if an NPC movement script is running, the player character is
; automatically stepping down from a door, or joypad states are being simulated
-IsPlayerCharacterBeingControlledByGame:: ; 30fd (0:30fd)
+IsPlayerCharacterBeingControlledByGame::
ld a, [wNPCMovementScriptPointerTableNum]
and a
ret nz
@@ -2174,7 +2169,7 @@ IsPlayerCharacterBeingControlledByGame:: ; 30fd (0:30fd)
and $80
ret
-RunNPCMovementScript:: ; 310e (0:310e)
+RunNPCMovementScript::
ld hl, wd736
bit 0, [hl]
res 0, [hl]
@@ -2202,6 +2197,7 @@ RunNPCMovementScript:: ; 310e (0:310e)
ld [H_LOADEDROMBANK], a
ld [MBC1RomBank], a
ret
+
.NPCMovementScriptPointerTables
dw PalletMovementScriptPointerTable
dw PewterMuseumGuyMovementScriptPointerTable
@@ -2209,14 +2205,14 @@ RunNPCMovementScript:: ; 310e (0:310e)
.playerStepOutFromDoor
jpba PlayerStepOutFromDoor
-EndNPCMovementScript:: ; 314e (0:314e)
+EndNPCMovementScript::
jpba _EndNPCMovementScript
-EmptyFunc2:: ; 3156 (0:3156)
+EmptyFunc2::
ret
; stores hl in [wTrainerHeaderPtr]
-StoreTrainerHeaderPointer:: ; 3157 (0:3157)
+StoreTrainerHeaderPointer::
ld a, h
ld [wTrainerHeaderPtr], a
ld a, l
@@ -2225,7 +2221,7 @@ StoreTrainerHeaderPointer:: ; 3157 (0:3157)
; executes the current map script from the function pointer array provided in hl.
; a: map script index to execute (unless overridden by [wd733] bit 4)
-ExecuteCurMapScriptInTable:: ; 3160 (0:3160)
+ExecuteCurMapScriptInTable::
push af
push de
call StoreTrainerHeaderPointer
@@ -2244,7 +2240,7 @@ ExecuteCurMapScriptInTable:: ; 3160 (0:3160)
ld a, [wCurMapScript]
ret
-LoadGymLeaderAndCityName:: ; 317f (0:317f)
+LoadGymLeaderAndCityName::
push de
ld de, wGymCityName
ld bc, $11
@@ -2261,7 +2257,7 @@ LoadGymLeaderAndCityName:: ; 317f (0:317f)
; 4 -> before battle text (into hl)
; 6 -> after battle text (into hl)
; 8 -> end battle text (into hl)
-ReadTrainerHeaderInfo:: ; 3193 (0:3193)
+ReadTrainerHeaderInfo::
push de
push af
ld d, $0
@@ -2303,7 +2299,7 @@ ReadTrainerHeaderInfo:: ; 3193 (0:3193)
TrainerFlagAction::
predef_jump FlagActionPredef
-TalkToTrainer:: ; 31cc (0:31cc)
+TalkToTrainer::
call StoreTrainerHeaderPointer
xor a
call ReadTrainerHeaderInfo ; read flag's bit
@@ -2342,7 +2338,7 @@ TalkToTrainer:: ; 31cc (0:31cc)
jp StartTrainerBattle
; checks if any trainers are seeing the player and wanting to fight
-CheckFightingMapTrainers:: ; 3219 (0:3219)
+CheckFightingMapTrainers::
call CheckForEngagingTrainers
ld a, [wSpriteIndex]
cp $ff
@@ -2368,7 +2364,7 @@ CheckFightingMapTrainers:: ; 3219 (0:3219)
ret
; display the before battle text after the enemy trainer has walked up to the player's sprite
-DisplayEnemyTrainerTextAndStartBattle:: ; 324c (0:324c)
+DisplayEnemyTrainerTextAndStartBattle::
ld a, [wd730]
and $1
ret nz ; return if the enemy trainer hasn't finished walking to the player's sprite
@@ -2378,7 +2374,7 @@ DisplayEnemyTrainerTextAndStartBattle:: ; 324c (0:324c)
call DisplayTextID
; fall through
-StartTrainerBattle:: ; 325d (0:325d)
+StartTrainerBattle::
xor a
ld [wJoyIgnore], a
call InitBattleEnemyParameters
@@ -2391,7 +2387,7 @@ StartTrainerBattle:: ; 325d (0:325d)
inc [hl] ; increment map script index (next script function is usually EndTrainerBattle)
ret
-EndTrainerBattle:: ; 3275 (0:3275)
+EndTrainerBattle::
ld hl, wCurrentMapScriptFlags
set 5, [hl]
set 6, [hl]
@@ -2425,7 +2421,7 @@ EndTrainerBattle:: ; 3275 (0:3275)
res 4, [hl]
ret nz
-ResetButtonPressedAndMapScript:: ; 32c1 (0:32c1)
+ResetButtonPressedAndMapScript::
xor a
ld [wJoyIgnore], a
ld [hJoyHeld], a
@@ -2435,11 +2431,11 @@ ResetButtonPressedAndMapScript:: ; 32c1 (0:32c1)
ret
; calls TrainerWalkUpToPlayer
-TrainerWalkUpToPlayer_Bank0:: ; 32cf (0:32cf)
+TrainerWalkUpToPlayer_Bank0::
jpba TrainerWalkUpToPlayer
; sets opponent type and mon set/lvl based on the engaging trainer data
-InitBattleEnemyParameters:: ; 32d7 (0:32d7)
+InitBattleEnemyParameters::
ld a, [wEngagedTrainerClass]
ld [wCurOpponent], a
ld [wEnemyMonOrTrainerClass], a
@@ -2452,25 +2448,25 @@ InitBattleEnemyParameters:: ; 32d7 (0:32d7)
ld [wCurEnemyLVL], a
ret
-GetSpritePosition1:: ; 32ef (0:32ef)
+GetSpritePosition1::
ld hl, _GetSpritePosition1
jr SpritePositionBankswitch
-GetSpritePosition2:: ; 32f4 (0:32f4)
+GetSpritePosition2::
ld hl, _GetSpritePosition2
jr SpritePositionBankswitch
-SetSpritePosition1:: ; 32f9 (0:32f9)
+SetSpritePosition1::
ld hl, _SetSpritePosition1
jr SpritePositionBankswitch
-SetSpritePosition2:: ; 32fe (0:32fe)
+SetSpritePosition2::
ld hl, _SetSpritePosition2
-SpritePositionBankswitch:: ; 3301 (0:3301)
+SpritePositionBankswitch::
ld b, BANK(_GetSpritePosition1) ; BANK(_GetSpritePosition2), BANK(_SetSpritePosition1), BANK(_SetSpritePosition2)
jp Bankswitch ; indirect jump to one of the four functions
-CheckForEngagingTrainers:: ; 3306 (0:3306)
+CheckForEngagingTrainers::
xor a
call ReadTrainerHeaderInfo ; read trainer flag's bit (unused)
ld d, h ; store trainer header address in de
@@ -2518,7 +2514,7 @@ CheckForEngagingTrainers:: ; 3306 (0:3306)
; hl = text if the player wins
; de = text if the player loses
-SaveEndBattleTextPointers:: ; 3354 (0:3354)
+SaveEndBattleTextPointers::
ld a, [H_LOADEDROMBANK]
ld [wEndBattleTextRomBank], a
ld a, h
@@ -2533,7 +2529,7 @@ SaveEndBattleTextPointers:: ; 3354 (0:3354)
; loads data of some trainer on the current map and plays pre-battle music
; [wSpriteIndex]: sprite ID of trainer who is engaged
-EngageMapTrainer:: ; 336a (0:336a)
+EngageMapTrainer::
ld hl, wMapSpriteExtraData
ld d, $0
ld a, [wSpriteIndex]
@@ -2547,7 +2543,7 @@ EngageMapTrainer:: ; 336a (0:336a)
ld [wEnemyMonAttackMod], a
jp PlayTrainerMusic
-PrintEndBattleText:: ; 3381 (0:3381)
+PrintEndBattleText::
push hl
ld hl, wd72d
bit 7, [hl]
@@ -2570,7 +2566,7 @@ PrintEndBattleText:: ; 3381 (0:3381)
callba FreezeEnemyTrainerSprite
jp WaitForSoundToFinish
-GetSavedEndBattleTextPointer:: ; 33b7 (0:33b7)
+GetSavedEndBattleTextPointer::
ld a, [wBattleResult]
and a
; won battle
@@ -2587,7 +2583,7 @@ GetSavedEndBattleTextPointer:: ; 33b7 (0:33b7)
ld l, a
ret
-TrainerEndBattleText:: ; 33cf (0:33cf)
+TrainerEndBattleText::
TX_FAR _TrainerNameText
TX_ASM
call GetSavedEndBattleTextPointer
@@ -2597,7 +2593,7 @@ TrainerEndBattleText:: ; 33cf (0:33cf)
; only engage withe trainer if the player is not already
; engaged with another trainer
; XXX unused?
-CheckIfAlreadyEngaged:: ; 33dd (0:33dd)
+CheckIfAlreadyEngaged::
ld a, [wFlags_0xcd60]
bit 0, a
ret nz
@@ -2605,7 +2601,7 @@ CheckIfAlreadyEngaged:: ; 33dd (0:33dd)
xor a
ret
-PlayTrainerMusic:: ; 33e8 (0:33e8)
+PlayTrainerMusic::
ld a, [wEngagedTrainerClass]
cp OPP_SONY1
ret z
@@ -2656,7 +2652,7 @@ INCLUDE "data/trainer_types.asm"
; and if so, decodes the RLE movement data
; b = player Y
; c = player X
-DecodeArrowMovementRLE:: ; 3442 (0:3442)
+DecodeArrowMovementRLE::
ld a, [hli]
cp $ff
ret z ; no match in the list
@@ -2680,33 +2676,33 @@ DecodeArrowMovementRLE:: ; 3442 (0:3442)
inc hl
jr DecodeArrowMovementRLE
-FuncTX_ItemStoragePC:: ; 3460 (0:3460)
+FuncTX_ItemStoragePC::
call SaveScreenTilesToBuffer2
ld b, BANK(PlayerPC)
ld hl, PlayerPC
jr bankswitchAndContinue
-FuncTX_BillsPC:: ; 346a (0:346a)
+FuncTX_BillsPC::
call SaveScreenTilesToBuffer2
ld b, BANK(BillsPC_)
ld hl, BillsPC_
jr bankswitchAndContinue
-FuncTX_SlotMachine:: ; 3474 (0:3474)
+FuncTX_GameCornerPrizeMenu::
; XXX find a better name for this function
; special_F7
ld b,BANK(CeladonPrizeMenu)
ld hl,CeladonPrizeMenu
-bankswitchAndContinue:: ; 3479 (0:3479)
+bankswitchAndContinue::
call Bankswitch
jp HoldTextDisplayOpen ; continue to main text-engine function
-FuncTX_PokemonCenterPC:: ; 347f (0:347f)
+FuncTX_PokemonCenterPC::
ld b, BANK(ActivatePC)
ld hl, ActivatePC
jr bankswitchAndContinue
-StartSimulatingJoypadStates:: ; 3486 (0:3486)
+StartSimulatingJoypadStates::
xor a
ld [wOverrideSimulatedJoypadStatesMask], a
ld [wSpriteStateData2 + $06], a ; player's sprite movement byte 1
@@ -2714,7 +2710,7 @@ StartSimulatingJoypadStates:: ; 3486 (0:3486)
set 7, [hl]
ret
-IsItemInBag:: ; 3493 (0:3493)
+IsItemInBag::
; given an item_id in b
; set zero flag if item isn't in player's bag
; else reset zero flag
@@ -2724,16 +2720,16 @@ IsItemInBag:: ; 3493 (0:3493)
and a
ret
-DisplayPokedex:: ; 349b (0:349b)
+DisplayPokedex::
ld [wd11e], a
jpba _DisplayPokedex
-SetSpriteFacingDirectionAndDelay:: ; 34a6 (0:34a6)
+SetSpriteFacingDirectionAndDelay::
call SetSpriteFacingDirection
ld c, 6
jp DelayFrames
-SetSpriteFacingDirection:: ; 34ae (0:34ae)
+SetSpriteFacingDirection::
ld a, $9
ld [H_SPRITEDATAOFFSET], a
call GetPointerWithinSpriteStateData1
@@ -2741,7 +2737,7 @@ SetSpriteFacingDirection:: ; 34ae (0:34ae)
ld [hl], a
ret
-SetSpriteImageIndexAfterSettingFacingDirection:: ; 34b9 (0:34b9)
+SetSpriteImageIndexAfterSettingFacingDirection::
ld de, -7
add hl, de
ld [hl], a
@@ -2753,19 +2749,19 @@ SetSpriteImageIndexAfterSettingFacingDirection:: ; 34b9 (0:34b9)
; OUTPUT:
; [wCoordIndex] = if there is match, the matching array index
; sets carry if the coordinates are in the array, clears carry if not
-ArePlayerCoordsInArray:: ; 34bf (0:34bf)
+ArePlayerCoordsInArray::
ld a,[wYCoord]
ld b,a
ld a,[wXCoord]
ld c,a
; fallthrough
-CheckCoords:: ; 34c7 (0:34c7)
+CheckCoords::
xor a
ld [wCoordIndex],a
.loop
ld a,[hli]
- cp a,$ff ; reached terminator?
+ cp $ff ; reached terminator?
jr z,.notInArray
push hl
ld hl,wCoordIndex
@@ -2794,7 +2790,7 @@ CheckCoords:: ; 34c7 (0:34c7)
; OUTPUT:
; [wCoordIndex] = if there is match, the matching array index
; sets carry if the coordinates are in the array, clears carry if not
-CheckBoulderCoords:: ; 34e4 (0:34e4)
+CheckBoulderCoords::
push hl
ld hl, wSpriteStateData2 + $04
ld a, [H_SPRITEINDEX]
@@ -2811,11 +2807,11 @@ CheckBoulderCoords:: ; 34e4 (0:34e4)
pop hl
jp CheckCoords
-GetPointerWithinSpriteStateData1:: ; 34fc (0:34fc)
+GetPointerWithinSpriteStateData1::
ld h, $c1
jr _GetPointerWithinSpriteStateData
-GetPointerWithinSpriteStateData2:: ; 3500 (0:3500)
+GetPointerWithinSpriteStateData2::
ld h, $c2
_GetPointerWithinSpriteStateData:
@@ -2832,7 +2828,7 @@ _GetPointerWithinSpriteStateData:
; the final $ff will be replicated in the output list and a contains the number of bytes written
; de: input list
; hl: output list
-DecodeRLEList:: ; 350c (0:350c)
+DecodeRLEList::
xor a
ld [wRLEByteCount], a ; count written bytes here
.listLoop
@@ -2859,7 +2855,7 @@ DecodeRLEList:: ; 350c (0:350c)
ret
; sets movement byte 1 for sprite [H_SPRITEINDEX] to $FE and byte 2 to [hSpriteMovementByte2]
-SetSpriteMovementBytesToFE:: ; 3533 (0:3533)
+SetSpriteMovementBytesToFE::
push hl
call GetSpriteMovementByte1Pointer
ld [hl], $fe
@@ -2870,7 +2866,7 @@ SetSpriteMovementBytesToFE:: ; 3533 (0:3533)
ret
; sets both movement bytes for sprite [H_SPRITEINDEX] to $FF
-SetSpriteMovementBytesToFF:: ; 3541 (0:3541)
+SetSpriteMovementBytesToFF::
push hl
call GetSpriteMovementByte1Pointer
ld [hl],$FF
@@ -2880,16 +2876,16 @@ SetSpriteMovementBytesToFF:: ; 3541 (0:3541)
ret
; returns the sprite movement byte 1 pointer for sprite [H_SPRITEINDEX] in hl
-GetSpriteMovementByte1Pointer:: ; 354e (0:354e)
+GetSpriteMovementByte1Pointer::
ld h,$C2
ld a,[H_SPRITEINDEX]
swap a
- add a,6
+ add 6
ld l,a
ret
; returns the sprite movement byte 2 pointer for sprite [H_SPRITEINDEX] in hl
-GetSpriteMovementByte2Pointer:: ; 3558 (0:3558)
+GetSpriteMovementByte2Pointer::
push de
ld hl,wMapSpriteData
ld a,[H_SPRITEINDEX]
@@ -2901,7 +2897,7 @@ GetSpriteMovementByte2Pointer:: ; 3558 (0:3558)
pop de
ret
-GetTrainerInformation:: ; 3566 (0:3566)
+GetTrainerInformation::
call GetTrainerName
ld a, [wLinkState]
and a
@@ -2934,10 +2930,9 @@ GetTrainerInformation:: ; 3566 (0:3566)
ld [hl], d
ret
-GetTrainerName:: ; 359e (0:359e)
+GetTrainerName::
jpba GetTrainerName_
-
HasEnoughMoney::
; Check if the player has at least as much
; money as the 3-byte BCD value at hMoney.
@@ -2955,7 +2950,7 @@ HasEnoughCoins::
jp StringCmp
-BankswitchHome:: ; 35bc (0:35bc)
+BankswitchHome::
; switches to bank # in a
; Only use this when in the home bank!
ld [wBankswitchHomeTemp],a
@@ -2966,14 +2961,14 @@ BankswitchHome:: ; 35bc (0:35bc)
ld [MBC1RomBank],a
ret
-BankswitchBack:: ; 35cd (0:35cd)
+BankswitchBack::
; returns from BankswitchHome
ld a,[wBankswitchHomeSavedROMBank]
ld [H_LOADEDROMBANK],a
ld [MBC1RomBank],a
ret
-Bankswitch:: ; 35d6 (0:35d6)
+Bankswitch::
; self-contained bankswitch, use this when not in the home bank
; switches to the bank in b
ld a,[H_LOADEDROMBANK]
@@ -2993,25 +2988,25 @@ Bankswitch:: ; 35d6 (0:35d6)
; displays yes/no choice
; yes -> set carry
-YesNoChoice:: ; 35ec (0:35ec)
+YesNoChoice::
call SaveScreenTilesToBuffer1
call InitYesNoTextBoxParameters
jr DisplayYesNoChoice
-Func_35f4:: ; 35f4 (0:35f4)
+Func_35f4::
ld a, TWO_OPTION_MENU
ld [wTextBoxID], a
call InitYesNoTextBoxParameters
jp DisplayTextBoxID
-InitYesNoTextBoxParameters:: ; 35ff (0:35ff)
+InitYesNoTextBoxParameters::
xor a ; YES_NO_MENU
ld [wTwoOptionMenuID], a
coord hl, 14, 7
ld bc, $80f
ret
-YesNoChoicePokeCenter:: ; 360a (0:360a)
+YesNoChoicePokeCenter::
call SaveScreenTilesToBuffer1
ld a, HEAL_CANCEL_MENU
ld [wTwoOptionMenuID], a
@@ -3019,20 +3014,21 @@ YesNoChoicePokeCenter:: ; 360a (0:360a)
lb bc, 8, 12
jr DisplayYesNoChoice
-Func_361a:: ; 361a (0:361a)
+WideYesNoChoice:: ; unused
call SaveScreenTilesToBuffer1
ld a, WIDE_YES_NO_MENU
ld [wTwoOptionMenuID], a
coord hl, 12, 7
lb bc, 8, 13
-DisplayYesNoChoice:: ; 3628 (0:3628)
+
+DisplayYesNoChoice::
ld a, TWO_OPTION_MENU
ld [wTextBoxID], a
call DisplayTextBoxID
jp LoadScreenTilesFromBuffer1
; calculates the difference |a-b|, setting carry flag if a<b
-CalcDifference:: ; 3633 (0:3633)
+CalcDifference::
sub b
ret nc
cpl
@@ -3040,11 +3036,11 @@ CalcDifference:: ; 3633 (0:3633)
scf
ret
-MoveSprite:: ; 363a (0:363a)
+MoveSprite::
; move the sprite [H_SPRITEINDEX] with the movement pointed to by de
; actually only copies the movement data to wNPCMovementDirections for later
call SetSpriteMovementBytesToFF
-MoveSprite_:: ; 363d (0:363d)
+MoveSprite_::
push hl
push bc
call GetSpriteMovementByte1Pointer
@@ -3058,7 +3054,7 @@ MoveSprite_:: ; 363d (0:363d)
ld [hli],a
inc de
inc c
- cp a,$FF ; have we reached the end of the movement data?
+ cp $FF ; have we reached the end of the movement data?
jr nz,.loop
ld a,c
@@ -3077,9 +3073,9 @@ MoveSprite_:: ; 363d (0:363d)
ret
; divides [hDividend2] by [hDivisor2] and stores the quotient in [hQuotient2]
-DivideBytes:: ; 366b (0:366b)
+DivideBytes::
push hl
- ld hl, $ffe7
+ ld hl, hQuotient2
xor a
ld [hld], a
ld a, [hld]
@@ -3162,7 +3158,7 @@ FillMemory::
ret
-UncompressSpriteFromDE:: ; 36eb (0:36eb)
+UncompressSpriteFromDE::
; Decompress pic at a:de.
ld hl, wSpriteInputPtr
ld [hl], e
@@ -3170,22 +3166,21 @@ UncompressSpriteFromDE:: ; 36eb (0:36eb)
ld [hl], d
jp UncompressSpriteData
-
-SaveScreenTilesToBuffer2:: ; 36f4 (0:36f4)
+SaveScreenTilesToBuffer2::
coord hl, 0, 0
ld de, wTileMapBackup2
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
call CopyData
ret
-LoadScreenTilesFromBuffer2:: ; 3701 (0:3701)
+LoadScreenTilesFromBuffer2::
call LoadScreenTilesFromBuffer2DisableBGTransfer
ld a, 1
ld [H_AUTOBGTRANSFERENABLED], a
ret
; loads screen tiles stored in wTileMapBackup2 but leaves H_AUTOBGTRANSFERENABLED disabled
-LoadScreenTilesFromBuffer2DisableBGTransfer:: ; 3709 (0:3709)
+LoadScreenTilesFromBuffer2DisableBGTransfer::
xor a
ld [H_AUTOBGTRANSFERENABLED], a
ld hl, wTileMapBackup2
@@ -3194,13 +3189,13 @@ LoadScreenTilesFromBuffer2DisableBGTransfer:: ; 3709 (0:3709)
call CopyData
ret
-SaveScreenTilesToBuffer1:: ; 3719 (0:3719)
+SaveScreenTilesToBuffer1::
coord hl, 0, 0
ld de, wTileMapBackup
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
jp CopyData
-LoadScreenTilesFromBuffer1:: ; 3725 (0:3725)
+LoadScreenTilesFromBuffer1::
xor a
ld [H_AUTOBGTRANSFERENABLED], a
ld hl, wTileMapBackup
@@ -3211,21 +3206,21 @@ LoadScreenTilesFromBuffer1:: ; 3725 (0:3725)
ld [H_AUTOBGTRANSFERENABLED], a
ret
-DelayFrames:: ; 3739 (0:3739)
-; wait n frames, where n is the value in c
+DelayFrames::
+; wait c frames
call DelayFrame
dec c
jr nz,DelayFrames
ret
-PlaySoundWaitForCurrent:: ; 3740 (0:3740)
+PlaySoundWaitForCurrent::
push af
call WaitForSoundToFinish
pop af
jp PlaySound
; Wait for sound to finish playing
-WaitForSoundToFinish:: ; 3748 (0:3748)
+WaitForSoundToFinish::
ld a, [wLowHealthAlarm]
and $80
ret nz
@@ -3243,7 +3238,7 @@ WaitForSoundToFinish:: ; 3748 (0:3748)
pop hl
ret
-NamePointers:: ; 375d (0:375d)
+NamePointers::
dw MonsterNames
dw MoveNames
dw UnusedNames
@@ -3252,7 +3247,7 @@ NamePointers:: ; 375d (0:375d)
dw wEnemyMonOT ; enemy's OT names list
dw TrainerNames
-GetName:: ; 376b (0:376b)
+GetName::
; arguments:
; [wd0b5] = which name
; [wNameListType] = which list
@@ -3313,7 +3308,7 @@ GetName:: ; 376b (0:376b)
ld e,l
.nextChar
ld a,[hli]
- cp a, "@"
+ cp "@"
jr nz,.nextChar
inc c ;entry counter
ld a,b ;wanted entry
@@ -3337,7 +3332,7 @@ GetName:: ; 376b (0:376b)
ld [MBC1RomBank],a
ret
-GetItemPrice:: ; 37df (0:37df)
+GetItemPrice::
; Stores item's price as BCD at hItemPrice (3 bytes)
; Input: [wcf91] = item id
ld a, [H_LOADEDROMBANK]
@@ -3345,9 +3340,9 @@ GetItemPrice:: ; 37df (0:37df)
ld a, [wListMenuID]
cp MOVESLISTMENU
ld a, BANK(ItemPrices)
- jr nz, .asm_37ed
+ jr nz, .ok
ld a, $f ; hardcoded Bank
-.asm_37ed
+.ok
ld [H_LOADEDROMBANK], a
ld [MBC1RomBank], a
ld hl, wItemPrices
@@ -3358,10 +3353,10 @@ GetItemPrice:: ; 37df (0:37df)
cp HM_01
jr nc, .getTMPrice
ld bc, $3
-.asm_3802
+.loop
add hl, bc
dec a
- jr nz, .asm_3802
+ jr nz, .loop
dec hl
ld a, [hld]
ld [hItemPrice + 2], a
@@ -3369,13 +3364,13 @@ GetItemPrice:: ; 37df (0:37df)
ld [hItemPrice + 1], a
ld a, [hl]
ld [hItemPrice], a
- jr .asm_381c
+ jr .done
.getTMPrice
ld a, Bank(GetMachinePrice)
ld [H_LOADEDROMBANK], a
ld [MBC1RomBank], a
call GetMachinePrice
-.asm_381c
+.done
ld de, hItemPrice
pop af
ld [H_LOADEDROMBANK], a
@@ -3383,12 +3378,12 @@ GetItemPrice:: ; 37df (0:37df)
ret
; copies a string from [de] to [wcf50]
-CopyStringToCF50:: ; 3826 (0:3826)
+CopyStringToCF50::
ld hl, wcf50
; fall through
; copies a string from [de] to [hl]
-CopyString:: ; 3829 (0:3829)
+CopyString::
ld a, [de]
inc de
ld [hli], a
@@ -3411,7 +3406,7 @@ CopyString:: ; 3829 (0:3829)
; report only one button press.
; 3. Same as 2, but report no buttons as pressed if A or B is held down.
; ([hJoy7] == 1, [hJoy6] == 0)
-JoypadLowSensitivity:: ; 3831 (0:3831)
+JoypadLowSensitivity::
call Joypad
ld a,[hJoy7] ; flag
and a ; get all currently pressed buttons or only newly pressed buttons?
@@ -3450,7 +3445,7 @@ JoypadLowSensitivity:: ; 3831 (0:3831)
ld [H_FRAMECOUNTER],a
ret
-WaitForTextScrollButtonPress:: ; 3865 (0:3865)
+WaitForTextScrollButtonPress::
ld a, [H_DOWNARROWBLINKCNT1]
push af
ld a, [H_DOWNARROWBLINKCNT2]
@@ -3481,7 +3476,7 @@ WaitForTextScrollButtonPress:: ; 3865 (0:3865)
ret
; (unless in link battle) waits for A or B being pressed and outputs the scrolling sound effect
-ManualTextScroll:: ; 3898 (0:3898)
+ManualTextScroll::
ld a, [wLinkState]
cp LINK_STATE_BATTLING
jr z, .inLinkBattle
@@ -3499,7 +3494,7 @@ ManualTextScroll:: ; 3898 (0:3898)
; FF99 = multiplier
; OUTPUT
; FF95-FF98 = product
-Multiply:: ; 38ac (0:38ac)
+Multiply::
push hl
push bc
callab _Multiply
@@ -3516,7 +3511,7 @@ Multiply:: ; 38ac (0:38ac)
; OUTPUT
; FF95-FF98 = quotient
; FF99 = remainder
-Divide:: ; 38b9 (0:38b9)
+Divide::
push hl
push de
push bc
@@ -3537,7 +3532,7 @@ Divide:: ; 38b9 (0:38b9)
; This function is used to wait a short period after printing a letter to the
; screen unless the player presses the A/B button or the delay is turned off
; through the [wd730] or [wLetterPrintingDelayFlags] flags.
-PrintLetterDelay:: ; 38d3 (0:38d3)
+PrintLetterDelay::
ld a,[wd730]
bit 6,a
ret nz
@@ -3583,7 +3578,7 @@ PrintLetterDelay:: ; 38d3 (0:38d3)
; Copies [hl, bc) to [de, bc - hl).
; In other words, the source data is from hl up to but not including bc,
; and the destination is de.
-CopyDataUntil:: ; 3913 (0:3913)
+CopyDataUntil::
ld a,[hli]
ld [de],a
inc de
@@ -3599,10 +3594,10 @@ CopyDataUntil:: ; 3913 (0:3913)
; wWhichPokemon determines the pokemon.
; [wRemoveMonFromBox] == 0 specifies the party.
; [wRemoveMonFromBox] != 0 specifies the current box.
-RemovePokemon:: ; 391f (0:391f)
+RemovePokemon::
jpab _RemovePokemon
-AddPartyMon:: ; 3927 (0:3927)
+AddPartyMon::
push hl
push de
push bc
@@ -3613,7 +3608,7 @@ AddPartyMon:: ; 3927 (0:3927)
ret
; calculates all 5 stats of current mon and writes them to [de]
-CalcStats:: ; 3936 (0:3936)
+CalcStats::
ld c, $0
.statsLoop
inc c
@@ -3633,7 +3628,7 @@ CalcStats:: ; 3936 (0:3936)
; c: stat to calc (HP=1,Atk=2,Def=3,Spd=4,Spc=5)
; b: consider stat exp?
; hl: base ptr to stat exp values ([hl + 2*c - 1] and [hl + 2*c])
-CalcStat:: ; 394a (0:394a)
+CalcStat::
push hl
push de
push bc
@@ -3812,7 +3807,7 @@ CalcStat:: ; 394a (0:394a)
pop hl
ret
-AddEnemyMonToPlayerParty:: ; 3a53 (0:3a53)
+AddEnemyMonToPlayerParty::
ld a, [H_LOADEDROMBANK]
push af
ld a, BANK(_AddEnemyMonToPlayerParty)
@@ -3825,7 +3820,7 @@ AddEnemyMonToPlayerParty:: ; 3a53 (0:3a53)
ld [MBC1RomBank], a
ret
-MoveMon:: ; 3a68 (0:3a68)
+MoveMon::
ld a, [H_LOADEDROMBANK]
push af
ld a, BANK(_MoveMon)
@@ -3840,7 +3835,7 @@ MoveMon:: ; 3a68 (0:3a68)
; skips a text entries, each of size NAME_LENGTH (like trainer name, OT name, rival name, ...)
; hl: base pointer, will be incremented by NAME_LENGTH * a
-SkipFixedLengthTextEntries:: ; 3a7d (0:3a7d)
+SkipFixedLengthTextEntries::
and a
ret z
ld bc, NAME_LENGTH
@@ -3850,7 +3845,7 @@ SkipFixedLengthTextEntries:: ; 3a7d (0:3a7d)
jr nz, .skipLoop
ret
-AddNTimes:: ; 3a87 (0:3a87)
+AddNTimes::
; add bc to hl a times
and a
ret z
@@ -3862,7 +3857,7 @@ AddNTimes:: ; 3a87 (0:3a87)
; Compare strings, c bytes in length, at de and hl.
; Often used to compare big endian numbers in battle calculations.
-StringCmp:: ; 3a8e (0:3a8e)
+StringCmp::
ld a,[de]
cp [hl]
ret nz
@@ -3877,7 +3872,7 @@ StringCmp:: ; 3a8e (0:3a8e)
; b = Y coordinate of upper left corner of sprite
; c = X coordinate of upper left corner of sprite
; de = base address of 4 tile number and attribute pairs
-WriteOAMBlock:: ; 3a97 (0:3a97)
+WriteOAMBlock::
ld h,wOAMBuffer / $100
swap a ; multiply by 16
ld l,a
@@ -3909,11 +3904,11 @@ WriteOAMBlock:: ; 3a97 (0:3a97)
ld [hli],a
ret
-HandleMenuInput:: ; 3abe (0:3abe)
+HandleMenuInput::
xor a
ld [wPartyMenuAnimMonEnabled],a
-HandleMenuInput_:: ; 3ac2 (0:3ac2)
+HandleMenuInput_::
ld a,[H_DOWNARROWBLINKCNT1]
push af
ld a,[H_DOWNARROWBLINKCNT2]
@@ -4027,7 +4022,7 @@ HandleMenuInput_:: ; 3ac2 (0:3ac2)
jr z,.checkOtherKeys
jr .checkIfAButtonOrBButtonPressed
-PlaceMenuCursor:: ; 3b7c (0:3b7c)
+PlaceMenuCursor::
ld a,[wTopMenuItemY]
and a ; is the y coordinate 0?
jr z,.adjustForXCoord
@@ -4088,7 +4083,7 @@ PlaceMenuCursor:: ; 3b7c (0:3b7c)
jr nz,.currentMenuItemLoop
.checkForArrow2
ld a,[hl]
- cp a,"▶" ; has the right arrow already been placed?
+ cp "▶" ; has the right arrow already been placed?
jr z,.skipSavingTile ; if so, don't lose the saved tile
ld [wTileBehindCursor],a ; save tile before overwriting with right arrow
.skipSavingTile
@@ -4106,7 +4101,7 @@ PlaceMenuCursor:: ; 3b7c (0:3b7c)
; manipulated. In the case of submenus, this is used to show the location of
; the menu cursor in the parent menu. In the case of swapping items in list,
; this is used to mark the item that was first chosen to be swapped.
-PlaceUnfilledArrowMenuCursor:: ; 3bec (0:3bec)
+PlaceUnfilledArrowMenuCursor::
ld b,a
ld a,[wMenuCursorLocation]
ld l,a
@@ -4117,7 +4112,7 @@ PlaceUnfilledArrowMenuCursor:: ; 3bec (0:3bec)
ret
; Replaces the menu cursor with a blank space.
-EraseMenuCursor:: ; 3bf9 (0:3bf9)
+EraseMenuCursor::
ld a,[wMenuCursorLocation]
ld l,a
ld a,[wMenuCursorLocation + 1]
@@ -4133,10 +4128,10 @@ EraseMenuCursor:: ; 3bf9 (0:3bf9)
; initliazed with a down arrow, this function does nothing.
; That allows this to be called without worrying about if a down arrow should
; be blinking.
-HandleDownArrowBlinkTiming:: ; 3c04 (0:3c04)
+HandleDownArrowBlinkTiming::
ld a,[hl]
ld b,a
- ld a,$ee ; down arrow
+ ld a,"▼"
cp b
jr nz,.downArrowOff
.downArrowOn
@@ -4170,7 +4165,7 @@ HandleDownArrowBlinkTiming:: ; 3c04 (0:3c04)
ret nz
ld a,$06
ld [H_DOWNARROWBLINKCNT2],a
- ld a,$ee ; down arrow
+ ld a,"▼"
ld [hl],a
ret
@@ -4178,20 +4173,20 @@ HandleDownArrowBlinkTiming:: ; 3c04 (0:3c04)
; text boxes by DisplayTextID. Both functions cause DisplayTextID to wait
; for a button press after displaying text (unless [wEnteringCableClub] is set).
-EnableAutoTextBoxDrawing:: ; 3c3c (0:3c3c)
+EnableAutoTextBoxDrawing::
xor a
jr AutoTextBoxDrawingCommon
-DisableAutoTextBoxDrawing:: ; 3c3f (0:3c3f)
+DisableAutoTextBoxDrawing::
ld a,$01
-AutoTextBoxDrawingCommon:: ; 3c41 (0:3c41)
+AutoTextBoxDrawingCommon::
ld [wAutoTextBoxDrawingControl],a
xor a
ld [wDoNotWaitForButtonPressAfterDisplayingText],a ; make DisplayTextID wait for button press
ret
-PrintText:: ; 3c49 (0:3c49)
+PrintText::
; Print text hl at (1, 14).
push hl
ld a,MESSAGE_BOX
@@ -4200,12 +4195,12 @@ PrintText:: ; 3c49 (0:3c49)
call UpdateSprites
call Delay3
pop hl
-PrintText_NoCreatingTextBox:: ; 3c59 (0:3c59)
+PrintText_NoCreatingTextBox::
coord bc, 1, 14
jp TextCommandProcessor
-PrintNumber:: ; 3c5f
+PrintNumber::
; Print the c-digit, b-byte value at de.
; Allows 2 to 7 digits. For 1-digit numbers, add
; the value to char "0" instead of calling PrintNumber.
@@ -4475,7 +4470,7 @@ IsInRestOfArray::
ret
-RestoreScreenTilesAndReloadTilePatterns:: ; 3dbe (0:3dbe)
+RestoreScreenTilesAndReloadTilePatterns::
call ClearSprites
ld a, $1
ld [wUpdateSpritesEnabled], a
@@ -4512,9 +4507,9 @@ GBPalWhiteOut::
ret
-RunDefaultPaletteCommand:: ; 3ded (0:3ded)
+RunDefaultPaletteCommand::
ld b,$ff
-RunPaletteCommand:: ; 3def (0:3def)
+RunPaletteCommand::
ld a,[wOnSGB]
and a
ret z
@@ -4537,7 +4532,7 @@ GetHealthBarColor::
; Copy the current map's sprites' tile patterns to VRAM again after they have
; been overwritten by other tile patterns.
-ReloadMapSpriteTilePatterns:: ; 3e08 (0:3e08)
+ReloadMapSpriteTilePatterns::
ld hl, wFontLoaded
ld a, [hl]
push af
@@ -4601,10 +4596,10 @@ Random::
INCLUDE "home/predef.asm"
-UpdateCinnabarGymGateTileBlocks:: ; 3ead (0:3ead)
+UpdateCinnabarGymGateTileBlocks::
jpba UpdateCinnabarGymGateTileBlocks_
-CheckForHiddenObjectOrBookshelfOrCardKeyDoor:: ; 3eb5 (0:3eb5)
+CheckForHiddenObjectOrBookshelfOrCardKeyDoor::
ld a, [H_LOADEDROMBANK]
push af
ld a, [hJoyHeld]
@@ -4641,7 +4636,7 @@ CheckForHiddenObjectOrBookshelfOrCardKeyDoor:: ; 3eb5 (0:3eb5)
ld [H_LOADEDROMBANK], a
ret
-PrintPredefTextID:: ; 3ef5 (0:3ef5)
+PrintPredefTextID::
ld [hSpriteIndexOrTextID], a
ld hl, TextPredefs
call SetMapTextPointer
@@ -4649,7 +4644,7 @@ PrintPredefTextID:: ; 3ef5 (0:3ef5)
set 0, [hl]
call DisplayTextID
-RestoreMapTextPointer:: ; 3f05 (0:3f05)
+RestoreMapTextPointer::
ld hl, wMapTextPtr
ld a, [$ffec]
ld [hli], a
@@ -4657,7 +4652,7 @@ RestoreMapTextPointer:: ; 3f05 (0:3f05)
ld [hl], a
ret
-SetMapTextPointer:: ; 3f0f (0:3f0f)
+SetMapTextPointer::
ld a, [wMapTextPtr]
ld [$ffec], a
ld a, [wMapTextPtr + 1]
@@ -4669,6 +4664,8 @@ SetMapTextPointer:: ; 3f0f (0:3f0f)
ret
TextPredefs::
+const_value = 1
+
add_tx_pre CardKeySuccessText ; 01
add_tx_pre CardKeyFailText ; 02
add_tx_pre RedBedroomPCText ; 03
@@ -4723,8 +4720,8 @@ TextPredefs::
add_tx_pre LinkCableHelp ; 34
add_tx_pre TMNotebook ; 35
add_tx_pre FightingDojoText ; 36
- add_tx_pre FightingDojoText_52a10 ; 37
- add_tx_pre FightingDojoText_52a1d ; 38
+ add_tx_pre EnemiesOnEverySideText ; 37
+ add_tx_pre WhatGoesAroundComesAroundText ; 38
add_tx_pre NewBicycleText ; 39
add_tx_pre IndigoPlateauStatues ; 3A
add_tx_pre VermilionGymTrashSuccessText1 ; 3B