shithub: pokecrystal

Download patch

ref: 355aeb0a2f4c4c3a26ee76bc51fd258156873f63
parent: 7b87e67a8939eb6e11e114c485443ca18528bfea
author: yenatch <yenatch@gmail.com>
date: Thu Jan 1 16:29:23 EST 2015

Tripped over a mobile jumptable.

--- a/main.asm
+++ b/main.asm
@@ -103179,15 +103179,15 @@
 
 Function101225: ; 101225
 	ld d, 1
-	ld e, BANK(Unknown_101297)
-	ld bc, Unknown_101297
+	ld e, BANK(Jumptable_101297)
+	ld bc, Jumptable_101297
 	call Function100000
 	jr Function10123d
 
 Function101231: ; 101231
 	ld d, 2
-	ld e, BANK(Unknown_101297)
-	ld bc, Unknown_101297
+	ld e, BANK(Jumptable_101297)
+	ld bc, Jumptable_101297
 	call Function100000
 	jr Function10123d
 
@@ -103261,9 +103261,155 @@
 	ret
 ; 101297
 
-Unknown_101297: ; 101297
-INCBIN "baserom.gbc",$101297,$1013aa - $101297
+Jumptable_101297: ; 101297
+	dw Function101a97
+	dw Function101ab4
+	dw Function101475
+	dw Function101b0f
+	dw Function101438
+	dw Function101b2b
+	dw Function101b59
+	dw Function101475
+	dw Function101b70
+	dw Function101438
+	dw Function101b8f
+	dw Function101d7b
+	dw Function101d95
+	dw Function101475
+	dw Function101db2
+	dw Function101e4f
+	dw Function101475
+	dw Function101e64
+	dw Function101e4f
+	dw Function101475
+	dw Function101e64
+	dw Function101d95
+	dw Function101475
+	dw Function101db2
+	dw Function101dd0
+	dw Function101de3
+	dw Function101e39
+	dw Function101e09
+	dw Function101e4f
+	dw Function101475
+	dw Function101e64
+	dw Function101d95
+	dw Function101475
+	dw Function101db2
+	dw Function101e09
+	dw Function101e31
+	dw Function101bc8
+	dw Function101438
+	dw Function101be5
+	dw Function101ac6
+	dw Function101ab4
+	dw Function101475
+	dw Function101c11
+	dw Function1014f4
+	dw Function101cc8
+	dw Function1014e2
+	dw Function1014e2
+	dw Function101d10
+	dw Function101d2a
+	dw Function101d2a
+	dw Function101507
+	dw Function10156d
+	dw Function101557
+	dw Function10158a
+	dw Function101c42
+	dw Function101aed
+	dw Function101ab4
+	dw Function101475
+	dw Function101c2b
+	dw Function1014f4
+	dw Function101cdf
+	dw Function1014e2
+	dw Function1014e2
+	dw Function101d1e
+	dw Function101d2a
+	dw Function101d2a
+	dw Function101507
+	dw Function10156d
+	dw Function101544
+	dw Function10158a
+	dw Function101c42
+	dw Function101c50
+	dw Function1014ce
+	dw Function101cf6
+	dw Function101826
+	dw Function1017e4
+	dw Function1017f1
+	dw Function1018a8
+	dw Function1018d6
+	dw Function1017e4
+	dw Function1017f1
+	dw Function1018e1
+	dw Function1015df
+	dw Function10167d
+	dw Function10168a
+	dw Function10162a
+	dw Function1015be
+	dw Function10167d
+	dw Function10168a
+	dw Function10161f
+	dw Function10159d
+	dw Function10167d
+	dw Function10168a
+	dw Function101600
+	dw Function101d03
+	dw Function101d6b
+	dw Function10159d
+	dw Function1014ce
+	dw Function10168e
+	dw Function101600
+	dw Function101913
+	dw Function10194b
+	dw Function10196d
+	dw Function1017e4
+	dw Function1017f5
+	dw Function1019ab
+	dw Function101537
+	dw Function101571
+	dw Function101c92
+	dw Function10152a
+	dw Function101571
+	dw Function101a4f
+	dw Function101cbc
+	dw Function101c62
+	dw Function101537
+	dw Function101571
+	dw Function101c92
+	dw Function10152a
+	dw Function101571
+	dw Function101ca0
+	dw Function101475
+	dw Function101cbc
+; 10138b
 
+Function10138b: ; 10138b
+	callba Function8adcc
+	ld c, $0
+	jr c, .asm_101396
+	inc c
+
+.asm_101396
+	sla c
+	ld a, [$cd2f]
+	and a
+	jr z, .asm_10139f
+	inc c
+
+.asm_10139f
+	sla c
+	ld a, [$cd21]
+	cp $1
+	jr z, .asm_1013a9
+	inc c
+
+.asm_1013a9
+	ret
+; 1013aa
+
 Function1013aa: ; 1013aa
 	call WhiteBGMap
 	call Function1d7d
@@ -103274,7 +103420,13 @@
 	ret
 ; 1013c0
 
-INCBIN "baserom.gbc",$1013c0,$1013d6 - $1013c0
+Function1013c0: ; 1013c0
+	callba Function8000
+	callba Function106462
+	callba Function106464
+	call Function2b5c
+	ret
+; 1013d6
 
 Function1013d6: ; 1013d6
 	callba Function104000
@@ -103281,8 +103433,66 @@
 	ret
 ; 1013dd
 
-INCBIN "baserom.gbc",$1013dd,$10142c - $1013dd
+Function1013dd: ; 1013dd
+	call Function3238
+	ret
+; 1013e1
 
+INCBIN "baserom.gbc", $1013e1, $1013f5 - $1013e1
+
+Function1013f5: ; 1013f5
+	ld a, [hli]
+	ld [de], a
+	inc de
+	ld c, a
+.asm_1013f9
+	ld a, [hli]
+	ld [de], a
+	inc de
+	dec c
+	jr nz, .asm_1013f9
+	ret
+; 101400
+
+INCBIN "baserom.gbc", $101400, $101406 - $101400
+
+Function101406: ; 101406
+	ld c, a
+	ld b, $0
+.asm_101409
+	ld a, [de]
+	inc de
+	cp [hl]
+	jr nz, .asm_101416
+	inc hl
+	dec bc
+	ld a, b
+	or c
+	jr nz, .asm_101409
+	and a
+	ret
+
+.asm_101416
+	scf
+	ret
+; 101418
+
+Function101418: ; 101418
+	call GetJoypad
+	ld a, [hJoyDown]
+	and $5
+	cp $5
+	jr z, .asm_101425
+	xor a
+	ret
+
+.asm_101425
+	ld a, $f7
+	ld [$cd2b], a
+	scf
+	ret
+; 10142c
+
 Function10142c: ; 10142c
 	ld a, $1
 	ld [$c305], a
@@ -103290,8 +103500,1518 @@
 	ret
 ; 101438
 
-INCBIN "baserom.gbc",$101438,$101ee4 - $101438
+Function101438: ; 101438
+	ld hl, $cd29
+	set 6, [hl]
+	ld a, [$cd26]
+	ld hl, Jumptable_101457
+	rst JumpTable
+	ld a, [$cd26]
+	bit 7, a
+	ret z
+	ld a, $0
+	ld [$cd26], a
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+; 101457
 
