summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
m---------extras0
-rwxr-xr-xmain.asm1600
2 files changed, 1272 insertions, 328 deletions
diff --git a/extras b/extras
-Subproject b0fa67a51191a9ddc2a4ce548ade0243b6be554
+Subproject d8f4e687ebc49d4b135f0d8b7f10a643114a0d8
diff --git a/main.asm b/main.asm
index 7fee9a4f..692c0245 100755
--- a/main.asm
+++ b/main.asm
@@ -565,7 +565,7 @@ OverworldLoopLessDelay: ; 0402 (0:0402)
call Predef
ld a,[W_CURMAP]
ld [$d71a],a
- call Function62CE
+ call Func_62ce
ld a,[W_CURMAP]
call SwitchToMapRomBank ; switch to the ROM bank of the current map
ld hl,$d367
@@ -1209,7 +1209,7 @@ HandleBlackOut: ; 0931 (0:0931)
ld [H_LOADEDROMBANK],a
ld [$2000],a
call Func_40b0
- call Function62CE
+ call Func_62ce
call Func_2312
jp Func_5d5f
@@ -1239,7 +1239,7 @@ HandleFlyOrTeleportAway: ; 0965 (0:0965)
ld a,$01
ld [H_LOADEDROMBANK],a
ld [$2000],a
- call Function62CE
+ call Func_62ce
jp Func_5d5f
; function that calls a function to do fly away or teleport away graphics
@@ -14008,7 +14008,7 @@ MainMenu: ; 5af2 (1:5af2)
ld [$D71A],a
ld hl,$D732
set 2,[hl]
- call Function62CE
+ call Func_62ce
jp Func_5d5f
Func_5bff: ; 5bff (1:5bff)
ld a,1
@@ -14157,7 +14157,7 @@ Func_5c0a: ; 5c0a (1:5c0a)
res 1, [hl]
ld a, [W_ANIMATIONID] ; $d07c
ld [$d71a], a
- call Function62CE
+ call Func_62ce
ld c, $14
call DelayFrames
xor a
@@ -14659,12 +14659,12 @@ OakSpeech: ; 6115 (1:6115)
call AddItemToInventory ; give one potion
ld a,[$D07C]
ld [$D71A],a
- call Function62CE
+ call Func_62ce
xor a
ld [$FFD7],a
ld a,[$D732]
bit 1,a ; XXX when is bit 1 set?
- jp nz,Function61BC ; easter egg: skip the intro
+ jp nz,Func_61bc ; easter egg: skip the intro
ld de,ProfOakPic
ld bc,$1300
call IntroPredef3B ; displays Oak pic?
@@ -14701,7 +14701,8 @@ OakSpeech: ; 6115 (1:6115)
ld hl,IntroduceRivalText
call PrintText
call Func_69a4
-Function61BC: ; 61bc (1:61bc)
+
+Func_61bc: ; 61bc (1:61bc)
call GBFadeOut2
call ClearScreen
ld de,RedPicFront
@@ -14842,7 +14843,7 @@ IntroPredef3B: ; 62a4 (1:62a4)
ld a,1
jp Predef
-Function62CE: ; 62CE XXX called by 4B2 948 989 5BF9 5D15
+Func_62ce: ; 62ce (1:62ce)
call Func_62ff
ld a,$19
call Predef
@@ -17275,10 +17276,10 @@ JapanesePokedexMenu: ; 74a1 (1:74a1)
res 6, [hl]
ret
-CurrencyString_74e2: ; 0x74e2, 1:34e2
+CurrencyString: ; 74e2 (1:34e2)
db " ¥@"
-Function_74ea: ; 0x74ea, 1:34ea
+Func_74ea: ; 74ea (1:34ea)
ld a, [$d730]
set 6, a
ld [$d730], a
@@ -17510,22 +17511,22 @@ MenuStrings: ; 7671 (1:7671)
db 4,3,0
dw .NoYesMenu
-.NoYesMenu ; 0x7699, 1:3699
+.NoYesMenu ; 7699 (1:3699)
db "NO",$4E,"YES@"
-.YesNoMenu ; 0x76a0, 1:36a0
+.YesNoMenu ; 76a0 (1:36a0)
db "YES",$4E,"NO@"
-.NorthWestMenu ; 0x76a7, 1:36a7
+.NorthWestMenu ; 76a7 (1:36a7)
db "NORTH",$4E,"WEST@"
-.SouthEastMenu ; 0x76b2, 1:36b2
+.SouthEastMenu ; 76b2 (1:36b2)
db "SOUTH",$4E,"EAST@"
-.NorthEastMenu ; 0x76bd, 1:36bd
+.NorthEastMenu ; 76bd (1:36bd)
db "NORTH",$4E,"EAST@"
-.TradeCancelMenu ; 0x76c8, 1:36c8
+.TradeCancelMenu ; 76c8 (1:36c8)
db "TRADE",$4E,"CANCEL@"
-.HealCancelMenu ; 0x76d5, 1:36d5
+.HealCancelMenu ; 76d5 (1:36d5)
db "HEAL",$4E,"CANCEL@"
-Function_76e1: ; 0x76e1, 1:36e1
+Func_76e1: ; 76e1 (1:36e1)
xor a
ld hl, wWhichTrade ; $cd3d
ld [hli], a
@@ -21077,7 +21078,7 @@ Func_c3ff: ; c3ff (3:43ff)
srl a
ld c, a
ld b, $0
- ld hl, Unknown_c422 ; $4422
+ ld hl, PointerTable_c422 ; $4422
add hl, bc
ld a, [hli]
ld h, [hl]
@@ -21095,34 +21096,43 @@ Func_c3ff: ; c3ff (3:43ff)
pop hl
ret
-Unknown_c422: ; c422 (3:4422)
-INCBIN "baserom.gbc",$c422,$c42a - $c422
+PointerTable_c422: ; c422 (3:4422)
+ dw .asm_c42a
+ dw .asm_4434
+ dw .asm_443A
+ dw .asm_4440
-Func_c422: ; c42a (3:442a)
+.asm_c42a
ld a, [W_CURMAPHEIGHT] ; $d368
add a
dec a
cp b
- jr z, .asm_c44c
- jr .asm_c44a
+ jr z, .setCarry
+ jr .resetCarry
+
+.asm_4434
ld a, b
and a
- jr z, .asm_c44c
- jr .asm_c44a
+ jr z, .setCarry
+ jr .resetCarry
+
+.asm_443A
ld a, c
and a
- jr z, .asm_c44c
- jr .asm_c44a
+ jr z, .setCarry
+ jr .resetCarry
+
+.asm_4440
ld a, [W_CURMAPWIDTH] ; $d369
add a
dec a
cp c
- jr z, .asm_c44c
- jr .asm_c44a
-.asm_c44a
+ jr z, .setCarry
+ jr .resetCarry
+.resetCarry
and a
ret
-.asm_c44c
+.setCarry
scf
ret
@@ -26412,8 +26422,8 @@ ItemUseBall: ; d687 (3:5687)
call LoadScreenTilesFromBuffer1 ;restore screenBuffer from Backup
ld hl,ItemUseText00
call PrintText
- ld hl, Function583A
- ld b, BANK(Function583A)
+ ld hl, Func_3d83a
+ ld b, BANK(Func_3d83a)
call Bankswitch
ld b,$10
jp z,.next12
@@ -33835,6 +33845,7 @@ UnnamedText_1399e: ; 1399e (4:799e)
TX_FAR _UnnamedText_1399e
db "@"
+Func_139a3: ; 139a3 (4:79a3)
ld hl, W_ENEMYMONTYPE1
ld de, W_PLAYERMONTYPE1
ld a, [H_WHOSETURN]
@@ -37321,7 +37332,7 @@ VermilionCityScript: ; 197a1 (6:57a1)
bit 6, [hl]
res 6, [hl]
push hl
- call nz, Function197cb
+ call nz, VermilionCityScript_197cb
pop hl
bit 5, [hl]
res 5, [hl]
@@ -37337,7 +37348,7 @@ VermilionCityScript_197c0: ; 197c0 (6:57c0)
ld [$d743], a
ret
-Function197cb: ; 197cb (6:57cb)
+VermilionCityScript_197cb: ; 197cb (6:57cb)
ld hl, $d803
bit 2, [hl]
ret z
@@ -40322,7 +40333,6 @@ OaksLabScript11: ; 1cdb9 (7:4db9)
ld [wJoypadForbiddenButtonsMask], a
ld a, $8
ld [$d528], a
-
ld a, $c
ld [W_OAKSLABCURSCRIPT], a
ret
@@ -40430,7 +40440,7 @@ OaksLabScript15: ; 1ceb0 (7:4eb0)
ld a, $15
ld [$ff00+$8c], a
call DisplayTextID
- call Func_1d02b
+ call OaksLabScript_1d02b
ld a, $2a
ld [$cc4d], a
ld a, $15
@@ -40452,7 +40462,7 @@ OaksLabScript15: ; 1ceb0 (7:4eb0)
ld [W_OAKSLABCURSCRIPT], a
ret
-Function1CEFD ; 0x1cefd
+OaksLabScript_1cefd ; 1cefd (7:4efd)
ld a, $1
ld [$ff00+$8c], a
ld a, $4
@@ -40472,17 +40482,17 @@ OaksLabScript16: ; 1cf12 (7:4f12)
call Func_2307
ld a, $fc
ld [wJoypadForbiddenButtonsMask], a
- call Function1CEFD
+ call OaksLabScript_1cefd
ld a, $16
ld [$ff00+$8c], a
call DisplayTextID
call DelayFrame
- call Function1CEFD
+ call OaksLabScript_1cefd
ld a, $17
ld [$ff00+$8c], a
call DisplayTextID
call DelayFrame
- call Function1CEFD
+ call OaksLabScript_1cefd
ld a, $18
ld [$ff00+$8c], a
call DisplayTextID
@@ -40499,7 +40509,7 @@ OaksLabScript16: ; 1cf12 (7:4f12)
ld [$cc4d], a
ld a, $11
call Predef
- call Function1CEFD
+ call OaksLabScript_1cefd
ld a, $1a
ld [$ff00+$8c], a
call DisplayTextID
@@ -40575,7 +40585,7 @@ OaksLabScript17: ; 1cfd4 (7:4fd4)
OaksLabScript18: ; 1d009 (7:5009)
ret
-Function1D00A: ; 1d00a (7:500a)
+OaksLabScript_1d00a: ; 1d00a (7:500a)
ld hl, wBagItems
ld bc, $0000
.asm_1d010
@@ -40595,7 +40605,7 @@ Function1D00A: ; 1d00a (7:500a)
ld [$cf96], a
jp RemoveItemFromInventory
-Func_1d02b: ; 1d02b (7:502b)
+OaksLabScript_1d02b: ; 1d02b (7:502b)
ld a, $7c
ld [$ff00+$eb], a
ld a, $8
@@ -40946,7 +40956,7 @@ OaksLabText5: ; 1d248 (7:5248)
.asm_a8fcf ; 0x1d2b8
ld hl, OaksLabDeliverParcelText
call PrintText
- call Function1D00A
+ call OaksLabScript_1d00a
ld a, $f
ld [W_OAKSLABCURSCRIPT], a
jr .asm_0f042 ; 0x1d2c6
@@ -42763,7 +42773,7 @@ Route5GateScriptPointers: ; 1df3f (7:5f3f)
dw Route5GateScript0
dw Route5GateScript1
-Function1df43: ; 1df43 (7:5f43)
+Route5GateScript_1df43: ; 1df43 (7:5f43)
ld a, $40
ld [$ccd3], a
ld a, $1
@@ -42790,7 +42800,7 @@ Route5GateScript0: ; 1df50 (7:5f50)
ld a, $2
ld [$ff00+$8c], a
call DisplayTextID
- call Function1df43
+ call Route5GateScript_1df43
ld a, $1
ld [W_ROUTE5GATECURSCRIPT], a
ret
@@ -42838,7 +42848,7 @@ Route5GateText1: ; 1dfaa (7:5faa)
jr nz, .asm_768a2 ; 0x1dfbd $11
ld hl, UnnamedText_1dfe7
call PrintText
- call Function1df43
+ call Route5GateScript_1df43
ld a, $1
ld [W_ROUTE5GATECURSCRIPT], a
jp TextScriptEnd
@@ -43021,7 +43031,7 @@ Route7GateScriptPointers: ; 1e10d (7:610d)
dw Route7GateScript0
dw Route7GateScript1
-Function1e111: ; 1e111 (7:6111)
+Route7GateScript_1e111: ; 1e111 (7:6111)
ld hl, $d730
set 7, [hl]
ld a, $20
@@ -43053,7 +43063,7 @@ Route7GateScript0: ; 1e128 (7:6128)
ld a, $2
ld [$ff00+$8c], a
call DisplayTextID
- call Function1e111
+ call Route7GateScript_1e111
ld a, $1
ld [W_ROUTE7GATECURSCRIPT], a
ret
@@ -43127,7 +43137,7 @@ Route8GateScriptPointers: ; 1e1d3 (7:61d3)
dw Route8GateScript0
dw Route8GateScript1
-Function1e1d7: ; 1e1d7 (7:61d7)
+Route8GateScript_1e1d7: ; 1e1d7 (7:61d7)
ld hl, $d730
set 7, [hl]
ld a, $10
@@ -43159,7 +43169,7 @@ Route8GateScript0: ; 1e1ee (7:61ee)
ld a, $2
ld [$ff00+$8c], a
call DisplayTextID
- call Function1e1d7
+ call Route8GateScript_1e1d7
ld a, $1
ld [W_ROUTE8GATECURSCRIPT], a
ret
@@ -47825,7 +47835,7 @@ DuplicateBitsTable: ; 2fea8 (b:7ea8)
db $c0, $c3, $cc, $cf
db $f0, $f3, $fc, $ff
-Func_2feb8 ; 0x2feb8
+Func_2feb8 ; 2feb8 (b:7eb8)
xor a
ld hl, $cd6d
ld [hli], a
@@ -47870,6 +47880,7 @@ UnnamedText_2ff04: ; 2ff04 (b:7f04)
TX_FAR _UnnamedText_2ff04
db "@"
+Func_2ff09 ; 2ff09 (b:7f09)
ld a, [$c102]
and $8
jr z, .asm_2ff2e
@@ -48024,6 +48035,7 @@ RedPicBack: ; 33e0a (c:7e0a)
OldManPic: ; 33e9a (c:7e9a)
INCBIN "pic/trainer/oldman.pic"
+Func_33f2b: ; 33f2b (c:7f2b)
ld hl, $d063
ld a, [$ff00+$f3]
and a
@@ -49257,7 +49269,7 @@ Func_37ca1: ; 37ca1 (d:7ca1)
add hl, de
ld d, h
ld e, l
- ld hl, Unknown_37ce6
+ ld hl, PointerTable_37ce6
ld a, [$d12f]
add a
ld b, $0
@@ -49297,8 +49309,15 @@ Func_37ca1: ; 37ca1 (d:7ca1)
inc hl
jr .asm_37cc7
-Unknown_37ce6: ; 37ce6 (d:7ce6)
-INCBIN "baserom.gbc",$37ce6,$37d41 - $37ce6
+PointerTable_37ce6: ; 37ce6 (d:7ce6)
+ dw Unknown_37cea
+ dw Unknown_37d06
+
+Unknown_37cea: ; 37cea (d:7cea)
+INCBIN "baserom.gbc",$37cea,$37d06 - $37cea
+
+Unknown_37d06: ; 37d06 (d:7d06)
+INCBIN "baserom.gbc",$37d06,$37d41 - $37d06
_Multiply: ; 37d41 (d:7d41)
ld a, $8
@@ -49444,7 +49463,50 @@ _Divide: ; 37da5 (d:7da5)
ld [H_DIVIDEND], a ; $FF00+$95 (aliases: H_PRODUCT, H_PASTLEADINGZEROES, H_QUOTIENT)
ret
-INCBIN "baserom.gbc",$37e2d,$37e79 - $37e2d
+Func_37e2d: ; 37e2d (d:7e2d)
+ ld a, [wTrainerSpriteOffset]
+ cp $fd
+ jr z, .asm_37e66
+ cp $fe
+ jr z, .asm_37e6a
+ cp $ff
+ jr z, .asm_37e6e
+ ld b, BANK(Func_2ff09)
+ ld hl, Func_2ff09
+ call Bankswitch
+ ld a, [wTrainerSpriteOffset]
+ and a
+ ret z
+ ld a, [$cd05]
+ ld b, a
+ ld a, [wTrainerFacingDirection]
+ inc a
+ cp b
+ jr z, .asm_37e58
+ ld a, $fd
+ jr .asm_37e5a
+.asm_37e58
+ ld a, $fa
+.asm_37e5a
+ ld [$cc5b], a
+ ld a, [H_LOADEDROMBANK]
+ ld [$cc5e], a
+ call Func_3730e
+ ret
+.asm_37e66
+ ld a, $28
+ jr .asm_37e70
+.asm_37e6a
+ ld a, $29
+ jr .asm_37e70
+.asm_37e6e
+ ld a, $2a
+.asm_37e70
+ push af
+ call EnableAutoTextBoxDrawing
+ pop af
+ call Func_3ef5
+ ret
UnnamedText_37e79: ; 37e79 (d:7e79)
TX_FAR _UnnamedText_37e79
@@ -57162,7 +57224,7 @@ TrainerAIPointers: ; 3a55c (e:655c)
JugglerAI: ; 3a5e9 (e:65e9)
cp $40
ret nc
- jp Function672A
+ jp Func_3a72a
BlackbeltAI: ; 3a5ef (e:65ef)
cp $20
@@ -57182,12 +57244,12 @@ CooltrainerMAI: ; 3a5fb (e:65fb)
CooltrainerFAI: ; 3a601 (e:6601)
cp $40
ld a,$A
- call Function67CF
+ call Func_3a7cf
jp c,AIUseHyperPotion
ld a,5
- call Function67CF
+ call Func_3a7cf
ret nc
- jp Function672A
+ jp Func_3a72a
BrockAI: ; 3a614 (e:6614)
; if his active monster has a status condition, use a full heal
@@ -57210,7 +57272,7 @@ ErikaAI: ; 3a628 (e:6628)
cp $80
ret nc
ld a,$A
- call Function67CF
+ call Func_3a7cf
ret nc
jp AIUseSuperPotion
@@ -57228,7 +57290,7 @@ SabrinaAI: ; 3a640 (e:6640)
cp $40
ret nc
ld a,$A
- call Function67CF
+ call Func_3a7cf
ret nc
jp AIUseHyperPotion
@@ -57236,7 +57298,7 @@ Sony2AI: ; 3a64c (e:664c)
cp $20
ret nc
ld a,5
- call Function67CF
+ call Func_3a7cf
ret nc
jp AIUsePotion
@@ -57244,7 +57306,7 @@ Sony3AI: ; 3a658 (e:6658)
cp $20
ret nc
ld a,5
- call Function67CF
+ call Func_3a7cf
ret nc
jp AIUseFullRestore
@@ -57252,7 +57314,7 @@ LoreleiAI: ; 3a664 (e:6664)
cp $80
ret nc
ld a,5
- call Function67CF
+ call Func_3a7cf
ret nc
jp AIUseSuperPotion
@@ -57263,11 +57325,11 @@ BrunoAI: ; 3a670 (e:6670)
AgathaAI: ; 3a676 (e:6676)
cp $14
- jp c,Function672A
+ jp c,Func_3a72a
cp $80
ret nc
ld a,4
- call Function67CF
+ call Func_3a7cf
ret nc
jp AIUseSuperPotion
@@ -57275,7 +57337,7 @@ LanceAI: ; 3a687 (e:6687)
cp $80
ret nc
ld a,5
- call Function67CF
+ call Func_3a7cf
ret nc
jp AIUseHyperPotion
@@ -57291,8 +57353,7 @@ DecrementAICount: ; 3a695 (e:6695)
scf
ret
-Function669B: ; 3a69b (e:669b)
-; XXX what does this do
+Func_3a69b: ; 3a69b (e:669b)
ld a,$8E
jp PlaySoundWaitForCurrent
@@ -57318,7 +57379,7 @@ AIUseFullRestore: ; 3a6a0 (e:66a0)
ld [de],a
ld [wHPBarMaxHP+1],a
ld [W_ENEMYMONCURHP],a
- jr Function6718
+ jr Func_3a718
AIUsePotion: ; 3a6ca (e:66ca)
; enemy trainer heals his monster with a potion
@@ -57368,7 +57429,7 @@ AIRecoverHP: ; 3a6da (e:66da)
ld a,[de]
ld [wHPBarMaxHP+1],a
sbc b
- jr nc,Function6718
+ jr nc,Func_3a718
inc de
ld a,[de]
dec de
@@ -57379,7 +57440,7 @@ AIRecoverHP: ; 3a6da (e:66da)
ld [wHPBarNewHP+1],a
; fallthrough
-Function6718: ; 3a718 (e:6718)
+Func_3a718: ; 3a718 (e:6718)
call AIPrintItemUse_
FuncCoord 2, 2 ; $c3ca
ld hl,Coord
@@ -57389,7 +57450,7 @@ Function6718: ; 3a718 (e:6718)
call Predef
jp DecrementAICount
-Function672A: ; 3a72a (e:672a)
+Func_3a72a: ; 3a72a (e:672a)
ld a,[wEnemyPartyCount]
ld c,a
ld hl,W_ENEMYMON1HP
@@ -57414,11 +57475,11 @@ Function672A: ; 3a72a (e:672a)
ld a,d ; how many available monsters are there?
cp 2 ; don't bother if only 1 or 2
- jp nc,Function674B ; XXX check, does this jump when a = 2?
+ jp nc,Func_3a74b
and a
ret
-Function674B: ; 3a74b (e:674b)
+Func_3a74b: ; 3a74b (e:674b)
; prepare to withdraw the active monster: copy hp, number, and status to roster
@@ -57454,7 +57515,7 @@ AIBattleWithdrawText: ; 3a781 (e:6781)
db "@"
AIUseFullHeal: ; 3a786 (e:6786)
- call Function669B
+ call Func_3a69b
call AICureStatus
ld a,FULL_HEAL
jp AIPrintItemUse
@@ -57473,27 +57534,27 @@ AICureStatus: ; 3a791 (e:6791)
ret
AIUseXAccuracy: ; 0x3a7a8 unused
- call Function669B
+ call Func_3a69b
ld hl,$D068
set 0,[hl]
ld a,X_ACCURACY
jp AIPrintItemUse
AIUseGuardSpec: ; 3a7b5 (e:67b5)
- call Function669B
+ call Func_3a69b
ld hl,$D068
set 1,[hl]
ld a,GUARD_SPEC_
jp AIPrintItemUse
AIUseDireHit: ; 0x3a7c2 unused
- call Function669B
+ call Func_3a69b
ld hl,$D068
set 2,[hl]
ld a,DIRE_HIT
jp AIPrintItemUse
-Function67CF: ; 3a7cf (e:67cf)
+Func_3a7cf: ; 3a7cf (e:67cf)
ld [H_DIVISOR],a
ld hl,$CFF4
ld a,[hli]
@@ -61120,8 +61181,8 @@ MainInBattleLoop: ; 3c233 (f:4233)
jr nz, .asm_3c2dd ; 0x3c2d8 $3
ld [wPlayerSelectedMove], a
.asm_3c2dd
- ld hl, Function674B
- ld b, BANK(Function674B)
+ ld hl, Func_3a74b
+ ld b, BANK(Func_3a74b)
call Bankswitch
.noLinkBattle
ld a, [wPlayerSelectedMove]
@@ -62221,7 +62282,7 @@ UnnamedText_3cab4: ; 3cab4 (f:4ab4)
db "@"
Func_3cab9: ; 3cab9 (f:4ab9)
- call Function583A
+ call Func_3d83a
jp z, .asm_3cb5c
ld a, [W_BATTLETYPE] ; $d05a
cp $2
@@ -63785,7 +63846,7 @@ Func_3d65e: ; 3d65e (f:565e)
ld [H_WHOSETURN], a ; $FF00+$f3
ld a, [wPlayerSelectedMove] ; $ccdc
inc a
- jp z, Function580A
+ jp z, Func_3d80a
xor a
ld [W_MOVEMISSED], a ; $d05f
ld [$cced], a
@@ -63794,10 +63855,10 @@ Func_3d65e: ; 3d65e (f:565e)
ld [$d05b], a
ld a, [$cd6a]
and a
- jp nz, Function580A
- call Function5811
- jp z, Function580A
- call Function5854
+ jp nz, Func_3d80a
+ call Func_3d811
+ jp z, Func_3d80a
+ call Func_3d854
jr nz, .asm_3d68a
jp [hl]
.asm_3d68a
@@ -63806,7 +63867,7 @@ Func_3d65e: ; 3d65e (f:565e)
bit 4, [hl]
jr nz, asm_3d6a9
call Func_3dc88
- jp z, Function580A
+ jp z, Func_3d80a
Func_3d69a: ; 3d69a (f:569a)
ld a, [W_PLAYERMOVEEFFECT] ; $cfd3
@@ -63905,7 +63966,7 @@ asm_3d766
cp a,9
jr nz,.next6 ; 577A
call MirrorMoveCopyMove
- jp z,Function580A
+ jp z,Func_3d80a
xor a
ld [$CCED],a
jp Func_3d69a
@@ -63927,7 +63988,7 @@ asm_3d766
ld a,[W_PLAYERMOVEEFFECT]
cp a,7
jr z,.next9 ; 57B9
- jp Function580A
+ jp Func_3d80a
.next8
call ApplyAttackToEnemyPokemon
call Func_3dc5c
@@ -63965,26 +64026,26 @@ asm_3d766
.next10
ld a,[W_PLAYERMOVEEFFECT]
and a
- jp z,Function580A
+ jp z,Func_3d80a
ld hl,EffectsArray5
ld de,1
call IsInArray
call nc,Func_3f132
- jp Function580A
+ jp Func_3d80a
MultiHitText: ; 3d805 (f:5805)
TX_FAR _MultiHitText
db "@"
-Function580A: ; 3d80a (f:580a)
+Func_3d80a: ; 3d80a (f:580a)
xor a
ld [$CD6A],a
ld b,1
ret
-Function5811: ; 3d811 (f:5811)
+Func_3d811: ; 3d811 (f:5811)
; print the ghost battle messages
- call Function583A
+ call Func_3d83a
ret nz
ld a,[H_WHOSETURN]
and a
@@ -64010,7 +64071,7 @@ GetOutText: ; 3d835 (f:5835)
TX_FAR _GetOutText
db "@"
-Function583A: ; 3d83a (f:583a)
+Func_3d83a: ; 3d83a (f:583a)
ld a,[W_ISINBATTLE]
dec a
ret nz
@@ -64027,7 +64088,7 @@ Function583A: ; 3d83a (f:583a)
and a
ret
-Function5854: ; 3d854 (f:5854)
+Func_3d854: ; 3d854 (f:5854)
ld hl,W_PLAYERMONSTATUS
ld a,[hl]
and a,SLP
@@ -64051,7 +64112,7 @@ Function5854: ; 3d854 (f:5854)
.sleepDone
xor a
ld [$CCF1],a
- ld hl,Function580A
+ ld hl,Func_3d80a
jp Func_3da37
.FrozenCheck
@@ -64061,7 +64122,7 @@ Function5854: ; 3d854 (f:5854)
call PrintText
xor a
ld [$CCF1],a
- ld hl,Function580A
+ ld hl,Func_3d80a
jp Func_3da37
.HeldInPlaceCheck
@@ -64070,7 +64131,7 @@ Function5854: ; 3d854 (f:5854)
jp z,FlinchedCheck
ld hl,CantMoveText
call PrintText
- ld hl,Function580A
+ ld hl,Func_3d80a
jp Func_3da37
FlinchedCheck: ; 3d8ac (f:58ac)
@@ -64080,7 +64141,7 @@ FlinchedCheck: ; 3d8ac (f:58ac)
res 3,[hl]
ld hl,FlinchedText
call PrintText
- ld hl,Function580A
+ ld hl,Func_3d80a
jp Func_3da37
HyperBeamCheck: ; 3d8c2 (f:58c2)
@@ -64090,7 +64151,7 @@ HyperBeamCheck: ; 3d8c2 (f:58c2)
res 5,[hl]
ld hl,MustRechargeText
call PrintText
- ld hl,Function580A ; $580a
+ ld hl,Func_3d80a ; $580a
jp Func_3da37
.next
ld hl,$D06D
@@ -64141,7 +64202,7 @@ HyperBeamCheck: ; 3d8c2 (f:58c2)
cp [hl]
jr nz,.ParalysisCheck
call Func_3da88
- ld hl,Function580A ; $580a
+ ld hl,Func_3d80a ; $580a
jp Func_3da37
.ParalysisCheck
ld hl,W_PLAYERMONSTATUS
@@ -64169,7 +64230,7 @@ HyperBeamCheck: ; 3d8c2 (f:58c2)
ld a,$A7
call PlayMoveAnimation
.next9
- ld hl,Function580A ; $580a
+ ld hl,Func_3d80a ; $580a
jp Func_3da37
.next7
ld hl,W_PLAYERBATTSTATUS1
@@ -64191,7 +64252,7 @@ HyperBeamCheck: ; 3d8c2 (f:58c2)
ld hl,$D06A
dec [hl]
jr z,.next11 ; 599B
- ld hl,Function580A ; $580a
+ ld hl,Func_3d80a ; $580a
jp Func_3da37
.next11
ld hl,W_PLAYERBATTSTATUS1
@@ -64452,7 +64513,7 @@ INCBIN "baserom.gbc",$3db43,$3db48 - $3db43
Unknown_3db4c: ; 3db4c (f:5b4c)
INCBIN "baserom.gbc",$3db4c,$3db51 - $3db4c
- ld hl, Unknown_3db62 ; $5b62
+ ld hl, TextPointerTable_3db62
ld a, [$d11e]
add a
push bc
@@ -64465,8 +64526,12 @@ INCBIN "baserom.gbc",$3db4c,$3db51 - $3db4c
ld l, a
ret
-Unknown_3db62: ; 3db62 (f:5b62)
-INCBIN "baserom.gbc",$3db62,$3db6c - $3db62
+TextPointerTable_3db62: ; 3db62 (f:5b62)
+ dw UnnamedText_3db6c
+ dw UnnamedText_3db71
+ dw UnnamedText_3db76
+ dw UnnamedText_3db7b
+ dw UnnamedText_3db80
UnnamedText_3db6c: ; 3db6c (f:5b6c)
TX_FAR _UnnamedText_3db6c
@@ -64593,7 +64658,7 @@ Func_3dc5c: ; 3dc5c (f:5c5c)
jr z, .asm_3dc75
dec a
add a
- ld hl, Unknown_3dc7a ; $5c7a
+ ld hl, TextPointerTable_3dc7a ; $5c7a
ld b, $0
ld c, a
add hl, bc
@@ -64607,8 +64672,9 @@ Func_3dc5c: ; 3dc5c (f:5c5c)
ld c, $14
jp DelayFrames
-Unknown_3dc7a: ; 3dc7a (f:5c7a)
-INCBIN "baserom.gbc",$3dc7a,$3dc7e - $3dc7a
+TextPointerTable_3dc7a: ; 3dc7a (f:5c7a)
+ dw UnnamedText_3dc7e
+ dw UnnamedText_3dc83
UnnamedText_3dc7e: ; 3dc7e (f:5c7e)
TX_FAR _UnnamedText_3dc7e
@@ -66244,7 +66310,7 @@ Func_3e6bc: ; 3e6bc (f:66bc)
ld a, [wEnemySelectedMove] ; $ccdd
inc a
jp z, Func_3e88c
- call Function5811
+ call Func_3d811
jp z, Func_3e88c
ld a, [W_ISLINKBATTLE] ; $d12b
cp $4
@@ -67461,7 +67527,7 @@ Func_3ef8b: ; 3ef8b (f:6f8b)
ld a, [W_CUROPPONENT] ; $d059
cp MAROWAK
jr z, .isGhost
- call Function583A
+ call Func_3d83a
jr nz, .isNoGhost
.isGhost
ld hl, W_MONHSPRITEDIM
@@ -67510,7 +67576,7 @@ Func_3efeb: ; 3efeb (f:6feb)
call Func_3c04c
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; $FF00+$ba
- ld hl, Unknown_3f04a
+ ld hl, TerminatorText_3f04a
call PrintText
call SaveScreenTilesToBuffer1
call ClearScreen
@@ -67547,8 +67613,8 @@ Func_3efeb: ; 3efeb (f:6feb)
scf
ret
-Unknown_3f04a: ; 3f04a (f:704a)
- db $50
+TerminatorText_3f04a: ; 3f04a (f:704a)
+ db "@"
Func_3f04b: ; 3f04b (f:704b)
ld a, [$d033]
@@ -67700,7 +67766,7 @@ JumpMoveEffect: ; 3f138 (f:7138)
.next1
dec a ;subtract 1, there is no special effect for 00
add a ;x2, 16bit pointers
- ld hl, Unknown_3f150 ; $7150 ;pointer table at 7150
+ ld hl, MoveEffectPointerTable
ld b, 0
ld c, a
add hl, bc
@@ -67709,8 +67775,95 @@ JumpMoveEffect: ; 3f138 (f:7138)
ld l, a
jp [hl] ;jump to special effect handler
-Unknown_3f150: ; 3f150 (f:7150)
-INCBIN "baserom.gbc",$3f150,$3f1fc - $3f150
+MoveEffectPointerTable: ; 3f150 (f:7150)
+ dw Func_3f1fc
+ dw Func_3f24f
+ dw Func_3f2e9
+ dw FreezeBurnParalyzeEffect
+ dw FreezeBurnParalyzeEffect
+ dw FreezeBurnParalyzeEffect
+ dw Func_3f2f1
+ dw Func_3f2e9
+ dw $0000
+ dw Func_3f428
+ dw Func_3f428
+ dw Func_3f428
+ dw Func_3f428
+ dw Func_3f428
+ dw Func_3f428
+ dw Func_3fb0e
+ dw $0000
+ dw Func_3f54c
+ dw Func_3f54c
+ dw Func_3f54c
+ dw Func_3f54c
+ dw Func_3f54c
+ dw Func_3f54c
+ dw Func_3fb16
+ dw Func_3fb1e
+ dw Func_3f6e5
+ dw Func_3f717
+ dw Func_3f739
+ dw Func_3f811
+ dw Func_3f811
+ dw Func_3f85b
+ dw Func_3f1fc
+ dw Func_3f24f
+ dw FreezeBurnParalyzeEffect
+ dw FreezeBurnParalyzeEffect
+ dw FreezeBurnParalyzeEffect
+ dw Func_3f85b
+ dw Func_3f884
+ dw Func_3f88c
+ dw $0000
+ dw $0000
+ dw Func_3f917
+ dw Func_3f88c
+ dw Func_3f811
+ dw $0000
+ dw Func_3f941
+ dw Func_3f949
+ dw Func_3f951
+ dw Func_3f961
+ dw Func_3f428
+ dw Func_3f428
+ dw Func_3f428
+ dw Func_3f428
+ dw Func_3f428
+ dw Func_3f428
+ dw Func_3fb26
+ dw Func_3fb2e
+ dw Func_3f54c
+ dw Func_3f54c
+ dw Func_3f54c
+ dw Func_3f54c
+ dw Func_3f54c
+ dw Func_3f54c
+ dw Func_3fb36
+ dw Func_3fb36
+ dw Func_3f24f
+ dw Func_3f9b1
+ dw Func_3f54c
+ dw Func_3f54c
+ dw Func_3f54c
+ dw Func_3f54c
+ dw Func_3f54c
+ dw Func_3f54c
+ dw Func_3f54c
+ dw Func_3f54c
+ dw Func_3f959
+ dw Func_3f811
+ dw $0000
+ dw Func_3f9b9
+ dw Func_3f9c1
+ dw Func_3f9df
+ dw Func_3f9ed
+ dw $0000
+ dw Func_3fa7c
+ dw Func_3fa84
+ dw Func_3fa8a
+
+Func_3f1fc: ; 3f1fc (f:71fc)
ld de, W_ENEMYMONSTATUS ; $cfe9
ld bc, W_ENEMYBATTSTATUS2 ; $d068
ld a, [H_WHOSETURN] ; $FF00+$f3
@@ -67760,6 +67913,7 @@ UnnamedText_3f24a: ; 3f24a (f:724a)
TX_FAR _UnnamedText_3f24a
db "@"
+Func_3f24f: ; 3f24f (f:724f)
ld hl, W_ENEMYMONSTATUS ; $cfe9
ld de, W_PLAYERMOVEEFFECT ; $cfd3
ld a, [H_WHOSETURN] ; $FF00+$f3
@@ -67853,9 +68007,12 @@ UnnamedText_3f2e4: ; 3f2e4 (f:72e4)
TX_FAR _UnnamedText_3f2e4
db "@"
+Func_3f2e9: ; 3f2e9 (f:72e9)
ld hl, Func_783f
ld b, BANK(Func_783f)
jp Bankswitch ; indirect jump to Func_783f (783f (1:783f))
+
+Func_3f2f1: ; 3f2f1 (f:72f1)
ld hl, W_PLAYERMONCURHP ; $d015
ld de, W_PLAYERBATTSTATUS2 ; $d063
ld a, [H_WHOSETURN] ; $FF00+$f3
@@ -68186,7 +68343,7 @@ Func_3f522: ; 3f522 (f:7522)
Unknown_3f528: ; 3f528 (f:7528)
INCBIN "baserom.gbc",$3f528,$3f52d - $3f528
- ld hl, Unknown_3f542 ; $7542
+ ld hl, UnnamedText_3f542 ; $7542
ld a, [H_WHOSETURN] ; $FF00+$f3
and a
ld a, [W_PLAYERMOVEEFFECT] ; $cfd3
@@ -68198,13 +68355,14 @@ INCBIN "baserom.gbc",$3f528,$3f52d - $3f528
ld hl, UnnamedText_3f547 ; $7547
ret
-Unknown_3f542: ; 3f542 (f:7542)
+UnnamedText_3f542: ; 3f542 (f:7542)
INCBIN "baserom.gbc",$3f542,$3f547 - $3f542
UnnamedText_3f547: ; 3f547 (f:7547)
TX_FAR _UnnamedText_3f547
db "@"
+Func_3f54c: ; 3f54c (f:754c)
ld hl, wEnemyMonStatMods ; $cd2e
ld de, W_PLAYERMOVEEFFECT ; $cfd3
ld bc, W_ENEMYBATTSTATUS1 ; $d067
@@ -68353,7 +68511,7 @@ asm_3f62c: ; 3f62c (f:762c)
ld a, [H_WHOSETURN] ; $FF00+$f3
and a
call nz, Func_3ee19
- ld hl, Unknown_3f661 ; $7661
+ ld hl, UnnamedText_3f661 ; $7661
call PrintText
call Func_3ed27
jp Func_3ed64
@@ -68376,7 +68534,7 @@ Func_3f65a: ; 3f65a (f:765a)
ret nc
jp Func_3fb4e
-Unknown_3f661: ; 3f661 (f:7661)
+UnnamedText_3f661: ; 3f661 (f:7661)
INCBIN "baserom.gbc",$3f661,$3f666 - $3f661
ld hl, UnnamedText_3f683 ; $7683
ld a, [H_WHOSETURN] ; $FF00+$f3
@@ -68424,7 +68582,36 @@ StatsTextStrings: ; 3f69f (f:769f)
db "EVADE@"
Unknown_3f6cb: ; 3f6cb (f:76cb)
-INCBIN "baserom.gbc",$3f6cb,$3f717 - $3f6cb
+INCBIN "baserom.gbc",$3f6cb,$3f6e5 - $3f6cb
+
+Func_3f6e5: ; 3f6e5 (f:76e5)
+ ld hl, W_PLAYERBATTSTATUS1
+ ld de, W_NUMHITS
+ ld bc, $d06a
+ ld a, [H_WHOSETURN]
+ and a
+ jr z, .asm_3f6fc
+ ld hl, W_ENEMYBATTSTATUS1
+ ld de, $cd05
+ ld bc, $d06f
+.asm_3f6fc
+ set 0, [hl]
+ xor a
+ ld [de], a
+ inc de
+ ld [de], a
+ ld [W_PLAYERMOVEEFFECT], a
+ ld [W_ENEMYMOVEEFFECT], a
+ call GenRandomInBattle
+ and $1
+ inc a
+ inc a
+ ld [bc], a
+ ld a, [H_WHOSETURN]
+ add $ae
+ jp Func_3fb96
+
+Func_3f717: ; 3f717 (f:7717)
ld hl, W_PLAYERBATTSTATUS1 ; $d062
ld de, $d06a
ld a, [H_WHOSETURN] ; $FF00+$f3
@@ -68442,6 +68629,8 @@ INCBIN "baserom.gbc",$3f6cb,$3f717 - $3f6cb
ld a, [H_WHOSETURN] ; $FF00+$f3
add $b0
jp Func_3fb96
+
+Func_3f739: ; 3f739 (f:7739)
ld a, [H_WHOSETURN] ; $FF00+$f3
and a
jr nz, .asm_3f791
@@ -68556,6 +68745,7 @@ UnnamedText_3f80c: ; 3f80c (f:780c)
TX_FAR _UnnamedText_3f80c
db "@"
+Func_3f811: ; 3f811 (f:7811)
ld hl, W_PLAYERBATTSTATUS1 ; $d062
ld de, $d06a
ld bc, W_NUMHITS ; $d074
@@ -68598,6 +68788,8 @@ UnnamedText_3f80c: ; 3f80c (f:780c)
ld a, $2
ld [hl], a
jr .asm_3f853
+
+Func_3f85b: ; 3f85b (f:785b)
call CheckTargetSubstitute
ret nz
ld hl, W_ENEMYBATTSTATUS1 ; $d067
@@ -68620,9 +68812,13 @@ UnnamedText_3f80c: ; 3f80c (f:780c)
set 3, [hl]
call Func_3f9cf
ret
+
+Func_3f884: ; 3f884 (f:7884)
ld hl, Func_33f57
ld b, BANK(Func_33f57)
jp Bankswitch ; indirect jump to Func_33f57 (33f57 (c:7f57))
+
+Func_3f88c: ; 3f88c (f:788c)
ld hl, W_PLAYERBATTSTATUS1 ; $d062
ld de, W_PLAYERMOVEEFFECT ; $cfd3
ld a, [H_WHOSETURN] ; $FF00+$f3
@@ -68703,6 +68899,7 @@ UnnamedText_3f912: ; 3f912 (f:7912)
TX_FAR _UnnamedText_3f912
db "@"
+Func_3f917: ; 3f917 (f:7917)
ld hl, W_PLAYERBATTSTATUS1 ; $d062
ld de, $d06a
ld a, [H_WHOSETURN] ; $FF00+$f3
@@ -68726,24 +68923,36 @@ UnnamedText_3f912: ; 3f912 (f:7912)
ld [de], a
ret
-INCBIN "baserom.gbc",$3f941,$3f949 - $3f941
+Func_3f941: ; 3f941 (f:7941)
+ ld hl, Func_33f2b
+ ld b, BANK(Func_33f2b)
+ jp Bankswitch
+
+Func_3f949: ; 3f949 (f:7949)
ld hl, Func_27f86
ld b, BANK(Func_27f86)
- jp Bankswitch ; indirect jump to Func_27f86 (27f86 (9:7f86))
+ jp Bankswitch
+
+Func_3f951: ; 3f951 (f:7951)
ld hl, Func_1392c
ld b, BANK(Func_1392c)
- jp Bankswitch ; indirect jump to Func_1392c (1392c (4:792c))
+ jp Bankswitch
+
+Func_3f959: ; 3f959 (f:7959)
call GenRandomInBattle
cp $19
ret nc
- jr .asm_3f96f
+ jr Func_3f96f
+
+Func_3f961: ; 3f961 (f:7961)
call CheckTargetSubstitute
- jr nz, asm_3f9a6
+ jr nz, Func_3f9a6
call MoveHitTest
ld a, [W_MOVEMISSED] ; $d05f
and a
- jr nz, asm_3f9a6
-.asm_3f96f
+ jr nz, Func_3f9a6
+
+Func_3f96f: ; 3f96f (f:796f)
ld a, [H_WHOSETURN] ; $FF00+$f3
and a
ld hl, W_ENEMYBATTSTATUS1 ; $d067
@@ -68755,7 +68964,7 @@ INCBIN "baserom.gbc",$3f941,$3f949 - $3f941
ld a, [W_ENEMYMOVEEFFECT] ; $cfcd
.asm_3f986
bit 7, [hl]
- jr nz, asm_3f9a6
+ jr nz, Func_3f9a6
set 7, [hl]
push af
call GenRandomInBattle
@@ -68773,17 +68982,24 @@ UnnamedText_3f9a1: ; 3f9a1 (f:79a1)
TX_FAR _UnnamedText_3f9a1
db "@"
-asm_3f9a6: ; 3f9a6 (f:79a6)
+Func_3f9a6: ; 3f9a6 (f:79a6)
cp $4c
ret z
ld c, $32
call DelayFrames
jp Func_3fb4e
+
+Func_3f9b1: ; 3f9b1 (f:79b1)
ld hl, Func_52601
ld b, BANK(Func_52601)
jp Bankswitch ; indirect jump to Func_52601 (52601 (14:6601))
-INCBIN "baserom.gbc",$3f9b9,$3f9c1 - $3f9b9
+Func_3f9b9: ; 3f9b9 (f:79b9)
+ ld hl, SubstituteEffectHandler
+ ld b, BANK(SubstituteEffectHandler)
+ jp Bankswitch
+
+Func_3f9c1: ; 3f9c1 (f:79c1)
ld hl, W_PLAYERBATTSTATUS2 ; $d063
ld a, [H_WHOSETURN] ; $FF00+$f3
and a
@@ -68805,17 +69021,102 @@ Func_3f9cf: ; 3f9cf (f:79cf)
pop hl
ret
-INCBIN "baserom.gbc",$3f9df,$3fa77 - $3f9df
+Func_3f9df: ; 3f9df (f:79df)
+ ld hl, W_PLAYERBATTSTATUS2
+ ld a, [H_WHOSETURN]
+ and a
+ jr z, .player
+ ld hl, W_ENEMYBATTSTATUS2
+.player
+ set 6, [hl]
+ ret
+
+Func_3f9ed: ; 3f9ed (f:79ed)
+ ld c, $32
+ call DelayFrames
+ call MoveHitTest
+ ld a, [W_MOVEMISSED]
+ and a
+ jr nz, .asm_3fa74
+ ld a, [H_WHOSETURN]
+ and a
+ ld hl, W_PLAYERMONMOVES
+ ld a, [W_PLAYERBATTSTATUS1]
+ jr nz, .asm_3fa13
+ ld a, [W_ISLINKBATTLE]
+ cp $4
+ jr nz, .asm_3fa3a
+ ld hl, W_ENEMYMONMOVES
+ ld a, [W_ENEMYBATTSTATUS1]
+.asm_3fa13
+ bit 6, a
+ jr nz, .asm_3fa74
+.asm_3fa17
+ push hl
+ call GenRandomInBattle
+ and $3
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ pop hl
+ and a
+ jr z, .asm_3fa17
+ ld d, a
+ ld a, [H_WHOSETURN]
+ and a
+ ld hl, W_PLAYERMONMOVES
+ ld a, [wPlayerMoveListIndex]
+ jr z, .asm_3fa5f
+ ld hl, W_ENEMYMONMOVES
+ ld a, [wEnemyMoveListIndex]
+ jr .asm_3fa5f
+.asm_3fa3a
+ ld a, [W_ENEMYBATTSTATUS1]
+ bit 6, a
+ jr nz, .asm_3fa74
+ ld a, [wCurrentMenuItem]
+ push af
+ ld a, $1
+ ld [wMoveMenuType], a
+ call MoveSelectionMenu
+ call LoadScreenTilesFromBuffer1
+ ld hl, W_ENEMYMONMOVES
+ ld a, [wCurrentMenuItem]
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld d, [hl]
+ pop af
+ ld hl, W_PLAYERMONMOVES
+.asm_3fa5f
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, d
+ ld [hl], a
+ ld [$d11e], a
+ call GetMoveName
+ call Func_3fba8
+ ld hl, UnnamedText_3fa77
+ jp PrintText
+.asm_3fa74
+ jp Func_3fb53
UnnamedText_3fa77: ; 3fa77 (f:7a77)
TX_FAR _UnnamedText_3fa77
db "@"
+Func_3fa7c: ; 3fa7c (f:7a7c)
ld hl, Func_2bea9
ld b, BANK(Func_2bea9)
jp Bankswitch ; indirect jump to Func_2bea9 (2bea9 (a:7ea9))
-INCBIN "baserom.gbc",$3fa84,$3fa8a - $3fa84
+Func_3fa84: ; 3fa84 (f:7a84)
+ call Func_3fba8
+ jp Func_3fb43
+
+Func_3fa8a: ; 3fa8a (f:7a8a)
call MoveHitTest
ld a, [W_MOVEMISSED] ; $d05f
and a
@@ -68899,22 +69200,43 @@ UnnamedText_3fb09: ; 3fb09 (f:7b09)
TX_FAR _UnnamedText_3fb09
db "@"
-INCBIN "baserom.gbc",$3fb0e,$3fb26 - $3fb0e
+Func_3fb0e: ; 3fb0e (f:7b0e)
+ ld hl, Func_2feb8
+ ld b, BANK(Func_2feb8)
+ jp Bankswitch
+
+Func_3fb16: ; 3fb16 (f:7b16)
+ ld hl, Func_139a3
+ ld b, BANK(Func_139a3)
+ jp Bankswitch
+
+Func_3fb1e: ; 3fb1e (f:7b1e)
+ ld hl, Func_139da
+ ld b, BANK(Func_139da)
+ jp Bankswitch
+
+Func_3fb26: ; 3fb26 (f:7b26)
ld hl, Func_3b9ec
ld b, BANK(Func_3b9ec)
- jp Bankswitch ; indirect jump to Func_3b9ec (3b9ec (e:79ec))
+ jp Bankswitch
+
+Func_3fb2e: ; 3fb2e (f:7b2e)
ld hl, Func_3bab1
ld b, BANK(Func_3bab1)
- jp Bankswitch ; indirect jump to Func_3bab1 (3bab1 (e:7ab1))
+ jp Bankswitch
+
+Func_3fb36: ; 3fb36 (f:7b36)
ld hl, Func_3bb97
ld b, BANK(Func_3bb97)
- jp Bankswitch ; indirect jump to Func_3bb97 (3bb97 (e:7b97))
+ jp Bankswitch
UnnamedText_3fb3e: ; 3fb3e (f:7b3e)
TX_FAR _UnnamedText_3fb3e
db "@"
-INCBIN "baserom.gbc",$3fb43,$3fb49 - $3fb43
+Func_3fb43: ; 3fb43 (f:7b43)
+ ld hl, UnnamedText_3fb49
+ jp PrintText
UnnamedText_3fb49: ; 3fb49 (f:7b49)
TX_FAR _UnnamedText_3fb49
@@ -71177,7 +71499,7 @@ Func_41102: ; 41102 (10:5102)
jr z, .asm_4112d
inc de
push de
- ld hl, Unknown_4115f ; $515f
+ ld hl, PointerTable_4115f ; $515f
add a
ld c, a
ld b, $0
@@ -71203,8 +71525,24 @@ INCBIN "baserom.gbc",$41138,$41149 - $41138
Unknown_41149: ; 41149 (10:5149)
INCBIN "baserom.gbc",$41149,$4115f - $41149
-Unknown_4115f: ; 4115f (10:515f)
-INCBIN "baserom.gbc",$4115f,$41181 - $4115f
+PointerTable_4115f: ; 4115f (10:515f)
+ dw Func_411a1
+ dw Func_41245
+ dw Func_41298
+ dw Func_412d2
+ dw Func_41336
+ dw Func_41376
+ dw Func_413c6
+ dw Func_41181
+ dw Func_415c8
+ dw Func_415fe
+ dw Func_41611
+ dw Func_4162d
+ dw Func_4164c
+ dw Func_4165a
+ dw Func_4123b
+ dw Func_415df
+ dw Func_41217
Func_41181: ; 41181 (10:5181)
ld c, $64
@@ -71227,6 +71565,8 @@ Func_41196: ; 41196 (10:5196)
ld bc, $168
ld a, $7f
jp FillMemory
+
+Func_411a1: ; 411a1 (10:51a1)
call Func_41196
call DisableLCD
ld hl, TradingAnimationGraphics ; $69be
@@ -71276,12 +71616,28 @@ Func_4120b: ; 4120b (10:520b)
ld hl, Func_7176c
jp Bankswitch ; indirect jump to Func_7176c (7176c (1c:576c))
-INCBIN "baserom.gbc",$41217,$4123b - $41217
+Func_41217: ; 41217 (10:5217)
+ ld hl, W_PLAYERNAME
+ ld de, wHPBarMaxHP
+ ld bc, $000b
+ call CopyData
+ ld hl, W_GRASSRATE
+ ld de, W_PLAYERNAME
+ ld bc, $000b
+ call CopyData
+ ld hl, wHPBarMaxHP
+ ld de, W_GRASSRATE
+ ld bc, $000b
+ jp CopyData
+
+Func_4123b: ; 4123b (10:523b)
xor a
call LoadGBPal
ld hl, $d730
res 6, [hl]
ret
+
+Func_41245: ; 41245 (10:5245)
ld a, $ab
ld [rLCDC], a ; $FF00+$40
ld a, $50
@@ -71323,6 +71679,8 @@ INCBIN "baserom.gbc",$41217,$4123b - $41217
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; $FF00+$ba
ret
+
+Func_41298: ; 41298 (10:5298)
call Func_41196
ld b, $98
call CopyScreenTileBufferToVRAM
@@ -71350,6 +71708,8 @@ INCBIN "baserom.gbc",$41217,$4123b - $41217
dec c
jr nz, .asm_412c8
ret
+
+Func_412d2: ; 412d2 (10:52d2)
ld a, $ab
call Func_41676
ld c, $a
@@ -71429,6 +71789,8 @@ Func_41336: ; 41336 (10:5336)
ld bc, $80c
call ClearScreenArea
jp Func_4164c
+
+Func_41376: ; 41376 (10:5376)
call Func_41411
ld a, $1
ld [$d08a], a
@@ -71460,6 +71822,8 @@ Func_41336: ; 41336 (10:5336)
ld [H_AUTOBGTRANSFERENABLED], a ; $FF00+$ba
call Func_41525
jp CleanLCD_OAM
+
+Func_413c6: ; 413c6 (10:53c6)
call Func_41411
xor a
ld [$d08a], a
@@ -71796,6 +72160,8 @@ Func_415df: ; 415df (10:55df)
ld a, $7
ld [rWX], a ; $FF00+$4b
ret
+
+Func_415fe: ; 415fe (10:55fe)
ld hl, UnnamedText_4160c ; $560c
call PrintText
ld c, $c8
@@ -71806,6 +72172,7 @@ UnnamedText_4160c: ; 4160c (10:560c)
TX_FAR _UnnamedText_4160c
db "@"
+Func_41611: ; 41611 (10:5611)
ld hl, UnnamedText_41623 ; $5623
call PrintText
call Func_41191
@@ -71821,6 +72188,7 @@ UnnamedText_41628: ; 41628 (10:5628)
TX_FAR _UnnamedText_41628
db "@"
+Func_4162d: ; 4162d (10:562d)
ld hl, UnnamedText_41642 ; $5642
call PrintText
call Func_41191
@@ -71846,7 +72214,13 @@ UnnamedText_41655: ; 41655 (10:5655)
TX_FAR _UnnamedText_41655
db "@"
-INCBIN "baserom.gbc",$4165a,$4166c - $4165a
+Func_4165a: ; 4165a (10:565a)
+ ld hl, UnnamedText_4166c
+ call PrintText
+ call Func_41191
+ ld hl, UnnamedText_41671
+ call PrintText
+ jp Func_41191
UnnamedText_4166c: ; 4166c (10:566c)
TX_FAR _UnnamedText_4166c
@@ -72130,9 +72504,13 @@ Func_4183f: ; 4183f (10:583f)
Func_41842: ; 41842 (10:5842)
ld c, $0
ld a, $31
- jp Predef ; indirect jump to Func_79dda (79dda (1e:5dda))
+ jp Predef ; indirect jump to Func_79dda
-INCBIN "baserom.gbc",$41849,$41852 - $41849
+Func_41849: ; 41849 (10:5849)
+ ld a, $33
+ call Predef
+ ld a, b
+ jp PlaySound ; indirect jump to Func_79869
Func_41852: ; 41852 (10:5852)
ld hl, FightIntroBackMon ; $5a99
@@ -85711,8 +86089,8 @@ Func_52613: ; 52613 (14:6613)
jp Bankswitch ; indirect jump to Func_3dc51 (3dc51 (f:5c51))
Func_52673: ; 52673 (14:6673)
- ld hl, Unknown_526e3 ; $66e3
- ld a, [W_CURMAP] ; $d35e
+ ld hl, SilphCoMapList
+ ld a, [W_CURMAP]
ld b, a
.asm_5267a
ld a, [hli]
@@ -85728,8 +86106,8 @@ Func_52673: ; 52673 (14:6673)
cp $24
jr z, .asm_5269c
ld b, a
- ld a, [W_CURMAP] ; $d35e
- cp $eb
+ ld a, [W_CURMAP]
+ cp SILPH_CO_11F
ret nz
ld a, b
cp $5e
@@ -85753,7 +86131,7 @@ Func_52673: ; 52673 (14:6673)
ld c, a
ld [$d740], a
ld a, [W_CURMAP] ; $d35e
- cp $eb
+ cp SILPH_CO_11F
jr nz, .asm_526c8
ld a, $3
jr .asm_526ca
@@ -85762,7 +86140,7 @@ Func_52673: ; 52673 (14:6673)
.asm_526ca
ld [$d09f], a
ld a, $17
- call Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+ call Predef ; indirect jump to Func_ee9e
ld hl, $d126
set 5, [hl]
ld a, $ad
@@ -85772,8 +86150,22 @@ Func_52673: ; 52673 (14:6673)
ld [H_DOWNARROWBLINKCNT2], a ; $FF00+$8c
jp Func_3ef5
-Unknown_526e3: ; 526e3 (14:66e3)
-INCBIN "baserom.gbc",$526e3,$526f3 - $526e3
+SilphCoMapList: ; 526e3 (14:66e3)
+ db SILPH_CO_2F
+ db SILPH_CO_3F
+ db SILPH_CO_4F
+ db SILPH_CO_5F
+ db SILPH_CO_6F
+ db SILPH_CO_7F
+ db SILPH_CO_8F
+ db SILPH_CO_9F
+ db SILPH_CO_10F
+ db SILPH_CO_11F
+ db $FF
+
+UnnamedText_526ee: ; 526ee (14:66ee)
+ TX_FAR _UnnamedText_526ee
+ db $0b
UnnamedText_526f3: ; 526f3 (14:66f3)
TX_FAR _UnnamedText_526f3
@@ -94325,7 +94717,7 @@ LanceScript0: ; 5a305 (16:6305)
ld a, [$d866]
bit 6, a
ret nz
- ld hl, CoordsData_5a33e ; $633e
+ ld hl, CoordsData_5a33e
call ArePlayerCoordsInArray
jp nc, CheckFightingMapTrainers
xor a
@@ -94350,7 +94742,12 @@ LanceScript0: ; 5a305 (16:6305)
jp LanceScript_5a2c4
CoordsData_5a33e: ; 5a33e (16:633e)
-INCBIN "baserom.gbc",$5a33e,$5a349 - $5a33e
+ db $01,$05
+ db $02,$06
+ db $0B,$05
+ db $0B,$06
+ db $10,$18
+ db $FF
LanceScript2: ; 5a349 (16:6349)
call EndTrainerBattle
@@ -98253,7 +98650,7 @@ Func_5dbd9: ; 5dbd9 (17:5bd9)
ld [$FF00+$b0], a
ret
-Unknown_5dc1a: ; 5dc1a (17:5c1a)
+Func_5dc1a: ; 5dc1a (17:5c1a)
call EnableAutoTextBoxDrawing
ld a, $1
ld [$cc3c], a
@@ -98261,9 +98658,8 @@ Unknown_5dc1a: ; 5dc1a (17:5c1a)
call Func_3ef5
ret
-INCBIN "baserom.gbc",$5dc29,$5dc2a - $5dc29
-
-Unknown_5dc2a: ; 5dc2a (17:5c2a)
+UnnamedText_5dc29: ; 5dc29 (17:5c29)
+ db $08 ; asm
call SaveScreenTilesToBuffer1
ld hl, UnnamedText_5dc9e
call PrintText
@@ -103603,7 +103999,7 @@ Func_7096d: ; 7096d (1c:496d)
call Func_709ef
call Func_70a19
.asm_709c9
- ld hl, Unknown_709d2 ; $49d2
+ ld hl, PointerTable_709d2 ; $49d2
add hl, bc
add hl, bc
ld a, [hli]
@@ -103611,8 +104007,15 @@ Func_7096d: ; 7096d (1c:496d)
ld l, a
jp [hl]
-Unknown_709d2: ; 709d2 (1c:49d2)
-INCBIN "baserom.gbc",$709d2,$709e2 - $709d2
+PointerTable_709d2: ; 709d2 (1c:49d2)
+ dw Func_70d24
+ dw Func_70a72
+ dw Func_70ce4
+ dw Func_70a72
+ dw Func_70cb4
+ dw Func_70b7f
+ dw Func_70c7e
+ dw Func_70bca
Func_709e2: ; 709e2 (1c:49e2)
ld a, [W_CUROPPONENT] ; $d059
@@ -103703,6 +104106,8 @@ Func_70a69: ; 70a69 (1c:4a69)
ld [rOBP0], a ; $FF00+$48
ld [rOBP1], a ; $FF00+$49
ret
+
+Func_70a72: ; 70a72 (1c:4a72)
ld a, [$cd47]
and a
jr z, .asm_70a7d
@@ -103869,6 +104274,8 @@ Func_70b5d: ; 70b5d (1c:4b5d)
Unknown_70b72: ; 70b72 (1c:4b72)
INCBIN "baserom.gbc",$70b72,$70b7f - $70b72
+
+Func_70b7f: ; 70b7f (1c:4b7f)
ld c, $9
.asm_70b81
push bc
@@ -103908,6 +104315,8 @@ INCBIN "baserom.gbc",$70b72,$70b7f - $70b72
call Func_70a69
ld c, $a
jp DelayFrames
+
+Func_70bca: ; 70bca (1c:4bca)
ld c, $9
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; $FF00+$ba
@@ -104024,6 +104433,8 @@ Func_70c3f: ; 70c3f (1c:4c3f)
dec c
jr nz, .asm_70c77
ret
+
+Func_70c7e: ; 70c7e (1c:4c7e)
ld c, $12
ld hl, wTileMap
FuncCoord 1, 17 ; $c4f5
@@ -104061,6 +104472,8 @@ Func_70caa: ; 70caa (1c:4caa)
dec c
jr nz, .asm_70cac
ret
+
+Func_70cb4: ; 70cb4 (1c:4cb4)
ld c, $14
ld hl, wTileMap
FuncCoord 19, 1 ; $c3c7
@@ -104095,7 +104508,16 @@ Func_70cd8: ; 70cd8 (1c:4cd8)
jr nz, .asm_70cdd
ret
-INCBIN "baserom.gbc",$70ce4,$70cfd - $70ce4
+Func_70ce4: ; 70ce4 (1c:4ce4)
+ call Func_70cfd
+ ld bc, $000a
+ ld hl, Unknown_70d61
+ call Func_70d06
+ ld c, $a
+ ld b, $1
+ ld hl, Unknown_70d93
+ call Func_70d06
+ jp Func_70a69
Func_70cfd: ; 70cfd (1c:4cfd)
ld b, $3
@@ -104104,7 +104526,19 @@ Func_70cfd: ; 70cfd (1c:4cfd)
ld [H_AUTOBGTRANSFERENABLED], a ; $FF00+$ba
ret
-INCBIN "baserom.gbc",$70d06,$70d19 - $70d06
+Func_70d06: ; 70d06 (1c:4d06)
+ push bc
+ push hl
+ ld a, b
+ call Func_70d50
+ pop hl
+ ld bc, $0005
+ add hl, bc
+ call Func_70d19
+ pop bc
+ dec c
+ jr nz, Func_70d06
+ ret
Func_70d19: ; 70d19 (1c:4d19)
ld a, $1
@@ -104113,6 +104547,8 @@ Func_70d19: ; 70d19 (1c:4d19)
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; $FF00+$ba
ret
+
+Func_70d24: ; 70d24 (1c:4d24)
call Func_70cfd
ld c, $a
ld hl, Unknown_70d61 ; $4d61
@@ -105151,7 +105587,7 @@ Unknown_71769: ; 71769 (1c:5769)
INCBIN "baserom.gbc",$71769,$7176c - $71769
Func_7176c: ; 7176c (1c:576c)
- ld hl, Unknown_717c0 ; $57c0
+ ld hl, MonOverworldSpritePointers ; $57c0
ld a, $1c
Func_71771: ; 71771 (1c:5771)
@@ -105185,7 +105621,7 @@ Func_71771: ; 71771 (1c:5771)
Func_71791: ; 71791 (1c:5791)
call DisableLCD
- ld hl, Unknown_717c0 ; $57c0
+ ld hl, MonOverworldSpritePointers ; $57c0
ld a, $1c
ld bc, $0
.asm_7179c
@@ -105218,8 +105654,146 @@ Func_71791: ; 71791 (1c:5791)
jr nz, .asm_7179c
jp EnableLCD
-Unknown_717c0: ; 717c0 (1c:57c0)
-INCBIN "baserom.gbc",$717c0,$71868 - $717c0
+MonOverworldSpritePointers: ; 717c0 (1c:57c0)
+ dw SlowbroSprite + $c0
+ db $40 / $10 ; 40 bytes
+ db BANK(SlowbroSprite)
+ dw $8000
+
+ dw BallSprite
+ db $80 / $10 ; $80 bytes
+ db BANK(BallSprite)
+ dw $8040
+
+ dw ClefairySprite + $c0
+ db $40 / $10 ; $40 bytes
+ db BANK(ClefairySprite)
+ dw $80C0
+
+ dw BirdSprite + $c0
+ db $40 / $10 ; $40 bytes
+ db BANK(BirdSprite)
+ dw $8100
+
+ dw SeelSprite
+ db $40 / $10 ; $40 bytes
+ db BANK(SeelSprite)
+ dw $8140
+
+ dw MonOverworldSprites + $40
+ db $10 / $10 ; $10 bytes
+ db BANK(MonOverworldSprites)
+ dw $8180
+
+ dw MonOverworldSprites + $50
+ db $10 / $10 ; $10 bytes
+ db BANK(MonOverworldSprites)
+ dw $81A0
+
+ dw MonOverworldSprites + $60
+ db $10 / $10 ; $10 bytes
+ db BANK(MonOverworldSprites)
+ dw $81C0
+
+ dw MonOverworldSprites + $70
+ db $10 / $10 ; $10 bytes
+ db BANK(MonOverworldSprites)
+ dw $81E0
+
+ dw MonOverworldSprites + $80
+ db $10 / $10 ; $10 bytes
+ db BANK(MonOverworldSprites)
+ dw $8200
+
+ dw MonOverworldSprites + $90
+ db $10 / $10 ; $10 bytes
+ db BANK(MonOverworldSprites)
+ dw $8220
+
+ dw MonOverworldSprites + $A0
+ db $10 / $10 ; $10 bytes
+ db BANK(MonOverworldSprites)
+ dw $8240
+
+ dw MonOverworldSprites + $B0
+ db $10 / $10 ; $10 bytes
+ db BANK(MonOverworldSprites)
+ dw $8260
+
+ dw MonOverworldSprites + $100
+ db $40 / $10 ; $40 bytes
+ db BANK(MonOverworldSprites)
+ dw $8380
+
+ dw SlowbroSprite
+ db $40 / $10 ; $40 bytes
+ db BANK(SlowbroSprite)
+ dw $8400
+
+ dw BallSprite
+ db $80 / $10 ; $80 bytes
+ db BANK(BallSprite)
+ dw $8440
+
+ dw ClefairySprite
+ db $40 / $10 ; $40 bytes
+ db BANK(ClefairySprite)
+ dw $84C0
+
+ dw BirdSprite
+ db $40 / $10 ; $40 bytes
+ db BANK(BirdSprite)
+ dw $8500
+
+ dw SeelSprite + $C0
+ db $40 / $10 ; $40 bytes
+ db BANK(SeelSprite)
+ dw $8540
+
+ dw MonOverworldSprites
+ db $10 / $10 ; $10 bytes
+ db BANK(MonOverworldSprites)
+ dw $8580
+
+ dw MonOverworldSprites + $10
+ db $10 / $10 ; $10 bytes
+ db BANK(MonOverworldSprites)
+ dw $85A0
+
+ dw MonOverworldSprites + $20
+ db $10 / $10 ; $10 bytes
+ db BANK(MonOverworldSprites)
+ dw $85C0
+
+ dw MonOverworldSprites + $30
+ db $10 / $10 ; $10 bytes
+ db BANK(MonOverworldSprites)
+ dw $85E0
+
+ dw MonOverworldSprites + $C0
+ db $10 / $10 ; $10 bytes
+ db BANK(MonOverworldSprites)
+ dw $8600
+
+ dw MonOverworldSprites + $D0
+ db $10 / $10 ; $10 bytes
+ db BANK(MonOverworldSprites)
+ dw $8620
+
+ dw MonOverworldSprites + $E0
+ db $10 / $10 ; $10 bytes
+ db BANK(MonOverworldSprites)
+ dw $8640
+
+ dw MonOverworldSprites + $F0
+ db $10 / $10 ; $10 bytes
+ db BANK(MonOverworldSprites)
+ dw $8660
+
+ dw MonOverworldSprites + $140
+ db $40 / $10 ; $40 bytes
+ db BANK(MonOverworldSprites)
+ dw $8780
Func_71868: ; 71868 (1c:5868)
push hl
@@ -105233,7 +105807,7 @@ Func_71868: ; 71868 (1c:5868)
ld a, [hl]
call Func_718e9
ld [$cd5b], a
- call asm_718c3
+ call Func_718c3
pop bc
pop de
pop hl
@@ -105245,10 +105819,43 @@ Func_71882: ; 71882 (1c:5882)
ld a, [$cd5d]
call Func_718e9
ld [$cd5b], a
- jr asm_718c3
+ jr Func_718c3
-INCBIN "baserom.gbc",$71890,$718c3 - $71890
-asm_718c3: ; 718c3 (1c:58c3)
+Func_71890: ; 71890 (1c:5890)
+ ld a, [$cf91]
+ call Func_718e9
+ push af
+ ld hl, $8000
+ call Func_718ac
+ pop af
+ add $54
+ ld hl, $8040
+ call Func_718ac
+ xor a
+ ld [$cd5d], a
+ jr Func_71882
+
+Func_718ac: ; 718ac (1c:58ac)
+ push hl
+ add a
+ ld c, a
+ ld b, $0
+ ld hl, MonOverworldSpritePointers
+ add hl, bc
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ pop hl
+ jp CopyVideoData
+
+Func_718c3: ; 718c3 (1c:58c3)
push af
ld c, $10
ld h, $c3
@@ -105370,7 +105977,7 @@ MonOverworldData: ; 7190d (1c:590d)
dn SPRITE_SNAKE, SPRITE_MON ;Dragonite/Mewtwo
dn SPRITE_MON, 0 ;Mew/Padding
-MonOverworldSprites:
+MonOverworldSprites: ; 71959 (1c:5959)
INCBIN "gfx/mon_ow_sprites.2bpp"
Predef54: ; 71ad9 (1c:5ad9)
@@ -105406,10 +106013,10 @@ Predef54: ; 71ad9 (1c:5ad9)
ld [$cd11],a
ld a,[$cd0f]
ld de,$cd13
- call Function71b6a
+ call Func_71b6a
ld a,[$cd34]
ld de,$cd1e
- call Function71b6a
+ call Func_71b6a
ld hl,$d737
ld a,[wWhichTrade]
ld c,a
@@ -105430,7 +106037,7 @@ Predef54: ; 71ad9 (1c:5ad9)
ld a,[$cc26]
and a
jr nz,.asm_99bca ; 0x71b4b $b
- call Function71c07
+ call Func_71c07
jr c,.asm_99bca ; 0x71b50 $6
ld hl, UnnamedText_71d8d
call PrintText
@@ -105449,7 +106056,7 @@ Predef54: ; 71ad9 (1c:5ad9)
ld l,a
jp PrintText
-Function71b6a: ; 71b6a (1c:5b6a)
+Func_71b6a: ; 71b6a (1c:5b6a)
push de
ld [$d11e],a
call GetMonName
@@ -105471,7 +106078,7 @@ TradeMons: ; 71b7b (1c:5b7b)
db VENONAT, TANGELA, 2,"CRINKLES@@@"
db NIDORAN_M, NIDORAN_F, 2,"SPOT@@@@@@@"
-Function71c07: ; 71c07 (1c:5c07)
+Func_71c07: ; 71c07 (1c:5c07)
xor a
ld [$d07d],a
dec a
@@ -105706,29 +106313,32 @@ Func_71ddf: ; 71ddf (1c:5ddf)
ld l, a
ld h, $0
add hl, hl
- ld de, Unknown_71f73 ; $5f73
+ ld de, PointerTable_71f73
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
- ld de, Func_72156 ; $6156
+ ld de, Func_72156
push de
jp [hl]
- ld hl, PalPacket_72448 ; $6448
- ld de, Unknown_721b5 ; $61b5
+
+Func_71dff: ; 71dff (1c:5dff)
+ ld hl, PalPacket_72448
+ ld de, Unknown_721b5
ret
- ld hl, PalPacket_72428 ; $6428
+
+Func_71e06: ; 71e06 (1c:5e06)
+ ld hl, PalPacket_72428
ld de, $cf2d
ld bc, $10
call CopyData
ld a, [W_PLAYERBATTSTATUS3]
- ld hl, W_PLAYERMONID ; player Pokemon ID
+ ld hl, W_PLAYERMONID
call DeterminePaletteID
ld b, a
ld a, [W_ENEMYBATTSTATUS3]
- ld hl, W_ENEMYMONID ; enemy Pokemon ID
+ ld hl, W_ENEMYMONID
call DeterminePaletteID
-
ld c, a
ld hl, $cf2e
ld a, [$cf1d]
@@ -105745,23 +106355,27 @@ Func_71ddf: ; 71ddf (1c:5ddf)
ld a, c
ld [hl], a
ld hl, $cf2d
- ld de, Unknown_721b5 ; $61b5
+ ld de, Unknown_721b5
ld a, $1
ld [$cf1c], a
ret
- ld hl, PalPacket_72458 ; $6458
- ld de, Unknown_7219e ; $619e
+
+Func_71e48: ; 71e48 (1c:5e48)
+ ld hl, PalPacket_72458
+ ld de, Unknown_7219e
ret
- ld hl, PalPacket_72428 ; $6428
+
+Func_71e4f: ; 71e4f (1c:5e4f)
+ ld hl, PalPacket_72428
ld de, $cf2d
ld bc, $10
call CopyData
ld a, [$cf91]
- cp $bf
- jr c, .asm_71e64
- ld a, $1
-.asm_71e64
- call Func_71f9d
+ cp VICTREEBEL + 1
+ jr c, .pokemon
+ ld a, $1 ; not pokemon
+.pokemon
+ call DeterminePaletteIDOoutOfBattle
push af
ld hl, $cf2e
ld a, [$cf25]
@@ -105771,83 +106385,102 @@ Func_71ddf: ; 71ddf (1c:5ddf)
pop af
ld [hl], a
ld hl, $cf2d
- ld de, Unknown_721fa ; $61fa
+ ld de, Unknown_721fa
ret
- ld hl, PalPacket_72438 ; $6438
+
+Func_71e7b: ; 71e7b (1c:5e7b)
+ ld hl, PalPacket_72438
ld de, $cf2e
ret
- ld hl, PalPacket_72468 ; $6468
+
+Func_71e82: ; 71e82 (1c:5e82)
+ ld hl, PalPacket_72468
ld de, $cf2d
ld bc, $10
call CopyData
ld a, [$cf91]
- call Func_71f9d
+ call DeterminePaletteIDOoutOfBattle
ld hl, $cf30
ld [hl], a
ld hl, $cf2d
- ld de, Unknown_72222 ; $6222
+ ld de, Unknown_72222
ret
-INCBIN "baserom.gbc",$71e9f,$71ea6 - $71e9f
- ld hl, PalPacket_72488 ; $6488
- ld de, Unknown_7228e ; $628e
+Func_71e9f: ; 71e9f (1c:5e9f)
+ ld hl, PalPacket_72478
+ ld de, Unknown_7224f
ret
- ld hl, PalPacket_724a8 ; $64a8
- ld de, Unknown_7219e ; $619e
+
+Func_71ea6: ; 71ea6 (1c:5ea6)
+ ld hl, PalPacket_72488
+ ld de, Unknown_7228e
ret
- ld hl, PalPacket_724b8 ; $64b8
- ld de, Unknown_722c1 ; $62c1
+
+Func_71ead: ; 71ead (1c:5ead)
+ ld hl, PalPacket_724a8
+ ld de, Unknown_7219e
ret
- ld hl, PalPacket_724c8 ; $64c8
- ld de, Unknown_723dd ; $63dd
+
+Func_71eb4: ; 71eb4 (1c:5eb4)
+ ld hl, PalPacket_724b8
+ ld de, Unknown_722c1
+ ret
+
+Func_71ebb: ; 71ebb (1c:5ebb)
+ ld hl, PalPacket_724c8
+ ld de, Unknown_723dd
ld a, $8
ld [$cf1c], a
ret
- ld hl, PalPacket_72428 ; $6428
+
+GetMapPaletteID: ; 71ec7 (1c:5ec7)
+ ld hl, PalPacket_72428
ld de, $cf2d
ld bc, $10
call CopyData
- ld a, [W_CURMAPTILESET] ; $d367
+ ld a, [W_CURMAPTILESET]
cp $f
- jr z, .asm_71f0c
+ jr z, .PokemonTowerOrAgatha
cp $11
- jr z, .asm_71f10
- ld a, [W_CURMAP] ; $d35e
- cp $25
- jr c, .asm_71ef8
- cp $e2
- jr c, .asm_71ef5
- cp $e5
- jr c, .asm_71f10
- cp $f5
- jr z, .asm_71f14
- cp $f6
- jr z, .asm_71f10
-.asm_71ef5
- ld a, [$d365]
-.asm_71ef8
- cp $b
- jr c, .asm_71efe
- ld a, $ff
-.asm_71efe
- inc a
+ jr z, .caveOrBruno
+ ld a, [W_CURMAP]
+ cp REDS_HOUSE_1F
+ jr c, .townOrRoute
+ cp UNKNOWN_DUNGEON_2
+ jr c, .normalDungeonOrBuilding
+ cp NAME_RATERS_HOUSE
+ jr c, .caveOrBruno
+ cp LORELEIS_ROOM
+ jr z, .Lorelei
+ cp BRUNOS_ROOM
+ jr z, .caveOrBruno
+.normalDungeonOrBuilding
+ ld a, [$d365] ; town or route that current dungeon or building is located
+.townOrRoute
+ cp SAFFRON_CITY + 1
+ jr c, .town
+ ld a, PAL_ROUTE - 1
+.town
+ inc a ; a town's pallete ID is its map ID + 1
ld hl, $cf2e
ld [hld], a
- ld de, Unknown_7219e ; $619e
+ ld de, Unknown_7219e
ld a, $9
ld [$cf1c], a
ret
-.asm_71f0c
- ld a, $18
- jr .asm_71efe
-.asm_71f10
- ld a, $22
- jr .asm_71efe
-.asm_71f14
+.PokemonTowerOrAgatha
+ ld a, PAL_GREYMON - 1
+ jr .town
+.caveOrBruno
+ ld a, PAL_CAVE - 1
+ jr .town
+.Lorelei
xor a
- jr .asm_71efe
+ jr .town
+
+Func_71f17: ; 71f17 (1c:5f17)
push bc
- ld hl, PalPacket_72428 ; $6428
+ ld hl, PalPacket_72428
ld de, $cf2d
ld bc, $10
call CopyData
@@ -105857,19 +106490,21 @@ INCBIN "baserom.gbc",$71e9f,$71ea6 - $71e9f
ld a, $1e
jr nz, .asm_71f31
ld a, [$cf1d]
- call Func_71f9d
+ call DeterminePaletteIDOoutOfBattle
.asm_71f31
ld [$cf2e], a
ld hl, $cf2d
- ld de, Unknown_7219e ; $619e
+ ld de, Unknown_7219e
ret
- ld hl, Unknown_72360 ; $6360
+
+LoadTrainerCardBadgePalettes: ; 71f3b (1c:5f3b)
+ ld hl, Unknown_72360
ld de, $cc5b
ld bc, $40
call CopyData
- ld de, Unknown_71f8f ; $5f8f
+ ld de, Unknown_71f8f
ld hl, $cc5d
- ld a, [W_OBTAINEDBADGES] ; $d356
+ ld a, [W_OBTAINEDBADGES]
ld c, $8
.asm_71f52
srl a
@@ -105896,12 +106531,25 @@ INCBIN "baserom.gbc",$71e9f,$71ea6 - $71e9f
inc de
dec c
jr nz, .asm_71f52
- ld hl, PalPacket_72498 ; $6498
+ ld hl, PalPacket_72498
ld de, $cc5b
ret
-Unknown_71f73: ; 71f73 (1c:5f73)
-INCBIN "baserom.gbc",$71f73,$71f8f - $71f73
+PointerTable_71f73: ; 71f73 (1c:5f73)
+ dw Func_71dff
+ dw Func_71e06
+ dw Func_71e48
+ dw Func_71e4f
+ dw Func_71e82
+ dw Func_71e9f
+ dw Func_71ea6
+ dw Func_71eb4
+ dw Func_71ead
+ dw GetMapPaletteID
+ dw Func_71e7b
+ dw Func_71f17
+ dw Func_71ebb
+ dw LoadTrainerCardBadgePalettes
Unknown_71f8f: ; 71f8f (1c:5f8f)
INCBIN "baserom.gbc",$71f8f,$71f97 - $71f8f
@@ -105911,7 +106559,7 @@ DeterminePaletteID: ; 71f97 (1c:5f97)
ld a, PAL_GREYMON ; if yes, use Ditto's palette
ret nz
ld a, [hl]
-Func_71f9d: ; 71f9d (1c:5f9d)
+DeterminePaletteIDOoutOfBattle: ; 71f9d (1c:5f9d)
ld [$D11E], a
and a
jr z, .idZero
@@ -106044,25 +106692,25 @@ Func_7202b: ; 7202b (1c:602b)
ei
ld a, $1
ld [$cf2d], a
- ld de, PalPacket_72508 ; $6508
- ld hl, SGBBorderGraphics ; $6fe8
+ ld de, PalPacket_72508
+ ld hl, SGBBorderGraphics
call Func_7210b
xor a
ld [$cf2d], a
- ld de, PalPacket_72518 ; $6518
- ld hl, BorderPalettes ; $6788
+ ld de, PalPacket_72518
+ ld hl, BorderPalettes
call Func_7210b
xor a
ld [$cf2d], a
- ld de, PalPacket_724d8 ; $64d8
- ld hl, SuperPalettes ; $6660
+ ld de, PalPacket_724d8
+ ld hl, SuperPalettes
call Func_7210b
call ZeroVram
- ld hl, PalPacket_72538 ; $6538
+ ld hl, PalPacket_72538
jp SendSGBPacket
Func_72075: ; 72075 (1c:6075)
- ld hl, Unknown_72089 ; $6089
+ ld hl, PointerTable_72089
ld c, $9
.asm_7207a
push bc
@@ -106078,11 +106726,19 @@ Func_72075: ; 72075 (1c:6075)
jr nz, .asm_7207a
ret
-Unknown_72089: ; 72089 (1c:6089)
-INCBIN "baserom.gbc",$72089,$7209b - $72089
+PointerTable_72089: ; 72089 (1c:6089)
+ dw PalPacket_72528
+ dw PalPacket_72548
+ dw PalPacket_72558
+ dw PalPacket_72568
+ dw PalPacket_72578
+ dw PalPacket_72588
+ dw PalPacket_72598
+ dw PalPacket_725a8
+ dw PalPacket_725b8
Func_7209b: ; 7209b (1c:609b)
- ld hl, PalPacket_724f8 ; $64f8
+ ld hl, PalPacket_724f8
di
call SendSGBPacket
ld a, $1
@@ -106133,7 +106789,7 @@ Func_7209b: ; 7209b (1c:609b)
ret
Func_72102: ; 72102 (1c:6102)
- ld hl, PalPacket_724e8 ; $64e8
+ ld hl, PalPacket_724e8
call SendSGBPacket
jp Wait7000
@@ -106216,7 +106872,7 @@ Func_7216d: ; 7216d (1c:616d)
add a
add a
add a
- ld de, SuperPalettes ; $6660
+ ld de, SuperPalettes
add e
jr nc, .asm_72180
inc d
@@ -106261,7 +106917,10 @@ Unknown_721fa: ; 721fa (1c:61fa)
INCBIN "baserom.gbc",$721fa,$72222 - $721fa
Unknown_72222: ; 72222 (1c:6222)
-INCBIN "baserom.gbc",$72222,$7228e - $72222
+INCBIN "baserom.gbc",$72222,$7224f - $72222
+
+Unknown_7224f: ; 7224f (1c:624f)
+INCBIN "baserom.gbc",$7224f,$7228e - $7224f
Unknown_7228e: ; 7228e (1c:628e)
INCBIN "baserom.gbc",$7228e,$722c1 - $7228e
@@ -106332,7 +106991,29 @@ PalPacket_72528: ; 72528 (1c:6528)
PalPacket_72538: ; 72538 (1c:6538)
db $B9,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
-INCBIN "baserom.gbc",$72548,$725c8 - $72548
+PalPacket_72548: ; 72548 (1c:6548)
+ db $79,$5D,$08,$00,$0B,$8C,$D0,$F4,$60,$00,$00,$00,$00,$00,$00,$00
+
+PalPacket_72558: ; 72558 (1c:6558)
+ db $79,$52,$08,$00,$0B,$A9,$E7,$9F,$01,$C0,$7E,$E8,$E8,$E8,$E8,$E0
+
+PalPacket_72568: ; 72568 (1c:6568)
+ db $79,$47,$08,$00,$0B,$C4,$D0,$16,$A5,$CB,$C9,$05,$D0,$10,$A2,$28
+
+PalPacket_72578: ; 72578 (1c:6578)
+ db $79,$3C,$08,$00,$0B,$F0,$12,$A5,$C9,$C9,$C8,$D0,$1C,$A5,$CA,$C9
+
+PalPacket_72588: ; 72588 (1c:6588)
+ db $79,$31,$08,$00,$0B,$0C,$A5,$CA,$C9,$7E,$D0,$06,$A5,$CB,$C9,$7E
+
+PalPacket_72598: ; 72598 (1c:6598)
+ db $79,$26,$08,$00,$0B,$39,$CD,$48,$0C,$D0,$34,$A5,$C9,$C9,$80,$D0
+
+PalPacket_725a8: ; 725a8 (1c:65a8)
+ db $79,$1B,$08,$00,$0B,$EA,$EA,$EA,$EA,$EA,$A9,$01,$CD,$4F,$0C,$D0
+
+PalPacket_725b8: ; 725b8 (1c:65b8)
+ db $79,$10,$08,$00,$0B,$4C,$20,$08,$EA,$EA,$EA,$EA,$EA,$60,$EA,$EA
MonsterPalettes: ; 725c8 (1c:65c8)
db PAL_MEWMON ; MISSINGNO
@@ -106662,8 +107343,8 @@ ENDC
RGB 31,28,14
RGB 24,20,10
RGB 3,2,2
-BorderPalettes: ; 72788 (1c:6788)
+BorderPalettes: ; 72788 (1c:6788)
IF _RED
INCBIN "gfx/red/sgbborder.map"
ENDC
@@ -106859,7 +107540,7 @@ SAVGoodChecksum: ; 736f8 (1c:76f8)
ld [$0], a
ret
-Function_73701: ; 0x73701
+Func_73701: ; 0x73701
call LoadSAVCheckSum
call LoadSAVCheckSum1
jp LoadSAVCheckSum2
@@ -107493,7 +108174,7 @@ Func_740ba: ; 740ba (1d:40ba)
jr nz, .asm_740bf
ret
-Func40CB: ; 740cb (1d:40cb)
+Func_740cb: ; 740cb (1d:40cb)
xor a
ld [H_AUTOBGTRANSFERENABLED],a
call SaveScreenTilesToBuffer1
@@ -107677,7 +108358,7 @@ Func_7418e: ; 7418e (1d:418e)
ld c, $6e
.asm_741de
call DelayFrames
- call Func40CB
+ call Func_740cb
jr .asm_74192
.asm_741e6
call Func_740ba
@@ -111009,7 +111690,7 @@ GaryScript: ; 75f1d (1d:5f1d)
ld a, [W_GARYCURSCRIPT]
jp CallFunctionInTable
-Function75f29: ; 75f29 (1d:5f29)
+GaryScript_75f29: ; 75f29 (1d:5f29)
xor a
ld [wJoypadForbiddenButtonsMask], a
ld [W_GARYCURSCRIPT], a
@@ -111097,7 +111778,7 @@ GaryScript2: ; 75f6a (1d:5f6a)
GaryScript3: ; 75fbb (1d:5fbb)
ld a, [W_ISINBATTLE]
cp $ff
- jp z, Function75f29
+ jp z, GaryScript_75f29
call UpdateSprites ; move sprites
ld hl, $d867
set 1, [hl]
@@ -111105,7 +111786,7 @@ GaryScript3: ; 75fbb (1d:5fbb)
ld [wJoypadForbiddenButtonsMask], a
ld a, $1
ld [$ff00+$8c], a
- call Function760c8
+ call GaryScript_760c8
ld a, $1
ld [$ff00+$8c], a
call SetSpriteMovementBytesToFF
@@ -111119,7 +111800,7 @@ GaryScript4: ; 75fe4 (1d:5fe4)
call Bankswitch
ld a, $2
ld [$ff00+$8c], a
- call Function760c8
+ call GaryScript_760c8
ld a, $2
ld [$ff00+$8c], a
call SetSpriteMovementBytesToFF
@@ -111156,7 +111837,7 @@ GaryScript5: ; 7601a (1d:601a)
call Func_34a6 ; face object
ld a, $3
ld [$ff00+$8c], a
- call Function760c8
+ call GaryScript_760c8
ld a, $6
ld [W_GARYCURSCRIPT], a
ret
@@ -111169,7 +111850,7 @@ GaryScript6: ; 76047 (1d:6047)
call Func_34a6 ; face object
ld a, $4
ld [$ff00+$8c], a
- call Function760c8
+ call GaryScript_760c8
ld a, $7
ld [W_GARYCURSCRIPT], a
ret
@@ -111182,7 +111863,7 @@ GaryScript7: ; 7605f (1d:605f)
call Func_34a6 ; face object
ld a, $5
ld [$ff00+$8c], a
- call Function760c8
+ call GaryScript_760c8
ld de, MovementData_76080
ld a, $2
ld [$ff00+$8c], a
@@ -111219,7 +111900,7 @@ GaryScript9: ; 76099 (1d:6099)
ld [W_GARYCURSCRIPT], a
ret
-RLEMovement760b4; 0x760b4
+RLEMovement760b4 ; 760b4 (1d:60b4)
db $40,4
db $20,1
db $ff
@@ -111234,7 +111915,7 @@ GaryScript10: ; 760b9 (1d:60b9)
ld [W_GARYCURSCRIPT], a
ret
-Function760c8; 0x760c8
+GaryScript_760c8 ; 760c8 (1d:60c8)
ld a, $f0
ld [wJoypadForbiddenButtonsMask], a
call DisplayTextID
@@ -112453,7 +113134,7 @@ PlayAnimation: ; 780f1 (1e:40f1)
ld [wAnimSoundID],a ; store sound
push hl
push de
- call Func586F
+ call Func_7986f
call PlaySound
pop de
pop hl
@@ -112658,7 +113339,7 @@ MoveAnimation: ; 78d5e (1e:4d5e)
ld c,30
call DelayFrames
.next4
- call Function4DBD ; reload pic and flash the pic in and out (to show damage)
+ call Func_78dbd ; reload pic and flash the pic in and out (to show damage)
.AnimationFinished
call WaitForSoundToFinish
xor a
@@ -112696,7 +113377,7 @@ ShareMoveAnimations: ; 78da6 (1e:4da6)
ld [W_ANIMATIONID],a
ret
-Function4DBD: ; 78dbd (1e:4dbd)
+Func_78dbd: ; 78dbd (1e:4dbd)
ld a,[$CC5B]
and a
ret z
@@ -112704,31 +113385,48 @@ Function4DBD: ; 78dbd (1e:4dbd)
add a
ld c,a
ld b,0
- ld hl,Pointer4DCF
+ ld hl,PointerTable_78dcf
add hl,bc
ld a,[hli]
ld h,[hl]
ld l,a
jp [hl]
-Pointer4DCF: ; 78dcf (1e:4dcf)
- dw $4DDB,$4DE3,$4DEB,$4DF0,$4DF6,$4DFE
+PointerTable_78dcf: ; 78dcf (1e:4dcf)
+ dw Func_78ddb
+ dw Func_78de3
+ dw Func_78deb
+ dw Func_78df0
+ dw Func_78df6
+ dw Func_78dfe
+Func_78ddb: ; 78ddb (1e:4ddb)
call Func_79e6a
ld b, $8
jp Func_79209
+
+Func_78de3: ; 78de3 (1e:4de3)
call Func_79e6a
ld b, $8
jp Func_79210
+
+Func_78deb: ; 78deb (1e:4deb)
ld bc, $602
- jr .asm_78e01
+ jr Func_78e01
+
+Func_78df0: ; 78df0 (1e:4df0)
call Func_79e6a
jp Func_79369
+
+Func_78df6: ; 78df6 (1e:4df6)
call Func_79e6a
ld b, $2
jp Func_79210
+
+Func_78dfe: ; 78dfe (1e:4dfe)
ld bc, $302
-.asm_78e01
+
+Func_78e01: ; 78e01 (1e:4e01)
push bc
push bc
.asm_78e03
@@ -112750,7 +113448,7 @@ Pointer4DCF: ; 78dcf (1e:4dcf)
jr nz, .asm_78e11
pop bc
dec c
- jr nz, .asm_78e01
+ jr nz, Func_78e01
ret
Func_78e23: ; 78e23 (1e:4e23)
@@ -112785,7 +113483,7 @@ PlaySubanimation: ; 78e53 (1e:4e53)
ld a,[wAnimSoundID]
cp a,$FF
jr z,.skipPlayingSound
- call Func586F
+ call Func_7986f
call PlaySound ; play sound effect
.skipPlayingSound
ld hl,wOAMBuffer ; base address of OAM buffer
@@ -112899,7 +113597,7 @@ AnimationIdSpecialEffects: ; 78ef5 (1e:4ef5)
dw AnimationFlashScreen
db TAIL_WHIP
- dw Func50D0
+ dw Func_790d0
db GROWL
dw DoGrowlSpecialEffects
@@ -112935,13 +113633,13 @@ AnimationIdSpecialEffects: ; 78ef5 (1e:4ef5)
dw DoRockSlideSpecialEffects
db $AA
- dw Func5041
+ dw Func_79041
db $AB
- dw Func504C
+ dw Func_7904c
db $AC
- dw Func507C
+ dw Func_7907c
db TOSS_ANIM
dw DoBallTossSpecialEffects
@@ -113112,7 +113810,7 @@ DoBlizzardSpecialEffects: ; 79016 (1e:5016)
; flashes the screen at 3 points in the subanimation
; XXX is this unused?
-Func502E: ; 7902e (1e:502e)
+Func_7902e: ; 7902e (1e:502e)
ld a,[W_SUBANIMCOUNTER]
cp a,14
jp z,AnimationFlashScreen
@@ -113124,7 +113822,7 @@ Func502E: ; 7902e (1e:502e)
; function to make the pokemon disappear at the beginning of the animation
; XXX probably a trade-related animation
-Func5041: ; 79041 (1e:5041)
+Func_79041: ; 79041 (1e:5041)
ld a,[W_SUBANIMCOUNTER]
cp a,6
ret nz
@@ -113133,7 +113831,7 @@ Func5041: ; 79041 (1e:5041)
; function to make a shaking pokeball jump up at the end of the animation
; XXX probably a trade-related animation
-Func504C: ; 7904c (1e:504c)
+Func_7904c: ; 7904c (1e:504c)
ld a,[W_SUBANIMCOUNTER]
cp a,1
ret nz
@@ -113168,7 +113866,7 @@ BallMoveDistances1: ; 79078 (1e:5078)
; function to make the pokeball jump up
; XXX probably a trade-related animation
-Func507C ; 507C
+Func_7907c ; 507C
ld de,BallMoveDistances2
.loop
ld hl,wOAMBuffer ; OAM buffer
@@ -113221,8 +113919,7 @@ DoGrowlSpecialEffects: ; 790bc (1e:50bc)
ret
; this is associated with Tail Whip, but Tail Whip doesn't use any subanimations
-; XXX why is this here?
-Func50D0: ; 790d0 (1e:50d0)
+Func_790d0: ; 790d0 (1e:50d0)
ld a,1
ld [W_SUBANIMCOUNTER],a
ld c,20
@@ -113255,7 +113952,7 @@ SpecialEffectPointers: ; 790da (1e:50da)
db $F3
dw $536F
db $F2
- dw $53F9
+ dw Func_793f9
db $F1
dw $5415
db $F0
@@ -113267,7 +113964,7 @@ SpecialEffectPointers: ; 790da (1e:50da)
db $ED
dw $54F9
db $EC
- dw $5566
+ dw Func_79566
db $EB
dw $577A
db $EA
@@ -113281,7 +113978,7 @@ SpecialEffectPointers: ; 790da (1e:50da)
db $E6
dw $5C8A
db $E5
- dw $5645
+ dw Func_79645
db $E4
dw $5D77
db $E3
@@ -113303,11 +114000,11 @@ SpecialEffectPointers: ; 790da (1e:50da)
db $DB
dw $52B9
db $DA
- dw $53B1
+ dw Func_793b1
db $D9
dw $56E0
db $D8
- dw $5666
+ dw Func_79666
db $FF
AnimationDelay10: ; 79150 (1e:5150)
@@ -113417,18 +114114,28 @@ AnimationFlashScreen: ; 791be (1e:51be)
ld [rBGP],a ; restore initial palette
ret
- ld bc, Unknown_7af6f ; $6f6f
+ ld bc, Unknown_7af6f
+ jr .asm_791fc
+
+ ld bc, $f9f4
+ jr .asm_791fc
+
+ ld bc, $fef8
+ jr .asm_791fc
+
+ ld bc, $ffff
jr .asm_791fc
-INCBIN "baserom.gbc",$791db,$791ea - $791db
ld bc, $e4e4
jr .asm_791fc
-INCBIN "baserom.gbc",$791ef,$791f4 - $791ef
+ ld bc, $0000
+ jr .asm_791fc
+
ld bc, $9090
jr .asm_791fc
-INCBIN "baserom.gbc",$791f9,$791fc - $791f9
+ ld bc, $4040
.asm_791fc
ld a, [$cf1b]
and a
@@ -113439,7 +114146,7 @@ INCBIN "baserom.gbc",$791f9,$791fc - $791f9
ld [rBGP], a ; $FF00+$47
ret
-INCBIN "baserom.gbc",$79207,$79209 - $79207
+ ld b, $5
Func_79209: ; 79209 (1e:5209)
ld a, $21
@@ -113498,7 +114205,20 @@ Func_79246: ; 79246 (1e:5246)
call AnimationCleanOAM
jp DelayFrame
-INCBIN "baserom.gbc",$7927a,$79297 - $7927a
+Func_7927a: ; 7927a (1e:527a)
+ ld c, $7
+ ld a, [H_WHOSETURN]
+ and a
+ ld hl, $c419
+ ld de, $c405
+ ld a, $30
+ jr z, .asm_79291
+ ld hl, $c3c0
+ ld de, $c3ac
+ ld a, $ff
+.asm_79291
+ ld [$d09f], a
+ jp Func_792bf
Func_79297: ; 79297 (1e:5297)
xor a
@@ -113526,7 +114246,73 @@ Func_792b9: ; 792b9 (1e:52b9)
ld hl, Func_792af ; $52af
jp CallWithTurnFlipped
-INCBIN "baserom.gbc",$792bf,$79329 - $792bf
+Func_792bf: ; 792bf (1e:52bf)
+ push de
+ push hl
+ push bc
+ ld b, $6
+.asm_792c4
+ push bc
+ push de
+ push hl
+ ld bc, $0007
+ call CopyData
+ pop de
+ pop hl
+ ld bc, $0028
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .asm_792c4
+ ld a, [H_WHOSETURN]
+ and a
+ ld hl, $c47d
+ jr z, .asm_792e2
+ ld hl, $c424
+.asm_792e2
+ ld a, [$d09f]
+ inc a
+ ld [$d09f], a
+ ld c, $7
+.asm_792eb
+ ld [hli], a
+ add $7
+ dec c
+ jr nz, .asm_792eb
+ ld c, $2
+ call DelayFrames
+ pop bc
+ pop hl
+ pop de
+ dec c
+ jr nz, Func_792bf
+ ret
+
+Func_792fd: ; 792fd (1e:52fd)
+ ld a, $10
+ ld [W_BASECOORDX], a
+ ld a, $30
+ ld [W_BASECOORDY], a
+ ld hl, wOAMBuffer
+ ld d, $0
+ ld c, $7
+.asm_7930e
+ ld a, [W_BASECOORDY]
+ ld e, a
+ ld b, $5
+.asm_79314
+ call Func_79329
+ inc d
+ dec b
+ jr nz, .asm_79314
+ dec c
+ ret z
+ inc d
+ inc d
+ ld a, [W_BASECOORDX]
+ add $8
+ ld [W_BASECOORDX], a
+ jr .asm_7930e
Func_79329: ; 79329 (1e:5329)
ld a, e
@@ -113611,7 +114397,9 @@ Func_79389: ; 79389 (1e:5389)
ld [$cee9], a
jp Func_79793
-INCBIN "baserom.gbc",$79398,$7939e - $79398
+Func_79398: ; 79398 (1e:5398)
+ ld hl, Func_79389
+ jp CallWithTurnFlipped
Func_7939e: ; 7939e (1e:539e)
xor a
@@ -113622,7 +114410,52 @@ Func_7939e: ; 7939e (1e:539e)
ld hl, Func_7939e ; $539e
jp CallWithTurnFlipped
-INCBIN "baserom.gbc",$793b1,$793f9 - $793b1
+Func_793b1: ; 793b1 (1e:53b1)
+ ld a, [H_WHOSETURN]
+ and a
+ ld hl, $c404
+ ld de, $c406
+ jr z, .asm_793c2
+ ld hl, $c3ab
+ ld de, $c3ad
+
+.asm_793c2
+ xor a
+ ld c, $10
+.asm_793c5
+ push af
+ push bc
+ push de
+ push hl
+ push hl
+ push de
+ push af
+ push hl
+ push hl
+ call Func_79842
+ pop hl
+ call Func_79aae
+ call Delay3
+ pop hl
+ ld bc, $0709
+ call ClearScreenArea
+ pop af
+ call Func_79842
+ pop hl
+ call Func_79aae
+ call Delay3
+ pop hl
+ ld bc, $0709
+ call ClearScreenArea
+ pop hl
+ pop de
+ pop bc
+ pop af
+ dec c
+ jr nz, .asm_793c5
+ ret
+
+Func_793f9: ; 793f9 (1e:53f9)
call Func_79801
ld a, [H_WHOSETURN] ; $FF00+$f3
and a
@@ -113821,7 +114654,34 @@ Func_79517: ; 79517 (1e:5517)
jr nz, .asm_79538
ret
-INCBIN "baserom.gbc",$79566,$7959f - $79566
+Func_79566: ; 79566 (1e:5566)
+ ld a, [H_WHOSETURN]
+ and a
+ ld hl, Unknown_79591
+ ld a, $50
+ jr z, .player
+ ld hl, Unknown_79598
+ ld a, $28
+.player
+ ld [wTrainerSpriteOffset], a
+.loop
+ ld a, [wTrainerSpriteOffset]
+ ld [W_BASECOORDY], a
+ ld a, [hli]
+ cp $ff
+ jp z, AnimationCleanOAM
+ ld [W_BASECOORDX], a
+ ld bc, $0401
+ push hl
+ call Func_79517
+ pop hl
+ jr .loop
+
+Unknown_79591: ; 79591 (1e:5591)
+INCBIN "baserom.gbc",$79591,$79598 - $79591
+
+Unknown_79598: ; 79598 (1e:5598)
+INCBIN "baserom.gbc",$79598,$7959f - $79598
Func_7959f: ; 7959f (1e:559f)
ld hl, $c6e8
@@ -113908,7 +114768,12 @@ Func_7963c: ; 7963c (1e:563c)
ld a, $7f
ret
-INCBIN "baserom.gbc",$79645,$79652 - $79645
+Func_79645: ; 79645 (1e:5645)
+ ld e, $4
+ ld a, $4
+ ld [W_SUBANIMTRANSFORM], a
+ call Func_795f8
+ jp Delay3
Func_79652: ; 79652 (1e:5652)
ld a, [H_WHOSETURN] ; $FF00+$f3
@@ -113921,7 +114786,61 @@ Func_79652: ; 79652 (1e:5652)
ld bc, $31
jp CopyVideoData
-INCBIN "baserom.gbc",$79666,$796e0 - $79666
+Func_79666: ; 79666 (1e:5666)
+ ld hl, $9800
+ call Func_79e0d
+ call Delay3
+ xor a
+ ld [H_AUTOBGTRANSFERENABLED], a
+ ld a, $90
+ ld [$ffb0], a
+ ld d, $80
+ ld e, $8f
+ ld c, $ff
+ ld hl, Unknown_796bf
+.asm_7967f
+ push hl
+.asm_79680
+ call Func_796ae
+ ld a, [$ff44]
+ cp e
+ jr nz, .asm_79680
+ pop hl
+ inc hl
+ ld a, [hl]
+ cp d
+ jr nz, .asm_79691
+ ld hl, Unknown_796bf
+.asm_79691
+ dec c
+ jr nz, .asm_7967f
+ xor a
+ ld [$ffb0], a
+ call SaveScreenTilesToBuffer2
+ call ClearScreen
+ ld a, $1
+ ld [H_AUTOBGTRANSFERENABLED], a
+ call Delay3
+ call LoadScreenTilesFromBuffer2
+ ld hl, $9c00
+ call Func_79e0d
+ ret
+
+Func_796ae: ; 796ae (1e:56ae)
+ ld a, [$ff41]
+ and $3
+ jr nz, Func_796ae
+ ld a, [hl]
+ ld [$ff43], a
+ inc hl
+ ld a, [hl]
+ cp d
+ ret nz
+ ld hl, Unknown_796bf
+ ret
+
+Unknown_796bf: ; 796bf (1e:56bf)
+INCBIN "baserom.gbc",$796bf,$796e0 - $796bf
Func_796e0: ; 796e0 (1e:56e0)
ld hl, $c6e8
@@ -114157,11 +115076,11 @@ Func_79862: ; 79862 (1e:5862)
Func_79869: ; 79869 (1e:5869)
ld a, b
- call Func586F
+ call Func_7986f
ld b, a
ret
-Func586F: ; 7986f (1e:586f)
+Func_7986f: ; 7986f (1e:586f)
ld hl,MoveSoundTable
ld e,a
ld d,0
@@ -114448,7 +115367,32 @@ Func_79dda: ; 79dda (1e:5dda)
pop hl
jp Func_79ace
-INCBIN "baserom.gbc",$79de9,$79e16 - $79de9
+Func_79de9: ; 79de9 (1e:5de9)
+ ld a, [$ffae]
+ ld [wTrainerSpriteOffset], a
+.asm_79dee
+ ld a, [wTrainerSpriteOffset]
+ add d
+ ld [$ffae], a
+ ld c, $2
+ call DelayFrames
+ ld a, [wTrainerSpriteOffset]
+ sub d
+ ld [$ffae], a
+ ld c, $2
+ call DelayFrames
+ dec e
+ jr nz, .asm_79dee
+ ld a, [wTrainerSpriteOffset]
+ ld [$ffae], a
+ ret
+
+Func_79e0d: ; 79e0d (1e:5e0d)
+ ld a, h
+ ld [$ffbd], a
+ ld a, l
+ ld [H_AUTOBGTRANSFERDEST], a
+ jp Delay3
TossBallAnimation: ; 79e16 (1e:5e16)
ld a,[W_ISINBATTLE]
@@ -116984,7 +117928,7 @@ INCLUDE "music/credits.asm"
SECTION "bank20",ROMX,BANK[$20]
-UnnamedText_80000: ; 80000 (20:4000)
+_UnnamedText_526ee: ; 80000 (20:4000)
db $0, "Bingo!@@"
_UnnamedText_526f3: ; 80009 (20:4009)