summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryenatch <yenatch@gmail.com>2013-09-06 03:48:02 -0400
committeryenatch <yenatch@gmail.com>2013-09-06 03:50:55 -0400
commit1660b814e87b6aef80d29bd4b1be8b930d7506e9 (patch)
treee6476fb19fb1e99469558067e9b76cb1f37a32e6
parent4a429aded493efa4b35fc8ccb39bcda77dacaee7 (diff)
the bomb
specials asm dump
-rw-r--r--main.asm12127
1 files changed, 12050 insertions, 77 deletions
diff --git a/main.asm b/main.asm
index 7000817a7..903518035 100644
--- a/main.asm
+++ b/main.asm
@@ -16630,7 +16630,10 @@ SpecialSnorlaxAwake: ; 0xc43d
db $24, $09
db $ff
-INCBIN "baserom.gbc", $c472, $c478 - $c472
+Functionc472: ; c472
+ ld a, [CurPartySpecies]
+ jp Function37ce
+; c478
SpecialGameboyCheck: ; c478
; check cgb
@@ -16656,7 +16659,29 @@ SpecialGameboyCheck: ; c478
ld [ScriptVar], a
ret
-INCBIN "baserom.gbc", $c48f, $c4b9 - $c48f
+Functionc48f: ; c48f
+ ld a, $0
+ ld [MusicFadeIDLo], a
+ ld a, $0
+ ld [MusicFadeIDHi], a
+ ld a, $2
+ ld [MusicFade], a
+ ret
+; c49f
+
+Functionc49f: ; c49f
+ call FadeToMenu
+ callba Function1dd702
+ call Function2b4d
+ ret
+; c4ac
+
+Functionc4ac: ; c4ac
+ call FadeToMenu
+ callba Function84688
+ call Function2b4d
+ ret
+; c4b9
SpecialTrainerHouse: ; 0xc4b9
ld a, 0
@@ -16874,7 +16899,56 @@ PrintNumber_AdvancePointer: ; c64a
ret
; 0xc658
-INCBIN "baserom.gbc", $c658, $c6ea - $c658
+Functionc658: ; c658
+ xor a
+ ld [CurPartyMon], a
+ ld hl, PartySpecies
+.asm_c65f
+ ld a, [hli]
+ cp $ff
+ jr z, .asm_c676
+ cp $fd
+ jr z, .asm_c66d
+ push hl
+ call Functionc677
+ pop hl
+
+.asm_c66d
+ ld a, [CurPartyMon]
+ inc a
+ ld [CurPartyMon], a
+ jr .asm_c65f
+
+.asm_c676
+ ret
+; c677
+
+Functionc677: ; c677
+ ld a, $0
+ call GetPartyParamLocation
+ ld d, h
+ ld e, l
+ ld hl, $0020
+ add hl, de
+ xor a
+ ld [hli], a
+ ld [hl], a
+ ld hl, $0024
+ add hl, de
+ ld b, h
+ ld c, l
+ dec bc
+ dec bc
+ ld a, [hli]
+ ld [bc], a
+ inc bc
+ ld a, [hl]
+ ld [bc], a
+ callba Functionf8b9
+ ret
+; c699
+
+INCBIN "baserom.gbc", $c699, $c6ea - $c699
Functionc6ea: ; c6ea
@@ -19370,7 +19444,179 @@ Functiondcb6: ; dcb6
; dd21
-INCBIN "baserom.gbc", $dd21, $de6e - $dd21
+Functiondd21: ; dd21
+ ld a, [BreedMon1Species]
+ ld [CurPartySpecies], a
+ ld de, $0022
+ call StartSFX
+ call WaitSFX
+ call Functione698
+ ld a, b
+ ld [DefaultFlypoint], a
+ ld a, e
+ ld [CurPartyLevel], a
+ xor a
+ ld [$d10b], a
+ jp Functiondd64
+; dd42
+
+Functiondd42: ; dd42
+ ld a, [BreedMon2Species]
+ ld [CurPartySpecies], a
+ ld de, $0022
+ call StartSFX
+ call WaitSFX
+ call Functione6b3
+ ld a, b
+ ld [DefaultFlypoint], a
+ ld a, e
+ ld [CurPartyLevel], a
+ ld a, $1
+ ld [$d10b], a
+ jp Functiondd64
+; dd64
+
+Functiondd64: ; dd64
+ ld hl, PartyCount
+ ld a, [hl]
+ cp $6
+ jr nz, .asm_dd6e
+ scf
+ ret
+
+.asm_dd6e
+ inc a
+ ld [hl], a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [$d10b]
+ and a
+ ld a, [BreedMon1Species]
+ ld de, BreedMon1Nick
+ jr z, .asm_dd86
+ ld a, [BreedMon2Species]
+ ld de, BreedMon2Nick
+
+.asm_dd86
+ ld [hli], a
+ ld [CurSpecies], a
+ ld a, $ff
+ ld [hl], a
+ ld hl, PartyMon1Nickname
+ ld a, [PartyCount]
+ dec a
+ call SkipNames
+ push hl
+ ld h, d
+ ld l, e
+ pop de
+ call CopyBytes
+ push hl
+ ld hl, PartyMon1OT
+ ld a, [PartyCount]
+ dec a
+ call SkipNames
+ ld d, h
+ ld e, l
+ pop hl
+ call CopyBytes
+ push hl
+ call Functionde1a
+ pop hl
+ ld bc, $0020
+ call CopyBytes
+ call GetBaseData
+ call Functionde1a
+ ld b, d
+ ld c, e
+ ld hl, $001f
+ add hl, bc
+ ld a, [CurPartyLevel]
+ ld [hl], a
+ ld hl, $0024
+ add hl, bc
+ ld d, h
+ ld e, l
+ ld hl, $000a
+ add hl, bc
+ push bc
+ ld b, $1
+ call Functione167
+ ld hl, PartyMon1Move1
+ ld a, [PartyCount]
+ dec a
+ ld bc, $0030
+ call AddNTimes
+ ld d, h
+ ld e, l
+ ld a, $1
+ ld [Buffer1], a
+ ld a, $1b
+ call Predef
+ ld a, [PartyCount]
+ dec a
+ ld [CurPartyMon], a
+ callba Functionc677
+ ld a, [CurPartyLevel]
+ ld d, a
+ callab Function50e47
+ pop bc
+ ld hl, $0008
+ add hl, bc
+ ld a, [hMultiplicand]
+ ld [hli], a
+ ld a, [$ffb5]
+ ld [hli], a
+ ld a, [$ffb6]
+ ld [hl], a
+ and a
+ ret
+; de1a
+
+Functionde1a: ; de1a
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMon1Species
+ ld bc, $0030
+ call AddNTimes
+ ld d, h
+ ld e, l
+ ret
+; de2a
+
+Functionde2a: ; de2a
+ ld de, BreedMon1Nick
+ call Functionde44
+ xor a
+ ld [$d10b], a
+ jp Functione039
+; de37
+
+Functionde37: ; de37
+ ld de, BreedMon2Nick
+ call Functionde44
+ xor a
+ ld [$d10b], a
+ jp Functione039
+; de44
+
+Functionde44: ; de44
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1Nickname
+ call SkipNames
+ call CopyBytes
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1OT
+ call SkipNames
+ call CopyBytes
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1Species
+ ld bc, $0030
+ call AddNTimes
+ ld bc, $0020
+ jp CopyBytes
+; de6e
Functionde6e: ; de6e
@@ -20310,7 +20556,37 @@ Functione5bb: ; e5bb
ret
; e5d9
-INCBIN "baserom.gbc", $e5d9, $e6ce - $e5d9
+INCBIN "baserom.gbc", $e5d9, $e698 - $e5d9
+
+Functione698: ; e698
+ ld hl, BreedMon1Species
+ ld de, TempMonSpecies
+ ld bc, $0020
+ call CopyBytes
+ callab Function50e1b
+ ld a, [$df2b]
+ ld b, a
+ ld a, d
+ ld e, a
+ sub b
+ ld d, a
+ ret
+; e6b3
+
+Functione6b3: ; e6b3
+ ld hl, BreedMon2Species
+ ld de, TempMonSpecies
+ ld bc, $0020
+ call CopyBytes
+ callab Function50e1b
+ ld a, [$df64]
+ ld b, a
+ ld a, d
+ ld e, a
+ sub b
+ ld d, a
+ ret
+; e6ce
Functione6ce: ; e6ce
@@ -20728,7 +21004,41 @@ Functionf881: ; f881
ret
; f8b9
-INCBIN "baserom.gbc", $f8b9, $f8ec - $f8b9
+Functionf8b9: ; f8b9
+ ld a, $17
+ call GetPartyParamLocation
+ push hl
+ ld a, $2
+ call GetPartyParamLocation
+ pop de
+ xor a
+ ld [$cfa9], a
+ ld [MonType], a
+ ld c, $4
+.asm_f8ce
+ ld a, [hli]
+ and a
+ ret z
+ push hl
+ push de
+ push bc
+ call Functionf8ec
+ pop bc
+ pop de
+ ld a, [de]
+ and $c0
+ ld b, a
+ ld a, [$d265]
+ add b
+ ld [de], a
+ inc de
+ ld hl, $cfa9
+ inc [hl]
+ pop hl
+ dec c
+ jr nz, .asm_f8ce
+ ret
+; f8ec
Functionf8ec: ; f8ec
@@ -21326,7 +21636,18 @@ Function11485: ; 11485
ret
; 11490
-INCBIN "baserom.gbc", $11490, $114dd - $11490
+Function11490: ; 11490
+ ld a, $14
+ ld [$d46c], a
+ ld a, $0
+ ld [$d46d], a
+ call UpdateTime
+ ld hl, $dc35
+ call Function11613
+ ret
+; 114a4
+
+INCBIN "baserom.gbc", $114a4, $114dd - $114a4
Function114dd: ; 114dd
@@ -22037,7 +22358,229 @@ UnknownScript_0x122c1: ; 0x122c1
end
; 0x122ce
-INCBIN "baserom.gbc", $122ce, $124c8 - $122ce
+INCBIN "baserom.gbc", $122ce, $12324 - $122ce
+
+Function12324: ; 12324
+ ld a, [PartyCount]
+ and a
+ ret z
+ ld a, [ScriptVar]
+ ld [Buffer1], a
+ ld a, [rOBP1]
+ ld [Buffer2], a
+ call Function1233e
+ ld a, [Buffer2]
+ call Functiond24
+ ret
+; 1233e
+
+Function1233e: ; 1233e
+ xor a
+ ld [$d1ec], a
+.asm_12342
+ ld a, [Buffer1]
+ ld e, a
+ ld d, $0
+ ld hl, $6365
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [$d1ec]
+ ld e, a
+ inc a
+ ld [$d1ec], a
+ add hl, de
+ ld a, [hl]
+ cp $5
+ jr z, .asm_12364
+ ld hl, $6377
+ rst JumpTable
+ jr .asm_12342
+
+.asm_12364
+ ret
+; 12365
+
+INCBIN "baserom.gbc", $12365, $12377 - $12365
+
+Table12377: ; 12377
+ dw Function12383
+ dw Function12393
+ dw Function123a1
+ dw Function123bf
+ dw Function123c8
+ dw Function123db
+; 12383
+
+Function12383: ; 12383
+ call Function12434
+ ld de, $63fc
+ ld hl, $87c0
+ ld bc, $0402
+ call Request2bpp
+ ret
+; 12393
+
+Function12393: ; 12393
+ ld hl, $c480
+ ld de, $63dc
+ call Function124a3
+ call Function124a3
+ jr Function123a7
+
+Function123a1: ; 123a1
+ ld hl, $c480
+ ld de, $641c
+
+Function123a7: ; 123a7
+ ld a, [PartyCount]
+ ld b, a
+.asm_123ab
+ call Function124a3
+ push de
+ ld de, $0012
+ call StartSFX
+ pop de
+ ld c, $1e
+ call DelayFrames
+ dec b
+ jr nz, .asm_123ab
+ ret
+; 123bf
+
+Function123bf: ; 123bf
+ ld de, $000d
+ call StartMusic
+ jp Function12459
+; 123c8
+
+Function123c8: ; 123c8
+ ld de, $00aa
+ call StartSFX
+ call Function12459
+ call WaitSFX
+ ld de, $000d
+ call StartSFX
+ ret
+; 123db
+
+Function123db: ; 123db
+ ret
+; 123dc
+
+INCBIN "baserom.gbc", $123dc, $12434 - $123dc
+
+Function12434: ; 12434
+ call Function3218
+ jr nz, .asm_1243e
+ ld a, $e0
+ ld [rOBP1], a
+ ret
+
+.asm_1243e
+ ld hl, $6451
+ ld de, CurMart
+ ld bc, $0008
+ ld a, $5
+ call Function306b
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 12451
+
+INCBIN "baserom.gbc", $12451, $12459 - $12451
+
+Function12459: ; 12459
+ ld c, $8
+.asm_1245b
+ push bc
+ call Function12469
+ ld c, $a
+ call DelayFrames
+ pop bc
+ dec c
+ jr nz, .asm_1245b
+ ret
+; 12469
+
+Function12469: ; 12469
+ call Function3218
+ jr nz, .asm_12475
+ ld a, [rOBP1]
+ xor $28
+ ld [rOBP1], a
+ ret
+
+.asm_12475
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, CurMart
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ push de
+ ld c, $3
+.asm_12486
+ ld a, [hli]
+ ld e, a
+ ld a, [hld]
+ ld d, a
+ dec hl
+ ld a, d
+ ld [hld], a
+ ld a, e
+ ld [hli], a
+ inc hl
+ inc hl
+ inc hl
+ dec c
+ jr nz, .asm_12486
+ pop de
+ dec hl
+ ld a, d
+ ld [hld], a
+ ld a, e
+ ld [hl], a
+ pop af
+ ld [rSVBK], a
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 124a3
+
+Function124a3: ; 124a3
+ push bc
+ ld a, [Buffer1]
+ ld bc, $1020
+ cp $1
+ jr z, .asm_124b1
+ ld bc, $0000
+
+.asm_124b1
+ ld a, [de]
+ add c
+ inc de
+ ld [hli], a
+ ld a, [de]
+ add b
+ inc de
+ ld [hli], a
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ inc de
+ ld [hli], a
+ pop bc
+ ret
+; 124c1
+
+INCBIN "baserom.gbc", $124c1, $124c8 - $124c1
UnknownScript_0x124c8: ; 0x124c8
refreshscreen $0
@@ -23503,7 +24046,64 @@ Function12f50: ; 12f50
ret
; 12f5b
-INCBIN "baserom.gbc", $12f5b, $12fba - $12f5b
+Function12f5b: ; 12f5b
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set 4, [hl]
+ call Functione58
+ call Function12f73
+ pop bc
+ ld a, b
+ ld [Options], a
+ push af
+ call WhiteBGMap
+ pop af
+ ret
+; 12f73
+
+Function12f73: ; 12f73
+ call Function13172
+ ld de, $6fb2
+ call Function1bb1
+ call Function131ef
+ ld hl, $cfa5
+ set 6, [hl]
+ jr Function12f93
+
+Function12f86: ; 12f86
+ call Function1bd3
+ bit 1, a
+ jp nz, Function12f9f
+ bit 0, a
+ jp nz, Function12f9c
+
+Function12f93: ; 12f93
+ call Function13235
+ call Function13256
+ jp Function12f86
+; 12f9c
+
+Function12f9c: ; 12f9c
+ and a
+ jr Function12fa0
+
+Function12f9f: ; 12f9f
+ scf
+
+Function12fa0: ; 12fa0
+ push af
+ xor a
+ ld [$d0e3], a
+ ld hl, $cfa5
+ res 6, [hl]
+ call ClearSprites
+ call ClearTileMap
+ pop af
+ ret
+; 12fb2
+
+INCBIN "baserom.gbc", $12fb2, $12fba - $12fb2
Function12fba: ; 12fba
ld a, [CurPartySpecies]
@@ -24408,7 +25008,14 @@ Function13575: ; 13575
; 135db
-INCBIN "baserom.gbc", $135db, $135eb - $135db
+Function135db: ; 135db
+ xor a
+ ld [$df9c], a
+ ld a, $14
+ ld [$dc79], a
+ callba Function11490
+ ret
+; 135eb
UnknownScript_0x135eb: ; 0x135eb
writecode $3, $6
@@ -24831,7 +25438,54 @@ Function13988: ; 13988
ret
; 139a8
-INCBIN "baserom.gbc", $139a8, $139ed - $139a8
+Function139a8: ; 139a8
+ ld c, $a
+ ld hl, $79fe
+.asm_139ad
+ push bc
+ push hl
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld b, $0
+ call EventFlagAction
+ pop hl
+ inc hl
+ inc hl
+ pop bc
+ dec c
+ jr nz, .asm_139ad
+ ld c, $5
+.asm_139c0
+ push bc
+.asm_139c1
+ call Random
+ cp $fa
+ jr nc, .asm_139c1
+ ld c, $19
+ call SimpleDivide
+ ld e, b
+ ld d, $0
+ ld hl, $79fe
+ add hl, de
+ add hl, de
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ push de
+ ld b, $2
+ call EventFlagAction
+ pop de
+ ld a, c
+ and a
+ jr nz, .asm_139c1
+ ld b, $1
+ call EventFlagAction
+ pop bc
+ dec c
+ jr nz, .asm_139c0
+ ret
+; 139ed
Function139ed: ; 139ed
ld hl, $79fe
@@ -24847,7 +25501,49 @@ Function139ed: ; 139ed
ret
; 139fe
-INCBIN "baserom.gbc", $139fe, $13b87 - $139fe
+INCBIN "baserom.gbc", $139fe, $13a12 - $139fe
+
+Function13a12: ; 13a12
+ ld hl, PartyMon1CurHP
+ ld a, [hli]
+ or [hl]
+ jr z, .asm_13a2b
+ ld hl, PartyCount
+ ld a, $1
+ ld [hli], a
+ inc hl
+ ld a, [hl]
+ ld [$df9b], a
+ ld [hl], $ff
+ xor a
+ ld [ScriptVar], a
+ ret
+
+.asm_13a2b
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+; 13a31
+
+Function13a31: ; 13a31
+ ld hl, $dcd9
+ ld a, [$df9b]
+ ld [hl], a
+ ld b, $1
+.asm_13a3a
+ ld a, [hli]
+ cp $ff
+ jr z, .asm_13a42
+ inc b
+ jr .asm_13a3a
+
+.asm_13a42
+ ld a, b
+ ld [PartyCount], a
+ ret
+; 13a47
+
+INCBIN "baserom.gbc", $13a47, $13b87 - $13a47
GetSquareRoot: ; 13b87
@@ -26595,7 +27291,49 @@ Function14a07: ; 14a07
ret
; 14a1a
-INCBIN "baserom.gbc", $14a1a, $14b5f - $14a1a
+INCBIN "baserom.gbc", $14a1a, $14a58 - $14a1a
+
+Function14a58: ; 14a58
+ call Function14b54
+ callba Function14056
+ callba Function1050d9
+ call Function14df7
+ call Function14e13
+ call Function14e76
+ call Function14e8b
+ callba Function44725
+ callba Function1406a
+ call Function14b5a
+ ret
+; 14a83
+
+INCBIN "baserom.gbc", $14a83, $14ab2 - $14a83
+
+Function14ab2: ; 14ab2
+ call Function14b89
+ jr c, .asm_14ac1
+ call Function14b54
+ call Function14be3
+ call Function14b5a
+ and a
+
+.asm_14ac1
+ ret
+; 14ac2
+
+INCBIN "baserom.gbc", $14ac2, $14b54 - $14ac2
+
+Function14b54: ; 14b54
+ ld a, $1
+ ld [$c2cd], a
+ ret
+; 14b5a
+
+Function14b5a: ; 14b5a
+ xor a
+ ld [$c2cd], a
+ ret
+; 14b5f
Function14b5f: ; 14b5f
@@ -26625,7 +27363,87 @@ Function14b85: ; 14b85
ret
; 14b89
-INCBIN "baserom.gbc", $14b89, $14c10 - $14b89
+Function14b89: ; 14b89
+ ld a, [$cfcd]
+ and a
+ jr z, .asm_14ba8
+ call Function14bcb
+ jr z, .asm_14b9e
+ ld hl, $5297
+ call Function14baf
+ jr nz, .asm_14bad
+ jr .asm_14ba8
+
+.asm_14b9e
+ ld hl, $5292
+ call Function14baf
+ jr nz, .asm_14bad
+ jr .asm_14bab
+
+.asm_14ba8
+ call Function14cbb
+
+.asm_14bab
+ and a
+ ret
+
+.asm_14bad
+ scf
+ ret
+; 14baf
+
+Function14baf: ; 14baf
+ ld b, $5
+ call Function269a
+ call Function1d58
+ ld bc, $0007
+ call Function1dd2
+ ld a, [$cfa9]
+ dec a
+ call Function1c17
+ push af
+ call Functiond90
+ pop af
+ and a
+ ret
+; 14bcb
+
+Function14bcb: ; 14bcb
+ ld a, $1
+ call GetSRAMBank
+ ld hl, $a009
+ ld a, [hli]
+ ld c, [hl]
+ ld b, a
+ call CloseSRAM
+ ld a, [PlayerID]
+ cp b
+ ret nz
+ ld a, [$d47c]
+ cp c
+ ret
+; 14be3
+
+Function14be3: ; 14be3
+ call Function14c99
+ call Function14c10
+ ld c, $20
+ call DelayFrames
+ ld a, [Options]
+ push af
+ ld a, $3
+ ld [Options], a
+ ld hl, $528d
+ call PrintText
+ pop af
+ ld [Options], a
+ ld de, $0025
+ call WaitPlaySFX
+ call WaitSFX
+ ld c, $1e
+ call DelayFrames
+ ret
+; 14c10
Function14c10: ; 14c10
@@ -26708,7 +27526,24 @@ Function14c90: ; 14c90
jr .asm_14c93
; 14c99
-INCBIN "baserom.gbc", $14c99, $14cbb - $14c99
+Function14c99: ; 14c99
+ xor a
+ ld [hJoypadReleased], a
+ ld [hJoypadPressed], a
+ ld [hJoypadSum], a
+ ld [hJoypadDown], a
+ ld a, [Options]
+ push af
+ ld a, $3
+ ld [Options], a
+ ld hl, $5288
+ call PrintText
+ pop af
+ ld [Options], a
+ ld c, $10
+ call DelayFrames
+ ret
+; 14cbb
Function14cbb: ; 14cbb
@@ -27321,7 +28156,67 @@ Function1541d: ; 1541d
jr .asm_1541d
; 15440
-INCBIN "baserom.gbc", $15440, $156b3 - $15440
+INCBIN "baserom.gbc", $15440, $1559a - $15440
+
+Function1559a: ; 1559a
+ call Function15650
+ ret c
+ call Function156b3
+ ld hl, $5a27
+ call Function15a20
+ ld hl, $5a2c
+ call Function157bb
+ ld hl, $55d6
+ call LoadMenuDataHeader
+.asm_155b3
+ xor a
+ ld [hBGMapMode], a
+ call Function1563e
+ ld [$cf76], a
+ call Function1e5d
+ jr c, .asm_155cc
+ ld a, [MenuSelection]
+ ld hl, $55e6
+ call Function1fa7
+ jr nc, .asm_155b3
+
+.asm_155cc
+ call Function156b8
+ call Function1c07
+ call Function1c17
+ ret
+; 155d6
+
+INCBIN "baserom.gbc", $155d6, $1563e - $155d6
+
+Function1563e: ; 1563e
+ call Function2ead
+ jr nz, .asm_15646
+ ld a, $0
+ ret
+
+.asm_15646
+ ld a, [$d95e]
+ and a
+ ld a, $1
+ ret z
+ ld a, $2
+ ret
+; 15650
+
+Function15650: ; 15650
+ ld a, [PartyCount]
+ and a
+ ret nz
+ ld de, $000f
+ call StartSFX
+ ld hl, $5663
+ call Function15a20
+ scf
+ ret
+; 15663
+
+INCBIN "baserom.gbc", $15663, $156b3 - $15663
Function156b3: ; 156b3
ld de, $000d
@@ -28766,7 +29661,635 @@ Function160a1: ; 160a1
INCLUDE "items/marts.asm"
-INCBIN "baserom.gbc", $16218, $16be4 - $16218
+Function16218: ; 16218
+ ld a, [$ffaa]
+ push af
+ ld a, $1
+ ld [$ffaa], a
+ xor a
+ ld [$cf63], a
+.asm_16223
+ ld a, [$cf63]
+ bit 7, a
+ jr nz, .asm_1622f
+ call Function16233
+ jr .asm_16223
+
+.asm_1622f
+ pop af
+ ld [$ffaa], a
+ ret
+; 16233
+
+Function16233: ; 16233
+ ld a, [$cf63]
+ ld e, a
+ ld d, $0
+ ld hl, $6242
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 16242
+
+INCBIN "baserom.gbc", $16242, $166d6 - $16242
+
+Function166d6: ; 166d6
+ ld hl, DaycareMan
+ bit 0, [hl]
+ jr nz, .asm_166fe
+ ld hl, DaycareMan
+ ld a, $0
+ call Function1678f
+ jr c, .asm_16724
+ call Function16798
+ jr c, .asm_16721
+ callba Functionde2a
+ ld hl, DaycareMan
+ set 0, [hl]
+ call Function167f6
+ call Function16a3b
+ ret
+
+.asm_166fe
+ callba Functione698
+ ld hl, BreedMon1Nick
+ call Function1686d
+ call Function16807
+ jr c, .asm_16721
+ callba Functiondd21
+ call Function16850
+ ld hl, DaycareMan
+ res 0, [hl]
+ res 5, [hl]
+ jr .asm_16724
+
+.asm_16721
+ call Function1689b
+
+.asm_16724
+ ld a, $13
+ call Function1689b
+ ret
+; 1672a
+
+Function1672a: ; 1672a
+ ld hl, DaycareLady
+ bit 0, [hl]
+ jr nz, .asm_16752
+ ld hl, DaycareLady
+ ld a, $2
+ call Function16781
+ jr c, .asm_1677b
+ call Function16798
+ jr c, .asm_16778
+ callba Functionde37
+ ld hl, DaycareLady
+ set 0, [hl]
+ call Function167f6
+ call Function16a3b
+ ret
+
+.asm_16752
+ callba Functione6b3
+ ld hl, BreedMon2Nick
+ call Function1686d
+ call Function16807
+ jr c, .asm_16778
+ callba Functiondd42
+ call Function16850
+ ld hl, DaycareLady
+ res 0, [hl]
+ ld hl, DaycareMan
+ res 5, [hl]
+ jr .asm_1677b
+
+.asm_16778
+ call Function1689b
+
+.asm_1677b
+ ld a, $13
+ call Function1689b
+ ret
+; 16781
+
+Function16781: ; 16781
+ bit 7, [hl]
+ jr nz, .asm_16788
+ set 7, [hl]
+ inc a
+
+.asm_16788
+ call Function1689b
+ call Function1dcf
+ ret
+; 1678f
+
+Function1678f: ; 1678f
+ set 7, [hl]
+ call Function1689b
+ call Function1dcf
+ ret
+; 16798
+
+Function16798: ; 16798
+ ld a, [PartyCount]
+ cp $2
+ jr c, .asm_167e5
+ ld a, $4
+ call Function1689b
+ ld b, $6
+ callba Function5001d
+ jr c, .asm_167dd
+ ld a, [CurPartySpecies]
+ cp $fd
+ jr z, .asm_167e1
+ callba Functione538
+ jr c, .asm_167e9
+ ld hl, PartyMon1Item
+ ld bc, $0030
+ ld a, [CurPartyMon]
+ call AddNTimes
+ ld d, [hl]
+ callba Functionb9e76
+ jr c, .asm_167ed
+ ld hl, PartyMon1Nickname
+ ld a, [CurPartyMon]
+ call GetNick
+ and a
+ ret
+
+.asm_167dd
+ ld a, $12
+ scf
+ ret
+
+.asm_167e1
+ ld a, $6
+ scf
+ ret
+
+.asm_167e5
+ ld a, $7
+ scf
+ ret
+
+.asm_167e9
+ ld a, $8
+ scf
+ ret
+
+.asm_167ed
+ ld a, $a
+ scf
+ ret
+; 167f1
+
+INCBIN "baserom.gbc", $167f1, $167f6 - $167f1
+
+Function167f6: ; 167f6
+ ld a, $5
+ call Function1689b
+ ld a, [CurPartySpecies]
+ call Function37ce
+ ld a, $9
+ call Function1689b
+ ret
+; 16807
+
+Function16807: ; 16807
+ ld a, [$d087]
+ and a
+ jr nz, .asm_16819
+ ld a, $f
+ call Function1689b
+ call Function1dcf
+ jr c, .asm_16844
+ jr .asm_1682d
+
+.asm_16819
+ ld a, $b
+ call Function1689b
+ call Function1dcf
+ jr c, .asm_16844
+ ld a, $c
+ call Function1689b
+ call Function1dcf
+ jr c, .asm_16844
+
+.asm_1682d
+ ld de, Money
+ ld bc, $d088
+ callba Function1600b
+ jr c, .asm_16848
+ ld a, [PartyCount]
+ cp $6
+ jr nc, .asm_1684c
+ and a
+ ret
+
+.asm_16844
+ ld a, $12
+ scf
+ ret
+
+.asm_16848
+ ld a, $11
+ scf
+ ret
+
+.asm_1684c
+ ld a, $10
+ scf
+ ret
+; 16850
+
+Function16850: ; 16850
+ ld bc, $d088
+ ld de, Money
+ callba Function15ffa
+ ld a, $d
+ call Function1689b
+ ld a, [CurPartySpecies]
+ call Function37ce
+ ld a, $e
+ call Function1689b
+ ret
+; 1686d
+
+Function1686d: ; 1686d
+ ld a, b
+ ld [StringBuffer2], a
+ ld a, d
+ ld [$d087], a
+ ld de, StringBuffer1
+ ld bc, $000b
+ call CopyBytes
+ ld hl, $0000
+ ld bc, $0064
+ ld a, [$d087]
+ call AddNTimes
+ ld de, $0064
+ add hl, de
+ xor a
+ ld [$d088], a
+ ld a, h
+ ld [$d089], a
+ ld a, l
+ ld [$d08a], a
+ ret
+; 1689b
+
+Function1689b: ; 1689b
+ ld e, a
+ ld d, $0
+ ld hl, $68aa
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call PrintText
+ ret
+; 168aa
+
+INCBIN "baserom.gbc", $168aa, $16936 - $168aa
+
+Function16936: ; 16936
+ ld hl, DaycareMan
+ bit 6, [hl]
+ jr nz, .asm_16949
+ ld hl, .data_16944
+ call PrintText
+ ret
+
+.data_16944
+ db $16
+ db $f6
+ db $5e
+ db $6f
+ db $50
+
+.asm_16949
+ ld hl, $6993
+ call PrintText
+ call Function1dcf
+ jr c, .asm_1697c
+ ld a, [PartyCount]
+ cp $6
+ jr nc, .asm_16987
+ call Function169ac
+ ld hl, DaycareMan
+ res 6, [hl]
+ call Function16a3b
+ ld hl, $6998
+ call PrintText
+ ld de, $0096
+ call StartSFX
+ ld c, $78
+ call DelayFrames
+ ld hl, $699d
+ jr .asm_1697f
+
+.asm_1697c
+ ld hl, $69a2
+
+.asm_1697f
+ call PrintText
+ xor a
+ ld [ScriptVar], a
+ ret
+
+.asm_16987
+ ld hl, $69a7
+ call PrintText
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+; 16993
+
+INCBIN "baserom.gbc", $16993, $169ac - $16993
+
+Function169ac: ; 169ac
+ ld a, [$df9a]
+ ld [CurPartyLevel], a
+ ld hl, PartyCount
+ ld a, [hl]
+ cp $6
+ jr nc, .asm_16a2f
+ inc a
+ ld [hl], a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, $fd
+ ld [hli], a
+ ld a, [EggSpecies]
+ ld [CurSpecies], a
+ ld [CurPartySpecies], a
+ ld a, $ff
+ ld [hl], a
+ ld hl, PartyMon1Nickname
+ ld bc, $000b
+ call Function16a31
+ ld hl, EggNick
+ call CopyBytes
+ ld hl, PartyMon1OT
+ ld bc, $000b
+ call Function16a31
+ ld hl, EggOT
+ call CopyBytes
+ ld hl, PartyMon1Species
+ ld bc, $0030
+ call Function16a31
+ ld hl, EggSpecies
+ ld bc, $0020
+ call CopyBytes
+ call GetBaseData
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMon1Species
+ ld bc, $0030
+ call AddNTimes
+ ld b, h
+ ld c, l
+ ld hl, $0007
+ add hl, bc
+ push hl
+ ld hl, $0024
+ add hl, bc
+ ld d, h
+ ld e, l
+ pop hl
+ push bc
+ ld b, $0
+ ld a, $c
+ call Predef
+ pop bc
+ ld hl, $0022
+ add hl, bc
+ xor a
+ ld [hli], a
+ ld [hl], a
+ and a
+ ret
+
+.asm_16a2f
+ scf
+ ret
+; 16a31
+
+Function16a31: ; 16a31
+ ld a, [PartyCount]
+ dec a
+ call AddNTimes
+ ld d, h
+ ld e, l
+ ret
+; 16a3b
+
+Function16a3b: ; 16a3b
+ ld a, [DaycareLady]
+ bit 0, a
+ ret z
+ ld a, [DaycareMan]
+ bit 0, a
+ ret z
+ callab Function16e1d
+ ld a, [$d265]
+ and a
+ ret z
+ inc a
+ ret z
+ ld hl, DaycareMan
+ set 5, [hl]
+.asm_16a59
+ call Random
+ cp $96
+ jr c, .asm_16a59
+ ld [StepsToEgg], a
+ jp Function16a66
+; 16a66
+
+Function16a66: ; 16a66
+ xor a
+ ld hl, EggSpecies
+ ld bc, $0020
+ call ByteFill
+ ld hl, EggNick
+ ld bc, $000b
+ call ByteFill
+ ld hl, EggOT
+ ld bc, $000b
+ call ByteFill
+ ld a, [$df21]
+ ld [TempMonDVs], a
+ ld a, [$df22]
+ ld [$d124], a
+ ld a, [BreedMon1Species]
+ ld [CurPartySpecies], a
+ ld a, $3
+ ld [MonType], a
+ ld a, [BreedMon1Species]
+ cp $84
+ ld a, $1
+ jr z, .asm_16ab6
+ ld a, [BreedMon2Species]
+ cp $84
+ ld a, $0
+ jr z, .asm_16ab6
+ callba GetGender
+ ld a, $0
+ jr z, .asm_16ab6
+ inc a
+
+.asm_16ab6
+ ld [DittoInDaycare], a
+ and a
+ ld a, [BreedMon1Species]
+ jr z, .asm_16ac2
+ ld a, [BreedMon2Species]
+
+.asm_16ac2
+ ld [CurPartySpecies], a
+ callab GetPreEvolution
+ callab GetPreEvolution
+ ld a, $5
+ ld [CurPartyLevel], a
+ ld a, [CurPartySpecies]
+ cp $1d
+ jr nz, .asm_16ae8
+ call Random
+ cp $80
+ ld a, $1d
+ jr c, .asm_16ae8
+ ld a, $20
+
+.asm_16ae8
+ ld [CurPartySpecies], a
+ ld [CurSpecies], a
+ ld [EggSpecies], a
+ call GetBaseData
+ ld hl, EggNick
+ ld de, $6be0
+ call CopyName2
+ ld hl, PlayerName
+ ld de, EggOT
+ ld bc, $000b
+ call CopyBytes
+ xor a
+ ld [$df7c], a
+ ld de, $df7d
+ xor a
+ ld [Buffer1], a
+ ld a, $1b
+ call Predef
+ callba Function170bf
+ ld hl, $df81
+ ld a, [PlayerID]
+ ld [hli], a
+ ld a, [$d47c]
+ ld [hl], a
+ ld a, [CurPartyLevel]
+ ld d, a
+ callab Function50e47
+ ld hl, $df83
+ ld a, [hMultiplicand]
+ ld [hli], a
+ ld a, [$ffb5]
+ ld [hli], a
+ ld a, [$ffb6]
+ ld [hl], a
+ xor a
+ ld b, $a
+ ld hl, $df86
+.asm_16b46
+ ld [hli], a
+ dec b
+ jr nz, .asm_16b46
+ ld hl, $df90
+ call Random
+ ld [hli], a
+ ld [TempMonDVs], a
+ call Random
+ ld [hld], a
+ ld [$d124], a
+ ld de, $df21
+ ld a, [BreedMon1Species]
+ cp $84
+ jr z, .asm_16b98
+ ld de, $df5a
+ ld a, [BreedMon2Species]
+ cp $84
+ jr z, .asm_16b98
+ ld a, $3
+ ld [MonType], a
+ push hl
+ callba GetGender
+ pop hl
+ ld de, $df21
+ ld bc, $df5a
+ jr c, .asm_16bab
+ jr z, .asm_16b90
+ ld a, [DittoInDaycare]
+ and a
+ jr z, .asm_16b98
+ ld d, b
+ ld e, c
+ jr .asm_16b98
+
+.asm_16b90
+ ld a, [DittoInDaycare]
+ and a
+ jr nz, .asm_16b98
+ ld d, b
+ ld e, c
+
+.asm_16b98
+ ld a, [de]
+ inc de
+ and $f
+ ld b, a
+ ld a, [hl]
+ and $f0
+ add b
+ ld [hli], a
+ ld a, [de]
+ and $7
+ ld b, a
+ ld a, [hl]
+ and $f8
+ add b
+ ld [hl], a
+
+.asm_16bab
+ ld hl, StringBuffer1
+ ld de, $d050
+ ld bc, $000b
+ call CopyBytes
+ ld hl, $df7d
+ ld de, $df92
+ ld a, $5
+ call Predef
+ ld hl, $d050
+ ld de, StringBuffer1
+ ld bc, $000b
+ call CopyBytes
+ ld a, [BaseEggSteps]
+ ld hl, $df96
+ ld [hli], a
+ xor a
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+ ld a, [CurPartyLevel]
+ ld [$df9a], a
+ ret
+; 16be0
+
+INCBIN "baserom.gbc", $16be0, $16be4 - $16be0
Function16be4: ; 16be4
ld a, [UnownDex]
@@ -29006,7 +30529,38 @@ Function16dac: ; 16dac
ret
; 16dc7
-INCBIN "baserom.gbc", $16dc7, $16e1d - $16dc7
+Function16dc7: ; 16dc7
+ ld hl, $6e04
+ call PrintText
+ callba Function50000
+ jr c, .asm_16df8
+ ld a, [CurPartySpecies]
+ cp $fd
+ jr z, .asm_16dfd
+ ld hl, $6e09
+ call PrintText
+ call Function2ed3
+ callba Function8461a
+ call Function2b74
+ ld a, [$ffac]
+ and a
+ jr nz, .asm_16df8
+ ld hl, $6e0e
+ jr .asm_16e00
+
+.asm_16df8
+ ld hl, $6e13
+ jr .asm_16e00
+
+.asm_16dfd
+ ld hl, $6e18
+
+.asm_16e00
+ call PrintText
+ ret
+; 16e04
+
+INCBIN "baserom.gbc", $16e04, $16e1d - $16e04
Function16e1d: ; 16e1d
@@ -29196,7 +30750,308 @@ Function16f3e: ; 16f3e
jr .loop
; 16f5e
-INCBIN "baserom.gbc", $16f5e, $174ba - $16f5e
+INCBIN "baserom.gbc", $16f5e, $170bf - $16f5e
+
+Function170bf: ; 170bf
+ call Function17197
+ ld d, h
+ ld e, l
+ ld b, $4
+.asm_170c6
+ ld a, [de]
+ and a
+ jr z, .asm_170e3
+ ld hl, $df7d
+ ld c, $4
+.asm_170cf
+ ld a, [de]
+ cp [hl]
+ jr z, .asm_170df
+ inc hl
+ dec c
+ jr nz, .asm_170cf
+ call Function170e4
+ jr nc, .asm_170df
+ call Function17169
+
+.asm_170df
+ inc de
+ dec b
+ jr nz, .asm_170c6
+
+.asm_170e3
+ ret
+; 170e4
+
+Function170e4: ; 170e4
+ push bc
+ ld a, [EggSpecies]
+ dec a
+ ld c, a
+ ld b, $0
+ ld hl, $7b11
+ add hl, bc
+ add hl, bc
+ ld a, $8
+ call GetFarHalfword
+.asm_170f6
+ ld a, $8
+ call GetFarByte
+ cp $ff
+ jr z, .asm_17107
+ ld b, a
+ ld a, [de]
+ cp b
+ jr z, .asm_17163
+ inc hl
+ jr .asm_170f6
+
+.asm_17107
+ call Function1720b
+ ld b, $4
+.asm_1710c
+ ld a, [de]
+ cp [hl]
+ jr z, .asm_17116
+ inc hl
+ dec b
+ jr z, .asm_17146
+ jr .asm_1710c
+
+.asm_17116
+ ld a, [EggSpecies]
+ dec a
+ ld c, a
+ ld b, $0
+ ld hl, $65b1
+ add hl, bc
+ add hl, bc
+ ld a, $10
+ call GetFarHalfword
+.asm_17127
+ ld a, $10
+ call GetFarByte
+ inc hl
+ and a
+ jr nz, .asm_17127
+.asm_17130
+ ld a, $10
+ call GetFarByte
+ and a
+ jr z, .asm_17146
+ inc hl
+ ld a, $10
+ call GetFarByte
+ ld b, a
+ ld a, [de]
+ cp b
+ jr z, .asm_17163
+ inc hl
+ jr .asm_17130
+
+.asm_17146
+ ld hl, $567a
+.asm_17149
+ ld a, $4
+ call GetFarByte
+ inc hl
+ and a
+ jr z, .asm_17166
+ ld b, a
+ ld a, [de]
+ cp b
+ jr nz, .asm_17149
+ ld [$d262], a
+ ld a, $e
+ call Predef
+ ld a, c
+ and a
+ jr z, .asm_17166
+
+.asm_17163
+ pop bc
+ scf
+ ret
+
+.asm_17166
+ pop bc
+ and a
+ ret
+; 17169
+
+Function17169: ; 17169
+ push de
+ push bc
+ ld a, [de]
+ ld b, a
+ ld hl, $df7d
+ ld c, $4
+.asm_17172
+ ld a, [hli]
+ and a
+ jr z, .asm_17187
+ dec c
+ jr nz, .asm_17172
+ ld de, $df7d
+ ld hl, $df7e
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+
+.asm_17187
+ dec hl
+ ld [hl], b
+ ld hl, $df7d
+ ld de, $df92
+ ld a, $5
+ call Predef
+ pop bc
+ pop de
+ ret
+; 17197
+
+Function17197: ; 17197
+ ld hl, $df47
+ ld a, [BreedMon1Species]
+ cp $84
+ jr z, .asm_171b1
+ ld a, [BreedMon2Species]
+ cp $84
+ jr z, .asm_171d7
+ ld a, [DittoInDaycare]
+ and a
+ ret z
+ ld hl, $df0e
+ ret
+
+.asm_171b1
+ ld a, [CurPartySpecies]
+ push af
+ ld a, [BreedMon2Species]
+ ld [CurPartySpecies], a
+ ld a, [$df5a]
+ ld [TempMonDVs], a
+ ld a, [$df5b]
+ ld [$d124], a
+ ld a, $3
+ ld [MonType], a
+ ld a, $24
+ call Predef
+ jr c, .asm_171fb
+ jr nz, .asm_171fb
+ jr .asm_17203
+
+.asm_171d7
+ ld a, [CurPartySpecies]
+ push af
+ ld a, [BreedMon1Species]
+ ld [CurPartySpecies], a
+ ld a, [$df21]
+ ld [TempMonDVs], a
+ ld a, [$df22]
+ ld [$d124], a
+ ld a, $3
+ ld [MonType], a
+ ld a, $24
+ call Predef
+ jr c, .asm_17203
+ jr nz, .asm_17203
+
+.asm_171fb
+ ld hl, $df47
+ pop af
+ ld [CurPartySpecies], a
+ ret
+
+.asm_17203
+ ld hl, $df0e
+ pop af
+ ld [CurPartySpecies], a
+ ret
+; 1720b
+
+Function1720b: ; 1720b
+ ld hl, $df0e
+ ld a, [BreedMon1Species]
+ cp $84
+ ret z
+ ld a, [BreedMon2Species]
+ cp $84
+ jr z, .asm_17220
+ ld a, [DittoInDaycare]
+ and a
+ ret z
+
+.asm_17220
+ ld hl, $df47
+ ret
+; 17224
+
+INCBIN "baserom.gbc", $17224, $17421 - $17224
+
+Function17421: ; 17421
+ ld hl, $7467
+ call PrintText
+ ld a, [BreedMon1Species]
+ call Function37ce
+ ld a, [DaycareLady]
+ bit 0, a
+ jr z, .asm_1745f
+ call Functionaaf
+ ld hl, BreedMon2Nick
+ call Function1746c
+ jp PrintText
+
+ ld hl, $7462
+ call PrintText
+ ld a, [BreedMon2Species]
+ call Function37ce
+ ld a, [DaycareMan]
+ bit 0, a
+ jr z, .asm_1745f
+ call Functionaaf
+ ld hl, BreedMon1Nick
+ call Function1746c
+ jp PrintText
+
+.asm_1745f
+ jp Functiona80
+; 17462
+
+INCBIN "baserom.gbc", $17462, $1746c - $17462
+
+Function1746c: ; 1746c
+ push bc
+ ld de, StringBuffer1
+ ld bc, $000b
+ call CopyBytes
+ call Function16e1d
+ pop bc
+ ld a, [$d265]
+ ld hl, $749c
+ cp $ff
+ jr z, .asm_1749b
+ ld hl, $74a1
+ and a
+ jr z, .asm_1749b
+ ld hl, $74a6
+ cp $e6
+ jr nc, .asm_1749b
+ cp $46
+ ld hl, $74ab
+ jr nc, .asm_1749b
+ ld hl, $74b0
+
+.asm_1749b
+ ret
+; 1749c
+
+INCBIN "baserom.gbc", $1749c, $174ba - $1749c
SECTION "bank6",ROMX,BANK[$6]
@@ -31911,7 +33766,17 @@ Function26a3b: ; 26a3b
ret
; 26a44
-INCBIN "baserom.gbc", $26a44, $26b8d - $26a44
+Function26a44: ; 26a44
+ ld a, c
+ call Function269dd
+ ld de, $0005
+ add hl, de
+ ld a, [hl]
+ ld c, a
+ ret
+; 26a4f
+
+INCBIN "baserom.gbc", $26a4f, $26b8d - $26a4f
DecorationNames: ; 26b8d
@@ -32150,7 +34015,116 @@ Function26fdd: ; 26fdd
ret
; 26fe3
-INCBIN "baserom.gbc", $26fe3, $2709e - $26fe3
+INCBIN "baserom.gbc", $26fe3, $26feb - $26fe3
+
+Function26feb: ; 26feb
+ ld de, $0004
+ ld a, [Bed]
+ call Function27037
+ ld de, $0704
+ ld a, [Plant]
+ call Function27037
+ ld de, $0600
+ ld a, [Poster]
+ call Function27037
+ call Function27027
+ ld de, $0000
+ call Function27092
+ ld a, [Carpet]
+ and a
+ ret z
+ call Function27085
+ ld [hl], a
+ push af
+ ld de, $0002
+ call Function27092
+ pop af
+ inc a
+ ld [hli], a
+ inc a
+ ld [hli], a
+ dec a
+ ld [hl], a
+ ret
+; 27027
+
+Function27027: ; 27027
+ ld b, $1
+ ld a, [Poster]
+ and a
+ jr nz, .asm_27031
+ ld b, $0
+
+.asm_27031
+ ld de, $02cc
+ jp EventFlagAction
+; 27037
+
+Function27037: ; 27037
+ push af
+ call Function27092
+ pop af
+ and a
+ ret z
+ call Function27085
+ ld [hl], a
+ ret
+; 27043
+
+Function27043: ; 27043
+ ld de, $0741
+ ld hl, VariableSprites
+ ld a, [Console]
+ call Function27074
+ ld de, $0742
+ ld hl, $d82f
+ ld a, [LeftOrnament]
+ call Function27074
+ ld de, $0743
+ ld hl, $d830
+ ld a, [RightOrnament]
+ call Function27074
+ ld de, $0744
+ ld hl, $d831
+ ld a, [BigDoll]
+ call Function27074
+ ret
+; 27074
+
+Function27074: ; 27074
+ and a
+ jr z, .asm_27080
+ call Function27085
+ ld [hl], a
+ ld b, $0
+ jp EventFlagAction
+
+.asm_27080
+ ld b, $1
+ jp EventFlagAction
+; 27085
+
+Function27085: ; 27085
+ ld c, a
+ push de
+ push hl
+ callba Function26a44
+ pop hl
+ pop de
+ ld a, c
+ ret
+; 27092
+
+Function27092: ; 27092
+ ld a, d
+ add $4
+ ld d, a
+ ld a, e
+ add $4
+ ld e, a
+ call Function2a66
+ ret
+; 2709e
Function2709e: ; 2709e
@@ -32264,12 +34238,2501 @@ INCLUDE "battle/moves/move_effects_pointers.asm"
MoveEffects: ; 2732e
INCLUDE "battle/moves/move_effects.asm"
-INCBIN "baserom.gbc", $27a28, $27a2d - $27a28
+Function27a28: ; 27a28
+ call Function2500e
+ ld b, a
+ ret
+; 27a2d
SECTION "bankA",ROMX,BANK[$A]
-INCBIN "baserom.gbc", $28000, $2a0e7 - $28000
+Function28000: ; 28000
+ call WhiteBGMap
+ ld c, $50
+ call DelayFrames
+ call Functionfdb
+ call ClearSprites
+ call Function1ad2
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld c, $50
+ call DelayFrames
+ call Functionfdb
+ call Function1ad2
+ call Functione51
+ call Functione58
+ callba Function16d69a
+ call Function3200
+ ld hl, $c543
+ ld b, $2
+ ld c, $c
+ ld d, h
+ ld e, l
+ callba Function4d35b
+ ld hl, $c56c
+ ld de, $4419
+ call PlaceString
+ call Function28eff
+ call Function3200
+ ld hl, $cf5d
+ xor a
+ ld [hli], a
+ ld [hl], $50
+ ld a, [InLinkBattle]
+ cp $1
+ jp nz, Function28177
+
+Function2805d: ; 2805d
+ call Function28426
+ call Function28499
+ call Function28434
+ xor a
+ ld [$cf56], a
+ call Function87d
+ ld a, [$ffcb]
+ cp $2
+ jr nz, .asm_28091
+ ld c, $3
+ call DelayFrames
+ xor a
+ ld [hSerialSend], a
+ ld a, $1
+ ld [rSC], a
+ ld a, $81
+ ld [rSC], a
+ call DelayFrame
+ xor a
+ ld [hSerialSend], a
+ ld a, $1
+ ld [rSC], a
+ ld a, $81
+ ld [rSC], a
+
+.asm_28091
+ ld de, $0000
+ call StartMusic
+ ld c, $3
+ call DelayFrames
+ xor a
+ ld [rIF], a
+ ld a, $8
+ ld [rIE], a
+ ld hl, $d1f3
+ ld de, EnemyMonSpecies
+ ld bc, $0011
+ call Function75f
+ ld a, $fe
+ ld [de], a
+ ld hl, OverworldMap
+ ld de, $d26b
+ ld bc, $01a8
+ call Function75f
+ ld a, $fe
+ ld [de], a
+ ld hl, EnemyMoveAnimation
+ ld de, PlayerSDefLevel
+ ld bc, $00c8
+ call Function75f
+ xor a
+ ld [rIF], a
+ ld a, $1d
+ ld [rIE], a
+ call Function287ab
+ ld hl, $d26b
+ call Function287ca
+ push hl
+ ld bc, $000b
+ add hl, bc
+ ld a, [hl]
+ pop hl
+ and a
+ jp z, Function28b22
+ cp $7
+ jp nc, Function28b22
+ ld de, OverworldMap
+ ld bc, $01a2
+ call Function2879e
+ ld de, PlayerSDefLevel
+ ld hl, $c813
+ ld c, $2
+.asm_280fe
+ ld a, [de]
+ inc de
+ and a
+ jr z, .asm_280fe
+ cp $fd
+ jr z, .asm_280fe
+ cp $fe
+ jr z, .asm_280fe
+ cp $ff
+ jr z, .asm_2811d
+ push hl
+ push bc
+ ld b, $0
+ dec a
+ ld c, a
+ add hl, bc
+ ld a, $fe
+ ld [hl], a
+ pop bc
+ pop hl
+ jr .asm_280fe
+
+.asm_2811d
+ ld hl, $c90f
+ dec c
+ jr nz, .asm_280fe
+ ld hl, OverworldMap
+ ld de, $d26b
+ ld bc, $000b
+ call CopyBytes
+ ld de, OTPartyCount
+ ld a, [hli]
+ ld [de], a
+ inc de
+.asm_28135
+ ld a, [hli]
+ cp $ff
+ jr z, .asm_2814e
+ ld [$d265], a
+ push hl
+ push de
+ callab Functionfb908
+ pop de
+ pop hl
+ ld a, [$d265]
+ ld [de], a
+ inc de
+ jr .asm_28135
+
+.asm_2814e
+ ld [de], a
+ ld hl, $c813
+ call Function2868a
+ ld a, $a8
+ ld [$d102], a
+ ld a, $d3
+ ld [$d103], a
+ ld de, $0000
+ call StartMusic
+ ld a, [$ffcb]
+ cp $2
+ ld c, $42
+ call z, DelayFrames
+ ld de, $002b
+ call StartMusic
+ jp Function287e3
+; 28177
+
+Function28177: ; 28177
+ call Function28426
+ call Function28595
+ call Function28434
+ call Function29dba
+ ld a, [ScriptVar]
+ and a
+ jp z, Function283b2
+ ld a, [$ffcb]
+ cp $2
+ jr nz, .asm_281ae
+ ld c, $3
+ call DelayFrames
+ xor a
+ ld [hSerialSend], a
+ ld a, $1
+ ld [rSC], a
+ ld a, $81
+ ld [rSC], a
+ call DelayFrame
+ xor a
+ ld [hSerialSend], a
+ ld a, $1
+ ld [rSC], a
+ ld a, $81
+ ld [rSC], a
+
+.asm_281ae
+ ld de, $0000
+ call StartMusic
+ ld c, $3
+ call DelayFrames
+ xor a
+ ld [rIF], a
+ ld a, $8
+ ld [rIE], a
+ ld hl, $d1f3
+ ld de, EnemyMonSpecies
+ ld bc, $0011
+ call Function75f
+ ld a, $fe
+ ld [de], a
+ ld hl, OverworldMap
+ ld de, $d26b
+ ld bc, $01c2
+ call Function75f
+ ld a, $fe
+ ld [de], a
+ ld hl, EnemyMoveAnimation
+ ld de, PlayerSDefLevel
+ ld bc, $00c8
+ call Function75f
+ ld a, [InLinkBattle]
+ cp $2
+ jr nz, .asm_281fd
+ ld hl, $c9f4
+ ld de, $cb84
+ ld bc, $0186
+ call Function283f2
+
+.asm_281fd
+ xor a
+ ld [rIF], a
+ ld a, $1d
+ ld [rIE], a
+ ld de, $0000
+ call StartMusic
+ call Function287ab
+ ld hl, $d26b
+ call Function287ca
+ ld de, OverworldMap
+ ld bc, $01b9
+ call Function2879e
+ ld de, PlayerSDefLevel
+ ld hl, $c813
+ ld c, $2
+.asm_28224
+ ld a, [de]
+ inc de
+ and a
+ jr z, .asm_28224
+ cp $fd
+ jr z, .asm_28224
+ cp $fe
+ jr z, .asm_28224
+ cp $ff
+ jr z, .asm_28243
+ push hl
+ push bc
+ ld b, $0
+ dec a
+ ld c, a
+ add hl, bc
+ ld a, $fe
+ ld [hl], a
+ pop bc
+ pop hl
+ jr .asm_28224
+
+.asm_28243
+ ld hl, $c90f
+ dec c
+ jr nz, .asm_28224
+ ld a, [InLinkBattle]
+ cp $2
+ jp nz, .asm_282fe
+ ld hl, $cb84
+.asm_28254
+ ld a, [hli]
+ cp $20
+ jr nz, .asm_28254
+.asm_28259
+ ld a, [hli]
+ cp $fe
+ jr z, .asm_28259
+ cp $20
+ jr z, .asm_28259
+ dec hl
+ ld de, $cb84
+ ld bc, $0190
+ call CopyBytes
+ ld hl, $cb84
+ ld bc, $00c6
+.asm_28272
+ ld a, [hl]
+ cp $21
+ jr nz, .asm_28279
+ ld [hl], $fe
+
+.asm_28279
+ inc hl
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_28272
+ ld de, $cc9e
+.asm_28282
+ ld a, [de]
+ inc de
+ cp $ff
+ jr z, .asm_28294
+ ld hl, $cc4a
+ dec a
+ ld b, $0
+ ld c, a
+ add hl, bc
+ ld [hl], $fe
+ jr .asm_28282
+
+.asm_28294
+ ld hl, $cb84
+ ld de, $c9f4
+ ld b, $6
+.asm_2829c
+ push bc
+ ld bc, $0021
+ call CopyBytes
+ ld a, $e
+ add e
+ ld e, a
+ ld a, $0
+ adc d
+ ld d, a
+ pop bc
+ dec b
+ jr nz, .asm_2829c
+ ld de, $c9f4
+ ld b, $6
+.asm_282b4
+ push bc
+ ld a, $21
+ add e
+ ld e, a
+ ld a, $0
+ adc d
+ ld d, a
+ ld bc, $000e
+ call CopyBytes
+ pop bc
+ dec b
+ jr nz, .asm_282b4
+ ld b, $6
+ ld de, $c9f4
+.asm_282cc
+ push bc
+ push de
+ callba Function1de5c8
+ ld a, c
+ or a
+ jr z, .asm_282ee
+ sub $3
+ jr nc, .asm_282e4
+ callba Function1df203
+ jr .asm_282ee
+
+.asm_282e4
+ cp $2
+ jr nc, .asm_282ee
+ callba Function1df220
+
+.asm_282ee
+ pop de
+ ld hl, $002f
+ add hl, de
+ ld d, h
+ ld e, l
+ pop bc
+ dec b
+ jr nz, .asm_282cc
+ ld de, $cb0e
+ xor a
+ ld [de], a
+
+.asm_282fe
+ ld hl, OverworldMap
+ ld de, $d26b
+ ld bc, $000b
+ call CopyBytes
+ ld de, OTPartyCount
+ ld bc, $0008
+ call CopyBytes
+ ld de, $d276
+ ld bc, $0002
+ call CopyBytes
+ ld de, OTPartyMon1Species
+ ld bc, $01a4
+ call CopyBytes
+ ld a, $a8
+ ld [$d102], a
+ ld a, $d3
+ ld [$d103], a
+ ld de, $0000
+ call StartMusic
+ ld a, [$ffcb]
+ cp $2
+ ld c, $42
+ call z, DelayFrames
+ ld a, [InLinkBattle]
+ cp $3
+ jr nz, .asm_283a9
+ ld a, $c
+ ld [OtherTrainerClass], a
+ call Functionfdb
+ callba Function4d354
+ ld hl, Options
+ ld a, [hl]
+ push af
+ and $20
+ or $3
+ ld [hl], a
+ ld hl, $d26b
+ ld de, $c656
+ ld bc, $000b
+ call CopyBytes
+ call Function222a
+ ld a, [$c2d7]
+ push af
+ ld a, $1
+ ld [$c2d7], a
+ ld a, [rIE]
+ push af
+ ld a, [rIF]
+ push af
+ xor a
+ ld [rIF], a
+ ld a, [rIE]
+ set 1, a
+ ld [rIE], a
+ pop af
+ ld [rIF], a
+ ld a, $16
+ call Predef
+ ld a, [rIF]
+ ld h, a
+ xor a
+ ld [rIF], a
+ pop af
+ ld [rIE], a
+ ld a, h
+ ld [rIF], a
+ pop af
+ ld [$c2d7], a
+ pop af
+ ld [Options], a
+ callba Function1500c
+ jp Function28b22
+
+.asm_283a9
+ ld de, $002b
+ call StartMusic
+ jp Function287e3
+; 283b2
+
+Function283b2: ; 283b2
+ ld de, $43ed
+ ld b, $a
+.asm_283b7
+ call DelayFrame
+ call Function908
+ dec b
+ jr nz, .asm_283b7
+ xor a
+ ld [hld], a
+ ld [hl], a
+ ld [$ff9e], a
+ push de
+ ld hl, $c590
+ ld b, $4
+ ld c, $12
+ push de
+ ld d, h
+ ld e, l
+ callba Function4d35b
+ pop de
+ pop hl
+ ld bc, $c5b9
+ call Function13e5
+ call Function4b6
+ call Functionfdb
+ ld b, $8
+ call GetSGBLayout
+ call Function3200
+ ret
+; 283ed
+
+INCBIN "baserom.gbc", $283ed, $283f2 - $283ed
+
+Function283f2: ; 283f2
+ ld a, $1
+ ld [$ffcc], a
+.asm_283f6
+ ld a, [hl]
+ ld [hSerialSend], a
+ call Function78a
+ push bc
+ ld b, a
+ inc hl
+ ld a, $30
+.asm_28401
+ dec a
+ jr nz, .asm_28401
+ ld a, [$ffcc]
+ and a
+ ld a, b
+ pop bc
+ jr z, .asm_28411
+ dec hl
+ xor a
+ ld [$ffcc], a
+ jr .asm_283f6
+
+.asm_28411
+ ld [de], a
+ inc de
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_283f6
+ ret
+; 28419
+
+INCBIN "baserom.gbc", $28419, $28426 - $28419
+
+Function28426: ; 28426
+ ld hl, OverworldMap
+ ld bc, $0514
+.asm_2842c
+ xor a
+ ld [hli], a
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_2842c
+ ret
+; 28434
+
+Function28434: ; 28434
+ ld hl, $d1f3
+ ld a, $fd
+ ld b, $7
+.asm_2843b
+ ld [hli], a
+ dec b
+ jr nz, .asm_2843b
+ ld b, $a
+.asm_28441
+ call Random
+ cp $fd
+ jr nc, .asm_28441
+ ld [hli], a
+ dec b
+ jr nz, .asm_28441
+ ld hl, EnemyMoveAnimation
+ ld a, $fd
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld b, $c8
+ xor a
+.asm_28457
+ ld [hli], a
+ dec b
+ jr nz, .asm_28457
+ ld hl, $c818
+ ld de, PlayerMoveType
+ ld bc, $0000
+.asm_28464
+ inc c
+ ld a, c
+ cp $fd
+ jr z, .asm_2848c
+ ld a, b
+ dec a
+ jr nz, .asm_2847f
+ push bc
+ ld a, [InLinkBattle]
+ cp $1
+ ld b, $d
+ jr z, .asm_2847a
+ ld b, $27
+
+.asm_2847a
+ ld a, c
+ cp b
+ pop bc
+ jr z, .asm_28495
+
+.asm_2847f
+ inc hl
+ ld a, [hl]
+ cp $fe
+ jr nz, .asm_28464
+ ld a, c
+ ld [de], a
+ inc de
+ ld [hl], $ff
+ jr .asm_28464
+
+.asm_2848c
+ ld a, $ff
+ ld [de], a
+ inc de
+ ld bc, Start
+ jr .asm_28464
+
+.asm_28495
+ ld a, $ff
+ ld [de], a
+ ret
+; 28499
+
+Function28499: ; 28499
+ ld de, OverworldMap
+ ld a, $fd
+ ld b, $6
+.asm_284a0
+ ld [de], a
+ inc de
+ dec b
+ jr nz, .asm_284a0
+ ld hl, PlayerName
+ ld bc, $000b
+ call CopyBytes
+ push de
+ ld hl, PartyCount
+ ld a, [hli]
+ ld [de], a
+ inc de
+.asm_284b5
+ ld a, [hli]
+ cp $ff
+ jr z, .asm_284ce
+ ld [$d265], a
+ push hl
+ push de
+ callab Functionfb8f1
+ pop de
+ pop hl
+ ld a, [$d265]
+ ld [de], a
+ inc de
+ jr .asm_284b5
+
+.asm_284ce
+ ld [de], a
+ pop de
+ ld hl, $0008
+ add hl, de
+ ld d, h
+ ld e, l
+ ld hl, PartyMon1Species
+ ld c, $6
+.asm_284db
+ push bc
+ call Function284f6
+ ld bc, $0030
+ add hl, bc
+ pop bc
+ dec c
+ jr nz, .asm_284db
+ ld hl, PartyMonOT
+ call .asm_284f0
+ ld hl, PartyMonNicknames
+.asm_284f0
+ ld bc, $0042
+ jp CopyBytes
+; 284f6
+
+Function284f6: ; 284f6
+ ld b, h
+ ld c, l
+ push de
+ push bc
+ ld a, [hl]
+ ld [$d265], a
+ callab Functionfb8f1
+ pop bc
+ pop de
+ ld a, [$d265]
+ ld [de], a
+ inc de
+ ld hl, $0022
+ add hl, bc
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ ld [de], a
+ inc de
+ xor a
+ ld [de], a
+ inc de
+ ld hl, $0020
+ add hl, bc
+ ld a, [hl]
+ ld [de], a
+ inc de
+ ld a, [bc]
+ cp $51
+ jr z, .asm_28528
+ cp $52
+ jr nz, .asm_28530
+
+.asm_28528
+ ld a, $17
+ ld [de], a
+ inc de
+ ld [de], a
+ inc de
+ jr .asm_28544
+
+.asm_28530
+ push bc
+ dec a
+ ld hl, $542b
+ ld bc, $0020
+ call AddNTimes
+ ld bc, $0002
+ ld a, $14
+ call FarCopyBytes
+ pop bc
+
+.asm_28544
+ push bc
+ ld hl, $0001
+ add hl, bc
+ ld bc, $001a
+ call CopyBytes
+ pop bc
+ ld hl, $001f
+ add hl, bc
+ ld a, [hl]
+ ld [de], a
+ ld [CurPartyLevel], a
+ inc de
+ push bc
+ ld hl, $0024
+ add hl, bc
+ ld bc, $0008
+ call CopyBytes
+ pop bc
+ push de
+ push bc
+ ld a, [bc]
+ dec a
+ push bc
+ ld b, $0
+ ld c, a
+ ld hl, $7656
+ add hl, bc
+ ld a, $3e
+ call GetFarByte
+ ld [BaseSpecialAttack], a
+ pop bc
+ ld hl, $000a
+ add hl, bc
+ ld c, $5
+ ld b, $1
+ ld a, $d
+ call Predef
+ pop bc
+ pop de
+ ld a, [$ffb5]
+ ld [de], a
+ inc de
+ ld a, [$ffb6]
+ ld [de], a
+ inc de
+ ld h, b
+ ld l, c
+ ret
+; 28595
+
+Function28595: ; 28595
+ ld de, OverworldMap
+ ld a, $fd
+ ld b, $6
+.asm_2859c
+ ld [de], a
+ inc de
+ dec b
+ jr nz, .asm_2859c
+ ld hl, PlayerName
+ ld bc, $000b
+ call CopyBytes
+ ld hl, PartyCount
+ ld bc, $0008
+ call CopyBytes
+ ld hl, PlayerID
+ ld bc, $0002
+ call CopyBytes
+ ld hl, PartyMon1Species
+ ld bc, $0120
+ call CopyBytes
+ ld hl, PartyMon1OT
+ ld bc, $0042
+ call CopyBytes
+ ld hl, PartyMon1Nickname
+ ld bc, $0042
+ call CopyBytes
+ ld a, [InLinkBattle]
+ cp $2
+ ret nz
+ ld de, $c9f4
+ ld a, $20
+ call Function28682
+ ld a, $0
+ call GetSRAMBank
+ ld hl, $a600
+ ld b, $6
+.asm_285ef
+ push bc
+ ld bc, $0021
+ call CopyBytes
+ ld bc, $000e
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .asm_285ef
+ ld hl, $a600
+ ld b, $6
+.asm_28603
+ push bc
+ ld bc, $0021
+ add hl, bc
+ ld bc, $000e
+ call CopyBytes
+ pop bc
+ dec b
+ jr nz, .asm_28603
+ ld b, $6
+ ld de, $a600
+ ld hl, $c9f9
+.asm_2861a
+ push bc
+ push hl
+ push de
+ push hl
+ callba Function1de5c8
+ pop de
+ ld a, c
+ or a
+ jr z, .asm_2863f
+ sub $3
+ jr nc, .asm_28635
+ callba Function1df1e6
+ jr .asm_2863f
+
+.asm_28635
+ cp $2
+ jr nc, .asm_2863f
+ callba Function1df220
+
+.asm_2863f
+ pop de
+ ld hl, $002f
+ add hl, de
+ ld d, h
+ ld e, l
+ pop hl
+ ld bc, $0021
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .asm_2861a
+ call CloseSRAM
+ ld hl, $c9f9
+ ld bc, $00c6
+.asm_28658
+ ld a, [hl]
+ cp $fe
+ jr nz, .asm_2865f
+ ld [hl], $21
+
+.asm_2865f
+ inc hl
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_28658
+ ld hl, $cabf
+ ld de, $cb13
+ ld b, $54
+ ld c, $0
+.asm_2866f
+ inc c
+ ld a, [hl]
+ cp $fe
+ jr nz, .asm_2867a
+ ld [hl], $ff
+ ld a, c
+ ld [de], a
+ inc de
+
+.asm_2867a
+ inc hl
+ dec b
+ jr nz, .asm_2866f
+ ld a, $ff
+ ld [de], a
+ ret
+; 28682
+
+Function28682: ; 28682
+ ld c, $5
+.asm_28684
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .asm_28684
+ ret
+; 2868a
+
+Function2868a: ; 2868a
+ push hl
+ ld d, h
+ ld e, l
+ ld bc, $cbea
+ ld hl, $cbe8
+ ld a, c
+ ld [hli], a
+ ld [hl], b
+ ld hl, OTPartyMon1Species
+ ld c, $6
+.asm_2869b
+ push bc
+ call Function286ba
+ pop bc
+ dec c
+ jr nz, .asm_2869b
+ pop hl
+ ld bc, $0108
+ add hl, bc
+ ld de, OTPartyMon1OT
+ ld bc, $0042
+ call CopyBytes
+ ld de, OTPartyMon1Nickname
+ ld bc, $0042
+ jp CopyBytes
+; 286ba
+
+Function286ba: ; 286ba
+ ld b, h
+ ld c, l
+ ld a, [de]
+ inc de
+ push bc
+ push de
+ ld [$d265], a
+ callab Functionfb908
+ pop de
+ pop bc
+ ld a, [$d265]
+ ld [bc], a
+ ld [CurSpecies], a
+ ld hl, $0022
+ add hl, bc
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ inc de
+ ld [hl], a
+ inc de
+ ld hl, $0020
+ add hl, bc
+ ld a, [de]
+ inc de
+ ld [hl], a
+ ld hl, $cbe8
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, l
+ ld [$cbe8], a
+ ld a, h
+ ld [$cbe9], a
+ push bc
+ ld hl, $0001
+ add hl, bc
+ push hl
+ ld h, d
+ ld l, e
+ pop de
+ push bc
+ ld a, [hli]
+ ld b, a
+ call Function28771
+ ld a, b
+ ld [de], a
+ inc de
+ pop bc
+ ld bc, $0019
+ call CopyBytes
+ pop bc
+ ld d, h
+ ld e, l
+ ld hl, $001f
+ add hl, bc
+ ld a, [de]
+ inc de
+ ld [hl], a
+ ld [CurPartyLevel], a
+ push bc
+ ld hl, $0024
+ add hl, bc
+ push hl
+ ld h, d
+ ld l, e
+ pop de
+ ld bc, $0008
+ call CopyBytes
+ pop bc
+ call GetBaseData
+ push de
+ push bc
+ ld d, h
+ ld e, l
+ ld hl, $000a
+ add hl, bc
+ ld c, $5
+ ld b, $1
+ ld a, $d
+ call Predef
+ pop bc
+ pop hl
+ ld a, [$ffb5]
+ ld [hli], a
+ ld a, [$ffb6]
+ ld [hli], a
+ push hl
+ push bc
+ ld hl, $000a
+ add hl, bc
+ ld c, $6
+ ld b, $1
+ ld a, $d
+ call Predef
+ pop bc
+ pop hl
+ ld a, [$ffb5]
+ ld [hli], a
+ ld a, [$ffb6]
+ ld [hli], a
+ push hl
+ ld hl, $001b
+ add hl, bc
+ ld a, $46
+ ld [hli], a
+ xor a
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+ pop hl
+ inc de
+ inc de
+ ret
+; 28771
+
+Function28771: ; 28771
+ ld a, b
+ and a
+ ret z
+ push hl
+ ld hl, $4785
+.asm_28778
+ ld a, [hli]
+ and a
+ jr z, .asm_28783
+ cp b
+ jr z, .asm_28782
+ inc hl
+ jr .asm_28778
+
+.asm_28782
+ ld b, [hl]
+
+.asm_28783
+ pop hl
+ ret
+; 28785
+
+INCBIN "baserom.gbc", $28785, $2879e - $28785
+
+Function2879e: ; 2879e
+.asm_2879e
+ ld a, [hli]
+ cp $fe
+ jr z, .asm_2879e
+ ld [de], a
+ inc de
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_2879e
+ ret
+; 287ab
+
+Function287ab: ; 287ab
+ ld a, [$ffcb]
+ cp $2
+ ret z
+ ld hl, EnemyMonSpecies
+ call Function287d8
+ ld de, LinkBattleRNs
+ ld c, $a
+.asm_287bb
+ ld a, [hli]
+ cp $fe
+ jr z, .asm_287bb
+ cp $fd
+ jr z, .asm_287bb
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .asm_287bb
+ ret
+; 287ca
+
+Function287ca: ; 287ca
+.asm_287ca
+ ld a, [hli]
+ and a
+ jr z, .asm_287ca
+ cp $fd
+ jr z, .asm_287ca
+ cp $fe
+ jr z, .asm_287ca
+ dec hl
+ ret
+; 287d8
+
+Function287d8: ; 287d8
+.asm_287d8
+ ld a, [hli]
+ cp $fd
+ jr z, .asm_287d8
+ cp $fe
+ jr z, .asm_287d8
+ dec hl
+ ret
+; 287e3
+
+Function287e3: ; 287e3
+ call Functionfdb
+ call Function28ef8
+ callba Function16d673
+ xor a
+ ld hl, $cf51
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+ ld a, $1
+ ld [$cfa9], a
+ inc a
+ ld [$cf56], a
+ jp Function2888b
+; 28803
+
+Function28803: ; 28803
+ ld a, $1
+ ld [MonType], a
+ ld a, $c1
+ ld [$cfa8], a
+ ld a, [OTPartyCount]
+ ld [$cfa3], a
+ ld a, $1
+ ld [$cfa4], a
+ ld a, $9
+ ld [$cfa1], a
+ ld a, $6
+ ld [$cfa2], a
+ ld a, $1
+ ld [$cfaa], a
+ ld a, $10
+ ld [$cfa7], a
+ ld a, $20
+ ld [$cfa5], a
+ xor a
+ ld [$cfa6], a
+
+Function28835: ; 28835
+ callba Function16d70c
+ ld a, d
+ and a
+ jp z, Function2891c
+ bit 0, a
+ jr z, .asm_2885b
+ ld a, $1
+ ld [$d263], a
+ callab Function50db9
+ ld hl, OTPartyMon1Species
+ callba Function4d319
+ jp Function2891c
+
+.asm_2885b
+ bit 6, a
+ jr z, .asm_28883
+ ld a, [$cfa9]
+ ld b, a
+ ld a, [OTPartyCount]
+ cp b
+ jp nz, Function2891c
+ xor a
+ ld [MonType], a
+ call Function1bf7
+ push hl
+ push bc
+ ld bc, $000b
+ add hl, bc
+ ld [hl], $7f
+ pop bc
+ pop hl
+ ld a, [PartyCount]
+ ld [$cfa9], a
+ jr Function2888b
+
+.asm_28883
+ bit 7, a
+ jp z, Function2891c
+ jp Function28ac9
+; 2888b
+
+Function2888b: ; 2888b
+ callba Function49856
+ xor a
+ ld [MonType], a
+ ld a, $c1
+ ld [$cfa8], a
+ ld a, [PartyCount]
+ ld [$cfa3], a
+ ld a, $1
+ ld [$cfa4], a
+ ld a, $1
+ ld [$cfa1], a
+ ld a, $6
+ ld [$cfa2], a
+ ld a, $1
+ ld [$cfaa], a
+ ld a, $10
+ ld [$cfa7], a
+ ld a, $20
+ ld [$cfa5], a
+ xor a
+ ld [$cfa6], a
+ call Function3200
+
+Function288c5: ; 288c5
+ callba Function16d70c
+ ld a, d
+ and a
+ jr nz, .asm_288d2
+ jp Function2891c
+
+.asm_288d2
+ bit 0, a
+ jr z, .asm_288d9
+ jp Function28926
+
+.asm_288d9
+ bit 7, a
+ jr z, .asm_288fe
+ ld a, [$cfa9]
+ dec a
+ jp nz, Function2891c
+ ld a, $1
+ ld [MonType], a
+ call Function1bf7
+ push hl
+ push bc
+ ld bc, $000b
+ add hl, bc
+ ld [hl], $7f
+ pop bc
+ pop hl
+ ld a, $1
+ ld [$cfa9], a
+ jp Function28803
+
+.asm_288fe
+ bit 6, a
+ jr z, Function2891c
+ ld a, [$cfa9]
+ ld b, a
+ ld a, [PartyCount]
+ cp b
+ jr nz, Function2891c
+ call Function1bf7
+ push hl
+ push bc
+ ld bc, $000b
+ add hl, bc
+ ld [hl], $7f
+ pop bc
+ pop hl
+ jp Function28ade
+; 2891c
+
+Function2891c: ; 2891c
+ ld a, [MonType]
+ and a
+ jp z, Function288c5
+ jp Function28835
+; 28926
+
+Function28926: ; 28926
+ call Function309d
+ ld a, [$cfa9]
+ push af
+ ld hl, $c5cc
+ ld b, $1
+ ld c, $12
+ call Function28eef
+ ld hl, $c5e2
+ ld de, $4ab4
+ call PlaceString
+ callba Function4d354
+
+.asm_28946
+ ld a, $7f
+ ld [$c5eb], a
+ ld a, $13
+ ld [$cfa8], a
+ ld a, $1
+ ld [$cfa3], a
+ ld a, $1
+ ld [$cfa4], a
+ ld a, $10
+ ld [$cfa1], a
+ ld a, $1
+ ld [$cfa2], a
+ ld a, $1
+ ld [$cfa9], a
+ ld [$cfaa], a
+ ld a, $20
+ ld [$cfa7], a
+ xor a
+ ld [$cfa5], a
+ ld [$cfa6], a
+ call Function1bd3
+ bit 4, a
+ jr nz, .asm_2898d
+ bit 1, a
+ jr z, .asm_289cd
+.asm_28983
+ pop af
+ ld [$cfa9], a
+ call Function30b4
+ jp Function2888b
+
+.asm_2898d
+ ld a, $7f
+ ld [$c5e1], a
+ ld a, $23
+ ld [$cfa8], a
+ ld a, $1
+ ld [$cfa3], a
+ ld a, $1
+ ld [$cfa4], a
+ ld a, $10
+ ld [$cfa1], a
+ ld a, $b
+ ld [$cfa2], a
+ ld a, $1
+ ld [$cfa9], a
+ ld [$cfaa], a
+ ld a, $20
+ ld [$cfa7], a
+ xor a
+ ld [$cfa5], a
+ ld [$cfa6], a
+ call Function1bd3
+ bit 5, a
+ jp nz, .asm_28946
+ bit 1, a
+ jr nz, .asm_28983
+ jr .asm_289fe
+
+.asm_289cd
+ pop af
+ ld [$cfa9], a
+ ld a, $4
+ ld [$d263], a
+ callab Function50db9
+ callba Function4d319
+ call Function30b4
+ ld hl, $c4ba
+ ld bc, $0601
+ ld a, $7f
+ call Function28b77
+ ld hl, $c4c5
+ ld bc, $0601
+ ld a, $7f
+ call Function28b77
+ jp Function2888b
+
+.asm_289fe
+ call Function1bee
+ pop af
+ ld [$cfa9], a
+ dec a
+ ld [DefaultFlypoint], a
+ ld [$cf56], a
+ callba Function16d6ce
+ ld a, [$cf51]
+ cp $f
+ jp z, Function287e3
+ ld [$d003], a
+ call Function28b68
+ ld c, $64
+ call DelayFrames
+ callba Functionfb57e
+ jr c, .asm_28a58
+ callba Functionfb5dd
+ jp nc, Function28b87
+ xor a
+ ld [$cf57], a
+ ld [$cf52], a
+ ld hl, $c590
+ ld b, $4
+ ld c, $12
+ call Function28eef
+ callba Function4d354
+ ld hl, $4aaf
+ ld bc, $c5b9
+ call Function13e5
+ jr .asm_28a89
+
+.asm_28a58
+ xor a
+ ld [$cf57], a
+ ld [$cf52], a
+ ld a, [$d003]
+ ld hl, OTPartySpecies
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ ld [$d265], a
+ call GetPokemonName
+ ld hl, $c590
+ ld b, $4
+ ld c, $12
+ call Function28eef
+ callba Function4d354
+ ld hl, $4ac4
+ ld bc, $c5b9
+ call Function13e5
+
+.asm_28a89
+ ld hl, $c590
+ ld b, $4
+ ld c, $12
+ call Function28eef
+ ld hl, $c5b9
+ ld de, $4ece
+ call PlaceString
+ ld a, $1
+ ld [$cf56], a
+ callba Function16d6ce
+ ld c, $64
+ call DelayFrames
+ jp Function287e3
+; 28aaf
+
+INCBIN "baserom.gbc", $28aaf, $28ac9 - $28aaf
+
+Function28ac9: ; 28ac9
+ ld a, [$cfa9]
+ cp $1
+ jp nz, Function2891c
+ call Function1bf7
+ push hl
+ push bc
+ ld bc, $000b
+ add hl, bc
+ ld [hl], $7f
+ pop bc
+ pop hl
+
+Function28ade: ; 28ade
+.asm_28ade
+ ld a, $ed
+ ld [$c5fd], a
+.asm_28ae3
+ call Functiona57
+ ld a, [$ffa9]
+ and a
+ jr z, .asm_28ae3
+ bit 0, a
+ jr nz, .asm_28b0b
+ push af
+ ld a, $7f
+ ld [$c5fd], a
+ pop af
+ bit 6, a
+ jr z, .asm_28b03
+ ld a, [OTPartyCount]
+ ld [$cfa9], a
+ jp Function28803
+
+.asm_28b03
+ ld a, $1
+ ld [$cfa9], a
+ jp Function2888b
+
+.asm_28b0b
+ ld a, $ec
+ ld [$c5fd], a
+ ld a, $f
+ ld [$cf56], a
+ callba Function16d6ce
+ ld a, [$cf51]
+ cp $f
+ jr nz, .asm_28ade
+
+Function28b22: ; 28b22
+ call Function4b6
+ call Functionfdb
+ ld b, $8
+ call GetSGBLayout
+ call Function3200
+ xor a
+ ld [$cfbb], a
+ xor a
+ ld [rSB], a
+ ld [hSerialSend], a
+ ld a, $1
+ ld [rSC], a
+ ld a, $81
+ ld [rSC], a
+ ret
+; 28b42
+
+INCBIN "baserom.gbc", $28b42, $28b68 - $28b42
+
+Function28b68: ; 28b68
+ ld a, [$cf51]
+ ld hl, $c55a
+ ld bc, $0014
+ call AddNTimes
+ ld [hl], $ec
+ ret
+; 28b77
+
+Function28b77: ; 28b77
+.asm_28b77
+ push bc
+ push hl
+.asm_28b79
+ ld [hli], a
+ dec c
+ jr nz, .asm_28b79
+ pop hl
+ ld bc, $0014
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .asm_28b77
+ ret
+; 28b87
+
+Function28b87: ; 28b87
+ xor a
+ ld [$cf57], a
+ ld [$cf52], a
+ ld hl, $c590
+ ld b, $4
+ ld c, $12
+ call Function28eef
+ callba Function4d354
+ ld a, [DefaultFlypoint]
+ ld hl, PartySpecies
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ ld [$d265], a
+ call GetPokemonName
+ ld hl, StringBuffer1
+ ld de, $d004
+ ld bc, $000b
+ call CopyBytes
+ ld a, [$d003]
+ ld hl, OTPartySpecies
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ ld [$d265], a
+ call GetPokemonName
+ ld hl, $4eb8
+ ld bc, $c5b9
+ call Function13e5
+ call Function1d6e
+ ld hl, $c536
+ ld b, $3
+ ld c, $7
+ call Function28eef
+ ld de, $4eab
+ ld hl, $c54c
+ call PlaceString
+ ld a, $8
+ ld [$cfa1], a
+ ld a, $b
+ ld [$cfa2], a
+ ld a, $1
+ ld [$cfa4], a
+ ld a, $2
+ ld [$cfa3], a
+ xor a
+ ld [$cfa5], a
+ ld [$cfa6], a
+ ld a, $20
+ ld [$cfa7], a
+ ld a, $3
+ ld [$cfa8], a
+ ld a, $1
+ ld [$cfa9], a
+ ld [$cfaa], a
+ callba Function4d354
+ call Function1bd3
+ push af
+ call Function1d7d
+ call Function3200
+ pop af
+ bit 1, a
+ jr nz, .asm_28c33
+ ld a, [$cfa9]
+ dec a
+ jr z, .asm_28c54
+
+.asm_28c33
+ ld a, $1
+ ld [$cf56], a
+ ld hl, $c590
+ ld b, $4
+ ld c, $12
+ call Function28eef
+ ld hl, $c5b9
+ ld de, $4ece
+ call PlaceString
+ callba Function16d6ce
+ jp Function28ea3
+
+.asm_28c54
+ ld a, $2
+ ld [$cf56], a
+ callba Function16d6ce
+ ld a, [$cf51]
+ dec a
+ jr nz, .asm_28c7b
+ ld hl, $c590
+ ld b, $4
+ ld c, $12
+ call Function28eef
+ ld hl, $c5b9
+ ld de, $4ece
+ call PlaceString
+ jp Function28ea3
+
+.asm_28c7b
+ ld hl, $a600
+ ld a, [DefaultFlypoint]
+ ld bc, $002f
+ call AddNTimes
+ ld a, $0
+ call GetSRAMBank
+ ld d, h
+ ld e, l
+ ld bc, $002f
+ add hl, bc
+ ld a, [DefaultFlypoint]
+ ld c, a
+.asm_28c96
+ inc c
+ ld a, c
+ cp $6
+ jr z, .asm_28ca6
+ push bc
+ ld bc, $002f
+ call CopyBytes
+ pop bc
+ jr .asm_28c96
+
+.asm_28ca6
+ ld hl, $a600
+ ld a, [PartyCount]
+ dec a
+ ld bc, $002f
+ call AddNTimes
+ push hl
+ ld hl, $c9f4
+ ld a, [$d003]
+ ld bc, $002f
+ call AddNTimes
+ pop de
+ ld bc, $002f
+ call CopyBytes
+ call CloseSRAM
+ ld hl, PlayerName
+ ld de, $c6e7
+ ld bc, $000b
+ call CopyBytes
+ ld a, [DefaultFlypoint]
+ ld hl, PartySpecies
+ ld b, $0
+ ld c, a
+ add hl, bc
+ ld a, [hl]
+ ld [PlayerSDefLevel], a
+ push af
+ ld a, [DefaultFlypoint]
+ ld hl, PartyMon1OT
+ call SkipNames
+ ld de, $c6f2
+ ld bc, $000b
+ call CopyBytes
+ ld hl, PartyMon1ID
+ ld a, [DefaultFlypoint]
+ call GetPartyLocation
+ ld a, [hli]
+ ld [PlayerScreens], a
+ ld a, [hl]
+ ld [EnemyScreens], a
+ ld hl, PartyMon1DVs
+ ld a, [DefaultFlypoint]
+ call GetPartyLocation
+ ld a, [hli]
+ ld [$c6fd], a
+ ld a, [hl]
+ ld [$c6fe], a
+ ld a, [DefaultFlypoint]
+ ld hl, PartyMon1Species
+ call GetPartyLocation
+ ld b, h
+ ld c, l
+ callba Function4f301
+ ld a, c
+ ld [$c701], a
+ ld hl, $d26b
+ ld de, $c719
+ ld bc, $000b
+ call CopyBytes
+ ld a, [$d003]
+ ld hl, OTPartySpecies
+ ld b, $0
+ ld c, a
+ add hl, bc
+ ld a, [hl]
+ ld [PlayerLightScreenCount], a
+ ld a, [$d003]
+ ld hl, OTPartyMon1OT
+ call SkipNames
+ ld de, $c724
+ ld bc, $000b
+ call CopyBytes
+ ld hl, OTPartyMon1ID
+ ld a, [$d003]
+ call GetPartyLocation
+ ld a, [hli]
+ ld [$c731], a
+ ld a, [hl]
+ ld [$c732], a
+ ld hl, OTPartyMon1AtkDefDV
+ ld a, [$d003]
+ call GetPartyLocation
+ ld a, [hli]
+ ld [$c72f], a
+ ld a, [hl]
+ ld [$c730], a
+ ld a, [$d003]
+ ld hl, OTPartyMon1Species
+ call GetPartyLocation
+ ld b, h
+ ld c, l
+ callba Function4f301
+ ld a, c
+ ld [$c733], a
+ ld a, [DefaultFlypoint]
+ ld [CurPartyMon], a
+ ld hl, PartySpecies
+ ld b, $0
+ ld c, a
+ add hl, bc
+ ld a, [hl]
+ ld [DefaultFlypoint], a
+ xor a
+ ld [$d10b], a
+ callab Functione039
+ ld a, [PartyCount]
+ dec a
+ ld [CurPartyMon], a
+ ld a, $1
+ ld [$d1e9], a
+ ld a, [$d003]
+ push af
+ ld hl, OTPartySpecies
+ ld b, $0
+ ld c, a
+ add hl, bc
+ ld a, [hl]
+ ld [$d003], a
+ ld c, $64
+ call DelayFrames
+ call ClearTileMap
+ call Functione58
+ ld b, $8
+ call GetSGBLayout
+ ld a, [$ffcb]
+ cp $1
+ jr z, .asm_28de4
+ ld a, $1e
+ call Predef
+ jr .asm_28de9
+
+.asm_28de4
+ ld a, $1d
+ call Predef
+
+.asm_28de9
+ pop af
+ ld c, a
+ ld [CurPartyMon], a
+ ld hl, OTPartySpecies
+ ld d, $0
+ ld e, a
+ add hl, de
+ ld a, [hl]
+ ld [CurPartySpecies], a
+ ld hl, OTPartyMon1Species
+ ld a, c
+ call GetPartyLocation
+ ld de, TempMonSpecies
+ ld bc, $0030
+ call CopyBytes
+ ld a, $7
+ call Predef
+ ld a, [PartyCount]
+ dec a
+ ld [CurPartyMon], a
+ callab Function421d8
+ call Functionfdb
+ call Function28ef8
+ call Function28eff
+ callba Function4d354
+ ld b, $1
+ pop af
+ ld c, a
+ cp $97
+ jr z, .asm_28e49
+ ld a, [CurPartySpecies]
+ cp $97
+ jr z, .asm_28e49
+ ld b, $2
+ ld a, c
+ cp $fb
+ jr z, .asm_28e49
+ ld a, [CurPartySpecies]
+ cp $fb
+ jr z, .asm_28e49
+ ld b, $0
+
+.asm_28e49
+ ld a, b
+ ld [$cf56], a
+ push bc
+ call Function862
+ pop bc
+ ld a, [InLinkBattle]
+ cp $1
+ jr z, .asm_28e63
+ ld a, b
+ and a
+ jr z, .asm_28e63
+ ld a, [$cf52]
+ cp b
+ jr nz, .asm_28e49
+
+.asm_28e63
+ callba Function14a58
+ callba Function1060af
+ callba Function106187
+ ld c, $28
+ call DelayFrames
+ ld hl, $c590
+ ld b, $4
+ ld c, $12
+ call Function28eef
+ ld hl, $c5b9
+ ld de, $4ebd
+ call PlaceString
+ callba Function4d354
+ ld c, $32
+ call DelayFrames
+ ld a, [InLinkBattle]
+ cp $1
+ jp z, Function2805d
+ jp Function28177
+; 28ea3
+
+Function28ea3: ; 28ea3
+ ld c, $64
+ call DelayFrames
+ jp Function287e3
+; 28eab
+
+INCBIN "baserom.gbc", $28eab, $28eef - $28eab
+
+Function28eef: ; 28eef
+ ld d, h
+ ld e, l
+ callba Function16d6ca
+ ret
+; 28ef8
+
+Function28ef8: ; 28ef8
+ callba Function16d696
+ ret
+; 28eff
+
+Function28eff: ; 28eff
+ callba Function16d6a7
+ call Function32f9
+ ret
+; 28f09
+
+INCBIN "baserom.gbc", $28f09, $29bfb - $28f09
+
+Function29bfb: ; 29bfb
+ ld hl, PartySpecies
+ ld b, $6
+.asm_29c00
+ ld a, [hli]
+ cp $ff
+ jr z, .asm_29c0c
+ cp $98
+ jr nc, .asm_29c42
+ dec b
+ jr nz, .asm_29c00
+
+.asm_29c0c
+ ld a, [PartyCount]
+ ld b, a
+ ld hl, PartyMon1Item
+.asm_29c13
+ push hl
+ push bc
+ ld d, [hl]
+ callba Functionb9e76
+ pop bc
+ pop hl
+ jr c, .asm_29c5e
+ ld de, $0030
+ add hl, de
+ dec b
+ jr nz, .asm_29c13
+ ld hl, PartyMon1Move1
+ ld a, [PartyCount]
+ ld b, a
+.asm_29c2e
+ ld c, $4
+.asm_29c30
+ ld a, [hli]
+ cp $a6
+ jr nc, .asm_29c4c
+ dec c
+ jr nz, .asm_29c30
+ ld de, $002c
+ add hl, de
+ dec b
+ jr nz, .asm_29c2e
+ xor a
+ jr .asm_29c63
+
+.asm_29c42
+ ld [$d265], a
+ call GetPokemonName
+ ld a, $1
+ jr .asm_29c63
+
+.asm_29c4c
+ push bc
+ ld [$d265], a
+ call GetMoveName
+ call CopyName1
+ pop bc
+ call Function29c67
+ ld a, $2
+ jr .asm_29c63
+
+.asm_29c5e
+ call Function29c67
+ ld a, $3
+
+.asm_29c63
+ ld [ScriptVar], a
+ ret
+; 29c67
+
+Function29c67: ; 29c67
+ ld a, [PartyCount]
+ sub b
+ ld c, a
+ inc c
+ ld b, $0
+ ld hl, PartyCount
+ add hl, bc
+ ld a, [hl]
+ ld [$d265], a
+ call GetPokemonName
+ ret
+; 29c7b
+
+Function29c7b: ; 29c7b
+ ld c, $a
+ call DelayFrames
+ ld a, $4
+ call Function29f17
+ ld c, $28
+ call DelayFrames
+ xor a
+ ld [$ff9e], a
+ inc a
+ ld [InLinkBattle], a
+ ret
+; 29c92
+
+Function29c92: ; 29c92
+ ld c, $3
+ call DelayFrames
+ ld a, $ff
+ ld [$ffcb], a
+ xor a
+ ld [rSB], a
+ ld [hSerialReceive], a
+ ld a, $1
+ ld [rSC], a
+ ld a, $81
+ ld [rSC], a
+ ld c, $3
+ call DelayFrames
+ xor a
+ ld [rSB], a
+ ld [hSerialReceive], a
+ ld a, $0
+ ld [rSC], a
+ ld a, $80
+ ld [rSC], a
+ ld c, $3
+ call DelayFrames
+ xor a
+ ld [rSB], a
+ ld [hSerialReceive], a
+ ld [rSC], a
+ ld c, $3
+ call DelayFrames
+ ld a, $ff
+ ld [$ffcb], a
+ ld a, [rIF]
+ push af
+ xor a
+ ld [rIF], a
+ ld a, $f
+ ld [rIE], a
+ pop af
+ ld [rIF], a
+ ld hl, $cf5b
+ xor a
+ ld [hli], a
+ ld [hl], a
+ ld [$ff9e], a
+ ld [InLinkBattle], a
+ ret
+; 29ce8
+
+Function29ce8: ; 29ce8
+ ld a, $1
+ ld [$cf56], a
+ ld [$d265], a
+ ret
+; 29cf1
+
+Function29cf1: ; 29cf1
+ ld a, $2
+ ld [$cf56], a
+ ld [$d265], a
+ ret
+; 29cfa
+
+Function29cfa: ; 29cfa
+ ld a, $2
+ ld [rSB], a
+ xor a
+ ld [hSerialReceive], a
+ ld a, $0
+ ld [rSC], a
+ ld a, $80
+ ld [rSC], a
+ xor a
+ ld [$cf56], a
+ ld [$d265], a
+ ret
+; 29d11
+
+Function29d11: ; 29d11
+ ld a, [$cf56]
+ and a
+ jr z, .asm_29d2f
+ ld a, $2
+ ld [rSB], a
+ xor a
+ ld [hSerialReceive], a
+ ld a, $0
+ ld [rSC], a
+ ld a, $80
+ ld [rSC], a
+ call DelayFrame
+ call DelayFrame
+ call DelayFrame
+
+.asm_29d2f
+ ld a, $2
+ ld [$cf5c], a
+ ld a, $ff
+ ld [$cf5b], a
+.asm_29d39
+ ld a, [$ffcb]
+ cp $2
+ jr z, .asm_29d79
+ cp $1
+ jr z, .asm_29d79
+ ld a, $ff
+ ld [$ffcb], a
+ ld a, $2
+ ld [rSB], a
+ xor a
+ ld [hSerialReceive], a
+ ld a, $0
+ ld [rSC], a
+ ld a, $80
+ ld [rSC], a
+ ld a, [$cf5b]
+ dec a
+ ld [$cf5b], a
+ jr nz, .asm_29d68
+ ld a, [$cf5c]
+ dec a
+ ld [$cf5c], a
+ jr z, .asm_29d8d
+
+.asm_29d68
+ ld a, $1
+ ld [rSB], a
+ ld a, $1
+ ld [rSC], a
+ ld a, $81
+ ld [rSC], a
+ call DelayFrame
+ jr .asm_29d39
+
+.asm_29d79
+ call Function908
+ call DelayFrame
+ call Function908
+ ld c, $32
+ call DelayFrames
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+
+.asm_29d8d
+ xor a
+ ld [ScriptVar], a
+ ret
+; 29d92
+
+Function29d92: ; 29d92
+ ld a, $1
+ ld [$cf56], a
+ ld hl, $cf5b
+ ld a, $3
+ ld [hli], a
+ xor a
+ ld [hl], a
+ call WaitBGMap
+ ld a, $2
+ ld [$ff9e], a
+ call DelayFrame
+ call DelayFrame
+ call Function29e0c
+ xor a
+ ld [$ff9e], a
+ ld a, [ScriptVar]
+ and a
+ ret nz
+ jp Function29f04
+; 29dba
+
+Function29dba: ; 29dba
+ ld a, $5
+ ld [$cf56], a
+ ld hl, $cf5b
+ ld a, $3
+ ld [hli], a
+ xor a
+ ld [hl], a
+ call WaitBGMap
+ ld a, $2
+ ld [$ff9e], a
+ call DelayFrame
+ call DelayFrame
+ call Function29e0c
+ ld a, [ScriptVar]
+ and a
+ jr z, .asm_29e08
+ ld bc, rIE
+.asm_29de0
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_29de0
+ ld a, [$cf51]
+ cp $5
+ jr nz, .asm_29e03
+ ld a, $6
+ ld [$cf56], a
+ ld hl, $cf5b
+ ld a, $1
+ ld [hli], a
+ ld [hl], $32
+ call Function29e0c
+ ld a, [$cf51]
+ cp $6
+ jr z, .asm_29e08
+
+.asm_29e03
+ xor a
+ ld [ScriptVar], a
+ ret
+
+.asm_29e08
+ xor a
+ ld [$ff9e], a
+ ret
+; 29e0c
+
+Function29e0c: ; 29e0c
+ xor a
+ ld [$ffca], a
+ ld a, [$cf5b]
+ ld h, a
+ ld a, [$cf5c]
+ ld l, a
+ push hl
+ call Function29e3b
+ pop hl
+ jr nz, .asm_29e2f
+ call Function29e47
+ call Function29e53
+ call Function29e3b
+ jr nz, .asm_29e2f
+ call Function29e47
+ xor a
+ jr .asm_29e31
+
+.asm_29e2f
+ ld a, $1
+
+.asm_29e31
+ ld [ScriptVar], a
+ ld hl, $cf5b
+ xor a
+ ld [hli], a
+ ld [hl], a
+ ret
+; 29e3b
+
+Function29e3b: ; 29e3b
+ call Function87d
+ ld hl, $cf5b
+ ld a, [hli]
+ inc a
+ ret nz
+ ld a, [hl]
+ inc a
+ ret
+; 29e47
+
+Function29e47: ; 29e47
+ ld b, $a
+.asm_29e49
+ call DelayFrame
+ call Function908
+ dec b
+ jr nz, .asm_29e49
+ ret
+; 29e53
+
+Function29e53: ; 29e53
+ dec h
+ srl h
+ rr l
+ srl h
+ rr l
+ inc h
+ ld a, h
+ ld [$cf5b], a
+ ld a, l
+ ld [$cf5c], a
+ ret
+; 29e66
+
+Function29e66: ; 29e66
+ ld a, [$d265]
+ push af
+ callba Function14ab2
+ ld a, $1
+ jr nc, .asm_29e75
+ xor a
+
+.asm_29e75
+ ld [ScriptVar], a
+ ld c, $1e
+ call DelayFrames
+ pop af
+ ld [$d265], a
+ ret
+; 29e82
+
+Function29e82: ; 29e82
+ ld a, [$d265]
+ call Function29f17
+ push af
+ call Function908
+ call DelayFrame
+ call Function908
+ pop af
+ ld b, a
+ ld a, [$d265]
+ cp b
+ jr nz, .asm_29eaa
+ ld a, [$d265]
+ inc a
+ ld [InLinkBattle], a
+ xor a
+ ld [$ff9e], a
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+
+.asm_29eaa
+ xor a
+ ld [ScriptVar], a
+ ret
+; 29eaf
+
+Function29eaf: ; 29eaf
+ ld a, $1
+ ld [InLinkBattle], a
+ call Function2ed3
+ callab Function28000
+ call Function2ee4
+ xor a
+ ld [$ff9e], a
+ ret
+; 29ec4
+
+Function29ec4: ; 29ec4
+ ld a, $2
+ ld [InLinkBattle], a
+ call Function2ed3
+ callab Function28000
+ call Function2ee4
+ xor a
+ ld [$ff9e], a
+ ret
+; 29ed9
+
+Function29ed9: ; 29ed9
+ ld a, $3
+ ld [InLinkBattle], a
+ call Function2ed3
+ callab Function28000
+ call Function2ee4
+ xor a
+ ld [$ff9e], a
+ ret
+; 29eee
+
+Function29eee: ; 29eee
+ xor a
+ ld [InLinkBattle], a
+ ld c, $3
+ call DelayFrames
+ jp Function29f04
+; 29efa
+
+Function29efa: ; 29efa
+ ld c, $28
+ call DelayFrames
+ ld a, $e
+ jp Function29f17
+; 29f04
+
+Function29f04: ; 29f04
+ ld c, $3
+ call DelayFrames
+ ld a, $ff
+ ld [$ffcb], a
+ ld a, $2
+ ld [rSB], a
+ xor a
+ ld [hSerialReceive], a
+ ld [rSC], a
+ ret
+; 29f17
+
+Function29f17: ; 29f17
+ add $d0
+ ld [$cf56], a
+ ld [$cf57], a
+ ld a, $2
+ ld [$ff9e], a
+ call DelayFrame
+ call DelayFrame
+.asm_29f29
+ call Function83b
+ ld a, [$cf51]
+ ld b, a
+ and $f0
+ cp $d0
+ jr z, .asm_29f40
+ ld a, [$cf52]
+ ld b, a
+ and $f0
+ cp $d0
+ jr nz, .asm_29f29
+
+.asm_29f40
+ xor a
+ ld [$ff9e], a
+ ld a, b
+ and $f
+ ret
+; 29f47
+
+Function29f47: ; 29f47
+ ld a, [$ffcb]
+ cp $1
+ ld a, $1
+ jr z, .asm_29f50
+ dec a
+
+.asm_29f50
+ ld [ScriptVar], a
+ ret
+; 29f54
+
+INCBIN "baserom.gbc", $29f54, $2a0e7 - $29f54
Function2a0e7: ; 2a0e7
; Try to trigger a wild encounter.
@@ -32872,7 +37335,189 @@ Function2a4a0: ; 2a4a0
ret
; 2a4ab
-INCBIN "baserom.gbc", $2a4ab, $2a5e9 - $2a4ab
+Function2a4ab: ; 2a4ab
+ callba Function90439
+ ld d, b
+ ld e, c
+ ld hl, WildMons1
+ ld bc, $002f
+ call Function2a288
+ jr c, .asm_2a4c6
+ ld hl, WildMons3
+ call Function2a288
+ jr nc, .asm_2a514
+
+.asm_2a4c6
+ push hl
+ ld bc, $000d
+ add hl, bc
+ ld a, [TimeOfDay]
+ ld bc, $000e
+ call AddNTimes
+.asm_2a4d4
+ call Random
+ and $3
+ jr z, .asm_2a4d4
+ dec a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ add hl, bc
+ inc hl
+ ld c, [hl]
+ pop hl
+ ld de, $0005
+ add hl, de
+ inc hl
+ ld b, $4
+.asm_2a4eb
+ ld a, [hli]
+ cp c
+ jr z, .asm_2a514
+ inc hl
+ dec b
+ jr nz, .asm_2a4eb
+ push bc
+ dec c
+ ld a, c
+ call CheckCaughtMon
+ pop bc
+ jr nz, .asm_2a514
+ ld de, StringBuffer1
+ call CopyName1
+ ld a, c
+ ld [$d265], a
+ call GetPokemonName
+ ld hl, $651a
+ call PrintText
+ xor a
+ ld [ScriptVar], a
+ ret
+
+.asm_2a514
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+; 2a51a
+
+INCBIN "baserom.gbc", $2a51a, $2a51f - $2a51a
+
+Function2a51f: ; 2a51f
+ callba Function90439
+ ld d, b
+ ld e, c
+ ld hl, WildMons1
+ ld bc, $002f
+ call Function2a288
+ jr c, .asm_2a538
+ ld hl, WildMons3
+ call Function2a288
+
+.asm_2a538
+ ld bc, $0005
+ add hl, bc
+ ld a, [TimeOfDay]
+ inc a
+ ld bc, $000e
+.asm_2a543
+ dec a
+ jr z, .asm_2a549
+ add hl, bc
+ jr .asm_2a543
+
+.asm_2a549
+ call Random
+ and $3
+ ld c, a
+ ld b, $0
+ add hl, bc
+ add hl, bc
+ inc hl
+ ld a, [hl]
+ ld [$d265], a
+ call GetPokemonName
+ ld hl, StringBuffer1
+ ld de, StringBuffer4
+ ld bc, $000b
+ jp CopyBytes
+; 2a567
+
+Function2a567: ; 2a567
+ callba Function90439
+ ld hl, $5999
+ ld a, d
+ dec a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ add hl, bc
+ ld a, $e
+ call GetFarHalfword
+.asm_2a57c
+ dec e
+ jr z, .asm_2a58b
+.asm_2a57f
+ ld a, $e
+ call GetFarByte
+ inc hl
+ cp $ff
+ jr nz, .asm_2a57f
+ jr .asm_2a57c
+
+.asm_2a58b
+ ld a, $e
+ call GetFarByte
+ inc hl
+ cp $50
+ jr nz, .asm_2a58b
+ ld a, $e
+ call GetFarByte
+ inc hl
+ ld bc, $0002
+ cp $0
+ jr z, .asm_2a5b3
+ ld bc, $0006
+ cp $1
+ jr z, .asm_2a5b3
+ ld bc, $0003
+ cp $2
+ jr z, .asm_2a5b3
+ ld bc, $0007
+
+.asm_2a5b3
+ ld e, $0
+ push hl
+.asm_2a5b6
+ inc e
+ add hl, bc
+ ld a, $e
+ call GetFarByte
+ cp $ff
+ jr nz, .asm_2a5b6
+ pop hl
+.asm_2a5c2
+ call Random
+ and $7
+ cp e
+ jr nc, .asm_2a5c2
+ inc a
+.asm_2a5cb
+ dec a
+ jr z, .asm_2a5d1
+ add hl, bc
+ jr .asm_2a5cb
+
+.asm_2a5d1
+ inc hl
+ ld a, $e
+ call GetFarByte
+ ld [$d265], a
+ call GetPokemonName
+ ld hl, StringBuffer1
+ ld de, StringBuffer4
+ ld bc, $000b
+ jp CopyBytes
+; 2a5e9
WildMons1: ; 0x2a5e9
@@ -33418,7 +38063,131 @@ TrainerClassNames: ; 2c1ef
db "MYSTICALMAN@"
-INCBIN "baserom.gbc", $2c41a, $2c7fb - $2c41a
+INCBIN "baserom.gbc", $2c41a, $2c547 - $2c41a
+
+Function2c547: ; 2c547
+ ld hl, $45ef
+ call PrintText
+ call Function1dcf
+ jr c, .asm_2c5c3
+ ld hl, $45f4
+ call PrintText
+ callba Function50000
+ jr c, .asm_2c5c3
+ ld a, [CurPartySpecies]
+ cp $fd
+ jr z, .asm_2c5bc
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1Move2
+ ld bc, $0030
+ call AddNTimes
+ ld a, [hl]
+ and a
+ jr z, .asm_2c5ca
+ ld hl, $45ea
+ call PrintText
+ call Function1d6e
+ callba Function12f5b
+ push af
+ call Function2b74
+ pop af
+ jr c, .asm_2c5c3
+ ld a, [$cfa9]
+ push af
+ ld a, [CurSpecies]
+ ld [$d265], a
+ call GetMoveName
+ ld hl, $45d6
+ call PrintText
+ call Function1dcf
+ pop bc
+ jr c, .asm_2c5c3
+ call Function2c5f9
+ call WaitSFX
+ ld de, $0097
+ call StartSFX
+ call WaitSFX
+ ld hl, $45db
+ call PrintText
+ ret
+
+.asm_2c5bc
+ ld hl, $45e0
+ call PrintText
+ ret
+
+.asm_2c5c3
+ ld hl, $45e5
+ call PrintText
+ ret
+
+.asm_2c5ca
+ ld hl, $45d1
+ call PrintText
+ ret
+; 2c5d1
+
+INCBIN "baserom.gbc", $2c5d1, $2c5f9 - $2c5d1
+
+Function2c5f9: ; 2c5f9
+ ld a, b
+ push bc
+ dec a
+ ld c, a
+ ld b, $0
+ ld hl, PartyMon1Move1
+ add hl, bc
+ ld a, [CurPartyMon]
+ ld bc, $0030
+ call AddNTimes
+ pop bc
+ push bc
+ inc b
+.asm_2c60f
+ ld a, b
+ cp $5
+ jr z, .asm_2c61b
+ inc hl
+ ld a, [hld]
+ ld [hl], a
+ inc hl
+ inc b
+ jr .asm_2c60f
+
+.asm_2c61b
+ xor a
+ ld [hl], a
+ pop bc
+ ld a, b
+ push bc
+ dec a
+ ld c, a
+ ld b, $0
+ ld hl, PartyMon1PP
+ add hl, bc
+ ld a, [CurPartyMon]
+ ld bc, $0030
+ call AddNTimes
+ pop bc
+ inc b
+.asm_2c633
+ ld a, b
+ cp $5
+ jr z, .asm_2c63f
+ inc hl
+ ld a, [hld]
+ ld [hl], a
+ inc hl
+ inc b
+ jr .asm_2c633
+
+.asm_2c63f
+ xor a
+ ld [hl], a
+ ret
+; 2c642
+
+INCBIN "baserom.gbc", $2c642, $2c7fb - $2c642
Function2c7fb: ; 2c7fb
@@ -44634,7 +49403,44 @@ Function40bdc: ; 40bdc
jp [hl]
; 40bf0
-INCBIN "baserom.gbc", $40bf0, $40c65 - $40bf0
+INCBIN "baserom.gbc", $40bf0, $40c30 - $40bf0
+
+Function40c30: ; 40c30
+ xor a
+ ld [$c7d2], a
+ ld hl, PlayerSDefLevel
+ ld de, AlphabeticalPokedexOrder
+ ld c, $fb
+.asm_40c3c
+ push bc
+ ld a, [de]
+ ld [$d265], a
+ call Function40bd0
+ jr z, .asm_40c51
+ ld a, [$d265]
+ ld [hli], a
+ ld a, [$c7d2]
+ inc a
+ ld [$c7d2], a
+
+.asm_40c51
+ inc de
+ pop bc
+ dec c
+ jr nz, .asm_40c3c
+ ld a, [$c7d2]
+ ld c, $0
+.asm_40c5b
+ cp $fb
+ jr z, .asm_40c64
+ ld [hl], c
+ inc hl
+ inc a
+ jr .asm_40c5b
+
+.asm_40c64
+ ret
+; 40c65
AlphabeticalPokedexOrder: ; 0x40c65
INCLUDE "stats/pokedex/order_alpha.asm"
@@ -46749,7 +51555,26 @@ Function492b9: ; 492b9
ret
; 4930a
-INCBIN "baserom.gbc", $4930a, $49409 - $4930a
+INCBIN "baserom.gbc", $4930a, $49336 - $4930a
+
+Function49336: ; 49336
+.asm_49336
+ push bc
+ push hl
+.asm_49338
+ ld [hli], a
+ dec c
+ jr nz, .asm_49338
+ pop hl
+ ld bc, $0014
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .asm_49336
+ ret
+; 49346
+
+INCBIN "baserom.gbc", $49346, $49409 - $49346
Function49409: ; 49409
@@ -46761,7 +51586,177 @@ Function49409: ; 49409
ret
; 49418
-INCBIN "baserom.gbc", $49418, $49962 - $49418
+INCBIN "baserom.gbc", $49418, $49797 - $49418
+
+Function49797: ; 49797
+ ld hl, AttrMap
+ ld bc, $1002
+ ld a, $4
+ call Function49336
+ ld a, $3
+ ld [$cded], a
+ ld [$cef1], a
+ ld hl, $cddb
+ ld bc, $0812
+ ld a, $5
+ call Function49336
+ ld hl, $ce7b
+ ld bc, $0812
+ ld a, $6
+ call Function49336
+ ld hl, $cf19
+ ld bc, $0214
+ ld a, $4
+ call Function49336
+ ld a, $3
+ ld bc, $0601
+ ld hl, $cdf3
+ call Function49336
+ ld a, $3
+ ld bc, $0601
+ ld hl, $cdfe
+ call Function49336
+ ld a, $3
+ ld bc, $0601
+ ld hl, $ce93
+ call Function49336
+ ld a, $3
+ ld bc, $0601
+ ld hl, $ce9e
+ call Function49336
+ ld a, $2
+ ld hl, $cf1b
+ ld [hli], a
+ ld a, $7
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld a, $2
+ ld [hl], a
+ ld hl, $cf2f
+ ld a, $3
+ ld bc, $0006
+ call ByteFill
+ ret
+; 49811
+
+Function49811: ; 49811
+ ld hl, $5826
+ ld de, $d010
+ ld bc, $0030
+ ld a, $5
+ call Function306b
+ callba Function96a4
+ ret
+; 49826
+
+INCBIN "baserom.gbc", $49826, $49856 - $49826
+
+Function49856: ; 49856
+ call Function49797
+ ret
+; 4985a
+
+INCBIN "baserom.gbc", $4985a, $4989a - $4985a
+
+Function4989a: ; 4989a
+ call DelayFrame
+ ld a, [VramState]
+ push af
+ xor a
+ ld [VramState], a
+ call Function49912
+ ld de, $0750
+ ld a, $2c
+ call Function3b2a
+ ld hl, $0003
+ add hl, bc
+ ld [hl], $84
+ ld hl, $0002
+ add hl, bc
+ ld [hl], $1f
+ ld hl, $000f
+ add hl, bc
+ ld a, $80
+ ld [hl], a
+ ld a, $a0
+ ld [$cf64], a
+ ld d, $0
+.asm_498ca
+ ld a, [$cf63]
+ bit 7, a
+ jr nz, .asm_498ee
+ push bc
+ call Function49bae
+ inc d
+ push de
+ ld a, $90
+ ld [$c3b5], a
+ callba Function8cf7a
+ call Function49935
+ ld c, $2
+ call DelayFrames
+ pop de
+ pop bc
+ jr .asm_498ca
+
+.asm_498ee
+ pop af
+ ld [VramState], a
+ call Function498f9
+ call Function49bf3
+ ret
+; 498f9
+
+Function498f9: ; 498f9
+ ld hl, $c402
+ xor a
+ ld c, $4
+.asm_498ff
+ ld [hli], a
+ inc hl
+ inc hl
+ inc hl
+ inc a
+ dec c
+ jr nz, .asm_498ff
+ ld hl, $c410
+ ld bc, $0090
+ xor a
+ call ByteFill
+ ret
+; 49912
+
+Function49912: ; 49912
+ callba Function8cf53
+ ld de, $5962
+ ld hl, VTiles1
+ ld bc, $1204
+ call Request2bpp
+ ld de, $59a2
+ ld hl, $8840
+ ld bc, $1210
+ call Request2bpp
+ xor a
+ ld [$cf63], a
+ ret
+; 49935
+
+Function49935: ; 49935
+ ld hl, $cf64
+ ld a, [hl]
+ and a
+ jr z, .asm_4993e
+ dec [hl]
+ ret
+
+.asm_4993e
+ ld hl, $cf63
+ set 7, [hl]
+ ret
+; 49944
+
+INCBIN "baserom.gbc", $49944, $49962 - $49944
SpecialCelebiGFX:
INCBIN "gfx/special/celebi/leaf.2bpp"
@@ -46770,7 +51765,95 @@ INCBIN "gfx/special/celebi/2.2bpp"
INCBIN "gfx/special/celebi/3.2bpp"
INCBIN "gfx/special/celebi/4.2bpp"
-INCBIN "baserom.gbc", $49aa2, $49cdc - $49aa2
+INCBIN "baserom.gbc", $49aa2, $49bae - $49aa2
+
+Function49bae: ; 49bae
+ push hl
+ push bc
+ push de
+ ld a, d
+ ld d, $3
+ ld e, d
+ cp $0
+ jr z, .asm_49bd0
+ cp d
+ jr z, .asm_49bd4
+ call Function49bed
+ cp d
+ jr z, .asm_49bd8
+ call Function49bed
+ cp d
+ jr z, .asm_49bdc
+ call Function49bed
+ cp d
+ jr c, .asm_49be9
+ jr .asm_49be5
+
+.asm_49bd0
+ ld a, $84
+ jr .asm_49bde
+
+.asm_49bd4
+ ld a, $88
+ jr .asm_49bde
+
+.asm_49bd8
+ ld a, $8c
+ jr .asm_49bde
+
+.asm_49bdc
+ ld a, $90
+
+.asm_49bde
+ ld hl, $0003
+ add hl, bc
+ ld [hl], a
+ jr .asm_49be9
+
+.asm_49be5
+ pop de
+ ld d, $ff
+ push de
+
+.asm_49be9
+ pop de
+ pop bc
+ pop hl
+ ret
+; 49bed
+
+Function49bed: ; 49bed
+ push af
+ ld a, d
+ add e
+ ld d, a
+ pop af
+ ret
+; 49bf3
+
+Function49bf3: ; 49bf3
+ ld a, $b
+ ld [BattleType], a
+ ret
+; 49bf9
+
+Function49bf9: ; 49bf9
+ ld a, [$d0ee]
+ bit 6, a
+ jr z, .asm_49c07
+ ld a, $1
+ ld [ScriptVar], a
+ jr .asm_49c0b
+
+.asm_49c07
+ xor a
+ ld [ScriptVar], a
+
+.asm_49c0b
+ ret
+; 49c0c
+
+INCBIN "baserom.gbc", $49c0c, $49cdc - $49c0c
MainMenu: ; 49cdc
xor a
@@ -47560,7 +52643,800 @@ UpdateOTPointer: ; 0x4a83a
ret
; 0x4a843
-INCBIN "baserom.gbc", $4a843, $4ae78 - $4a843
+INCBIN "baserom.gbc", $4a843, $4a927 - $4a843
+
+Function4a927: ; 4a927
+ ld a, [ScriptVar]
+ ld [CurItem], a
+ ld hl, PCItems
+ call PickUpItem
+ jr c, .asm_4a948
+ ld a, [ScriptVar]
+ ld [CurItem], a
+ ld hl, NumItems
+ call PickUpItem
+ jr c, .asm_4a948
+ xor a
+ ld [ScriptVar], a
+ ret
+
+.asm_4a948
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+; 4a94e
+
+Function4a94e: ; 4a94e
+ call FadeToMenu
+ ld a, $ff
+ ld hl, DefaultFlypoint
+ ld bc, $0003
+ call ByteFill
+ xor a
+ ld [$d018], a
+ ld [$d019], a
+ ld b, $14
+ call GetSGBLayout
+ call Function32f9
+ call Function4aa22
+ jr c, .asm_4a985
+ jr z, .asm_4a9a1
+ jr .asm_4a97b
+
+.asm_4a974
+ call Function4aa25
+ jr c, .asm_4a985
+ jr z, .asm_4a9a1
+
+.asm_4a97b
+ call Function4ac58
+ ld hl, $d019
+ res 1, [hl]
+ jr .asm_4a974
+
+.asm_4a985
+ ld a, [$d018]
+ and a
+ jr nz, .asm_4a990
+ call Function4aba8
+ jr c, .asm_4a974
+
+.asm_4a990
+ call Function2b3c
+ ld hl, DefaultFlypoint
+ ld a, $ff
+ ld bc, $0003
+ call ByteFill
+ scf
+ jr .asm_4a9af
+
+.asm_4a9a1
+ call Function4a9c3
+ jr c, .asm_4a9b0
+ call Function4a9d7
+ jr c, .asm_4a974
+ call Function2b3c
+ and a
+
+.asm_4a9af
+ ret
+
+.asm_4a9b0
+ ld de, $0019
+ call StartSFX
+ ld hl, $69be
+ call PrintText
+ jr .asm_4a974
+; 4a9be
+
+INCBIN "baserom.gbc", $4a9be, $4a9c3 - $4a9be
+
+Function4a9c3: ; 4a9c3
+ ld hl, DefaultFlypoint
+ ld a, $ff
+ cp [hl]
+ jr z, .asm_4a9d5
+ inc hl
+ cp [hl]
+ jr z, .asm_4a9d5
+ inc hl
+ cp [hl]
+ jr z, .asm_4a9d5
+ and a
+ ret
+
+.asm_4a9d5
+ scf
+ ret
+; 4a9d7
+
+Function4a9d7: ; 4a9d7
+ ld a, [DefaultFlypoint]
+ ld hl, PartyMon1Nickname
+ call GetNick
+ ld h, d
+ ld l, e
+ ld de, EndFlypoint
+ ld bc, $0006
+ call CopyBytes
+ ld a, [$d003]
+ ld hl, PartyMon1Nickname
+ call GetNick
+ ld h, d
+ ld l, e
+ ld de, $d00c
+ ld bc, $0006
+ call CopyBytes
+ ld a, [$d004]
+ ld hl, PartyMon1Nickname
+ call GetNick
+ ld h, d
+ ld l, e
+ ld de, $d012
+ ld bc, $0006
+ call CopyBytes
+ ld hl, $6a1d
+ call PrintText
+ call Function1dcf
+ ret
+; 4aa1d
+
+INCBIN "baserom.gbc", $4aa1d, $4aa22 - $4aa1d
+
+Function4aa22: ; 4aa22
+ call WhiteBGMap
+
+Function4aa25: ; 4aa25
+ callba Function5004f
+ callba Function50405
+ call Function4aad3
+ ld a, $9
+ ld [PartyMenuActionText], a
+ callba WritePartyMenuTilemap
+ xor a
+ ld [PartyMenuActionText], a
+ callba PrintPartyMenuText
+ call Function4aab6
+ call WaitBGMap
+ call Function32f9
+ call DelayFrame
+ call Function4ab1a
+ jr z, .asm_4aa66
+ push af
+ call Function4aafb
+ jr c, .asm_4aa67
+ call Function4ab06
+ jr c, .asm_4aa67
+ pop af
+
+.asm_4aa66
+ ret
+
+.asm_4aa67
+ ld hl, $d019
+ set 1, [hl]
+ pop af
+ ret
+; 4aa6e
+
+INCBIN "baserom.gbc", $4aa6e, $4aa7a - $4aa6e
+
+Function4aa7a: ; 4aa7a
+ ld hl, DefaultFlypoint
+ ld d, $3
+.asm_4aa7f
+ ld e, $6
+ ld a, [hli]
+ push de
+ push hl
+ cp $ff
+ jr z, .asm_4aab3
+ ld hl, $c314
+ inc a
+ ld d, a
+.asm_4aa8d
+ ld a, [hl]
+ and a
+ jr z, .asm_4aaa5
+ cp d
+ jr z, .asm_4aa9a
+ jr .asm_4aaa5
+
+ ld a, $3
+ jr .asm_4aa9c
+
+.asm_4aa9a
+ ld a, $2
+
+.asm_4aa9c
+ push hl
+ ld c, l
+ ld b, h
+ ld hl, $0002
+ add hl, bc
+ ld [hl], a
+ pop hl
+
+.asm_4aaa5
+ ld bc, $0010
+ add hl, bc
+ dec e
+ jr nz, .asm_4aa8d
+ pop hl
+ pop de
+ dec d
+ jr nz, .asm_4aa7f
+ jr .asm_4aab5
+
+.asm_4aab3
+ pop hl
+ pop de
+
+.asm_4aab5
+ ret
+; 4aab6
+
+Function4aab6: ; 4aab6
+ ld hl, DefaultFlypoint
+ ld d, $3
+.asm_4aabb
+ ld a, [hli]
+ cp $ff
+ jr z, .asm_4aad2
+ push de
+ push hl
+ ld hl, $c4b4
+ ld bc, $0028
+ call AddNTimes
+ ld [hl], $ec
+ pop hl
+ pop de
+ dec d
+ jr nz, .asm_4aabb
+
+.asm_4aad2
+ ret
+; 4aad3
+
+Function4aad3: ; 4aad3
+ ld hl, PartyCount
+ ld a, [hli]
+ and a
+ ret z
+ ld c, a
+ xor a
+ ld [hConnectedMapWidth], a
+.asm_4aadd
+ push bc
+ push hl
+ ld e, $0
+ callba Function8e83f
+ ld a, [hConnectedMapWidth]
+ inc a
+ ld [hConnectedMapWidth], a
+ pop hl
+ pop bc
+ dec c
+ jr nz, .asm_4aadd
+ call Function4aa7a
+ callba Function8cf69
+ ret
+; 4aafb
+
+Function4aafb: ; 4aafb
+ ld a, [CurPartySpecies]
+ cp $fd
+ jr z, .asm_4ab04
+ and a
+ ret
+
+.asm_4ab04
+ scf
+ ret
+; 4ab06
+
+Function4ab06: ; 4ab06
+ ld a, [CurPartyMon]
+ ld bc, $0030
+ ld hl, PartyMon1CurHP
+ call AddNTimes
+ ld a, [hli]
+ ld b, a
+ ld a, [hl]
+ or b
+ jr nz, .asm_4ab19
+ scf
+
+.asm_4ab19
+ ret
+; 4ab1a
+
+Function4ab1a: ; 4ab1a
+.asm_4ab1a
+ ld a, $fb
+ ld [$cfa8], a
+ ld a, $26
+ ld [$cfa7], a
+ ld a, $2
+ ld [$cfa4], a
+ call Function4adf7
+ call Function1bc9
+ call Function4abc3
+ jr c, .asm_4ab1a
+ push af
+ call Function4ab99
+ call nc, Function1bee
+ pop af
+ bit 1, a
+ jr nz, .asm_4ab6d
+ ld a, [PartyCount]
+ inc a
+ ld b, a
+ ld a, [$cfa9]
+ ld [$d0d8], a
+ cp b
+ jr z, .asm_4ab7e
+ ld a, [$cfa9]
+ dec a
+ ld [CurPartyMon], a
+ ld c, a
+ ld b, $0
+ ld hl, PartySpecies
+ add hl, bc
+ ld a, [hl]
+ ld [CurPartySpecies], a
+ ld de, $0008
+ call StartSFX
+ call WaitSFX
+ ld a, $1
+ and a
+ ret
+
+.asm_4ab6d
+ ld a, [$cfa9]
+ ld [$d0d8], a
+.asm_4ab73
+ ld de, $0008
+ call StartSFX
+ call WaitSFX
+ scf
+ ret
+
+.asm_4ab7e
+ ld a, $1
+ ld [$d018], a
+ ld a, [$cfaa]
+ cp $2
+ jr z, .asm_4ab73
+ ld de, $0008
+ call StartSFX
+ call WaitSFX
+ xor a
+ ld [$d018], a
+ and a
+ ret
+; 4ab99
+
+Function4ab99: ; 4ab99
+ bit 1, a
+ jr z, .asm_4aba6
+ ld a, [DefaultFlypoint]
+ cp $ff
+ jr z, .asm_4aba6
+ scf
+ ret
+
+.asm_4aba6
+ and a
+ ret
+; 4aba8
+
+Function4aba8: ; 4aba8
+ ld hl, $d004
+ ld a, [hl]
+ cp $ff
+ jr nz, .asm_4abbe
+ dec hl
+ ld a, [hl]
+ cp $ff
+ jr nz, .asm_4abbe
+ dec hl
+ ld a, [hl]
+ cp $ff
+ jr nz, .asm_4abbe
+ and a
+ ret
+
+.asm_4abbe
+ ld a, $ff
+ ld [hl], a
+ scf
+ ret
+; 4abc3
+
+Function4abc3: ; 4abc3
+ bit 3, a
+ jr z, .asm_4abd5
+ ld a, [PartyCount]
+ inc a
+ ld [$cfa9], a
+ ld a, $1
+ ld [$cfaa], a
+ jr .asm_4ac29
+
+.asm_4abd5
+ bit 6, a
+ jr z, .asm_4abeb
+ ld a, [$cfa9]
+ ld [$cfa9], a
+ and a
+ jr nz, .asm_4ac29
+ ld a, [PartyCount]
+ inc a
+ ld [$cfa9], a
+ jr .asm_4ac29
+
+.asm_4abeb
+ bit 7, a
+ jr z, .asm_4ac08
+ ld a, [$cfa9]
+ ld [$cfa9], a
+ ld a, [PartyCount]
+ inc a
+ inc a
+ ld b, a
+ ld a, [$cfa9]
+ cp b
+ jr nz, .asm_4ac29
+ ld a, $1
+ ld [$cfa9], a
+ jr .asm_4ac29
+
+.asm_4ac08
+ bit 4, a
+ jr nz, .asm_4ac10
+ bit 5, a
+ jr z, .asm_4ac56
+
+.asm_4ac10
+ ld a, [$cfa9]
+ ld b, a
+ ld a, [PartyCount]
+ inc a
+ cp b
+ jr nz, .asm_4ac29
+ ld a, [$cfaa]
+ cp $1
+ jr z, .asm_4ac26
+ ld a, $1
+ jr .asm_4ac29
+
+.asm_4ac26
+ ld [$cfaa], a
+
+.asm_4ac29
+ ld hl, $c4b4
+ ld bc, $0d01
+ call ClearBox
+ call Function4aab6
+ ld a, [PartyCount]
+ ld hl, $c4ba
+.asm_4ac3b
+ ld bc, $0028
+ add hl, bc
+ dec a
+ jr nz, .asm_4ac3b
+ ld [hl], $7f
+ ld a, [$cfa9]
+ ld b, a
+ ld a, [PartyCount]
+ inc a
+ cp b
+ jr z, .asm_4ac54
+ ld a, $1
+ ld [$cfaa], a
+
+.asm_4ac54
+ scf
+ ret
+
+.asm_4ac56
+ and a
+ ret
+; 4ac58
+
+Function4ac58: ; 4ac58
+ ld bc, $0212
+ ld hl, $c5cd
+ call ClearBox
+ callba Function8ea4a
+ ld hl, $6ca2
+ call LoadMenuDataHeader
+ ld hl, $d019
+ bit 1, [hl]
+ jr z, .asm_4ac89
+ ld hl, $c5af
+ ld b, $3
+ ld c, $7
+ call TextBox
+ ld hl, $c5c5
+ ld de, $6da7
+ call PlaceString
+ jr .asm_4ac96
+
+.asm_4ac89
+ ld hl, $c55f
+ ld b, $7
+ ld c, $7
+ call TextBox
+ call Function4ad68
+
+.asm_4ac96
+ ld a, $1
+ ld [hBGMapMode], a
+ call Function4acaa
+ call Function1c07
+ and a
+ ret
+; 4aca2
+
+INCBIN "baserom.gbc", $4aca2, $4acaa - $4aca2
+
+Function4acaa: ; 4acaa
+.asm_4acaa
+ ld a, $a0
+ ld [$cf91], a
+ ld a, [$d019]
+ bit 1, a
+ jr z, .asm_4acc2
+ ld a, $2
+ ld [$cf92], a
+ ld a, $c
+ ld [$cf82], a
+ jr .asm_4accc
+
+.asm_4acc2
+ ld a, $4
+ ld [$cf92], a
+ ld a, $8
+ ld [$cf82], a
+
+.asm_4accc
+ ld a, $b
+ ld [$cf83], a
+ ld a, $1
+ ld [$cf88], a
+ call Function1c10
+ ld hl, $cfa5
+ set 6, [hl]
+ call Function1bc9
+ ld de, $0008
+ call StartSFX
+ ld a, [hJoyPressed]
+ bit 0, a
+ jr nz, .asm_4acf4
+ bit 1, a
+ jr nz, .asm_4acf3
+ jr .asm_4acaa
+
+.asm_4acf3
+ ret
+
+.asm_4acf4
+ ld a, [$d019]
+ bit 1, a
+ jr nz, .asm_4ad0e
+ ld a, [$cfa9]
+ cp $1
+ jr z, Function4ad17
+ cp $2
+ jp z, Function4ad56
+ cp $3
+ jp z, Function4ad60
+ jr .asm_4acf3
+
+.asm_4ad0e
+ ld a, [$cfa9]
+ cp $1
+ jr z, Function4ad56
+ jr .asm_4acf3
+
+Function4ad17: ; 4ad17
+ call Function4adb2
+ jr z, .asm_4ad4a
+ ld hl, DefaultFlypoint
+ ld a, $ff
+ cp [hl]
+ jr z, .asm_4ad39
+ inc hl
+ cp [hl]
+ jr z, .asm_4ad39
+ inc hl
+ cp [hl]
+ jr z, .asm_4ad39
+ ld de, $0019
+ call WaitPlaySFX
+ ld hl, UnknownText_0x4ad51
+ call PrintText
+ ret
+
+.asm_4ad39
+ ld a, [CurPartyMon]
+ ld [hl], a
+ call Function4a9c3
+ ret c
+ ld a, [$d019]
+ set 0, a
+ ld [$d019], a
+ ret
+
+.asm_4ad4a
+ ld a, $ff
+ ld [hl], a
+ call Function4adc2
+ ret
+
+UnknownText_0x4ad51: ; 0x4ad51
+ ; Only three #MON may enter.
+ text_jump UnknownText_0x1c521c, BANK(UnknownText_0x1c521c)
+ db "@"
+; 0x4ad56
+
+Function4ad56: ; 4ad56
+ callba OpenPartyStats
+ call Function3200
+ ret
+; 4ad60
+
+Function4ad60: ; 4ad60
+ callba Function12fba
+ ret
+; 4ad67
+
+INCBIN "baserom.gbc", $4ad67, $4ad68 - $4ad67
+
+Function4ad68: ; 4ad68
+ ld hl, $c59d
+ ld de, $6d88
+ call PlaceString
+ call Function4adb2
+ jr c, .asm_4ad7e
+ ld hl, $c575
+ ld de, $6da0
+ jr .asm_4ad84
+
+.asm_4ad7e
+ ld hl, $c575
+ ld de, $6d9a
+
+.asm_4ad84
+ call PlaceString
+ ret
+; 4ad88
+
+INCBIN "baserom.gbc", $4ad88, $4adb2 - $4ad88
+
+Function4adb2: ; 4adb2
+ ld hl, DefaultFlypoint
+ ld a, [CurPartyMon]
+ cp [hl]
+ ret z
+ inc hl
+ cp [hl]
+ ret z
+ inc hl
+ cp [hl]
+ ret z
+ scf
+ ret
+; 4adc2
+
+Function4adc2: ; 4adc2
+ ld a, [DefaultFlypoint]
+ cp $ff
+ jr nz, .asm_4ade5
+ ld a, [$d003]
+ cp $ff
+ jr nz, .asm_4addd
+ ld a, [$d004]
+ ld [DefaultFlypoint], a
+ ld a, $ff
+ ld [$d004], a
+ jr .asm_4ade5
+
+.asm_4addd
+ ld [DefaultFlypoint], a
+ ld a, $ff
+ ld [$d003], a
+
+.asm_4ade5
+ ld a, [$d003]
+ cp $ff
+ ret nz
+ ld b, a
+ ld a, [$d004]
+ ld [$d003], a
+ ld a, b
+ ld [$d004], a
+ ret
+; 4adf7
+
+Function4adf7: ; 4adf7
+ ld a, [$d019]
+ bit 0, a
+ ret z
+ ld a, [PartyCount]
+ inc a
+ ld [$cfa9], a
+ ld a, $1
+ ld [$cfaa], a
+ ld a, [$d019]
+ res 0, a
+ ld [$d019], a
+ ret
+; 4ae12
+
+Function4ae12: ; 4ae12
+ call Function4ae1f
+ ld a, $0
+ jr c, .asm_4ae1b
+ ld a, $1
+
+.asm_4ae1b
+ ld [ScriptVar], a
+ ret
+; 4ae1f
+
+Function4ae1f: ; 4ae1f
+ ld bc, $0e07
+ push bc
+ ld hl, MenuDataHeader_0x1e1d
+ call Function1d3c
+ pop bc
+ ld a, b
+ ld [$cf83], a
+ add $5
+ ld [$cf85], a
+ ld a, c
+ ld [$cf82], a
+ add $4
+ ld [$cf84], a
+ call Function1c00
+ call Function1d81
+ push af
+ ld c, $f
+ call DelayFrames
+ call Function4ae5e
+ pop af
+ jr c, .asm_4ae57
+ ld a, [$cfa9]
+ cp $2
+ jr z, .asm_4ae57
+ and a
+ ret
+
+.asm_4ae57
+ ld a, $2
+ ld [$cfa9], a
+ scf
+ ret
+; 4ae5e
+
+Function4ae5e: ; 4ae5e
+ ld a, [hOAMUpdate]
+ push af
+ call Function1c07
+ call Function1ad2
+ xor a
+ ld [hOAMUpdate], a
+ call DelayFrame
+ ld a, $1
+ ld [hOAMUpdate], a
+ call Function321c
+ pop af
+ ld [hOAMUpdate], a
+ ret
+; 4ae78
SECTION "bank13",ROMX,BANK[$13]
@@ -47945,7 +53821,34 @@ Function4d1cb: ; 4d1cb
ret
; 4d249
-INCBIN "baserom.gbc", $4d249, $4d35b - $4d249
+INCBIN "baserom.gbc", $4d249, $4d319 - $4d249
+
+Function4d319: ; 4d319
+ ld a, [$cfa9]
+ dec a
+ ld [CurPartyMon], a
+ call LowVolume
+ ld a, $25
+ call Predef
+ ld a, [CurPartyMon]
+ inc a
+ ld [$cfa9], a
+ call Functionfdb
+ call WhiteBGMap
+ call MaxVolume
+ callba Function28ef8
+ callba Function4d354
+ callba Function16d673
+ callba Function28eff
+ call Function3200
+ ret
+; 4d354
+
+Function4d354: ; 4d354
+ call WaitBGMap
+ call Function3200
+ ret
+; 4d35b
Function4d35b: ; 4d35b
@@ -48322,7 +54225,365 @@ CheckPokerus: ; 4d860
ret
; 4d87a
-INCBIN "baserom.gbc", $4d87a, $4db3b - $4d87a
+Function4d87a: ; 4d87a
+ xor a
+ ld [ScriptVar], a
+ ld [$d265], a
+ ld a, [PartyCount]
+ and a
+ ret z
+ ld d, a
+ ld hl, PartyMon1ID
+ ld bc, PartySpecies
+.asm_4d88d
+ ld a, [bc]
+ inc bc
+ cp $fd
+ call nz, Function4d939
+ push bc
+ ld bc, $0030
+ add hl, bc
+ pop bc
+ dec d
+ jr nz, .asm_4d88d
+ ld a, $1
+ call GetSRAMBank
+ ld a, [BoxCount]
+ and a
+ jr z, .asm_4d8c8
+ ld d, a
+ ld hl, BoxMon1ID
+ ld bc, BoxSpecies
+.asm_4d8af
+ ld a, [bc]
+ inc bc
+ cp $fd
+ jr z, .asm_4d8bf
+ call Function4d939
+ jr nc, .asm_4d8bf
+ ld a, $1
+ ld [$d265], a
+
+.asm_4d8bf
+ push bc
+ ld bc, $0020
+ add hl, bc
+ pop bc
+ dec d
+ jr nz, .asm_4d8af
+
+.asm_4d8c8
+ call CloseSRAM
+ ld c, $0
+.asm_4d8cd
+ ld a, [$db72]
+ and $f
+ cp c
+ jr z, .asm_4d90b
+ ld hl, $599f
+ ld b, $0
+ add hl, bc
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ call GetSRAMBank
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [hl]
+ and a
+ jr z, .asm_4d90b
+ push bc
+ ld b, h
+ ld c, l
+ inc bc
+ ld de, $001c
+ add hl, de
+ ld d, a
+.asm_4d8f1
+ ld a, [bc]
+ inc bc
+ cp $fd
+ jr z, .asm_4d901
+ call Function4d939
+ jr nc, .asm_4d901
+ ld a, $1
+ ld [$d265], a
+
+.asm_4d901
+ push bc
+ ld bc, $0020
+ add hl, bc
+ pop bc
+ dec d
+ jr nz, .asm_4d8f1
+ pop bc
+
+.asm_4d90b
+ inc c
+ ld a, c
+ cp $e
+ jr c, .asm_4d8cd
+ call CloseSRAM
+ ld a, [ScriptVar]
+ and a
+ ret z
+ callba Function1060cd
+ ld a, [$d265]
+ and a
+ push af
+ ld a, [CurPartySpecies]
+ ld [$d265], a
+ call GetPokemonName
+ ld hl, $59c9
+ pop af
+ jr z, .asm_4d936
+ ld hl, $59ce
+
+.asm_4d936
+ jp PrintText
+; 4d939
+
+Function4d939: ; 4d939
+ push bc
+ push de
+ push hl
+ ld d, h
+ ld e, l
+ ld hl, Buffer1
+ ld bc, $8205
+ call PrintNum
+ ld hl, DefaultFlypoint
+ ld de, $dc9f
+ ld bc, $8205
+ call PrintNum
+ ld b, $5
+ ld c, $0
+ ld hl, EndFlypoint
+ ld de, $d1ee
+.asm_4d95d
+ ld a, [de]
+ cp [hl]
+ jr nz, .asm_4d967
+ dec de
+ dec hl
+ inc c
+ dec b
+ jr nz, .asm_4d95d
+
+.asm_4d967
+ pop hl
+ push hl
+ ld de, $fffa
+ add hl, de
+ ld a, [hl]
+ pop hl
+ pop de
+ push af
+ ld a, c
+ ld b, $1
+ cp $5
+ jr z, .asm_4d984
+ ld b, $2
+ cp $3
+ jr nc, .asm_4d984
+ ld b, $3
+ cp $2
+ jr nz, .asm_4d99b
+
+.asm_4d984
+ inc b
+ ld a, [ScriptVar]
+ and a
+ jr z, .asm_4d98e
+ cp b
+ jr c, .asm_4d99b
+
+.asm_4d98e
+ dec b
+ ld a, b
+ ld [ScriptVar], a
+ pop bc
+ ld a, b
+ ld [CurPartySpecies], a
+ pop bc
+ scf
+ ret
+
+.asm_4d99b
+ pop bc
+ pop bc
+ and a
+ ret
+; 4d99f
+
+INCBIN "baserom.gbc", $4d99f, $4d9d3 - $4d99f
+
+Function4d9d3: ; 4d9d3
+ ld hl, StringBuffer3
+ ld de, $dc9f
+ ld bc, $8205
+ call PrintNum
+ ld a, $50
+ ld [$d09e], a
+ ret
+; 4d9e5
+
+Function4d9e5: ; 4d9e5
+ ld a, [$df9c]
+ and a
+ jp z, Function4db35
+ ld [CurPartySpecies], a
+ ld [CurSpecies], a
+ call GetBaseData
+ ld hl, PartyCount
+ ld a, [hl]
+ cp $6
+ jp nc, Function4daa3
+ inc a
+ ld [hl], a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [$df9c]
+ ld [hli], a
+ ld [CurSpecies], a
+ ld a, $ff
+ ld [hl], a
+ ld hl, PartyMon1Species
+ ld a, [PartyCount]
+ dec a
+ ld bc, $0030
+ call AddNTimes
+ ld d, h
+ ld e, l
+ ld hl, $df9c
+ ld bc, $0030
+ call CopyBytes
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMon1OT
+ call SkipNames
+ ld d, h
+ ld e, l
+ ld hl, PlayerName
+ call CopyBytes
+ ld a, [CurPartySpecies]
+ ld [$d265], a
+ call GetPokemonName
+ ld hl, StringBuffer1
+ ld de, $d050
+ ld bc, $000b
+ call CopyBytes
+ call Function4db3b
+ jr c, .asm_4da66
+ ld a, [PartyCount]
+ dec a
+ ld [CurPartyMon], a
+ xor a
+ ld [MonType], a
+ ld de, $d050
+ callab Functione3de
+
+.asm_4da66
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMon1Nickname
+ call SkipNames
+ ld d, h
+ ld e, l
+ ld hl, $d050
+ call CopyBytes
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMon1Level
+ call GetPartyLocation
+ ld a, [hl]
+ ld [CurPartyLevel], a
+ call Function4db49
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMon1CaughtLocation
+ call GetPartyLocation
+ ld a, [hl]
+ and $80
+ ld b, $13
+ or b
+ ld [hl], a
+ xor a
+ ld [$df9c], a
+ and a
+ ld [ScriptVar], a
+ ret
+; 4daa3
+
+Function4daa3: ; 4daa3
+ ld a, $1
+ call GetSRAMBank
+ ld hl, BoxCount
+ ld a, [hl]
+ cp $14
+ call CloseSRAM
+ jr nc, .asm_4db08
+ xor a
+ ld [CurPartyMon], a
+ ld hl, $df9c
+ ld de, $d018
+ ld bc, $0020
+ call CopyBytes
+ ld hl, PlayerName
+ ld de, $d00d
+ ld bc, $000b
+ call CopyBytes
+ callab Function51322
+ ld a, [CurPartySpecies]
+ ld [$d265], a
+ call GetPokemonName
+ call Function4db3b
+ ld hl, StringBuffer1
+ jr c, .asm_4daf7
+ ld a, $2
+ ld [MonType], a
+ ld de, $d050
+ callab Functione3de
+ ld hl, $d050
+
+.asm_4daf7
+ ld a, $1
+ call GetSRAMBank
+ ld de, BoxMon1Nickname
+ ld bc, $000b
+ call CopyBytes
+ call CloseSRAM
+
+.asm_4db08
+ ld a, $1
+ call GetSRAMBank
+ ld a, [BoxMon1Level]
+ ld [CurPartyLevel], a
+ call CloseSRAM
+ call Function4db83
+ ld a, $1
+ call GetSRAMBank
+ ld hl, BoxMon1CaughtLocation
+ ld a, [hl]
+ and $80
+ ld b, $13
+ or b
+ ld [hl], a
+ call CloseSRAM
+ xor a
+ ld [$df9c], a
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+; 4db35
+
+Function4db35: ; 4db35
+ ld a, $2
+ ld [ScriptVar], a
+ ret
+; 4db3b
Function4db3b: ; 4db3b
@@ -49529,7 +55790,301 @@ Function4eb27: ; 4eb27
ret
; 4eb38
-INCBIN "baserom.gbc", $4eb38, $4f301 - $4eb38
+INCBIN "baserom.gbc", $4eb38, $4f0bc - $4eb38
+
+Function4f0bc: ; 4f0bc
+ ld a, $0
+ call Function4f26d
+ call Functiona36
+ ld b, $6
+ callba Function50000
+ jr c, .asm_4f0e1
+ ld a, [CurPartySpecies]
+ cp $fd
+ jr z, .asm_4f0e8
+ call IsAPokemon
+ jr c, .asm_4f0e7
+ call Function4f134
+ call Function4f0ee
+ ret
+
+.asm_4f0e1
+ ld a, $5
+ call Function4f26d
+ ret
+
+.asm_4f0e7
+ ret
+
+.asm_4f0e8
+ ld a, $6
+ call Function4f26d
+ ret
+; 4f0ee
+
+Function4f0ee: ; 4f0ee
+ ld a, [DefaultFlypoint]
+ ld hl, $70f6
+ rst JumpTable
+ ret
+; 4f0f6
+
+Table4f0f6: ; 4f0f6
+ dw Function4f100
+ dw Function4f10e
+ dw Function4f11f
+ dw Function4f125
+ dw Function4f12b
+; 4f100
+
+Function4f100: ; 4f100
+ ld a, $2
+ call Function4f26d
+ ld a, $3
+ call Function4f26d
+ call Function4f2b4
+ ret
+; 4f10e
+
+Function4f10e: ; 4f10e
+ call Function4f242
+ ld a, $4
+ call Function4f26d
+ ld a, $3
+ call Function4f26d
+ call Function4f2b4
+ ret
+; 4f11f
+
+Function4f11f: ; 4f11f
+ ld a, $1
+ call Function4f26d
+ ret
+; 4f125
+
+Function4f125: ; 4f125
+ ld a, $1
+ call Function4f26d
+ ret
+; 4f12b
+
+Function4f12b: ; 4f12b
+ ld a, $7
+ call Function4f26d
+ call Function4f2b4
+ ret
+; 4f134
+
+Function4f134: ; 4f134
+ ld a, $1d
+ call GetPartyParamLocation
+ ld a, [hli]
+ ld [$d03b], a
+ ld a, [hld]
+ ld [$d03c], a
+ or [hl]
+ jr z, .asm_4f170
+ ld a, $1
+ ld [DefaultFlypoint], a
+ ld a, $6
+ call GetPartyParamLocation
+ ld a, [PlayerID]
+ cp [hl]
+ jr nz, .asm_4f15f
+ inc hl
+ ld a, [$d47c]
+ jr nz, .asm_4f15f
+ ld a, $0
+ ld [DefaultFlypoint], a
+
+.asm_4f15f
+ call Function4f18c
+ call Function4f242
+ call Function4f176
+ call Function4f1c5
+ call Function4f20a
+ and a
+ ret
+
+.asm_4f170
+ ld a, $2
+ ld [DefaultFlypoint], a
+ ret
+; 4f176
+
+Function4f176: ; 4f176
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1Nickname
+ ld bc, $000b
+ call AddNTimes
+ ld de, $d003
+ ld bc, $000b
+ call CopyBytes
+ ret
+; 4f18c
+
+Function4f18c: ; 4f18c
+ ld a, $50
+ ld hl, $d036
+ ld bc, $0004
+ call ByteFill
+ ld a, [$d03b]
+ and $3f
+ jr z, .asm_4f1b4
+ cp $1
+ jr nz, .asm_4f1a4
+ ld a, $5
+
+.asm_4f1a4
+ ld [$d03a], a
+ ld hl, $d036
+ ld de, $d03a
+ ld bc, $4103
+ call PrintNum
+ ret
+
+.asm_4f1b4
+ ld de, $d036
+ ld hl, $71c1
+ ld bc, $0004
+ call CopyBytes
+ ret
+; 4f1c1
+
+INCBIN "baserom.gbc", $4f1c1, $4f1c5 - $4f1c1
+
+Function4f1c5: ; 4f1c5
+ ld a, [$d03b]
+ and $c0
+ jr z, .asm_4f1df
+ rlca
+ rlca
+ dec a
+ ld hl, $71e6
+ call GetNthString
+ ld d, h
+ ld e, l
+ ld hl, $d01f
+ call CopyName2
+ and a
+ ret
+
+.asm_4f1df
+ ld de, $d01f
+ call Function4f1f8
+ ret
+; 4f1e6
+
+INCBIN "baserom.gbc", $4f1e6, $4f1f8 - $4f1e6
+
+Function4f1f8: ; 4f1f8
+ ld hl, $7202
+ ld bc, $000b
+ call CopyBytes
+ ret
+; 4f202
+
+INCBIN "baserom.gbc", $4f202, $4f20a - $4f202
+
+Function4f20a: ; 4f20a
+ ld a, [$d03c]
+ and $7f
+ jr z, .asm_4f22e
+ cp $7f
+ jr z, .asm_4f234
+ cp $7e
+ jr z, .asm_4f23b
+ ld e, a
+ callba GetLandmarkName
+ ld hl, StringBuffer1
+ ld de, $d00e
+ ld bc, $0011
+ call CopyBytes
+ and a
+ ret
+
+.asm_4f22e
+ ld de, $d00e
+ jp Function4f1f8
+
+.asm_4f234
+ ld a, $4
+ ld [DefaultFlypoint], a
+ scf
+ ret
+
+.asm_4f23b
+ ld a, $3
+ ld [DefaultFlypoint], a
+ scf
+ ret
+; 4f242
+
+Function4f242: ; 4f242
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1OT
+ ld bc, $000b
+ call AddNTimes
+ ld de, $d02a
+ ld bc, $000b
+ call CopyBytes
+ ld hl, $726b
+ ld a, [$d03c]
+ bit 7, a
+ jr z, .asm_4f264
+ ld hl, $726c
+
+.asm_4f264
+ ld de, $d035
+ ld a, $50
+ ld [de], a
+ ret
+; 4f26b
+
+INCBIN "baserom.gbc", $4f26b, $4f26d - $4f26b
+
+Function4f26d: ; 4f26d
+ ld e, a
+ ld d, $0
+ ld hl, $727c
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call PrintText
+ ret
+; 4f27c
+
+INCBIN "baserom.gbc", $4f27c, $4f2b4 - $4f27c
+
+Function4f2b4: ; 4f2b4
+ ld a, $1f
+ call GetPartyParamLocation
+ ld a, [$d03a]
+ ld c, a
+ ld a, [hl]
+ sub c
+ ld c, a
+ ld hl, $72d6
+ ld de, $0003
+.asm_4f2c6
+ cp [hl]
+ jr c, .asm_4f2ce
+ jr z, .asm_4f2ce
+ add hl, de
+ jr .asm_4f2c6
+
+.asm_4f2ce
+ inc hl
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call PrintText
+ ret
+; 4f2d6
+
+INCBIN "baserom.gbc", $4f2d6, $4f301 - $4f2d6
Function4f301: ; 4f301
@@ -51342,7 +57897,63 @@ Function50d0a: ; 50d0a
ret
; 50d5b
-INCBIN "baserom.gbc", $50d5b, $50e1b - $50d5b
+INCBIN "baserom.gbc", $50d5b, $50db9 - $50d5b
+
+Function50db9: ; 50db9
+ ld a, [$d263]
+ cp $1
+ jr nz, .asm_50dca
+ ld hl, OTPartyCount
+ ld de, OTPartyMon1OT
+ ld a, $6
+ jr .asm_50dfc
+
+.asm_50dca
+ cp $4
+ jr nz, .asm_50dd8
+ ld hl, PartyCount
+ ld de, PartyMon1OT
+ ld a, $5
+ jr .asm_50dfc
+
+.asm_50dd8
+ cp $5
+ jr nz, .asm_50de6
+ ld hl, CurMart
+ ld de, PokemonNames
+ ld a, $1
+ jr .asm_50dfc
+
+.asm_50de6
+ cp $2
+ jr nz, .asm_50df4
+ ld hl, NumItems
+ ld de, Function50000
+ ld a, $4
+ jr .asm_50dfc
+
+.asm_50df4
+ ld hl, CurMart
+ ld de, Function50000
+ ld a, $4
+
+.asm_50dfc
+ ld [$cf61], a
+ ld a, l
+ ld [LYOverrides], a
+ ld a, h
+ ld [$d101], a
+ ld a, e
+ ld [$d102], a
+ ld a, d
+ ld [$d103], a
+ ld bc, $67c1
+ ld a, c
+ ld [$d104], a
+ ld a, b
+ ld [$d105], a
+ ret
+; 50e1b
Function50e1b: ; 50e1b
@@ -51644,7 +58255,120 @@ DecompressPredef: ; 5125d
; 5127c
-INCBIN "baserom.gbc", $5127c, $51424 - $5127c
+INCBIN "baserom.gbc", $5127c, $51322 - $5127c
+
+Function51322: ; 51322
+ ld a, $1
+ call GetSRAMBank
+ ld hl, BoxCount
+ call Function513cb
+ ld a, [BoxCount]
+ dec a
+ ld [$d265], a
+ ld hl, BoxMon1Nickname
+ ld bc, $000b
+ ld de, DefaultFlypoint
+ call Function513e0
+ ld a, [BoxCount]
+ dec a
+ ld [$d265], a
+ ld hl, BoxMon1OT
+ ld bc, $000b
+ ld de, $d00d
+ call Function513e0
+ ld a, [BoxCount]
+ dec a
+ ld [$d265], a
+ ld hl, BoxMon1Species
+ ld bc, $0020
+ ld de, $d018
+ call Function513e0
+ ld hl, $d01a
+ ld de, TempMonMove1
+ ld bc, $0004
+ call CopyBytes
+ ld hl, $d02f
+ ld de, TempMonPP
+ ld bc, $0004
+ call CopyBytes
+ ld a, [CurPartyMon]
+ ld b, a
+ callba Functiondcb6
+ jp CloseSRAM
+; 5138b
+
+INCBIN "baserom.gbc", $5138b, $513cb - $5138b
+
+Function513cb: ; 513cb
+ inc [hl]
+ inc hl
+ ld a, [CurPartyMon]
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [CurPartySpecies]
+ ld c, a
+.asm_513d8
+ ld a, [hl]
+ ld [hl], c
+ inc hl
+ inc c
+ ld c, a
+ jr nz, .asm_513d8
+ ret
+; 513e0
+
+Function513e0: ; 513e0
+ push de
+ push hl
+ push bc
+ ld a, [$d265]
+ dec a
+ call AddNTimes
+ push hl
+ add hl, bc
+ ld d, h
+ ld e, l
+ pop hl
+.asm_513ef
+ push bc
+ ld a, [$d265]
+ ld b, a
+ ld a, [CurPartyMon]
+ cp b
+ pop bc
+ jr z, .asm_51415
+ push hl
+ push de
+ push bc
+ call CopyBytes
+ pop bc
+ pop de
+ pop hl
+ push hl
+ ld a, l
+ sub c
+ ld l, a
+ ld a, h
+ sbc b
+ ld h, a
+ pop de
+ ld a, [$d265]
+ dec a
+ ld [$d265], a
+ jr .asm_513ef
+
+.asm_51415
+ pop bc
+ pop hl
+ ld a, [CurPartyMon]
+ call AddNTimes
+ ld d, h
+ ld e, l
+ pop hl
+ call CopyBytes
+ ret
+; 51424
BaseData:
INCLUDE "stats/base_stats.asm"
@@ -53038,7 +59762,112 @@ Function845db: ; 845db
ret
; 8461a
-INCBIN "baserom.gbc", $8461a, $846f6 - $8461a
+Function8461a: ; 8461a
+ ld a, [$cf65]
+ push af
+ xor a
+ ld [$ffac], a
+ call Function8474c
+ ld a, [rIE]
+ push af
+ xor a
+ ld [rIF], a
+ ld a, $9
+ ld [rIE], a
+ xor a
+ ld [hBGMapMode], a
+ callba Function1dc381
+ ld a, $10
+ call Function84419
+ ld hl, $ff9e
+ ld a, [hl]
+ push af
+ ld [hl], $4
+ ld a, $8
+ ld [$cf65], a
+ call Function84742
+ call Function843f0
+ jr c, .asm_84671
+ call Function84411
+ ld c, $c
+ call DelayFrames
+ xor a
+ ld [hBGMapMode], a
+ callba Function1dc47b
+ ld a, $3
+ call Function84419
+ ld a, $9
+ ld [$cf65], a
+ call Function84742
+ call Function843f0
+
+.asm_84671
+ pop af
+ ld [$ff9e], a
+ call Function84411
+ call Function84735
+ xor a
+ ld [rIF], a
+ pop af
+ ld [rIE], a
+ call Function84425
+ pop af
+ ld [$cf65], a
+ ret
+; 84688
+
+Function84688: ; 84688
+ ld a, [$cf65]
+ push af
+ callba Function1dd709
+ xor a
+ ld [$ffac], a
+ call Function8474c
+ ld a, [rIE]
+ push af
+ xor a
+ ld [rIF], a
+ ld a, $9
+ ld [rIE], a
+ ld hl, $ff9e
+ ld a, [hl]
+ push af
+ ld [hl], $4
+ ld a, $10
+ call Function84419
+ call Function84742
+ ld a, $9
+ ld [$cf65], a
+ call Function843f0
+ jr c, .asm_846e2
+ call Function84411
+ ld c, $c
+ call DelayFrames
+ call Function309d
+ xor a
+ ld [hBGMapMode], a
+ callba Function1dd7ae
+ ld a, $3
+ call Function84419
+ call Function30b4
+ call Function84742
+ ld a, $9
+ ld [$cf65], a
+ call Function843f0
+
+.asm_846e2
+ pop af
+ ld [$ff9e], a
+ call Function84411
+ xor a
+ ld [rIF], a
+ pop af
+ ld [rIE], a
+ call Function84425
+ pop af
+ ld [$cf65], a
+ ret
+; 846f6
Function846f6: ; 846f6
ld a, [hJoyDown]
@@ -53948,7 +60777,358 @@ Function86810: ; 86810
SECTION "bank22",ROMX,BANK[$22]
-INCBIN "baserom.gbc", $88000, $88258 - $88000
+Function88000: ; 88000
+ ld hl, $4007
+ call PrintText
+ ret
+; 88007
+
+INCBIN "baserom.gbc", $88007, $8800c - $88007
+
+Function8800c: ; 8800c
+ ld hl, $4013
+ call PrintText
+ ret
+; 88013
+
+INCBIN "baserom.gbc", $88013, $88018 - $88013
+
+Function88018: ; 88018
+ call Function1d6e
+ ld c, $1
+ xor a
+ ld [$d0e4], a
+ ld [$dca4], a
+.asm_88024
+ push bc
+ call Function88000
+ pop bc
+ ld a, c
+ ld [MenuSelection], a
+ call Function88055
+ ld a, c
+ ld [ScriptVar], a
+ and a
+ jr z, .asm_88051
+ ld [CurItem], a
+ ld a, [$cfa9]
+ ld c, a
+ push bc
+ call Function8800c
+ call Function880c2
+ pop bc
+ jr nc, .asm_88024
+ ld a, [$d10c]
+ ld [$dca4], a
+ call Function88161
+
+.asm_88051
+ call Function1d7d
+ ret
+; 88055
+
+Function88055: ; 88055
+ callba Function24c64
+ jr c, .asm_88083
+ ld hl, $4086
+ call Function1d3c
+ ld a, [MenuSelection]
+ ld [$cf88], a
+ xor a
+ ld [hBGMapMode], a
+ call Function352f
+ call Function1ad2
+ call Function350c
+ ld a, [$cf73]
+ cp $2
+ jr z, .asm_88083
+ ld a, [MenuSelection]
+ cp $ff
+ jr nz, .asm_88084
+
+.asm_88083
+ xor a
+
+.asm_88084
+ ld c, a
+ ret
+; 88086
+
+INCBIN "baserom.gbc", $88086, $880c2 - $88086
+
+Function880c2: ; 880c2
+ ld a, [CurItem]
+ ld [MenuSelection], a
+ call Function88139
+ jr z, .asm_88109
+ ld a, [$d10c]
+ ld [$d10d], a
+ ld a, $1
+ ld [$d10c], a
+ ld hl, $410d
+ call LoadMenuDataHeader
+.asm_880de
+ xor a
+ ld [hBGMapMode], a
+ call Function1cbb
+ call Function1ad2
+ call Function88116
+ call Function88126
+ call Function321c
+ callba Function27a28
+ jr nc, .asm_880de
+ push bc
+ call PlayClickSFX
+ pop bc
+ ld a, b
+ cp $ff
+ jr z, .asm_88109
+ ld a, [$d10c]
+ ld [$d10c], a
+ scf
+
+.asm_88109
+ call Function1c17
+ ret
+; 8810d
+
+INCBIN "baserom.gbc", $8810d, $88116 - $8810d
+
+Function88116: ; 88116
+ call Function1cfd
+ ld de, $0015
+ add hl, de
+ ld d, h
+ ld e, l
+ callba Function24ab4
+ ret
+; 88126
+
+Function88126: ; 88126
+ call Function1cfd
+ ld de, $0032
+ add hl, de
+ ld [hl], $f1
+ inc hl
+ ld de, $d10c
+ ld bc, $8102
+ jp PrintNum
+; 88139
+
+Function88139: ; 88139
+ push bc
+ ld hl, NumItems
+ ld a, [CurItem]
+ ld c, a
+ ld b, $0
+.asm_88143
+ inc hl
+ ld a, [hli]
+ cp $ff
+ jr z, .asm_88153
+ cp c
+ jr nz, .asm_88143
+ ld a, [hl]
+ add b
+ ld b, a
+ jr nc, .asm_88143
+ ld b, $ff
+
+.asm_88153
+ ld a, b
+ sub $63
+ jr c, .asm_8815a
+ ld b, $63
+
+.asm_8815a
+ ld a, b
+ ld [$d10c], a
+ and a
+ pop bc
+ ret
+; 88161
+
+Function88161: ; 88161
+ push de
+ push bc
+ ld hl, NumItems
+ ld a, [CurItem]
+ ld c, a
+ ld e, $0
+ xor a
+ ld [$d107], a
+ ld a, $ff
+ ld [DefaultFlypoint], a
+.asm_88175
+ ld a, [$d107]
+ inc a
+ ld [$d107], a
+ inc hl
+ ld a, [hli]
+ cp $ff
+ jr z, .asm_88198
+ cp c
+ jr nz, .asm_88175
+ ld d, $0
+ push hl
+ ld hl, DefaultFlypoint
+ add hl, de
+ inc e
+ ld a, [$d107]
+ dec a
+ ld [hli], a
+ ld a, $ff
+ ld [hl], a
+ pop hl
+ jr .asm_88175
+
+.asm_88198
+ ld a, e
+ and a
+ jr z, .asm_881fa
+ dec a
+ jr z, .asm_881d0
+ ld hl, DefaultFlypoint
+.asm_881a2
+ ld a, [hl]
+ ld c, a
+ push hl
+.asm_881a5
+ inc hl
+ ld a, [hl]
+ cp $ff
+ jr z, .asm_881c9
+ ld b, a
+ ld a, c
+ call Function88201
+ ld e, a
+ ld a, b
+ call Function88201
+ sub e
+ jr z, .asm_881bc
+ jr c, .asm_881c0
+ jr .asm_881a5
+
+.asm_881bc
+ ld a, c
+ sub b
+ jr nc, .asm_881a5
+
+.asm_881c0
+ ld a, c
+ ld c, b
+ ld [hl], a
+ ld a, c
+ pop hl
+ ld [hl], a
+ push hl
+ jr .asm_881a5
+
+.asm_881c9
+ pop hl
+ inc hl
+ ld a, [hl]
+ cp $ff
+ jr nz, .asm_881a2
+
+.asm_881d0
+ ld hl, DefaultFlypoint
+.asm_881d3
+ ld a, [hl]
+ cp $ff
+ jr z, .asm_881fa
+ push hl
+ ld [$d107], a
+ call Function88211
+ pop hl
+ ld a, [$d10c]
+ and a
+ jr z, .asm_881fa
+ push hl
+ ld a, [hli]
+ ld c, a
+.asm_881e9
+ ld a, [hli]
+ cp $ff
+ jr z, .asm_881f6
+ cp c
+ jr c, .asm_881e9
+ dec a
+ dec hl
+ ld [hli], a
+ jr .asm_881e9
+
+.asm_881f6
+ pop hl
+ inc hl
+ jr .asm_881d3
+
+.asm_881fa
+ ld a, [$d10c]
+ and a
+ pop bc
+ pop de
+ ret
+; 88201
+
+Function88201: ; 88201
+ push hl
+ push bc
+ ld hl, NumItems
+ inc hl
+ ld c, a
+ ld b, $0
+ add hl, bc
+ add hl, bc
+ inc hl
+ ld a, [hl]
+ pop bc
+ pop hl
+ ret
+; 88211
+
+Function88211: ; 88211
+ push bc
+ ld hl, NumItems
+ ld a, [$d107]
+ ld c, a
+ ld b, $0
+ inc hl
+ add hl, bc
+ add hl, bc
+ ld a, [CurItem]
+ ld c, a
+ ld a, [hli]
+ cp $ff
+ jr z, .asm_88243
+ cp c
+ jr nz, .asm_88243
+ ld a, [$d10c]
+ ld c, a
+ ld a, [hl]
+ sub c
+ ld b, c
+ jr nc, .asm_88235
+ add c
+ ld b, a
+
+.asm_88235
+ push bc
+ ld hl, NumItems
+ ld a, b
+ ld [$d10c], a
+ call Function2f53
+ pop bc
+ ld a, c
+ sub b
+
+.asm_88243
+ ld [$d10c], a
+ pop bc
+ ret
+; 88248
+
+INCBIN "baserom.gbc", $88248, $88258 - $88248
MovePlayerPicRight: ; 88258
hlcoord 6, 4
@@ -55857,7 +63037,373 @@ Function8ae4e: ; 8ae4e
ret
; 8ae68
-INCBIN "baserom.gbc", $8ae68, $8b170 - $8ae68
+Function8ae68: ; 8ae68
+ ld a, [ScriptVar]
+ ld hl, $6ed5
+ and a
+ jr z, .asm_8ae79
+ ld d, $0
+ ld e, $5
+.asm_8ae75
+ add hl, de
+ dec a
+ jr nz, .asm_8ae75
+
+.asm_8ae79
+ call LoadMenuDataHeader
+ xor a
+ ld [hBGMapMode], a
+ call Function1cbb
+ call Function1ad2
+ call Function321c
+ call Function1cfd
+ inc hl
+ ld d, $0
+ ld e, $14
+ add hl, de
+ add hl, de
+ ld a, [ScriptVar]
+ ld c, a
+ ld de, $6ebc
+ and a
+ jr z, .asm_8aea5
+.asm_8ae9c
+ ld a, [de]
+ inc de
+ cp $ff
+ jr nz, .asm_8ae9c
+ dec c
+ jr nz, .asm_8ae9c
+
+.asm_8aea5
+ call Function8af09
+ ld bc, $0939
+ add hl, bc
+ call Function8aee9
+ call Function3200
+ call Functiona36
+ call PlayClickSFX
+ call Function1c17
+ ret
+; 8aebc
+
+INCBIN "baserom.gbc", $8aebc, $8aee9 - $8aebc
+
+Function8aee9: ; 8aee9
+.asm_8aee9
+ ld a, [de]
+ cp $ff
+ ret z
+ cp $60
+ ld a, $d
+ jr c, .asm_8aef5
+ ld a, $5
+
+.asm_8aef5
+ call Function8aefd
+ inc hl
+ inc hl
+ inc de
+ jr .asm_8aee9
+; 8aefd
+
+Function8aefd: ; 8aefd
+ push hl
+ ld [hli], a
+ ld [hld], a
+ ld b, $0
+ ld c, $14
+ add hl, bc
+ ld [hli], a
+ ld [hl], a
+ pop hl
+ ret
+; 8af09
+
+Function8af09: ; 8af09
+ push hl
+ push de
+.asm_8af0b
+ ld a, [de]
+ cp $ff
+ jr z, .asm_8af19
+ ld c, a
+ call Function8af1c
+ inc hl
+ inc hl
+ inc de
+ jr .asm_8af0b
+
+.asm_8af19
+ pop de
+ pop hl
+ ret
+; 8af1c
+
+Function8af1c: ; 8af1c
+ push hl
+ ld a, c
+ cp $60
+ jr z, .asm_8af3b
+ cp $62
+ jr z, .asm_8af4b
+ cp $64
+ jr z, .asm_8af5b
+ ld [hli], a
+ inc a
+ ld [hld], a
+ dec a
+ ld b, $0
+ ld c, $14
+ add hl, bc
+ ld c, $10
+ add c
+ ld [hli], a
+ inc a
+ ld [hl], a
+ pop hl
+ ret
+
+.asm_8af3b
+ ld [hl], $5b
+ inc hl
+ ld [hl], $5c
+ ld bc, $0013
+ add hl, bc
+ ld [hl], $4d
+ inc hl
+ ld [hl], $5d
+ pop hl
+ ret
+
+.asm_8af4b
+ ld [hl], $4e
+ inc hl
+ ld [hl], $4f
+ ld bc, $0013
+ add hl, bc
+ ld [hl], $5e
+ inc hl
+ ld [hl], $5f
+ pop hl
+ ret
+
+.asm_8af5b
+ ld [hl], $2
+ inc hl
+ ld [hl], $3
+ ld bc, $0013
+ add hl, bc
+ ld [hl], $3
+ inc hl
+ ld [hl], $2
+ pop hl
+ ret
+; 8af6b
+
+Function8af6b: ; 8af6b
+ xor a
+ ld [$cf76], a
+ ld hl, $6fa9
+ call Function1d3c
+ ld a, [$dc4a]
+ ld c, a
+ callba Functionb8f8f
+ ld a, [$cf83]
+ add c
+ add $2
+ ld [$cf85], a
+ call Function1c00
+ call Function1e5d
+ callba Function4ae5e
+ ld b, $0
+ ld a, [MenuSelection]
+ ld c, a
+ ld a, [$dc4a]
+ and $3
+ cp c
+ jr nz, .asm_8afa4
+ ld b, $1
+
+.asm_8afa4
+ ld a, b
+ ld [ScriptVar], a
+ ret
+; 8afa9
+
+INCBIN "baserom.gbc", $8afa9, $8afd4 - $8afa9
+
+Function8afd4: ; 8afd4
+ xor a
+ ld [$d0e4], a
+ ld a, $1
+ ld [MenuSelection], a
+ call Function8b0d6
+ call Function8b090
+ ld hl, $7072
+ call PrintText
+ jr .asm_8aff1
+
+.asm_8afeb
+ ld hl, $7072
+ call Function105a
+
+.asm_8aff1
+ call DelayFrame
+ call Function1ad2
+ call Function8b097
+ call Function8b0e2
+ jr z, .asm_8b05f
+ ld [$cf75], a
+ call Function8b154
+ ld a, [hl]
+ ld [$d265], a
+ call GetItemName
+ ld hl, $7077
+ call Function105a
+ call Function1dcf
+ jr c, .asm_8afeb
+ ld a, [$cf75]
+ call Function8b154
+ inc hl
+ ld a, [hld]
+ ld c, a
+ ld a, [$dc4b]
+ cp c
+ jr c, .asm_8b047
+ ld a, [hli]
+ push hl
+ ld [CurItem], a
+ ld a, $1
+ ld [$d10c], a
+ ld hl, NumItems
+ call Function2f66
+ pop hl
+ jr nc, .asm_8b04c
+ ld a, [hl]
+ ld c, a
+ ld a, [$dc4b]
+ sub c
+ ld [$dc4b], a
+ call Function8b097
+ jr .asm_8b051
+
+.asm_8b047
+ ld hl, $7081
+ jr .asm_8b05a
+
+.asm_8b04c
+ ld hl, $7086
+ jr .asm_8b05a
+
+.asm_8b051
+ ld de, $0022
+ call StartSFX
+ ld hl, $707c
+
+.asm_8b05a
+ call Function105a
+ jr .asm_8afeb
+
+.asm_8b05f
+ call Function1c17
+ call Function1c17
+ ld hl, $708b
+ call PrintText
+ call Functiona36
+ call PlayClickSFX
+ ret
+; 8b072
+
+INCBIN "baserom.gbc", $8b072, $8b090 - $8b072
+
+Function8b090: ; 8b090
+ ld hl, $70d1
+ call LoadMenuDataHeader
+ ret
+; 8b097
+
+Function8b097: ; 8b097
+ ld de, $dc4b
+ call Function8b09e
+ ret
+; 8b09e
+
+Function8b09e: ; 8b09e
+ push de
+ xor a
+ ld [hBGMapMode], a
+ ld hl, $70d1
+ call Function1d3c
+ call Function1cbb
+ call Function1ad2
+ call Function1cfd
+ ld bc, $0015
+ add hl, bc
+ ld de, $70ca
+ call PlaceString
+ ld h, b
+ ld l, c
+ inc hl
+ ld a, $7f
+ ld [hli], a
+ ld [hld], a
+ pop de
+ ld bc, $0102
+ call PrintNum
+ ret
+; 8b0ca
+
+INCBIN "baserom.gbc", $8b0ca, $8b0d6 - $8b0ca
+
+Function8b0d6: ; 8b0d6
+ ld hl, $70dd
+ call LoadMenuDataHeader
+ ret
+; 8b0dd
+
+INCBIN "baserom.gbc", $8b0dd, $8b0e2 - $8b0dd
+
+Function8b0e2: ; 8b0e2
+ ld hl, $7113
+ call Function1d3c
+ ld a, [MenuSelection]
+ ld [$cf88], a
+ xor a
+ ld [$cf76], a
+ ld [hBGMapMode], a
+ call Function352f
+ call Function1ad2
+ call Function350c
+ ld a, [MenuSelection]
+ ld c, a
+ ld a, [$cfa9]
+ ld [MenuSelection], a
+ ld a, [$cf73]
+ cp $2
+ jr z, .asm_8b111
+ ld a, c
+ and a
+ ret nz
+
+.asm_8b111
+ xor a
+ ret
+; 8b113
+
+INCBIN "baserom.gbc", $8b113, $8b154 - $8b113
+
+Function8b154: ; 8b154
+ dec a
+ ld hl, $715e
+ ld b, $0
+ ld c, a
+ add hl, bc
+ add hl, bc
+ ret
+; 8b15e
+
+INCBIN "baserom.gbc", $8b15e, $8b170 - $8b15e
SpecialDratini: ; 0x8b170
; if ScriptVar is 0 or 1, change the moveset of the last Dratini in the party.
@@ -55970,7 +63516,136 @@ GetNthPartyMon: ; 0x8b1ce
scf
ret
-INCBIN "baserom.gbc", $8b1e1, $8b342 - $8b1e1
+Function8b1e1: ; 8b1e1
+ ld de, $71ed
+ call Function8b25b
+ ret z
+ call Function8b231
+ scf
+ ret
+; 8b1ed
+
+INCBIN "baserom.gbc", $8b1ed, $8b201 - $8b1ed
+
+Function8b201: ; 8b201
+ ld hl, StringBuffer2
+ ld [hl], $f9
+ inc hl
+ ld [hl], $50
+ ld de, $7215
+ call Function8b25b
+ ret z
+ call Function8b231
+ scf
+ ret
+; 8b215
+
+INCBIN "baserom.gbc", $8b215, $8b231 - $8b215
+
+Function8b231: ; 8b231
+ ld hl, $7238
+ call PrintText
+ ret
+; 8b238
+
+INCBIN "baserom.gbc", $8b238, $8b25b - $8b238
+
+Function8b25b: ; 8b25b
+ ld bc, $0000
+.asm_8b25e
+ call Function8b26c
+ call c, Function8b28e
+ call Function8b276
+ jr nz, .asm_8b25e
+ ld a, b
+ and a
+ ret
+; 8b26c
+
+Function8b26c: ; 8b26c
+ push de
+ push bc
+ call Function8b27a
+ ld a, c
+ rst JumpTable
+ pop bc
+ pop de
+ ret
+; 8b276
+
+Function8b276: ; 8b276
+ inc c
+ ld a, [de]
+ cp c
+ ret
+; 8b27a
+
+Function8b27a: ; 8b27a
+ inc de
+ ld a, [de]
+ ld l, a
+ inc de
+ ld a, [de]
+ ld h, a
+ ret
+; 8b281
+
+Function8b281: ; 8b281
+ inc de
+ inc de
+ inc de
+ ld a, [de]
+ ld l, a
+ inc de
+ ld a, [de]
+ ld h, a
+ ret
+; 8b28a
+
+Function8b28a: ; 8b28a
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ret
+; 8b28e
+
+Function8b28e: ; 8b28e
+ push de
+ push bc
+ ld a, b
+ and a
+ call z, Function8b29d
+ pop bc
+ call Function8b2a9
+ ld b, $1
+ pop de
+ ret
+; 8b29d
+
+Function8b29d: ; 8b29d
+ push de
+ call Function8b281
+ call Function8b28a
+ call PrintText
+ pop de
+ ret
+; 8b2a9
+
+Function8b2a9: ; 8b2a9
+ push bc
+ call Function8b281
+ inc hl
+ inc hl
+ ld b, $0
+ add hl, bc
+ add hl, bc
+ call Function8b28a
+ call PrintText
+ pop bc
+ ret
+; 8b2bb
+
+INCBIN "baserom.gbc", $8b2bb, $8b342 - $8b2bb
Function8b342: ; 8b342
@@ -56480,7 +64155,38 @@ Function8c084: ; 8c084
ret
; 8c092
-INCBIN "baserom.gbc", $8c092, $8c0c1 - $8c092
+Function8c092: ; 8c092
+ call Function8c0c1
+ ld c, $9
+ call GetTimePalFade
+ ld b, $4
+.asm_8c09c
+ call DmgToCgbTimePals
+ inc hl
+ inc hl
+ inc hl
+ ld c, $7
+ call DelayFrames
+ dec b
+ jr nz, .asm_8c09c
+ ret
+; 8c0ab
+
+Function8c0ab: ; 8c0ab
+ ld c, $0
+ call GetTimePalFade
+ ld b, $4
+ call Function8c15e
+ ret
+; 8c0b6
+
+Function8c0b6: ; 8c0b6
+ ld c, $9
+ call GetTimePalFade
+ ld b, $4
+ call Function8c16d
+ ret
+; 8c0c1
Function8c0c1: ; 8c0c1
@@ -57041,7 +64747,323 @@ Function8ca0c: ; 8ca0c
jp [hl]
; 8ca1b
-INCBIN "baserom.gbc", $8ca1b, $8cf4f - $8ca1b
+INCBIN "baserom.gbc", $8ca1b, $8cc04 - $8ca1b
+
+Function8cc04: ; 8cc04
+ ld a, [ScriptVar]
+ and a
+ jr nz, .asm_8cc14
+ ld a, $1
+ ld bc, $4060
+ ld de, $fca0
+ jr .asm_8cc1c
+
+.asm_8cc14
+ ld a, $ff
+ ld bc, $c0a0
+ ld de, $b460
+
+.asm_8cc1c
+ ld h, a
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld a, h
+ ld [$d191], a
+ ld a, c
+ ld [$d192], a
+ ld a, b
+ ld [$d193], a
+ ld a, e
+ ld [$d194], a
+ ld a, d
+ ld [$d195], a
+ ld a, [hSCX]
+ push af
+ ld a, [hSCY]
+ push af
+ call Function8ccc9
+ ld hl, $ff9e
+ ld a, [hl]
+ push af
+ ld [hl], $1
+.asm_8cc48
+ ld a, [$cf63]
+ and a
+ jr z, .asm_8cc66
+ bit 7, a
+ jr nz, .asm_8cc6b
+ callab Function8cf69
+ call Function8cdf7
+ call Function8cc99
+ call Function3b0c
+ call DelayFrame
+ jr .asm_8cc48
+
+.asm_8cc66
+ call Function8ceae
+ jr .asm_8cc48
+
+.asm_8cc6b
+ pop af
+ ld [$ff9e], a
+ call WhiteBGMap
+ xor a
+ ld [hLCDStatCustom], a
+ ld [$ffc7], a
+ ld [$ffc8], a
+ ld [hSCX], a
+ ld [Requested2bppSource], a
+ ld [$cf69], a
+ ld [Requested2bppDest], a
+ ld [$cf6b], a
+ ld [Requested2bpp], a
+ call ClearTileMap
+ pop af
+ ld [hSCY], a
+ pop af
+ ld [hSCX], a
+ xor a
+ ld [hBGMapMode], a
+ pop af
+ ld [rSVBK], a
+ ret
+; 8cc99
+
+Function8cc99: ; 8cc99
+ ld hl, $d200
+ ld c, $2f
+ ld a, [$cf64]
+ add a
+ ld [hSCX], a
+ call Function8ccc4
+ ld c, $30
+ ld a, [$cf65]
+ call Function8ccc4
+ ld c, $31
+ ld a, [$cf64]
+ add a
+ call Function8ccc4
+ ld a, [$d191]
+ ld d, a
+ ld hl, $cf64
+ ld a, [hl]
+ add d
+ add d
+ ld [hl], a
+ ret
+; 8ccc4
+
+Function8ccc4: ; 8ccc4
+.asm_8ccc4
+ ld [hli], a
+ dec c
+ jr nz, .asm_8ccc4
+ ret
+; 8ccc9
+
+Function8ccc9: ; 8ccc9
+ call WhiteBGMap
+ call ClearSprites
+ call DisableLCD
+ callab Function8cf53
+ call Function8cdc3
+ call Function8cd27
+ ld a, $90
+ ld [hWY], a
+ call EnableLCD
+ xor a
+ ld [hBGMapMode], a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ callba GetPlayerIcon
+ pop af
+ ld [rSVBK], a
+ ld hl, VTiles0
+ ld c, $4
+ call Request2bpp
+ ld hl, $00c0
+ add hl, de
+ ld d, h
+ ld e, l
+ ld hl, $8040
+ ld c, $4
+ call Request2bpp
+ call Function8cda6
+ ld hl, $cf63
+ xor a
+ ld [hli], a
+ ld a, [$d192]
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld de, $0005
+ call StartMusic2
+ ret
+; 8cd27
+
+Function8cd27: ; 8cd27
+ ld hl, VBGMap0
+ xor a
+.asm_8cd2b
+ call Function8cd74
+ ld b, $10
+ call Function8cd6c
+ inc a
+ cp $12
+ jr c, .asm_8cd2b
+ ld hl, $98c0
+ ld de, $4eff
+ ld c, $14
+ call Function8cd65
+ ld hl, $98e0
+ ld de, $4f13
+ ld c, $14
+ call Function8cd65
+ ld hl, $9900
+ ld de, $4f27
+ ld c, $14
+ call Function8cd65
+ ld hl, $9920
+ ld de, $4f3b
+ ld c, $14
+ call Function8cd65
+ ret
+; 8cd65
+
+Function8cd65: ; 8cd65
+.asm_8cd65
+ ld a, [de]
+ inc de
+ ld [hli], a
+ dec c
+ jr nz, .asm_8cd65
+ ret
+; 8cd6c
+
+Function8cd6c: ; 8cd6c
+.asm_8cd6c
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ inc hl
+ dec b
+ jr nz, .asm_8cd6c
+ ret
+; 8cd74
+
+Function8cd74: ; 8cd74
+ push hl
+ ld e, a
+ ld d, $0
+ ld hl, $4d82
+ add hl, de
+ add hl, de
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ pop hl
+ ret
+; 8cd82
+
+INCBIN "baserom.gbc", $8cd82, $8cda6 - $8cd82
+
+Function8cda6: ; 8cda6
+ ld hl, LYOverrides
+ ld bc, $0090
+ ld a, [$d192]
+ call ByteFill
+ ld hl, $d200
+ ld bc, $0090
+ ld a, [$d192]
+ call ByteFill
+ ld a, $43
+ ld [hLCDStatCustom], a
+ ret
+; 8cdc3
+
+Function8cdc3: ; 8cdc3
+ ld a, $1
+ ld [rVBK], a
+ ld hl, VBGMap0
+ ld bc, $0080
+ ld a, $2
+ call ByteFill
+ ld hl, $9880
+ ld bc, $0140
+ xor a
+ call ByteFill
+ ld hl, $99c0
+ ld bc, $0080
+ ld a, $2
+ call ByteFill
+ ld hl, $9907
+ ld bc, $0006
+ ld a, $4
+ call ByteFill
+ ld a, $0
+ ld [rVBK], a
+ ret
+; 8cdf7
+
+Function8cdf7: ; 8cdf7
+ ld a, [$cf63]
+ ld e, a
+ ld d, $0
+ ld hl, $4e06
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 8ce06
+
+INCBIN "baserom.gbc", $8ce06, $8ceae - $8ce06
+
+Function8ceae: ; 8ceae
+ callba Function8cf69
+ call Function8cdf7
+ call Function8cc99
+ call Function3b0c
+ call DelayFrame
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ ld a, [TimeOfDayPal]
+ push af
+ ld a, [$d19a]
+ push af
+ ld a, [TimeOfDay]
+ and $3
+ ld [TimeOfDayPal], a
+ ld a, $1
+ ld [$d19a], a
+ ld b, $9
+ call GetSGBLayout
+ call UpdateTimePals
+ ld a, [rBGP]
+ ld [$cfc7], a
+ ld a, [rOBP0]
+ ld [$cfc8], a
+ ld a, [rOBP1]
+ ld [$cfc9], a
+ pop af
+ ld [$d19a], a
+ pop af
+ ld [TimeOfDayPal], a
+ pop af
+ ld [rSVBK], a
+ ret
+; 8ceff
+
+INCBIN "baserom.gbc", $8ceff, $8cf4f - $8ceff
Function8cf4f: ; 8cf4f
call Function3238
@@ -58400,7 +66422,171 @@ Function90375: ; 90375
ret
; 90380
-INCBIN "baserom.gbc", $90380, $909f2 - $90380
+INCBIN "baserom.gbc", $90380, $9039a - $90380
+
+Function9039a: ; 9039a
+ push hl
+ ld hl, $445f
+ ld bc, $000c
+ call AddNTimes
+ ld a, [hli]
+ ld b, [hl]
+ ld c, a
+ pop hl
+ ret
+; 903a9
+
+INCBIN "baserom.gbc", $903a9, $90439 - $903a9
+
+Function90439: ; 90439
+ ld a, [$dbf9]
+ call Function9039a
+ ld d, c
+ ld e, b
+ push de
+ ld a, [$dbf9]
+ ld hl, $4461
+ ld bc, $000c
+ call AddNTimes
+ ld b, [hl]
+ inc hl
+ ld c, [hl]
+ push bc
+ call GetWorldMapLocation
+ ld e, a
+ callba GetLandmarkName
+ pop bc
+ pop de
+ ret
+; 9045f
+
+INCBIN "baserom.gbc", $9045f, $90913 - $9045f
+
+Function90913: ; 90913
+ ld a, [$ffaa]
+ push af
+ ld a, $1
+ ld [$ffaa], a
+ ld de, $4903
+ ld hl, $8ef0
+ ld bc, $2401
+ call Request1bpp
+ ld de, $490b
+ ld hl, $8f50
+ ld bc, $2401
+ call Request1bpp
+ xor a
+ ld [DefaultFlypoint], a
+.asm_90936
+ ld hl, $c590
+ ld bc, $0412
+ call TextBox
+ call Function1d6e
+ ld hl, $4a3f
+ call PrintText
+ ld hl, $c4e5
+ ld b, $2
+ ld c, $9
+ call TextBox
+ ld hl, $c4ea
+ ld [hl], $ef
+ ld hl, $c526
+ ld [hl], $f5
+ ld hl, $c50e
+ call Function909de
+ call Function321c
+ ld c, $a
+ call DelayFrames
+.asm_9096a
+ call Functiona57
+ call Function90993
+ jr nc, .asm_9096a
+ call Function1c07
+ call Function1ad2
+ ld hl, $4a44
+ call PrintText
+ call Function1dcf
+ jr c, .asm_90936
+ ld a, [DefaultFlypoint]
+ ld [StringBuffer2], a
+ call $0663
+ call Functione51
+ pop af
+ ld [$ffaa], a
+ ret
+; 90993
+
+Function90993: ; 90993
+ ld a, [hJoyPressed]
+ and $1
+ jr z, .asm_9099b
+ scf
+ ret
+
+.asm_9099b
+ ld hl, $ffa9
+ ld a, [hl]
+ and $40
+ jr nz, .asm_909ba
+ ld a, [hl]
+ and $80
+ jr nz, .asm_909ad
+ call DelayFrame
+ and a
+ ret
+
+.asm_909ad
+ ld hl, DefaultFlypoint
+ ld a, [hl]
+ and a
+ jr nz, .asm_909b6
+ ld a, $7
+
+.asm_909b6
+ dec a
+ ld [hl], a
+ jr .asm_909c6
+
+.asm_909ba
+ ld hl, DefaultFlypoint
+ ld a, [hl]
+ cp $6
+ jr c, .asm_909c4
+ ld a, $ff
+
+.asm_909c4
+ inc a
+ ld [hl], a
+
+.asm_909c6
+ xor a
+ ld [hBGMapMode], a
+ ld hl, $c4fa
+ ld b, $2
+ ld c, $9
+ call ClearBox
+ ld hl, $c50e
+ call Function909de
+ call WaitBGMap
+ and a
+ ret
+; 909de
+
+Function909de: ; 909de
+ push hl
+ ld a, [DefaultFlypoint]
+ ld e, a
+ ld d, $0
+ ld hl, $49f2
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld d, [hl]
+ ld e, a
+ pop hl
+ call PlaceString
+ ret
+; 909f2
dw Sunday
dw Monday
@@ -58427,7 +66613,35 @@ Saturday:
db "SATURDAY@"
-INCBIN "baserom.gbc", $90a3f, $90c4e - $90a3f
+INCBIN "baserom.gbc", $90a3f, $90a54 - $90a3f
+
+Function90a54: ; 90a54
+ ld a, [$d4c2]
+ set 7, a
+ ld [$d4c2], a
+ ld hl, $c5b9
+ ld bc, $0312
+ call ClearBox
+ ld hl, $4a6c
+ call Function13e5
+ ret
+; 90a6c
+
+INCBIN "baserom.gbc", $90a6c, $90a88 - $90a6c
+
+Function90a88: ; 90a88
+ ld a, [$d4c2]
+ res 7, a
+ ld [$d4c2], a
+ ld hl, $c5b9
+ ld bc, $0312
+ call ClearBox
+ ld hl, $4aa0
+ call Function13e5
+ ret
+; 90aa0
+
+INCBIN "baserom.gbc", $90aa0, $90c4e - $90aa0
Function90c4e: ; 90c4e
call Functiond79
@@ -61968,7 +70182,43 @@ WildRockMonTable: ; b83de
db $ff ; end
; b83e5
-INCBIN "baserom.gbc", $b83e5, $b9229 - $b83e5
+INCBIN "baserom.gbc", $b83e5, $b8f8f - $b83e5
+
+Functionb8f8f: ; b8f8f
+ ld a, c
+ swap a
+ and $f
+ ld hl, $4ff9
+ ld d, $0
+ ld e, a
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [hli]
+ ld b, a
+ push hl
+ inc hl
+ ld a, c
+ and $f
+ ld c, a
+ push hl
+ ld hl, $4fb8
+ ld e, b
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ pop de
+ call _hl_
+ pop hl
+ ld c, [hl]
+ ret
+; b8fb8
+
+INCBIN "baserom.gbc", $b8fb8, $b9229 - $b8fb8
Functionb9229: ; b9229
ld a, [CurPartyMon]
@@ -65485,7 +73735,148 @@ Functionfb53e: ; fb53e
ret
; fb57e
-INCBIN "baserom.gbc", $fb57e, $fb6ed - $fb57e
+Functionfb57e: ; fb57e
+ ld a, [$d003]
+ ld hl, OTPartyMon1Species
+ call GetPartyLocation
+ push hl
+ ld a, [$d003]
+ inc a
+ ld c, a
+ ld b, $0
+ ld hl, OTPartyCount
+ add hl, bc
+ ld a, [hl]
+ pop hl
+ cp $fd
+ jr z, .asm_fb59c
+ cp [hl]
+ jr nz, .asm_fb5db
+
+.asm_fb59c
+ ld b, h
+ ld c, l
+ ld hl, $001f
+ add hl, bc
+ ld a, [hl]
+ cp $65
+ jr nc, .asm_fb5db
+ ld a, [InLinkBattle]
+ cp $1
+ jr nz, .asm_fb5d9
+ ld hl, OTPartySpecies
+ ld a, [$d003]
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ cp $51
+ jr z, .asm_fb5d9
+ cp $52
+ jr z, .asm_fb5d9
+ ld [CurSpecies], a
+ call GetBaseData
+ ld hl, $cbea
+ add hl, bc
+ add hl, bc
+ ld a, [BaseType1]
+ cp [hl]
+ jr nz, .asm_fb5db
+ inc hl
+ ld a, [BaseType2]
+ cp [hl]
+ jr nz, .asm_fb5db
+
+.asm_fb5d9
+ and a
+ ret
+
+.asm_fb5db
+ scf
+ ret
+; fb5dd
+
+Functionfb5dd: ; fb5dd
+ ld a, [DefaultFlypoint]
+ ld d, a
+ ld a, [PartyCount]
+ ld b, a
+ ld c, $0
+.asm_fb5e7
+ ld a, c
+ cp d
+ jr z, .asm_fb5f8
+ push bc
+ ld a, c
+ ld hl, PartyMon1CurHP
+ call GetPartyLocation
+ pop bc
+ ld a, [hli]
+ or [hl]
+ jr nz, .asm_fb60b
+
+.asm_fb5f8
+ inc c
+ dec b
+ jr nz, .asm_fb5e7
+ ld a, [$d003]
+ ld hl, OTPartyMon1CurHP
+ call GetPartyLocation
+ ld a, [hli]
+ or [hl]
+ jr nz, .asm_fb60b
+ scf
+ ret
+
+.asm_fb60b
+ and a
+ ret
+; fb60d
+
+Functionfb60d: ; fb60d
+ ld hl, $c4a4
+ ld de, PlayerName
+ call PlaceString
+ ld a, $14
+ ld [bc], a
+ ld hl, $c544
+ ld de, $d26b
+ call PlaceString
+ ld a, $14
+ ld [bc], a
+ ld hl, $c4bb
+ ld de, PartySpecies
+ call Functionfb634
+ ld hl, $c55b
+ ld de, OTPartySpecies
+
+Functionfb634: ; fb634
+ ld c, $0
+.asm_fb636
+ ld a, [de]
+ cp $ff
+ ret z
+ ld [$d265], a
+ push bc
+ push hl
+ push de
+ push hl
+ ld a, c
+ ld [hProduct], a
+ call GetPokemonName
+ pop hl
+ call PlaceString
+ pop de
+ inc de
+ pop hl
+ ld bc, $0014
+ add hl, bc
+ pop bc
+ inc c
+ jr .asm_fb636
+; fb656
+
+INCBIN "baserom.gbc", $fb656, $fb6ed - $fb656
Functionfb6ed: ; fb6ed
ld hl, $780f
@@ -65657,7 +74048,38 @@ Functionfb802: ; fb802
ret
; fb80f
-INCBIN "baserom.gbc", $fb80f, $fb877 - $fb80f
+INCBIN "baserom.gbc", $fb80f, $fb841 - $fb80f
+
+Functionfb841: ; fb841
+ ld a, [ScriptVar]
+ call Function37f3
+ jr c, .asm_fb876
+ ld hl, CryPitch
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld bc, $fec0
+ add hl, bc
+ ld a, l
+ ld [CryPitch], a
+ ld a, h
+ ld [CryEcho], a
+ ld hl, CryLength
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld bc, $0060
+ add hl, bc
+ ld a, l
+ ld [CryLength], a
+ ld a, h
+ ld [$c2b3], a
+ callba PlayCry
+ call WaitSFX
+
+.asm_fb876
+ ret
+; fb877
Functionfb877: ; fb877
ld a, [$ffde]
@@ -65712,7 +74134,42 @@ Functionfb8c8: ; fb8c8
ret
; fb8f1
-INCBIN "baserom.gbc", $fb8f1, $fba18 - $fb8f1
+Functionfb8f1: ; fb8f1
+ push bc
+ push hl
+ ld a, [$d265]
+ ld b, a
+ ld c, $0
+ ld hl, $791c
+.asm_fb8fc
+ inc c
+ ld a, [hli]
+ cp b
+ jr nz, .asm_fb8fc
+ ld a, c
+ ld [$d265], a
+ pop hl
+ pop bc
+ ret
+; fb908
+
+Functionfb908: ; fb908
+ push bc
+ push hl
+ ld a, [$d265]
+ dec a
+ ld hl, $791c
+ ld b, $0
+ ld c, a
+ add hl, bc
+ ld a, [hl]
+ ld [$d265], a
+ pop hl
+ pop bc
+ ret
+; fb91c
+
+INCBIN "baserom.gbc", $fb91c, $fba18 - $fb91c
Functionfba18: ; fba18
@@ -65736,11 +74193,115 @@ Functionfba18: ; fba18
ret
; fba2e
-INCBIN "baserom.gbc", $fba2e, $fbbfc - $fba2e
+INCBIN "baserom.gbc", $fba2e, $fbb32 - $fba2e
+
+Functionfbb32: ; fbb32
+ callba Function50000
+ jr c, .asm_fbb9e
+ ld a, [CurPartySpecies]
+ cp $81
+ jr nz, .asm_fbba4
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1Species
+ ld bc, $0030
+ call AddNTimes
+ push hl
+ ld bc, $0015
+ add hl, bc
+ ld d, h
+ ld e, l
+ pop hl
+ ld bc, $0006
+ add hl, bc
+ ld b, h
+ ld c, l
+ call CalcMagikarpLength
+ call Functionfbbdb
+ callba Function105f33
+ ld hl, $7ba9
+ call PrintText
+ ld hl, Buffer1
+ ld de, $dfe8
+ ld c, $2
+ call StringCmp
+ jr nc, .asm_fbb98
+ ld hl, Buffer1
+ ld de, $dfe8
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ ld [de], a
+ inc de
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1OT
+ call SkipNames
+ call CopyBytes
+ ld a, $3
+ ld [ScriptVar], a
+ ret
+
+.asm_fbb98
+ ld a, $2
+ ld [ScriptVar], a
+ ret
+
+.asm_fbb9e
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+
+.asm_fbba4
+ xor a
+ ld [ScriptVar], a
+ ret
+; fbba9
+
+INCBIN "baserom.gbc", $fbba9, $fbbae - $fbba9
+
+Functionfbbae: ; fbbae
+ ld hl, $96e0
+ ld de, $7bbb
+ ld bc, $3e02
+ call Request2bpp
+ ret
+; fbbbb
+
+INCBIN "baserom.gbc", $fbbbb, $fbbdb - $fbbbb
+
+Functionfbbdb: ; fbbdb
+ call Functionfbbae
+ ld hl, StringBuffer1
+ ld de, Buffer1
+ ld bc, $4102
+ call PrintNum
+ ld [hl], $6e
+ inc hl
+ ld de, Buffer2
+ ld bc, $4102
+ call PrintNum
+ ld [hl], $6f
+ inc hl
+ ld [hl], $50
+ ret
+; fbbfc
INCLUDE "battle/magikarp_length.asm"
-INCBIN "baserom.gbc", $fbccf, $fbced - $fbccf
+INCBIN "baserom.gbc", $fbccf, $fbcd2 - $fbccf
+
+Functionfbcd2: ; fbcd2
+ ld a, [$dfe8]
+ ld [Buffer1], a
+ ld a, [$dfe9]
+ ld [Buffer2], a
+ call Functionfbbdb
+ ld hl, $7ce8
+ call PrintText
+ ret
+; fbce8
+
+INCBIN "baserom.gbc", $fbce8, $fbced - $fbce8
INCLUDE "battle/hidden_power.asm"
@@ -68459,7 +77020,33 @@ Function1006dc: ; 1006dc
ret
; 1006fd
-INCBIN "baserom.gbc", $1006fd, $10079c - $1006fd
+Function1006fd: ; 1006fd
+ ld a, $4
+ ld hl, $a800
+ call GetSRAMBank
+ xor a
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ call CloseSRAM
+ ret
+; 10070d
+
+Function10070d: ; 10070d
+ ld a, $4
+ ld hl, $a800
+ call GetSRAMBank
+ xor a
+ ld [hli], a
+ ld a, $a
+ ld [hli], a
+ xor a
+ ld [hli], a
+ call CloseSRAM
+ ret
+; 100720
+
+INCBIN "baserom.gbc", $100720, $10079c - $100720
Function10079c: ; 10079c
@@ -68568,7 +77155,44 @@ Function100826: ; 100826
ret
; 100846
-INCBIN "baserom.gbc", $100846, $1008e0 - $100846
+INCBIN "baserom.gbc", $100846, $1008a6 - $100846
+
+Function1008a6: ; 1008a6
+ ld a, $4
+ ld hl, $a800
+ call GetSRAMBank
+ ld a, [hli]
+ ld [StringBuffer2], a
+ ld a, [hli]
+ ld [$d087], a
+ ld a, [hli]
+ ld [$d088], a
+ call CloseSRAM
+ ld a, [$d088]
+ ld b, a
+ ld a, $0
+ sub b
+ jr nc, .asm_1008c8
+ add $3c
+
+.asm_1008c8
+ ld b, a
+ ld a, [$d087]
+ ld c, a
+ ld a, $a
+ sbc c
+ ld c, a
+ jr c, .asm_1008da
+ ld a, [StringBuffer2]
+ and a
+ jr nz, .asm_1008da
+ ret
+
+.asm_1008da
+ call Function10070d
+ ld c, $0
+ ret
+; 1008e0
Function1008e0: ; 1008e0
@@ -69430,7 +78054,39 @@ Function100ed4: ; 100ed4
ret
; 100edf
-INCBIN "baserom.gbc", $100edf, $101231 - $100edf
+INCBIN "baserom.gbc", $100edf, $1011f1 - $100edf
+
+Function1011f1: ; 1011f1
+ ld a, $4
+ call GetSRAMBank
+ ld a, [$a60c]
+ ld [$dc41], a
+ call CloseSRAM
+ ld hl, $dc41
+ res 4, [hl]
+ ld hl, GameTimerPause
+ bit 7, [hl]
+ jr z, .asm_101210
+ ld hl, $dc41
+ set 4, [hl]
+
+.asm_101210
+ call Function10209c
+ xor a
+ ld [$dc5f], a
+ ld [$dc60], a
+ ld a, $4
+ ld [InLinkBattle], a
+ ret
+; 101220
+
+Function101220: ; 101220
+ xor a
+ ld [InLinkBattle], a
+ ret
+; 101225
+
+INCBIN "baserom.gbc", $101225, $101231 - $101225
Function101231: ; 101231
ld d, $2
@@ -69566,7 +78222,17 @@ Function10202c: ; 10202c
ret
; 102048
-INCBIN "baserom.gbc", $102048, $1020ea - $102048
+INCBIN "baserom.gbc", $102048, $10209c - $102048
+
+Function10209c: ; 10209c
+ ld a, $ff
+ ld hl, $dc42
+ ld bc, $0008
+ call ByteFill
+ ret
+; 1020a8
+
+INCBIN "baserom.gbc", $1020a8, $1020ea - $1020a8
Function1020ea: ; 1020ea
ld hl, $dc41
@@ -69708,7 +78374,320 @@ Function1021e0: ; 1021e0
ret
; 1021ea
-INCBIN "baserom.gbc", $1021ea, $10389d - $1021ea
+INCBIN "baserom.gbc", $1021ea, $103612 - $1021ea
+
+Function103612: ; 103612
+ ld hl, $7640
+ call LoadMenuDataHeader
+ ld a, [$dc40]
+ and $f
+ jr z, .asm_103622
+ ld [$cf88], a
+
+.asm_103622
+ call Function1d81
+ call Function1c17
+ jr c, .asm_10363b
+ ld a, [$cfa9]
+ ld [ScriptVar], a
+ ld c, a
+ ld a, [$dc40]
+ and $f0
+ or c
+ ld [$dc40], a
+ ret
+
+.asm_10363b
+ xor a
+ ld [ScriptVar], a
+ ret
+; 103640
+
+INCBIN "baserom.gbc", $103640, $10366e - $103640
+
+Function10366e: ; 10366e
+ callba Function10632f
+ bit 7, c
+ jr z, .asm_10369b
+ ld hl, $775d
+ call PrintText
+ call Function1dcf
+ jr c, .asm_103696
+ callba Function8b1e1
+ jr nc, .asm_103690
+ call Functiona36
+ jr .asm_103696
+
+.asm_103690
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+
+.asm_103696
+ xor a
+ ld [ScriptVar], a
+ ret
+
+.asm_10369b
+ ld hl, $dc40
+ bit 7, [hl]
+ set 7, [hl]
+ jr nz, .asm_1036b5
+ ld hl, $7762
+ call PrintText
+ call Function1dcf
+ jr c, .asm_1036b5
+ call Function1036f9
+ call Functiona36
+
+.asm_1036b5
+ call Function103700
+ jr c, .asm_1036f4
+ ld hl, $7747
+ call LoadMenuDataHeader
+ call Function1d81
+ call Function1c07
+ jr c, .asm_1036f4
+ ld a, [$cfa9]
+ cp $1
+ jr z, .asm_1036d9
+ cp $2
+ jr z, .asm_1036f4
+ cp $3
+ jr z, .asm_1036ec
+ jr .asm_1036b5
+
+.asm_1036d9
+ callba Function8b1e1
+ jr nc, .asm_1036e6
+ call Functiona36
+ jr .asm_1036f4
+
+.asm_1036e6
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+
+.asm_1036ec
+ call Function1036f9
+ call Functiona36
+ jr .asm_1036b5
+
+.asm_1036f4
+ xor a
+ ld [ScriptVar], a
+ ret
+; 1036f9
+
+Function1036f9: ; 1036f9
+ ld hl, $7767
+ call PrintText
+ ret
+; 103700
+
+Function103700: ; 103700
+ ld c, $a
+ ld hl, $dc20
+ bit 4, [hl]
+ jr z, .asm_10370f
+ callba Function1008a6
+
+.asm_10370f
+ ld a, c
+ ld [StringBuffer2], a
+ ld a, [StringBuffer2]
+ cp $5
+ jr nc, .asm_103724
+ cp $2
+ jr nc, .asm_10372c
+ cp $1
+ jr nc, .asm_103734
+ jr .asm_10373c
+
+.asm_103724
+ ld hl, $776c
+ call PrintText
+ and a
+ ret
+
+.asm_10372c
+ ld hl, $7771
+ call PrintText
+ and a
+ ret
+
+.asm_103734
+ ld hl, $7776
+ call PrintText
+ and a
+ ret
+
+.asm_10373c
+ ld hl, $777b
+ call PrintText
+ call Functiona36
+ scf
+ ret
+; 103747
+
+INCBIN "baserom.gbc", $103747, $103780 - $103747
+
+Function103780: ; 103780
+ ld a, [$d265]
+ push af
+ call Function10378c
+ pop af
+ ld [$d265], a
+ ret
+; 10378c
+
+Function10378c: ; 10378c
+ ld c, $0
+ ld hl, $dc20
+ bit 4, [hl]
+ jr nz, .asm_10379c
+ ld c, $1
+ ld hl, $dc20
+ set 4, [hl]
+
+.asm_10379c
+ push bc
+ callba Function14ab2
+ pop bc
+ jr c, .asm_1037b5
+ ld a, $1
+ ld [ScriptVar], a
+ ld a, c
+ and a
+ ret z
+ callba Function1006fd
+ ret
+
+.asm_1037b5
+ xor a
+ ld [ScriptVar], a
+ ld a, c
+ and a
+ ret z
+ ld hl, $dc20
+ res 4, [hl]
+ ret
+; 1037c2
+
+Function1037c2: ; 1037c2
+ call Function103823
+ jr c, .asm_1037de
+ ld a, [$dc5f]
+ and a
+ jr z, .asm_1037de
+ ld hl, $77e6
+ call PrintText
+ call Function1dcf
+ jr c, .asm_1037de
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+
+.asm_1037de
+ xor a
+ ld [$dc5f], a
+ ld [ScriptVar], a
+ ret
+; 1037e6
+
+INCBIN "baserom.gbc", $1037e6, $1037eb - $1037e6
+
+Function1037eb: ; 1037eb
+ call Function103823
+ jr nc, .asm_103807
+ ld hl, $7819
+ call PrintText
+ call Functiona36
+ ld hl, $781e
+ call PrintText
+ call Functiona36
+ xor a
+ ld [ScriptVar], a
+ ret
+
+.asm_103807
+ ld a, [$dc60]
+ and a
+ jr nz, .asm_103813
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+
+.asm_103813
+ ld a, $2
+ ld [ScriptVar], a
+ ret
+; 103819
+
+INCBIN "baserom.gbc", $103819, $103823 - $103819
+
+Function103823: ; 103823
+ callba Function10632f
+ bit 7, c
+ jr nz, .asm_103838
+ callba Function1008a6
+ ld a, c
+ cp $1
+ jr c, .asm_10383a
+
+.asm_103838
+ xor a
+ ret
+
+.asm_10383a
+ scf
+ ret
+; 10383c
+
+Function10383c: ; 10383c
+ ld a, $1
+ ld [$dc60], a
+ xor a
+ ld hl, $dc5c
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+ ld hl, $7876
+ call PrintText
+ call Functiona36
+ callba Script_reloadmappart
+ callba Function4a94e
+ jr c, .asm_103870
+ ld hl, DefaultFlypoint
+ ld de, $dc5c
+ ld bc, $0003
+ call CopyBytes
+ xor a
+ ld [ScriptVar], a
+ ret
+
+.asm_103870
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+; 103876
+
+INCBIN "baserom.gbc", $103876, $10387b - $103876
+
+Function10387b: ; 10387b
+ callba Function10632f
+ bit 7, c
+ ret nz
+ callba Function1008a6
+ ld a, c
+ ld [StringBuffer2], a
+ ld hl, $7898
+ call PrintText
+ call Functiona36
+ ret
+; 103898
+
+INCBIN "baserom.gbc", $103898, $10389d - $103898
SECTION "bank41",ROMX,BANK[$41]
@@ -70093,7 +79072,14 @@ EnteredConnection: ; 1046c4
; 1046c6
-INCBIN "baserom.gbc", $1046c6, $10486d - $1046c6
+INCBIN "baserom.gbc", $1046c6, $1047eb - $1046c6
+
+Function1047eb: ; 1047eb
+ ld b, $9
+ jp GetSGBLayout
+; 1047f0
+
+INCBIN "baserom.gbc", $1047f0, $10486d - $1047f0
Function10486d: ; 10486d
@@ -70143,7 +79129,20 @@ Function10486d: ; 10486d
ret
; 1048ba
-INCBIN "baserom.gbc", $1048ba, $1050c8 - $1048ba
+INCBIN "baserom.gbc", $1048ba, $1050b9 - $1048ba
+
+Function1050b9: ; 1050b9
+ call Function105106
+ ld hl, $abe3
+ ld a, [hl]
+ inc a
+ jr nz, .asm_1050c5
+ ld [hld], a
+ ld [hl], a
+
+.asm_1050c5
+ jp CloseSRAM
+; 1050c8
Function1050c8: ; 1050c8
call Function105106
@@ -70552,7 +79551,13 @@ UpdateUsedMoves: ; 105ed0
HallOfFame2: ; 0x105ef6
ret
-INCBIN "baserom.gbc", $105ef7, $105f79 - $105ef7
+INCBIN "baserom.gbc", $105ef7, $105f33 - $105ef7
+
+Function105f33: ; 105f33
+ ret
+; 105f34
+
+INCBIN "baserom.gbc", $105f34, $105f79 - $105f34
Function105f79: ; 105f79
ret
@@ -70605,7 +79610,19 @@ Function106094: ; 106094
ret
; 106095
-INCBIN "baserom.gbc", $106095, $1060b5 - $106095
+INCBIN "baserom.gbc", $106095, $1060a2 - $106095
+
+Function1060a2: ; 1060a2
+ ret
+; 1060a3
+
+INCBIN "baserom.gbc", $1060a3, $1060af - $1060a3
+
+Function1060af: ; 1060af
+ ret
+; 1060b0
+
+INCBIN "baserom.gbc", $1060b0, $1060b5 - $1060b0
Function1060b5: ; 1060b5
ret
@@ -70624,7 +79641,13 @@ Function1060c1: ; 1060c1
ret
; 1060c2
-INCBIN "baserom.gbc", $1060c2, $1060d3 - $1060c2
+INCBIN "baserom.gbc", $1060c2, $1060cd - $1060c2
+
+Function1060cd: ; 1060cd
+ ret
+; 1060ce
+
+INCBIN "baserom.gbc", $1060ce, $1060d3 - $1060ce
Function1060d3: ; 1060d3
@@ -70870,7 +79893,20 @@ Function1062ff: ; 1062ff
ret
; 10630f
-INCBIN "baserom.gbc", $10630f, $106462 - $10630f
+Function10630f: ; 10630f
+ xor a
+ ld [ScriptVar], a
+ ret
+; 106314
+
+INCBIN "baserom.gbc", $106314, $10632f - $106314
+
+Function10632f: ; 10632f
+ or a
+ ret
+; 106331
+
+INCBIN "baserom.gbc", $106331, $106462 - $106331
Function106462: ; 106462
ret
@@ -70920,7 +79956,238 @@ INCBIN "baserom.gbc", $1065ad, $106dbc - $1065ad
SECTION "bank42",ROMX,BANK[$42]
-INCBIN "baserom.gbc", $108000, $109407 - $108000
+INCBIN "baserom.gbc", $108000, $108016 - $108000
+
+Function108016: ; 108016
+ ld a, $0
+ ld [$cf65], a
+ ld de, $4021
+ jp Function108089
+; 108021
+
+INCBIN "baserom.gbc", $108021, $108089 - $108021
+
+Function108089: ; 108089
+ ld hl, BattleEnded
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ld a, [$ffde]
+ push af
+ xor a
+ ld [$ffde], a
+ ld hl, VramState
+ ld a, [hl]
+ push af
+ res 0, [hl]
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set 4, [hl]
+ call Function108157
+.asm_1080a6
+ call Function10824b
+ jr nc, .asm_1080a6
+ pop af
+ ld [Options], a
+ pop af
+ ld [VramState], a
+ pop af
+ ld [$ffde], a
+ ret
+; 1080b7
+
+INCBIN "baserom.gbc", $1080b7, $108157 - $1080b7
+
+Function108157: ; 108157
+ xor a
+ ld [$cf63], a
+ call WhiteBGMap
+ call ClearSprites
+ call ClearTileMap
+ call DisableLCD
+ call Function1081ad
+ call Function1081ca
+ call Functione51
+ call Functione58
+ call EnableLCD
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ callba Function8cf53
+ xor a
+ ld hl, $c300
+ ld [hli], a
+ ld [hl], $0
+ call DelayFrame
+ ld a, [PlayerSDefLevel]
+ ld de, PlayerAccLevel
+ call Function108239
+ ld a, [PlayerLightScreenCount]
+ ld de, PlayerReflectCount
+ call Function108239
+ xor a
+ call Function108b98
+ call Function108af4
+ ret
+; 1081ad
+
+Function1081ad: ; 1081ad
+ ld a, $1
+ ld [rVBK], a
+ ld hl, VTiles0
+ ld bc, $1800
+ xor a
+ call ByteFill
+ ld a, $0
+ ld [rVBK], a
+ ld hl, VTiles0
+ ld bc, $1800
+ xor a
+ call ByteFill
+ ret
+; 1081ca
+
+Function1081ca: ; 1081ca
+ ld a, $1
+ ld [rVBK], a
+ ld hl, VBGMap0
+ ld bc, $0800
+ ld a, $0
+ call ByteFill
+ ld a, $0
+ ld [rVBK], a
+ ld hl, VBGMap0
+ ld bc, $0800
+ ld a, $7f
+ call ByteFill
+ ret
+; 1081e9
+
+INCBIN "baserom.gbc", $1081e9, $108239 - $1081e9
+
+Function108239: ; 108239
+ push de
+ ld [$d265], a
+ call GetPokemonName
+ ld hl, StringBuffer1
+ pop de
+ ld bc, $000b
+ call CopyBytes
+ ret
+; 10824b
+
+Function10824b: ; 10824b
+ ld a, [$cf63]
+ bit 7, a
+ jr nz, .asm_10825a
+ call Function10827b
+ call DelayFrame
+ and a
+ ret
+
+.asm_10825a
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ call Functione51
+ call Functione58
+ callba Function106462
+ callba Function106464
+ scf
+ ret
+; 10827b
+
+Function10827b: ; 10827b
+ ld a, [$cf63]
+ ld e, a
+ ld d, $0
+ ld hl, $428a
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 10828a
+
+INCBIN "baserom.gbc", $10828a, $108af4 - $10828a
+
+Function108af4: ; 108af4
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld a, [$cf65]
+ and $1
+ jr z, .asm_108b1c
+ ld hl, $5187
+ ld de, Unkn2Pals
+ ld bc, $0040
+ call CopyBytes
+ ld hl, $5187
+ ld de, OBPals
+ ld bc, $0040
+ call CopyBytes
+ jr .asm_108b34
+
+.asm_108b1c
+ ld hl, $5147
+ ld de, Unkn2Pals
+ ld bc, $0040
+ call CopyBytes
+ ld hl, $5147
+ ld de, OBPals
+ ld bc, $0040
+ call CopyBytes
+
+.asm_108b34
+ pop af
+ ld [rSVBK], a
+ ld a, $e4
+ call Functioncf8
+ ld a, $e4
+ call DmgToCgbBGPals
+ call DelayFrame
+ ret
+; 108b45
+
+INCBIN "baserom.gbc", $108b45, $108b98 - $108b45
+
+Function108b98: ; 108b98
+ ld d, a
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld a, [$cf65]
+ and $1
+ xor d
+ jr z, .asm_108bad
+ ld hl, $4ba0
+ jr .asm_108bb0
+
+.asm_108bad
+ ld hl, $4b98
+
+.asm_108bb0
+ ld de, $d038
+ ld bc, $0040
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ ret
+; 108bbd
+
+INCBIN "baserom.gbc", $108bbd, $109407 - $108bbd
IntroLogoGFX: ; 109407
INCBIN "gfx/intro/logo.lz"
@@ -71769,7 +81036,14 @@ Function1161b8: ; 1161b8
jp [hl]
; 1161c7
-INCBIN "baserom.gbc", $1161c7, $117a7f - $1161c7
+INCBIN "baserom.gbc", $1161c7, $117656 - $1161c7
+
+Function117656: ; 117656
+ callba GiveOddEgg
+ ret
+; 11765d
+
+INCBIN "baserom.gbc", $11765d, $117a7f - $11765d
; everything from here to the end of the bank is related to the
@@ -72121,7 +81395,384 @@ Function117cdd: ; 0x117cdd
SECTION "bank46",ROMX,BANK[$46]
-INCBIN "baserom.gbc", $118000, $118ba5 - $118000
+Function118000: ; 118000
+ ld a, $1
+ ld [$cd38], a
+ jr .asm_11800b
+
+ xor a
+ ld [$cd38], a
+
+.asm_11800b
+ call Function1183cb
+ ld a, $18
+ ld [$cd33], a
+ ld a, $19
+ ld [$cd34], a
+ ld a, $4
+ ld [$c3f0], a
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+.asm_118024
+ call Functiona57
+ call Function118473
+ ld a, [$cf66]
+ cp $1b
+ jr c, .asm_118037
+ ld a, [$cd34]
+ ld [$cf66], a
+
+.asm_118037
+ call Function1184a5
+ call Function11a8fa
+ callba Function115dd3
+ callba Function11619d
+ call DelayFrame
+ ld a, [$cf66]
+ ld hl, $cd33
+ cp [hl]
+ jr nz, .asm_118024
+ pop af
+ ld [rSVBK], a
+ call Function118452
+ call Function222a
+ ret
+; 11805f
+
+Function11805f: ; 11805f
+ ld a, $1
+ ld [$cd38], a
+ call Function1183cb
+ ld a, $18
+ ld [$cd33], a
+ ld a, $19
+ ld [$cd34], a
+ ld a, $4
+ ld [$c3f0], a
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+.asm_11807d
+ call Functiona57
+ call Function118473
+ ld a, [$cf66]
+ cp $1b
+ jr c, .asm_118090
+ ld a, [$cd34]
+ ld [$cf66], a
+
+.asm_118090
+ call Function11857c
+ call Function11a8fa
+ callba Function115dd3
+ callba Function11619d
+ call DelayFrame
+ ld a, [$cf66]
+ ld hl, $cd33
+ cp [hl]
+ jr nz, .asm_11807d
+ pop af
+ ld [rSVBK], a
+ call Function118452
+ call Function222a
+ ret
+; 1180b8
+
+INCBIN "baserom.gbc", $1180b8, $11811a - $1180b8
+
+Function11811a: ; 11811a
+ ld a, 1
+ ld [$cd38], a
+ jr Function118125
+
+Function118121: ; 118121
+ xor a
+ ld [$cd38], a
+
+Function118125: ; 118125
+ call Function1183cb
+ ld a, $3
+ ld [$cd33], a
+ ld a, $d
+ ld [$cd34], a
+ ld a, $4
+ ld [$c3f0], a
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+.asm_11813e
+ call Functiona57
+ call Function118473
+ ld a, [$cf66]
+ cp $f
+ jr c, .asm_118151
+ ld a, [$cd34]
+ ld [$cf66], a
+
+.asm_118151
+ call Function11854d
+ call Function11a8fa
+ callba Function115dd3
+ callba Function11619d
+ call DelayFrame
+ ld a, [$cf66]
+ ld hl, $cd33
+ cp [hl]
+ jr nz, .asm_11813e
+ xor a
+ ld [Unkn1Pals], a
+ pop af
+ ld [rSVBK], a
+ call Function118452
+ call Function118180
+ call Function222a
+ ret
+; 118180
+
+Function118180: ; 118180
+ ld a, [ScriptVar]
+ and a
+ ret nz
+ ld a, [$cd38]
+ and a
+ ret z
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $cd69
+ ld de, $a89c
+ ld bc, $0016
+ call CopyBytes
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+ ld de, $d202
+ ld c, $96
+ callba Function17d0b3
+ jr c, .asm_1181d0
+ ld de, $d202
+ ld bc, $0196
+ callba Function17d1e1
+ jr c, .asm_1181d0
+ ld hl, $d202
+ ld de, $a8b2
+ ld bc, $0096
+ call CopyBytes
+.asm_1181c9
+ pop af
+ ld [rSVBK], a
+ call CloseSRAM
+ ret
+
+.asm_1181d0
+ ld a, $d3
+ ld [$c300], a
+ ld [ScriptVar], a
+ jr .asm_1181c9
+; 1181da
+
+Function1181da: ; 1181da
+ call Function1183cb
+ ld a, $2
+ ld [$cd38], a
+ ld a, $21
+ ld [$cd33], a
+ ld a, $22
+ ld [$cd34], a
+ ld a, $4
+ ld [$c3f0], a
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+.asm_1181f8
+ call Functiona57
+ call Function118473
+ ld a, [$cf66]
+ cp $28
+ jr c, .asm_11820b
+ ld a, [$cd34]
+ ld [$cf66], a
+
+.asm_11820b
+ call Function1185c3
+ call Function11a8fa
+ callba Function115dd3
+ callba Function11619d
+ call DelayFrame
+ ld a, [$cf66]
+ ld hl, $cd33
+ cp [hl]
+ jr nz, .asm_1181f8
+ pop af
+ ld [rSVBK], a
+ call Function118452
+ call Function222a
+ ret
+; 118233
+
+INCBIN "baserom.gbc", $118233, $1183cb - $118233
+
+Function1183cb: ; 1183cb
+ di
+ ld a, [rIE]
+ ld [$cd32], a
+ call Function2fef
+ xor a
+ ld [rIF], a
+ ld [$c300], a
+ ld [$c301], a
+ ld [$c302], a
+ ld [$cd80], a
+ ld [$cd65], a
+ ld [$cd66], a
+ ld [$cd67], a
+ ld [$cd68], a
+ ld [$c31a], a
+ ld [$cd89], a
+ ld [$cd8a], a
+ ld [$cd8b], a
+ ld [$c3ec], a
+ ld [$c3ed], a
+ ld [$c3ee], a
+ ld [$c3ef], a
+ ld hl, VramState
+ ld a, [hl]
+ ld [$cd7f], a
+ set 1, [hl]
+ ld a, $f
+ ld [rIE], a
+ ld a, $1
+ ld [$ffc9], a
+ ld [$ffe9], a
+ ei
+ callba Function106462
+ callba Function106464
+ callba Function115d99
+ callba Function11615a
+ ld a, $5
+ call GetSRAMBank
+ xor a
+ ld [$bfff], a
+ call CloseSRAM
+ ret
+; 118440
+
+INCBIN "baserom.gbc", $118440, $118452 - $118440
+
+Function118452: ; 118452
+ di
+ xor a
+ ld [$ffc9], a
+ ld [$ffe9], a
+ ld [$ff9e], a
+ call Function2ff7
+ xor a
+ ld [rIF], a
+ ld a, [$cd32]
+ ld [rIE], a
+ ei
+ ld a, [$cd7f]
+ ld [VramState], a
+ ld a, [$c300]
+ ld [ScriptVar], a
+ ret
+; 118473
+
+Function118473: ; 118473
+ ld a, [$cd65]
+ and a
+ ret z
+ ld a, [$cd66]
+ inc a
+ ld [$cd66], a
+ cp $3c
+ ret nz
+ xor a
+ ld [$cd66], a
+ ld a, [$cd67]
+ inc a
+ ld [$cd67], a
+ cp $3c
+ ret nz
+ ld a, [$cd68]
+ inc a
+ ld [$cd68], a
+ cp $63
+ jr z, .asm_1184a0
+ xor a
+ ld [$cd67], a
+ ret
+
+.asm_1184a0
+ xor a
+ ld [$cd65], a
+ ret
+; 1184a5
+
+Function1184a5: ; 1184a5
+ ld a, [$cf66]
+ ld e, a
+ ld d, $0
+ ld hl, $44b4
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 1184b4
+
+INCBIN "baserom.gbc", $1184b4, $11854d - $1184b4
+
+Function11854d: ; 11854d
+ ld a, [$cf66]
+ ld e, a
+ ld d, $0
+ ld hl, $455c
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 11855c
+
+INCBIN "baserom.gbc", $11855c, $11857c - $11855c
+
+Function11857c: ; 11857c
+ ld a, [$cf66]
+ ld e, a
+ ld d, $0
+ ld hl, $458b
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 11858b
+
+INCBIN "baserom.gbc", $11858b, $1185c3 - $11858b
+
+Function1185c3: ; 1185c3
+ ld a, [$cf66]
+ ld e, a
+ ld d, $0
+ ld hl, $45d2
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 1185d2
+
+INCBIN "baserom.gbc", $1185d2, $118ba5 - $1185d2
ExchangeDownloadURL: ; 0x118ba5
ascii "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/exchange/index.txt"
@@ -72148,7 +81799,22 @@ IndexDownloadURL: ; 0x118ce4
db $0
-INCBIN "baserom.gbc", $118d35, $11aa13 - $118d35
+INCBIN "baserom.gbc", $118d35, $11a8fa - $118d35
+
+Function11a8fa: ; 11a8fa
+ ld a, [$c31a]
+ ld e, a
+ ld d, $0
+ ld hl, $6909
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 11a909
+
+INCBIN "baserom.gbc", $11a909, $11aa13 - $11a909
UnknownText_0x11aa13: ; 0x11aa13
db $0, "SAVE FILE will be", $4f
@@ -72248,7 +81914,620 @@ UnknownText_0x11ac1f: ; 0x11ac1f
db "Please wait…", $57
; 0x11ac3e
-INCBIN "baserom.gbc", $11ac3e, $11b98f - $11ac3e
+Function11ac3e: ; 11ac3e
+ call SpeechTextBox
+ call FadeToMenu
+ callab Function8e814
+ call Function11ac51
+ call Function2b3c
+ ret
+; 11ac51
+
+Function11ac51: ; 11ac51
+ xor a
+ ld [hBGMapMode], a
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set 4, [hl]
+ ld a, [VramState]
+ push af
+ xor a
+ ld [VramState], a
+ ld a, [$ffaa]
+ push af
+ ld a, $1
+ ld [$ffaa], a
+ xor a
+ ld [$ffde], a
+ ld [$cd49], a
+ ld [$cd4a], a
+ ld [$cd4c], a
+ ld [$cd4d], a
+ ld [$cd4e], a
+ call Function11ad1b
+ call DelayFrame
+.asm_11ac82
+ call Functiona57
+ ld a, [$cf63]
+ bit 7, a
+ jr nz, .asm_11aca8
+ call Function11b314
+ call Function11acb7
+ call Function11ad6e
+ ld a, $78
+ ld [$c3b5], a
+ callba Function8cf7a
+ callba Function104061
+ jr .asm_11ac82
+
+.asm_11aca8
+ call ClearSprites
+ pop af
+ ld [$ffaa], a
+ pop af
+ ld [VramState], a
+ pop af
+ ld [Options], a
+ ret
+; 11acb7
+
+Function11acb7: ; 11acb7
+ ld hl, $7a44
+ ld a, [$cd49]
+ ld c, a
+ ld b, $0
+ sla c
+ rl b
+ sla c
+ rl b
+ sla c
+ rl b
+ add hl, bc
+ ld de, $c51e
+ ld a, [hli]
+ ld [de], a
+ ld de, $c52c
+ ld bc, $0007
+ call CopyBytes
+ ld a, [$cd49]
+ inc a
+ ld [$cd49], a
+ ld a, [hl]
+ cp $ff
+ jr nz, .asm_11aceb
+ xor a
+ ld [$cd49], a
+
+.asm_11aceb
+ ld hl, $7b7d
+ ld a, [$cd4a]
+ ld c, a
+ ld b, $0
+ sla c
+ rl b
+ sla c
+ rl b
+ sla c
+ rl b
+ add hl, bc
+ ld de, $c557
+ ld bc, $0007
+ call CopyBytes
+ ld a, [$cd4a]
+ inc a
+ ld [$cd4a], a
+ inc hl
+ ld a, [hl]
+ cp $ff
+ ret nz
+ xor a
+ ld [$cd4a], a
+ ret
+; 11ad1b
+
+Function11ad1b: ; 11ad1b
+ call WhiteBGMap
+ call ClearSprites
+ call ClearTileMap
+ callba Function17c000
+ ld a, [$cfa9]
+ ld [$cd82], a
+ dec a
+ ld [hConnectedMapWidth], a
+ ld a, $10
+ ld [$c3b7], a
+ ld hl, $683f
+ ld a, $23
+ ld e, $4
+ rst FarCall
+ ld hl, $683f
+ ld a, $23
+ ld e, $5
+ rst FarCall
+ ld hl, PlayerSDefLevel
+ ld bc, $0115
+ xor a
+ call ByteFill
+ xor a
+ ld [$cf63], a
+ ld [$cf64], a
+ ld [$cf65], a
+ ld [$cf66], a
+ ld [$cd30], a
+ ld a, $2
+ ld [$c7d4], a
+ callba Function40bdc
+ ret
+; 11ad6e
+
+Function11ad6e: ; 11ad6e
+ ld a, [$cf63]
+ ld hl, $6d78
+ call Function11b239
+ jp [hl]
+; 11ad78
+
+INCBIN "baserom.gbc", $11ad78, $11b239 - $11ad78
+
+Function11b239: ; 11b239
+ ld e, a
+ ld d, $0
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ret
+; 11b242
+
+INCBIN "baserom.gbc", $11b242, $11b314 - $11b242
+
+Function11b314: ; 11b314
+ call Function11b31b
+ call Function11b3d9
+ ret
+; 11b31b
+
+Function11b31b: ; 11b31b
+ ld hl, $7350
+ ld a, [$cf63]
+ cp $2
+ jr c, .asm_11b349
+ ld a, [$c7d1]
+ cp $4
+ jr nc, .asm_11b344
+ cp $3
+ jr c, .asm_11b349
+ ld a, [$cf63]
+ cp $2
+ jr z, .asm_11b349
+ cp $3
+ jr z, .asm_11b349
+ cp $6
+ jr z, .asm_11b349
+ ld bc, $737b
+ jr .asm_11b34c
+
+.asm_11b344
+ ld bc, $7389
+ jr .asm_11b34c
+
+.asm_11b349
+ ld bc, $736d
+
+.asm_11b34c
+ call Function11b397
+ ret
+; 11b350
+
+INCBIN "baserom.gbc", $11b350, $11b397 - $11b350
+
+Function11b397: ; 11b397
+ ld de, Sprites
+.asm_11b39a
+ ld a, [hl]
+ cp $ff
+ ret z
+ ld a, [$c7d1]
+ and $7
+ swap a
+ add [hl]
+ inc hl
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [bc]
+ inc bc
+ ld [de], a
+ inc de
+ ld a, $5
+ ld [de], a
+ inc de
+ jr .asm_11b39a
+; 11b3b6
+
+INCBIN "baserom.gbc", $11b3b6, $11b3d9 - $11b3b6
+
+Function11b3d9: ; 11b3d9
+ ld de, $c470
+ push de
+ ld a, [$c7d2]
+ dec a
+ ld e, a
+ ld a, [$c7d1]
+ ld hl, $c7d0
+ add [hl]
+ cp e
+ jr z, .asm_11b40d
+ ld hl, $0000
+ ld bc, $0070
+ call AddNTimes
+ ld e, l
+ ld d, h
+ ld b, $0
+ ld a, d
+ or e
+ jr z, .asm_11b40f
+ ld a, [$c7d2]
+ ld c, a
+.asm_11b401
+ ld a, e
+ sub c
+ ld e, a
+ ld a, d
+ sbc $0
+ ld d, a
+ jr c, .asm_11b40f
+ inc b
+ jr .asm_11b401
+
+.asm_11b40d
+ ld b, $70
+
+.asm_11b40f
+ ld a, $15
+ add b
+ pop hl
+ ld [hli], a
+ cp $41
+ jr c, .asm_11b42b
+ ld a, [$cf63]
+ cp $4
+ jr z, .asm_11b43b
+ cp $5
+ jr z, .asm_11b43b
+ cp $7
+ jr z, .asm_11b43b
+ cp $8
+ jr z, .asm_11b43b
+
+.asm_11b42b
+ ld a, $9b
+ ld [hli], a
+ ld a, [$cd4c]
+ add $3c
+ ld [hli], a
+ ld a, [$cd4c]
+ add $1
+ ld [hl], a
+ ret
+
+.asm_11b43b
+ ld a, $9b
+ ld [hli], a
+ ld a, $39
+ ld [hli], a
+ xor a
+ ld [hl], a
+ ret
+; 11b444
+
+Function11b444: ; 11b444
+ call Function11b44b
+ call Function11b45c
+ ret
+; 11b44b
+
+Function11b44b: ; 11b44b
+ xor a
+ ld [$cf63], a
+ ld [$cf64], a
+ ld [$cf65], a
+ ld [$cf66], a
+ call UpdateTime
+ ret
+; 11b45c
+
+Function11b45c: ; 11b45c
+.asm_11b45c
+ call Function11b46a
+ call DelayFrame
+ ld a, [$cf63]
+ cp $4
+ jr nz, .asm_11b45c
+ ret
+; 11b46a
+
+Function11b46a: ; 11b46a
+ ld a, [$cf63]
+ ld e, a
+ ld d, $0
+ ld hl, $7479
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 11b479
+
+INCBIN "baserom.gbc", $11b479, $11b5e8 - $11b479
+
+Function11b5e8: ; 11b5e8
+ ld a, $0
+ call GetSRAMBank
+ ld hl, $d4ba
+ ld de, EnemyMoveAnimation
+ ld bc, $0004
+ call CopyBytes
+ call CloseSRAM
+ ld a, $5
+ call GetSRAMBank
+ ld hl, EnemyMoveAnimation
+ ld de, $b08c
+ ld bc, $0004
+ call CopyBytes
+ ld a, $2
+ ld [$a800], a
+ ld a, [$a81f]
+ ld [$cd2a], a
+ ld a, [$a820]
+ ld [$cd2b], a
+ ld a, [$a821]
+ ld [$cd2c], a
+ ld a, [$a822]
+ ld [$cd2d], a
+ ld a, [$a823]
+ ld [$cd2e], a
+ ld a, [$a824]
+ ld [$cd2f], a
+ ld a, [$a825]
+ ld [$cd30], a
+ ld a, [$a826]
+ ld [$cd31], a
+ call CloseSRAM
+ call Function11b44b
+ call Function11b64c
+ ret
+; 11b64c
+
+Function11b64c: ; 11b64c
+.asm_11b64c
+ call Function11b65a
+ call DelayFrame
+ ld a, [$cf63]
+ cp $1
+ jr nz, .asm_11b64c
+ ret
+; 11b65a
+
+Function11b65a: ; 11b65a
+ ld a, [$cf63]
+ ld e, a
+ ld d, $0
+ ld hl, $7669
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 11b669
+
+INCBIN "baserom.gbc", $11b669, $11b7e5 - $11b669
+
+Function11b7e5: ; 11b7e5
+ ld a, [EnemyMovePP]
+ ld [PlayerLightScreenCount], a
+ ld [CurPartySpecies], a
+ ld a, [$cd81]
+ ld [$c74e], a
+ ld hl, $c63d
+ ld de, $c724
+ ld bc, $0005
+ call CopyBytes
+ ld a, $50
+ ld [de], a
+ ld a, [PlayerMoveAccuracy]
+ ld [$c731], a
+ ld a, [PlayerMovePP]
+ ld [$c732], a
+ ld hl, $c622
+ ld a, [hli]
+ ld [$c72f], a
+ ld a, [hl]
+ ld [$c730], a
+ ld bc, EnemyMovePP
+ callba Function4f301
+ ld a, c
+ ld [$c733], a
+ call SpeechTextBox
+ call FadeToMenu
+ callba Function108016
+ callba Function17d1f1
+ ld a, $1
+ ld [$d1e9], a
+ ld a, $2
+ ld [InLinkBattle], a
+ callba Function421d8
+ xor a
+ ld [InLinkBattle], a
+ callba Function14a58
+ ld a, $5
+ call GetSRAMBank
+ ld a, $5
+ ld [$a800], a
+ call CloseSRAM
+ ld a, [MapGroup]
+ ld b, a
+ ld a, [MapNumber]
+ ld c, a
+ call Function2147
+ ld a, d
+ or e
+ jr z, .asm_11b872
+ ld a, $1
+ ld [de], a
+
+.asm_11b872
+ call Function2b3c
+ call Function3d47
+ ret
+; 11b879
+
+Function11b879: ; 11b879
+ callba Function17089a
+ ld a, [ScriptVar]
+ and a
+ ret z
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$a800]
+ ld [ScriptVar], a
+ ld a, [$a890]
+ ld [$cd49], a
+ ld a, [$a891]
+ ld [$cd4a], a
+ ld a, [$a892]
+ ld [$cd4b], a
+ ld a, [$a893]
+ ld [$cd4c], a
+ call CloseSRAM
+ ld a, [ScriptVar]
+ and a
+ ret z
+ ld hl, $cd4c
+ ld a, [hRTCDayHi]
+ cp [hl]
+ ret nz
+ dec hl
+ ld a, [hRTCDayLo]
+ cp [hl]
+ ret nz
+ ld hl, $cd4a
+ ld a, [hRTCHours]
+ cp [hl]
+ jr nc, .asm_11b8d8
+ ld a, $18
+ sub [hl]
+ ld hl, hRTCHours
+ add [hl]
+ ld [$cd4c], a
+ ld a, [hRTCMinutes]
+ ld [$cd4b], a
+ xor a
+ ld [$cd4a], a
+ jr .asm_11b8e2
+
+.asm_11b8d8
+ ld a, [hRTCMinutes]
+ ld [$cd4b], a
+ ld a, [hRTCHours]
+ ld [$cd4c], a
+
+.asm_11b8e2
+ xor a
+ ld l, a
+ ld h, a
+ ld b, a
+ ld d, a
+ ld a, [$cd4b]
+ ld e, a
+ ld a, [$cd4c]
+ ld c, $3c
+ call AddNTimes
+ add hl, de
+ push hl
+ xor a
+ ld l, a
+ ld h, a
+ ld b, a
+ ld d, a
+ ld a, [$cd49]
+ ld e, a
+ ld a, [$cd4a]
+ ld c, $3c
+ call AddNTimes
+ add hl, de
+ ld a, l
+ cpl
+ add $1
+ ld e, a
+ ld a, h
+ cpl
+ adc $0
+ ld d, a
+ pop hl
+ add hl, de
+ ld de, $ff88
+ add hl, de
+ bit 7, h
+ ret z
+ ld a, $2
+ ld [ScriptVar], a
+ ret
+; 11b920
+
+Function11b920: ; 11b920
+ call Function11b44b
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $a81f
+ ld de, $c626
+ ld bc, $0008
+ call CopyBytes
+ call CloseSRAM
+ call Function118000
+ ret
+; 11b93b
+
+Function11b93b: ; 11b93b
+ ld a, $5
+ call GetSRAMBank
+ xor a
+ ld [$a800], a
+ ld hl, $a823
+ ld de, EnemyMoveAnimation
+ ld bc, $008f
+ call CopyBytes
+ call CloseSRAM
+ ld a, $8
+ ld [BGMapBuffer], a
+ ld a, $c6
+ ld [$cd21], a
+ ld a, $11
+ ld [CreditsTimer], a
+ ld a, $c6
+ ld [$cd23], a
+ ld a, $41
+ ld [$cd24], a
+ ld a, $c6
+ ld [$cd25], a
+ ld a, $46
+ ld [$cd26], a
+ ld a, $c6
+ ld [$cd27], a
+ ld a, $4b
+ ld [$cd28], a
+ ld a, $c6
+ ld [$cd29], a
+ call Function11b98f
+ callba Function14a58
+ ret
+; 11b98f
Function11b98f: ; 11b98f
ld hl, PartyCount
@@ -72348,7 +82627,15 @@ Function11b98f: ; 11b98f
ret
; 11ba38
-INCBIN "baserom.gbc", $11ba38, $11bc9e - $11ba38
+Function11ba38: ; 11ba38
+ callba Functione538
+ ret c
+ xor a
+ ld [ScriptVar], a
+ ret
+; 11ba44
+
+INCBIN "baserom.gbc", $11ba44, $11bc9e - $11ba44
SECTION "bank47",ROMX,BANK[$47]
@@ -72666,7 +82953,78 @@ Function11c156: ; 11c156
jr .asm_11c18f
; 11c1ab
-INCBIN "baserom.gbc", $11c1ab, $11c254 - $11c1ab
+Function11c1ab: ; 11c1ab
+ ld a, [$ffaa]
+ push af
+ ld a, $1
+ ld [$ffaa], a
+ call Function11c1b9
+ pop af
+ ld [$ffaa], a
+ ret
+; 11c1b9
+
+Function11c1b9: ; 11c1b9
+ call Function11c1ca
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ call Function11c283
+ pop af
+ ld [rSVBK], a
+ ret
+; 11c1ca
+
+Function11c1ca: ; 11c1ca
+ xor a
+ ld [$cf63], a
+ ld [$cf64], a
+ ld [$cf65], a
+ ld [$cf66], a
+ ld [$cd23], a
+ ld [BGMapBuffer], a
+ ld [$cd21], a
+ ld [CreditsTimer], a
+ ld [$cd35], a
+ ld [$cd2b], a
+ ld a, $ff
+ ld [$cd24], a
+ ld a, [$cfa9]
+ dec a
+ call Function11c254
+ call WhiteBGMap
+ call ClearSprites
+ call Functionfdb
+ call Function11d323
+ call Function32f9
+ call DisableLCD
+ ld hl, $567e
+ ld de, VTiles2
+ ld bc, $0060
+ call CopyBytes
+ ld hl, $56de
+ ld de, VTiles0
+ call Decompress
+ call EnableLCD
+ callba Function104061
+ callba Function8cf53
+ callba Function1500c
+ callba Function40c30
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, PlayerSDefLevel
+ ld de, LYOverrides
+ ld bc, Start
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ call Function11d4aa
+ call Function11d3ba
+ ret
+; 11c254
Function11c254: ; 11c254
push af
@@ -72689,7 +83047,281 @@ Function11c254: ; 11c254
ret
; 11c277
-INCBIN "baserom.gbc", $11c277, $11f686 - $11c277
+INCBIN "baserom.gbc", $11c277, $11c283 - $11c277
+
+Function11c283: ; 11c283
+.asm_11c283
+ call Functiona57
+ ld a, [hJoyPressed]
+ ld [hJoypadPressed], a
+ ld a, [$cf63]
+ bit 7, a
+ jr nz, .asm_11c2a2
+ call Function11c2ac
+ callba Function8cf69
+ callba Function104061
+ jr .asm_11c283
+
+.asm_11c2a2
+ callba Function8cf53
+ call ClearSprites
+ ret
+; 11c2ac
+
+Function11c2ac: ; 11c2ac
+ ld a, [$cf63]
+ ld e, a
+ ld d, $0
+ ld hl, $42bb
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 11c2bb
+
+INCBIN "baserom.gbc", $11c2bb, $11d323 - $11c2bb
+
+Function11d323: ; 11d323
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, $533a
+ ld de, Unkn1Pals
+ ld bc, $0080
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ ret
+; 11d33a
+
+INCBIN "baserom.gbc", $11d33a, $11d3ba - $11d33a
+
+Function11d3ba: ; 11d3ba
+ ld a, [rSVBK]
+ push af
+ ld hl, BattleMonSpclDef
+ ld a, $0
+ ld [$cd2d], a
+ ld [hli], a
+ ld a, $d8
+ ld [$cd2e], a
+ ld [hl], a
+ ld a, $fe
+ ld [$cd2f], a
+ ld a, $54
+ ld [$cd30], a
+ ld a, $a8
+ ld [$cd31], a
+ ld a, $c6
+ ld [$cd32], a
+ ld a, $4a
+ ld [$cd33], a
+ ld a, $c6
+ ld [$cd34], a
+ ld hl, $723c
+ ld a, $2d
+
+Function11d3ef: ; 11d3ef
+ push af
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ push hl
+ ld hl, Unkn1Pals
+ add hl, de
+ ld a, [$cd2d]
+ ld e, a
+ ld a, [$cd2e]
+ ld d, a
+ push bc
+.asm_11d406
+ ld a, $3
+ ld [rSVBK], a
+ ld a, [hli]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ pop af
+ ld [de], a
+ inc de
+ ld a, $3
+ ld [rSVBK], a
+ ld a, [hli]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ pop af
+ ld [de], a
+ inc de
+ dec bc
+ ld a, c
+ or b
+ jr nz, .asm_11d406
+ ld a, [$cd2f]
+ ld l, a
+ ld a, [$cd30]
+ ld h, a
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ ld a, l
+ ld [$cd2f], a
+ ld a, h
+ ld [$cd30], a
+ push bc
+ pop hl
+ ld c, $0
+.asm_11d43d
+ ld a, [hl]
+ cp $ff
+ jr z, .asm_11d453
+ call Function11d493
+ jr nz, .asm_11d44a
+ inc hl
+ jr .asm_11d43d
+
+.asm_11d44a
+ ld a, [hli]
+ ld [de], a
+ inc de
+ xor a
+ ld [de], a
+ inc de
+ inc c
+ jr .asm_11d43d
+
+.asm_11d453
+ pop hl
+ ld b, $0
+ add hl, bc
+ push hl
+ pop bc
+ ld a, [$cd31]
+ ld l, a
+ ld a, [$cd32]
+ ld h, a
+ ld a, c
+ ld [hli], a
+ ld a, b
+ ld [hli], a
+ ld a, l
+ ld [$cd31], a
+ ld a, h
+ ld [$cd32], a
+ ld a, [$cd33]
+ ld l, a
+ ld a, [$cd34]
+ ld h, a
+ ld a, e
+ ld [$cd2d], a
+ ld [hli], a
+ ld a, d
+ ld [$cd2e], a
+ ld [hli], a
+ ld a, l
+ ld [$cd33], a
+ ld a, h
+ ld [$cd34], a
+ pop hl
+ pop af
+ dec a
+ jr z, .asm_11d48f
+ jp Function11d3ef
+
+.asm_11d48f
+ pop af
+ ld [rSVBK], a
+ ret
+; 11d493
+
+Function11d493: ; 11d493
+ push hl
+ push bc
+ push de
+ dec a
+ ld hl, rSVBK
+ ld e, $1
+ ld [hl], e
+ call CheckCaughtMon
+ ld hl, rSVBK
+ ld e, $5
+ ld [hl], e
+ pop de
+ pop bc
+ pop hl
+ ret
+; 11d4aa
+
+Function11d4aa: ; 11d4aa
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+ ld hl, $5aac
+ ld bc, $7220
+ xor a
+ ld [$cd2d], a
+ inc a
+ ld [$cd2e], a
+ ld a, $e
+.asm_11d4c1
+ push af
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ push hl
+ ld hl, $0005
+ add hl, de
+ ld a, [bc]
+ inc bc
+ inc bc
+ push bc
+.asm_11d4cf
+ push af
+ push hl
+ ld a, [hli]
+ ld e, a
+ ld a, [hl]
+ ld d, a
+ ld hl, Unkn1Pals
+ add hl, de
+ ld a, [$cd2d]
+ ld [hli], a
+ inc a
+ ld [$cd2d], a
+ ld a, [$cd2e]
+ ld [hl], a
+ pop hl
+ ld de, $0008
+ add hl, de
+ pop af
+ dec a
+ jr nz, .asm_11d4cf
+ ld hl, $cd2d
+ xor a
+ ld [hli], a
+ inc [hl]
+ pop bc
+ pop hl
+ pop af
+ dec a
+ jr nz, .asm_11d4c1
+ pop af
+ ld [rSVBK], a
+ ret
+; 11d4fe
+
+INCBIN "baserom.gbc", $11d4fe, $11f686 - $11d4fe
SECTION "bank48",ROMX,BANK[$48]
@@ -73516,7 +84148,114 @@ INCBIN "gfx/pics/201r/back.lz"
SECTION "bank5B",ROMX,BANK[$5B]
-INCBIN "baserom.gbc", $16c000, $16d69a - $16c000
+INCBIN "baserom.gbc", $16c000, $16d421 - $16c000
+
+Function16d421: ; 16d421
+ ld de, $4fc1
+ ld hl, VTiles2
+ ld bc, $5b46
+ call Get2bpp
+ ret
+; 16d42e
+
+Function16d42e: ; 16d42e
+ ld hl, $5465
+ ld de, TileMap
+ ld bc, $0168
+ call CopyBytes
+ ret
+; 16d43b
+
+INCBIN "baserom.gbc", $16d43b, $16d61d - $16d43b
+
+Function16d61d: ; 16d61d
+ ld h, d
+ ld l, e
+ push bc
+ push hl
+ call Function16d640
+ pop hl
+ pop bc
+ ld de, $0939
+ add hl, de
+ inc b
+ inc b
+ inc c
+ inc c
+ ld a, $7
+.asm_16d630
+ push bc
+ push hl
+.asm_16d632
+ ld [hli], a
+ dec c
+ jr nz, .asm_16d632
+ pop hl
+ ld de, $0014
+ add hl, de
+ pop bc
+ dec b
+ jr nz, .asm_16d630
+ ret
+; 16d640
+
+Function16d640: ; 16d640
+ push hl
+ ld a, $30
+ ld [hli], a
+ inc a
+ call Function16d66d
+ inc a
+ ld [hl], a
+ pop hl
+ ld de, $0014
+ add hl, de
+.asm_16d64f
+ push hl
+ ld a, $33
+ ld [hli], a
+ ld a, $7f
+ call Function16d66d
+ ld [hl], $34
+ pop hl
+ ld de, $0014
+ add hl, de
+ dec b
+ jr nz, .asm_16d64f
+ ld a, $35
+ ld [hli], a
+ ld a, $36
+ call Function16d66d
+ ld [hl], $37
+ ret
+; 16d66d
+
+Function16d66d: ; 16d66d
+ ld d, c
+.asm_16d66e
+ ld [hli], a
+ dec d
+ jr nz, .asm_16d66e
+ ret
+; 16d673
+
+Function16d673: ; 16d673
+ call Function16d696
+ call Function16d6ae
+ callba Function49856
+ callba Functionfb60d
+ ld hl, $c5fe
+ ld de, $568f
+ call PlaceString
+ ret
+; 16d68f
+
+INCBIN "baserom.gbc", $16d68f, $16d696 - $16d68f
+
+Function16d696: ; 16d696
+ call Function16d421
+ ret
+; 16d69a
Function16d69a: ; 16d69a
@@ -73527,12 +84266,387 @@ Function16d69a: ; 16d69a
ret
; 16d6a7
-INCBIN "baserom.gbc", $16d6a7, $16d7fe - $16d6a7
+Function16d6a7: ; 16d6a7
+ callba Function49811
+ ret
+; 16d6ae
+
+Function16d6ae: ; 16d6ae
+ call Function16d42e
+ ld hl, $55cd
+ ld de, TileMap
+ ld bc, $0028
+ call CopyBytes
+ ld hl, $55f5
+ ld de, $c5e0
+ ld bc, $0028
+ call CopyBytes
+ ret
+; 16d6ca
+
+Function16d6ca: ; 16d6ca
+ call Function16d61d
+ ret
+; 16d6ce
+
+Function16d6ce: ; 16d6ce
+ call Function1d6e
+ call Function16d6e1
+ callba Function87d
+ call Function1d7d
+ call Function3200
+ ret
+; 16d6e1
+
+Function16d6e1: ; 16d6e1
+ ld hl, $c56c
+ ld b, $1
+ ld c, $a
+ ld a, $10
+ call Predef
+ ld hl, $c581
+ ld de, $5701
+ call PlaceString
+ call WaitBGMap
+ call Function3200
+ ld c, $32
+ jp DelayFrames
+; 16d701
+
+INCBIN "baserom.gbc", $16d701, $16d70c - $16d701
+
+Function16d70c: ; 16d70c
+ call Function16d725
+ call Function16d713
+ ret
+; 16d713
+
+Function16d713: ; 16d713
+ push bc
+ push af
+ ld a, [$ffa9]
+ and $f0
+ ld b, a
+ ld a, [hJoyPressed]
+ and $f
+ or b
+ ld b, a
+ pop af
+ ld a, b
+ pop bc
+ ld d, a
+ ret
+; 16d725
+
+Function16d725: ; 16d725
+ ld hl, $cfa6
+ res 7, [hl]
+ ld a, [hBGMapMode]
+ push af
+ call Function16d734
+ pop af
+ ld [hBGMapMode], a
+ ret
+; 16d734
+
+Function16d734: ; 16d734
+.asm_16d734
+ call Function16d77a
+ call Function16d759
+ call Function16d76a
+ jr nc, .asm_16d758
+ callba Function24270
+ jr c, .asm_16d758
+ ld a, [$cfa5]
+ bit 7, a
+ jr nz, .asm_16d758
+ call Function16d713
+ ld b, a
+ ld a, [$cfa8]
+ and b
+ jr z, .asm_16d734
+
+.asm_16d758
+ ret
+; 16d759
+
+Function16d759: ; 16d759
+ ld a, [hOAMUpdate]
+ push af
+ ld a, $1
+ ld [hOAMUpdate], a
+ call WaitBGMap
+ pop af
+ ld [hOAMUpdate], a
+ xor a
+ ld [hBGMapMode], a
+ ret
+; 16d76a
+
+Function16d76a: ; 16d76a
+.asm_16d76a
+ call RTC
+ call Function16d7e7
+ ret c
+ ld a, [$cfa5]
+ bit 7, a
+ jr z, .asm_16d76a
+ and a
+ ret
+; 16d77a
+
+Function16d77a: ; 16d77a
+ ld hl, $cfac
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [hl]
+ cp $1f
+ jr nz, .asm_16d792
+ ld a, [$cfab]
+ ld [hl], a
+ push hl
+ push bc
+ ld bc, $000b
+ add hl, bc
+ ld [hl], a
+ pop bc
+ pop hl
+
+.asm_16d792
+ ld a, [$cfa1]
+ ld b, a
+ ld a, [$cfa2]
+ ld c, a
+ call Function1d05
+ ld a, [$cfa7]
+ swap a
+ and $f
+ ld c, a
+ ld a, [$cfa9]
+ ld b, a
+ xor a
+ dec b
+ jr z, .asm_16d7b1
+.asm_16d7ad
+ add c
+ dec b
+ jr nz, .asm_16d7ad
+
+.asm_16d7b1
+ ld c, $14
+ call AddNTimes
+ ld a, [$cfa7]
+ and $f
+ ld c, a
+ ld a, [$cfaa]
+ ld b, a
+ xor a
+ dec b
+ jr z, .asm_16d7c8
+.asm_16d7c4
+ add c
+ dec b
+ jr nz, .asm_16d7c4
+
+.asm_16d7c8
+ ld c, a
+ add hl, bc
+ ld a, [hl]
+ cp $1f
+ jr z, .asm_16d7de
+ ld [$cfab], a
+ ld [hl], $1f
+ push hl
+ push bc
+ ld bc, $000b
+ add hl, bc
+ ld [hl], $1f
+ pop bc
+ pop hl
+
+.asm_16d7de
+ ld a, l
+ ld [$cfac], a
+ ld a, h
+ ld [$cfad], a
+ ret
+; 16d7e7
+
+Function16d7e7: ; 16d7e7
+ ld a, [$cfa5]
+ bit 6, a
+ jr z, .asm_16d7f4
+ callba Function8cf62
+
+.asm_16d7f4
+ call Functiona57
+ call Function16d713
+ and a
+ ret z
+ scf
+ ret
+; 16d7fe
SECTION "bank5C",ROMX,BANK[$5C]
-INCBIN "baserom.gbc", $170000, $170923 - $170000
+INCBIN "baserom.gbc", $170000, $1700b0 - $170000
+
+Function1700b0: ; 1700b0
+ call Function17021e
+ callba Function118121
+ ret
+; 1700ba
+
+Function1700ba: ; 1700ba
+ call Function17021e
+ callba Function11811a
+ ret
+; 1700c4
+
+INCBIN "baserom.gbc", $1700c4, $170114 - $1700c4
+
+Function170114: ; 170114
+ call Function17021e
+ call Function170121
+ callba Function11805f
+ ret
+; 170121
+
+Function170121: ; 170121
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $a948
+ ld de, EnemyMoveAnimation
+ ld bc, $00f6
+ call CopyBytes
+ call CloseSRAM
+ call Function170c8b
+ ret
+; 170139
+
+INCBIN "baserom.gbc", $170139, $170215 - $170139
+
+Function170215: ; 170215
+ xor a
+ ld [$cf63], a
+ call Function17022c
+ ret
+; 17021d
+
+Function17021d: ; 17021d
+ ret
+; 17021e
+
+Function17021e: ; 17021e
+ xor a
+ ld [$cf63], a
+ ld [$cf64], a
+ ld [$cf65], a
+ ld [$cf66], a
+ ret
+; 17022c
+
+Function17022c: ; 17022c
+.asm_17022c
+ call Function17023a
+ call DelayFrame
+ ld a, [$cf63]
+ cp $1
+ jr nz, .asm_17022c
+ ret
+; 17023a
+
+Function17023a: ; 17023a
+ ld a, [$cf63]
+ ld e, a
+ ld d, $0
+ ld hl, $4249
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 170249
+
+INCBIN "baserom.gbc", $170249, $1704e1 - $170249
+
+Function1704e1: ; 1704e1
+ call SpeechTextBox
+ call FadeToMenu
+ call Function17021e
+ call Function1704f1
+ call Function2b3c
+ ret
+; 1704f1
+
+Function1704f1: ; 1704f1
+ call WhiteBGMap
+ call ClearSprites
+ call Functionfdb
+.asm_1704fa
+ call Functiona57
+ ld a, [$cf63]
+ bit 7, a
+ jr nz, .asm_17050f
+ call Function170510
+ callba Function104061
+ jr .asm_1704fa
+
+.asm_17050f
+ ret
+; 170510
+
+Function170510: ; 170510
+ ld a, [$cf63]
+ ld e, a
+ ld d, $0
+ ld hl, $451f
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 17051f
+
+INCBIN "baserom.gbc", $17051f, $170687 - $17051f
+
+Function170687: ; 170687
+ ld a, [ScriptVar]
+ ld e, a
+ ld d, $0
+ ld hl, $4696
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 170696
+
+INCBIN "baserom.gbc", $170696, $17089a - $170696
+
+Function17089a: ; 17089a
+ ld a, [$cfcd]
+ and a
+ jr z, .asm_1708ad
+ callba Function14bcb
+ jr z, .asm_1708ab
+ xor a
+ jr .asm_1708ad
+
+.asm_1708ab
+ ld a, $1
+
+.asm_1708ad
+ ld [ScriptVar], a
+ ret
+; 1708b1
+
+INCBIN "baserom.gbc", $1708b1, $170923 - $1708b1
Function170923: ; 170923
@@ -73548,7 +84662,85 @@ Function170923: ; 170923
ret
; 17093c
-INCBIN "baserom.gbc", $17093c, $17367f - $17093c
+INCBIN "baserom.gbc", $17093c, $170b44 - $17093c
+
+Function170b44: ; 170b44
+ callba Function1f8000
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+ ld hl, $d10a
+ ld a, [hl]
+ dec a
+ ld c, a
+ ld b, $0
+ pop af
+ ld [rSVBK], a
+ ld hl, $4b90
+ add hl, bc
+ ld a, [hl]
+ ld [$cd49], a
+ ld a, [ScriptVar]
+ dec a
+ sla a
+ ld e, a
+ sla a
+ sla a
+ sla a
+ ld c, a
+ ld b, $0
+ ld d, $0
+ ld hl, MapObjects
+ add hl, bc
+ inc hl
+ ld a, [$cd49]
+ ld [hl], a
+ ld hl, UsedSprites
+ add hl, de
+ ld [hli], a
+ ld [$ffbd], a
+ ld a, [hl]
+ ld [$ffbe], a
+ callba Function143c8
+ ret
+; 170b90
+
+INCBIN "baserom.gbc", $170b90, $170bd2 - $170b90
+
+Function170bd2: ; 170bd2
+ ret
+; 170bd3
+
+Function170bd3: ; 170bd3
+ callba Function8b201
+ jr c, .asm_170bde
+ xor a
+ jr .asm_170be0
+
+.asm_170bde
+ ld a, $1
+
+.asm_170be0
+ ld [ScriptVar], a
+ ret
+; 170be4
+
+INCBIN "baserom.gbc", $170be4, $170c8b - $170be4
+
+Function170c8b: ; 170c8b
+ ld hl, LastPlayerCounterMove
+ ld b, $5
+.asm_170c90
+ ld a, [hl]
+ xor $ff
+ ld [hli], a
+ dec b
+ jr nz, .asm_170c90
+ ret
+; 170c98
+
+INCBIN "baserom.gbc", $170c98, $17367f - $170c98
SECTION "bank5D",ROMX,BANK[$5D]
@@ -73649,7 +84841,427 @@ Function17c000: ; 17c000
ret
; 17c083
-INCBIN "baserom.gbc", $17c083, $17f036 - $17c083
+INCBIN "baserom.gbc", $17c083, $17d0b3 - $17c083
+
+Function17d0b3: ; 17d0b3
+.asm_17d0b3
+ ld a, [de]
+ inc de
+ and a
+ jr z, .asm_17d0ee
+ cp $60
+ jr nc, .asm_17d0ee
+ cp $4e
+ jr z, .asm_17d0ee
+ cp $50
+ jr z, .asm_17d0ee
+ cp $5
+ jr c, .asm_17d0ec
+ cp $14
+ jr c, .asm_17d0ee
+ cp $19
+ jr c, .asm_17d0ec
+ cp $1d
+ jr c, .asm_17d0ee
+ cp $26
+ jr c, .asm_17d0ec
+ cp $35
+ jr c, .asm_17d0ee
+ cp $3a
+ jr c, .asm_17d0ec
+ cp $3f
+ jr c, .asm_17d0ee
+ cp $40
+ jr c, .asm_17d0ec
+ cp $49
+ jr c, .asm_17d0ee
+
+.asm_17d0ec
+ scf
+ ret
+
+.asm_17d0ee
+ dec c
+ jr nz, .asm_17d0b3
+ and a
+ ret
+; 17d0f3
+
+INCBIN "baserom.gbc", $17d0f3, $17d1e1 - $17d0f3
+
+Function17d1e1: ; 17d1e1
+.asm_17d1e1
+ ld a, [de]
+ inc de
+ cp $4e
+ jr nz, .asm_17d1ea
+ dec b
+ jr z, .asm_17d1ef
+
+.asm_17d1ea
+ dec c
+ jr nz, .asm_17d1e1
+ and a
+ ret
+
+.asm_17d1ef
+ scf
+ ret
+; 17d1f1
+
+Function17d1f1: ; 17d1f1
+ ld a, [CurPartySpecies]
+ dec a
+ call SetSeenAndCaughtMon
+ ld a, [CurPartySpecies]
+ cp $c9
+ jr nz, .asm_17d223
+ ld hl, PartyMon1DVs
+ ld a, [PartyCount]
+ dec a
+ ld bc, $0030
+ call AddNTimes
+ ld a, $2d
+ call Predef
+ callab Functionfba18
+ ld a, [$def4]
+ and a
+ jr nz, .asm_17d223
+ ld a, [UnownLetter]
+ ld [$def4], a
+
+.asm_17d223
+ ret
+; 17d224
+
+Function17d224: ; 17d224
+ ld a, [ScriptVar]
+ and a
+ jr nz, .asm_17d234
+ ld a, $4
+ ld [ScriptVar], a
+ ld hl, $526a
+ jr .asm_17d23c
+
+.asm_17d234
+ ld a, $4
+ ld [ScriptVar], a
+ ld hl, $528f
+
+.asm_17d23c
+ call LoadMenuDataHeader
+ call Function17d246
+ call Function1c17
+ ret
+; 17d246
+
+Function17d246: ; 17d246
+ call Function1d81
+ jr c, .asm_17d264
+ ld a, [ScriptVar]
+ cp $5
+ jr nz, .asm_17d25d
+ ld a, [$cfa9]
+ cp $3
+ ret z
+ jr c, .asm_17d25d
+ dec a
+ jr .asm_17d260
+
+.asm_17d25d
+ ld a, [$cfa9]
+
+.asm_17d260
+ ld [ScriptVar], a
+ ret
+
+.asm_17d264
+ ld a, $4
+ ld [ScriptVar], a
+ ret
+; 17d26a
+
+INCBIN "baserom.gbc", $17d26a, $17d2b6 - $17d26a
+
+Function17d2b6: ; 17d2b6
+ call Function17d2c0
+ callba Function1181da
+ ret
+; 17d2c0
+
+Function17d2c0: ; 17d2c0
+ xor a
+ ld [$cf63], a
+ ld [$cf64], a
+ ld [$cf65], a
+ ld [$cf66], a
+ ret
+; 17d2ce
+
+Function17d2ce: ; 17d2ce
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$aa72]
+ call CloseSRAM
+ and a
+ jr nz, .asm_17d2e2
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+
+.asm_17d2e2
+ call Function17d314
+ ret c
+ call SpeechTextBox
+ call FadeToMenu
+ ld a, [rSVBK]
+ push af
+ ld a, $4
+ ld [rSVBK], a
+ call Function17d370
+ call Function17d45a
+ pop af
+ ld [rSVBK], a
+ ld de, $0066
+ ld a, e
+ ld [CurMusic], a
+ ld [MusicFadeIDLo], a
+ ld a, d
+ ld [MusicFadeIDHi], a
+ call StartMusic
+ call Function222a
+ call Function2b3c
+ ret
+; 17d314
+
+Function17d314: ; 17d314
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$b1b1]
+ call CloseSRAM
+ cp $21
+ jr nc, .asm_17d354
+ ld a, $6
+ call GetSRAMBank
+ ld l, $0
+ ld h, l
+ ld de, $a006
+ ld a, [$a004]
+ ld c, a
+ ld a, [$a005]
+ ld b, a
+.asm_17d336
+ push bc
+ ld a, [de]
+ inc de
+ ld c, a
+ ld b, $0
+ add hl, bc
+ pop bc
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_17d336
+ ld a, [$a002]
+ cp l
+ jr nz, .asm_17d354
+ ld a, [$a003]
+ cp h
+ jr nz, .asm_17d354
+ call CloseSRAM
+ and a
+ ret
+
+.asm_17d354
+ call CloseSRAM
+ ld a, $5
+ call GetSRAMBank
+ xor a
+ ld hl, $aa73
+ ld bc, $000c
+ call ByteFill
+ call CloseSRAM
+ ld a, $2
+ ld [ScriptVar], a
+ scf
+ ret
+; 17d370
+
+Function17d370: ; 17d370
+ xor a
+ ld [$cd77], a
+ ld [$cd78], a
+ ld [$cd79], a
+ dec a
+ ld [$cd6c], a
+ call WhiteBGMap
+ call ClearSprites
+ call Functionfdb
+ callba Function104061
+ call DisableLCD
+ ld hl, $8ee0
+ ld de, EnemyMoveAnimation
+ ld bc, $0010
+ call CopyBytes
+ ld a, $1
+ ld [rVBK], a
+ ld hl, $66fe
+ ld de, VTiles1
+ ld bc, $0480
+ call CopyBytes
+ xor a
+ ld hl, $97f0
+ ld bc, $0010
+ call ByteFill
+ ld hl, EnemyMoveAnimation
+ ld de, $8ee0
+ ld bc, $0010
+ call CopyBytes
+ xor a
+ ld [rVBK], a
+ ld hl, $6b7e
+ ld de, $9600
+ ld bc, $0010
+ call CopyBytes
+ call EnableLCD
+ call Function17d60b
+ ld a, $0
+ ld [BGMapBuffer], a
+ ld a, $d0
+ ld [$cd21], a
+ ld a, $6
+ call GetSRAMBank
+ ld hl, $a006
+ ld de, Unkn1Pals
+ ld bc, $1000
+ call CopyBytes
+ call CloseSRAM
+ ret
+; 17d3f6
+
+INCBIN "baserom.gbc", $17d3f6, $17d45a - $17d3f6
+
+Function17d45a: ; 17d45a
+.asm_17d45a
+ call Functiona57
+ ld a, [$cd77]
+ bit 7, a
+ jr nz, .asm_17d46f
+ call Function17d474
+ callba Function104061
+ jr .asm_17d45a
+
+.asm_17d46f
+ xor a
+ ld [ScriptVar], a
+ ret
+; 17d474
+
+Function17d474: ; 17d474
+ ld a, [$cd77]
+ ld e, a
+ ld d, $0
+ ld hl, $5483
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 17d483
+
+INCBIN "baserom.gbc", $17d483, $17d60b - $17d483
+
+Function17d60b: ; 17d60b
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $b1d3
+ ld de, EnemyMoveAnimation
+ ld bc, $0020
+ call CopyBytes
+ ld a, [$b1b1]
+ ld c, a
+ ld a, [$b1b2]
+ ld b, a
+ ld a, [$b1b3]
+ ld l, a
+ ld a, [$b1b4]
+ ld h, a
+ call CloseSRAM
+ ld a, $6
+ call GetSRAMBank
+ ld de, $c708
+ ld a, c
+ and a
+ jr z, .asm_17d684
+.asm_17d63b
+ push bc
+ ld a, l
+ ld [de], a
+ inc de
+ ld a, h
+ ld [de], a
+ inc de
+ ld bc, $000a
+ add hl, bc
+ pop bc
+ ld a, [hli]
+ ld [$cd4a], a
+ ld a, [hli]
+ ld [$cd49], a
+ push hl
+ push de
+ ld hl, EnemyMoveAnimation
+ ld e, b
+ ld d, $0
+ add hl, de
+ ld a, [hli]
+ ld [$cd4b], a
+ ld a, [hl]
+ ld [$cd4c], a
+ pop de
+ pop hl
+ inc b
+ inc b
+ dec c
+ dec c
+ jr z, .asm_17d684
+ push bc
+ push de
+ ld a, [$cd49]
+ ld c, a
+ ld a, [$cd4a]
+ ld b, a
+ ld a, [$cd4b]
+ ld e, a
+ ld a, [$cd4c]
+ ld d, a
+.asm_17d67a
+ add hl, de
+ dec bc
+ ld a, c
+ or b
+ jr nz, .asm_17d67a
+ pop de
+ pop bc
+ jr .asm_17d63b
+
+.asm_17d684
+ call CloseSRAM
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $c708
+ ld de, $b1b3
+ ld a, [$b1b1]
+ ld c, a
+ ld a, [$b1b2]
+ ld b, a
+ call CopyBytes
+ call CloseSRAM
+ ret
+; 17d6a1
+
+INCBIN "baserom.gbc", $17d6a1, $17f036 - $17d6a1
Function17f036: ; 17f036
@@ -74558,7 +86170,20 @@ Function17f524: ; 17f524
jr .asm_17f536
; 17f53d
-INCBIN "baserom.gbc", $17f53d, $17f555 - $17f53d
+Function17f53d: ; 17f53d
+ call FadeToMenu
+ xor a
+ ld [$c303], a
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ call Function17f555
+ pop af
+ ld [rSVBK], a
+ call Function2b4d
+ ret
+; 17f555
Function17f555: ; 17f555
.asm_17f555
@@ -75235,11 +86860,281 @@ UnownFont: ; 1dc000
INCBIN "gfx/misc/unown_font.2bpp"
; 1dc1b0
-INCBIN "baserom.gbc", $1dc1b0, $1dc5a1 - $1dc1b0
+INCBIN "baserom.gbc", $1dc1b0, $1dc381 - $1dc1b0
+
+Function1dc381: ; 1dc381
+ call WhiteBGMap
+ call ClearTileMap
+ call ClearSprites
+ xor a
+ ld [hBGMapMode], a
+ call Functione58
+ ld de, $4591
+ ld hl, $9710
+ ld bc, $7701
+ call Request1bpp
+ ld de, $4599
+ ld hl, $96e0
+ ld bc, $7701
+ call Request1bpp
+ ld de, $4a90
+ ld hl, $93f0
+ ld bc, $3e01
+ call Get2bpp
+ xor a
+ ld [MonType], a
+ callba Function5084a
+ ld hl, $c52c
+ ld b, $9
+ ld c, $12
+ call TextBox
+ ld hl, $c4d0
+ ld a, [TempMonLevel]
+ call Function383d
+ ld hl, $c4d4
+ ld [hl], $71
+ inc hl
+ ld de, TempMonMaxHP
+ ld bc, $0203
+ call PrintNum
+ ld a, [CurPartySpecies]
+ ld [$d265], a
+ ld [CurSpecies], a
+ ld hl, PartyMon1Nickname
+ call Function1dc50e
+ ld hl, $c4f8
+ call PlaceString
+ ld hl, $c521
+ ld [hl], $f3
+ call GetPokemonName
+ ld hl, $c522
+ call PlaceString
+ ld hl, $c4a8
+ ld [hl], $74
+ inc hl
+ ld [hl], $e8
+ inc hl
+ ld de, $d265
+ ld bc, $8103
+ call PrintNum
+ ld hl, $c555
+ ld de, $4550
+ call PlaceString
+ ld hl, PartyMon1OT
+ call Function1dc50e
+ ld hl, $c558
+ call PlaceString
+ ld hl, $c57d
+ ld de, $4559
+ call PlaceString
+ ld hl, $c580
+ ld de, TempMonID
+ ld bc, $8205
+ call PrintNum
+ ld hl, $c5b9
+ ld de, $4554
+ call PlaceString
+ ld hl, $c5bf
+ ld a, [TempMonMove1]
+ call Function1dc51a
+ call Function1dc52c
+ ld hl, TempMonDVs
+ ld a, $2d
+ call Predef
+ ld hl, $c2c6
+ xor a
+ ld [hl], a
+ ld a, [CurPartySpecies]
+ cp $c9
+ jr z, .asm_1dc469
+ inc [hl]
+
+.asm_1dc469
+ ld hl, TileMap
+ call Function378b
+ call WaitBGMap
+ ld b, $3
+ call GetSGBLayout
+ call Function32f9
+ ret
+; 1dc47b
+
+Function1dc47b: ; 1dc47b
+ call WhiteBGMap
+ call ClearTileMap
+ call ClearSprites
+ xor a
+ ld [hBGMapMode], a
+ call Functione58
+ xor a
+ ld [MonType], a
+ callba Function5084a
+ ld hl, TileMap
+ ld b, $f
+ ld c, $12
+ call TextBox
+ ld bc, $0014
+ ld de, TileMap
+ ld hl, $c4b4
+ call CopyBytes
+ ld hl, $c4a7
+ ld a, [TempMonMove2]
+ call Function1dc51a
+ ld hl, $c4cf
+ ld a, [TempMonMove3]
+ call Function1dc51a
+ ld hl, $c4f7
+ ld a, [TempMonMove4]
+ call Function1dc51a
+ ld hl, $c533
+ ld de, $455d
+ call PlaceString
+ ld hl, $c53c
+ ld de, TempMonAtk
+ call Function1dc507
+ ld hl, $c564
+ ld de, TempMonDef
+ call Function1dc507
+ ld hl, $c58c
+ ld de, TempMonSpclAtk
+ call Function1dc507
+ ld hl, $c5b4
+ ld de, TempMonSpclDef
+ call Function1dc507
+ ld hl, $c5dc
+ ld de, TempMonSpd
+ call Function1dc507
+ call WaitBGMap
+ ld b, $3
+ call GetSGBLayout
+ call Function32f9
+ ret
+; 1dc507
+
+Function1dc507: ; 1dc507
+ ld bc, $0203
+ call PrintNum
+ ret
+; 1dc50e
+
+Function1dc50e: ; 1dc50e
+ ld bc, $000b
+ ld a, [CurPartyMon]
+ call AddNTimes
+ ld e, l
+ ld d, h
+ ret
+; 1dc51a
+
+Function1dc51a: ; 1dc51a
+ and a
+ jr z, .asm_1dc525
+ ld [$d265], a
+ call GetMoveName
+ jr .asm_1dc528
+
+.asm_1dc525
+ ld de, $4584
+
+.asm_1dc528
+ call PlaceString
+ ret
+; 1dc52c
+
+Function1dc52c: ; 1dc52c
+ callba GetGender
+ ld a, $7f
+ jr c, .asm_1dc53c
+ ld a, $ef
+ jr nz, .asm_1dc53c
+ ld a, $f5
+
+.asm_1dc53c
+ ld hl, $c4d9
+ ld [hl], a
+ ld bc, TempMonDVs
+ callba CheckShininess
+ ret nc
+ ld hl, $c4da
+ ld [hl], $3f
+ ret
+; 1dc550
+
+INCBIN "baserom.gbc", $1dc550, $1dc5a1 - $1dc550
INCLUDE "tilesets/data_7.asm"
-INCBIN "baserom.gbc", $1dd6a9, $1ddf1c - $1dd6a9
+INCBIN "baserom.gbc", $1dd6a9, $1dd702 - $1dd6a9
+
+Function1dd702: ; 1dd702
+ call Function1dd709
+ call Functiona80
+ ret
+; 1dd709
+
+Function1dd709: ; 1dd709
+ call WhiteBGMap
+ call ClearTileMap
+ call ClearSprites
+ call DisableLCD
+ ld hl, $5805
+ ld de, VTiles2
+ call Decompress
+ ld hl, $5c4b
+ ld de, TileMap
+ ld bc, $0168
+ call CopyBytes
+ ld de, $5760
+ ld hl, $c506
+ call PlaceString
+ ld de, $5767
+ ld hl, $c513
+ call PlaceString
+ ld de, PlayerName
+ ld hl, $c50d
+ call PlaceString
+ ld de, $5768
+ ld hl, $c542
+ call PlaceString
+ call EnableLCD
+ call WaitBGMap
+ ld b, $8
+ call GetSGBLayout
+ call Function32f9
+ call DelayFrame
+ ret
+; 1dd760
+
+INCBIN "baserom.gbc", $1dd760, $1dd7ae - $1dd760
+
+Function1dd7ae: ; 1dd7ae
+ ld hl, TileMap
+ ld bc, $0168
+ ld a, $7f
+ call ByteFill
+ ld hl, $5db3
+ ld de, TileMap
+ ld bc, $0168
+ call CopyBytes
+ ld de, $57fa
+ ld hl, $c4a8
+ call PlaceString
+ ld de, $57f0
+ ld hl, $c5cf
+ call PlaceString
+ ld hl, $c5d8
+ ld de, GameTimeHours
+ ld bc, $0204
+ call PrintNum
+ ld [hl], $67
+ inc hl
+ ld de, GameTimeMinutes
+ ld bc, $8102
+ call PrintNum
+ ret
+; 1dd7f0
+
+INCBIN "baserom.gbc", $1dd7f0, $1ddf1c - $1dd7f0
Function1ddf1c: ; 1ddf1c
@@ -75413,7 +87308,85 @@ Function1de5c8: ; 1de5c8
ret
; 1de5e6
-INCBIN "baserom.gbc", $1de5e6, $1df238 - $1de5e6
+INCBIN "baserom.gbc", $1de5e6, $1df1e6 - $1de5e6
+
+Function1df1e6: ; 1df1e6
+ ld b, $21
+ ld h, d
+ ld l, e
+.asm_1df1ea
+ ld a, [hl]
+ cp $dc
+ jr nz, .asm_1df1f3
+ ld a, $d4
+ jr .asm_1df1fd
+
+.asm_1df1f3
+ sub $d4
+ jr c, .asm_1df1fe
+ cp $3
+ jr nc, .asm_1df1fe
+ add $cd
+
+.asm_1df1fd
+ ld [hl], a
+
+.asm_1df1fe
+ inc hl
+ dec b
+ jr nz, .asm_1df1ea
+ ret
+; 1df203
+
+Function1df203: ; 1df203
+ ld b, $21
+ ld h, d
+ ld l, e
+.asm_1df207
+ ld a, [hl]
+ cp $d4
+ jr nz, .asm_1df210
+ ld a, $dc
+ jr .asm_1df21a
+
+.asm_1df210
+ sub $cd
+ jr c, .asm_1df21b
+ cp $3
+ jr nc, .asm_1df21b
+ add $d4
+
+.asm_1df21a
+ ld [hl], a
+
+.asm_1df21b
+ inc hl
+ dec b
+ jr nz, .asm_1df207
+ ret
+; 1df220
+
+Function1df220: ; 1df220
+ ld b, $21
+ ld h, d
+ ld l, e
+.asm_1df224
+ ld a, [hl]
+ and $f0
+ cp $d0
+ jr nz, .asm_1df233
+ ld a, [hl]
+ add $8
+ and $f
+ or $d0
+ ld [hl], a
+
+.asm_1df233
+ inc hl
+ dec b
+ jr nz, .asm_1df224
+ ret
+; 1df238
SECTION "bank78",ROMX,BANK[$78]