+Jumptable_101457: ; 101457
+	dw Function10145b
+	dw Function101467
+; 10145b
+
+Function10145b: ; 10145b
+	ld a, $3c
+	ld [$cd42], a
+	ld a, [$cd26]
+	inc a
+	ld [$cd26], a
+
+Function101467: ; 101467
+	ld hl, $cd42
+	dec [hl]
+	ret nz
+	ld a, [$cd26]
+	set 7, a
+	ld [$cd26], a
+	ret
+; 101475
+
+Function101475: ; 101475
+	ld hl, $cd29
+	set 6, [hl]
+	ld a, [$cd26]
+	ld hl, Jumptable_101494
+	rst JumpTable
+	ld a, [$cd26]
+	bit 7, a
+	ret z
+	ld a, $0
+	ld [$cd26], a
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+; 101494
+
+Jumptable_101494: ; 101494
+	dw Function10149a
+	dw Function1014a6
+	dw Function1014b7
+; 10149a
+
+Function10149a: ; 10149a
+	ld a, $28
+	ld [$cd42], a
+	ld a, [$cd26]
+	inc a
+	ld [$cd26], a
+
+Function1014a6: ; 1014a6
+	ld hl, $cd42
+	dec [hl]
+	ret nz
+	ld a, $50
+	ld [$cd42], a
+	ld a, [$cd26]
+	inc a
+	ld [$cd26], a
+
+Function1014b7: ; 1014b7
+	call GetJoypad
+	ld a, [hJoyPressed]
+	and $3
+	jr nz, .asm_1014c5
+	ld hl, $cd42
+	dec [hl]
+	ret nz
+
+.asm_1014c5
+	ld a, [$cd26]
+	set 7, a
+	ld [$cd26], a
+	ret
+; 1014ce
+
+Function1014ce: ; 1014ce
+	callba Function100720
+	callba Function100641
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+; 1014e2
+
+Function1014e2: ; 1014e2
+	ld hl, $cd29
+	set 6, [hl]
+	ld a, $0
+	ld [$cd26], a
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+; 1014f4
+
+Function1014f4: ; 1014f4
+	callba Function100082
+	ld hl, $cd29
+	set 6, [hl]
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+; 101507
+
+Function101507: ; 101507
+	ld de, $cd30
+	ld hl, $0040
+	ld bc, $0040
+	ld a, $2
+	call Function3e32
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+; 10151d
+
+INCBIN "baserom.gbc", $10151d, $10152a - $10151d
+
+Function10152a: ; 10152a
+	ld a, $36
+	call Function3e32
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+; 101537
+
+Function101537: ; 101537
+	ld a, $a
+	call Function3e32
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+; 101544
+
+Function101544: ; 101544
+	callba Function100641
+	ld a, $12
+	call Function3e32
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+; 101557
+
+Function101557: ; 101557
+	callba Function100641
+	ld hl, $cd53
+	ld a, $8
+	call Function3e32
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+; 10156d
+
+Function10156d: ; 10156d
+	call Function101418
+	ret c
+
+Function101571: ; 101571
+	callba Function10032e
+	ret c
+	ret z
+	ld a, e
+	cp $1
+	jr z, .asm_101582
+	ld [$cd2b], a
+	ret
+
+.asm_101582
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+; 10158a
+
+Function10158a: ; 10158a
+	callba Function10064c
+	ld a, [$cd44]
+	cp $a
+	jr c, Function10156d
+	ld a, $fb
+	ld [$cd2b], a
+	ret
+; 10159d
+
+Function10159d: ; 10159d
+	ld de, $c608
+	callba Function100edf
+	ld de, $c608
+	ld a, $5
+	ld hl, $d800
+	call Function10174c
+	ld a, $0
+	ld [$cd26], a
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+; 1015be
+
+Function1015be: ; 1015be
+	ld de, $c608
+	callba Function100eed
+	ld de, $c608
+	ld a, $5
+	ld hl, $d800
+	call Function10174c
+	ld a, $0
+	ld [$cd26], a
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+; 1015df
+
+Function1015df: ; 1015df
+	ld de, $c608
+	callba Function100ef4
+	ld de, $c608
+	ld a, $5
+	ld hl, $d800
+	call Function10174c
+	ld a, $0
+	ld [$cd26], a
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+; 101600
+
+Function101600: ; 101600
+	ld hl, $d800
+	ld de, $c608
+	ld bc, $01e0
+	ld a, $5
+	call FarCopyWRAM
+	ld de, $c608
+	callba Function100ee6
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+; 10161f
+
+Function10161f: ; 10161f
+	call Function101649
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+; 10162a
+
+Function10162a: ; 10162a
+	call Function101663
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+; 101635
+
+Function101635: ; 101635
+	ld de, $c608
+	ld bc, $01e0
+	call FarCopyWRAM
+	ret
+; 10163f
+
+Function10163f: ; 10163f
+	ld hl, $c608
+	ld bc, $01e0
+	call FarCopyWRAM
+	ret
+; 101649
+
+Function101649: ; 101649
+	ld a, $5
+	ld hl, $d800
+	call Function101635
+	ld a, $5
+	ld de, $da00
+	call Function10163f
+	ret
+; 10165a
+
+Function10165a: ; 10165a
+	ld a, $5
+	ld hl, $da00
+	call Function101635
+	ret
+; 101663
+
+Function101663: ; 101663
+	ld a, $5
+	ld hl, $d800
+	call Function101635
+	ld a, $5
+	ld de, $dc00
+	call Function10163f
+	ret
+; 101674
+
+INCBIN "baserom.gbc", $101674, $10167d - $101674
+
+Function10167d: ; 10167d
+	ld a, $0
+	ld [$cd26], a
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+; 10168a
+
+Function10168a: ; 10168a
+	call Function101418
+	ret c
+
+Function10168e: ; 10168e
+	ld b, $0
+	ld c, $1
+	callba Function10079c
+	ret c
+	ld c, $1
+	ld b, $3
+	callba Function10062d
+	ret c
+	ld a, [$cd26]
+	ld hl, Jumptable_1016c3
+	rst JumpTable
+	ld hl, $cd29
+	set 6, [hl]
+	ld a, [$cd26]
+	bit 7, a
+	ret z
+	ld a, $0
+	ld [$cd26], a
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+; 1016c3
+
+Jumptable_1016c3: ; 1016c3
+	dw Function1016cf
+	dw Function1016de
+	dw Function1016f8
+	dw Function101705
+	dw Function101719
+	dw Function101724
+; 1016cf
+
+Function1016cf: ; 1016cf
+	ld hl, $cd3a
+	inc [hl]
+	call Function10176f
+	ld a, [$cd26]
+	inc a
+	ld [$cd26], a
+	ret
+; 1016de
+
+Function1016de: ; 1016de
+	call Function10177b
+	jr nc, .asm_1016eb
+	ld a, [$cd26]
+	inc a
+	ld [$cd26], a
+	ret
+
+.asm_1016eb
+	ld a, $ff
+	ld [$cd39], a
+	ld a, [$cd26]
+	inc a
+	ld [$cd26], a
+	ret
+; 1016f8
+
+Function1016f8: ; 1016f8
+	ld a, $0
+	ld [$cd27], a
+	ld a, [$cd26]
+	inc a
+	ld [$cd26], a
+	ret
+; 101705
+
+Function101705: ; 101705
+	callba Function100382
+	ld a, [$cd27]
+	bit 7, a
+	ret z
+	ld a, [$cd26]
+	inc a
+	ld [$cd26], a
+	ret
+; 101719
+
+Function101719: ; 101719
+	call Function1017c7
+	ld a, [$cd26]
+	inc a
+	ld [$cd26], a
+	ret
+; 101724
+
+Function101724: ; 101724
+	ld a, [$cd39]
+	cp $ff
+	jr z, .asm_101731
+	ld a, $0
+	ld [$cd26], a
+	ret
+
+.asm_101731
+	ld a, [$cd26]
+	set 7, a
+	ld [$cd26], a
+	ret
+; 10173a
+
+INCBIN "baserom.gbc", $10173a, $10173b - $10173a
+
+Function10173b: ; 10173b
+	push bc
+	push af
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	ld a, [$573a]
+	ld c, a
+	ld b, $0
+	pop af
+	call AddNTimes
+	pop bc
+	ret
+; 10174c
+
+Function10174c: ; 10174c
+	ld [$cd3d], a
+	ld a, l
+	ld [$cd3e], a
+	ld a, h
+	ld [$cd3f], a
+	ld a, e
+	ld [$cd3b], a
+	ld a, d
+	ld [$cd3c], a
+	ld a, c
+	ld [$cd40], a
+	ld a, b
+	ld [$cd41], a
+	xor a
+	ld [$cd39], a
+	ld [$cd3a], a
+	ret
+; 10176f
+
+Function10176f: ; 10176f
+	ld hl, $ccb4
+	ld bc, $0054
+	ld a, $11
+	call ByteFill
+	ret
+; 10177b
+
+Function10177b: ; 10177b
+	ld a, [$573a]
+	ld c, a
+	ld b, $0
+	ld a, [$cd3a]
+	ld hl, NULL
+	call AddNTimes
+	ld e, l
+	ld d, h
+	ld hl, $cd40
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	ld a, l
+	sub e
+	ld l, a
+	ld a, h
+	sbc d
+	ld h, a
+	jr c, .asm_1017a0
+	add hl, bc
+	call Function1017b0
+	scf
+	ret
+
+.asm_1017a0
+	ld a, $ff
+	ld [$cd39], a
+	add hl, bc
+	ld a, h
+	or l
+	ret z
+	ld c, l
+	ld b, h
+	call Function1017b0
+	xor a
+	ret
+; 1017b0
+
+Function1017b0: ; 1017b0
+	ld a, c
+	ld [$ccb4], a
+	push bc
+	ld a, [$cd3a]
+	dec a
+	ld hl, $cd3b
+	call Function10173b
+	pop bc
+	ld de, $ccb5
+	call CopyBytes
+	ret
+; 1017c7
+
+Function1017c7: ; 1017c7
+	ld a, [$cc60]
+	ld c, a
+	ld b, $0
+	ld a, [$cd3a]
+	dec a
+	ld hl, $cd3e
+	call Function10173b
+	ld e, l
+	ld d, h
+	ld hl, $cc61
+	ld a, [$cd3d]
+	call FarCopyWRAM
+	and a
+	ret
+; 1017e4
+
+Function1017e4: ; 1017e4
+	ld a, $0
+	ld [$cd27], a
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+; 1017f1
+
+Function1017f1: ; 1017f1
+	call Function101418
+	ret c
+
+Function1017f5: ; 1017f5
+	ld b, $0
+	ld c, $1
+	callba Function10079c
+	ret c
+	ld c, $1
+	ld b, $3
+	callba Function10062d
+	ret c
+	callba Function100382
+	ld a, [$cd27]
+	bit 7, a
+	jr nz, .asm_10181e
+	ld hl, $cd29
+	set 6, [hl]
+	ret
+
+.asm_10181e
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+; 101826
+
+Function101826: ; 101826
+	ld a, [$cd21]
+	cp $2
+	jr z, .asm_101833
+	cp $1
+	jr z, .asm_101844
+	jr .asm_101869
+
+.asm_101833
+	ld hl, $586f
+	ld de, $ccb4
+	call Function1013f5
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+
+.asm_101844
+	callba Function103654
+	ld a, c
+	ld hl, $5882
+	cp $1
+	jr z, .asm_10185b
+	ld hl, $5895
+	cp $2
+	jr z, .asm_10185b
+	jr .asm_101869
+
+.asm_10185b
+	ld de, $ccb4
+	call Function1013f5
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+
+.asm_101869
+	ld a, $fe
+	ld [$cd2b], a
+	ret
+; 10186f
+
+INCBIN "baserom.gbc", $10186f, $1018a8 - $10186f
+
+Function1018a8: ; 1018a8
+	ld hl, $ccb5
+	ld de, $cc61
+	ld a, $4
+	call Function101406
+	jr c, .asm_1018d0
+	ld hl, $ccb9
+	ld de, $cc65
+	ld a, $6
+	call Function101406
+	jr c, .asm_1018ca
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+
+.asm_1018ca
+	ld a, $f6
+	ld [$cd2b], a
+	ret
+
+.asm_1018d0
+	ld a, $f5
+	ld [$cd2b], a
+	ret
+; 1018d6
+
+Function1018d6: ; 1018d6
+	call Function1018ec
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+; 1018e1
+
+Function1018e1: ; 1018e1
+	call Function1018fb
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+; 1018ec
+
+Function1018ec: ; 1018ec
+	ld a, $a
+	ld hl, $ccb4
+	ld [hli], a
+	ld c, a
+.asm_1018f3
+	call Random
+	ld [hli], a
+	dec c
+	jr nz, .asm_1018f3
+	ret
+; 1018fb
+
+Function1018fb: ; 1018fb
+	ld a, [$cd2f]
+	and a
+	jr z, .asm_101906
+	ld hl, $cc61
+	jr .asm_101909
+
+.asm_101906
+	ld hl, $ccb5
+
+.asm_101909
+	ld de, LinkBattleRNs
+	ld bc, $000a
+	call CopyBytes
+	ret
+; 101913
+
+Function101913: ; 101913
+	ld hl, $cd2a
+	set 0, [hl]
+	xor a
+	ld [$c30d], a
+	ld hl, $cd29
+	res 4, [hl]
+	xor a
+	ld [$c305], a
+	ld hl, $cd29
+	res 7, [hl]
+	ld a, $90
+	ld [hWY], a
+	ld a, [$cd21]
+	cp $1
+	jr z, .asm_10193f
+	cp $2
+	jr z, .asm_101945
+	ld a, $71
+	ld [$cd25], a
+	ret
+
+.asm_10193f
+	ld a, $66
+	ld [$cd25], a
+	ret
+
+.asm_101945
+	ld a, $65
+	ld [$cd25], a
+	ret
+; 10194b
+
+Function10194b: ; 10194b
+	call Function2ed3
+	call ClearSprites
+	callba Function1021f9
+	ld hl, $cd29
+	bit 3, [hl]
+	jr nz, .asm_101967
+	call Function1013c0
+	ld a, $71
+	ld [$cd25], a
+	ret
+
+.asm_101967
+	ld a, $60
+	ld [$cd25], a
+	ret
+; 10196d
+
+Function10196d: ; 10196d
+	callba Function8000
+	callba Function10060d
+	ld hl, $cd29
+	set 5, [hl]
+	ld hl, $cd2a
+	set 6, [hl]
+	ld a, $6
+	ld [$ccb4], a
+	ld hl, $dc5c
+	ld de, $ccb5
+	ld bc, $0003
+	call CopyBytes
+	ld hl, $cd6c
+	ld a, [hli]
+	ld [$ccb8], a
+	ld a, [hli]
+	ld [$ccb9], a
+	ld a, [hl]
+	ld [$ccba], a
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+; 1019ab
+
+Function1019ab: ; 1019ab
+	call Function101a75
+	callba Function100754
+	xor a
+	ld [$dc5f], a
+	ld [$dc60], a
+	callba Function8000
+	call SpeechTextBox
+	callba Function100846
+	ld c, $78
+	call DelayFrames
+	callba ClearTileMap
+	call Function1019ee
+	call Function101a21
+	ld a, [$cd2b]
+	cp $fc
+	jr nz, .asm_1019e6
+	xor a
+	ld [$cd2b], a
+
+.asm_1019e6
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+; 1019ee
+
+Function1019ee: ; 1019ee
+	ld a, [rSVBK]
+	push af
+	ld a, $5
+	ld [rSVBK], a
+	ld bc, $dc0d
+	ld de, Plant
+	callba Function4e929
+	pop af
+	ld [rSVBK], a
+	ld a, c
+	ld [OtherTrainerClass], a
+	ld hl, $d26b
+	ld de, $c656
+	ld bc, $000b
+	call CopyBytes
+	ld a, [$cd2f]
+	and a
+	ld a, $2
+	jr z, .asm_101a1e
+	ld a, $1
+
+.asm_101a1e
+	ld [$ffcb], a
+	ret
+; 101a21
+
+Function101a21: ; 101a21
+	ld hl, Options
+	ld a, [hl]
+	push af
+	and $20
+	or $1
+	ld [hl], a
+	ld a, $1
+	ld [$c2d7], a
+	callba Function3f4dd
+	callba BattleCore
+	callba Function3f759
+	xor a
+	ld [$c2d7], a
+	ld a, $ff
+	ld [$ffcb], a
+	pop af
+	ld [Options], a
+	ret
+; 101a4f
+
+Function101a4f: ; 101a4f
+	ld a, $1
+	ld [$c2d7], a
+	callba Function3f77c
+	xor a
+	ld [$c2d7], a
+	callba Function3f6d0
+	callba Function1500c
+	call Function1013c0
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+; 101a75
+
+Function101a75: ; 101a75
+	ld hl, $cc61
+	ld de, $cd75
+	ld bc, $0003
+	call CopyBytes
+	ld de, $cc64
+	callba Function100772
+	callba Function101050
+	callba Function1010f2
+	ret
+; 101a97
+
+Function101a97: ; 101a97
+	callba Function115d99
+	ld hl, $cd29
+	set 7, [hl]
+	ld c, $2
+	call Function10142c
+	ld hl, $cd29
+	set 6, [hl]
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+; 101ab4
+
+Function101ab4: ; 101ab4
+	ld e, $1
+	call Function101ee4
+	ld hl, $cd29
+	set 5, [hl]
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+; 101ac6
+
+Function101ac6: ; 101ac6
+	callba Function115d99
+	ld hl, $cd29
+	set 7, [hl]
+	ld c, $2
+	call Function10142c
+	ld hl, $cd29
+	set 6, [hl]
+	xor a
+	ld [$cd2f], a
+	ld de, $dc42
+	call Function102068
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+; 101aed
+
+Function101aed: ; 101aed
+	callba Function115d99
+	ld hl, $cd29
+	set 7, [hl]
+	ld c, $2
+	call Function10142c
+	ld hl, $cd29
+	set 6, [hl]
+	ld a, $1
+	ld [$cd2f], a
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+; 101b0f
+
+Function101b0f: ; 101b0f
+	ld c, $0
+	call Function10142c
+	ld e, $3
+	call Function101ee4
+	ld hl, $cd29
+	set 5, [hl]
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ld a, $0
+	ld [$cd26], a
+	ret
+; 101b2b
+
+Function101b2b: ; 101b2b
+	callba Function100579
+	ld hl, $cd29
+	set 2, [hl]
+	ld a, [$cd26]
+	bit 7, a
+	ret z
+	call Function1013dd
+	ld a, $0
+	ld [$cd26], a
+	ld a, [$cfa9]
+	cp $1
+	jr z, .asm_101b51
+	ld a, $2
+	ld [$cd2b], a
+	ret
+
+.asm_101b51
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+; 101b59
+
+Function101b59: ; 101b59
+	ld c, $2
+	call Function10142c
+	ld e, $2
+	call Function101ee4
+	ld hl, $cd29
+	set 5, [hl]
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+; 101b70
+
+Function101b70: ; 101b70
+	ld c, $2
+	call Function10142c
+	ld e, $4
+	call Function101ee4
+	ld hl, $cd29
+	set 5, [hl]
+	call Function1ad2
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ld a, $0
+	ld [$cd26], a
+	ret
+; 101b8f
+
+Function101b8f: ; 101b8f
+	callba Function1005c3
+	ld hl, $cd29
+	set 2, [hl]
+	ld a, [$cd26]
+	bit 7, a
+	ret z
+	call Function1013dd
+	ld a, $0
+	ld [$cd26], a
+	ld a, [$cfa9]
+	cp $1
+	jr z, .asm_101bbc
+	ld a, $1
+	ld [$cd2f], a
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+
+.asm_101bbc
+	xor a
+	ld [$cd2f], a
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+; 101bc8
+
+Function101bc8: ; 101bc8
+	ld c, $2
+	call Function10142c
+	ld e, $8
+	call Function101ee4
+	call Function102048
+	call Function1013dd
+	ld a, $0
+	ld [$cd26], a
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+; 101be5
+
+Function101be5: ; 101be5
+	callba Function100579
+	ld hl, $cd29
+	set 2, [hl]
+	ld a, [$cd26]
+	bit 7, a
+	ret z
+	call Function1013dd
+	ld a, $0
+	ld [$cd26], a
+	ld a, [$cfa9]
+	cp $1
+	jr nz, .asm_101c0b
+	ld a, $2a
+	ld [$cd25], a
+	ret
+
+.asm_101c0b
+	ld a, $2
+	ld [$cd2b], a
+	ret
+; 101c11
+
+Function101c11: ; 101c11
+	ld a, $1
+	ld [$dc5f], a
+	ld e, $9
+	call Function101ee4
+	call Function102048
+	ld hl, $cd29
+	set 5, [hl]
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+; 101c2b
+
+Function101c2b: ; 101c2b
+	ld a, $2
+	ld [$dc5f], a
+	ld e, $7
+	call Function101ee4
+	ld hl, $cd29
+	set 5, [hl]
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+; 101c42
+
+Function101c42: ; 101c42
+	ld hl, $cd2a
+	set 1, [hl]
+	call Function100665
+	ld a, $47
+	ld [$cd25], a
+	ret
+; 101c50
+
+Function101c50: ; 101c50
+	ld e, $a
+	call Function101ee4
+	ld hl, $cd29
+	set 2, [hl]
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+; 101c62
+
+Function101c62: ; 101c62
+	callba Function115d99
+	ld hl, $cd29
+	set 7, [hl]
+	ld c, $1
+	call Function10142c
+	xor a
+	ld [$c30d], a
+	ld hl, $cd29
+	res 4, [hl]
+	ld e, $b
+	call Function101ee4
+	ld hl, $cd29
+	set 5, [hl]
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ld a, $0
+	ld [$cd26], a
+	ret
+; 101c92
+
+Function101c92: ; 101c92
+	callba Function100675
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+; 101ca0
+
+Function101ca0: ; 101ca0
+	ld c, $2
+	call Function10142c
+	ld e, $c
+	call Function101ee4
+	ld hl, $cd29
+	set 5, [hl]
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ld a, $0
+	ld [$cd26], a
+	ret
+; 101cbc
+
+Function101cbc: ; 101cbc
+	ld a, $1
+	ld [$cd2b], a
+	ret
+; 101cc2
+
+INCBIN "baserom.gbc", $101cc2, $101cc8 - $101cc2
+
+Function101cc8: ; 101cc8
+	ld a, $1
+	ld [$c314], a
+	ld a, $1
+	ld [$c30d], a
+	ld hl, $cd29
+	set 4, [hl]
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+; 101cdf
+
+Function101cdf: ; 101cdf
+	ld a, $6
+	ld [$c314], a
+	ld a, $1
+	ld [$c30d], a
+	ld hl, $cd29
+	set 4, [hl]
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+; 101cf6
+
+Function101cf6: ; 101cf6
+	ld a, $b
+	ld [$c315], a
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+; 101d03
+
+Function101d03: ; 101d03
+	ld a, $e
+	ld [$c315], a
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+; 101d10
+
+Function101d10: ; 101d10
+	ld c, $1
+	call Function10142c
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	jr Function101d2a
+
+Function101d1e: ; 101d1e
+	ld c, $3
+	call Function10142c
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+
+Function101d2a: ; 101d2a
+	call Function101418
+	ret c
+	ld hl, $cd29
+	set 6, [hl]
+	ld a, [$cd26]
+	ld hl, Jumptable_101d4d
+	rst JumpTable
+	ld a, [$cd26]
+	bit 7, a
+	ret z
+	ld a, $0
+	ld [$cd26], a
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+; 101d4d
+
+Jumptable_101d4d: ; 101d4d
+	dw Function101d51
+	dw Function101d5d
+; 101d51
+
+Function101d51: ; 101d51
+	ld a, $3c
+	ld [$cd42], a
+	ld a, [$cd26]
+	inc a
+	ld [$cd26], a
+
+Function101d5d: ; 101d5d
+	ld hl, $cd42
+	dec [hl]
+	ret nz
+	ld a, [$cd26]
+	set 7, a
+	ld [$cd26], a
+	ret
+; 101d6b
+
+Function101d6b: ; 101d6b
+	ld a, [$c30d]
+	and a
+	ret nz
+	ld hl, $cd29
+	res 4, [hl]
+	ld a, $64
+	ld [$cd25], a
+	ret
+; 101d7b
+
+Function101d7b: ; 101d7b
+	callba Function10138b
+	ld b, $0
+	ld hl, $5d8d
+	add hl, bc
+	ld c, [hl]
+	ld a, c
+	ld [$cd25], a
+	ret
+; 101d8d
+
+INCBIN "baserom.gbc", $101d8d, $101d95 - $101d8d
+
+Function101d95: ; 101d95
+	call Function101ee2
+	call Function1d6e
+	ld e, $e
+	call Function101ee4
+	ld hl, $cd29
+	set 5, [hl]
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ld a, $0
+	ld [$cd26], a
+	ret
+; 101db2
+
+Function101db2: ; 101db2
+	callba Function103302
+	call Function1c07
+	ld hl, $cd29
+	set 5, [hl]
+	jr c, .asm_101dca
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+
+.asm_101dca
+	ld a, $2
+	ld [$cd2b], a
+	ret
+; 101dd0
+
+Function101dd0: ; 101dd0
+	ld hl, $dc41
+	bit 1, [hl]
+	jr nz, .asm_101ddd
+	ld a, $19
+	ld [$cd25], a
+	ret
+
+.asm_101ddd
+	ld a, $1b
+	ld [$cd25], a
+	ret
+; 101de3
+
+Function101de3: ; 101de3
+	call Function101ecc
+	call Function101ead
+	jr c, .asm_101df3
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+
+.asm_101df3
+	call Function101e98
+	jr c, .asm_101e00
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+
+.asm_101e00
+	call Function101ed3
+	ld a, $2
+	ld [$cd2b], a
+	ret
+; 101e09
+
+Function101e09: ; 101e09
+	call Function101ead
+	jr c, .asm_101e16
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+
+.asm_101e16
+	call Function101ecc
+	call Function101e98
+	push af
+	call Function101ed3
+	pop af
+	jr c, .asm_101e2b
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ret
+
+.asm_101e2b
+	ld a, $2
+	ld [$cd2b], a
+	ret
+; 101e31
+
+Function101e31: ; 101e31
+	ld a, $3a
+	ld [$cd25], a
+	jp Function101c2b
+; 101e39
+
+Function101e39: ; 101e39
+	call Function1020bf
+	push af
+	call Function101ed3
+	pop af
+	jr c, .asm_101e49
+	ld a, $2a
+	ld [$cd25], a
+	ret
+
+.asm_101e49
+	ld a, $2
+	ld [$cd2b], a
+	ret
+; 101e4f
+
+Function101e4f: ; 101e4f
+	ld e, $6
+	call Function101ee4
+	call Function1013d6
+	ld a, [$cd25]
+	inc a
+	ld [$cd25], a
+	ld a, $0
+	ld [$cd26], a
+	ret
+; 101e64
+
+Function101e64: ; 101e64
+	call Function101ecc
+	call Function1020a8
+	push af
+	call Function101ed3
+	pop af
+	jr c, .asm_101e77
+	ld a, $24
+	ld [$cd25], a
+	ret
+
+.asm_101e77
+	ld hl, $cd29
+	set 5, [hl]
+	ld a, $2
+	ld [$cd2b], a
+	ret
+; 101e82
+
+INCBIN "baserom.gbc", $101e82, $101e98 - $101e82
+
+Function101e98: ; 101e98
+	call ClearSprites
+	callba Function8adb3
+	ret c
+	ld hl, GameTimerPause
+	set 7, [hl]
+	ld hl, $dc41
+	set 4, [hl]
+	ret
+; 101ead
+
+Function101ead: ; 101ead
+	ld hl, GameTimerPause
+	bit 7, [hl]
+	jr nz, .asm_101ec8
+	ld hl, $dc41
+	bit 2, [hl]
+	jr z, .asm_101eca
+	ld a, [$cd2f]
+	and a
+	jr nz, .asm_101ec8
+	ld hl, $dc41
+	bit 1, [hl]
+	jr z, .asm_101eca
+
+.asm_101ec8
+	xor a
+	ret
+
+.asm_101eca
+	scf
+	ret
+; 101ecc
+
+Function101ecc: ; 101ecc
+	call Function101ee2
+	call FadeToMenu
+	ret
+; 101ed3
+
+Function101ed3: ; 101ed3
+	call Function1013aa
+	callba Function115d99
+	ld hl, $cd29
+	set 7, [hl]
+	ret
+; 101ee2
+
+Function101ee2: ; 101ee2
+	ld e, $0
+
 Function101ee4: ; 101ee4
 	ld d, $0
 	ld hl, $5ef5
