summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElectroDeoxys <ElectroDeoxys@gmail.com>2021-09-09 08:54:29 +0100
committerElectroDeoxys <ElectroDeoxys@gmail.com>2021-09-09 08:54:29 +0100
commit0017fc2d171c87d7bab4c9be90e1069ae95a8071 (patch)
treec5a7b840c9b86c193b22f3de5317ff55c0a2a5aa
parent32b02147925566bac93bf71b002860335583574c (diff)
Remove home bank address comments
-rw-r--r--src/home/ai.asm14
-rw-r--r--src/home/audio_callback.asm2
-rw-r--r--src/home/bg_map.asm10
-rw-r--r--src/home/call_regs.asm4
-rw-r--r--src/home/card_collection.asm16
-rw-r--r--src/home/card_color.asm18
-rw-r--r--src/home/card_data.asm20
-rw-r--r--src/home/clear_sram.asm6
-rw-r--r--src/home/coin_toss.asm6
-rw-r--r--src/home/copy.asm6
-rw-r--r--src/home/damage.asm4
-rw-r--r--src/home/decompress.asm6
-rw-r--r--src/home/division.asm2
-rw-r--r--src/home/dma.asm4
-rw-r--r--src/home/double_speed.asm4
-rw-r--r--src/home/duel.asm188
-rw-r--r--src/home/duel_menus.asm16
-rw-r--r--src/home/effect_commands.asm4
-rw-r--r--src/home/empty_screen.asm6
-rw-r--r--src/home/farcall.asm6
-rw-r--r--src/home/frames.asm6
-rw-r--r--src/home/hblank.asm4
-rw-r--r--src/home/input.asm8
-rw-r--r--src/home/interrupt.asm8
-rw-r--r--src/home/jumptable.asm6
-rw-r--r--src/home/lcd.asm14
-rw-r--r--src/home/lcd_enable_frame.asm2
-rw-r--r--src/home/list.asm8
-rw-r--r--src/home/load_animation.asm30
-rw-r--r--src/home/load_deck.asm2
-rw-r--r--src/home/map.asm54
-rw-r--r--src/home/math.asm6
-rw-r--r--src/home/memory.asm10
-rw-r--r--src/home/menus.asm94
-rw-r--r--src/home/objects.asm4
-rw-r--r--src/home/palettes.asm20
-rw-r--r--src/home/play_animation.asm12
-rw-r--r--src/home/play_song.asm6
-rw-r--r--src/home/print_text.asm56
-rw-r--r--src/home/printer.asm30
-rw-r--r--src/home/process_text.asm52
-rw-r--r--src/home/random.asm6
-rw-r--r--src/home/save.asm10
-rw-r--r--src/home/script.asm14
-rw-r--r--src/home/scroll.asm12
-rw-r--r--src/home/serial.asm46
-rw-r--r--src/home/setup.asm16
-rw-r--r--src/home/sgb.asm40
-rw-r--r--src/home/sound.asm22
-rw-r--r--src/home/sram.asm6
-rw-r--r--src/home/start.asm2
-rw-r--r--src/home/substatus.asm64
-rw-r--r--src/home/switch_rom.asm8
-rw-r--r--src/home/text_box.asm30
-rw-r--r--src/home/tiles.asm46
-rw-r--r--src/home/time.asm8
-rw-r--r--src/home/unsafe_bg_map.asm2
-rw-r--r--src/home/vblank.asm2
-rw-r--r--src/home/vram.asm6
-rw-r--r--src/home/write_number.asm16
60 files changed, 565 insertions, 565 deletions
diff --git a/src/home/ai.asm b/src/home/ai.asm
index 0dcd389..270168f 100644
--- a/src/home/ai.asm
+++ b/src/home/ai.asm
@@ -1,7 +1,7 @@
; loads opponent deck at wOpponentDeckID to wOpponentDeck, and initializes wPlayerDuelistType.
; on a duel against Sam, also loads PRACTICE_PLAYER_DECK to wPlayerDeck.
; also, sets wRNG1, wRNG2, and wRNGCounter to $57.
-LoadOpponentDeck: ; 2b78 (0:2b78)
+LoadOpponentDeck:
xor a
ld [wIsPracticeDuel], a
ld a, [wOpponentDeckID]
@@ -45,27 +45,27 @@ LoadOpponentDeck: ; 2b78 (0:2b78)
ld [hl], a
ret
-AIDoAction_Turn: ; 2bbf (0:2bbf)
+AIDoAction_Turn:
ld a, AIACTION_DO_TURN
jr AIDoAction
-AIDoAction_StartDuel: ; 2bc3 (0:2bc3)
+AIDoAction_StartDuel:
ld a, AIACTION_START_DUEL
jr AIDoAction
-AIDoAction_ForcedSwitch: ; 2bc7 (0:2bc7)
+AIDoAction_ForcedSwitch:
ld a, AIACTION_FORCED_SWITCH
call AIDoAction
ldh [hTempPlayAreaLocation_ff9d], a
ret
-AIDoAction_KOSwitch: ; 2bcf (0:2bcf)
+AIDoAction_KOSwitch:
ld a, AIACTION_KO_SWITCH
call AIDoAction
ldh [hTemp_ffa0], a
ret
-AIDoAction_TakePrize: ; 2bd7 (0:2bd7)
+AIDoAction_TakePrize:
ld a, AIACTION_TAKE_PRIZE
jr AIDoAction ; this line is not needed
@@ -73,7 +73,7 @@ AIDoAction_TakePrize: ; 2bd7 (0:2bd7)
; depending on the deck ID (see engine/ai/deck_ai.asm)
; input:
; - a = AIACTION_* constant
-AIDoAction: ; 2bdb (0:2bdb)
+AIDoAction:
ld c, a
; load bank for Opponent Deck pointer table
diff --git a/src/home/audio_callback.asm b/src/home/audio_callback.asm
index bc765a1..a14cffc 100644
--- a/src/home/audio_callback.asm
+++ b/src/home/audio_callback.asm
@@ -1,7 +1,7 @@
SECTION "Audio Callback", ROM0
; jumps to 3f:hl, then switches to bank 3d
-Bankswitch3dTo3f:: ; 3fe0 (0:3fe0)
+Bankswitch3dTo3f::
push af
ld a, $3f
ldh [hBankROM], a
diff --git a/src/home/bg_map.asm b/src/home/bg_map.asm
index c49f179..43dfe7b 100644
--- a/src/home/bg_map.asm
+++ b/src/home/bg_map.asm
@@ -4,7 +4,7 @@
; ...
; $ff
; for each struct, writes data to BGMap0-translated x,y
-WriteDataBlocksToBGMap0: ; 0695 (0:0695)
+WriteDataBlocksToBGMap0:
call WriteDataBlockToBGMap0
bit 7, [hl] ; check for $ff
jr z, WriteDataBlocksToBGMap0
@@ -13,7 +13,7 @@ WriteDataBlocksToBGMap0: ; 0695 (0:0695)
; reads struct:
; x (1 byte), y (1 byte), data (n bytes), $00
; writes data to BGMap0-translated x,y
-WriteDataBlockToBGMap0: ; 069d (0:069d)
+WriteDataBlockToBGMap0:
ld b, [hl]
inc hl
ld c, [hl]
@@ -49,7 +49,7 @@ WriteDataBlockToBGMap0: ; 069d (0:069d)
ret
; writes a to [v*BGMap0 + BG_MAP_WIDTH * c + b]
-WriteByteToBGMap0: ; 06c3 (0:06c3)
+WriteByteToBGMap0:
push af
ld a, [wLCDC]
rla
@@ -88,7 +88,7 @@ HblankWriteByteToBGMap0: ; 06d9
ret
; copy a bytes of data from hl to vBGMap0 address pointed to by coord at bc
-CopyDataToBGMap0: ; 06ee (0:06ee)
+CopyDataToBGMap0:
push bc
push hl
push af
@@ -113,5 +113,5 @@ SafeCopyDataHLtoDE: ; 6fc (0:6fc)
dec b
jr nz, .lcd_off_loop
ret
-JPHblankCopyDataHLtoDE: ; 0709 (0:0709)
+JPHblankCopyDataHLtoDE:
jp HblankCopyDataHLtoDE
diff --git a/src/home/call_regs.asm b/src/home/call_regs.asm
index c2b2c98..2f80689 100644
--- a/src/home/call_regs.asm
+++ b/src/home/call_regs.asm
@@ -1,5 +1,5 @@
-CallHL2: ; 3c45 (0:3c45)
+CallHL2:
jp hl
-CallBC: ; 3c46 (0:3c46)
+CallBC:
retbc
diff --git a/src/home/card_collection.asm b/src/home/card_collection.asm
index 042a708..3be1e90 100644
--- a/src/home/card_collection.asm
+++ b/src/home/card_collection.asm
@@ -1,5 +1,5 @@
; return, in hl, the total amount of cards owned anywhere, including duplicates
-GetAmountOfCardsOwned: ; 1caa (0:1caa)
+GetAmountOfCardsOwned:
push de
push bc
call EnableSRAM
@@ -43,7 +43,7 @@ GetAmountOfCardsOwned: ; 1caa (0:1caa)
; return carry if the count in sCardCollection plus the count in each deck (sDeck*)
; of the card with id given in a is 0 (if card not owned).
; also return the count (total owned amount) in a.
-GetCardCountInCollectionAndDecks: ; 1ce1 (0:1ce1)
+GetCardCountInCollectionAndDecks:
push hl
push de
push bc
@@ -94,7 +94,7 @@ GetCardCountInCollectionAndDecks: ; 1ce1 (0:1ce1)
; return carry if the count in sCardCollection of the card with id given in a is 0.
; also return the count (amount owned outside of decks) in a.
-GetCardCountInCollection: ; 1d1d (0:1d1d)
+GetCardCountInCollection:
push hl
call EnableSRAM
ld h, HIGH(sCardCollection)
@@ -108,7 +108,7 @@ GetCardCountInCollection: ; 1d1d (0:1d1d)
ret
; creates a list at wTempCardCollection of every card the player owns and how many
-CreateTempCardCollection: ; 1d2e (0:1d2e)
+CreateTempCardCollection:
call EnableSRAM
ld hl, sCardCollection
ld de, wTempCardCollection
@@ -126,7 +126,7 @@ CreateTempCardCollection: ; 1d2e (0:1d2e)
ret
; adds the cards from a deck to wTempCardCollection given de = sDeck*Name
-AddDeckCardsToTempCardCollection: ; 1d59 (0:1d59)
+AddDeckCardsToTempCardCollection:
ld a, [de]
or a
ret z ; return if empty name (empty deck)
@@ -147,7 +147,7 @@ AddDeckCardsToTempCardCollection: ; 1d59 (0:1d59)
; add card with id given in a to sCardCollection, provided that
; the player has less than MAX_AMOUNT_OF_CARD (99) of them
-AddCardToCollection: ; 1d6e (0:1d6e)
+AddCardToCollection:
push hl
push de
push bc
@@ -174,7 +174,7 @@ AddCardToCollection: ; 1d6e (0:1d6e)
ret
; remove a card with id given in a from sCardCollection (decrement its count if non-0)
-RemoveCardFromCollection: ; 1d91 (0:1d91)
+RemoveCardFromCollection:
push hl
call EnableSRAM
ld h, HIGH(sCardCollection)
@@ -191,7 +191,7 @@ RemoveCardFromCollection: ; 1d91 (0:1d91)
; return the amount of different cards that the player has collected in d
; return NUM_CARDS in e, minus 1 if VENUSAUR1 or MEW2 has not been collected (minus 2 if neither)
-GetCardAlbumProgress: ; 1da4 (0:1da4)
+GetCardAlbumProgress:
push hl
call EnableSRAM
ld e, NUM_CARDS
diff --git a/src/home/card_color.asm b/src/home/card_color.asm
index 4932dc9..052a64c 100644
--- a/src/home/card_color.asm
+++ b/src/home/card_color.asm
@@ -1,11 +1,11 @@
; return the turn holder's arena card's color in a, accounting for Venomoth's Shift Pokemon Power if active
-GetArenaCardColor: ; 36f6 (0:36f6)
+GetArenaCardColor:
xor a
; fallthrough
; input: a = play area location offset (PLAY_AREA_*) of the desired card
; return the turn holder's card's color in a, accounting for Venomoth's Shift Pokemon Power if active
-GetPlayAreaCardColor: ; 36f7 (0:36f7)
+GetPlayAreaCardColor:
push hl
push de
ld e, a
@@ -41,7 +41,7 @@ GetPlayAreaCardColor: ; 36f7 (0:36f7)
; return in a the weakness of the turn holder's arena or benchx Pokemon given the PLAY_AREA_* value in a
; if a == 0 and [DUELVARS_ARENA_CARD_CHANGED_WEAKNESS] != 0,
; return [DUELVARS_ARENA_CARD_CHANGED_WEAKNESS] instead
-GetPlayAreaCardWeakness: ; 3729 (0:3729)
+GetPlayAreaCardWeakness:
or a
jr z, GetArenaCardWeakness
add DUELVARS_ARENA_CARD
@@ -49,7 +49,7 @@ GetPlayAreaCardWeakness: ; 3729 (0:3729)
; return in a the weakness of the turn holder's arena Pokemon
; if [DUELVARS_ARENA_CARD_CHANGED_WEAKNESS] != 0, return it instead
-GetArenaCardWeakness: ; 3730 (0:3730)
+GetArenaCardWeakness:
ld a, DUELVARS_ARENA_CARD_CHANGED_WEAKNESS
call GetTurnDuelistVariable
or a
@@ -57,7 +57,7 @@ GetArenaCardWeakness: ; 3730 (0:3730)
ld a, DUELVARS_ARENA_CARD
; fallthrough
-GetCardWeakness: ; 3739 (0:3739)
+GetCardWeakness:
call GetTurnDuelistVariable
call LoadCardDataToBuffer2_FromDeckIndex
ld a, [wLoadedCard2Weakness]
@@ -66,7 +66,7 @@ GetCardWeakness: ; 3739 (0:3739)
; return in a the resistance of the turn holder's arena or benchx Pokemon given the PLAY_AREA_* value in a
; if a == 0 and [DUELVARS_ARENA_CARD_CHANGED_RESISTANCE] != 0,
; return [DUELVARS_ARENA_CARD_CHANGED_RESISTANCE] instead
-GetPlayAreaCardResistance: ; 3743 (0:3743)
+GetPlayAreaCardResistance:
or a
jr z, GetArenaCardResistance
add DUELVARS_ARENA_CARD
@@ -74,7 +74,7 @@ GetPlayAreaCardResistance: ; 3743 (0:3743)
; return in a the resistance of the arena Pokemon
; if [DUELVARS_ARENA_CARD_CHANGED_RESISTANCE] != 0, return it instead
-GetArenaCardResistance: ; 374a (0:374a)
+GetArenaCardResistance:
ld a, DUELVARS_ARENA_CARD_CHANGED_RESISTANCE
call GetTurnDuelistVariable
or a
@@ -82,7 +82,7 @@ GetArenaCardResistance: ; 374a (0:374a)
ld a, DUELVARS_ARENA_CARD
; fallthrough
-GetCardResistance: ; 3753 (0:3753)
+GetCardResistance:
call GetTurnDuelistVariable
call LoadCardDataToBuffer2_FromDeckIndex
ld a, [wLoadedCard2Resistance]
@@ -90,7 +90,7 @@ GetCardResistance: ; 3753 (0:3753)
; this function checks if turn holder's CHARIZARD energy burn is active, and if so, turns
; all energies at wAttachedEnergies except double colorless energies into fire energies
-HandleEnergyBurn: ; 375d (0:375d)
+HandleEnergyBurn:
ld a, DUELVARS_ARENA_CARD
call GetTurnDuelistVariable
call GetCardIDFromDeckIndex
diff --git a/src/home/card_data.asm b/src/home/card_data.asm
index 577f369..ffb5155 100644
--- a/src/home/card_data.asm
+++ b/src/home/card_data.asm
@@ -1,5 +1,5 @@
; load data of card with text id of name at de to wLoadedCard1
-LoadCardDataToBuffer1_FromName: ; 2ecd (0:2ecd)
+LoadCardDataToBuffer1_FromName:
ld hl, CardPointers + 2 ; skip first NULL pointer
ld a, BANK(CardPointers)
call BankpushROM2
@@ -45,18 +45,18 @@ LoadCardDataToBuffer1_FromName: ; 2ecd (0:2ecd)
ret
; load data of card with id at e to wLoadedCard2
-LoadCardDataToBuffer2_FromCardID: ; 2f0a (0:2f0a)
+LoadCardDataToBuffer2_FromCardID:
push hl
ld hl, wLoadedCard2
jr LoadCardDataToHL_FromCardID
; load data of card with id at e to wLoadedCard1
-LoadCardDataToBuffer1_FromCardID: ; 2f10 (0:2f10)
+LoadCardDataToBuffer1_FromCardID:
push hl
ld hl, wLoadedCard1
; fallthrough
-LoadCardDataToHL_FromCardID: ; 2f14 (0:2f14)
+LoadCardDataToHL_FromCardID:
push de
push bc
push hl
@@ -81,7 +81,7 @@ LoadCardDataToHL_FromCardID: ; 2f14 (0:2f14)
ret
; return in a the type (TYPE_* constant) of the card with id at e
-GetCardType: ; 2f32 (0:2f32)
+GetCardType:
push hl
call GetCardPointer
jr c, .done
@@ -96,7 +96,7 @@ GetCardType: ; 2f32 (0:2f32)
ret
; return in de the 2-byte text id of the name of the card with id at e
-GetCardName: ; 2f45 (0:2f45)
+GetCardName:
push hl
call GetCardPointer
jr c, .done
@@ -114,7 +114,7 @@ GetCardName: ; 2f45 (0:2f45)
ret
; from the card id in a, returns type into a, rarity into b, and set into c
-GetCardTypeRarityAndSet: ; 2f5d (0:2f5d)
+GetCardTypeRarityAndSet:
push hl
push de
ld d, 0
@@ -139,7 +139,7 @@ GetCardTypeRarityAndSet: ; 2f5d (0:2f5d)
; return at hl the pointer to the data of the card with id at e
; return carry if e was out of bounds, so no pointer was returned
-GetCardPointer: ; 2f7c (0:2f7c)
+GetCardPointer:
push de
push bc
ld l, e
@@ -173,7 +173,7 @@ GetCardPointer: ; 2f7c (0:2f7c)
; bc are supposed to be $30 (number of tiles of a card gfx) and TILE_SIZE respectively
; card_gfx_index = (<Name>CardGfx - CardGraphics) / 8 (using absolute ROM addresses)
; also copies the card's palette to wCardPalette
-LoadCardGfx: ; 2fa0 (0:2fa0)
+LoadCardGfx:
ldh a, [hBankROM]
push af
push hl
@@ -205,7 +205,7 @@ LoadCardGfx: ; 2fa0 (0:2fa0)
ret
; identical to CopyFontsOrDuelGraphicsTiles
-CopyFontsOrDuelGraphicsTiles2: ; 2fcb (0:2fcb)
+CopyFontsOrDuelGraphicsTiles2:
ld a, BANK(Fonts) ; BANK(DuelGraphics)
call BankpushROM
ld c, TILE_SIZE
diff --git a/src/home/clear_sram.asm b/src/home/clear_sram.asm
index 47e7017..a899b08 100644
--- a/src/home/clear_sram.asm
+++ b/src/home/clear_sram.asm
@@ -1,6 +1,6 @@
; validate the saved data in SRAM
; it must contain with the sequence $04, $21, $05 at s0a000
-ValidateSRAM: ; 080b (0:080b)
+ValidateSRAM:
xor a
call BankswitchSRAM
ld hl, $a000
@@ -41,7 +41,7 @@ ValidateSRAM: ; 080b (0:080b)
ret
; zero all SRAM banks and set s0a000 to $04, $21, $05
-RestartSRAM: ; 084d (0:084d)
+RestartSRAM:
ld a, 3
.clear_loop
call ClearSRAMBank
@@ -57,7 +57,7 @@ RestartSRAM: ; 084d (0:084d)
ret
; zero the loaded SRAM bank
-ClearSRAMBank: ; 0863 (0:0863)
+ClearSRAMBank:
push af
call BankswitchSRAM
call EnableSRAM
diff --git a/src/home/coin_toss.asm b/src/home/coin_toss.asm
index d0f06f0..726fde0 100644
--- a/src/home/coin_toss.asm
+++ b/src/home/coin_toss.asm
@@ -2,7 +2,7 @@
; displaying each result ([O] or [X]) starting from the top left corner of the screen.
; text at de is printed in a text box during the coin toss.
; returns: the number of heads in a and in wCoinTossNumHeads, and carry if at least one heads
-TossCoinATimes: ; 3071 (0:3071)
+TossCoinATimes:
push hl
ld hl, wCoinTossScreenTextID
ld [hl], e
@@ -16,7 +16,7 @@ TossCoinATimes: ; 3071 (0:3071)
; text at de is printed in a text box during the coin toss.
; returns: - carry, and 1 in a and in wCoinTossNumHeads if heads
; - nc, and 0 in a and in wCoinTossNumHeads if tails
-TossCoin: ; 307d (0:307d)
+TossCoin:
push hl
ld hl, wCoinTossScreenTextID
ld [hl], e
@@ -30,7 +30,7 @@ TossCoin: ; 307d (0:307d)
ret
; cp de, bc
-CompareDEtoBC: ; 3090 (0:3090)
+CompareDEtoBC:
ld a, d
cp b
ret nz
diff --git a/src/home/copy.asm b/src/home/copy.asm
index d73f5a2..8b21f90 100644
--- a/src/home/copy.asm
+++ b/src/home/copy.asm
@@ -1,6 +1,6 @@
; copy c bytes of data from hl to de, b times.
; used to copy gfx data with c = TILE_SIZE
-CopyGfxData: ; 070c (0:070c)
+CopyGfxData:
ld a, [wLCDC]
rla
jr nc, .next_tile
@@ -35,7 +35,7 @@ CopyGfxData: ; 070c (0:070c)
ret
; copy bc bytes from hl to de. preserves all registers except af
-CopyDataHLtoDE_SaveRegisters: ; 0732 (0:0732)
+CopyDataHLtoDE_SaveRegisters:
push hl
push de
push bc
@@ -46,7 +46,7 @@ CopyDataHLtoDE_SaveRegisters: ; 0732 (0:0732)
ret
; copy bc bytes from hl to de
-CopyDataHLtoDE: ; 073c (0:073c)
+CopyDataHLtoDE:
ld a, [hli]
ld [de], a
inc de
diff --git a/src/home/damage.asm b/src/home/damage.asm
index 6860d26..996ea5e 100644
--- a/src/home/damage.asm
+++ b/src/home/damage.asm
@@ -1,5 +1,5 @@
; [wDamage] += a
-AddToDamage: ; 3055 (0:3055)
+AddToDamage:
push hl
ld hl, wDamage
add [hl]
@@ -11,7 +11,7 @@ AddToDamage: ; 3055 (0:3055)
ret
; [wDamage] -= a
-SubtractFromDamage: ; 3061 (0:3061)
+SubtractFromDamage:
push de
push hl
ld e, a
diff --git a/src/home/decompress.asm b/src/home/decompress.asm
index fe91413..dda25f4 100644
--- a/src/home/decompress.asm
+++ b/src/home/decompress.asm
@@ -2,7 +2,7 @@
; de = source of compressed data
; b = HIGH byte of secondary buffer ($100 bytes of buffer space)
; also clears this $100 byte space
-InitDataDecompression: ; 08bf (0:08bf)
+InitDataDecompression:
ld hl, wDecompSourcePosPtr
ld [hl], e
inc hl
@@ -36,7 +36,7 @@ InitDataDecompression: ; 08bf (0:08bf)
; input:
; bc = row width
; de = buffer to place decompressed data
-DecompressData: ; 08de (0:08de)
+DecompressData:
push hl
push de
.loop
@@ -69,7 +69,7 @@ DecompressData: ; 08de (0:08de)
; - if on -> off, then the data only provides the offset,
; and the previous byte read for number of bytes to repeat, 0xXY, is reused
; in which case (0x0Y + 2) bytes are repeated starting from the offset.
-.Decompress: ; 08ef (0:08ef)
+.Decompress:
ld hl, wDecompNumBytesToRepeat
ld a, [hl]
or a
diff --git a/src/home/division.asm b/src/home/division.asm
index 52ffd67..56bc651 100644
--- a/src/home/division.asm
+++ b/src/home/division.asm
@@ -1,5 +1,5 @@
; divides BC by DE. Stores result in BC and stores remainder in HL
-DivideBCbyDE: ; 3c5a (0:3c5a)
+DivideBCbyDE:
ld hl, $0000
rl c
rl b
diff --git a/src/home/dma.asm b/src/home/dma.asm
index 740b739..bcba963 100644
--- a/src/home/dma.asm
+++ b/src/home/dma.asm
@@ -1,5 +1,5 @@
; copy DMA to hDMAFunction
-CopyDMAFunction: ; 0593 (0:0593)
+CopyDMAFunction:
ld c, LOW(hDMAFunction)
ld b, JumpToFunctionInTable - DMA
ld hl, DMA
@@ -12,7 +12,7 @@ CopyDMAFunction: ; 0593 (0:0593)
ret
; CopyDMAFunction copies this function to hDMAFunction ($ff83)
-DMA: ; 05a1 (0:05a1)
+DMA:
ld a, HIGH(wOAM)
ldh [rDMA], a
ld a, $28
diff --git a/src/home/double_speed.asm b/src/home/double_speed.asm
index 3f28b90..f3aa682 100644
--- a/src/home/double_speed.asm
+++ b/src/home/double_speed.asm
@@ -8,7 +8,7 @@ SwitchToCGBNormalSpeed: ; 7db (0:7db)
jr CGBSpeedSwitch
; switch to CGB Double Speed Mode if playing on CGB and current mode is Normal Speed Mode
-SwitchToCGBDoubleSpeed: ; 07e7 (0:07e7)
+SwitchToCGBDoubleSpeed:
call CheckForCGB
ret c
ld hl, rKEY1
@@ -17,7 +17,7 @@ SwitchToCGBDoubleSpeed: ; 07e7 (0:07e7)
; fallthrough
; switch between CGB Double Speed Mode and Normal Speed Mode
-CGBSpeedSwitch: ; 07f1 (0:07f1)
+CGBSpeedSwitch:
ldh a, [rIE]
push af
xor a
diff --git a/src/home/duel.asm b/src/home/duel.asm
index de5c791..a9bc99b 100644
--- a/src/home/duel.asm
+++ b/src/home/duel.asm
@@ -1,6 +1,6 @@
; save duel state to SRAM
; called between each two-player turn, just after player draws card (ROM bank 1 loaded)
-SaveDuelStateToSRAM: ; 100b (0:100b)
+SaveDuelStateToSRAM:
ld a, $2
call BankswitchSRAM
; save duel data to sCurrentDuel
@@ -57,7 +57,7 @@ SaveDuelStateToSRAM: ; 100b (0:100b)
ret
; copies the deck pointed to by de to wPlayerDeck or wOpponentDeck (depending on whose turn it is)
-CopyDeckData: ; 1072 (0:1072)
+CopyDeckData:
ld hl, wPlayerDeck
ldh a, [hWhoseTurn]
cp PLAYER_TURN
@@ -104,7 +104,7 @@ CopyDeckData: ; 1072 (0:1072)
ret
; return, in register a, the amount of prizes that the turn holder has not yet drawn
-CountPrizes: ; 10aa (0:10aa)
+CountPrizes:
push hl
ld a, DUELVARS_PRIZES
call GetTurnDuelistVariable
@@ -121,7 +121,7 @@ CountPrizes: ; 10aa (0:10aa)
; shuffles the turn holder's deck
; if less than 60 cards remain in the deck, it makes sure that the rest are ignored
-ShuffleDeck: ; 10bc (0:10bc)
+ShuffleDeck:
ldh a, [hWhoseTurn]
ld h, a
ld d, a
@@ -139,7 +139,7 @@ ShuffleDeck: ; 10bc (0:10bc)
; draw a card from the turn holder's deck, saving its location as CARD_LOCATION_JUST_DRAWN.
; returns carry if deck is empty, nc if a card was successfully drawn.
; AddCardToHand is meant to be called next (unless this function returned carry).
-DrawCardFromDeck: ; 10cf (0:10cf)
+DrawCardFromDeck:
push hl
ld a, DUELVARS_NUMBER_OF_CARDS_NOT_IN_DECK
call GetTurnDuelistVariable
@@ -162,7 +162,7 @@ DrawCardFromDeck: ; 10cf (0:10cf)
; add a card to the top of the turn holder's deck
; the card is identified by register a, which contains the deck index (0-59) of the card
-ReturnCardToDeck: ; 10e8 (0:10e8)
+ReturnCardToDeck:
push hl
push af
ld a, DUELVARS_NUMBER_OF_CARDS_NOT_IN_DECK
@@ -182,7 +182,7 @@ ReturnCardToDeck: ; 10e8 (0:10e8)
; search a card in the turn holder's deck, extract it, and set its location to
; CARD_LOCATION_JUST_DRAWN. AddCardToHand is meant to be called next.
; the card is identified by register a, which contains the deck index (0-59) of the card.
-SearchCardInDeckAndAddToHand: ; 10fc (0:10fc)
+SearchCardInDeckAndAddToHand:
push af
push hl
push de
@@ -218,7 +218,7 @@ SearchCardInDeckAndAddToHand: ; 10fc (0:10fc)
; adds a card to the turn holder's hand and increments the number of cards in the hand
; the card is identified by register a, which contains the deck index (0-59) of the card
-AddCardToHand: ; 1123 (0:1123)
+AddCardToHand:
push af
push hl
push de
@@ -243,7 +243,7 @@ AddCardToHand: ; 1123 (0:1123)
; removes a card from the turn holder's hand and decrements the number of cards in the hand
; the card is identified by register a, which contains the deck index (0-59) of the card
-RemoveCardFromHand: ; 1139 (0:1139)
+RemoveCardFromHand:
push af
push hl
push bc
@@ -281,7 +281,7 @@ RemoveCardFromHand: ; 1139 (0:1139)
; moves a card to the turn holder's discard pile, as long as it is in the hand
; the card is identified by register a, which contains the deck index (0-59) of the card
-MoveHandCardToDiscardPile: ; 1160 (0:1160)
+MoveHandCardToDiscardPile:
call GetTurnDuelistVariable
ld a, [hl]
and $ff ^ CARD_LOCATION_JUST_DRAWN
@@ -292,7 +292,7 @@ MoveHandCardToDiscardPile: ; 1160 (0:1160)
; fallthrough
; puts the turn holder's card with the deck index (0-59) given in a into the discard pile
-PutCardInDiscardPile: ; 116a (0:116a)
+PutCardInDiscardPile:
push af
push hl
push de
@@ -313,7 +313,7 @@ PutCardInDiscardPile: ; 116a (0:116a)
; search a card in the turn holder's discard pile, extract it, and set its location to
; CARD_LOCATION_JUST_DRAWN. AddCardToHand is meant to be called next.
; the card is identified by register a, which contains the deck index (0-59) of the card
-MoveDiscardPileCardToHand: ; 1182 (0:1182)
+MoveDiscardPileCardToHand:
push hl
push de
push bc
@@ -347,7 +347,7 @@ MoveDiscardPileCardToHand: ; 1182 (0:1182)
; return in the z flag whether turn holder's prize a (0-7) has been drawn or not
; z: drawn, nz: not drawn
-CheckPrizeTaken: ; 11a5 (0:11a5)
+CheckPrizeTaken:
ld e, a
ld d, 0
ld hl, PowersOf2
@@ -366,7 +366,7 @@ PowersOf2:
; fill wDuelTempList with the turn holder's discard pile cards (their 0-59 deck indexes)
; return carry if the turn holder has no cards in the discard pile
-CreateDiscardPileCardList: ; 11bf (0:11bf)
+CreateDiscardPileCardList:
ldh a, [hWhoseTurn]
ld h, a
ld l, DUELVARS_NUMBER_OF_CARDS_IN_DISCARD_PILE
@@ -395,7 +395,7 @@ CreateDiscardPileCardList: ; 11bf (0:11bf)
; fill wDuelTempList with the turn holder's remaining deck cards (their 0-59 deck indexes)
; return carry if the turn holder has no cards left in the deck
-CreateDeckCardList: ; 11df (0:11df)
+CreateDeckCardList:
ld a, DUELVARS_NUMBER_OF_CARDS_NOT_IN_DECK
call GetTurnDuelistVariable
cp DECK_SIZE
@@ -433,7 +433,7 @@ CreateDeckCardList: ; 11df (0:11df)
; if a == 0: search in CARD_LOCATION_ARENA
; if a != 0: search in CARD_LOCATION_BENCH_[A]
; return carry if no energy cards were found
-CreateArenaOrBenchEnergyCardList: ; 120a (0:120a)
+CreateArenaOrBenchEnergyCardList:
or CARD_LOCATION_PLAY_AREA
ld c, a
ld de, wDuelTempList
@@ -471,7 +471,7 @@ CreateArenaOrBenchEnergyCardList: ; 120a (0:120a)
; fill wDuelTempList with the turn holder's hand cards (their 0-59 deck indexes)
; return carry if the turn holder has no cards in hand
; and outputs in a number of cards.
-CreateHandCardList: ; 123b (0:123b)
+CreateHandCardList:
call FindLastCardInHand
inc b
jr .skip_card
@@ -500,7 +500,7 @@ CreateHandCardList: ; 123b (0:123b)
; sort the turn holder's hand cards by ID (highest to lowest ID)
; makes use of wDuelTempList
-SortHandCardsByID: ; 1258 (0:1258)
+SortHandCardsByID:
call FindLastCardInHand
.loop
ld a, [hld]
@@ -524,7 +524,7 @@ SortHandCardsByID: ; 1258 (0:1258)
; b = turn holder's number of cards in hand (DUELVARS_NUMBER_OF_CARDS_IN_HAND)
; hl = pointer to turn holder's last (newest) card in DUELVARS_HAND
; de = wDuelTempList
-FindLastCardInHand: ; 1271 (0:1271)
+FindLastCardInHand:
ldh a, [hWhoseTurn]
ld h, a
ld l, DUELVARS_NUMBER_OF_CARDS_IN_HAND
@@ -539,7 +539,7 @@ FindLastCardInHand: ; 1271 (0:1271)
; input:
; a = how many cards to shuffle
; hl = DUELVARS_DECK_CARDS + [DUELVARS_NUMBER_OF_CARDS_NOT_IN_DECK]
-ShuffleCards: ; 127f (0:127f)
+ShuffleCards:
or a
ret z ; return if deck is empty
push hl
@@ -576,7 +576,7 @@ ShuffleCards: ; 127f (0:127f)
; sort a $ff-terminated list of deck index cards by ID (lowest to highest ID).
; the list is wDuelTempList.
-SortCardsInDuelTempListByID: ; 12a3 (0:12a3)
+SortCardsInDuelTempListByID:
ld hl, hTempListPtr_ff99
ld [hl], LOW(wDuelTempList)
inc hl
@@ -587,7 +587,7 @@ SortCardsInDuelTempListByID: ; 12a3 (0:12a3)
; the pointer to the list is given in hTempListPtr_ff99.
; sorting by ID rather than deck index means that the order of equal (same ID) cards does not matter,
; even if they have a different deck index.
-SortCardsInListByID: ; 12ad (0:12ad)
+SortCardsInListByID:
; load [hTempListPtr_ff99] into hl and de
ld hl, hTempListPtr_ff99
ld a, [hli]
@@ -648,7 +648,7 @@ SortCardsInListByID: ; 12ad (0:12ad)
inc [hl]
; fallthrough
-SortCardsInListByID_CheckForListTerminator: ; 12ef (0:12ef)
+SortCardsInListByID_CheckForListTerminator:
ld hl, hTempListPtr_ff99
ld a, [hli]
ld h, [hl]
@@ -659,7 +659,7 @@ SortCardsInListByID_CheckForListTerminator: ; 12ef (0:12ef)
; returns, in register bc, the id of the card with the deck index specified in register a
; preserves hl
-GetCardIDFromDeckIndex_bc: ; 12fa (0:12fa)
+GetCardIDFromDeckIndex_bc:
push hl
call _GetCardIDFromDeckIndex
ld c, a
@@ -668,7 +668,7 @@ GetCardIDFromDeckIndex_bc: ; 12fa (0:12fa)
ret
; return [wDuelTempList + a] in a and in hTempCardIndex_ff98
-GetCardInDuelTempList_OnlyDeckIndex: ; 1303 (0:1303)
+GetCardInDuelTempList_OnlyDeckIndex:
push hl
push de
ld e, a
@@ -684,7 +684,7 @@ GetCardInDuelTempList_OnlyDeckIndex: ; 1303 (0:1303)
; given the deck index (0-59) of a card in [wDuelTempList + a], return:
; - the id of the card with that deck index in register de
; - [wDuelTempList + a] in hTempCardIndex_ff98 and in register a
-GetCardInDuelTempList: ; 1312 (0:1312)
+GetCardInDuelTempList:
push hl
ld e, a
ld d, $0
@@ -699,7 +699,7 @@ GetCardInDuelTempList: ; 1312 (0:1312)
; returns, in register de, the id of the card with the deck index (0-59) specified by register a
; preserves af and hl
-GetCardIDFromDeckIndex: ; 1324 (0:1324)
+GetCardIDFromDeckIndex:
push af
push hl
call _GetCardIDFromDeckIndex
@@ -711,7 +711,7 @@ GetCardIDFromDeckIndex: ; 1324 (0:1324)
; remove card c from wDuelTempList (it contains a $ff-terminated list of deck indexes)
; returns carry if no matches were found.
-RemoveCardFromDuelTempList: ; 132f (0:132f)
+RemoveCardFromDuelTempList:
push hl
push de
push bc
@@ -744,7 +744,7 @@ RemoveCardFromDuelTempList: ; 132f (0:132f)
ret
; return the number of cards in wDuelTempList in a
-CountCardsInDuelTempList: ; 1351 (0:1351)
+CountCardsInDuelTempList:
push hl
push bc
ld hl, wDuelTempList
@@ -760,7 +760,7 @@ CountCardsInDuelTempList: ; 1351 (0:1351)
ret
; returns, in register a, the id of the card with the deck index (0-59) specified in register a
-_GetCardIDFromDeckIndex: ; 1362 (0:1362)
+_GetCardIDFromDeckIndex:
push de
ld e, a
ld d, $0
@@ -776,7 +776,7 @@ _GetCardIDFromDeckIndex: ; 1362 (0:1362)
ret
; load data of card with deck index a (0-59) to wLoadedCard1
-LoadCardDataToBuffer1_FromDeckIndex: ; 1376 (0:1376)
+LoadCardDataToBuffer1_FromDeckIndex:
push hl
push de
push bc
@@ -793,7 +793,7 @@ LoadCardDataToBuffer1_FromDeckIndex: ; 1376 (0:1376)
ret
; load data of card with deck index a (0-59) to wLoadedCard2
-LoadCardDataToBuffer2_FromDeckIndex: ; 138c (0:138c)
+LoadCardDataToBuffer2_FromDeckIndex:
push hl
push de
push bc
@@ -812,7 +812,7 @@ LoadCardDataToBuffer2_FromDeckIndex: ; 138c (0:138c)
; evolve a turn holder's Pokemon card in the play area slot determined by hTempPlayAreaLocation_ff9d
; into another turn holder's Pokemon card identifier by its deck index (0-59) in hTempCardIndex_ff98.
; return nc if evolution was successful.
-EvolvePokemonCardIfPossible: ; 13a2 (0:13a2)
+EvolvePokemonCardIfPossible:
; first make sure the attempted evolution is viable
ldh a, [hTempCardIndex_ff98]
ld d, a
@@ -824,7 +824,7 @@ EvolvePokemonCardIfPossible: ; 13a2 (0:13a2)
; evolve a turn holder's Pokemon card in the play area slot determined by hTempPlayAreaLocation_ff9d
; into another turn holder's Pokemon card identifier by its deck index (0-59) in hTempCardIndex_ff98.
-EvolvePokemonCard: ; 13ac (0:13ac)
+EvolvePokemonCard:
; place the evolved Pokemon card in the play area location of the pre-evolved Pokemon card
ldh a, [hTempPlayAreaLocation_ff9d]
ld e, a
@@ -877,7 +877,7 @@ EvolvePokemonCard: ; 13ac (0:13ac)
; e is the play area location offset (PLAY_AREA_*) of the Pokemon trying to evolve.
; d is the deck index (0-59) of the Pokemon card that was selected to be the evolution target.
; return carry if can't evolve, plus nz if the reason for it is the card was played this turn.
-CheckIfCanEvolveInto: ; 13f7 (0:13f7)
+CheckIfCanEvolveInto:
push de
ld a, e
add DUELVARS_ARENA_CARD
@@ -920,7 +920,7 @@ CheckIfCanEvolveInto: ; 13f7 (0:13f7)
; e is the play area location offset (PLAY_AREA_*) of the Pokemon trying to evolve.
; d is the deck index (0-59) of the Pokemon card that was selected to be the evolution target.
; return carry if not basic to stage 2 evolution, or if evolution not possible this turn.
-CheckIfCanEvolveInto_BasicToStage2: ; 142b (0:142b)
+CheckIfCanEvolveInto_BasicToStage2:
ld a, e
add DUELVARS_ARENA_CARD_FLAGS
call GetTurnDuelistVariable
@@ -960,7 +960,7 @@ CheckIfCanEvolveInto_BasicToStage2: ; 142b (0:142b)
; clear the status, all substatuses, and temporary duelvars of the turn holder's
; arena Pokemon. called when sending a new Pokemon into the arena.
; does not reset Headache, since it targets a player rather than a Pokemon.
-ClearAllStatusConditions: ; 1461 (0:1461)
+ClearAllStatusConditions:
push hl
ldh a, [hWhoseTurn]
ld h, a
@@ -994,7 +994,7 @@ ClearAllStatusConditions: ; 1461 (0:1461)
; input:
; a = deck index of the card
; return carry if there is no room for more Pokemon
-PutHandPokemonCardInPlayArea: ; 1485 (0:1485)
+PutHandPokemonCardInPlayArea:
push af
ld a, DUELVARS_NUMBER_OF_POKEMON_IN_PLAY_AREA
call GetTurnDuelistVariable
@@ -1056,7 +1056,7 @@ PutHandPokemonCardInPlayArea: ; 1485 (0:1485)
; e = play area location offset (PLAY_AREA_*)
; returns:
; a = CARD_LOCATION_PLAY_AREA + e
-PutHandCardInPlayArea: ; 14d2 (0:14d2)
+PutHandCardInPlayArea:
call RemoveCardFromHand
call GetTurnDuelistVariable
ld a, e
@@ -1066,7 +1066,7 @@ PutHandCardInPlayArea: ; 14d2 (0:14d2)
; move the Pokemon card of the turn holder in the
; PLAY_AREA_* location given in e to the discard pile
-MovePlayAreaCardToDiscardPile: ; 14dd (0:14dd)
+MovePlayAreaCardToDiscardPile:
call EmptyPlayAreaSlot
ld l, DUELVARS_NUMBER_OF_POKEMON_IN_PLAY_AREA
dec [hl]
@@ -1089,7 +1089,7 @@ MovePlayAreaCardToDiscardPile: ; 14dd (0:14dd)
; init a turn holder's play area slot to empty
; which slot (arena or benchx) is determined by the play area location offset (PLAY_AREA_*) in e
-EmptyPlayAreaSlot: ; 14f8 (0:14f8)
+EmptyPlayAreaSlot:
ldh a, [hWhoseTurn]
ld h, a
ld d, -1
@@ -1112,7 +1112,7 @@ EmptyPlayAreaSlot: ; 14f8 (0:14f8)
ret
; shift play area Pokemon of both players to the first available play area (arena + benchx) slots
-ShiftAllPokemonToFirstPlayAreaSlots: ; 151e (0:151e)
+ShiftAllPokemonToFirstPlayAreaSlots:
call ShiftTurnPokemonToFirstPlayAreaSlots
call SwapTurn
call ShiftTurnPokemonToFirstPlayAreaSlots
@@ -1120,7 +1120,7 @@ ShiftAllPokemonToFirstPlayAreaSlots: ; 151e (0:151e)
ret
; shift play area Pokemon of the turn holder to the first available play area (arena + benchx) slots
-ShiftTurnPokemonToFirstPlayAreaSlots: ; 152b (0:152b)
+ShiftTurnPokemonToFirstPlayAreaSlots:
ld a, DUELVARS_ARENA_CARD
call GetTurnDuelistVariable
lb de, PLAY_AREA_ARENA, PLAY_AREA_ARENA
@@ -1141,7 +1141,7 @@ ShiftTurnPokemonToFirstPlayAreaSlots: ; 152b (0:152b)
; data of the turn holder's Pokemon card in play area e.
; reset the status and all substatuses of the arena Pokemon before swapping.
; e is the play area location offset of the bench Pokemon (PLAY_AREA_*).
-SwapArenaWithBenchPokemon: ; 1543 (0:1543)
+SwapArenaWithBenchPokemon:
call ClearAllStatusConditions
ld d, PLAY_AREA_ARENA
; fallthrough
@@ -1149,7 +1149,7 @@ SwapArenaWithBenchPokemon: ; 1543 (0:1543)
; swap the data of the turn holder's Pokemon card in play area d with the
; data of the turn holder's Pokemon card in play area e.
; d and e are play area location offsets (PLAY_AREA_*).
-SwapPlayAreaPokemon: ; 1548 (0:1548)
+SwapPlayAreaPokemon:
push bc
push de
push hl
@@ -1219,7 +1219,7 @@ SwapPlayAreaPokemon: ; 1548 (0:1548)
; or a Pokemon card in the bench, depending on the value of register e.
; input: e = location to check, i.e. PLAY_AREA_*
; Feedback is returned in wAttachedEnergies and wTotalAttachedEnergies.
-GetPlayAreaCardAttachedEnergies: ; 159f (0:159f)
+GetPlayAreaCardAttachedEnergies:
push hl
push de
push bc
@@ -1288,7 +1288,7 @@ GetPlayAreaCardAttachedEnergies: ; 159f (0:159f)
; e = card id to search
; b = location to consider (CARD_LOCATION_*)
; h = PLAYER_TURN or OPPONENT_TURN
-CountCardIDInLocation: ; 15ef (0:15ef)
+CountCardIDInLocation:
push bc
ld l, DUELVARS_CARD_LOCATIONS
ld c, $0
@@ -1314,7 +1314,7 @@ CountCardIDInLocation: ; 15ef (0:15ef)
; returns [[hWhoseTurn] << 8 + a] in a and in [hl]
; i.e. duelvar a of the player whose turn it is
-GetTurnDuelistVariable: ; 160b (0:160b)
+GetTurnDuelistVariable:
ld l, a
ldh a, [hWhoseTurn]
ld h, a
@@ -1323,7 +1323,7 @@ GetTurnDuelistVariable: ; 160b (0:160b)
; returns [([hWhoseTurn] ^ $1) << 8 + a] in a and in [hl]
; i.e. duelvar a of the player whose turn it is not
-GetNonTurnDuelistVariable: ; 1611 (0:1611)
+GetNonTurnDuelistVariable:
ld l, a
ldh a, [hWhoseTurn]
ld h, OPPONENT_TURN
@@ -1337,7 +1337,7 @@ GetNonTurnDuelistVariable: ; 1611 (0:1611)
; when playing a Pokemon card, initializes some variables according to the
; card played, and checks if the played card has Pokemon Power to show it to
; the player, and possibly to use it if it triggers when the card is played.
-Func_161e: ; 161e (0:161e)
+Func_161e:
ldh a, [hTempCardIndex_ff98]
call ClearChangedTypesIfMuk
ldh a, [hTempCardIndex_ff98]
@@ -1413,7 +1413,7 @@ Func_161e: ; 161e (0:161e)
; - Attack1 (if e == 0) or Attack2 (if e == 1) data into wLoadedAttack
; - Also from that attack, its Damage field into wDamage
; finally, clears wNoDamageOrEffect and wDealtDamage
-CopyAttackDataAndDamage_FromCardID: ; 16ad (0:16ad)
+CopyAttackDataAndDamage_FromCardID:
push de
push af
ld a, e
@@ -1432,7 +1432,7 @@ CopyAttackDataAndDamage_FromCardID: ; 16ad (0:16ad)
; - Attack1 (if e == 0) or Attack2 (if e == 1) data into wLoadedAttack
; - Also from that attack, its Damage field into wDamage
; finally, clears wNoDamageOrEffect and wDealtDamage
-CopyAttackDataAndDamage_FromDeckIndex: ; 16c0 (0:16c0)
+CopyAttackDataAndDamage_FromDeckIndex:
ld a, e
ld [wSelectedAttack], a
ld a, d
@@ -1440,7 +1440,7 @@ CopyAttackDataAndDamage_FromDeckIndex: ; 16c0 (0:16c0)
call LoadCardDataToBuffer1_FromDeckIndex
; fallthrough
-CopyAttackDataAndDamage: ; 16ca (0:16ca)
+CopyAttackDataAndDamage:
ld a, [wLoadedCard1ID]
ld [wTempCardID_ccc2], a
ld hl, wLoadedCard1Atk1
@@ -1471,7 +1471,7 @@ CopyAttackDataAndDamage: ; 16ca (0:16ca)
; wTempNonTurnDuelistCardID to the non-turn holder's arena card, and zeroes other temp
; variables that only last between each two-player turn.
; this is called when a Pokemon card is played or when an attack is used
-Func_16f6: ; 16f6 (0:16f6)
+Func_16f6:
ld a, DUELVARS_ARENA_CARD
call GetTurnDuelistVariable
ldh [hTempCardIndex_ff9f], a
@@ -1497,7 +1497,7 @@ Func_16f6: ; 16f6 (0:16f6)
ret
; Use an attack (from DuelMenu_Attack) or a Pokemon Power (from DuelMenu_PkmnPower)
-UseAttackOrPokemonPower: ; 1730 (0:1730)
+UseAttackOrPokemonPower:
ld a, [wSelectedAttack]
ld [wPlayerAttackingAttackIndex], a
ldh a, [hTempCardIndex_ff9f]
@@ -1541,7 +1541,7 @@ UseAttackOrPokemonPower: ; 1730 (0:1730)
call SetOppAction_SerialSendDuelData
; fallthrough
-PlayAttackAnimation_DealAttackDamage: ; 179a (0:179a)
+PlayAttackAnimation_DealAttackDamage:
call Func_7415
ld a, [wLoadedAttackCategory]
and RESIDUAL
@@ -1583,7 +1583,7 @@ PlayAttackAnimation_DealAttackDamage: ; 179a (0:179a)
call PrintKnockedOutIfHLZero
jr Func_17fb
-Func_17ed: ; 17ed (0:17ed)
+Func_17ed:
call DrawWideTextBox_WaitForInput
xor a
ld hl, wDamage
@@ -1593,7 +1593,7 @@ Func_17ed: ; 17ed (0:17ed)
ld [wNoDamageOrEffect], a
; fallthrough
-Func_17fb: ; 17fb (0:17fb)
+Func_17fb:
ld a, [wTempNonTurnDuelistCardID]
push af
ld a, EFFECTCMDTYPE_AFTER_DAMAGE
@@ -1608,28 +1608,28 @@ Func_17fb: ; 17fb (0:17fb)
or a
ret
-DisplayUsePokemonPowerScreen_WaitForInput: ; 1819 (0:1819)
+DisplayUsePokemonPowerScreen_WaitForInput:
push hl
call DisplayUsePokemonPowerScreen
pop hl
; fallthrough
-DrawWideTextBox_WaitForInput_ReturnCarry: ; 181e (0:181e)
+DrawWideTextBox_WaitForInput_ReturnCarry:
call DrawWideTextBox_WaitForInput
; fallthrough
-ReturnCarry: ; 1821 (0:1821)
+ReturnCarry:
scf
ret
-ClearNonTurnTemporaryDuelvars_ResetCarry: ; 1823 (0:1823)
+ClearNonTurnTemporaryDuelvars_ResetCarry:
bank1call ClearNonTurnTemporaryDuelvars
or a
ret
; called when attacker deals damage to itself due to confusion
; display the corresponding animation and deal 20 damage to self
-HandleConfusionDamageToSelf: ; 1828 (0:1828)
+HandleConfusionDamageToSelf:
bank1call DrawDuelMainScene
ld a, 1
ld [wIsDamageToSelf], a
@@ -1646,7 +1646,7 @@ HandleConfusionDamageToSelf: ; 1828 (0:1828)
ret
; use Pokemon Power
-UsePokemonPower: ; 184b (0:184b)
+UsePokemonPower:
call Func_7415
ld a, EFFECTCMDTYPE_INITIAL_EFFECT_2
call TryExecuteEffectCommandFunction
@@ -1668,7 +1668,7 @@ UsePokemonPower: ; 184b (0:184b)
; called by UseAttackOrPokemonPower (on an attack only)
; in a link duel, it's used to send the other game data about the
; attack being in use, triggering a call to OppAction_BeginUseAttack in the receiver
-SendAttackDataToLinkOpponent: ; 1874 (0:1874)
+SendAttackDataToLinkOpponent:
ld a, [wccec]
or a
ret nz
@@ -1691,7 +1691,7 @@ SendAttackDataToLinkOpponent: ; 1874 (0:1874)
ldh [hTemp_ffa0], a
ret
-Func_189d: ; 189d (0:189d)
+Func_189d:
ld a, [wLoadedAttackCategory]
bit RESIDUAL_F, a
ret nz
@@ -1725,7 +1725,7 @@ Func_189d: ; 189d (0:189d)
ret
; return carry and 1 into wGotHeadsFromConfusionCheck if damage will be dealt to oneself due to confusion
-CheckSelfConfusionDamage: ; 18d7 (0:18d7)
+CheckSelfConfusionDamage:
xor a
ld [wGotHeadsFromConfusionCheck], a
ld a, DUELVARS_ARENA_CARD_STATUS
@@ -1750,7 +1750,7 @@ CheckSelfConfusionDamage: ; 18d7 (0:18d7)
; play the trainer card with deck index at hTempCardIndex_ff98.
; a trainer card is like an attack effect, with its own effect commands.
; return nc if the card was played, carry if it wasn't.
-PlayTrainerCard: ; 18f9 (0:18f9)
+PlayTrainerCard:
call CheckCantUseTrainerDueToHeadache
jr c, .cant_use
ldh a, [hWhoseTurn]
@@ -1790,7 +1790,7 @@ PlayTrainerCard: ; 18f9 (0:18f9)
; loads the effect commands of a (trainer or energy) card with deck index (0-59) at hTempCardIndex_ff9f
; into wLoadedAttackEffectCommands. in practice, only used for trainer cards
-LoadNonPokemonCardEffectCommands: ; 1944 (0:1944)
+LoadNonPokemonCardEffectCommands:
ldh a, [hTempCardIndex_ff9f]
call LoadCardDataToBuffer1_FromDeckIndex
ld hl, wLoadedCard1EffectCommands
@@ -1804,7 +1804,7 @@ LoadNonPokemonCardEffectCommands: ; 1944 (0:1944)
; Make turn holder deal A damage to self due to recoil (e.g. Thrash, Selfdestruct)
; display recoil animation
-DealRecoilDamageToSelf: ; 1955 (0:1955)
+DealRecoilDamageToSelf:
push af
ld a, ATK_ANIM_RECOIL_HIT
ld [wLoadedAttackAnimation], a
@@ -1813,7 +1813,7 @@ DealRecoilDamageToSelf: ; 1955 (0:1955)
; Make turn holder deal A damage to self due to confusion
; display animation at wLoadedAttackAnimation
-DealConfusionDamageToSelf: ; 195c (0:195c)
+DealConfusionDamageToSelf:
ld hl, wDamage
ld [hli], a
ld [hl], 0
@@ -1845,7 +1845,7 @@ DealConfusionDamageToSelf: ; 195c (0:195c)
; - if the non-turn holder's arena card resists the turn holder's arena card color: reduce damage by 30
; - also apply Pluspower, Defender, and other kinds of damage reduction accordingly
; return resulting damage in de
-ApplyDamageModifiers_DamageToTarget: ; 1994 (0:1994)
+ApplyDamageModifiers_DamageToTarget:
xor a
ld [wDamageEffectiveness], a
ld hl, wDamage
@@ -1912,7 +1912,7 @@ ApplyDamageModifiers_DamageToTarget: ; 1994 (0:1994)
ret
; convert a color to its equivalent WR_* (weakness/resistance) value
-TranslateColorToWR: ; 1a0e (0:1a0e)
+TranslateColorToWR:
push hl
add LOW(InvertedPowersOf2)
ld l, a
@@ -1923,14 +1923,14 @@ TranslateColorToWR: ; 1a0e (0:1a0e)
pop hl
ret
-InvertedPowersOf2: ; 1a1a (0:1a1a)
+InvertedPowersOf2:
db $80, $40, $20, $10, $08, $04, $02, $01
; given a damage value at wDamage:
; - if the turn holder's arena card is weak to its own color: double damage
; - if the turn holder's arena card resists its own color: reduce damage by 30
; return resulting damage in de
-ApplyDamageModifiers_DamageToSelf: ; 1a22 (0:1a22)
+ApplyDamageModifiers_DamageToSelf:
xor a
ld [wDamageEffectiveness], a
ld hl, wDamage
@@ -1973,7 +1973,7 @@ ApplyDamageModifiers_DamageToSelf: ; 1a22 (0:1a22)
ret
; increases de by 10 points for each Pluspower found in location b
-ApplyAttachedPluspower: ; 1a69 (0:1a69)
+ApplyAttachedPluspower:
push de
call GetTurnDuelistVariable
ld de, PLUSPOWER
@@ -1988,7 +1988,7 @@ ApplyAttachedPluspower: ; 1a69 (0:1a69)
ret
; reduces de by 20 points for each Defender found in location b
-ApplyAttachedDefender: ; 1a7e (0:1a7e)
+ApplyAttachedDefender:
push de
call GetTurnDuelistVariable
ld de, DEFENDER
@@ -2008,7 +2008,7 @@ ApplyAttachedDefender: ; 1a7e (0:1a7e)
; hl: address to subtract HP from
; de: how much HP to subtract (damage to deal)
; returns carry if the HP does not become 0 as a result
-SubtractHP: ; 1a96 (0:1a96)
+SubtractHP:
push hl
push de
ld a, [hl]
@@ -2031,7 +2031,7 @@ SubtractHP: ; 1a96 (0:1a96)
; given a play area location offset in a, check if the turn holder's Pokemon card in
; that location has no HP left, and, if so, print that it was knocked out.
-PrintPlayAreaCardKnockedOutIfNoHP: ; 1aac (0:1aac)
+PrintPlayAreaCardKnockedOutIfNoHP:
ld e, a
add DUELVARS_ARENA_CARD_HP
call GetTurnDuelistVariable
@@ -2051,7 +2051,7 @@ PrintPlayAreaCardKnockedOutIfNoHP: ; 1aac (0:1aac)
scf
ret
-PrintKnockedOutIfHLZero: ; 1ad0 (0:1ad0)
+PrintKnockedOutIfHLZero:
ld a, [hl] ; this is supposed to point to a remaining HP value after some form of damage calculation
or a
ret nz
@@ -2059,7 +2059,7 @@ PrintKnockedOutIfHLZero: ; 1ad0 (0:1ad0)
; print in a text box that the Pokemon card at wTempNonTurnDuelistCardID
; was knocked out and wait 40 frames
-PrintKnockedOut: ; 1ad3 (0:1ad3)
+PrintKnockedOut:
ld a, [wTempNonTurnDuelistCardID]
ld e, a
call LoadCardDataToBuffer1_FromCardID
@@ -2082,7 +2082,7 @@ PrintKnockedOut: ; 1ad3 (0:1ad3)
; damage to deal is given in de.
; shows the defending player's play area screen when dealing the damage
; instead of the main duel interface with regular attack animation.
-DealDamageToPlayAreaPokemon_RegularAnim: ; 1af3 (0:1af3)
+DealDamageToPlayAreaPokemon_RegularAnim:
ld a, ATK_ANIM_BENCH_HIT
ld [wLoadedAttackAnimation], a
; fallthrough
@@ -2092,7 +2092,7 @@ DealDamageToPlayAreaPokemon_RegularAnim: ; 1af3 (0:1af3)
; shows the defending player's play area screen when dealing the damage
; instead of the main duel interface.
; plays animation that is loaded in wLoadedAttackAnimation.
-DealDamageToPlayAreaPokemon: ; 1af8 (0:1af8)
+DealDamageToPlayAreaPokemon:
ld a, b
ld [wTempPlayAreaLocation_cceb], a
or a ; cp PLAY_AREA_ARENA
@@ -2184,14 +2184,14 @@ DealDamageToPlayAreaPokemon: ; 1af8 (0:1af8)
; draw duel main scene, then print the "<Pokemon Lvxx>'s <attack>" text
; The Pokemon's name is the turn holder's arena Pokemon, and the
; attack's name is taken from wLoadedAttackName.
-DrawDuelMainScene_PrintPokemonsAttackText: ; 1b8d (0:1b8d)
+DrawDuelMainScene_PrintPokemonsAttackText:
bank1call DrawDuelMainScene
; fallthrough
; print the "<Pokemon Lvxx>'s <attack>" text
; The Pokemon's name is the turn holder's arena Pokemon, and the
; attack's name is taken from wLoadedAttackName.
-PrintPokemonsAttackText: ; 1b90 (0:1b90)
+PrintPokemonsAttackText:
ld a, DUELVARS_ARENA_CARD
call GetTurnDuelistVariable
call LoadCardDataToBuffer1_FromDeckIndex
@@ -2211,7 +2211,7 @@ PrintPokemonsAttackText: ; 1b90 (0:1b90)
call DrawWideTextBox_PrintText
ret
-Func_1bb4: ; 1bb4 (0:1bb4)
+Func_1bb4:
call Func_3b31
bank1call DrawDuelMainScene
call DrawDuelHUDs
@@ -2224,7 +2224,7 @@ Func_1bb4: ; 1bb4 (0:1bb4)
; prints one of the ThereWasNoEffectFrom*Text if wEffectFailed contains EFFECT_FAILED_NO_EFFECT,
; and prints WasUnsuccessfulText if wEffectFailed contains EFFECT_FAILED_UNSUCCESSFUL
-Func_1bca: ; 1bca (0:1bca)
+Func_1bca:
ld a, [wEffectFailed]
or a
ret z
@@ -2259,7 +2259,7 @@ Func_1bca: ; 1bca (0:1bca)
; return in a the retreat cost of the turn holder's arena or bench Pokemon
; given the PLAY_AREA_* value in hTempPlayAreaLocation_ff9d
-GetPlayAreaCardRetreatCost: ; 1c05 (0:1c05)
+GetPlayAreaCardRetreatCost:
ldh a, [hTempPlayAreaLocation_ff9d]
add DUELVARS_ARENA_CARD
call GetTurnDuelistVariable
@@ -2269,7 +2269,7 @@ GetPlayAreaCardRetreatCost: ; 1c05 (0:1c05)
; move the turn holder's card with ID at de to the discard pile
; if it's currently in the arena.
-MoveCardToDiscardPileIfInArena: ; 1c13 (0:1c13)
+MoveCardToDiscardPileIfInArena:
ld c, e
ld b, d
ld l, DUELVARS_CARD_LOCATIONS
@@ -2302,7 +2302,7 @@ MoveCardToDiscardPileIfInArena: ; 1c13 (0:1c13)
; output:
; a = damage;
; c = max HP.
-GetCardDamageAndMaxHP: ; 1c35 (0:1c35)
+GetCardDamageAndMaxHP:
push hl
push de
ld a, DUELVARS_ARENA_CARD
@@ -2327,7 +2327,7 @@ GetCardDamageAndMaxHP: ; 1c35 (0:1c35)
; fffff = flag address counting from wLoadedAttackFlag1
; bbb = flag bit
; return carry if the flag is set
-CheckLoadedAttackFlag: ; 1c50 (0:1c50)
+CheckLoadedAttackFlag:
push hl
push de
push bc
@@ -2360,7 +2360,7 @@ CheckLoadedAttackFlag: ; 1c50 (0:1c50)
; As a side effect, this also returns a duelist variable in a similar manner to
; GetNonTurnDuelistVariable, but this function appears to be
; only called to swap the turn value.
-SwapTurn: ; 1c72 (0:1c72)
+SwapTurn:
push af
push hl
call GetNonTurnDuelistVariable
@@ -2371,7 +2371,7 @@ SwapTurn: ; 1c72 (0:1c72)
ret
; copy the TX_END-terminated player's name from sPlayerName to de
-CopyPlayerName: ; 1c7d (0:1c7d)
+CopyPlayerName:
call EnableSRAM
ld hl, sPlayerName
.loop
@@ -2388,7 +2388,7 @@ CopyPlayerName: ; 1c7d (0:1c7d)
; if text ID at wOpponentName is non-0, copy it from there
; else, if text at wc500 is non-0, copy if from there
; else, copy Player2Text
-CopyOpponentName: ; 1c8e (0:1c8e)
+CopyOpponentName:
ld hl, wOpponentName
ld a, [hli]
or [hl]
diff --git a/src/home/duel_menus.asm b/src/home/duel_menus.asm
index a9af3c7..62f1ad1 100644
--- a/src/home/duel_menus.asm
+++ b/src/home/duel_menus.asm
@@ -1,4 +1,4 @@
-OpenDuelCheckMenu: ; 3096 (0:3096)
+OpenDuelCheckMenu:
ldh a, [hBankROM]
push af
ld a, BANK(_OpenDuelCheckMenu)
@@ -8,7 +8,7 @@ OpenDuelCheckMenu: ; 3096 (0:3096)
call BankswitchROM
ret
-OpenInPlayAreaScreen_FromSelectButton: ; 30a6 (0:30a6)
+OpenInPlayAreaScreen_FromSelectButton:
ldh a, [hBankROM]
push af
ld a, BANK(OpenInPlayAreaScreen)
@@ -27,7 +27,7 @@ OpenInPlayAreaScreen_FromSelectButton: ; 30a6 (0:30a6)
; similar to DrawYourOrOppPlayArea (bank 2) except it also draws a wide text box.
; this is because bank 2's DrawYourOrOppPlayArea is supposed to come from the Check Menu,
; so the text box is always already there.
-DrawYourOrOppPlayAreaScreen_Bank0: ; 30bc (0:30bc)
+DrawYourOrOppPlayAreaScreen_Bank0:
ld a, h
ld [wCheckMenuPlayAreaWhichDuelist], a
ld a, l
@@ -42,7 +42,7 @@ DrawYourOrOppPlayAreaScreen_Bank0: ; 30bc (0:30bc)
call BankswitchROM
ret
-DrawPlayersPrizeAndBenchCards: ; 30d7 (0:30d7)
+DrawPlayersPrizeAndBenchCards:
ldh a, [hBankROM]
push af
ld a, BANK(_DrawPlayersPrizeAndBenchCards)
@@ -52,7 +52,7 @@ DrawPlayersPrizeAndBenchCards: ; 30d7 (0:30d7)
call BankswitchROM
ret
-HandlePeekSelection: ; 30e7 (0:30e7)
+HandlePeekSelection:
ldh a, [hBankROM]
push af
ld a, BANK(_HandlePeekSelection)
@@ -64,7 +64,7 @@ HandlePeekSelection: ; 30e7 (0:30e7)
ld a, b
ret
-DrawAIPeekScreen: ; 30f9 (0:30f9)
+DrawAIPeekScreen:
ld b, a
ldh a, [hBankROM]
push af
@@ -76,7 +76,7 @@ DrawAIPeekScreen: ; 30f9 (0:30f9)
ret
; a = number of prize cards for player to select to take
-SelectPrizeCards: ; 310a (0:310a)
+SelectPrizeCards:
ld [wNumberOfPrizeCardsToSelect], a
ldh a, [hBankROM]
push af
@@ -87,7 +87,7 @@ SelectPrizeCards: ; 310a (0:310a)
call BankswitchROM
ret
-DrawPlayAreaToPlacePrizeCards: ; 311d (0:311d)
+DrawPlayAreaToPlacePrizeCards:
ldh a, [hBankROM]
push af
ld a, BANK(_DrawPlayAreaToPlacePrizeCards)
diff --git a/src/home/effect_commands.asm b/src/home/effect_commands.asm
index e28e170..dec5e1d 100644
--- a/src/home/effect_commands.asm
+++ b/src/home/effect_commands.asm
@@ -3,7 +3,7 @@
; input:
; a = command type to check
; [wLoadedAttackEffectCommands] = pointer to list of commands of current attack or trainer card
- TryExecuteEffectCommandFunction: ; 2fd9 (0:2fd9)
+ TryExecuteEffectCommandFunction:
push af
; grab pointer to command list from wLoadedAttackEffectCommands
ld hl, wLoadedAttackEffectCommands
@@ -38,7 +38,7 @@
; a = command type to check
; hl = list of commands of current attack or trainer card
; return nc if command type matching a is found, carry otherwise
-CheckMatchingCommand: ; 2ffe (0:2ffe)
+CheckMatchingCommand:
ld c, a
ld a, l
or h
diff --git a/src/home/empty_screen.asm b/src/home/empty_screen.asm
index 060f19e..6eeea50 100644
--- a/src/home/empty_screen.asm
+++ b/src/home/empty_screen.asm
@@ -1,5 +1,5 @@
; initialize the screen by emptying the tilemap. used during screen transitions
-EmptyScreen: ; 04a2 (0:04a2)
+EmptyScreen:
call DisableLCD
call FillTileMap
xor a
@@ -13,7 +13,7 @@ EmptyScreen: ; 04a2 (0:04a2)
call DisableLCD
ret
-AttrBlkPacket_EmptyScreen: ; 04bf (0:04bf)
+AttrBlkPacket_EmptyScreen:
sgb ATTR_BLK, 1 ; sgb_command, length
db 1 ; number of data sets
; Control Code, Color Palette Designation, X1, Y1, X2, Y2
@@ -23,7 +23,7 @@ AttrBlkPacket_EmptyScreen: ; 04bf (0:04bf)
; returns v*BGMap0 + BG_MAP_WIDTH * c + b in de.
; used to map coordinates at bc to a BGMap0 address.
-BCCoordToBGMap0Address: ; 04cf (0:04cf)
+BCCoordToBGMap0Address:
ld l, c
ld h, $0
add hl, hl
diff --git a/src/home/farcall.asm b/src/home/farcall.asm
index 8474ca9..1fc4ee8 100644
--- a/src/home/farcall.asm
+++ b/src/home/farcall.asm
@@ -1,7 +1,7 @@
; RST18
; this function affects the stack so that it returns to the pointer following
; the rst call. similar to rst 28, except this always loads bank 1
-Bank1Call: ; 09ae (0:09ae)
+Bank1Call:
push hl
push hl
push hl
@@ -30,7 +30,7 @@ Bank1Call: ; 09ae (0:09ae)
ld a, $1
; fallthrough
-Bank1Call_FarCall_Common: ; 09ce (0:09ce)
+Bank1Call_FarCall_Common:
call BankswitchROM
ld hl, sp+$d
inc de
@@ -59,7 +59,7 @@ SwitchToBankAtSP: ; 9dc (0:9dc)
; RST28
; this function affects the stack so that it returns
; to the three byte pointer following the rst call
-FarCall: ; 09e9 (0:09e9)
+FarCall:
push hl
push hl
push hl
diff --git a/src/home/frames.asm b/src/home/frames.asm
index 8ed36a2..c32053d 100644
--- a/src/home/frames.asm
+++ b/src/home/frames.asm
@@ -1,5 +1,5 @@
; calls DoFrame a times
-DoAFrames: ; 0536 (0:0536)
+DoAFrames:
.loop
push af
call DoFrame
@@ -10,7 +10,7 @@ DoAFrames: ; 0536 (0:0536)
; updates background, sprites and other game variables, halts until vblank, and reads user input
; if wDebugPauseAllowed is not 0, the game can be paused (and resumed) by pressing the SELECT button
-DoFrame: ; 053f (0:053f)
+DoFrame:
push af
push hl
push de
@@ -42,7 +42,7 @@ DoFrame: ; 053f (0:053f)
; handle D-pad repeat counter
; used to quickly scroll through menus when a relevant D-pad key is held
-HandleDPadRepeat: ; 0572 (0:0572)
+HandleDPadRepeat:
ldh a, [hKeysHeld]
ldh [hDPadHeld], a
and D_PAD
diff --git a/src/home/hblank.asm b/src/home/hblank.asm
index 24ec854..acf2eaa 100644
--- a/src/home/hblank.asm
+++ b/src/home/hblank.asm
@@ -1,5 +1,5 @@
; copy b bytes of data from hl to de, but only during hblank
-HblankCopyDataHLtoDE: ; 0c19 (0:0c19)
+HblankCopyDataHLtoDE:
push bc
.loop
ei
@@ -21,7 +21,7 @@ HblankCopyDataHLtoDE: ; 0c19 (0:0c19)
ret
; copy c bytes of data from de to hl, but only during hblank
-HblankCopyDataDEtoHL: ; 0c32 (0:0c32)
+HblankCopyDataDEtoHL:
push bc
.loop
ei
diff --git a/src/home/input.asm b/src/home/input.asm
index 184c50c..28e2e71 100644
--- a/src/home/input.asm
+++ b/src/home/input.asm
@@ -1,6 +1,6 @@
; read joypad data to refresh hKeysHeld, hKeysPressed, and hKeysReleased
; the A + B + Start + Select combination resets the game
-ReadJoypad: ; 04de (0:04de)
+ReadJoypad:
ld a, JOY_BTNS_SELECT
ldh [rJOYP], a
ldh a, [rJOYP]
@@ -40,12 +40,12 @@ ReadJoypad: ; 04de (0:04de)
call ResetSerial
; fallthrough
-Reset: ; 051b (0:051b)
+Reset:
ld a, [wInitialA]
di
jp Start
-SaveButtonsHeld: ; 0522 (0:0522)
+SaveButtonsHeld:
ld a, c
ldh [hKeysHeld], a
ld a, JOY_BTNS_SELECT | JOY_DPAD_SELECT
@@ -53,7 +53,7 @@ SaveButtonsHeld: ; 0522 (0:0522)
ret
; clear joypad hmem data
-ClearJoypad: ; 052a (0:052a)
+ClearJoypad:
push hl
ld hl, hDPadRepeat
xor a
diff --git a/src/home/interrupt.asm b/src/home/interrupt.asm
index 4b39271..19709c6 100644
--- a/src/home/interrupt.asm
+++ b/src/home/interrupt.asm
@@ -1,19 +1,19 @@
; enable timer interrupt
-EnableInt_Timer: ; 02dd (0:02dd)
+EnableInt_Timer:
ldh a, [rIE]
or 1 << INT_TIMER
ldh [rIE], a
ret
; enable vblank interrupt
-EnableInt_VBlank: ; 02e4 (0:02e4)
+EnableInt_VBlank:
ldh a, [rIE]
or 1 << INT_VBLANK
ldh [rIE], a
ret
; enable lcdc interrupt on hblank mode
-EnableInt_HBlank: ; 02eb (0:02eb)
+EnableInt_HBlank:
ldh a, [rSTAT]
or 1 << STAT_MODE_HBLANK
ldh [rSTAT], a
@@ -25,7 +25,7 @@ EnableInt_HBlank: ; 02eb (0:02eb)
ret
; disable lcdc interrupt and the hblank mode trigger
-DisableInt_HBlank: ; 02fb (0:02fb)
+DisableInt_HBlank:
ldh a, [rSTAT]
and ~(1 << STAT_MODE_HBLANK)
ldh [rSTAT], a
diff --git a/src/home/jumptable.asm b/src/home/jumptable.asm
index d0fe683..c5df987 100644
--- a/src/home/jumptable.asm
+++ b/src/home/jumptable.asm
@@ -1,5 +1,5 @@
; jumps to index a in pointer table hl
-JumpToFunctionInTable: ; 05ab (0:05ab)
+JumpToFunctionInTable:
add a
add l
ld l, a
@@ -12,7 +12,7 @@ JumpToFunctionInTable: ; 05ab (0:05ab)
jp hl
; call function at [hl] if non-NULL
-CallIndirect: ; 05b6 (0:05b6)
+CallIndirect:
push af
ld a, [hli]
or [hl]
@@ -26,5 +26,5 @@ CallIndirect: ; 05b6 (0:05b6)
pop af
; fallthrough
-CallHL: ; 05c1 (0:05c1)
+CallHL:
jp hl
diff --git a/src/home/lcd.asm b/src/home/lcd.asm
index 1d1d581..5e8fc5d 100644
--- a/src/home/lcd.asm
+++ b/src/home/lcd.asm
@@ -1,5 +1,5 @@
; wait for VBlankHandler to finish unless lcd is off
-WaitForVBlank: ; 0264 (0:0264)
+WaitForVBlank:
push hl
ld a, [wLCDC]
bit LCDC_ENABLE_F, a
@@ -16,7 +16,7 @@ WaitForVBlank: ; 0264 (0:0264)
ret
; turn LCD on
-EnableLCD: ; 0277 (0:0277)
+EnableLCD:
ld a, [wLCDC] ;
bit LCDC_ENABLE_F, a ;
ret nz ; assert that LCD is off
@@ -28,7 +28,7 @@ EnableLCD: ; 0277 (0:0277)
ret
; wait for vblank, then turn LCD off
-DisableLCD: ; 028a (0:028a)
+DisableLCD:
ldh a, [rLCDC] ;
bit LCDC_ENABLE_F, a ;
ret z ; assert that LCD is on
@@ -55,28 +55,28 @@ DisableLCD: ; 028a (0:028a)
ret
; set OBJ size: 8x8
-Set_OBJ_8x8: ; 02b9 (0:02b9)
+Set_OBJ_8x8:
ld a, [wLCDC]
and LCDC_OBJ8
ld [wLCDC], a
ret
; set OBJ size: 8x16
-Set_OBJ_8x16: ; 02c2 (0:02c2)
+Set_OBJ_8x16:
ld a, [wLCDC]
or LCDC_OBJ16
ld [wLCDC], a
ret
; set Window Display on
-Set_WD_on: ; 02cb (0:02cb)
+Set_WD_on:
ld a, [wLCDC]
or LCDC_WINON
ld [wLCDC], a
ret
; set Window Display off
-Set_WD_off: ; 02d4 (0:02d4)
+Set_WD_off:
ld a, [wLCDC]
and LCDC_WINOFF
ld [wLCDC], a
diff --git a/src/home/lcd_enable_frame.asm b/src/home/lcd_enable_frame.asm
index 253b32e..0127495 100644
--- a/src/home/lcd_enable_frame.asm
+++ b/src/home/lcd_enable_frame.asm
@@ -1,4 +1,4 @@
-DoFrameIfLCDEnabled: ; 3c48 (0:3c48)
+DoFrameIfLCDEnabled:
push af
ldh a, [rLCDC]
bit LCDC_ENABLE_F, a
diff --git a/src/home/list.asm b/src/home/list.asm
index e8e36db..70bf11f 100644
--- a/src/home/list.asm
+++ b/src/home/list.asm
@@ -1,5 +1,5 @@
; Save a pointer to a list, given at de, to wListPointer
-SetListPointer: ; 0c6c (0:0c6c)
+SetListPointer:
push hl
ld hl, wListPointer
ld [hl], e
@@ -10,7 +10,7 @@ SetListPointer: ; 0c6c (0:0c6c)
; Return the current element of the list at wListPointer,
; and advance the list to the next element
-GetNextElementOfList: ; 0c75 (0:0c75)
+GetNextElementOfList:
push hl
push de
ld hl, wListPointer
@@ -21,7 +21,7 @@ GetNextElementOfList: ; 0c75 (0:0c75)
inc de
; fallthrough
-SetListToNextPosition: ; 0c7f (0:0c7f)
+SetListToNextPosition:
ld [hl], d
dec hl
ld [hl], e
@@ -31,7 +31,7 @@ SetListToNextPosition: ; 0c7f (0:0c7f)
; Set the current element of the list at wListPointer to a,
; and advance the list to the next element
-SetNextElementOfList: ; 0c85 (0:0c85)
+SetNextElementOfList:
push hl
push de
ld hl, wListPointer
diff --git a/src/home/load_animation.asm b/src/home/load_animation.asm
index 5b64b7f..46b46ba 100644
--- a/src/home/load_animation.asm
+++ b/src/home/load_animation.asm
@@ -1,10 +1,10 @@
; clear [SOMETHING] - something relating to animations
-Func_3ca0: ; 3ca0 (0:3ca0)
+Func_3ca0:
xor a
ld [wd5d7], a
; fallthrough
-Func_3ca4: ; 3ca4 (0:3ca4)
+Func_3ca4:
ldh a, [hBankROM]
push af
ld a, BANK(Func_1296e)
@@ -14,7 +14,7 @@ Func_3ca4: ; 3ca4 (0:3ca4)
call BankswitchROM
ret
-HandleAllSpriteAnimations: ; 3cb4 (0:3cb4)
+HandleAllSpriteAnimations:
ldh a, [hBankROM]
push af
ld a, BANK(_HandleAllSpriteAnimations)
@@ -26,7 +26,7 @@ HandleAllSpriteAnimations: ; 3cb4 (0:3cb4)
; hl - pointer to animation frame
; wd5d6 - bank of animation frame
-DrawSpriteAnimationFrame: ; 3cc4 (0:3cc4)
+DrawSpriteAnimationFrame:
ldh a, [hBankROM]
push af
ld a, [wd5d6]
@@ -143,7 +143,7 @@ DrawSpriteAnimationFrame: ; 3cc4 (0:3cc4)
; the current frame's offset
; [wd4ca] - current frame offset
; wTempPointer* - Pointer to current Animation
-GetAnimationFramePointer: ; 3d72 (0:3d72)
+GetAnimationFramePointer:
ldh a, [hBankROM]
push af
push hl
@@ -194,7 +194,7 @@ GetAnimationFramePointer: ; 3d72 (0:3d72)
; return hl pointing to the start of a sprite in wSpriteAnimBuffer.
; the sprite is identified by its index in wWhichSprite.
-GetFirstSpriteAnimBufferProperty: ; 3db7 (0:3db7)
+GetFirstSpriteAnimBufferProperty:
push bc
ld c, SPRITE_ANIM_ENABLED
call GetSpriteAnimBufferProperty
@@ -203,11 +203,11 @@ GetFirstSpriteAnimBufferProperty: ; 3db7 (0:3db7)
; return hl pointing to the property (byte) c of a sprite in wSpriteAnimBuffer.
; the sprite is identified by its index in wWhichSprite.
-GetSpriteAnimBufferProperty: ; 3dbf (0:3dbf)
+GetSpriteAnimBufferProperty:
ld a, [wWhichSprite]
; fallthrough
-GetSpriteAnimBufferProperty_SpriteInA: ; 3dc2 (0:3dc2)
+GetSpriteAnimBufferProperty_SpriteInA:
cp SPRITE_ANIM_BUFFER_CAPACITY
jr c, .got_sprite
debug_nop
@@ -227,7 +227,7 @@ GetSpriteAnimBufferProperty_SpriteInA: ; 3dc2 (0:3dc2)
pop bc
ret
-Func_3ddb: ; 3ddb (0:3ddb)
+Func_3ddb:
push hl
push bc
ld c, SPRITE_ANIM_FLAGS
@@ -237,7 +237,7 @@ Func_3ddb: ; 3ddb (0:3ddb)
pop hl
ret
-Func_3de7: ; 3de7 (0:3de7)
+Func_3de7:
push hl
push bc
ld c, SPRITE_ANIM_FLAGS
@@ -247,7 +247,7 @@ Func_3de7: ; 3de7 (0:3de7)
pop hl
ret
-LoadScene: ; 3df3 (0:3df3)
+LoadScene:
push af
ldh a, [hBankROM]
push af
@@ -266,13 +266,13 @@ LoadScene: ; 3df3 (0:3df3)
ret
; draws player's portrait at b,c
-DrawPlayerPortrait: ; 3e10 (0:3e10)
+DrawPlayerPortrait:
ld a, $1
ld [wd61e], a
ld a, TILEMAP_PLAYER
; fallthrough
-Func_3e17: ; 3e17 (0:3e17)
+Func_3e17:
ld [wCurTilemap], a
ldh a, [hBankROM]
push af
@@ -284,12 +284,12 @@ Func_3e17: ; 3e17 (0:3e17)
ret
; draws opponent's portrait given in a at b,c
-Func_3e2a: ; 3e2a (0:3e2a)
+Func_3e2a:
ld [wd61e], a
ld a, TILEMAP_OPPONENT
jr Func_3e17
-Func_3e31: ; 3e31 (0:3e31)
+Func_3e31:
ldh a, [hBankROM]
push af
call HandleAllSpriteAnimations
diff --git a/src/home/load_deck.asm b/src/home/load_deck.asm
index 2fc3f8c..b1c7f74 100644
--- a/src/home/load_deck.asm
+++ b/src/home/load_deck.asm
@@ -1,7 +1,7 @@
; loads the deck id in a from DeckPointers and copies it to wPlayerDeck or to
; wOpponentDeck, depending on whose turn it is.
; sets carry flag if an invalid deck id is used.
-LoadDeck: ; 302c (0:302c)
+LoadDeck:
push hl
ld l, a
ld h, $0
diff --git a/src/home/map.asm b/src/home/map.asm
index 06619a1..b00d456 100644
--- a/src/home/map.asm
+++ b/src/home/map.asm
@@ -1,5 +1,5 @@
-OverworldDoFrameFunction: ; 380e (0:380e)
+OverworldDoFrameFunction:
ld a, [wOverworldNPCFlags]
bit HIDE_ALL_NPC_SPRITES, a
ret nz
@@ -23,7 +23,7 @@ OverworldDoFrameFunction: ; 380e (0:380e)
; enable the play time counter and execute the game event at [wGameEvent].
; then return to the overworld, or restart the game (only after Credits).
-ExecuteGameEvent: ; 383d (0:383d)
+ExecuteGameEvent:
ld a, 1
ld [wPlayTimeCounterEnable], a
ldh a, [hBankROM]
@@ -39,7 +39,7 @@ ExecuteGameEvent: ; 383d (0:383d)
ret
; execute a game event at [wGameEvent] from GameEventPointerTable
-_ExecuteGameEvent: ; 3855 (0:3855)
+_ExecuteGameEvent:
ld a, [wGameEvent]
cp NUM_GAME_EVENTS
jr c, .got_game_event
@@ -48,7 +48,7 @@ _ExecuteGameEvent: ; 3855 (0:3855)
ld hl, GameEventPointerTable
jp JumpToFunctionInTable
-GameEventPointerTable: ; 3864 (0:3864)
+GameEventPointerTable:
dw GameEvent_Overworld
dw GameEvent_Duel
dw GameEvent_BattleCenter
@@ -58,11 +58,11 @@ GameEventPointerTable: ; 3864 (0:3864)
dw GameEvent_ChallengeMachine
dw GameEvent_Overworld
-GameEvent_Overworld: ; 3874 (0:3874)
+GameEvent_Overworld:
scf
ret
-GameEvent_GiftCenter: ; 3876 (0:3876)
+GameEvent_GiftCenter:
ldh a, [hBankROM]
push af
call PauseSong
@@ -83,7 +83,7 @@ GameEvent_GiftCenter: ; 3876 (0:3876)
scf
ret
-GameEvent_BattleCenter: ; 38a3 (0:38a3)
+GameEvent_BattleCenter:
ld a, GAME_EVENT_BATTLE_CENTER
ld [wActiveGameEvent], a
xor a
@@ -98,7 +98,7 @@ GameEvent_BattleCenter: ; 38a3 (0:38a3)
scf
ret
-GameEvent_Duel: ; 38c0 (0:38c0)
+GameEvent_Duel:
ld a, GAME_EVENT_DUEL
ld [wActiveGameEvent], a
xor a
@@ -112,7 +112,7 @@ GameEvent_Duel: ; 38c0 (0:38c0)
scf
ret
-GameEvent_ChallengeMachine: ; 38db (0:38db)
+GameEvent_ChallengeMachine:
ld a, MUSIC_PC_MAIN_MENU
ld [wDefaultSong], a
call PlayDefaultSong
@@ -128,7 +128,7 @@ GameEvent_ChallengeMachine: ; 38db (0:38db)
scf
ret
-GameEvent_ContinueDuel: ; 38fb (0:38fb)
+GameEvent_ContinueDuel:
xor a
ld [wSongOverride], a
bank1call TryContinueDuel
@@ -140,12 +140,12 @@ GameEvent_ContinueDuel: ; 38fb (0:38fb)
scf
ret
-GameEvent_Credits: ; 3911 (0:3911)
+GameEvent_Credits:
farcall Credits_1d6ad
or a
ret
-GetReceivedLegendaryCards: ; 3917 (0:3917)
+GetReceivedLegendaryCards:
ld a, EVENT_RECEIVED_LEGENDARY_CARDS
farcall GetEventValue
call EnableSRAM
@@ -154,7 +154,7 @@ GetReceivedLegendaryCards: ; 3917 (0:3917)
ret
; return in a the permission byte corresponding to the current map's x,y coordinates at bc
-GetPermissionOfMapPosition: ; 3927 (0:3927)
+GetPermissionOfMapPosition:
push hl
call GetPermissionByteOfMapPosition
ld a, [hl]
@@ -162,7 +162,7 @@ GetPermissionOfMapPosition: ; 3927 (0:3927)
ret
; set to a the permission byte corresponding to the current map's x,y coordinates at bc
-SetPermissionOfMapPosition: ; 392e (0:392e)
+SetPermissionOfMapPosition:
push hl
push af
call GetPermissionByteOfMapPosition
@@ -173,7 +173,7 @@ SetPermissionOfMapPosition: ; 392e (0:392e)
; set the permission byte corresponding to the current map's x,y coordinates at bc
; to the value of register a anded by its current value
-UpdatePermissionOfMapPosition: ; 3937 (0:3937)
+UpdatePermissionOfMapPosition:
push hl
push bc
push de
@@ -190,7 +190,7 @@ UpdatePermissionOfMapPosition: ; 3937 (0:3937)
; returns in hl the address within wPermissionMap that corresponds to
; the current map's x,y coordinates at bc
-GetPermissionByteOfMapPosition: ; 3946 (0:3946)
+GetPermissionByteOfMapPosition:
push bc
srl b
srl c
@@ -206,7 +206,7 @@ GetPermissionByteOfMapPosition: ; 3946 (0:3946)
ret
; copy c bytes of data from hl in bank wTempPointerBank to de, b times.
-CopyGfxDataFromTempBank: ; 395a (0:395a)
+CopyGfxDataFromTempBank:
ldh a, [hBankROM]
push af
ld a, [wTempPointerBank]
@@ -217,20 +217,20 @@ CopyGfxDataFromTempBank: ; 395a (0:395a)
ret
; Movement offsets for player movements
-PlayerMovementOffsetTable: ; 396b (0:396b)
+PlayerMovementOffsetTable:
db 0, -1 ; NORTH
db 1, 0 ; EAST
db 0, 1 ; SOUTH
db -1, 0 ; WEST
; Movement offsets for player movements, in tiles
-PlayerMovementOffsetTable_Tiles: ; 3973 (0:3973)
+PlayerMovementOffsetTable_Tiles:
db 0, -2 ; NORTH
db 2, 0 ; EAST
db 0, 2 ; SOUTH
db -2, 0 ; WEST
-OverworldMapNames: ; 397b (0:397b)
+OverworldMapNames:
tx OverworldMapMasonLaboratoryText
tx OverworldMapMasonLaboratoryText
tx OverworldMapIshiharasHouseText
@@ -246,7 +246,7 @@ OverworldMapNames: ; 397b (0:397b)
tx OverworldMapPokemonDomeText
tx OverworldMapMysteryHouseText
-Func_3997: ; 3997 (0:3997)
+Func_3997:
ldh a, [hBankROM]
push af
ld a, BANK(Func_1c056)
@@ -257,13 +257,13 @@ Func_3997: ; 3997 (0:3997)
ret
; returns in hl a pointer to the first element for the a'th NPC
-GetLoadedNPCID: ; 39a7 (0:39a7)
+GetLoadedNPCID:
ld l, LOADED_NPC_ID
call GetItemInLoadedNPCIndex
ret
; return in hl a pointer to the a'th items element l
-GetItemInLoadedNPCIndex: ; 39ad (0:39ad)
+GetItemInLoadedNPCIndex:
push bc
cp LOADED_NPC_MAX
jr c, .asm_39b4
@@ -286,7 +286,7 @@ GetItemInLoadedNPCIndex: ; 39ad (0:39ad)
; Finds the index on wLoadedNPCs table of the npc in wTempNPC
; returns it in a and puts it into wLoadedNPCTempIndex
; c flag set if no npc found
-FindLoadedNPC: ; 39c3 (0:39c3)
+FindLoadedNPC:
push hl
push bc
push de
@@ -316,7 +316,7 @@ FindLoadedNPC: ; 39c3 (0:39c3)
pop hl
ret
-GetNextNPCMovementByte: ; 39ea (0:39ea)
+GetNextNPCMovementByte:
push bc
ldh a, [hBankROM]
push af
@@ -330,7 +330,7 @@ GetNextNPCMovementByte: ; 39ea (0:39ea)
pop bc
ret
-PlayDefaultSong: ; 39fc (0:39fc)
+PlayDefaultSong:
push hl
push bc
call AssertSongFinished
@@ -356,7 +356,7 @@ PlayDefaultSong: ; 39fc (0:39fc)
ret
; returns [wDefaultSong] or MUSIC_RONALD in a
-GetDefaultSong: ; 3a1f (0:3a1f)
+GetDefaultSong:
ld a, [wRonaldIsInMap]
or a
jr z, .default_song
diff --git a/src/home/math.asm b/src/home/math.asm
index 1cf39dd..8e54cb8 100644
--- a/src/home/math.asm
+++ b/src/home/math.asm
@@ -1,5 +1,5 @@
; returns a *= 10
-ATimes10: ; 0c4b (0:0c4b)
+ATimes10:
push de
ld e, a
add a
@@ -10,7 +10,7 @@ ATimes10: ; 0c4b (0:0c4b)
ret
; returns hl *= 10
-HLTimes10: ; 0c53 (0:0c53)
+HLTimes10:
push de
ld l, a
ld e, a
@@ -25,7 +25,7 @@ HLTimes10: ; 0c53 (0:0c53)
; returns a /= 10
; returns carry if a % 10 >= 5
-ADividedBy10: ; 0c5f (0:0c5f)
+ADividedBy10:
push de
ld e, -1
.asm_c62
diff --git a/src/home/memory.asm b/src/home/memory.asm
index b07ffd8..c5c3317 100644
--- a/src/home/memory.asm
+++ b/src/home/memory.asm
@@ -3,7 +3,7 @@
; input:
; bc = row width
; de = buffer to place decompressed data
-DecompressDataFromBank: ; 3be4 (0:3be4)
+DecompressDataFromBank:
ldh a, [hBankROM]
push af
ld a, [wTempPointerBank]
@@ -14,7 +14,7 @@ DecompressDataFromBank: ; 3be4 (0:3be4)
ret
; Copies bc bytes from [wTempPointer] to de
-CopyBankedDataToDE: ; 3bf5 (0:3bf5)
+CopyBankedDataToDE:
ldh a, [hBankROM]
push af
push hl
@@ -31,7 +31,7 @@ CopyBankedDataToDE: ; 3bf5 (0:3bf5)
ret
; fill bc bytes of data at hl with a
-FillMemoryWithA: ; 3c10 (0:3c10)
+FillMemoryWithA:
push hl
push de
push bc
@@ -49,7 +49,7 @@ FillMemoryWithA: ; 3c10 (0:3c10)
ret
; fill 2*bc bytes of data at hl with d,e
-FillMemoryWithDE: ; 3c1f (0:3c1f)
+FillMemoryWithDE:
push hl
push bc
.loop
@@ -66,7 +66,7 @@ FillMemoryWithDE: ; 3c1f (0:3c1f)
ret
; gets far byte a:hl, outputs value in a
-GetFarByte: ; 3c2d (0:3c2d)
+GetFarByte:
push hl
push af
ldh a, [hBankROM]
diff --git a/src/home/menus.asm b/src/home/menus.asm
index 8300cb6..dbb4c25 100644
--- a/src/home/menus.asm
+++ b/src/home/menus.asm
@@ -3,7 +3,7 @@
; a = list length
; de = initial page scroll offset, initial item (in the visible page)
; hl: 9 bytes with the rest of the parameters
- InitializeCardListParameters: ; 25ea (0:25ea)
+ InitializeCardListParameters:
ld [wNumListItems], a
ld a, d
ld [wListScrollOffset], a
@@ -39,7 +39,7 @@
; state of the list in a, d, and e if A or B were pressed. also returns carry
; if A or B were pressed, nc otherwise. returns -1 in a if B was pressed.
; used for example in the Hand card list and Discard Pile card list screens.
-HandleCardListInput: ; 2626 (0:2626)
+HandleCardListInput:
call HandleMenuInput
ret nc
ld a, [wListScrollOffset]
@@ -55,7 +55,7 @@ HandleCardListInput: ; 2626 (0:2626)
; wCursorXPosition, wCursorYPosition, wYDisplacementBetweenMenuItems, wNumMenuItems,
; wCursorTile, wTileBehindCursor, wMenuFunctionPointer.
; also sets the current menu item (wCurMenuItem) to the one specified in register a.
-InitializeMenuParameters: ; 2636 (0:2636)
+InitializeMenuParameters:
ld [wCurMenuItem], a
ldh [hCurMenuItem], a
ld de, wCursorXPosition
@@ -73,7 +73,7 @@ InitializeMenuParameters: ; 2636 (0:2636)
; returns with the carry flag set if A or B were pressed
; returns a = 0 if A was pressed, a = -1 if B was pressed
; note: return values still subject to those of the function at [wMenuFunctionPointer] if any
-HandleMenuInput: ; 264b (0:264b)
+HandleMenuInput:
xor a
ld [wRefreshMenuCursorSFX], a
ldh a, [hDPadHeld]
@@ -146,7 +146,7 @@ HandleMenuInput: ; 264b (0:264b)
; plays an "open screen" sound (SFX_02) if [hCurMenuItem] != 0xff
; plays an "exit screen" sound (SFX_03) if [hCurMenuItem] == 0xff
-PlayOpenOrExitScreenSFX: ; 26c0 (0:26c0)
+PlayOpenOrExitScreenSFX:
push af
ldh a, [hCurMenuItem]
inc a
@@ -163,14 +163,14 @@ PlayOpenOrExitScreenSFX: ; 26c0 (0:26c0)
; called once per frame when a menu is open
; play the sound effect at wRefreshMenuCursorSFX if non-0 and blink the
; cursor when wCursorBlinkCounter hits 16 (i.e. every 16 frames)
-RefreshMenuCursor_CheckPlaySFX: ; 26d1 (0:26d1)
+RefreshMenuCursor_CheckPlaySFX:
ld a, [wRefreshMenuCursorSFX]
or a
jr z, RefreshMenuCursor
call PlaySFX
; fallthrough
-RefreshMenuCursor: ; 26da (0:26da)
+RefreshMenuCursor:
ld hl, wCursorBlinkCounter
ld a, [hl]
inc [hl]
@@ -183,12 +183,12 @@ RefreshMenuCursor: ; 26da (0:26da)
; fallthrough
; set the tile at [wCursorXPosition],[wCursorYPosition] to [wTileBehindCursor]
-EraseCursor: ; 26e9 (0:26e9)
+EraseCursor:
ld a, [wTileBehindCursor]
; fallthrough
; set the tile at [wCursorXPosition],[wCursorYPosition] to a
-DrawCursor: ; 26ec (0:26ec)
+DrawCursor:
ld c, a
ld a, [wYDisplacementBetweenMenuItems]
ld l, a
@@ -210,12 +210,12 @@ DrawCursor: ; 26ec (0:26ec)
ret
; set the tile at [wCursorXPosition],[wCursorYPosition] to [wCursorTile]
-DrawCursor2: ; 270b (0:270b)
+DrawCursor2:
ld a, [wCursorTile]
jr DrawCursor
; set wCurMenuItem, and hCurMenuItem to a, and zero wCursorBlinkCounter
-SetMenuItem: ; 2710 (0:2710)
+SetMenuItem:
ld [wCurMenuItem], a
ldh [hCurMenuItem], a
xor a
@@ -226,7 +226,7 @@ SetMenuItem: ; 2710 (0:2710)
; only handles input not involving the B, START, or SELECT buttons, that is,
; navigating through the menu or selecting an item with the A button.
; other input in handled by PrintDuelMenuAndHandleInput.handle_input
-HandleDuelMenuInput: ; 271a (0:271a)
+HandleDuelMenuInput:
ldh a, [hDPadHeld]
or a
jr z, .blink_cursor
@@ -301,7 +301,7 @@ HandleDuelMenuInput: ; 271a (0:271a)
or a
ret
-DuelMenuCursorCoords: ; 278d (0:278d)
+DuelMenuCursorCoords:
db 2, 14 ; Hand
db 2, 16 ; Attack
db 8, 14 ; Check
@@ -315,7 +315,7 @@ DuelMenuCursorCoords: ; 278d (0:278d)
; a = list length
; de = initial page scroll offset, initial item (in the visible page)
; hl: 9 bytes with the rest of the parameters
-PrintCardListItems: ; 2799 (0:2799)
+PrintCardListItems:
call InitializeCardListParameters
ld hl, wMenuFunctionPointer
ld a, LOW(CardListMenuFunction)
@@ -330,7 +330,7 @@ PrintCardListItems: ; 2799 (0:2799)
; like PrintCardListItems, except more parameters are already initialized
; called instead of PrintCardListItems to reload the list after moving up or down
-ReloadCardListItems: ; 27af (0:27af)
+ReloadCardListItems:
ld e, SYM_SPACE
ld a, [wListScrollOffset]
or a
@@ -402,7 +402,7 @@ ReloadCardListItems: ; 27af (0:27af)
ret
; reload a list of cards, except don't print their names
-Func_2827: ; 2827 (0:2827)
+Func_2827:
ld a, $01
ldh [hffb0], a
call ReloadCardListItems
@@ -412,7 +412,7 @@ Func_2827: ; 2827 (0:2827)
; convert the number at a to TX_SYMBOL text format and write it to wDefaultText
; if the first digit is a 0, delete it and shift the number one tile to the left
-OneByteNumberToTxSymbol_TrimLeadingZerosAndAlign: ; 2832 (0:2832)
+OneByteNumberToTxSymbol_TrimLeadingZerosAndAlign:
call OneByteNumberToTxSymbol
ld a, [hli]
cp SYM_0
@@ -426,7 +426,7 @@ OneByteNumberToTxSymbol_TrimLeadingZerosAndAlign: ; 2832 (0:2832)
; this function is always loaded to wMenuFunctionPointer by PrintCardListItems
; takes care of things like handling page scrolling and calling the function at wListFunctionPointer
-CardListMenuFunction: ; 283f (0:283f)
+CardListMenuFunction:
ldh a, [hDPadHeld]
ld b, a
ld a, [wNumMenuItems]
@@ -595,7 +595,7 @@ CardListMenuFunction: ; 283f (0:283f)
; convert the number at a to TX_SYMBOL text format and write it to wDefaultText
; replace leading zeros with SYM_SPACE
-OneByteNumberToTxSymbol_TrimLeadingZeros: ; 296a (0:296a)
+OneByteNumberToTxSymbol_TrimLeadingZeros:
call OneByteNumberToTxSymbol
ld a, [hl]
cp SYM_0
@@ -604,7 +604,7 @@ OneByteNumberToTxSymbol_TrimLeadingZeros: ; 296a (0:296a)
ret
; convert the number at a to TX_SYMBOL text format and write it to wDefaultText
-OneByteNumberToTxSymbol: ; 2974 (0:2974)
+OneByteNumberToTxSymbol:
ld hl, wDefaultText
push hl
ld e, SYM_0 - 1
@@ -621,7 +621,7 @@ OneByteNumberToTxSymbol: ; 2974 (0:2974)
ret
; translate the TYPE_* constant in wLoadedCard1Type to an index for CardSymbolTable
-CardTypeToSymbolID: ; 2988 (0:2988)
+CardTypeToSymbolID:
ld a, [wLoadedCard1Type]
cp TYPE_TRAINER
jr nc, .trainer_card
@@ -640,7 +640,7 @@ CardTypeToSymbolID: ; 2988 (0:2988)
; return the entry in CardSymbolTable of the TYPE_* constant in wLoadedCard1Type
; also return the first byte of said entry (starting tile number) in a
-GetCardSymbolData: ; 299f (0:299f)
+GetCardSymbolData:
call CardTypeToSymbolID
add a
ld c, a
@@ -651,7 +651,7 @@ GetCardSymbolData: ; 299f (0:299f)
ret
; draw, at de, the 2x2 tile card symbol associated to the TYPE_* constant in wLoadedCard1Type
-DrawCardSymbol: ; 29ac (0:29ac)
+DrawCardSymbol:
push hl
push de
push bc
@@ -699,21 +699,21 @@ CardSymbolTable:
; copy the name and level of the card at wLoadedCard1 to wDefaultText
; a = length in number of tiles (the resulting string will be padded with spaces to match it)
-CopyCardNameAndLevel: ; 29f5 (0:29f5)
+CopyCardNameAndLevel:
farcall _CopyCardNameAndLevel
ret
; sets cursor parameters for navigating in a text box, but using
; default values for the cursor tile (SYM_CURSOR_R) and the tile behind it (SYM_SPACE).
; d,e: coordinates of the cursor
-SetCursorParametersForTextBox_Default: ; 29fa (0:29fa)
+SetCursorParametersForTextBox_Default:
lb bc, SYM_CURSOR_R, SYM_SPACE ; cursor tile, tile behind cursor
call SetCursorParametersForTextBox
; fallthrough
; wait until A or B is pressed.
; return carry if A is pressed, nc if B is pressed. erase the cursor either way
-WaitForButtonAorB: ; 2a00 (0:2a00)
+WaitForButtonAorB:
call DoFrame
call RefreshMenuCursor
ldh a, [hKeysPressed]
@@ -732,7 +732,7 @@ WaitForButtonAorB: ; 2a00 (0:2a00)
; sets cursor parameters for navigating in a text box
; d,e: coordinates of the cursor
; b,c: tile numbers of the cursor and of the tile behind it
-SetCursorParametersForTextBox: ; 2a1a (0:2a1a)
+SetCursorParametersForTextBox:
xor a
ld hl, wCurMenuItem
ld [hli], a
@@ -752,13 +752,13 @@ SetCursorParametersForTextBox: ; 2a1a (0:2a1a)
; draw a 20x6 text box aligned to the bottom of the screen,
; print the text at hl without letter delay, and wait for A or B pressed
-DrawWideTextBox_PrintTextNoDelay_Wait: ; 2a30 (0:2a30)
+DrawWideTextBox_PrintTextNoDelay_Wait:
call DrawWideTextBox_PrintTextNoDelay
jp WaitForWideTextBoxInput
; draw a 20x6 text box aligned to the bottom of the screen
; and print the text at hl without letter delay
-DrawWideTextBox_PrintTextNoDelay: ; 2a36 (0:2a36)
+DrawWideTextBox_PrintTextNoDelay:
push hl
call DrawWideTextBox
ld a, 19
@@ -766,13 +766,13 @@ DrawWideTextBox_PrintTextNoDelay: ; 2a36 (0:2a36)
; draw a 12x6 text box aligned to the bottom left of the screen
; and print the text at hl without letter delay
-DrawNarrowTextBox_PrintTextNoDelay: ; 2a3e (0:2a3e)
+DrawNarrowTextBox_PrintTextNoDelay:
push hl
call DrawNarrowTextBox
ld a, 11
; fallthrough
-DrawTextBox_PrintTextNoDelay: ; 2a44 (0:2a44)
+DrawTextBox_PrintTextNoDelay:
lb de, 1, 14
call AdjustCoordinatesForBGScroll
call InitTextPrintingInTextbox
@@ -785,7 +785,7 @@ DrawTextBox_PrintTextNoDelay: ; 2a44 (0:2a44)
; draw a 20x6 text box aligned to the bottom of the screen
; and print the text at hl with letter delay
-DrawWideTextBox_PrintText: ; 2a59 (0:2a59)
+DrawWideTextBox_PrintText:
push hl
call DrawWideTextBox
ld a, 19
@@ -797,7 +797,7 @@ DrawWideTextBox_PrintText: ; 2a59 (0:2a59)
jp PrintText
; draw a 12x6 text box aligned to the bottom left of the screen
-DrawNarrowTextBox: ; 2a6f (0:2a6f)
+DrawNarrowTextBox:
lb de, 0, 12
lb bc, 12, 6
call AdjustCoordinatesForBGScroll
@@ -806,7 +806,7 @@ DrawNarrowTextBox: ; 2a6f (0:2a6f)
; draw a 12x6 text box aligned to the bottom left of the screen,
; print the text at hl without letter delay, and wait for A or B pressed
-DrawNarrowTextBox_WaitForInput: ; 2a7c (0:2a7c)
+DrawNarrowTextBox_WaitForInput:
call DrawNarrowTextBox_PrintTextNoDelay
xor a
ld hl, NarrowTextBoxMenuParameters
@@ -820,7 +820,7 @@ DrawNarrowTextBox_WaitForInput: ; 2a7c (0:2a7c)
jr z, .wait_A_or_B_loop
ret
-NarrowTextBoxMenuParameters: ; 2a96 (0:2a96)
+NarrowTextBoxMenuParameters:
db 10, 17 ; cursor x, cursor y
db 1 ; y displacement between items
db 1 ; number of items
@@ -829,7 +829,7 @@ NarrowTextBoxMenuParameters: ; 2a96 (0:2a96)
dw NULL ; function pointer if non-0
; draw a 20x6 text box aligned to the bottom of the screen
-DrawWideTextBox: ; 2a9e (0:2a9e)
+DrawWideTextBox:
lb de, 0, 12
lb bc, 20, 6
call AdjustCoordinatesForBGScroll
@@ -838,12 +838,12 @@ DrawWideTextBox: ; 2a9e (0:2a9e)
; draw a 20x6 text box aligned to the bottom of the screen,
; print the text at hl with letter delay, and wait for A or B pressed
-DrawWideTextBox_WaitForInput: ; 2aab (0:2aab)
+DrawWideTextBox_WaitForInput:
call DrawWideTextBox_PrintText
; fallthrough
; wait for A or B to be pressed on a wide (20x6) text box
-WaitForWideTextBoxInput: ; 2aae (0:2aae)
+WaitForWideTextBoxInput:
xor a
ld hl, WideTextBoxMenuParameters
call InitializeMenuParameters
@@ -857,7 +857,7 @@ WaitForWideTextBoxInput: ; 2aae (0:2aae)
call EraseCursor
ret
-WideTextBoxMenuParameters: ; 2ac8 (0:2ac8)
+WideTextBoxMenuParameters:
db 18, 17 ; cursor x, cursor y
db 1 ; y displacement between items
db 1 ; number of items
@@ -866,7 +866,7 @@ WideTextBoxMenuParameters: ; 2ac8 (0:2ac8)
dw NULL ; function pointer if non-0
; display a two-item horizontal menu with custom text provided in hl and handle input
-TwoItemHorizontalMenu: ; 2ad0 (0:2ad0)
+TwoItemHorizontalMenu:
call DrawWideTextBox_PrintText
lb de, 6, 16 ; x, y
ld a, d
@@ -878,7 +878,7 @@ TwoItemHorizontalMenu: ; 2ad0 (0:2ad0)
call EnableLCD
jp HandleYesOrNoMenu.refresh_menu
-YesOrNoMenuWithText_SetCursorToYes: ; 2aeb (0:2aeb)
+YesOrNoMenuWithText_SetCursorToYes:
ld a, $01
ld [wDefaultYesOrNo], a
; fallthrough
@@ -886,13 +886,13 @@ YesOrNoMenuWithText_SetCursorToYes: ; 2aeb (0:2aeb)
; display a yes / no menu in a 20x8 textbox with custom text provided in hl and handle input
; wDefaultYesOrNo determines whether the cursor initially points to YES or to NO
; returns carry if "no" selected
-YesOrNoMenuWithText: ; 2af0 (0:2af0)
+YesOrNoMenuWithText:
call DrawWideTextBox_PrintText
; fallthrough
; prints the YES / NO menu items at coordinates x,y = 7,16 and handles input
; input: wDefaultYesOrNo. returns carry if "no" selected
-YesOrNoMenu: ; 2af3 (0:2af3)
+YesOrNoMenu:
lb de, 7, 16 ; x, y
call PrintYesOrNoItems
lb de, 6, 16 ; x, y
@@ -900,14 +900,14 @@ YesOrNoMenu: ; 2af3 (0:2af3)
; prints the YES / NO menu items at coordinates x,y = 3,16 and handles input
; input: wDefaultYesOrNo. returns carry if "no" selected
-YesOrNoMenuWithText_LeftAligned: ; 2afe (0:2afe)
+YesOrNoMenuWithText_LeftAligned:
call DrawNarrowTextBox_PrintTextNoDelay
lb de, 3, 16 ; x, y
call PrintYesOrNoItems
lb de, 2, 16 ; x, y
; fallthrough
-HandleYesOrNoMenu: ; 2b0a (0:2b0a)
+HandleYesOrNoMenu:
ld a, d
ld [wLeftmostItemCursorX], a
lb bc, SYM_CURSOR_R, SYM_SPACE ; cursor tile, tile behind cursor
@@ -962,13 +962,13 @@ HandleYesOrNoMenu: ; 2b0a (0:2b0a)
ret
; prints "YES NO" at de
-PrintYesOrNoItems: ; 2b66 (0:2b66)
+PrintYesOrNoItems:
call AdjustCoordinatesForBGScroll
ldtx hl, YesOrNoText
call InitTextPrinting_ProcessTextFromID
ret
-ContinueDuel: ; 2b70 (0:2b70)
+ContinueDuel:
ld a, BANK(_ContinueDuel)
call BankswitchROM
jp _ContinueDuel
diff --git a/src/home/objects.asm b/src/home/objects.asm
index 88b2b45..c9a9885 100644
--- a/src/home/objects.asm
+++ b/src/home/objects.asm
@@ -43,7 +43,7 @@ SetManyObjectsAttributes: ; 950 (0:950)
; for the sprite at wOAM + [wOAMOffset] / 4, set its attributes from registers e, d, c, b
; return carry if [wOAMOffset] > 40 * 4 (beyond the end of wOAM)
-SetOneObjectAttributes: ; 097f (0:097f)
+SetOneObjectAttributes:
push hl
ld a, [wOAMOffset]
ld l, a
@@ -69,7 +69,7 @@ SetOneObjectAttributes: ; 097f (0:097f)
ret
; set the Y Position and X Position of all sprites in wOAM to $00
-ZeroObjectPositions: ; 099c (0:099c)
+ZeroObjectPositions:
xor a
ld [wOAMOffset], a
ld hl, wOAM
diff --git a/src/home/palettes.asm b/src/home/palettes.asm
index f1cc67c..55f1978 100644
--- a/src/home/palettes.asm
+++ b/src/home/palettes.asm
@@ -1,25 +1,25 @@
; Flush all non-CGB and CGB palettes
-FlushAllPalettes: ; 0404 (0:0404)
+FlushAllPalettes:
ld a, FLUSH_ALL_PALS
jr FlushPalettes
; Flush non-CGB palettes and a single CGB palette,
; provided in a as an index between 0-7 (BGP) or 8-15 (OBP)
-FlushPalette: ; 0408 (0:0408)
+FlushPalette:
or FLUSH_ONE_PAL
jr FlushPalettes
; Set wBGP to the specified value, flush non-CGB palettes, and the first CGB palette.
-SetBGP: ; 040c (0:040c)
+SetBGP:
ld [wBGP], a
; fallthrough
; Flush non-CGB palettes and the first CGB palette
-FlushPalette0: ; 040f (0:040f)
+FlushPalette0:
ld a, FLUSH_ONE_PAL
; fallthrough
-FlushPalettes: ; 0411 (0:0411)
+FlushPalettes:
ld [wFlushPaletteFlags], a
ld a, [wLCDC]
rla
@@ -34,12 +34,12 @@ FlushPalettes: ; 0411 (0:0411)
ret
; Set wOBP0 to the specified value, flush non-CGB palettes, and the first CGB palette.
-SetOBP0: ; 0423 (0:0423)
+SetOBP0:
ld [wOBP0], a
jr FlushPalette0
; Set wOBP1 to the specified value, flush non-CGB palettes, and the first CGB palette.
-SetOBP1: ; 0428 (0:0428)
+SetOBP1:
ld [wOBP1], a
jr FlushPalette0
@@ -48,7 +48,7 @@ SetOBP1: ; 0428 (0:0428)
; and [wObjectPalettesCGB+$00..wObjectPalettesCGB+$3f] (sprite palette).
; Only flushes if [wFlushPaletteFlags] is nonzero, and only flushes
; a single CGB palette if bit6 of that location is reset.
-FlushPalettesIfRequested: ; 042d (0:042d)
+FlushPalettesIfRequested:
ld a, [wFlushPaletteFlags]
or a
ret z
@@ -77,7 +77,7 @@ FlushPalettesIfRequested: ; 042d (0:042d)
call CopyCGBPalettes
jr .done
-FlushAllCGBPalettes: ; 0458 (0:0458)
+FlushAllCGBPalettes:
; flush 8 BGP palettes
xor a
ld b, 8 palettes
@@ -90,7 +90,7 @@ FlushAllCGBPalettes: ; 0458 (0:0458)
; copy b bytes of CGB palette data starting at
; (wBackgroundPalettesCGB + a palettes) into rBGPD or rOBPD.
-CopyCGBPalettes: ; 0467 (0:0467)
+CopyCGBPalettes:
add a
add a
add a
diff --git a/src/home/play_animation.asm b/src/home/play_animation.asm
index 6bc52e3..b817862 100644
--- a/src/home/play_animation.asm
+++ b/src/home/play_animation.asm
@@ -1,6 +1,6 @@
; return nc if wd42a, wd4c0, and wAnimationQueue[] are all equal to $ff
; nc means no animation is playing (or animation(s) has/have ended)
-CheckAnyAnimationPlaying: ; 3b52 (0:3b52)
+CheckAnyAnimationPlaying:
push hl
push bc
ld a, [wd42a]
@@ -23,7 +23,7 @@ CheckAnyAnimationPlaying: ; 3b52 (0:3b52)
; and played in order, so they can be stacked
; input:
; - a = animation index
-PlayDuelAnimation: ; 3b6a (0:3b6a)
+PlayDuelAnimation:
ld [wTempAnimation], a ; hold an animation temporarily
ldh a, [hBankROM]
push af
@@ -61,7 +61,7 @@ PlayDuelAnimation: ; 3b6a (0:3b6a)
call BankswitchROM
ret
-Func_3ba2: ; 3ba2 (0:3ba2)
+Func_3ba2:
ldh a, [hBankROM]
push af
ld a, BANK(Func_1cac5)
@@ -72,7 +72,7 @@ Func_3ba2: ; 3ba2 (0:3ba2)
call BankswitchROM
ret
-Func_3bb5: ; 3bb5 (0:3bb5)
+Func_3bb5:
xor a
ld [wd4c0], a
ldh a, [hBankROM]
@@ -88,14 +88,14 @@ Func_3bb5: ; 3bb5 (0:3bb5)
ret
; writes from hl the pointer to the function to be called by DoFrame
-SetDoFrameFunction: ; 3bd2 (0:3bd2)
+SetDoFrameFunction:
ld a, l
ld [wDoFrameFunction], a
ld a, h
ld [wDoFrameFunction + 1], a
ret
-ResetDoFrameFunction: ; 3bdb (0:3bdb)
+ResetDoFrameFunction:
push hl
ld hl, NULL
call SetDoFrameFunction
diff --git a/src/home/play_song.asm b/src/home/play_song.asm
index 3ce8c72..a29eacf 100644
--- a/src/home/play_song.asm
+++ b/src/home/play_song.asm
@@ -1,8 +1,8 @@
-ScriptPlaySong: ; 3c83 (0:3c83)
+ScriptPlaySong:
call PlaySong
ret
-Func_3c87: ; 3c87 (0:3c87)
+Func_3c87:
push af
call PauseSong
pop af
@@ -11,7 +11,7 @@ Func_3c87: ; 3c87 (0:3c87)
call ResumeSong
ret
-WaitForSongToFinish: ; 3c96 (0:3c96)
+WaitForSongToFinish:
call DoFrameIfLCDEnabled
call AssertSongFinished
or a
diff --git a/src/home/print_text.asm b/src/home/print_text.asm
index 2f9444c..455b03b 100644
--- a/src/home/print_text.asm
+++ b/src/home/print_text.asm
@@ -1,7 +1,7 @@
; writes n items of text each given in the following format in hl:
; x coord, y coord, text id
; $ff-terminated
-PlaceTextItems: ; 2c08 (0:2c08)
+PlaceTextItems:
ld d, [hl] ; x coord
inc hl
bit 7, d
@@ -17,18 +17,18 @@ PlaceTextItems: ; 2c08 (0:2c08)
jr PlaceTextItems ; do next item
; like ProcessTextFromID, except it calls InitTextPrinting first
-InitTextPrinting_ProcessTextFromID: ; 2c1b (0:2c1b)
+InitTextPrinting_ProcessTextFromID:
call InitTextPrinting
jr ProcessTextFromID
; like ProcessTextFromPointerToID, except it calls InitTextPrinting first
-InitTextPrinting_ProcessTextFromPointerToID: ; 2c20 (0:2c20)
+InitTextPrinting_ProcessTextFromPointerToID:
call InitTextPrinting
; fallthrough
; like ProcessTextFromID below, except a memory address containing a text ID is
; provided in hl rather than the text ID directly.
-ProcessTextFromPointerToID: ; 2c23 (0:2c23)
+ProcessTextFromPointerToID:
ld a, [hli]
or [hl]
ret z
@@ -40,7 +40,7 @@ ProcessTextFromPointerToID: ; 2c23 (0:2c23)
; given the ID of a text in hl, reads the characters from it processes them.
; loops until TX_END is found. ignores TX_RAM1, TX_RAM2, and TX_RAM3 characters.
; restores original ROM bank before returning.
-ProcessTextFromID: ; 2c29 (0:2c29)
+ProcessTextFromID:
ldh a, [hBankROM]
push af
call GetTextOffsetFromTextID
@@ -51,7 +51,7 @@ ProcessTextFromID: ; 2c29 (0:2c29)
; return, in a, the number of lines of the text given in hl as an ID
; this is calculated by counting the amount of '\n' characters and adding 1 to the result
-CountLinesOfTextFromID: ; 2c37 (0:2c37)
+CountLinesOfTextFromID:
push hl
push de
push bc
@@ -86,11 +86,11 @@ CountLinesOfTextFromID: ; 2c37 (0:2c37)
; call PrintScrollableText with text box label, then wait for the
; player to press A or B to advance the printed text
-PrintScrollableText_WithTextBoxLabel: ; 2c62 (0:2c62)
+PrintScrollableText_WithTextBoxLabel:
call PrintScrollableText_WithTextBoxLabel_NoWait
jr WaitForPlayerToAdvanceText
-PrintScrollableText_WithTextBoxLabel_NoWait: ; 2c67 (0:2c67)
+PrintScrollableText_WithTextBoxLabel_NoWait:
push hl
ld hl, wTextBoxLabel
ld [hl], e
@@ -102,14 +102,14 @@ PrintScrollableText_WithTextBoxLabel_NoWait: ; 2c67 (0:2c67)
; call PrintScrollableText with no text box label, then wait for the
; player to press A or B to advance the printed text
-PrintScrollableText_NoTextBoxLabel: ; 2c73 (0:2c73)
+PrintScrollableText_NoTextBoxLabel:
xor a
call PrintScrollableText
; fallthrough
; when a text box is full or the text is over, prompt the player to
; press A or B in order to clear the text and print the next lines.
-WaitForPlayerToAdvanceText: ; 2c77 (0:2c77)
+WaitForPlayerToAdvanceText:
lb bc, SYM_CURSOR_D, SYM_BOX_BOTTOM ; cursor tile, tile behind cursor
lb de, 18, 17 ; x, y
call SetCursorParametersForTextBox
@@ -121,7 +121,7 @@ WaitForPlayerToAdvanceText: ; 2c77 (0:2c77)
; to advance the page or close the text. register a determines whether the textbox is
; labeled or not. if labeled, the text id of the label is provided in wTextBoxLabel.
; PrintScrollableText is used mostly for overworld NPC text.
-PrintScrollableText: ; 2c84 (0:2c84)
+PrintScrollableText:
ld [wIsTextBoxLabeled], a
ldh a, [hBankROM]
push af
@@ -165,7 +165,7 @@ PrintScrollableText: ; 2c84 (0:2c84)
; zero wWhichTextHeader, wWhichTxRam2 and wWhichTxRam3, and set hJapaneseSyllabary to TX_KATAKANA
; fill wTextHeader1 with TX_KATAKANA, wFontWidth, hBankROM, and register bc for the text's pointer.
-ResetTxRam_WriteToTextHeader: ; 2cc8 (0:2cc8)
+ResetTxRam_WriteToTextHeader:
xor a
ld [wWhichTextHeader], a
ld [wWhichTxRam2], a
@@ -176,7 +176,7 @@ ResetTxRam_WriteToTextHeader: ; 2cc8 (0:2cc8)
; fill the wTextHeader specified in wWhichTextHeader (0-3) with hJapaneseSyllabary,
; wFontWidth, hBankROM, and register bc for the text's pointer.
-WriteToTextHeader: ; 2cd7 (0:2cd7)
+WriteToTextHeader:
push hl
call GetPointerToTextHeader
pop bc
@@ -194,7 +194,7 @@ WriteToTextHeader: ; 2cd7 (0:2cd7)
; same as WriteToTextHeader, except it then increases wWhichTextHeader to
; set the next text header to the current one (usually, because
; it will soon be written to due to a TX_RAM command).
-WriteToTextHeader_MoveToNext: ; 2ceb (0:2ceb)
+WriteToTextHeader_MoveToNext:
call WriteToTextHeader
ld hl, wWhichTextHeader
inc [hl]
@@ -203,7 +203,7 @@ WriteToTextHeader_MoveToNext: ; 2ceb (0:2ceb)
; read the wTextHeader specified in wWhichTextHeader (0-3) and use the data to
; populate the corresponding memory addresses. also switch to the text's rombank
; and return the address of the next character in hl.
-ReadTextHeader: ; 2cf3 (0:2cf3)
+ReadTextHeader:
call GetPointerToTextHeader
ld a, [hli]
ld [hJapaneseSyllabary], a
@@ -217,7 +217,7 @@ ReadTextHeader: ; 2cf3 (0:2cf3)
ret
; return in hl, the address of the wTextHeader specified in wWhichTextHeader (0-3)
-GetPointerToTextHeader: ; 2d06 (0:2d06)
+GetPointerToTextHeader:
ld a, [wWhichTextHeader]
ld e, a
add a
@@ -232,7 +232,7 @@ GetPointerToTextHeader: ; 2d06 (0:2d06)
; draws a wide text box with or without label depending on wIsTextBoxLabeled
; if labeled, the label's text ID is provided in wTextBoxLabel
; calls InitTextPrintingInTextbox after drawing the text box
-DrawTextReadyLabeledOrRegularTextBox: ; 2d15 (0:2d15)
+DrawTextReadyLabeledOrRegularTextBox:
push hl
lb de, 0, 12
lb bc, 20, 6
@@ -261,7 +261,7 @@ DrawTextReadyLabeledOrRegularTextBox: ; 2d15 (0:2d15)
; then updates the current wTextHeader to point to the next character.
; a TX_RAM command causes a switch to a wTextHeader in the level below, and a TX_END
; command terminates the text unless there is a pending wTextHeader in the above level.
-ProcessTextHeader: ; 2d43 (0:2d43)
+ProcessTextHeader:
call ReadTextHeader
ld a, [hli]
or a ; TX_END
@@ -349,7 +349,7 @@ ProcessTextHeader: ; 2d43 (0:2d43)
; hl: wWhichTxRam2 or wWhichTxRam3
; return, in hl, the contents of the contents of the
; wTxRam* buffer's current entry, and increment wWhichTxRam*.
-HandleTxRam2Or3: ; 2de0 (0:2de0)
+HandleTxRam2Or3:
push de
ld a, [hl]
inc [hl]
@@ -365,7 +365,7 @@ HandleTxRam2Or3: ; 2de0 (0:2de0)
; uses the two byte text id in hl to read the three byte text offset
; loads the correct bank for the specific text and returns the pointer in hl
-GetTextOffsetFromTextID: ; 2ded (0:2ded)
+GetTextOffsetFromTextID:
push de
ld e, l
ld d, h
@@ -399,7 +399,7 @@ GetTextOffsetFromTextID: ; 2ded (0:2ded)
; if [wFontWidth] == FULL_WIDTH:
; convert the number at hl to TX_SYMBOL text format and write it to wStringBuffer
; replace leading zeros with SYM_SPACE
-TwoByteNumberToText_CountLeadingZeros: ; 2e12 (0:2e12)
+TwoByteNumberToText_CountLeadingZeros:
ld a, [wFontWidth]
or a ; FULL_WIDTH
jp z, TwoByteNumberToTxSymbol_TrimLeadingZeros
@@ -419,7 +419,7 @@ TwoByteNumberToText_CountLeadingZeros: ; 2e12 (0:2e12)
; in the overworld: copy the player's name to wStringBuffer
; in a duel: copy the name of the duelist whose turn it is to wStringBuffer
-CopyPlayerNameOrTurnDuelistName: ; 2e2c (0:2e2c)
+CopyPlayerNameOrTurnDuelistName:
ld de, wStringBuffer
push de
ldh a, [hWhoseTurn]
@@ -435,7 +435,7 @@ CopyPlayerNameOrTurnDuelistName: ; 2e2c (0:2e2c)
; prints text with id at hl, with letter delay, in a textbox area.
; the text must fit in the textbox; PrintScrollableText should be used instead.
-PrintText: ; 2e41 (0:2e41)
+PrintText:
ld a, l
or h
jr z, .from_ram
@@ -474,7 +474,7 @@ PrintText: ; 2e41 (0:2e41)
; prints text with id at hl, without letter delay, in a textbox area.
; the text must fit in the textbox; PrintScrollableText should be used instead.
-PrintTextNoDelay: ; 2e76 (0:2e76)
+PrintTextNoDelay:
ldh a, [hBankROM]
push af
call GetTextOffsetFromTextID
@@ -488,7 +488,7 @@ PrintTextNoDelay: ; 2e76 (0:2e76)
; copies a text given its id at hl, to de
; if hl is 0, the name of the turn duelist is copied instead
-CopyText: ; 2e89 (0:2e89)
+CopyText:
ld a, l
or h
jr z, .special
@@ -515,7 +515,7 @@ CopyText: ; 2e89 (0:2e89)
; then terminate the text with TX_END if it doesn't contain it already.
; fill any remaining bytes with spaces plus TX_END to match the length specified in a.
; return the text's actual length in characters (i.e. before the first TX_END) in e.
-CopyTextData_FromTextID: ; 2ea9 (0:2ea9)
+CopyTextData_FromTextID:
ldh [hff96], a
ldh a, [hBankROM]
push af
@@ -527,7 +527,7 @@ CopyTextData_FromTextID: ; 2ea9 (0:2ea9)
ret
; text id (usually of a card name) for TX_RAM2
-LoadTxRam2: ; 2ebb (0:2ebb)
+LoadTxRam2:
ld a, l
ld [wTxRam2], a
ld a, h
@@ -535,7 +535,7 @@ LoadTxRam2: ; 2ebb (0:2ebb)
ret
; a number between 0 and 65535 for TX_RAM3
-LoadTxRam3: ; 2ec4 (0:2ec4)
+LoadTxRam3:
ld a, l
ld [wTxRam3], a
ld a, h
diff --git a/src/home/printer.asm b/src/home/printer.asm
index 73b049a..9b4ce59 100644
--- a/src/home/printer.asm
+++ b/src/home/printer.asm
@@ -1,5 +1,5 @@
; serial transfer-related
-SendPrinterPacket: ; 312d (0:312d)
+SendPrinterPacket:
push hl
ld hl, wce64
; Preamble
@@ -66,12 +66,12 @@ SendPrinterPacket: ; 312d (0:312d)
scf
ret
-Func_3189: ; 3189 (0:3189)
+Func_3189:
ld hl, PointerTable_3190
dec a
jp JumpToFunctionInTable
-PointerTable_3190: ; 3190 (0:3190)
+PointerTable_3190:
dw Func_31a8
dw Func_31a8
dw Func_31a8
@@ -85,14 +85,14 @@ PointerTable_3190: ; 3190 (0:3190)
dw Func_31ea
dw Func_31f2
-Func_31a8: ; 31a8 (0:31a8)
+Func_31a8:
call Func_31fc
-Func_31ab: ; 31ab (0:31ab)
+Func_31ab:
ld hl, wce63
inc [hl]
ret
-Func_31b0: ; 31b0 (0:31b0)
+Func_31b0:
call Func_31ab
ld hl, wce68
ld a, [hli]
@@ -111,7 +111,7 @@ Func_31b0: ; 31b0 (0:31b0)
ld [de], a
; fallthrough
-Func_31ca: ; 31ca (0:31ca)
+Func_31ca:
call Func_31fc
ld hl, wce68
ld a, [hl]
@@ -127,31 +127,31 @@ Func_31ca: ; 31ca (0:31ca)
jr z, Func_31ab
ret
-Func_31dd: ; 31dd (0:31dd)
+Func_31dd:
ld a, [wce6c]
-Func_31e0: ; 31e0 (0:31e0)
+Func_31e0:
call Func_3212
jr Func_31ab
-Func_31e5: ; 31e5 (0:31e5)
+Func_31e5:
ld a, [wce6d]
jr Func_31e0
-Func_31ea: ; 31ea (0:31ea)
+Func_31ea:
ldh a, [rSB]
ld [wce6e], a
-Func_31ef: ; 31ef (0:31ef)
+Func_31ef:
xor a
jr Func_31e0
-Func_31f2: ; 31f2 (0:31f2)
+Func_31f2:
ldh a, [rSB]
ld [wPrinterStatus], a
xor a
ld [wce63], a
ret
-Func_31fc: ; 31fc (0:31fc)
+Func_31fc:
ld hl, wSerialDataPtr
ld e, [hl]
inc hl
@@ -172,7 +172,7 @@ Func_31fc: ; 31fc (0:31fc)
ld a, e
; fallthrough
-Func_3212: ; 3212 (0:3212)
+Func_3212:
ldh [rSB], a
ld a, SC_INTERNAL
ldh [rSC], a
diff --git a/src/home/process_text.asm b/src/home/process_text.asm
index 6845664..515c941 100644
--- a/src/home/process_text.asm
+++ b/src/home/process_text.asm
@@ -1,7 +1,7 @@
; similar to ProcessText except it calls InitTextPrinting first
; with the first two bytes of hl being used to set hTextBGMap0Address.
; (the caller to ProcessText usually calls InitTextPrinting first)
-InitTextPrinting_ProcessText: ; 21ba (0:21ba)
+InitTextPrinting_ProcessText:
push de
push bc
ld d, [hl]
@@ -13,7 +13,7 @@ InitTextPrinting_ProcessText: ; 21ba (0:21ba)
; reads the characters from the text at hl processes them. loops until
; TX_END is found. ignores TX_RAM1, TX_RAM2, and TX_RAM3 characters.
-ProcessText: ; 21c5 (0:21c5)
+ProcessText:
push de
push bc
call InitTextFormat
@@ -48,7 +48,7 @@ ProcessText: ; 21c5 (0:21c5)
; processes the text character provided in a checking for specific control characters.
; hl points to the text character coming right after the one loaded into a.
; returns carry if the character was not processed by this function.
-ProcessSpecialTextCharacter: ; 21f2 (0:21f2)
+ProcessSpecialTextCharacter:
or a ; TX_END
jr z, .tx_end
cp TX_HIRAGANA
@@ -136,7 +136,7 @@ ProcessSpecialTextCharacter: ; 21f2 (0:21f2)
; calls InitTextFormat, selects tiles at $8800-$97FF for text, and clears the wc600.
; selects the first and last tile to be reserved for constructing text tiles in VRAM
; based on the values given in d and e respectively.
-SetupText: ; 2275 (0:2275)
+SetupText:
ld a, d
dec a
ld [wcd04], a
@@ -162,7 +162,7 @@ SetupText: ; 2275 (0:2275)
; hTextLineCurPos <- 0
; wHalfWidthPrintState <- 0
; hJapaneseSyllabary <- TX_KATAKANA
-InitTextFormat: ; 2298 (0:2298)
+InitTextFormat:
xor a ; FULL_WIDTH
ld [wFontWidth], a
ldh [hTextLineCurPos], a
@@ -173,7 +173,7 @@ InitTextFormat: ; 2298 (0:2298)
; call InitTextPrinting
; hTextLineLength <- a
-InitTextPrintingInTextbox: ; 22a6 (0:22a6)
+InitTextPrintingInTextbox:
push af
call InitTextPrinting
pop af
@@ -185,7 +185,7 @@ InitTextPrintingInTextbox: ; 22a6 (0:22a6)
; wCurTextLine <- 0
; write BGMap0-translated DE to hTextBGMap0Address
; call InitTextFormat
-InitTextPrinting: ; 22ae (0:22ae)
+InitTextPrinting:
push hl
ld a, d
ldh [hTextHorizontalAlign], a
@@ -208,7 +208,7 @@ InitTextPrinting: ; 22ae (0:22ae)
; hffb0 == $0: generate and place text tile
; hffb0 == $2 (bit 1 set): only generate text tile?
; hffb0 == $1 (bit 0 set): not even generate it, but just update text buffers?
-Func_22ca: ; 22ca (0:22ca)
+Func_22ca:
push hl
push de
push bc
@@ -237,7 +237,7 @@ Func_22ca: ; 22ca (0:22ca)
; writes a to wCurTextTile and to the tile pointed to by hTextBGMap0Address,
; then increments hTextBGMap0Address and hTextLineCurPos
-PlaceNextTextTile: ; 22f2 (0:22f2)
+PlaceNextTextTile:
ld [wCurTextTile], a
ld hl, hTextBGMap0Address
ld e, [hl]
@@ -260,7 +260,7 @@ PlaceNextTextTile: ; 22f2 (0:22f2)
; when terminating half-width text with "\n" or TX_END, or switching to full-width
; with TX_HALF2FULL or to symbols with TX_SYMBOL, check if it's necessary to append
; a half-width space to finish an incomplete character pair.
-TerminateHalfWidthText: ; 230f (0:230f)
+TerminateHalfWidthText:
ld a, [wFontWidth]
or a ; FULL_WIDTH
ret z
@@ -277,7 +277,7 @@ TerminateHalfWidthText: ; 230f (0:230f)
pop hl
ret
-Func_2325: ; 2325 (0:2325)
+Func_2325:
call Func_235e
ret c
or a
@@ -324,7 +324,7 @@ Func_2325: ; 2325 (0:2325)
; search linked-list for text characters e/d (registers), if found hoist
; the result to head of list and return it. carry flag denotes success.
-Func_235e: ; 235e (0:235e)
+Func_235e:
ld a, [wFontWidth]
or a
jr z, .print
@@ -391,7 +391,7 @@ Func_235e: ; 235e (0:235e)
ret ; (return new linked-list head in a)
; uppercases e if [wUppercaseHalfWidthLetters] is nonzero
-CaseHalfWidthLetter: ; 23b1 (0:23b1)
+CaseHalfWidthLetter:
ld a, [wUppercaseHalfWidthLetters]
or a
ret z
@@ -410,7 +410,7 @@ CaseHalfWidthLetter: ; 23b1 (0:23b1)
; b = length of text in tiles
; c = length of text in bytes
; a = -b
-GetTextLengthInTiles: ; 23c1 (0:23c1)
+GetTextLengthInTiles:
ld a, [hl]
cp TX_HALFWIDTH
jr nz, .full_width
@@ -431,7 +431,7 @@ GetTextLengthInTiles: ; 23c1 (0:23c1)
; b = length of text in half-tiles
; c = length of text in bytes
; a = -b
-GetTextLengthInHalfTiles: ; 23d3 (0:23d3)
+GetTextLengthInHalfTiles:
push hl
push de
lb bc, $00, $00
@@ -472,7 +472,7 @@ GetTextLengthInHalfTiles: ; 23d3 (0:23d3)
; the text with TX_END if it doesn't contain it already.
; fill any remaining bytes with spaces plus TX_END to match the length specified in a.
; return the text's actual length in characters (i.e. before the first TX_END) in e.
-CopyTextData: ; 23fd (0:23fd)
+CopyTextData:
ld [wTextMaxLength], a
ld a, [hl]
cp TX_HALFWIDTH
@@ -552,7 +552,7 @@ CopyTextData: ; 23fd (0:23fd)
; convert the number at hl to TX_SYMBOL text format and write it to wStringBuffer
; replace leading zeros with SYM_SPACE
-TwoByteNumberToTxSymbol_TrimLeadingZeros: ; 245d (0:245d)
+TwoByteNumberToTxSymbol_TrimLeadingZeros:
push de
push bc
ld de, wStringBuffer
@@ -614,7 +614,7 @@ TwoByteNumberToTxSymbol_TrimLeadingZeros: ; 245d (0:245d)
; d = half-width character 1 (left)
; e = half-width character 2 (right)
; b = destination VRAM tile number
-GenerateTextTile: ; 24ac (0:24ac)
+GenerateTextTile:
push hl
push de
push bc
@@ -637,7 +637,7 @@ GenerateTextTile: ; 24ac (0:24ac)
; create, at wTextTileBuffer, a half-width font tile
; made from the ascii characters given in d and e
-CreateHalfWidthFontTile: ; 24ca (0:24ca)
+CreateHalfWidthFontTile:
push bc
ldh a, [hBankROM]
push af
@@ -673,7 +673,7 @@ CreateHalfWidthFontTile: ; 24ca (0:24ca)
; copies a 1bpp tile corresponding to a half-width font character to de.
; the ascii value of the character to copy is provided in a.
; assumes BANK(HalfWidthFont) is already loaded.
-CopyHalfWidthCharacterToDE: ; 24fa (0:24fa)
+CopyHalfWidthCharacterToDE:
sub $20 ; HalfWidthFont begins at ascii $20
ld l, a
ld h, $0
@@ -695,7 +695,7 @@ CopyHalfWidthCharacterToDE: ; 24fa (0:24fa)
; create, at wTextTileBuffer, a full-width font tile given its tile
; number within the full-width font graphics (FullWidthFonts) in de.
; return its v*Tiles address in hl, and return c = TILE_SIZE.
-CreateFullWidthFontTile_ConvertToTileDataAddress: ; 2510 (0:2510)
+CreateFullWidthFontTile_ConvertToTileDataAddress:
push bc
call GetFullWidthFontTileOffset
call CreateFullWidthFontTile
@@ -706,7 +706,7 @@ CreateFullWidthFontTile_ConvertToTileDataAddress: ; 2510 (0:2510)
; wTilePatternSelector and wTilePatternSelectorCorrection are used to select the source:
; - if wTilePatternSelector == $80 and wTilePatternSelectorCorrection == $00 -> $8000-$8FFF
; - if wTilePatternSelector == $88 and wTilePatternSelectorCorrection == $80 -> $8800-$97FF
-ConvertTileNumberToTileDataAddress: ; 2518 (0:2518)
+ConvertTileNumberToTileDataAddress:
ld hl, wTilePatternSelectorCorrection
ld a, b
xor [hl]
@@ -725,7 +725,7 @@ ConvertTileNumberToTileDataAddress: ; 2518 (0:2518)
; create, at wTextTileBuffer, a full-width font tile given its
; within the full-width font graphics (FullWidthFonts) in hl
-CreateFullWidthFontTile: ; 252e (0:252e)
+CreateFullWidthFontTile:
ld a, BANK(Fonts) ; BANK(DuelGraphics)
call BankpushROM
ld de, wTextTileBuffer
@@ -746,7 +746,7 @@ CreateFullWidthFontTile: ; 252e (0:252e)
; given two text characters at de, use the char at e (first one)
; to determine which type of text this pair of characters belongs to.
; return carry if TX_FULLWIDTH1 to TX_FULLWIDTH4.
-ClassifyTextCharacterPair: ; 2546 (0:2546)
+ClassifyTextCharacterPair:
ld a, [wFontWidth]
or a ; FULL_WIDTH
jr nz, .half_width
@@ -786,7 +786,7 @@ ClassifyTextCharacterPair: ; 2546 (0:2546)
; if d == TX_KATAKANA: get tile from the 0_0_katakana.1bpp font.
; if d == TX_HIRAGANA or d == $0: get tile from the 0_1_hiragana.1bpp or 0_2_digits_kanji1.1bpp font.
; if d >= TX_FULLWIDTH1 and d <= TX_FULLWIDTH4: get tile from one of the other full-width fonts.
-GetFullWidthFontTileOffset: ; 256d (0:256d)
+GetFullWidthFontTileOffset:
ld bc, $50 tiles_1bpp
ld a, d
cp TX_HIRAGANA
@@ -810,7 +810,7 @@ GetFullWidthFontTileOffset: ; 256d (0:256d)
; pointers to VRAM?
; unreferenced
-Unknown_2589: ; 2589 (0:2589)
+Unknown_2589:
db $18
dw $8140
dw $817e
diff --git a/src/home/random.asm b/src/home/random.asm
index e1f09b9..d731b12 100644
--- a/src/home/random.asm
+++ b/src/home/random.asm
@@ -1,5 +1,5 @@
; returns h * l in hl
-HtimesL: ; 0879 (0:0879)
+HtimesL:
push de
ld a, h
ld e, l
@@ -20,7 +20,7 @@ HtimesL: ; 0879 (0:0879)
ret
; return a random number between 0 and a (exclusive) in a
-Random: ; 088f (0:088f)
+Random:
push hl
ld h, a
call UpdateRNGSources
@@ -31,7 +31,7 @@ Random: ; 088f (0:088f)
ret
; get the next random numbers of the wRNG1 and wRNG2 sequences
-UpdateRNGSources: ; 089b (0:089b)
+UpdateRNGSources:
push hl
push de
ld hl, wRNG1
diff --git a/src/home/save.asm b/src/home/save.asm
index f777dee..58a07ce 100644
--- a/src/home/save.asm
+++ b/src/home/save.asm
@@ -1,22 +1,22 @@
-SaveGeneralSaveData: ; 3a3b (0:3a3b)
+SaveGeneralSaveData:
farcall _SaveGeneralSaveData
ret
-LoadGeneralSaveData: ; 3a40 (0:3a40)
+LoadGeneralSaveData:
farcall _LoadGeneralSaveData
ret
-ValidateGeneralSaveData: ; 3a45 (0:3a45)
+ValidateGeneralSaveData:
farcall _ValidateGeneralSaveData
ret
; adds card with card ID in register a to collection
; and updates album progress in RAM
-AddCardToCollectionAndUpdateAlbumProgress: ; 3a4a (0:3a4a)
+AddCardToCollectionAndUpdateAlbumProgress:
farcall _AddCardToCollectionAndUpdateAlbumProgress
ret
-SaveGame: ; 3a4f (0:3a4f)
+SaveGame:
push af
push bc
push de
diff --git a/src/home/script.asm b/src/home/script.asm
index 115513c..229eb65 100644
--- a/src/home/script.asm
+++ b/src/home/script.asm
@@ -1,4 +1,4 @@
-HandleMoveModeAPress: ; 3a5e (0:3a5e)
+HandleMoveModeAPress:
ldh a, [hBankROM]
push af
ld l, MAP_SCRIPT_OBJECTS
@@ -59,7 +59,7 @@ HandleMoveModeAPress: ; 3a5e (0:3a5e)
; returns a map script pointer in hl given
; current map in wCurMap and which sub-script in l
; sets c if pointer is found
-GetMapScriptPointer: ; 3abd (0:3abd)
+GetMapScriptPointer:
push bc
push hl
ld a, [wCurMap]
@@ -100,12 +100,12 @@ GetMapScriptPointer: ; 3abd (0:3abd)
; are stored in the script-related NPC data for normal gameplay
; returns carry if a duel configuration was found
; for the given NPC deck ID
-GetNPCDuelConfigurations: ; 3ae8 (0:3ae8)
+GetNPCDuelConfigurations:
farcall _GetNPCDuelConfigurations
ret
; finds a Script from the first byte and puts the next two bytes (usually arguments?) into cb
-RunOverworldScript: ; 3aed (0:3aed)
+RunOverworldScript:
ld hl, wScriptPointer
ld a, [hli]
ld h, [hl]
@@ -132,7 +132,7 @@ RunOverworldScript: ; 3aed (0:3aed)
pop bc
jp hl
-Func_3b11: ; 3b11 (0:3b11)
+Func_3b11:
ldh a, [hBankROM]
push af
ld a, BANK(_GameLoop)
@@ -142,7 +142,7 @@ Func_3b11: ; 3b11 (0:3b11)
call BankswitchROM
ret
-Func_3b21: ; 3b21 (0:3b21)
+Func_3b21:
ldh a, [hBankROM]
push af
ld a, BANK(Func_1c8bc)
@@ -152,7 +152,7 @@ Func_3b21: ; 3b21 (0:3b21)
call BankswitchROM
ret
-Func_3b31: ; 3b31 (0:3b31)
+Func_3b31:
ldh a, [hBankROM]
push af
ld a, BANK(Func_1cb18)
diff --git a/src/home/scroll.asm b/src/home/scroll.asm
index af31cf1..94896cf 100644
--- a/src/home/scroll.asm
+++ b/src/home/scroll.asm
@@ -1,5 +1,5 @@
; something window scroll
-Func_3e44: ; 3e44 (0:3e44)
+Func_3e44:
push af
push hl
push bc
@@ -57,7 +57,7 @@ Func_3e44: ; 3e44 (0:3e44)
; apply background scroll for lines 0 to 96 using the values at BGScrollData
; skip if wApplyBGScroll is non-0
-ApplyBackgroundScroll: ; 3ea6 (0:3ea6)
+ApplyBackgroundScroll:
push af
push hl
call DisableInt_LYCoincidence
@@ -109,7 +109,7 @@ ApplyBackgroundScroll: ; 3ea6 (0:3ea6)
pop af
ret
-BGScrollData: ; 3ef8 (0:3ef8)
+BGScrollData:
db 0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3
db 4, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 1, 1, 1, 0, 0
db 0, -1, -1, -1, -2, -2, -2, -3, -3, -3, -4, -4, -4, -4, -4, -4
@@ -118,7 +118,7 @@ BGScrollData: ; 3ef8 (0:3ef8)
; x = BGScrollData[(wVBlankCounter + a) & $3f]
; return, in register a, x rotated right [wBGScrollMod]-1 times (max 3 times)
-GetNextBackgroundScroll: ; 3f38 (0:3f38)
+GetNextBackgroundScroll:
ld hl, wVBlankCounter
add [hl]
and $3f
@@ -145,7 +145,7 @@ GetNextBackgroundScroll: ; 3f38 (0:3f38)
ret
; enable lcdc interrupt on LYC=LC coincidence
-EnableInt_LYCoincidence: ; 3f5a (0:3f5a)
+EnableInt_LYCoincidence:
push hl
ld hl, rSTAT
set STAT_LYC, [hl]
@@ -156,7 +156,7 @@ EnableInt_LYCoincidence: ; 3f5a (0:3f5a)
ret
; disable lcdc interrupt and the LYC=LC coincidence trigger
-DisableInt_LYCoincidence: ; 3f68 (0:3f68)
+DisableInt_LYCoincidence:
push hl
ld hl, rSTAT
res STAT_LYC, [hl]
diff --git a/src/home/serial.asm b/src/home/serial.asm
index 97a9dc8..51de4f9 100644
--- a/src/home/serial.asm
+++ b/src/home/serial.asm
@@ -1,5 +1,5 @@
; called at roughly 240Hz by TimerHandler
-SerialTimerHandler: ; 0c91 (0:0c91)
+SerialTimerHandler:
ld a, [wSerialOp]
cp $29
jr z, .begin_transfer
@@ -35,7 +35,7 @@ SerialTimerHandler: ; 0c91 (0:0c91)
ld [hl], $0
ret
-Func_0cc5: ; 0cc5 (0:0cc5)
+Func_0cc5:
ld hl, wSerialRecvCounter
or a
jr nz, .asm_cdc
@@ -94,7 +94,7 @@ Func_0cc5: ; 0cc5 (0:0cc5)
scf
ret
-SerialHandler: ; 0d26 (0:0d26)
+SerialHandler:
push af
push hl
push de
@@ -148,7 +148,7 @@ SerialHandler: ; 0d26 (0:0d26)
; handles a byte read from serial transfer by decoding it and storing it into
; the receive buffer
-SerialHandleRecv: ; 0d77 (0:0d77)
+SerialHandleRecv:
ld hl, wSerialLastReadCA
ld e, [hl]
dec e
@@ -210,7 +210,7 @@ SerialHandleRecv: ; 0d77 (0:0d77)
; prepares a byte to send over serial transfer, either from the send-save byte
; slot or the send buffer
-SerialHandleSend: ; 0dc8 (0:0dc8)
+SerialHandleSend:
ld hl, wSerialSendSave
ld a, [hl]
or a
@@ -260,7 +260,7 @@ SerialHandleSend: ; 0dc8 (0:0dc8)
ret
; store byte at a in wSerialSendBuf for sending
-SerialSendByte: ; 0e0a (0:0e0a)
+SerialSendByte:
push hl
push de
push bc
@@ -290,7 +290,7 @@ SerialSendByte: ; 0e0a (0:0e0a)
ret
; sets carry if [wSerialRecvCounter] nonzero
-Func_0e32: ; 0e32 (0:0e32)
+Func_0e32:
ld a, [wSerialRecvCounter]
or a
ret z
@@ -298,7 +298,7 @@ Func_0e32: ; 0e32 (0:0e32)
ret
; receive byte in wSerialRecvBuf
-SerialRecvByte: ; 0e39 (0:0e39)
+SerialRecvByte:
push hl
ld hl, wSerialRecvCounter
ld a, [hl]
@@ -331,7 +331,7 @@ SerialRecvByte: ; 0e39 (0:0e39)
ret
; exchange c bytes. send bytes at hl and store received bytes in de
-SerialExchangeBytes: ; 0e63 (0:0e63)
+SerialExchangeBytes:
ld b, c
.asm_e64
ld a, b
@@ -368,7 +368,7 @@ SerialExchangeBytes: ; 0e63 (0:0e63)
ret
; go into slave mode (external clock) for serial transfer?
-Func_0e8e: ; 0e8e (0:0e8e)
+Func_0e8e:
call ClearSerialData
ld a, $12
ldh [rSB], a ; send $12
@@ -383,7 +383,7 @@ Func_0e8e: ; 0e8e (0:0e8e)
ret
; disable serial interrupt, and clear rSB, rSC, and serial registers in WRAM
-ResetSerial: ; 0ea6 (0:0ea6)
+ResetSerial:
ldh a, [rIE]
and ~(1 << INT_SERIAL)
ldh [rIE], a
@@ -393,7 +393,7 @@ ResetSerial: ; 0ea6 (0:0ea6)
; fallthrough
; zero serial registers in WRAM
-ClearSerialData: ; 0eb1 (0:0eb1)
+ClearSerialData:
ld hl, wSerialOp
ld bc, wSerialEnd - wSerialOp
.loop
@@ -406,7 +406,7 @@ ClearSerialData: ; 0eb1 (0:0eb1)
ret
; store bc bytes from hl in wSerialSendBuf for sending
-SerialSendBytes: ; 0ebf (0:0ebf)
+SerialSendBytes:
push bc
.send_loop
ld a, [hli]
@@ -427,7 +427,7 @@ SerialSendBytes: ; 0ebf (0:0ebf)
ret
; receive bc bytes in wSerialRecvBuf and save them to hl
-SerialRecvBytes: ; 0ed5 (0:0ed5)
+SerialRecvBytes:
push bc
.recv_loop
call SerialRecvByte
@@ -452,7 +452,7 @@ SerialRecvBytes: ; 0ed5 (0:0ed5)
scf
ret
-Func_0ef1: ; 0ef1 (0:0ef1)
+Func_0ef1:
ld de, wcb79
ld hl, sp+$fe
ld a, l
@@ -471,7 +471,7 @@ Func_0ef1: ; 0ef1 (0:0ef1)
or a
ret
-Func_0f05: ; 0f05 (0:0f05)
+Func_0f05:
push hl
ld hl, wcb7b
ld a, [hli]
@@ -491,7 +491,7 @@ Func_0f05: ; 0f05 (0:0f05)
scf
ret
-Func_0f1d: ; 0f1d (0:0f1d)
+Func_0f1d:
ld a, [wSerialFlags]
or a
jr nz, .asm_f27
@@ -510,7 +510,7 @@ Func_0f1d: ; 0f1d (0:0f1d)
; load the number at wSerialFlags (error code?) to TxRam3, print
; TransmissionErrorText, exit the duel, and reset serial registers.
-DuelTransmissionError: ; 0f35 (0:0f35)
+DuelTransmissionError:
ld a, [wSerialFlags]
ld l, a
ld h, 0
@@ -530,7 +530,7 @@ DuelTransmissionError: ; 0f35 (0:0f35)
ret
; exchange RNG during a link duel between both games
-ExchangeRNG: ; 0f58 (0:0f58)
+ExchangeRNG:
ld a, [wDuelType]
cp DUELTYPE_LINK
jr z, .link_duel
@@ -559,7 +559,7 @@ ExchangeRNG: ; 0f58 (0:0f58)
; finally exchange RNG data.
; the receiving side will use this data to read the OPPACTION_* value in
; [hOppActionTableIndex] and match it by calling the corresponding OppAction* function
-SetOppAction_SerialSendDuelData: ; 0f7f (0:0f7f)
+SetOppAction_SerialSendDuelData:
push hl
push bc
ldh [hOppActionTableIndex], a
@@ -579,7 +579,7 @@ SetOppAction_SerialSendDuelData: ; 0f7f (0:0f7f)
; receive 10 bytes of data from wSerialRecvBuf and store them into hOppActionTableIndex,
; hTempCardIndex_ff9f, hTemp_ffa0, and hTempPlayAreaLocation_ffa1,
; and hTempRetreatCostCards. also exchange RNG data.
-SerialRecvDuelData: ; 0f9b (0:0f9b)
+SerialRecvDuelData:
push hl
push bc
ld hl, hOppActionTableIndex
@@ -592,7 +592,7 @@ SerialRecvDuelData: ; 0f9b (0:0f9b)
; serial send 8 bytes at f, a, l, h, e, d, c, b
; only during a duel against a link opponent
-SerialSend8Bytes: ; 0fac (0:0fac)
+SerialSend8Bytes:
push hl
push af
ld a, DUELVARS_DUELIST_TYPE
@@ -643,7 +643,7 @@ SerialSend8Bytes: ; 0fac (0:0fac)
ret
; serial recv 8 bytes to f, a, l, h, e, d, c, b
-SerialRecv8Bytes: ; 0fe9 (0:0fe9)
+SerialRecv8Bytes:
ld hl, wTempSerialBuf
ld bc, 8
push hl
diff --git a/src/home/setup.asm b/src/home/setup.asm
index bf58452..10ecc70 100644
--- a/src/home/setup.asm
+++ b/src/home/setup.asm
@@ -1,6 +1,6 @@
; initialize scroll, window, and lcdc registers, set trampoline functions
; for the lcdc and vblank interrupts, latch clock data, and enable SRAM/RTC
-SetupRegisters: ; 030b (0:030b)
+SetupRegisters:
xor a
ldh [rSCY], a
ldh [rSCX], a
@@ -28,11 +28,11 @@ SetupRegisters: ; 030b (0:030b)
ld [MBC3LatchClock], a
ld a, SRAM_ENABLE
ld [MBC3SRamEnable], a
-NoOp: ; 0348 (0:0348)
+NoOp:
ret
; sets wConsole and, if CGB, selects WRAM bank 1 and switches to double speed mode
-DetectConsole: ; 0349 (0:0349)
+DetectConsole:
ld b, CONSOLE_CGB
cp GBC
jr z, .got_console
@@ -52,7 +52,7 @@ DetectConsole: ; 0349 (0:0349)
ret
; initialize the palettes (both monochrome and color)
-SetupPalettes: ; 036a (0:036a)
+SetupPalettes:
ld hl, wBGP
ld a, %11100100
ldh [rBGP], a
@@ -82,14 +82,14 @@ SetupPalettes: ; 036a (0:036a)
call FlushAllCGBPalettes
ret
-InitialPalette: ; 0399 (0:0399)
+InitialPalette:
rgb 28, 28, 24
rgb 21, 21, 16
rgb 10, 10, 08
rgb 00, 00, 00
; clear VRAM tile data ([wTileMapFill] should be an empty tile)
-SetupVRAM: ; 03a1 (0:03a1)
+SetupVRAM:
call FillTileMap
call CheckForCGB
jr c, .vram0
@@ -109,7 +109,7 @@ SetupVRAM: ; 03a1 (0:03a1)
ret
; fill VRAM0 BG map 0 with [wTileMapFill] and VRAM1 BG map 0 with $00
-FillTileMap: ; 03c0 (0:03c0)
+FillTileMap:
call BankswitchVRAM0
ld hl, v0BGMap0
ld bc, v0BGMap1 - v0BGMap0
@@ -137,7 +137,7 @@ FillTileMap: ; 03c0 (0:03c0)
ret
; zero work RAM, stack area, and high RAM ($C000-$DFFF, $FF80-$FFEF)
-ZeroRAM: ; 03ec (0:03ec)
+ZeroRAM:
ld hl, $c000
ld bc, $e000 - $c000
.zero_wram_loop
diff --git a/src/home/sgb.asm b/src/home/sgb.asm
index 431b697..6df9095 100644
--- a/src/home/sgb.asm
+++ b/src/home/sgb.asm
@@ -1,5 +1,5 @@
; setup SNES memory $810-$867 and palette
-InitSGB: ; 0a0d (0:0a0d)
+InitSGB:
ld hl, MaskEnPacket_Freeze
call SendSGB
ld hl, DataSndPacket1
@@ -24,65 +24,65 @@ InitSGB: ; 0a0d (0:0a0d)
call SendSGB
ret
-DataSndPacket1: ; 0a50 (0:0a50)
+DataSndPacket1:
sgb DATA_SND, 1 ; sgb_command, length
dwb $085d, $00 ; destination address, bank
db $0b ; number of bytes to write
db $8c, $d0, $f4, $60, $00, $00, $00, $00, $00, $00, $00 ; data bytes
-DataSndPacket2: ; 0a60 (0:0a60)
+DataSndPacket2:
sgb DATA_SND, 1 ; sgb_command, length
dwb $0852, $00 ; destination address, bank
db $0b ; number of bytes to write
db $a9, $e7, $9f, $01, $c0, $7e, $e8, $e8, $e8, $e8, $e0 ; data bytes
-DataSndPacket3: ; 0a70 (0:0a70)
+DataSndPacket3:
sgb DATA_SND, 1 ; sgb_command, length
dwb $0847, $00 ; destination address, bank
db $0b ; number of bytes to write
db $c4, $d0, $16, $a5, $cb, $c9, $05, $d0, $10, $a2, $28 ; data bytes
-DataSndPacket4: ; 0a80 (0:0a80)
+DataSndPacket4:
sgb DATA_SND, 1 ; sgb_command, length
dwb $083c, $00 ; destination address, bank
db $0b ; number of bytes to write
db $f0, $12, $a5, $c9, $c9, $c8, $d0, $1c, $a5, $ca, $c9 ; data bytes
-DataSndPacket5: ; 0a90 (0:0a90)
+DataSndPacket5:
sgb DATA_SND, 1 ; sgb_command, length
dwb $0831, $00 ; destination address, bank
db $0b ; number of bytes to write
db $0c, $a5, $ca, $c9, $7e, $d0, $06, $a5, $cb, $c9, $7e ; data bytes
-DataSndPacket6: ; 0aa0 (0:0aa0)
+DataSndPacket6:
sgb DATA_SND, 1 ; sgb_command, length
dwb $0826, $00 ; destination address, bank
db $0b ; number of bytes to write
db $39, $cd, $48, $0c, $d0, $34, $a5, $c9, $c9, $80, $d0 ; data bytes
-DataSndPacket7: ; 0ab0 (0:0ab0)
+DataSndPacket7:
sgb DATA_SND, 1 ; sgb_command, length
dwb $081b, $00 ; destination address, bank
db $0b ; number of bytes to write
db $ea, $ea, $ea, $ea, $ea, $a9, $01, $cd, $4f, $0c, $d0 ; data bytes
-DataSndPacket8: ; 0ac0 (0:0ac0)
+DataSndPacket8:
sgb DATA_SND, 1 ; sgb_command, length
dwb $0810, $00 ; destination address, bank
db $0b ; number of bytes to write
db $4c, $20, $08, $ea, $ea, $ea, $ea, $ea, $60, $ea, $ea ; data bytes
-MaskEnPacket_Freeze: ; 0ad0 (0:0ad0)
+MaskEnPacket_Freeze:
sgb MASK_EN, 1 ; sgb_command, length
db MASK_EN_FREEZE_SCREEN
ds $0e
-MaskEnPacket_Cancel: ; 0ae0 (0:0ae0)
+MaskEnPacket_Cancel:
sgb MASK_EN, 1 ; sgb_command, length
db MASK_EN_CANCEL_MASK
ds $0e
-Pal01Packet_InitSGB: ; 0af0 (0:0af0)
+Pal01Packet_InitSGB:
sgb PAL01, 1 ; sgb_command, length
rgb 28, 28, 24
rgb 20, 20, 16
@@ -93,7 +93,7 @@ Pal01Packet_InitSGB: ; 0af0 (0:0af0)
rgb 7, 0, 0
db $00
-Pal23Packet_0b00: ; 0b00 (0:0b00)
+Pal23Packet_0b00:
sgb PAL23, 1 ; sgb_command, length
rgb 0, 31, 0
rgb 0, 15, 0
@@ -104,7 +104,7 @@ Pal23Packet_0b00: ; 0b00 (0:0b00)
rgb 0, 0, 7
db $00
-AttrBlkPacket_0b10: ; 0b10 (0:0b10)
+AttrBlkPacket_0b10:
sgb ATTR_BLK, 1 ; sgb_command, length
db 1 ; number of data sets
; Control Code, Color Palette Designation, X1, Y1, X2, Y2
@@ -113,7 +113,7 @@ AttrBlkPacket_0b10: ; 0b10 (0:0b10)
ds 2 ; data set 3
; send SGB packet at hl (or packets, if length > 1)
-SendSGB: ; 0b20 (0:0b20)
+SendSGB:
ld a, [hl]
and $7
ret z ; return if packet length is 0
@@ -157,7 +157,7 @@ SendSGB: ; 0b20 (0:0b20)
; SGB hardware detection
; return carry if SGB detected and disable multi-controller mode before returning
-DetectSGB: ; 0b59 (0:0b59)
+DetectSGB:
ld bc, 60
call Wait
ld hl, MltReq2Packet
@@ -199,12 +199,12 @@ DetectSGB: ; 0b59 (0:0b59)
scf
ret
-MltReq1Packet: ; 0bab (0:0bab)
+MltReq1Packet:
sgb MLT_REQ, 1 ; sgb_command, length
db MLT_REQ_1_PLAYER
ds $0e
-MltReq2Packet: ; 0bbb (0:0bbb)
+MltReq2Packet:
sgb MLT_REQ, 1 ; sgb_command, length
db MLT_REQ_2_PLAYERS
ds $0e
@@ -212,7 +212,7 @@ MltReq2Packet: ; 0bbb (0:0bbb)
; fill v*Tiles1 and v*Tiles2 with data at hl
; write $0d sequences of $80,$81,$82,...,$94 separated each by $0c bytes to v*BGMap0
; send the SGB packet at de
-Func_0bcb: ; 0bcb (0:0bcb)
+Func_0bcb:
di
push de
.wait_vblank
@@ -255,7 +255,7 @@ Func_0bcb: ; 0bcb (0:0bcb)
ret
; loops 63000 * bc cycles (~15 * bc ms)
-Wait: ; 0c08 (0:0c08)
+Wait:
ld de, 1750
.loop
nop
diff --git a/src/home/sound.asm b/src/home/sound.asm
index 2bbbf8d..6742758 100644
--- a/src/home/sound.asm
+++ b/src/home/sound.asm
@@ -1,38 +1,38 @@
-SetupSound: ; 377f (0:377f)
+SetupSound:
farcall _SetupSound
ret
-StopMusic: ; 3784 (0:3784)
+StopMusic:
xor a ; MUSIC_STOP
-PlaySong: ; 3785 (0:3785)
+PlaySong:
farcall _PlaySong
ret
; return a = 0: song finished, a = 1: song not finished
-AssertSongFinished: ; 378a (0:378a)
+AssertSongFinished:
farcall _AssertSongFinished
ret
; return a = 0: SFX finished, a = 1: SFX not finished
-AssertSFXFinished: ; 378f (0:378f)
+AssertSFXFinished:
farcall _AssertSFXFinished
ret
-Func_3794: ; 3794 (0:3794)
+Func_3794:
ld a, $04
-PlaySFX: ; 3796 (0:3796)
+PlaySFX:
farcall _PlaySFX
ret
-PauseSong: ; 379b (0:379b)
+PauseSong:
farcall _PauseSong
ret
-ResumeSong: ; 37a0 (0:37a0)
+ResumeSong:
farcall _ResumeSong
ret
-Func_37a5: ; 37a5 (0:37a5)
+Func_37a5:
ldh a, [hBankROM]
push af
push hl
@@ -53,7 +53,7 @@ Func_37a5: ; 37a5 (0:37a5)
call BankswitchROM
ret
-Func_37c5: ; 37c5 (0:37c5)
+Func_37c5:
ld c, $08
.asm_37c7
ld b, $06
diff --git a/src/home/sram.asm b/src/home/sram.asm
index 4e658fb..b10ac3d 100644
--- a/src/home/sram.asm
+++ b/src/home/sram.asm
@@ -1,5 +1,5 @@
; switch SRAM bank to a
-BankswitchSRAM: ; 07a9 (0:07a9)
+BankswitchSRAM:
push af
ldh [hBankSRAM], a
ld [MBC3SRamBank], a
@@ -9,7 +9,7 @@ BankswitchSRAM: ; 07a9 (0:07a9)
ret
; enable external RAM (SRAM)
-EnableSRAM: ; 07b6 (0:07b6)
+EnableSRAM:
push af
ld a, SRAM_ENABLE
ld [MBC3SRamEnable], a
@@ -17,7 +17,7 @@ EnableSRAM: ; 07b6 (0:07b6)
ret
; disable external RAM (SRAM)
-DisableSRAM: ; 07be (0:07be)
+DisableSRAM:
push af
xor a ; SRAM_DISABLE
ld [MBC3SRamEnable], a
diff --git a/src/home/start.asm b/src/home/start.asm
index cfb2be4..6a02660 100644
--- a/src/home/start.asm
+++ b/src/home/start.asm
@@ -1,5 +1,5 @@
SECTION "start", ROM0
-Start: ; 0150 (0:0150)
+Start:
di
ld sp, $fffe
push af
diff --git a/src/home/substatus.asm b/src/home/substatus.asm
index 9488a1f..0a18a97 100644
--- a/src/home/substatus.asm
+++ b/src/home/substatus.asm
@@ -1,6 +1,6 @@
; doubles the damage at de if swords dance or focus energy was used
; in the last turn by the turn holder's arena Pokemon
-HandleDoubleDamageSubstatus: ; 321d (0:321d)
+HandleDoubleDamageSubstatus:
ld a, DUELVARS_ARENA_CARD_SUBSTATUS3
call GetTurnDuelistVariable
bit SUBSTATUS3_THIS_TURN_DOUBLE_DAMAGE, [hl]
@@ -31,7 +31,7 @@ HandleDoubleDamageSubstatus: ; 321d (0:321d)
; check if the defending card (turn holder's arena card) has any substatus that
; reduces the damage dealt to it this turn (SUBSTATUS1 or Pkmn Powers).
; damage is given in de as input and the possibly updated damage is also returned in de.
-HandleDamageReduction: ; 3244 (0:3244)
+HandleDamageReduction:
call HandleDamageReductionExceptSubstatus2
ld a, DUELVARS_ARENA_CARD_SUBSTATUS2
call GetNonTurnDuelistVariable
@@ -60,7 +60,7 @@ HandleDamageReduction: ; 3244 (0:3244)
; check if the defending card (turn holder's arena card) has any substatus that
; reduces the damage dealt to it this turn. (SUBSTATUS1 or Pkmn Powers)
; damage is given in de as input and the possibly updated damage is also returned in de.
-HandleDamageReductionExceptSubstatus2: ; 3269 (0:3269)
+HandleDamageReductionExceptSubstatus2:
ld a, [wNoDamageOrEffect]
or a
jr nz, .no_damage
@@ -150,7 +150,7 @@ HandleDamageReductionExceptSubstatus2: ; 3269 (0:3269)
; check for Invisible Wall, Kabuto Armor, NShield, or Transparency, in order to
; possibly reduce or make zero the damage at de.
-HandleDamageReductionOrNoDamageFromPkmnPowerEffects: ; 32f7 (0:32f7)
+HandleDamageReductionOrNoDamageFromPkmnPowerEffects:
ld a, [wLoadedAttackCategory]
cp POKEMON_POWER
ret z
@@ -173,7 +173,7 @@ HandleDamageReductionOrNoDamageFromPkmnPowerEffects: ; 32f7 (0:32f7)
; attacking Pokemon (turn holder's arena Pokemon) takes 10 damage.
; ignore if damage taken at de is 0.
; used to bounce back a damaging attack.
-HandleStrikesBack_AgainstDamagingAttack: ; 3317 (0:3317)
+HandleStrikesBack_AgainstDamagingAttack:
ld a, e
or d
ret z
@@ -233,7 +233,7 @@ HandleStrikesBack_AgainstDamagingAttack: ; 3317 (0:3317)
; return carry if NShield or Transparency activate (if MEW1 or HAUNTER1 is
; the turn holder's arena Pokemon), and print their corresponding text if so
-HandleNShieldAndTransparency: ; 337f (0:337f)
+HandleNShieldAndTransparency:
push de
ld a, DUELVARS_ARENA_CARD
add e
@@ -274,7 +274,7 @@ HandleNShieldAndTransparency: ; 337f (0:337f)
; return carry if the turn holder's arena Pokemon is under a condition that makes
; it unable to attack. also return in hl the text id to be displayed
-HandleCantAttackSubstatus: ; 33c1 (0:33c1)
+HandleCantAttackSubstatus:
ld a, DUELVARS_ARENA_CARD_SUBSTATUS2
call GetTurnDuelistVariable
or a
@@ -296,7 +296,7 @@ HandleCantAttackSubstatus: ; 33c1 (0:33c1)
; return carry if the turn holder's arena Pokemon cannot use
; selected attack at wSelectedAttack due to amnesia
-HandleAmnesiaSubstatus: ; 33e1 (0:33e1)
+HandleAmnesiaSubstatus:
ld a, DUELVARS_ARENA_CARD_SUBSTATUS2
call GetTurnDuelistVariable
or a
@@ -319,7 +319,7 @@ HandleAmnesiaSubstatus: ; 33e1 (0:33e1)
ret
; return carry if the turn holder's attack was unsuccessful due to sand attack or smokescreen effect
-HandleSandAttackOrSmokescreenSubstatus: ; 3400 (0:3400)
+HandleSandAttackOrSmokescreenSubstatus:
call CheckSandAttackOrSmokescreenSubstatus
ret nc
call TossCoin
@@ -332,7 +332,7 @@ HandleSandAttackOrSmokescreenSubstatus: ; 3400 (0:3400)
ret
; return carry if the turn holder's arena card is under the effects of sand attack or smokescreen
-CheckSandAttackOrSmokescreenSubstatus: ; 3414 (0:3414)
+CheckSandAttackOrSmokescreenSubstatus:
ld a, DUELVARS_ARENA_CARD_SUBSTATUS2
call GetTurnDuelistVariable
or a
@@ -355,7 +355,7 @@ CheckSandAttackOrSmokescreenSubstatus: ; 3414 (0:3414)
; return carry if the defending card (turn holder's arena card) is under a substatus
; that prevents any damage or effect dealt to it for a turn.
; also return the cause of the substatus in wNoDamageOrEffect
-HandleNoDamageOrEffectSubstatus: ; 3432 (0:3432)
+HandleNoDamageOrEffectSubstatus:
xor a
ld [wNoDamageOrEffect], a
ld a, [wLoadedAttackCategory]
@@ -408,7 +408,7 @@ HandleNoDamageOrEffectSubstatus: ; 3432 (0:3432)
; if the Pokemon being attacked is HAUNTER1, and its Transparency is active,
; there is a 50% chance that any damage or effect is prevented
; return carry if damage is prevented
-HandleTransparency: ; 348a (0:348a)
+HandleTransparency:
ld a, [wTempNonTurnDuelistCardID]
cp HAUNTER1
jr z, .transparency
@@ -436,7 +436,7 @@ HandleTransparency: ; 348a (0:348a)
; return carry and return the appropriate text id in hl if the target has an
; special status or power that prevents any damage or effect done to it this turn
; input: a = NO_DAMAGE_OR_EFFECT_*
-CheckNoDamageOrEffect: ; 34b7 (0:34b7)
+CheckNoDamageOrEffect:
ld a, [wNoDamageOrEffect]
or a
ret z
@@ -461,7 +461,7 @@ CheckNoDamageOrEffect: ; 34b7 (0:34b7)
scf
ret
-NoDamageOrEffectTextIDTable: ; 34d8 (0:34d8)
+NoDamageOrEffectTextIDTable:
tx NoDamageOrEffectDueToAgilityText ; NO_DAMAGE_OR_EFFECT_AGILITY
tx NoDamageOrEffectDueToBarrierText ; NO_DAMAGE_OR_EFFECT_BARRIER
tx NoDamageOrEffectDueToFlyText ; NO_DAMAGE_OR_EFFECT_FLY
@@ -469,7 +469,7 @@ NoDamageOrEffectTextIDTable: ; 34d8 (0:34d8)
tx NoDamageOrEffectDueToNShieldText ; NO_DAMAGE_OR_EFFECT_NSHIELD
; return carry if turn holder has Omanyte and its Clairvoyance Pkmn Power is active
-IsClairvoyanceActive: ; 34e2 (0:34e2)
+IsClairvoyanceActive:
ld a, MUK
call CountPokemonIDInBothPlayAreas
ccf
@@ -480,11 +480,11 @@ IsClairvoyanceActive: ; 34e2 (0:34e2)
; returns carry if turn holder's arena card is paralyzed, asleep, confused,
; and/or toxic gas in play, meaning that attack and/or pkmn power cannot be used
-CheckCannotUseDueToStatus: ; 34ef (0:34ef)
+CheckCannotUseDueToStatus:
xor a
; same as above, but if a is non-0, only toxic gas is checked
-CheckCannotUseDueToStatus_OnlyToxicGasIfANon0: ; 34f0 (0:34f0)
+CheckCannotUseDueToStatus_OnlyToxicGasIfANon0:
or a
jr nz, .check_toxic_gas
ld a, DUELVARS_ARENA_CARD_STATUS
@@ -504,7 +504,7 @@ CheckCannotUseDueToStatus_OnlyToxicGasIfANon0: ; 34f0 (0:34f0)
; play area of both duelists. Also return carry if the Pokemon card is at least found once.
; if the arena Pokemon is asleep, confused, or paralyzed (Pkmn Power-incapable), it doesn't count.
; input: a = Pokemon card ID to search
-CountPokemonIDInBothPlayAreas: ; 3509 (0:3509)
+CountPokemonIDInBothPlayAreas:
push bc
ld [wTempPokemonID_ce7c], a
call CountPokemonIDInPlayArea
@@ -526,7 +526,7 @@ CountPokemonIDInBothPlayAreas: ; 3509 (0:3509)
; turn holder's play area. Also return carry if the Pokemon card is at least found once.
; if the arena Pokemon is asleep, confused, or paralyzed (Pkmn Power-incapable), it doesn't count.
; input: a = Pokemon card ID to search
-CountPokemonIDInPlayArea: ; 3525 (0:3525)
+CountPokemonIDInPlayArea:
push hl
push de
push bc
@@ -574,7 +574,7 @@ CountPokemonIDInPlayArea: ; 3525 (0:3525)
; return, in a, the retreat cost of the card in wLoadedCard1,
; adjusting for any Dodrio's Retreat Aid Pkmn Power that is active.
-GetLoadedCard1RetreatCost: ; 356a (0:356a)
+GetLoadedCard1RetreatCost:
ld c, 0
ld a, DUELVARS_BENCH
call GetTurnDuelistVariable
@@ -607,7 +607,7 @@ GetLoadedCard1RetreatCost: ; 356a (0:356a)
ret
; return carry if the turn holder's arena Pokemon is affected by Acid and can't retreat
-CheckCantRetreatDueToAcid: ; 3597 (0:3597)
+CheckCantRetreatDueToAcid:
ld a, DUELVARS_ARENA_CARD_SUBSTATUS2
call GetTurnDuelistVariable
or a
@@ -622,7 +622,7 @@ CheckCantRetreatDueToAcid: ; 3597 (0:3597)
ret
; return carry if the turn holder is affected by Headache and trainer cards can't be used
-CheckCantUseTrainerDueToHeadache: ; 35a9 (0:35a9)
+CheckCantUseTrainerDueToHeadache:
ld a, DUELVARS_ARENA_CARD_SUBSTATUS3
call GetTurnDuelistVariable
or a
@@ -633,7 +633,7 @@ CheckCantUseTrainerDueToHeadache: ; 35a9 (0:35a9)
ret
; return carry if any duelist has Aerodactyl and its Prehistoric Power Pkmn Power is active
-IsPrehistoricPowerActive: ; 35b7 (0:35b7)
+IsPrehistoricPowerActive:
ld a, AERODACTYL
call CountPokemonIDInBothPlayAreas
ret nc
@@ -646,7 +646,7 @@ IsPrehistoricPowerActive: ; 35b7 (0:35b7)
; clears some SUBSTATUS2 conditions from the turn holder's active Pokemon.
; more specifically, those conditions that reduce the damage from an attack
; or prevent the opposing Pokemon from attacking the substatus condition inducer.
-ClearDamageReductionSubstatus2: ; 35c7 (0:35c7)
+ClearDamageReductionSubstatus2:
ld a, DUELVARS_ARENA_CARD_SUBSTATUS2
call GetTurnDuelistVariable
or a
@@ -667,7 +667,7 @@ ClearDamageReductionSubstatus2: ; 35c7 (0:35c7)
ret
; clears the SUBSTATUS1 and updates the double damage condition of the player about to start his turn
-UpdateSubstatusConditions_StartOfTurn: ; 35e6 (0:35e6)
+UpdateSubstatusConditions_StartOfTurn:
ld a, DUELVARS_ARENA_CARD_SUBSTATUS1
call GetTurnDuelistVariable
ld [hl], $0
@@ -681,7 +681,7 @@ UpdateSubstatusConditions_StartOfTurn: ; 35e6 (0:35e6)
ret
; clears the SUBSTATUS2, Headache, and updates the double damage condition of the player ending his turn
-UpdateSubstatusConditions_EndOfTurn: ; 35fa (0:35fa)
+UpdateSubstatusConditions_EndOfTurn:
ld a, DUELVARS_ARENA_CARD_SUBSTATUS3
call GetTurnDuelistVariable
res SUBSTATUS3_HEADACHE, [hl]
@@ -699,7 +699,7 @@ UpdateSubstatusConditions_EndOfTurn: ; 35fa (0:35fa)
ret
; return carry if turn holder has Blastoise and its Rain Dance Pkmn Power is active
-IsRainDanceActive: ; 3615 (0:3615)
+IsRainDanceActive:
ld a, BLASTOISE
call CountPokemonIDInPlayArea
ret nc ; return if no Pkmn Power-capable Blastoise found in turn holder's play area
@@ -710,7 +710,7 @@ IsRainDanceActive: ; 3615 (0:3615)
; return carry if card at [hTempCardIndex_ff98] is a water energy card AND
; if card at [hTempPlayAreaLocation_ff9d] is a water Pokemon card.
-CheckRainDanceScenario: ; 3622 (0:3622)
+CheckRainDanceScenario:
ldh a, [hTempCardIndex_ff98]
call GetCardIDFromDeckIndex
call GetCardType
@@ -728,7 +728,7 @@ CheckRainDanceScenario: ; 3622 (0:3622)
; if the defending (non-turn) card's HP is 0 and the attacking (turn) card's HP
; is not, the attacking card faints if it was affected by destiny bond
-HandleDestinyBondSubstatus: ; 363b (0:363b)
+HandleDestinyBondSubstatus:
ld a, DUELVARS_ARENA_CARD_SUBSTATUS1
call GetNonTurnDuelistVariable
cp SUBSTATUS1_DESTINY_BOND
@@ -768,7 +768,7 @@ HandleDestinyBondSubstatus: ; 363b (0:363b)
; when MACHAMP is damaged, if its Strikes Back is active, the
; attacking Pokemon (turn holder's arena Pokemon) takes 10 damage.
; used to bounce back an attack of the RESIDUAL category
-HandleStrikesBack_AgainstResidualAttack: ; 367b (0:367b)
+HandleStrikesBack_AgainstResidualAttack:
ld a, [wTempNonTurnDuelistCardID]
cp MACHAMP
jr z, .strikes_back
@@ -789,7 +789,7 @@ HandleStrikesBack_AgainstResidualAttack: ; 367b (0:367b)
call nc, WaitForWideTextBoxInput
ret
-ApplyStrikesBack_AgainstResidualAttack: ; 36a2 (0:36a2)
+ApplyStrikesBack_AgainstResidualAttack:
push hl
call LoadTxRam3
ld a, [wTempTurnDuelistCardID]
@@ -822,7 +822,7 @@ ApplyStrikesBack_AgainstResidualAttack: ; 36a2 (0:36a2)
; if the id of the card provided in register a as a deck index is MUK,
; clear the changed type of all arena and bench Pokemon
-ClearChangedTypesIfMuk: ; 36d9 (0:36d9)
+ClearChangedTypesIfMuk:
call GetCardIDFromDeckIndex
ld a, e
cp MUK
diff --git a/src/home/switch_rom.asm b/src/home/switch_rom.asm
index 47b0d60..ab0736f 100644
--- a/src/home/switch_rom.asm
+++ b/src/home/switch_rom.asm
@@ -1,7 +1,7 @@
; switch to rombank (a + top2 of h shifted down),
; set top2 of h to 01 (switchable ROM bank area),
; return old rombank id on top-of-stack
-BankpushROM: ; 0745 (0:0745)
+BankpushROM:
push hl
push bc
push af
@@ -38,7 +38,7 @@ BankpushROM: ; 0745 (0:0745)
; switch to rombank a,
; return old rombank id on top-of-stack
-BankpushROM2: ; 076f (0:076f)
+BankpushROM2:
push hl
push bc
push af
@@ -66,7 +66,7 @@ BankpushROM2: ; 076f (0:076f)
ret
; restore rombank from top-of-stack
-BankpopROM: ; 078e (0:078e)
+BankpopROM:
push hl
push de
ld hl, sp+$7
@@ -87,7 +87,7 @@ BankpopROM: ; 078e (0:078e)
ret
; switch ROM bank to a
-BankswitchROM: ; 07a3 (0:07a3)
+BankswitchROM:
ldh [hBankROM], a
ld [MBC3RomBank], a
ret
diff --git a/src/home/text_box.asm b/src/home/text_box.asm
index 3d3414c..209a8a3 100644
--- a/src/home/text_box.asm
+++ b/src/home/text_box.asm
@@ -1,7 +1,7 @@
; copy c bytes of data from de to hl
; if LCD on, copy during h-blank only
-SafeCopyDataDEtoHL: ; 1dca (0:1dca)
+SafeCopyDataDEtoHL:
ld a, [wLCDC] ;
bit LCDC_ENABLE_F, a ;
jr nz, .lcd_on ; assert that LCD is on
@@ -17,7 +17,7 @@ SafeCopyDataDEtoHL: ; 1dca (0:1dca)
; returns v*BGMap0 + BG_MAP_WIDTH * e + d in hl.
; used to map coordinates at de to a BGMap0 address.
-DECoordToBGMap0Address: ; 1ddb (0:1ddb)
+DECoordToBGMap0Address:
ld l, e
ld h, $0
add hl, hl
@@ -34,7 +34,7 @@ DECoordToBGMap0Address: ; 1ddb (0:1ddb)
ret
; Apply SCX and SCY correction to xy coordinates at de
-AdjustCoordinatesForBGScroll: ; 1deb (0:1deb)
+AdjustCoordinatesForBGScroll:
push af
ldh a, [hSCX]
rra
@@ -56,7 +56,7 @@ AdjustCoordinatesForBGScroll: ; 1deb (0:1deb)
; Draws a bxc text box at de printing a name in the left side of the top border.
; The name's text id must be at hl when this function is called.
; Mostly used to print text boxes for talked-to NPCs, but occasionally used in duels as well.
-DrawLabeledTextBox: ; 1e00 (0:1e00)
+DrawLabeledTextBox:
ld a, [wConsole]
cp CONSOLE_SGB
jr nz, .draw_textbox
@@ -150,7 +150,7 @@ DrawLabeledTextBox: ; 1e00 (0:1e00)
; Draws a bxc text box at de to print menu data in the overworld.
; Also used to print a text box during a duel.
; When talking to NPCs, DrawLabeledTextBox is used instead.
-DrawRegularTextBox: ; 1e7c (0:1e7c)
+DrawRegularTextBox:
ld a, [wConsole]
cp CONSOLE_CGB
jr z, DrawRegularTextBoxCGB
@@ -158,7 +158,7 @@ DrawRegularTextBox: ; 1e7c (0:1e7c)
jp z, DrawRegularTextBoxSGB
; fallthrough
-DrawRegularTextBoxDMG: ; 1e88 (0:1e88)
+DrawRegularTextBoxDMG:
call DECoordToBGMap0Address
; top line (border) of the text box
ld a, SYM_BOX_TOP
@@ -168,7 +168,7 @@ DrawRegularTextBoxDMG: ; 1e88 (0:1e88)
; continue drawing a labeled or regular textbox on DMG or SGB:
; body and bottom line of either type of textbox
-ContinueDrawingTextBoxDMGorSGB: ; 1e93 (0:1e93)
+ContinueDrawingTextBoxDMGorSGB:
dec c
dec c
.draw_text_box_body_loop
@@ -187,7 +187,7 @@ ContinueDrawingTextBoxDMGorSGB: ; 1e93 (0:1e93)
; e = value of byte b
; a = value of bytes [1, b-1]
; b is supposed to be BG_MAP_WIDTH or smaller, else the stack would get corrupted
-CopyLine: ; 1ea5 (0:1ea5)
+CopyLine:
add sp, -BG_MAP_WIDTH
push hl
push bc
@@ -219,7 +219,7 @@ CopyLine: ; 1ea5 (0:1ea5)
ret
; DrawRegularTextBox branches here on CGB console
-DrawRegularTextBoxCGB: ; 1ec9 (0:1ec9)
+DrawRegularTextBoxCGB:
call DECoordToBGMap0Address
; top line (border) of the text box
ld a, SYM_BOX_TOP
@@ -229,7 +229,7 @@ DrawRegularTextBoxCGB: ; 1ec9 (0:1ec9)
; continue drawing a labeled or regular textbox on CGB:
; body and bottom line of either type of textbox
-ContinueDrawingTextBoxCGB: ; 1ed4 (0:1ed4)
+ContinueDrawingTextBoxCGB:
dec c
dec c
.draw_text_box_body_loop
@@ -257,13 +257,13 @@ ContinueDrawingTextBoxCGB: ; 1ed4 (0:1ed4)
; e = id of top right tile
; a = id of rest of tiles
; Assumes b = SCREEN_WIDTH and that VRAM bank 0 is loaded
-CopyCurrentLineTilesAndAttrCGB: ; 1efb (0:1efb)
+CopyCurrentLineTilesAndAttrCGB:
push hl
call CopyLine
pop hl
; fallthrough
-CopyCurrentLineAttrCGB: ; 1f00 (0:1f00)
+CopyCurrentLineAttrCGB:
call BankswitchVRAM1
ld a, [wTextBoxFrameType] ; on CGB, wTextBoxFrameType determines the palette and the other attributes
ld e, a
@@ -273,7 +273,7 @@ CopyCurrentLineAttrCGB: ; 1f00 (0:1f00)
ret
; DrawRegularTextBox branches here on SGB console
-DrawRegularTextBoxSGB: ; 1f0f (0:1f0f)
+DrawRegularTextBoxSGB:
push bc
push de
call DrawRegularTextBoxDMG
@@ -284,7 +284,7 @@ DrawRegularTextBoxSGB: ; 1f0f (0:1f0f)
ret z
; fallthrough
-ColorizeTextBoxSGB: ; 1f1b (0:1f1b)
+ColorizeTextBoxSGB:
push bc
push de
ld hl, wTempSGBPacket
@@ -326,7 +326,7 @@ ColorizeTextBoxSGB: ; 1f1b (0:1f1b)
call SendSGB
ret
-AttrBlkPacket_TextBox: ; 1f4f (0:1f4f)
+AttrBlkPacket_TextBox:
sgb ATTR_BLK, 1 ; sgb_command, length
db 1 ; number of data sets
; Control Code, Color Palette Designation, X1, Y1, X2, Y2
diff --git a/src/home/tiles.asm b/src/home/tiles.asm
index 9d68d43..2ebf3e7 100644
--- a/src/home/tiles.asm
+++ b/src/home/tiles.asm
@@ -3,7 +3,7 @@
; | a+0*l+0*h | a+0*l+1*h | a+0*l+2*h |
; | a+1*l+0*h | a+1*l+1*h | a+1*l+2*h |
; | a+2*l+0*h | a+2*l+1*h | a+2*l+2*h |
-FillRectangle: ; 1f5f (0:1f5f)
+FillRectangle:
push de
push af
push hl
@@ -46,7 +46,7 @@ FillRectangle: ; 1f5f (0:1f5f)
pop de
ret
-Func_1f96: ; 1f96 (0:1f96)
+Func_1f96:
add sp, -10
ld hl, sp+0
ld [hli], a ; sp-10 <- a
@@ -179,7 +179,7 @@ Func_1f96: ; 1f96 (0:1f96)
scf
ret
-Func_2046: ; 2046 (0:2046)
+Func_2046:
ld hl, sp+3
ld a, [hl]
inc [hl]
@@ -189,15 +189,15 @@ Func_2046: ; 2046 (0:2046)
jr z, Func_2055
; fallthrough
-Func_2051: ; 2051 (0:2051)
+Func_2051:
ld hl, sp+9
jr Func_2057
-Func_2055: ; 2055 (0:2055)
+Func_2055:
ld hl, sp+8
; fallthrough
-Func_2057: ; 2057 (0:2057)
+Func_2057:
ld e, [hl]
ld hl, sp+2
ld a, [hl]
@@ -212,7 +212,7 @@ Func_2057: ; 2057 (0:2057)
; loads the four tiles of the card set 2 icon constant provided in register a
; returns carry if the specified set does not have an icon
-LoadCardSet2Tiles: ; 2066 (0:2066)
+LoadCardSet2Tiles:
and $7 ; mask out PRO
ld e, a
ld d, 0
@@ -237,7 +237,7 @@ LoadCardSet2Tiles: ; 2066 (0:2066)
db -1, $0 tiles, $4 tiles, -1, -1, -1, -1, $8 tiles
; loads the Deck and Hand icons for the "Draw X card(s) from the deck." screen
-LoadDuelDrawCardsScreenTiles: ; 208d (0:208d)
+LoadDuelDrawCardsScreenTiles:
ld hl, DuelOtherGraphics + $29 tiles
ld de, v0Tiles1 + $74 tiles
ld b, $08
@@ -245,7 +245,7 @@ LoadDuelDrawCardsScreenTiles: ; 208d (0:208d)
; loads the 8 tiles that make up the border of the main duel menu as well as the border
; of a large card picture (displayed after drawing the card or placing it in the arena).
-LoadCardOrDuelMenuBorderTiles: ; 2098 (0:2098)
+LoadCardOrDuelMenuBorderTiles:
ld hl, DuelOtherGraphics + $15 tiles
ld de, v0Tiles1 + $50 tiles
ld b, $08
@@ -253,7 +253,7 @@ LoadCardOrDuelMenuBorderTiles: ; 2098 (0:2098)
; loads the graphics of a card type header, used to display a picture of a card after drawing it
; or placing it in the arena. register e determines which header (TRAINER, ENERGY, PoKéMoN)
-LoadCardTypeHeaderTiles: ; 20a2 (0:20a2)
+LoadCardTypeHeaderTiles:
ld d, a
ld e, 0
ld hl, DuelCardHeaderGraphics - $4000
@@ -263,7 +263,7 @@ LoadCardTypeHeaderTiles: ; 20a2 (0:20a2)
jr CopyFontsOrDuelGraphicsTiles
; loads the symbols that are displayed near the names of a list of cards in the hand or discard pile
-LoadDuelCardSymbolTiles: ; 20b0 (0:20b0)
+LoadDuelCardSymbolTiles:
ld hl, DuelDmgSgbSymbolGraphics - $4000
ld a, [wConsole]
cp CONSOLE_CGB
@@ -276,7 +276,7 @@ LoadDuelCardSymbolTiles: ; 20b0 (0:20b0)
; loads the symbols for Stage 1 Pkmn card, Stage 2 Pkmn card, and Trainer card.
; unlike LoadDuelCardSymbolTiles excludes the symbols for Basic Pkmn and all energies.
-LoadDuelCardSymbolTiles2: ; 20c4 (0:20c4)
+LoadDuelCardSymbolTiles2:
ld hl, DuelDmgSgbSymbolGraphics + $4 tiles - $4000
ld a, [wConsole]
cp CONSOLE_CGB
@@ -288,12 +288,12 @@ LoadDuelCardSymbolTiles2: ; 20c4 (0:20c4)
jr CopyFontsOrDuelGraphicsTiles
; load the face down basic / stage1 / stage2 card images shown in the check Pokemon screens
-LoadDuelFaceDownCardTiles: ; 20d8 (0:20d8)
+LoadDuelFaceDownCardTiles:
ld b, $10
jr LoadDuelCheckPokemonScreenTiles.got_num_tiles
; same as LoadDuelFaceDownCardTiles, plus also load the ACT / BPx tiles
-LoadDuelCheckPokemonScreenTiles: ; 20dc (0:20dc)
+LoadDuelCheckPokemonScreenTiles:
ld b, $24
.got_num_tiles
ld hl, DuelDmgSgbSymbolGraphics + $30 tiles - $4000
@@ -306,7 +306,7 @@ LoadDuelCheckPokemonScreenTiles: ; 20dc (0:20dc)
jr CopyFontsOrDuelGraphicsTiles
; load the tiles for the "Placing the prizes..." screen
-LoadPlacingThePrizesScreenTiles: ; 20f0 (0:20f0)
+LoadPlacingThePrizesScreenTiles:
; load the Pokeball field tiles
ld hl, DuelOtherGraphics
ld de, v0Tiles1 + $20 tiles
@@ -315,7 +315,7 @@ LoadPlacingThePrizesScreenTiles: ; 20f0 (0:20f0)
; fallthrough
; load the Deck and the Discard Pile icons
-LoadDeckAndDiscardPileIcons: ; 20fb (0:20fb)
+LoadDeckAndDiscardPileIcons:
ld hl, DuelDmgSgbSymbolGraphics + $54 tiles - $4000
ld a, [wConsole]
cp CONSOLE_CGB
@@ -327,14 +327,14 @@ LoadDeckAndDiscardPileIcons: ; 20fb (0:20fb)
jr CopyFontsOrDuelGraphicsTiles
; load the tiles for the [O] and [X] symbols used to display the results of a coin toss
-LoadDuelCoinTossResultTiles: ; 210f (0:210f)
+LoadDuelCoinTossResultTiles:
ld hl, DuelOtherGraphics + $d tiles
ld de, v0Tiles2 + $30 tiles
ld b, $8
jr CopyFontsOrDuelGraphicsTiles
; load the tiles of the text characters used with TX_SYMBOL
-LoadSymbolsFont: ; 2119 (0:2119)
+LoadSymbolsFont:
ld hl, SymbolsFont - $4000
ld de, v0Tiles2 ; destination
ld b, (DuelCardHeaderGraphics - SymbolsFont) / TILE_SIZE ; number of tiles
@@ -344,7 +344,7 @@ LoadSymbolsFont: ; 2119 (0:2119)
; copy b tiles from Gfx1:(hl+$4000) to de
; if $4000 ≤ hl ≤ $7fff
; copy b tiles from Gfx2:hl to de
-CopyFontsOrDuelGraphicsTiles: ; 2121 (0:2121)
+CopyFontsOrDuelGraphicsTiles:
ld a, BANK(Fonts) ; BANK(DuelGraphics)
call BankpushROM
ld c, TILE_SIZE
@@ -353,7 +353,7 @@ CopyFontsOrDuelGraphicsTiles: ; 2121 (0:2121)
ret
; this function copies gfx data into sram
-Func_212f: ; 212f (0:212f)
+Func_212f:
; loads symbols fonts to sGfxBuffer1
ld hl, SymbolsFont - $4000
ld de, sGfxBuffer1
@@ -383,7 +383,7 @@ Func_212f: ; 212f (0:212f)
jr CopyFontsOrDuelGraphicsTiles
; load the graphics and draw the duel box message given a BOXMSG_* constant in a
-DrawDuelBoxMessage: ; 2167 (0:2167)
+DrawDuelBoxMessage:
ld l, a
ld h, 40 tiles / 4 ; boxes are 10x4 tiles
call HtimesL
@@ -403,7 +403,7 @@ DrawDuelBoxMessage: ; 2167 (0:2167)
; load the tiles for the latin, katakana, and hiragana fonts into VRAM
; from gfx/fonts/full_width/3.1bpp and gfx/fonts/full_width/4.1bpp
-LoadFullWidthFontTiles: ; 2189 (0:2189)
+LoadFullWidthFontTiles:
ld hl, FullWidthFonts + $3cc tiles_1bpp - $4000
ld a, BANK(Fonts) ; BANK(DuelGraphics)
call BankpushROM
@@ -421,7 +421,7 @@ LoadFullWidthFontTiles: ; 2189 (0:2189)
ret
; copy 128 1bpp tiles from de to hl as 2bpp
-Copy1bppTiles: ; 21ab (0:21ab)
+Copy1bppTiles:
ld b, $80
.tile_loop
ld c, TILE_SIZE_1BPP
diff --git a/src/home/time.asm b/src/home/time.asm
index 83100c7..8b8cda2 100644
--- a/src/home/time.asm
+++ b/src/home/time.asm
@@ -1,5 +1,5 @@
; timer interrupt handler
-TimerHandler: ; 01e6 (0:01e6)
+TimerHandler:
push af
push hl
push de
@@ -37,7 +37,7 @@ TimerHandler: ; 01e6 (0:01e6)
reti
; increment play time counter by a tick
-IncrementPlayTimeCounter: ; 021c (0:021c)
+IncrementPlayTimeCounter:
ld a, [wPlayTimeCounterEnable]
or a
ret z
@@ -67,7 +67,7 @@ IncrementPlayTimeCounter: ; 021c (0:021c)
ret
; setup timer to 16384/68 ≈ 240.94 Hz
-SetupTimer: ; 0241 (0:0241)
+SetupTimer:
ld b, -68 ; Value for Normal Speed
call CheckForCGB
jr c, .set_timer
@@ -85,7 +85,7 @@ SetupTimer: ; 0241 (0:0241)
ret
; return carry if not CGB
-CheckForCGB: ; 025c (0:025c)
+CheckForCGB:
ld a, [wConsole]
cp CONSOLE_CGB
ret z
diff --git a/src/home/unsafe_bg_map.asm b/src/home/unsafe_bg_map.asm
index 64e6e93..fb45c0e 100644
--- a/src/home/unsafe_bg_map.asm
+++ b/src/home/unsafe_bg_map.asm
@@ -2,7 +2,7 @@
; x (1 byte), y (1 byte), data (n bytes), $00
; writes data to BGMap0-translated x,y
; important: make sure VRAM can be accessed first, else use WriteDataBlockToBGMap0
-UnsafeWriteDataBlockToBGMap0: ; 0492 (0:0492)
+UnsafeWriteDataBlockToBGMap0:
ld a, [hli]
ld b, a
ld a, [hli]
diff --git a/src/home/vblank.asm b/src/home/vblank.asm
index bd96971..509d32f 100644
--- a/src/home/vblank.asm
+++ b/src/home/vblank.asm
@@ -1,5 +1,5 @@
; vblank interrupt handler
-VBlankHandler: ; 019b (0:019b)
+VBlankHandler:
push af
push bc
push de
diff --git a/src/home/vram.asm b/src/home/vram.asm
index 427018f..49fc0de 100644
--- a/src/home/vram.asm
+++ b/src/home/vram.asm
@@ -1,5 +1,5 @@
; set current dest VRAM bank to 0
-BankswitchVRAM0: ; 07c5 (0:07c5)
+BankswitchVRAM0:
push af
xor a
ldh [hBankVRAM], a
@@ -8,7 +8,7 @@ BankswitchVRAM0: ; 07c5 (0:07c5)
ret
; set current dest VRAM bank to 1
-BankswitchVRAM1: ; 07cd (0:07cd)
+BankswitchVRAM1:
push af
ld a, $1
ldh [hBankVRAM], a
@@ -17,7 +17,7 @@ BankswitchVRAM1: ; 07cd (0:07cd)
ret
; set current dest VRAM bank to a
-BankswitchVRAM: ; 07d6 (0:07d6)
+BankswitchVRAM:
ldh [hBankVRAM], a
ldh [rVBK], a
ret
diff --git a/src/home/write_number.asm b/src/home/write_number.asm
index ef9e198..d480e27 100644
--- a/src/home/write_number.asm
+++ b/src/home/write_number.asm
@@ -1,6 +1,6 @@
; converts the two-digit BCD number provided in a to text (ascii) format,
; writes them to [wStringBuffer] and [wStringBuffer + 1], and to the BGMap0 address at bc
-WriteTwoDigitBCDNumber: ; 05c2 (0:05c2)
+WriteTwoDigitBCDNumber:
push hl
push bc
push de
@@ -20,7 +20,7 @@ WriteTwoDigitBCDNumber: ; 05c2 (0:05c2)
; converts the one-digit BCD number provided in the lower nybble of a to text
; (ascii) format, and writes it to [wStringBuffer] and to the BGMap0 address at bc
-WriteOneDigitBCDNumber: ; 05db (0:05db)
+WriteOneDigitBCDNumber:
push hl
push bc
push de
@@ -40,7 +40,7 @@ WriteOneDigitBCDNumber: ; 05db (0:05db)
; converts the four-digit BCD number provided in h and l to text (ascii) format,
; writes them to [wStringBuffer] through [wStringBuffer + 3], and to the BGMap0 address at bc
-WriteFourDigitBCDNumber: ; 05f4 (0:05f4)
+WriteFourDigitBCDNumber:
push hl
push bc
push de
@@ -66,7 +66,7 @@ WriteFourDigitBCDNumber: ; 05f4 (0:05f4)
; given two BCD digits in the two nybbles of register a,
; write them in text (ascii) format to hl (most significant nybble first).
; numbers above 9 end up converted to half-width font tiles.
-WriteBCDNumberInTextFormat: ; 0614 (0:0614)
+WriteBCDNumberInTextFormat:
push af
swap a
call WriteBCDDigitInTextFormat
@@ -75,7 +75,7 @@ WriteBCDNumberInTextFormat: ; 0614 (0:0614)
; given a BCD digit in the (lower nybble) of register a, write it in text (ascii)
; format to hl. numbers above 9 end up converted to half-width font tiles.
-WriteBCDDigitInTextFormat: ; 061b (0:061b)
+WriteBCDDigitInTextFormat:
and $0f
add "0"
cp "9" + 1
@@ -87,7 +87,7 @@ WriteBCDDigitInTextFormat: ; 061b (0:061b)
; converts the one-byte number at a to text (ascii) format,
; and writes it to [wStringBuffer] and the BGMap0 address at bc
-WriteOneByteNumber: ; 0627 (0:0627)
+WriteOneByteNumber:
push bc
push hl
ld l, a
@@ -112,7 +112,7 @@ WriteOneByteNumber: ; 0627 (0:0627)
; converts the two-byte number at hl to text (ascii) format,
; and writes it to [wStringBuffer] and the BGMap0 address at bc
-WriteTwoByteNumber: ; 0650 (0:0650)
+WriteTwoByteNumber:
push bc
ld de, wStringBuffer
push de
@@ -125,7 +125,7 @@ WriteTwoByteNumber: ; 0650 (0:0650)
ret
; convert the number at hl to text (ascii) format and write it to de
-TwoByteNumberToText: ; 0663 (0:0663)
+TwoByteNumberToText:
push bc
ld bc, -10000
call .get_digit