@@ -103319,8 +105039,77 @@
 	ret
 ; 102048
 
-INCBIN "baserom.gbc",$102048,$10209c - $102048
+Function102048: ; 102048
+	call Function10204c
+	ret
+; 10204c
 
+Function10204c: ; 10204c
+	ld hl, $c4cb
+	ld c, $10
+	ld de, $cd53
+.asm_102054
+	ld a, [de]
+	inc de
+	and a
+	jr z, .asm_102067
+	sub $30
+	jr c, .asm_102067
+	cp $a
+	jr nc, .asm_102067
+	add $f6
+	ld [hli], a
+	dec c
+	jr nz, .asm_102054
+
+.asm_102067
+	ret
+; 102068
+
+Function102068: ; 102068
+	ld hl, $cd53
+	ld c, $8
+.asm_10206d
+	ld a, [de]
+	call Function102080
+	jr c, .asm_10207f
+	ld a, [de]
+	swap a
+	call Function102080
+	jr c, .asm_10207f
+	inc de
+	dec c
+	jr nz, .asm_10206d
+
+.asm_10207f
+	ret
+; 102080
+
+Function102080: ; 102080
+	and $f
+	cp $f
+	jr z, .asm_10208a
+	add $30
+	ld [hli], a
+	ret
+
+.asm_10208a
+	ld [hl], $0
+	scf
+	ret
+; 10208e
+
+Function10208e: ; 10208e
+	push de
+	ld h, d
+	ld l, e
+	ld de, $dc42
+	ld bc, $0008
+	call CopyBytes
+	pop de
+	ret
+; 10209c
+
 Function10209c: ; 10209c
 	ld a, $ff
 	ld hl, $dc42
@@ -103329,8 +105118,43 @@
 	ret
 ; 1020a8
 
-INCBIN "baserom.gbc",$1020a8,$1020ea - $1020a8
+Function1020a8: ; 1020a8
+	call Function10209c
+	ld c, $1
+	ld de, $dc42
+	callba Function17a68f
+	ret c
+	call Function10208e
+	call Function102068
+	xor a
+	ret
+; 1020bf
 
+Function1020bf: ; 1020bf
+	call ClearSprites
+	callba Function8aba9
+	ld a, c
+	and a
+	jr z, .asm_1020e8
+	dec a
+	ld hl, $a04c
+	ld bc, $0025
+	call AddNTimes
+	ld d, h
+	ld e, l
+	ld a, $4
+	call GetSRAMBank
+	call Function10208e
+	call Function102068
+	call CloseSRAM
+	xor a
+	ret
+
+.asm_1020e8
+	scf
+	ret
+; 1020ea
+
 Function1020ea: ; 1020ea
 	ld hl, $dc41
 	bit 4, [hl]
@@ -103471,9 +105295,2386 @@
 	ret
 ; 1021ea
 
-INCBIN "baserom.gbc",$1021ea,$103612 - $1021ea
+INCBIN "baserom.gbc", $1021ea, $1021f9 - $1021ea
 
-Function103612: ; 103612
+Function1021f9: ; 1021f9
+	call Function102233
+	ld a, $0
+	ld [$cd49], a
+	ld hl, $cd29
+	bit 3, [hl]
+	res 3, [hl]
+	jr z, .asm_10220f
+	ld a, $1
+	ld [$cd49], a
+
+.asm_10220f
+	call Function1022ca
+	ld a, [$cd49]
+	ld hl, Jumptable_1022f5
+	rst JumpTable
+	call Function102241
+	call Function1022d0
+	jr c, .asm_102231
+	ld a, [$cd49]
+	bit 7, a
+	jr z, .asm_10220f
+	xor a
+	ld hl, $cd29
+	bit 3, [hl]
+	ret z
+	scf
+	ret
+
+.asm_102231
+	xor a
+	ret
+; 102233
+
+Function102233: ; 102233
+	ld hl, $cd49
+	ld bc, $000a
+	xor a
+	call ByteFill
+	call Function10304f
+	ret
+; 102241
+
+Function102241: ; 102241
+	call Function10226a
+	call Function102274
+	call Function10224b
+	ret
+; 10224b
+
+Function10224b: ; 10224b
+	ld hl, $cd4b
+	bit 1, [hl]
+	jr nz, .asm_10225e
+	bit 2, [hl]
+	jr nz, .asm_10225e
+	call DelayFrame
+	call DelayFrame
+	xor a
+	ret
+
+.asm_10225e
+	res 1, [hl]
+	res 2, [hl]
+	callba Function104099
+	scf
+	ret
+; 10226a
+
+Function10226a: ; 10226a
+	ld hl, $cd4b
+	bit 0, [hl]
+	ret z
+	call Function10305d
+	ret
+; 102274
+
+Function102274: ; 102274
+	ld hl, $cd4b
+	bit 3, [hl]
+	ret z
+	res 3, [hl]
+	ld de, $0008
+	call PlaySFX
+	ret
+; 102283
+
+Function102283: ; 102283
+	ld a, $1
+	ld [AttrMapEnd], a
+	ld hl, $cd4b
+	set 0, [hl]
+	ret
+; 10228e
+
+Function10228e: ; 10228e
+	xor a
+	ld [AttrMapEnd], a
+	ld hl, $cd4b
+	res 0, [hl]
+	ret
+; 102298
+
+Function102298: ; 102298
+	ld a, e
+	cp $2
+	ret nz
+	ld hl, $cd4b
+	bit 6, [hl]
+	jr z, .asm_1022b6
+	ld hl, $cd4b
+	bit 7, [hl]
+	ld hl, $cd4b
+	set 7, [hl]
+	ret nz
+	ld de, $0027
+	call PlaySFX
+	jr .asm_1022c1
+
+.asm_1022b6
+	ld hl, $cd4b
+	bit 7, [hl]
+	ld hl, $cd4b
+	res 7, [hl]
+	ret z
+
+.asm_1022c1
+	call Function10304f
+	ld a, $1
+	ld [AttrMapEnd], a
+	ret
+; 1022ca
+
+Function1022ca: ; 1022ca
+	ld a, $1e
+	ld [OverworldDelay], a
+	ret
+; 1022d0
+
+Function1022d0: ; 1022d0
+	callba Function10032e
+	ld a, [$cd2b]
+	and a
+	jr nz, .asm_1022f3
+	call Function102298
+	ld a, [OverworldDelay]
+	ld c, a
+	ld a, $1e
+	sub c
+	ld c, a
+	ld b, $3
+	callba Function10062d
+	jr c, .asm_1022f3
+	xor a
+	ret
+
+.asm_1022f3
+	scf
+	ret
+; 1022f5
+
+Jumptable_1022f5: ; 1022f5
+	dw Function10234b
+	dw Function102361
+	dw Function10236e
+	dw Function102387
+	dw Function1023a1
+	dw Function1025c7
+	dw Function1025dc
+	dw Function1024f6
+	dw Function10250c
+	dw Function1024a8
+	dw Function102591
+	dw Function1024a8
+	dw Function1025b0
+	dw Function1025bd
+	dw Function102814
+	dw Function10283c
+	dw Function102862
+	dw Function10286f
+	dw Function1024a8
+	dw Function1028a5
+	dw Function1028ab
+	dw Function1023b5
+	dw Function1023c6
+	dw Function1024af
+	dw Function102416
+	dw Function102423
+	dw Function10244b
+	dw Function1024af
+	dw Function10246a
+	dw Function102652
+	dw Function10266b
+	dw Function1025e9
+	dw Function1025ff
+	dw Function102738
+	dw Function102754
+	dw Function1026b7
+	dw Function1026c8
+	dw Function1028bf
+	dw Function1028c6
+	dw Function1028d3
+	dw Function1028da
+	dw Function1024a8
+	dw Function10248d
+; 10234b
+
+Function10234b: ; 10234b
+	call Function102d9a
+	call Function102dd3
+	call Function102dec
+	ld hl, $cd4b
+	set 1, [hl]
+	ld a, [$cd49]
+	inc a
+	ld [$cd49], a
+	ret
+; 102361
+
+Function102361: ; 102361
+	ld a, $cc
+	call Function1028e8
+	ld a, [$cd49]
+	inc a
+	ld [$cd49], a
+	ret
+; 10236e
+
+Function10236e: ; 10236e
+	call Function1028fc
+	ret nc
+	ld a, [$cd51]
+	cp $cc
+	jr z, .asm_10237f
+	ld a, $f2
+	ld [$cd2b], a
+	ret
+
+.asm_10237f
+	ld a, [$cd49]
+	inc a
+	ld [$cd49], a
+	ret
+; 102387
+
+Function102387: ; 102387
+	ld hl, $cd4b
+	set 6, [hl]
+	xor a
+	ld [$dc5f], a
+	ld de, MUSIC_ROUTE_30
+	call PlayMusic
+	call Function102d9a
+	call Function102dd3
+	ld a, $1
+	ld [$cfa9], a
+
+Function1023a1: ; 1023a1
+	call Function102283
+	call Function102db7
+	call Function102dec
+	ld hl, $cd4b
+	set 1, [hl]
+	ld a, $1d
+	ld [$cd49], a
+	ret
+; 1023b5
+
+Function1023b5: ; 1023b5
+	call Function10228e
+	call Function102a3b
+	call Function102b12
+	ld a, [$cd49]
+	inc a
+	ld [$cd49], a
+	ret
+; 1023c6
+
+Function1023c6: ; 1023c6
+	call Function102c48
+	call Function102c87
+	ld a, [$cd4c]
+	dec a
+	ld [CurPartyMon], a
+	xor a
+	ld [$d10b], a
+	callba Functione039
+	ld hl, PartyCount
+	inc [hl]
+	ld a, [hli]
+	ld c, a
+	ld b, $0
+	add hl, bc
+	ld [hl], $ff
+	ld a, [PartyCount]
+	ld [$cd4c], a
+	call Function102c07
+	call Function102d48
+	call Function102b32
+	call Function102f50
+	ld hl, $cd4b
+	set 1, [hl]
+	ld a, $14
+	ld [$cd4e], a
+	ld a, $0
+	ld [$cd4f], a
+	ld a, $0
+	ld [$cd4a], a
+	ld a, [$cd49]
+	inc a
+	ld [$cd49], a
+	ret
+; 102416
+
+Function102416: ; 102416
+	ld a, $aa
+	call Function1028e8
+	ld a, [$cd49]
+	inc a
+	ld [$cd49], a
+	ret
+; 102423
+
+Function102423: ; 102423
+	call Function102921
+	ret nc
+	callba Function14a58
+	callba Function1060af
+	callba Function106187
+	ld hl, $cd4b
+	set 1, [hl]
+	ld a, $0
+	ld [$cd4a], a
+	ld a, [$cd49]
+	inc a
+	ld [$cd49], a
+	ret
+; 10244b
+
+Function10244b: ; 10244b
+	call Function102f32
+	ld hl, $cd4b
+	set 1, [hl]
+	ld a, $19
+	ld [$cd4e], a
+	ld a, $0
+	ld [$cd4f], a
+	ld a, $0
+	ld [$cd4a], a
+	ld a, [$cd49]
+	inc a
+	ld [$cd49], a
+	ret
+; 10246a
+
+Function10246a: ; 10246a
+	call Function102d9a
+	ld hl, $cd29
+	set 3, [hl]
+	call Function102e07
+	ld hl, $cd4b
+	set 1, [hl]
+	ld a, $2a
+	ld [$cd49], a
+	ret
+; 102480
+
+INCBIN "baserom.gbc", $102480, $10248d - $102480
+
+Function10248d: ; 10248d
+	ld a, [$cd49]
+	set 7, a
+	ld [$cd49], a
+	ret
+; 102496
+
+INCBIN "baserom.gbc", $102496, $1024a8 - $102496
+
+Function1024a8: ; 1024a8
+	callba Function1009f3
+	ret c
+
+Function1024af: ; 1024af
+	call GetJoypad
+	ld a, [$cd4a]
+	ld hl, Jumptable_1024ba
+	rst JumpTable
+	ret
+; 1024ba
+
+Jumptable_1024ba: ; 1024ba
+	dw Function1024c0
+	dw Function1024cb
+	dw Function1024de
+; 1024c0
+
+Function1024c0: ; 1024c0
+	ld hl, $cd4e
+	inc [hl]
+	ld a, [$cd4a]
+	inc a
+	ld [$cd4a], a
+
+Function1024cb: ; 1024cb
+	ld hl, $cd4e
+	dec [hl]
+	ret nz
+	ld a, [$cd4f]
+	inc a
+	ld [$cd4e], a
+	ld a, [$cd4a]
+	inc a
+	ld [$cd4a], a
+
+Function1024de: ; 1024de
+	ld hl, $cd4e
+	dec [hl]
+	jr z, .asm_1024e9
+	ld a, [hJoyPressed]
+	and $3
+	ret z
+
+.asm_1024e9
+	ld a, $0
+	ld [$cd4a], a
+	ld a, [$cd49]
+	inc a
+	ld [$cd49], a
+	ret
+; 1024f6
+
+Function1024f6: ; 1024f6
+	call Function1bee
+	ld hl, $cd4b
+	set 1, [hl]
+	ld a, [$cd4c]
+	call Function1028e8
+	ld a, [$cd49]
+	inc a
+	ld [$cd49], a
+	ret
+; 10250c
+
+Function10250c: ; 10250c
+	call Function1028fc
+	ret nc
+	ld a, [$cd51]
+	cp $f
+	jr z, .asm_10254b
+	and a
+	jr z, .asm_102572
+	cp $aa
+	jr z, .asm_102572
+	cp $7
+	jr nc, .asm_102572
+	ld [$cd4d], a
+	dec a
+	ld [$d003], a
+	ld a, [$cd4c]
+	dec a
+	ld [DefaultFlypoint], a
+	call Function102b9c
+	call Function102bdc
+	jr c, .asm_10256d
+	callba Functionfb5dd
+	jr c, .asm_102568
+	ld hl, $cd4b
+	set 1, [hl]
+	ld a, $e
+	ld [$cd49], a
+	ret
+
+.asm_10254b
+	call Function103021
+	ld hl, $cd4b
+	set 1, [hl]
+	ld a, $0
+	ld [$cd4a], a
+	ld a, $1e
+	ld [$cd4e], a
+	ld a, $1e
+	ld [$cd4f], a
+	ld a, $29
+	ld [$cd49], a
+	ret
+
+.asm_102568
+	call Function102ff5
+	jr .asm_102577
+
+.asm_10256d
+	call Function102f85
+	jr .asm_102577
+
+.asm_102572
+	call Function102fce
+	jr .asm_102577
+
+.asm_102577
+	ld hl, $cd4b
+	set 1, [hl]
+	ld a, $0
+	ld [$cd4a], a
+	ld a, $1e
+	ld [$cd4e], a
+	ld a, $3c
+	ld [$cd4f], a
+	ld a, $9
+	ld [$cd49], a
+	ret
+; 102591
+
+Function102591: ; 102591
+	call Function102ee7
+	ld hl, $cd4b
+	set 1, [hl]
+	ld a, $0
+	ld [$cd4a], a
+	ld a, $1e
+	ld [$cd4e], a
+	ld a, $3c
+	ld [$cd4f], a
+	ld a, [$cd49]
+	inc a
+	ld [$cd49], a
+	ret
+; 1025b0
+
+Function1025b0: ; 1025b0
+	ld a, $9
+	call Function1028e8
+	ld a, [$cd49]
+	inc a
+	ld [$cd49], a
+	ret
+; 1025bd
+
+Function1025bd: ; 1025bd
+	call Function1028fc
+	ret nc
+	ld a, $4
+	ld [$cd49], a
+	ret
+; 1025c7
+
+Function1025c7: ; 1025c7
+	call Function102f6d
+	ld hl, $cd4b
+	set 1, [hl]
+	ld a, $f
+	call Function1028e8
+	ld a, [$cd49]
+	inc a
+	ld [$cd49], a
+	ret
+; 1025dc
+
+Function1025dc: ; 1025dc
+	call Function1028fc
+	ret nc
+	ld a, [$cd49]
+	set 7, a
+	ld [$cd49], a
+	ret
+; 1025e9
+
+Function1025e9: ; 1025e9
+	nop
+	ld hl, $cd4b
+	set 6, [hl]
+	call Function102b4e
+	ld hl, $cd4b
+	set 1, [hl]
+	ld a, [$cd49]
+	inc a
+	ld [$cd49], a
+	ret
+; 1025ff
+
+Function1025ff: ; 1025ff
+	ld hl, $cd4b
+	set 2, [hl]
+	callba Function1009f3
+	ret c
+	callba Function241ba
+	ld a, [$cfa8]
+	and c
+	ret z
+	bit 0, c
+	jr nz, .asm_102623
+	bit 6, c
+	jr nz, .asm_10262e
+	bit 7, c
+	jr nz, .asm_102646
+	ret
+
+.asm_102623
+	ld hl, $cd4b
+	set 3, [hl]
+	ld a, $27
+	ld [$cd49], a
+	ret
+
+.asm_10262e
+	ld a, [$cfa9]
+	ld b, a
+	ld a, [OTPartyCount]
+	cp b
+	ret nz
+	call Function1bf7
+	ld a, [PartyCount]
+	ld [$cfa9], a
+	ld a, $1d
+	ld [$cd49], a
+	ret
+
+.asm_102646
+	ld a, [$cfa9]
+	cp $1
+	ret nz
+	ld a, $23
+	ld [$cd49], a
+	ret
+; 102652
+
+Function102652: ; 102652
+	nop
+	ld hl, $cd4b
+	set 6, [hl]
+	nop
+	call Function102b7b
+	nop
+	ld hl, $cd4b
+	set 1, [hl]
+	nop
+	ld a, [$cd49]
+	inc a
+	ld [$cd49], a
+	ret
+; 10266b
+
+Function10266b: ; 10266b
+	ld hl, $cd4b
+	set 2, [hl]
+	callba Function1009f3
+	ret c
+	callba Function241ba
+	ld a, [$cfa8]
+	and c
+	ret z
+	bit 0, c
+	jr nz, .asm_10268f
+	bit 7, c
+	jr nz, .asm_10269a
+	bit 6, c
+	jr nz, .asm_1026a8
+	ret
+
+.asm_10268f
+	ld hl, $cd4b
+	set 3, [hl]
+	ld a, $21
+	ld [$cd49], a
+	ret
+
+.asm_10269a
+	ld a, [$cfa9]
+	dec a
+	ret nz
+	call Function1bf7
+	ld a, $1f
+	ld [$cd49], a
+	ret
+
+.asm_1026a8
+	ld a, [$cfa9]
+	ld b, a
+	ld a, [PartyCount]
+	cp b
+	ret nz
+	ld a, $23
+	ld [$cd49], a
+	ret
+; 1026b7
+
+Function1026b7: ; 1026b7
+	ld hl, $cd4b
+	set 6, [hl]
+	ld a, [$cd49]
+	inc a
+	ld [$cd49], a
+	ld a, $0
+	ld [$cd4a], a
+
+Function1026c8: ; 1026c8
+	call GetJoypad
+	callba Function1009f3
+	ret c
+	ld a, [$cd4a]
+	ld hl, Jumptable_1026da
+	rst JumpTable
+	ret
+; 1026da
+
+Jumptable_1026da: ; 1026da
+	dw Function1026de
+	dw Function1026f3
+; 1026de
+
+Function1026de: ; 1026de
+	call Function1bf7
+	ld hl, $c5fd
+	ld [hl], $ed
+	ld a, [$cd4a]
+	inc a
+	ld [$cd4a], a
+	ld hl, $cd4b
+	set 1, [hl]
+	ret
+; 1026f3
+
+Function1026f3: ; 1026f3
+	ld a, [hJoyPressed]
+	bit 0, a
+	jr nz, .asm_102723
+	bit 6, a
+	jr nz, .asm_102712
+	bit 7, a
+	jr nz, .asm_102702
+	ret
+
+.asm_102702
+	ld hl, $c5fd
+	ld [hl], $7f
+	ld a, $1
+	ld [$cfa9], a
+	ld a, $1d
+	ld [$cd49], a
+	ret
+
+.asm_102712
+	ld hl, $c5fd
+	ld [hl], $7f
+	ld a, [OTPartyCount]
+	ld [$cfa9], a
+	ld a, $1f
+	ld [$cd49], a
+	ret
+
+.asm_102723
+	ld hl, $c5fd
+	ld [hl], $ec
+	ld hl, $cd4b
+	set 3, [hl]
+	ld hl, $cd4b
+	set 2, [hl]
+	ld a, $5
+	ld [$cd49], a
+	ret
+; 102738
+
+Function102738: ; 102738
+	ld hl, $cd4b
+	set 6, [hl]
+	call Function1bee
+	call Function1027eb
+	ld hl, $cd4b
+	set 1, [hl]
+	ld a, [$cd49]
+	inc a
+	ld [$cd49], a
+	ld a, $0
+	ld [$cd4a], a
+
+Function102754: ; 102754
+	call GetJoypad
+	callba Function1009f3
+	ret c
+	ld a, [$cd4a]
+	ld hl, Jumptable_102766
+	rst JumpTable
+	ret
+; 102766
+
+Jumptable_102766: ; 102766
+	dw Function102770
+	dw Function102775
+	dw Function10278c
+	dw Function1027a0
+	dw Function1027b7
+; 102770
+
+Function102770: ; 102770
+	ld a, $1
+	ld [$cd4a], a
+
+Function102775: ; 102775
+	ld hl, $c5e1
+	ld [hl], $ed
+	ld hl, $c5eb
+	ld [hl], $7f
+	ld hl, $cd4b
+	set 2, [hl]
+	ld a, [$cd4a]
+	inc a
+	ld [$cd4a], a
+	ret
+; 10278c
+
+Function10278c: ; 10278c
+	ld a, [hJoyPressed]
+	bit 0, a
+	jr nz, asm_1027c6
+	bit 1, a
+	jr nz, asm_1027e2
+	bit 4, a
+	jr nz, .asm_10279b
+	ret
+
+.asm_10279b
+	ld a, $3
+	ld [$cd4a], a
+
+Function1027a0: ; 1027a0
+	ld hl, $c5e1
+	ld [hl], $7f
+	ld hl, $c5eb
+	ld [hl], $ed
+	ld hl, $cd4b
+	set 2, [hl]
+	ld a, [$cd4a]
+	inc a
+	ld [$cd4a], a
+	ret
+
+Function1027b7: ; 1027b7
+	ld a, [hJoyPressed]
+	bit 0, a
+	jr nz, asm_1027d1
+	bit 1, a
+	jr nz, asm_1027e2
+	bit 5, a
+	jr nz, Function102770
+	ret
+
+asm_1027c6:
+	ld hl, $cd4b
+	set 3, [hl]
+	ld a, $25
+	ld [$cd49], a
+	ret
+
+asm_1027d1:
+	ld hl, $cd4b
+	set 3, [hl]
+	ld a, [$cfa9]
+	ld [$cd4c], a
+	ld a, $7
+	ld [$cd49], a
+	ret
+
+asm_1027e2:
+	call Function102db7
+	ld a, $1d
+	ld [$cd49], a
+	ret
+; 1027eb
+
+Function1027eb: ; 1027eb
+	ld hl, $c5b8
+	ld b, $2
+	ld c, $12
+	ld d, h
+	ld e, l
+	callba Function16d61d
+	ld de, $6804
+	ld hl, $c5e2
+	call PlaceString
+	ret
+; 102804
+
+INCBIN "baserom.gbc", $102804, $102814 - $102804
+
+Function102814: ; 102814
+	ld a, [$cfa9]
+	ld [$cd52], a
+	ld a, [$cd4c]
+	dec a
+	ld [DefaultFlypoint], a
+	ld a, [$cd4d]
+	dec a
+	ld [$d003], a
+	call Function102ea8
+	ld a, [$cd49]
+	inc a
+	ld [$cd49], a
+	ld a, $0
+	ld [$cd4a], a
+	ld hl, $cd4b
+	set 1, [hl]
+
+Function10283c: ; 10283c
+	ld hl, $cd4b
+	set 2, [hl]
+	call Function1029c3
+	ret z
+	jr c, .asm_102852
+	ld a, $10
+	ld [$cd49], a
+	ld hl, $cd4b
+	set 1, [hl]
+	ret
+
+.asm_102852
+	ld a, $14
+	ld [$cd49], a
+	ld hl, $cd4b
+	set 3, [hl]
+	ld hl, $cd4b
+	set 1, [hl]
+	ret
+; 102862
+
+Function102862: ; 102862
+	ld a, $8
+	call Function1028e8
+	ld a, [$cd49]
+	inc a
+	ld [$cd49], a
+	ret
+; 10286f
+
+Function10286f: ; 10286f
+	call Function1028fc
+	ret nc
+	ld a, [$cd52]
+	ld [$cfa9], a
+	ld a, [$cd51]
+	cp $8
+	jr nz, .asm_102886
+	ld a, $15
+	ld [$cd49], a
+	ret
+
+.asm_102886
+	call Function102ee7
+	ld hl, $cd4b
+	set 1, [hl]
+	ld a, $1e
+	ld [$cd4e], a
+	ld a, $3c
+	ld [$cd4f], a
+	ld a, $0
+	ld [$cd4a], a
+	ld a, [$cd49]
+	inc a
+	ld [$cd49], a
+	ret
+; 1028a5
+
+Function1028a5: ; 1028a5
+	ld a, $4
+	ld [$cd49], a
+	ret
+; 1028ab
+
+Function1028ab: ; 1028ab
+	ld a, [$cd52]
+	ld [$cfa9], a
+	call Function102f15
+	ld hl, $cd4b
+	set 1, [hl]
+	ld a, $c
+	ld [$cd49], a
+	ret
+; 1028bf
+
+Function1028bf: ; 1028bf
+	ld a, [$cd49]
+	inc a
+	ld [$cd49], a
+
+Function1028c6: ; 1028c6
+	xor a
+	ld [MonType], a
+	call Function102bac
+	ld a, $1d
+	ld [$cd49], a
+	ret
+; 1028d3
+
+Function1028d3: ; 1028d3
+	ld a, [$cd49]
+	inc a
+	ld [$cd49], a
+
+Function1028da: ; 1028da
+	ld a, $1
+	ld [MonType], a
+	call Function102bac
+	ld a, $1f
+	ld [$cd49], a
+	ret
+; 1028e8
+
+Function1028e8: ; 1028e8
+	ld hl, $cd4b
+	res 6, [hl]
+	ld [$cd50], a
+	callba Function100641
+	ld a, $0
+	ld [$cd4a], a
+	ret
+; 1028fc
+
+Function1028fc: ; 1028fc
+	call GetJoypad
+	callba Function1009f3
+	jr nc, .asm_102909
+	and a
+	ret
+
+.asm_102909
+	ld a, [$cd4a]
+	ld hl, Jumptable_102917
+	rst JumpTable
+	ret nc
+	ld a, $0
+	ld [$cd4a], a
+	ret
+; 102917
+
+Jumptable_102917: ; 102917
+	dw Function102933
+	dw Function10294f
+	dw Function10295d
+	dw Function10296e
+	dw Function102996
+; 102921
+
+Function102921: ; 102921
+	ld a, [$cd4a]
+	ld hl, Jumptable_10292f
+	rst JumpTable
+	ret nc
+	ld a, $0
+	ld [$cd4a], a
+	ret
+; 10292f
+
+Jumptable_10292f: ; 10292f
+	dw Function10295d
+	dw Function102984
+; 102933
+
+Function102933: ; 102933
+	ld hl, $69bb
+	call LoadMenuDataHeader
+	call Function102e07
+	ld a, $32
+	ld [TextDelayFrames], a
+	ld hl, $cd4b
+	set 1, [hl]
+	ld a, [$cd4a]
+	inc a
+	ld [$cd4a], a
+	and a
+	ret
+; 10294f
+
+Function10294f: ; 10294f
+	ld a, [TextDelayFrames]
+	and a
+	ret nz
+	ld a, [$cd4a]
+	inc a
+	ld [$cd4a], a
+	and a
+	ret
+; 10295d
+
+Function10295d: ; 10295d
+	call Function10299e
+	ld a, $0
+	ld [$cd27], a
+	ld a, [$cd4a]
+	inc a
+	ld [$cd4a], a
+	and a
+	ret
+; 10296e
+
+Function10296e: ; 10296e
+	callba Function100382
+	and a
+	ld a, [$cd27]
+	bit 7, a
+	ret z
+	ld a, [$cd4a]
+	inc a
+	ld [$cd4a], a
+	and a
+	ret
+; 102984
+
+Function102984: ; 102984
+	callba Function100382
+	and a
+	ld a, [$cd27]
+	bit 7, a
+	ret z
+	call Function1029af
+	scf
+	ret
+; 102996
+
+Function102996: ; 102996
+	call Function1029af
+	call Function1c07
+	scf
+	ret
+; 10299e
+
+Function10299e: ; 10299e
+	ld a, $1
+	ld [$ccb4], a
+	ld a, [$cd50]
+	ld [$ccb5], a
+	ld a, $aa
+	ld [$cd51], a
+	ret
+; 1029af
+
+Function1029af: ; 1029af
+	ld hl, $cd4b
+	res 7, [hl]
+	ld a, [$cc61]
+	ld [$cd51], a
+	ret
+; 1029bb
+
+INCBIN "baserom.gbc", $1029bb, $1029c3 - $1029bb
+
+Function1029c3: ; 1029c3
+	ld a, [$cd4a]
+	ld hl, Jumptable_1029cb
+	rst JumpTable
+	ret
+; 1029cb
+
+Jumptable_1029cb: ; 1029cb
+	dw Function1029cf
+	dw Function1029fe
+; 1029cf
+
+Function1029cf: ; 1029cf
+	call Function1d6e
+	ld hl, $c536
+	ld b, $3
+	ld c, $8
+	ld d, h
+	ld e, l
+	callba Function16d61d
+	ld de, $6a26
+	ld hl, $c54c
+	call PlaceString
+	ld hl, $cd4b
+	set 1, [hl]
+	ld de, $6a33
+	call Function1bb1
+	ld a, [$cd4a]
+	inc a
+	ld [$cd4a], a
+	xor a
+	ret
+; 1029fe
+
+Function1029fe: ; 1029fe
+	callba Function1009f3
+	ret c
+	callba Function241ba
+	ld a, c
+	ld hl, $cfa8
+	and [hl]
+	ret z
+	push af
+	call Function1c07
+	pop af
+	ld a, [$cfa9]
+	cp $1
+	jr nz, .asm_102a21
+	ld a, $1
+	and a
+	ret
+
+.asm_102a21
+	ld a, $1
+	and a
+	scf
+	ret
+; 102a26
+
+INCBIN "baserom.gbc", $102a26, $102a3b - $102a26
+
+Function102a3b: ; 102a3b
+	ld a, [$cd30]
+	ld [$c74e], a
+	ld hl, PlayerName
+	ld de, $c6e7
+	ld bc, $000b
+	call CopyBytes
+	ld a, [$cd4c]
+	dec a
+	ld c, a
+	ld b, $0
+	ld hl, PartySpecies
+	add hl, bc
+	ld a, [hl]
+	ld [$c6d0], a
+	ld a, [$cd4c]
+	dec a
+	ld hl, PartyMonOT
+	call SkipNames
+	ld de, $c6f2
+	ld bc, $000b
+	call CopyBytes
+	ld a, [$cd4c]
+	dec a
+	ld hl, PartyMon1ID
+	call GetPartyLocation
+	ld a, [hli]
+	ld [$c6ff], a
+	ld a, [hl]
+	ld [$c700], a
+	ld a, [$cd4c]
+	dec a
+	ld hl, PartyMon1DVs
+	call GetPartyLocation
+	ld a, [hli]
+	ld [$c6fd], a
+	ld a, [hl]
+	ld [$c6fe], a
+	ld a, [$cd4c]
+	dec a
+	ld hl, PartyMon1Species
+	call GetPartyLocation
+	ld b, h
+	ld c, l
+	callba GetCaughtGender
+	ld a, c
+	ld [$c701], a
+	ld hl, $d26b
+	ld de, $c719
+	ld bc, $000b
+	call CopyBytes
+	ld a, [$cd4d]
+	dec a
+	ld c, a
+	ld b, $0
+	ld hl, OTPartySpecies
+	add hl, bc
+	ld a, [hl]
+	ld [$c702], a
+	ld a, [$cd4d]
+	dec a
+	ld hl, OTPartyMonOT
+	call SkipNames
+	ld de, $c724
+	ld bc, $000b
+	call CopyBytes
+	ld a, [$cd4d]
+	dec a
+	ld hl, OTPartyMon1ID
+	call GetPartyLocation
+	ld a, [hli]
+	ld [$c731], a
+	ld a, [hl]
+	ld [$c732], a
+	ld a, [$cd4d]
+	dec a
+	ld hl, OTPartyMon1DVs
+	call GetPartyLocation
+	ld a, [hli]
+	ld [$c72f], a
+	ld a, [hl]
+	ld [$c730], a
+	ld a, [$cd4d]
+	dec a
+	ld hl, OTPartyMon1Species
+	call GetPartyLocation
+	ld b, h
+	ld c, l
+	callba GetCaughtGender
+	ld a, c
+	ld [$c733], a
+	ret
+; 102b12
+
+Function102b12: ; 102b12
+	ld c, $64
+	call DelayFrames
+	call Function102d9a
+	call Functione58
+	ld a, [$cd2f]
+	and a
+	jr nz, .asm_102b2b
+	callba Function108026
+	jr .asm_102b31
+
+.asm_102b2b
+	callba Function10802a
+
+.asm_102b31
+	ret
+; 102b32
+
+Function102b32: ; 102b32
+	ld a, [$cd4c]
+	dec a
+	ld [CurPartyMon], a
+	ld a, $1
+	ld [$d1e9], a
+	callba Function421d8
+	call Function102d9a
+	call Function102dd3
+	call Function102dec
+	ret
+; 102b4e
+
+Function102b4e: ; 102b4e
+	ld a, $1
+	ld [MonType], a
+	ld a, [$cfa9]
+	push af
+	ld de, $6b73
+	call Function1bb1
+	pop af
+	ld [$cfa9], a
+	ld a, [OTPartyCount]
+	ld [$cfa3], a
+	ret
+; 102b68
+
+INCBIN "baserom.gbc", $102b68, $102b7b - $102b68
+
+Function102b7b: ; 102b7b
+	xor a
+	ld [MonType], a
+	ld a, [$cfa9]
+	push af
+	ld de, $6b94
+	call Function1bb1
+	pop af
+	ld [$cfa9], a
+	ld a, [PartyCount]
+	ld [$cfa3], a
+	ret
+; 102b94
+
+INCBIN "baserom.gbc", $102b94, $102b9c - $102b94
+
+Function102b9c: ; 102b9c
+	ld a, [$cd4d]
+	dec a
+	ld hl, $c55a
+	ld bc, $0014
+	call AddNTimes
+	ld [hl], $ec
+	ret
+; 102bac
+
+Function102bac: ; 102bac
+	ld a, [$cfa9]
+	dec a
+	ld [CurPartyMon], a
+	call LowVolume
+	call ClearSprites
+	callba Function4dc8f
+	ld a, [CurPartyMon]
+	inc a
+	ld [$cfa9], a
+	call Function102d9a
+	call ClearPalettes
+	call DelayFrame
+	call MaxVolume
+	call Function102dd3
+	call Function102dec
+	call Function102db7
+	ret
+; 102bdc
+
+Function102bdc: ; 102bdc
+	ld a, [$cd4d]
+	dec a
+	ld hl, OTPartyMon1Species
+	call GetPartyLocation
+	push hl
+	ld a, [$cd4d]
+	ld c, a
+	ld b, $0
+	ld hl, OTPartyCount
+	add hl, bc
+	ld a, [hl]
+	pop hl
+	cp $fd
+	jr z, .asm_102bfa
+	cp [hl]
+	jr nz, .asm_102c05
+
+.asm_102bfa
+	ld bc, $001f
+	add hl, bc
+	ld a, [hl]
+	cp $65
+	jr nc, .asm_102c05
+	and a
+	ret
+
+.asm_102c05
+	scf
+	ret
+; 102c07
+
+Function102c07: ; 102c07
+	call Function102c14
+	call Function102c3b
+	call Function102c21
+	call Function102c2e
+	ret
+; 102c14
+
+Function102c14: ; 102c14
+	ld hl, PartySpecies
+	ld de, OTPartySpecies
+	ld bc, $0001
+	call Function102c71
+	ret
+; 102c21
+
+Function102c21: ; 102c21
+	ld hl, PartyMonNicknames
+	ld de, OTPartyMonNicknames
+	ld bc, $000b
+	call Function102c71
+	ret
+; 102c2e
+
+Function102c2e: ; 102c2e
+	ld hl, PartyMonOT
+	ld de, OTPartyMonOT
+	ld bc, $000b
+	call Function102c71
+	ret
+; 102c3b
+
+Function102c3b: ; 102c3b
+	ld hl, PartyMon1Species
+	ld de, OTPartyMon1Species
+	ld bc, $0030
+	call Function102c71
+	ret
+; 102c48
+
+Function102c48: ; 102c48
+	callba Function10165a
+	ld a, $0
+	call GetSRAMBank
+	ld hl, $a600
+	ld de, $c608
+	ld bc, $002f
+	call Function102c71
+	call CloseSRAM
+	ld hl, $c608
+	ld de, $da00
+	ld bc, $01e0
+	ld a, $5
+	call FarCopyWRAM
+	ret
+; 102c71
+
+Function102c71: ; 102c71
+	ld a, [$cd4c]
+	dec a
+	call AddNTimes
+	push hl
+	ld h, d
+	ld l, e
+	ld a, [$cd4d]
+	dec a
+	call AddNTimes
+	pop de
+	call SwapBytes
+	ret
+; 102c87
+
+Function102c87: ; 102c87
+	ld a, [$cf63]
+	push af
+	ld a, [$cf64]
+	push af
+	ld a, [$cd4c]
+	ld [$cf63], a
+	ld a, [PartyCount]
+	ld [$cf64], a
+	ld a, $0
+	ld hl, $a600
+	ld de, $c608
+	ld bc, $011a
+	call Function102d3e
+	call Function102cee
+	ld a, $0
+	ld hl, $c608
+	ld de, $a600
+	ld bc, $011a
+	call Function102d3e
+	ld a, [$cd4d]
+	ld [$cf63], a
+	ld a, [OTPartyCount]
+	ld [$cf64], a
+	ld a, $5
+	ld hl, $da00
+	ld de, $c608
+	ld bc, $011a
+	call FarCopyWRAM
+	call Function102cee
+	ld a, $5
+	ld hl, $c608
+	ld de, $da00
+	ld bc, $011a
+	call FarCopyWRAM
+	pop af
+	ld [$cf64], a
+	pop af
+	ld [$cf63], a
+	ret
+; 102cee
+
+Function102cee: ; 102cee
+	ld a, [$cf63]
+	dec a
+	call Function102d34
+	ld de, DefaultFlypoint
+	ld bc, $002f
+	call CopyBytes
+	ld a, [$cf63]
+	ld c, a
+	ld a, $6
+	sub c
+	ret z
+	ld bc, $002f
+	ld hl, NULL
+	call AddNTimes
+	push hl
+	ld a, [$cf63]
+	dec a
+	call Function102d34
+	ld d, h
+	ld e, l
+	ld hl, $002f
+	add hl, de
+	pop bc
+	call CopyBytes
+	ld a, [$cf64]
+	dec a
+	call Function102d34
+	ld d, h
+	ld e, l
+	ld hl, DefaultFlypoint
+	ld bc, $002f
+	call CopyBytes
+	ret
+; 102d34
+
+Function102d34: ; 102d34
+	ld hl, $c608
+	ld bc, $002f
+	call AddNTimes
+	ret
+; 102d3e
+
+Function102d3e: ; 102d3e
+	call GetSRAMBank
+	call CopyBytes
+	call CloseSRAM
+	ret
+; 102d48
+
+Function102d48: ; 102d48
+	ld a, [$cd4c]
+	ld e, a
+	ld d, $0
+	ld hl, PartyCount
+	add hl, de
+	ld a, [hl]
+	ld [$d265], a
+	cp $fd
+	jr z, .asm_102d6d
+	dec a
+	call SetSeenAndCaughtMon
+	ld a, [$cd4c]
+	dec a
+	ld bc, $0030
+	ld hl, PartyMon1Happiness
+	call AddNTimes
+	ld [hl], $46
+
+.asm_102d6d
+	ld a, [$d265]
+	cp $c9
+	jr nz, .asm_102d98
+	ld a, [$cd4c]
+	dec a
+	ld bc, $0030
+	ld hl, PartyMon1DVs
+	call AddNTimes
+	ld a, $2d
+	call Predef
+	callba Functionfba18
+	ld a, [$def4]
+	and a
+	jr nz, .asm_102d98
+	ld a, [UnownLetter]
+	ld [$def4], a
+
+.asm_102d98
+	and a
+	ret
+; 102d9a
+
+Function102d9a: ; 102d9a
+	ld a, $7f
+	ld hl, SpritesEnd
+	ld bc, $0168
+	call ByteFill
+	ld a, $7
+	ld hl, AttrMap
+	ld bc, $0168
+	call ByteFill
+	callba Function104000
+	ret
+; 102db7
+
+Function102db7: ; 102db7
+	call Function102e4f
+	call Function102e3e
+	ld hl, $cd4b
+	set 1, [hl]
+	ret
+; 102dc3
+
+Function102dc3: ; 102dc3
+	ld hl, $c590
+	ld b, $4
+	ld c, $12
+	ld d, h
+	ld e, l
+	callba Function16d61d
+	ret
+; 102dd3
+
+Function102dd3: ; 102dd3
+	call DisableLCD
+	ld de, $72a2
+	ld hl, VTiles0
+	ld bc, $4004
+	call Get2bpp
+	callba Function16d421
+	call EnableLCD
+	ret
+; 102dec
+
+Function102dec: ; 102dec
+	ld hl, $72e2
+	ld de, Unkn2Pals
+	ld bc, $0020
+	ld a, $5
+	call FarCopyWRAM
+	callba Function49742
+	call Function32f9
+	call DelayFrame
+	ret
+; 102e07
+
+Function102e07: ; 102e07
+	ld hl, $c56b
+	ld b, $1
+	ld c, $b
+	ld a, [IsInBattle]
+	and a
+	jr z, .asm_102e19
+	call TextBox
+	jr .asm_102e28
+
+.asm_102e19
+	ld hl, $c56b
+	ld b, $1
+	ld c, $b
+	ld d, h
+	ld e, l
+	callba Function16d61d
+
+.asm_102e28
+	ld de, $6e32
+	ld hl, $c580
+	call PlaceString
+	ret
+; 102e32
+
+INCBIN "baserom.gbc", $102e32, $102e3e - $102e32
+
+Function102e3e: ; 102e3e
+	ld de, $6e48
+	ld hl, $c5fe
+	call PlaceString
+	ret
+; 102e48
+
+INCBIN "baserom.gbc", $102e48, $102e4f - $102e48
+
+Function102e4f: ; 102e4f
+	callba Function16d42e
+	callba Function49797
+	ld de, PlayerName
+	ld hl, $c4a4
+	call PlaceString
+	ld a, $14
+	ld [bc], a
+	ld de, $d26b
+	ld hl, $c544
+	call PlaceString
+	ld a, $14
+	ld [bc], a
+	ld hl, $c4bb
+	ld de, PartySpecies
+	call Function102e86
+	ld hl, $c55b
+	ld de, OTPartySpecies
+	call Function102e86
+	ret
+; 102e86
+
+Function102e86: ; 102e86
+	ld c, $0
+.asm_102e88
+	ld a, [de]
+	cp $ff
+	ret z
+	ld [$d265], a
+	push bc
+	push hl
+	push de
+	push hl
+	ld a, c
+	ld [hDividend], 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_102e88
+; 102ea8
+
+Function102ea8: ; 102ea8
+	call Function102dc3
+	ld a, [$cd4c]
+	dec a
+	ld c, a
+	ld b, $0
+	ld hl, PartySpecies
+	add hl, bc
+	ld a, [hl]
+	ld [$d265], a
+	call GetPokemonName
+	ld hl, StringBuffer1
+	ld de, StringBuffer2
+	ld bc, $000b
+	call CopyBytes
+	ld a, [$cd4d]
+	dec a
+	ld c, a
+	ld b, $0
+	ld hl, OTPartySpecies
+	add hl, bc
+	ld a, [hl]
+	ld [$d265], a
+	call GetPokemonName
+	ld hl, $6ee2
+	call PrintTextBoxText
+	ret
+; 102ee2
+
+INCBIN "baserom.gbc", $102ee2, $102ee7 - $102ee2
+
+Function102ee7: ; 102ee7
+	call Function102dc3
+	ld de, $6ef4
+	ld hl, $c5b9
+	call PlaceString
+	ret
+; 102ef4
+
+INCBIN "baserom.gbc", $102ef4, $102f15 - $102ef4
+
+Function102f15: ; 102f15
+	call Function102dc3
+	ld de, $6f22
+	ld hl, $c5b9
+	call PlaceString
+	ret
+; 102f22
+
+INCBIN "baserom.gbc", $102f22, $102f32 - $102f22
+
+Function102f32: ; 102f32
+	call Function102dc3
+	ld de, $6f3f
+	ld hl, $c5b9
+	call PlaceString
+	ret
+; 102f3f
+
+INCBIN "baserom.gbc", $102f3f, $102f50 - $102f3f
+
+Function102f50: ; 102f50
+	call Function102dc3
+	ld de, $6f5d
+	ld hl, $c5b9
+	call PlaceString
+	ret
+; 102f5d
+
+INCBIN "baserom.gbc", $102f5d, $102f6d - $102f5d
+
+Function102f6d: ; 102f6d
+	call Function102dc3
+	ld de, $6f7a
+	ld hl, $c5b9
+	call PlaceString
+	ret
+; 102f7a
+
+INCBIN "baserom.gbc", $102f7a, $102f85 - $102f7a
+
+Function102f85: ; 102f85
+	ld a, [$d003]
+	ld c, a
+	ld b, $0
+	ld hl, OTPartySpecies
+	add hl, bc
+	ld a, [hl]
+	ld [$d265], a
+	call GetPokemonName
+	call Function102dc3
+	ld de, $6fb2
+	ld hl, $c5b9
+	call PlaceString
+	ld de, StringBuffer1
+	ld hl, $c5c5
+	call PlaceString
+	ld de, $6fcc
+	call PlaceString
+	ret
+; 102fb2
+
+INCBIN "baserom.gbc", $102fb2, $102fce - $102fb2
+
+Function102fce: ; 102fce
+	call Function102dc3
+	ld de, $6fdb
+	ld hl, $c5b9
+	call PlaceString
+	ret
+; 102fdb
+
+INCBIN "baserom.gbc", $102fdb, $102ff5 - $102fdb
+
+Function102ff5: ; 102ff5
+	call Function102dc3
+	ld de, $7002
+	ld hl, $c5b9
+	call PlaceString
+	ret
+; 103002
+
+INCBIN "baserom.gbc", $103002, $103021 - $103002
+
+Function103021: ; 103021
+	call Function102dc3
+	ld de, $702e
+	ld hl, $c5b9
+	call PlaceString
+	ret
+; 10302e
+
+INCBIN "baserom.gbc", $10302e, $10304f - $10302e
+
+Function10304f: ; 10304f
+	xor a
+	ld [AttrMapEnd], a
+	ld [$cf42], a
+	ld [$cf44], a
+	ld [$cf45], a
+	ret
+; 10305d
+
+Function10305d: ; 10305d
+	nop
+	ld a, [AttrMapEnd]
+	and a
+	ret z
+	call Function10307f
+	ret c
+	call Function103094
+	call Function10306e
+	ret
+; 10306e
+
+Function10306e: ; 10306e
+	ld a, $1
+	ld [hOAMUpdate], a
+	call ClearSprites
+	ld de, Sprites
+	call Function1030cd
+	xor a
+	ld [hOAMUpdate], a
+	ret
+; 10307f
+
+Function10307f: ; 10307f
+	ld c, $2
+	ld hl, $cd4b
+	bit 7, [hl]
+	jr z, .asm_10308a
+	ld c, $1
+
+.asm_10308a
+	ld hl, $cf45
+	inc [hl]
+	ld a, [hl]
+	cp c
+	ret c
+	xor a
+	ld [hl], a
+	ret
+; 103094
+
+Function103094: ; 103094
+	ld hl, $cd4b
+	bit 7, [hl]
+	jr nz, .asm_1030c0
+	ld a, [$cf42]
+	bit 7, a
+	jr nz, .asm_1030b2
+	ld a, [$cf44]
+	inc a
+	ld [$cf44], a
+	cp $2c
+	ret nz
+	ld hl, $cf42
+	set 7, [hl]
+	ret
+
+.asm_1030b2
+	ld a, [$cf44]
+	dec a
+	ld [$cf44], a
+	ret nz
+	ld hl, $cf42
+	res 7, [hl]
+	ret
+
+.asm_1030c0
+	ld hl, $cf44
+	ld a, [hl]
+	and a
+	jr z, .asm_1030ca
+	dec a
+	ld [hl], a
+	ret nz
+
+.asm_1030ca
+	ld [hl], $2c
+	ret
+; 1030cd
+
+Function1030cd: ; 1030cd
+	ld a, [$cf44]
+	ld l, a
+	ld h, $0
+	add hl, hl
+	add hl, hl
+	add hl, hl
+	ld bc, $7112
+	add hl, bc
+	ld b, $30
+	ld c, $8
+.asm_1030de
+	push hl
+	ld hl, $cd4b
+	bit 7, [hl]
+	pop hl
+	ld a, $0
+	jr z, .asm_1030eb
+	ld a, $5
+
+.asm_1030eb
+	add [hl]
+	inc hl
+	push hl
+	add a
+	add a
+	add $7a
+	ld l, a
+	ld a, $72
+	adc $0
+	ld h, a
+	ld a, b
+	add [hl]
+	inc hl
+	ld [de], a
+	inc de
+	ld a, $a
+	add [hl]
+	inc hl
+	ld [de], a
+	inc de
+	ld a, [hli]
+	ld [de], a
+	inc de
+	ld a, [hli]
+	ld [de], a
+	inc de
+	pop hl
+	ld a, b
+	add $8
+	ld b, a
+	dec c
+	jr nz, .asm_1030de
+	ret
+; 103112
+
+INCBIN "baserom.gbc", $103112, $103302 - $103112
+
+Function103302: ; 103302
+	call Function103309
+	call Function103362
+	ret
+; 103309
+
+Function103309: ; 103309
+	xor a
+	ld [hBGMapMode], a
+	ld hl, Buffer1
+	ld bc, $000a
+	xor a
+	call ByteFill
+	ld a, $4
+	call GetSRAMBank
+	ld a, [$dc41]
+	ld [$a60c], a
+	ld [Buffer1], a
+	call CloseSRAM
+	call Function1035c6
+	ld a, [hli]
+	ld e, a
+	ld a, [hli]
+	ld d, a
+	ld a, [hli]
+	ld c, a
+	ld a, [hli]
+	ld b, a
+	ld a, [hli]
+	ld [$d1ef], a
+	ld a, [hli]
+	ld [$d1ec], a
+	ld a, [hli]
+	ld [$d1ed], a
+	ld h, d
+	ld l, e
+	call Function3eea
+	ld hl, $d1ec
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	ld a, [hl]
+	ld [$d1ee], a
+	call Function1034be
+	call Function1ad2
+	callba Function104000
+	ld a, $1
+	ld [$d1f0], a
+	call Function10339a
+	ret
+; 103362
+
+Function103362: ; 103362
+.asm_103362
+	ld a, [$d1f0]
+	ld [$d1f1], a
+	call Function1033af
+	call Function10339a
+	call Function10342c
+	callba Function10402d
+	ld a, [Buffer2]
+	bit 7, a
+	jr z, .asm_103362
+	ld hl, Buffer2
+	bit 6, [hl]
+	jr z, .asm_103398
+	ld a, $4
+	call GetSRAMBank
+	ld a, [Buffer1]
+	ld [$a60c], a
+	ld [$dc41], a
+	call CloseSRAM
+	xor a
+	ret
+
+.asm_103398
+	scf
+	ret
+; 10339a
+
+Function10339a: ; 10339a
+	ld a, [$d1f0]
+	ld [$d1f2], a
+	ld c, a
+	ld b, $0
+	ld hl, $d1ec
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	add hl, bc
+	ld a, [hl]
+	ld [$d1f3], a
+	ret
+; 1033af
+
+Function1033af: ; 1033af
+	call GetJoypad
+	ld a, [hJoyPressed]
+	bit 5, a
+	jr nz, .asm_103412
+	bit 4, a
+	jr nz, .asm_103412
+	bit 1, a
+	jr nz, .asm_1033f1
+	bit 0, a
+	jr nz, .asm_1033fa
+	bit 6, a
+	jr nz, .asm_1033cd
+	bit 7, a
+	jr nz, .asm_1033de
+	ret
+
+.asm_1033cd
+	ld a, [$d1f0]
+	dec a
+	ld [$d1f0], a
+	cp $1
+	ret nc
+	ld a, [$d1ee]
+	ld [$d1f0], a
+	ret
+
+.asm_1033de
+	ld a, [$d1f0]
+	inc a
+	ld [$d1f0], a
+	ld c, a
+	ld a, [$d1ee]
+	cp c
+	ret nc
+	ld a, $1
+	ld [$d1f0], a
+	ret
+
+.asm_1033f1
+	call PlayClickSFX
+	ld hl, Buffer2
+	set 7, [hl]
+	ret
+
+.asm_1033fa
+	ld a, [$d1f3]
+	cp $3
+	jr nz, .asm_103412
+	ld de, $0022
+	call PlaySFX
+	ld hl, Buffer2
+	set 7, [hl]
+	ld hl, Buffer2
+	set 6, [hl]
+	ret
+
+.asm_103412
+	ld a, [$d1f3]
+	cp $3
+	ret z
+	ld de, $0011
+	call PlaySFX
+	ld bc, $0008
+	call Function10350f
+	ld a, [Buffer1]
+	xor e
+	ld [Buffer1], a
+	ret
+; 10342c
+
+Function10342c: ; 10342c
+	ld a, [$d1f0]
+	ld [$d1f2], a
+	call Function103490
+	call Function10343c
+	call Function1034a7
+	ret
+; 10343c
+
+Function10343c: ; 10343c
+	ld a, [$d1f3]
+	cp $2
+	jr nz, .asm_103452
+	ld bc, $0001
+	call Function1034f7
+	ld c, $12
+	ld b, $1
+	call Function1034e0
+	jr .asm_10345f
+
+.asm_103452
+	ld bc, $ffed
+	call Function1034f7
+	ld c, $12
+	ld b, $2
+	call Function1034e0
+
+.asm_10345f
+	ld bc, NULL
+	call Function10350f
+	ld bc, $0001
+	call Function103487
+	ld bc, $0008
+	call Function10350f
+	ld a, [Buffer1]
+	and e
+	ld bc, $0002
+	jr z, .asm_10347d
+	ld bc, $0004
+
+.asm_10347d
+	call Function10350f
+	ld bc, $000b
+	call Function103487
+	ret
+; 103487
+
+Function103487: ; 103487
+	push de
+	call Function1034f7
+	pop de
+	call PlaceString
+	ret
+; 103490
+
+Function103490: ; 103490
+	ld hl, $c5cc
+	ld c, $14
+	ld b, $3
+	call Function1034e0
+	ld bc, $0006
+	call Function10350f
+	ld hl, $c5e1
+	call PlaceString
+	ret
+; 1034a7
+
+Function1034a7: ; 1034a7
+	ld a, [$d1f1]
+	ld [$d1f2], a
+	ld bc, $000a
+	call Function1034f7
+	ld [hl], $7f
+	ld bc, $000a
+	call Function1034f1
+	ld [hl], $ed
+	ret
+; 1034be
+
+Function1034be: ; 1034be
+	ld a, $1
+	ld [$d1f2], a
+	ld hl, $d1ec
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	ld a, [hli]
+.asm_1034ca
+	push af
+	ld a, [hli]
+	push hl
+	ld [$d1f3], a
+	call Function10343c
+	ld hl, $d1f2
+	inc [hl]
+	pop hl
+	pop af
+	dec a
+	jr nz, .asm_1034ca
+	call Function103490
+	ret
+; 1034e0
+
+Function1034e0: ; 1034e0
+	push bc
+	push hl
+	call ClearBox
+	pop hl
+	ld bc, $0939
+	add hl, bc
+	pop bc
+	ld a, $6
+	call Functionfb8
+	ret
+; 1034f1
+
+Function1034f1: ; 1034f1
+	ld a, [$d1f0]
+	ld [$d1f2], a
+
+Function1034f7: ; 10134f7
+	ld hl, SpritesEnd
+	add hl, bc
+	ld a, [$d1ef]
+	ld bc, $0014
+	call AddNTimes
+	ld a, [$d1f2]
+	dec a
+	ld bc, $0028
+	call AddNTimes
+	ret
+; 10350f
+
+Function10350f: ; 10350f
+	ld a, [$d1f3]
+	push bc
+	ld hl, $7522
+	ld bc, $0009
+	call AddNTimes
+	pop bc
+	add hl, bc
+	ld a, [hli]
+	ld d, [hl]
+	ld e, a
+	ret
+; 103522
+
+INCBIN "baserom.gbc", $103522, $1035c6 - $103522
+
+Function1035c6: ; 1035c6
+	callba Function10138b
+	ld b, $0
+	ld hl, $75d7
+	add hl, bc
+	add hl, bc
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	ret
+; 1035d7
+
+INCBIN "baserom.gbc", $1035d7, $103612 - $1035d7
+
+Function103612: ; 103612
 	ld hl, $7640
 	call LoadMenuDataHeader
 	ld a, [$dc40]
@@ -103500,8 +107701,24 @@
 	ret
 ; 103640
 
-INCBIN "baserom.gbc",$103640,$10366e - $103640
+INCBIN "baserom.gbc", $103640, $103654 - $103640
 
+Function103654: ; 103654
+	callba Function10632f
+	bit 7, c
+	jr nz, .asm_103666
+	ld hl, $cd2a
+	res 5, [hl]
+	ld c, $2
+	ret
+
+.asm_103666
+	ld hl, $cd2a
+	set 5, [hl]
+	ld c, $1
+	ret
+; 10366e
+
 Function10366e: ; 10366e
 	callba Function10632f
 	bit 7, c
@@ -107669,8 +111886,23 @@
 	jp Function108089
 ; 108021
 
-INCBIN "baserom.gbc", $108021, $10804d - $108021
+INCBIN "baserom.gbc", $108021, $108026 - $108021
 
+Function108026: ; 108026
+	ld a, $0
+	jr asm_10802c
+
+Function10802a: ; 10802a
+	ld a, $1
+
+asm_10802c:
+	ld [$cf65], a
+	ld de, $4035
+	jp Function10805b
+; 108035
+
+INCBIN "baserom.gbc", $108035, $10804d - $108035
+
 Function10804d: ; 10804d
 	ld a, $0
 	ld [$cf65], a
@@ -107678,8 +111910,38 @@
 	jp Function108089
 ; 108058
 
-INCBIN "baserom.gbc", $108058, $108089 - $108058
+INCBIN "baserom.gbc", $108058, $10805b - $108058
 
+Function10805b: ; 10805b
+	ld hl, $c734
+	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 Function1080b7
+.asm_108078
+	call Function10824b
+	jr nc, .asm_108078
+	pop af
+	ld [Options], a
+	pop af
+	ld [VramState], a
+	pop af
+	ld [$ffde], a
+	ret
+; 108089
+
 Function108089: ; 108089
 	ld hl, BattleEnded
 	ld [hl], e
@@ -107710,7 +111972,68 @@
 	ret
 ; 1080b7
 
-INCBIN "baserom.gbc",$1080b7,$108157 - $1080b7
+Function1080b7: ; 1080b7
+	xor a
+	ld [$cf63], a
+	call WhiteBGMap
+	call ClearSprites
+	call ClearTileMap
+	call DisableLCD
+	call Function1081ad
+	call Function1081ca
+	call Functione51
+	call Functione58
+	ld a, $1
+	ld [rVBK], a
+	ld hl, $4da7
+	ld de, VTiles2
+	call Decompress
+	ld a, $0
+	ld [rVBK], a
+	ld hl, $4d27
+	ld de, $8200
+	call Decompress
+	call EnableLCD
+	xor a
+	ld [hSCX], a
+	ld [hSCY], a
+	ld a, $7
+	ld [hWX], a
+	ld a, $90
+	ld [hWY], a
+	callba Function8cf53
+	call DelayFrame
+	ld de, $5adb
+	ld hl, VTiles0
+	ld bc, $0a06
+	call Request2bpp
+	ld de, $5b3b
+	ld hl, $8060
+	ld bc, $0a0c
+	call Request2bpp
+	xor a
+	ld hl, $c300
+	ld [hli], a
+	ld [hl], $0
+	ld a, [$c6d0]
+	ld hl, $c6fd
+	ld de, $8300
+	call Function1081e9
+	ld a, [$c702]
+	ld hl, $c72f
+	ld de, $9310
+	call Function1081e9
+	ld a, [$c6d0]
+	ld de, $c6d1
+	call Function108239
+	ld a, [$c702]
+	ld de, $c703
+	call Function108239
+	xor a
+	call Function108b98
+	call Function108af4
+	ret
+; 108157
 
 Function108157: ; 108157
 	xor a
@@ -107781,7 +112104,22 @@
 	ret
 ; 1081e9
 
-INCBIN "baserom.gbc",$1081e9,$108239 - $1081e9
+Function1081e9: ; 1081e9
+	push de
+	push af
+	ld a, $2d
+	call Predef
+	pop af
+	ld [CurPartySpecies], a
+	ld [CurSpecies], a
+	call GetBaseData
+	pop de
+	ld a, $3c
+	call Predef
+	ret
+; 108201
+
+INCBIN "baserom.gbc", $108201, $108239 - $108201
 
 Function108239: ; 108239
 	push de