shithub: pokecrystal

Download patch

ref: e13565f933389024fd0280589c962b9bd13177d3
parent: 994f89b4906a2be44c92c3e6dcdc38371829d037
author: yenatch <yenatch@gmail.com>
date: Wed Feb 11 08:27:15 EST 2015

Split out the pack code.

--- /dev/null
+++ b/engine/pack.asm
@@ -1,0 +1,1692 @@
+
+Pack: ; 10000
+	ld hl, Options
+	set 4, [hl]
+	call Function1068a
+.loop
+	call Functiona57
+	ld a, [wcf63]
+	bit 7, a
+	jr nz, .done
+	call Function10026
+	call DelayFrame
+	jr .loop
+
+.done
+	ld a, [wcf65]
+	ld [wd0d6], a
+	ld hl, Options
+	res 4, [hl]
+	ret
+; 10026
+
+Function10026: ; 10026
+	ld a, [wcf63]
+	ld hl, Jumptable_10030
+	call Function1086b
+	jp [hl]
+; 10030
+
+
+Jumptable_10030: ; 10030 (4:4030)
+	dw Function10046
+	dw Function10056
+	dw Function10067
+	dw Function10186
+	dw Function10198
+	dw Function10094
+	dw Function100a6
+	dw Function100d3
+	dw Function100e8
+	dw Function10874
+	dw Function1087e
+
+
+Function10046: ; 10046 (4:4046)
+	xor a
+	ld [hBGMapMode], a ; $ff00+$d4
+	call Function10955
+	ld a, [wcf64]
+	ld [wcf63], a
+	call Function10a40
+	ret
+
+Function10056: ; 10056 (4:4056)
+	xor a
+	ld [wcf65], a
+	call Function10a36
+	call Function109bb
+	call Function1089a
+	call Function10866
+	ret
+
+Function10067: ; 10067 (4:4067)
+	ld hl, MenuDataHeader_0x10a4f
+	call Function1d3c
+	ld a, [wd0d9]
+	ld [wcf88], a
+	ld a, [wd0df]
+	ld [wd0e4], a
+	call Function350c
+	ld a, [wd0e4]
+	ld [wd0df], a
+	ld a, [wcfa9]
+	ld [wd0d9], a
+	ld b, $7
+	ld c, $3
+	call Function108d4
+	ret c
+	call Function101c5
+	ret
+
+Function10094: ; 10094 (4:4094)
+	ld a, $2
+	ld [wcf65], a
+	call Function10a36
+	call Function109bb
+	call Function1089a
+	call Function10866
+	ret
+
+Function100a6: ; 100a6 (4:40a6)
+	ld hl, MenuDataHeader_0x10a7f
+	call Function1d3c
+	ld a, [wd0da]
+	ld [wcf88], a
+	ld a, [wd0e0]
+	ld [wd0e4], a
+	call Function350c
+	ld a, [wd0e4]
+	ld [wd0e0], a
+	ld a, [wcfa9]
+	ld [wd0da], a
+	ld b, $3
+	ld c, $7
+	call Function108d4
+	ret c
+	call Function101c5
+	ret
+
+Function100d3: ; 100d3 (4:40d3)
+	ld a, $3
+	ld [wcf65], a
+	call Function10a36
+	call Function109bb
+	xor a
+	ld [hBGMapMode], a ; $ff00+$d4
+	call Function1089a
+	call Function10866
+	ret
+
+Function100e8: ; 100e8 (4:40e8)
+	callba Function2c76f
+	ld b, $5
+	ld c, $1
+	call Function108d4
+	ret c
+	callba _CheckTossableItem
+	ld a, [wd142]
+	and a
+	jr nz, .asm_1010a
+	ld hl, MenuDataHeader_0x1013b
+	ld de, Jumptable_10153
+	jr .asm_10110
+.asm_1010a
+	ld hl, MenuDataHeader_0x10124
+	ld de, Jumptable_10137
+.asm_10110
+	push de
+	call LoadMenuDataHeader
+	call Function1d81
+	call Function1c07
+	pop hl
+	ret c
+	ld a, [wcfa9]
+	dec a
+	call Function1086b
+	jp [hl]
+; 10124 (4:4124)
+
+MenuDataHeader_0x10124: ; 0x10124
+	db $40 ; flags
+	db 07, 13 ; start coords
+	db 11, 19 ; end coords
+	dw MenuData2_0x1012c
+	db 1 ; default option
+; 0x1012c
+
+MenuData2_0x1012c: ; 0x1012c
+	db $c0 ; flags
+	db 2 ; items
+	db "USE@"
+	db "QUIT@"
+; 0x10137
+
+Jumptable_10137: ; 10137
+	dw Function10159
+	dw Function10492
+; 1013b
+
+MenuDataHeader_0x1013b: ; 0x1013b
+	db $40 ; flags
+	db 05, 13 ; start coords
+	db 11, 19 ; end coords
+	dw MenuData2_0x10143
+	db 1 ; default option
+; 0x10143
+
+MenuData2_0x10143: ; 0x10143
+	db $c0 ; flags
+	db 3 ; items
+	db "USE@"
+	db "GIVE@"
+	db "QUIT@"
+; 0x10153
+
+Jumptable_10153: ; 10153
+	dw Function10159
+	dw Function103fd
+	dw Function10492
+; 10159
+
+Function10159: ; 10159
+	callba Function2c7bf
+	ret c
+	callba Function2c7fb
+	jr c, .asm_10179
+	ld hl, Options
+	ld a, [hl]
+	push af
+	res 4, [hl]
+	callba Function2c867
+	pop af
+	ld [Options], a
+.asm_10179
+	xor a
+	ld [hBGMapMode], a ; $ff00+$d4
+	call Function10955
+	call Function1089a
+	call Function10a40
+	ret
+
+Function10186: ; 10186 (4:4186)
+	ld a, $1
+	ld [wcf65], a
+	call Function10a36
+	call Function109bb
+	call Function1089a
+	call Function10866
+	ret
+
+Function10198: ; 10198 (4:4198)
+	ld hl, MenuDataHeader_0x10aaf
+	call Function1d3c
+	ld a, [wd0db]
+	ld [wcf88], a
+	ld a, [wd0e1]
+	ld [wd0e4], a
+	call Function350c
+	ld a, [wd0e4]
+	ld [wd0e1], a
+	ld a, [wcfa9]
+	ld [wd0db], a
+	ld b, $1
+	ld c, $5
+	call Function108d4
+	ret c
+	call Function101c5
+	ret
+
+Function101c5: ; 101c5 (4:41c5)
+	callba _CheckTossableItem
+	ld a, [wd142]
+	and a
+	jr nz, .asm_101f9
+	callba CheckSelectableItem
+	ld a, [wd142]
+	and a
+	jr nz, .asm_101eb
+	callba CheckItemMenu
+	ld a, [wd142]
+	and a
+	jr nz, .asm_10207
+	jr .asm_10227
+.asm_101eb
+	callba CheckItemMenu
+	ld a, [wd142]
+	and a
+	jr nz, .asm_1020f
+	jr .asm_1022f
+.asm_101f9
+	callba CheckSelectableItem
+	ld a, [wd142]
+	and a
+	jr nz, .asm_10217
+	jr .asm_1021f
+.asm_10207
+	ld hl, MenuDataHeader_0x10249
+	ld de, Jumptable_1026a
+	jr .asm_10235
+.asm_1020f
+	ld hl, MenuDataHeader_0x10274
+	ld de, Jumptable_10291
+	jr .asm_10235
+.asm_10217
+	ld hl, MenuDataHeader_0x10299
+	ld de, Jumptable_102ac
+	jr .asm_10235
+.asm_1021f
+	ld hl, MenuDataHeader_0x102b0
+	ld de, Jumptable_102c7
+	jr .asm_10235
+.asm_10227
+	ld hl, MenuDataHeader_0x102cd
+	ld de, Jumptable_102ea
+	jr .asm_10235
+.asm_1022f
+	ld hl, MenuDataHeader_0x102f2
+	ld de, Jumptable_1030b
+.asm_10235
+	push de
+	call LoadMenuDataHeader
+	call Function1d81
+	call Function1c07
+	pop hl
+	ret c
+	ld a, [wcfa9]
+	dec a
+	call Function1086b
+	jp [hl]
+; 10249 (4:4249)
+
+MenuDataHeader_0x10249: ; 0x10249
+	db $40 ; flags
+	db 01, 13 ; start coords
+	db 11, 19 ; end coords
+	dw MenuData2_0x10251
+	db 1 ; default option
+; 0x10251
+
+MenuData2_0x10251: ; 0x10251
+	db $c0 ; flags
+	db 5 ; items
+	db "USE@"
+	db "GIVE@"
+	db "TOSS@"
+	db "SEL@"
+	db "QUIT@"
+; 0x1026a
+
+Jumptable_1026a: ; 1026a
+	dw Function10311
+	dw Function103fd
+	dw Function10364
+	dw Function103c2
+	dw Function10492
+; 10274
+
+MenuDataHeader_0x10274: ; 0x10274
+	db $40 ; flags
+	db 03, 13 ; start coords
+	db 11, 19 ; end coords
+	dw MenuData2_0x1027c
+	db 1 ; default option
+; 0x1027c
+
+MenuData2_0x1027c: ; 0x1027c
+	db $c0 ; flags
+	db 4 ; items
+	db "USE@"
+	db "GIVE@"
+	db "TOSS@"
+	db "QUIT@"
+; 0x10291
+
+Jumptable_10291: ; 10291
+	dw Function10311
+	dw Function103fd
+	dw Function10364
+	dw Function10492
+; 10299
+
+MenuDataHeader_0x10299: ; 0x10299
+	db $40 ; flags
+	db 07, 13 ; start coords
+	db 11, 19 ; end coords
+	dw MenuData2_0x102a1
+	db 1 ; default option
+; 0x102a1
+
+MenuData2_0x102a1: ; 0x102a1
+	db $c0 ; flags
+	db 2 ; items
+	db "USE@"
+	db "QUIT@"
+; 0x102ac
+
+Jumptable_102ac: ; 102ac
+	dw Function10311
+	dw Function10492
+; 102b0
+
+MenuDataHeader_0x102b0: ; 0x102b0
+	db $40 ; flags
+	db 05, 13 ; start coords
+	db 11, 19 ; end coords
+	dw MenuData2_0x102b8
+	db 1 ; default option
+; 0x102b8
+
+MenuData2_0x102b8: ; 0x102b8
+	db $c0 ; flags
+	db 3 ; items
+	db "USE@"
+	db "SEL@"
+	db "QUIT@"
+; 0x102c7
+
+Jumptable_102c7: ; 102c7
+	dw Function10311
+	dw Function103c2
+	dw Function10492
+; 102cd
+
+MenuDataHeader_0x102cd: ; 0x102cd
+	db $40 ; flags
+	db 03, 13 ; start coords
+	db 11, 19 ; end coords
+	dw MenuData2_0x102d5
+	db 1 ; default option
+; 0x102d5
+
+MenuData2_0x102d5: ; 0x102d5
+	db $c0 ; flags
+	db 4 ; items
+	db "GIVE@"
+	db "TOSS@"
+	db "SEL@"
+	db "QUIT@"
+; 0x102ea
+
+Jumptable_102ea: ; 102ea
+	dw Function103fd
+	dw Function10364
+	dw Function103c2
+	dw Function10492
+; 102f2
+
+MenuDataHeader_0x102f2: ; 0x102f2
+	db $40 ; flags
+	db 05, 13 ; start coords
+	db 11, 19 ; end coords
+	dw MenuData2_0x102fa
+	db 1 ; default option
+; 0x102fa
+
+MenuData2_0x102fa: ; 0x102fa
+	db $c0 ; flags
+	db 3 ; items
+	db "GIVE@"
+	db "TOSS@"
+	db "QUIT@"
+; 0x1030b
+
+Jumptable_1030b: ; 1030b
+	dw Function103fd
+	dw Function10364
+	dw Function10492
+; 10311
+
+Function10311: ; 10311
+	callba CheckItemMenu
+	ld a, [wd142]
+	ld hl, Jumptable_1031f
+	rst JumpTable
+	ret
+; 1031f
+
+Jumptable_1031f: ; 1031f (4:431f)
+	dw Function1032d
+	dw Function1032d
+	dw Function1032d
+	dw Function1032d
+	dw Function10334
+	dw Function10338
+	dw Function10355
+; 1035c
+
+Function1032d: ; 1032d (4:432d)
+	ld hl, UnknownText_0x10af3
+	call Function10889
+	ret
+
+Function10334: ; 10334 (4:4334)
+	call DoItemEffect
+	ret
+
+Function10338: ; 10338 (4:4338)
+	ld a, [PartyCount]
+	and a
+	jr z, .asm_1034e
+	call DoItemEffect
+	xor a
+	ld [hBGMapMode], a ; $ff00+$d4
+	call Function10955
+	call Function1089a
+	call Function10a40
+	ret
+.asm_1034e
+	ld hl, UnknownText_0x10af8
+	call Function10889
+	ret
+
+Function10355: ; 10355 (4:4355)
+	call DoItemEffect
+	ld a, [wd0ec]
+	and a
+	jr z, Function1032d
+	ld a, $a
+	ld [wcf63], a
+	ret
+; 10364 (4:4364)
+
+Function10364: ; 10364
+	ld hl, UnknownText_0x10ae4
+	call Function10889
+	callba Function24fbf
+	push af
+	call Function1c07
+	pop af
+	jr c, .asm_1039c
+	call Function10a1d
+	ld hl, UnknownText_0x10ae9
+	call Function1d4f
+	call YesNoBox
+	push af
+	call Function1c07
+	pop af
+	jr c, .asm_1039c
+	ld hl, NumItems
+	ld a, [wd107]
+	call TossItem
+	call Function10a1d
+	ld hl, UnknownText_0x10aee
+	call Function10889
+
+.asm_1039c
+	ret
+; 1039d
+
+Function1039d: ; 1039d
+	ld a, [wcf65]
+	and a
+	jr z, .asm_103b2
+	dec a
+	jr z, .asm_103aa
+	dec a
+	jr z, .asm_103ba
+	ret
+
+.asm_103aa
+	xor a
+	ld [wd0db], a
+	ld [wd0e1], a
+	ret
+
+.asm_103b2
+	xor a
+	ld [wd0d9], a
+	ld [wd0df], a
+	ret
+
+.asm_103ba
+	xor a
+	ld [wd0da], a
+	ld [wd0e0], a
+	ret
+; 103c2
+
+Function103c2: ; 103c2
+	callba CheckSelectableItem
+	ld a, [wd142]
+	and a
+	jr nz, .asm_103f6
+	ld a, [wcf65]
+	rrca
+	rrca
+	and $c0
+	ld b, a
+	ld a, [wd107]
+	inc a
+	and $3f
+	or b
+	ld [WhichRegisteredItem], a
+	ld a, [CurItem]
+	ld [RegisteredItem], a
+	call Function10a1d
+	ld de, SFX_FULL_HEAL
+	call WaitPlaySFX
+	ld hl, UnknownText_0x10afd
+	call Function10889
+	ret
+
+.asm_103f6
+	ld hl, UnknownText_0x10b02
+	call Function10889
+	ret
+; 103fd
+
+Function103fd: ; 103fd
+	ld a, [PartyCount]
+	and a
+	jp z, Function10486
+	ld a, [Options]
+	push af
+	res 4, a
+	ld [Options], a
+	ld a, $8
+	ld [PartyMenuActionText], a
+	call WhiteBGMap
+	callba Function5004f
+	callba Function50405
+	callba Function503e0
+.asm_10427
+	callba WritePartyMenuTilemap
+	callba PrintPartyMenuText
+	call WaitBGMap
+	call Function32f9
+	call DelayFrame
+	callba PartyMenuSelect
+	jr c, .asm_10475
+	ld a, [CurPartySpecies]
+	cp EGG
+	jr nz, .asm_10453
+	ld hl, UnknownText_0x1048d
+	call PrintText
+	jr .asm_10427
+.asm_10453
+	ld a, [wcf63]
+	push af
+	ld a, [wcf64]
+	push af
+	call GetCurNick
+	ld hl, StringBuffer1
+	ld de, wd050
+	ld bc, PKMN_NAME_LENGTH
+	call CopyBytes
+	call Function12bd9
+	pop af
+	ld [wcf64], a
+	pop af
+	ld [wcf63], a
+.asm_10475
+	pop af
+	ld [Options], a
+	xor a
+	ld [hBGMapMode], a ; $ff00+$d4
+	call Function10955
+	call Function1089a
+	call Function10a40
+	ret
+
+Function10486: ; 10486 (4:4486)
+	ld hl, UnknownText_0x10af8
+	call Function10889
+	ret
+; 1048d (4:448d)
+
+UnknownText_0x1048d: ; 0x1048d
+	; An EGG can't hold an item.
+	text_jump UnknownText_0x1c0b7f
+	db "@"
+; 0x10492
+
+Function10492: ; 10492
+	ret
+; 10493
+
+
+BattlePack: ; 10493
+	ld hl, Options
+	set 4, [hl]
+	call Function1068a
+.asm_1049b
+	call Functiona57
+	ld a, [wcf63]
+	bit 7, a
+	jr nz, .asm_104ad
+	call Function104b9
+	call DelayFrame
+	jr .asm_1049b
+
+.asm_104ad
+	ld a, [wcf65]
+	ld [wd0d6], a
+	ld hl, Options
+	res 4, [hl]
+	ret
+; 104b9
+
+Function104b9: ; 104b9
+	ld a, [wcf63]
+	ld hl, Jumptable_104c3
+	call Function1086b
+	jp [hl]
+; 104c3
+
+
+Jumptable_104c3: ; 104c3 (4:44c3)
+	dw Function104d9
+	dw Function104e9
+	dw Function104fa
+	dw Function10594
+	dw Function105a6
+	dw Function10527
+	dw Function10539
+	dw Function10566
+	dw Function10581
+	dw Function10874
+	dw Function1087e
+
+
+Function104d9: ; 104d9 (4:44d9)
+	xor a
+	ld [hBGMapMode], a ; $ff00+$d4
+	call Function10955
+	ld a, [wcf64]
+	ld [wcf63], a
+	call Function10a40
+	ret
+
+Function104e9: ; 104e9 (4:44e9)
+	xor a
+	ld [wcf65], a
+	call Function10a36
+	call Function109bb
+	call Function1089a
+	call Function10866
+	ret
+
+Function104fa: ; 104fa (4:44fa)
+	ld hl, MenuDataHeader_0x10a4f
+	call Function1d3c
+	ld a, [wd0d9]
+	ld [wcf88], a
+	ld a, [wd0df]
+	ld [wd0e4], a
+	call Function350c
+	ld a, [wd0e4]
+	ld [wd0df], a
+	ld a, [wcfa9]
+	ld [wd0d9], a
+	ld b, $7
+	ld c, $3
+	call Function108d4
+	ret c
+	call Function105d3
+	ret
+
+Function10527: ; 10527 (4:4527)
+	ld a, $2
+	ld [wcf65], a
+	call Function10a36
+	call Function109bb
+	call Function1089a
+	call Function10866
+	ret
+
+Function10539: ; 10539 (4:4539)
+	ld hl, MenuDataHeader_0x10a7f
+	call Function1d3c
+	ld a, [wd0da]
+	ld [wcf88], a
+	ld a, [wd0e0]
+	ld [wd0e4], a
+	call Function350c
+	ld a, [wd0e4]
+	ld [wd0e0], a
+	ld a, [wcfa9]
+	ld [wd0da], a
+	ld b, $3
+	ld c, $7
+	call Function108d4
+	ret c
+	call Function105d3
+	ret
+
+Function10566: ; 10566 (4:4566)
+	ld a, $3
+	ld [wcf65], a
+	call Function10a36
+	call Function109bb
+	xor a
+	ld [hBGMapMode], a ; $ff00+$d4
+	call Function1089a
+	ld hl, UnknownText_0x10b0c
+	call Function10889
+	call Function10866
+	ret
+
+Function10581: ; 10581 (4:4581)
+	callba Function2c76f
+	ld b, $5
+	ld c, $1
+	call Function108d4
+	ret c
+	xor a
+	call Function105dc
+	ret
+
+Function10594: ; 10594 (4:4594)
+	ld a, $1
+	ld [wcf65], a
+	call Function10a36
+	call Function109bb
+	call Function1089a
+	call Function10866
+	ret
+
+Function105a6: ; 105a6 (4:45a6)
+	ld hl, MenuDataHeader_0x10aaf
+	call Function1d3c
+	ld a, [wd0db]
+	ld [wcf88], a
+	ld a, [wd0e1]
+	ld [wd0e4], a
+	call Function350c
+	ld a, [wd0e4]
+	ld [wd0e1], a
+	ld a, [wcfa9]
+	ld [wd0db], a
+	ld b, $1
+	ld c, $5
+	call Function108d4
+	ret c
+	call Function105d3
+	ret
+
+Function105d3: ; 105d3 (4:45d3)
+	callba CheckItemContext
+	ld a, [wd142]
+
+Function105dc: ; 105dc (4:45dc)
+	and a
+	jr z, .asm_105e7
+	ld hl, MenuDataHeader_0x10601
+	ld de, Jumptable_10614
+	jr .asm_105ed
+.asm_105e7
+	ld hl, MenuDataHeader_0x10618
+	ld de, Jumptable_10627
+.asm_105ed
+	push de
+	call LoadMenuDataHeader
+	call Function1d81
+	call Function1c07
+	pop hl
+	ret c
+	ld a, [wcfa9]
+	dec a
+	call Function1086b
+	jp [hl]
+; 10601 (4:4601)
+
+MenuDataHeader_0x10601: ; 0x10601
+	db $40 ; flags
+	db 07, 13 ; start coords
+	db 11, 19 ; end coords
+	dw MenuData2_0x10609
+	db 1 ; default option
+; 0x10609
+
+MenuData2_0x10609: ; 0x10609
+	db $c0 ; flags
+	db 2 ; items
+	db "USE@"
+	db "QUIT@"
+; 0x10614
+
+Jumptable_10614: ; 10614
+	dw Function10629
+	dw Function10689
+; 10618
+
+MenuDataHeader_0x10618: ; 0x10618
+	db $40 ; flags
+	db 09, 13 ; start coords
+	db 11, 19 ; end coords
+	dw MenuData2_0x10620
+	db 1 ; default option
+; 0x10620
+
+MenuData2_0x10620: ; 0x10620
+	db $c0 ; flags
+	db 1 ; items
+	db "QUIT@"
+; 0x10627
+
+Jumptable_10627: ; 10627
+	dw Function10689
+; 10629
+
+Function10629: ; 10629
+	callba CheckItemContext
+	ld a, [wd142]
+	ld hl, Jumptable_10637
+	rst JumpTable
+	ret
+
+Jumptable_10637: ; 10637 (4:4637)
+	dw Function10645
+	dw Function10645
+	dw Function10645
+	dw Function10645
+	dw Function1064c
+	dw Function10656
+	dw Function10671
+
+
+Function10645: ; 10645 (4:4645)
+	ld hl, UnknownText_0x10af3
+	call Function10889
+	ret
+
+Function1064c: ; 1064c (4:464c)
+	call DoItemEffect
+	ld a, [wd0ec]
+	and a
+	jr nz, asm_1066c
+	ret
+
+Function10656: ; 10656 (4:4656)
+	call DoItemEffect
+	ld a, [wd0ec]
+	and a
+	jr nz, asm_1067e
+	xor a
+	ld [hBGMapMode], a ; $ff00+$d4
+	call Function10955
+	call Function1089a
+	call Function10a40
+	ret
+asm_1066c: ; 1066c (4:466c)
+	call WhiteBGMap
+	jr asm_1067e
+
+Function10671: ; 10671 (4:4671)
+	call DoItemEffect
+	ld a, [wd0ec]
+	and a
+	jr z, Function10645
+	cp $2
+	jr z, asm_10684
+asm_1067e: ; 1067e (4:467e)
+	ld a, $a
+	ld [wcf63], a
+	ret
+asm_10684: ; 10684 (4:4684)
+	xor a
+	ld [wd0ec], a
+	ret
+; 10689 (4:4689)
+
+Function10689: ; 10689
+	ret
+; 1068a
+
+
+Function1068a: ; 1068a
+	xor a
+	ld [wcf63], a
+	ld a, [wd0d6]
+	and $3
+	ld [wcf65], a
+	inc a
+	add a
+	dec a
+	ld [wcf64], a
+	xor a
+	ld [wcf66], a
+	xor a
+	ld [wd0e3], a
+	ret
+; 106a5
+
+Function106a5: ; 106a5
+	xor a
+	ld [hBGMapMode], a
+	ld [wcf63], a
+	ld [wcf64], a
+	ld [wcf65], a
+	ld [wcf66], a
+	ld [wd0e3], a
+	call Function10955
+	call Function10a40
+	ret
+; 106be
+
+Function106be: ; 106be
+.asm_106be
+	call Function106c7
+	call Function1076f
+	jr c, .asm_106be
+	ret
+; 106c7
+
+Function106c7: ; 106c7
+	ld a, [wcf63]
+	ld hl, Jumptable_106d1
+	call Function1086b
+	jp [hl]
+; 106d1
+
+
+Jumptable_106d1: ; 106d1 (4:46d1)
+	dw Function106d9
+	dw Function1073b
+	dw Function106ff
+	dw Function10726
+
+
+Function106d9: ; 106d9 (4:46d9)
+	xor a
+	call Function10762
+	ld hl, MenuDataHeader_0x10a67
+	call Function1d3c
+	ld a, [wd0d9]
+	ld [wcf88], a
+	ld a, [wd0df]
+	ld [wd0e4], a
+	call Function350c
+	ld a, [wd0e4]
+	ld [wd0df], a
+	ld a, [wcfa9]
+	ld [wd0d9], a
+	ret
+
+Function106ff: ; 106ff (4:46ff)
+	ld a, $2
+	call Function10762
+	ld hl, MenuDataHeader_0x10a97
+	call Function1d3c
+	ld a, [wd0da]
+	ld [wcf88], a
+	ld a, [wd0e0]
+	ld [wd0e4], a
+	call Function350c
+	ld a, [wd0e4]
+	ld [wd0e0], a
+	ld a, [wcfa9]
+	ld [wd0da], a
+	ret
+
+Function10726: ; 10726 (4:4726)
+	ld a, $3
+	call Function10762
+	call Function1089a
+	callba Function2c76f
+	ld a, [CurItem]
+	ld [CurItem], a
+	ret
+
+Function1073b: ; 1073b (4:473b)
+	ld a, $1
+	call Function10762
+	ld hl, MenuDataHeader_0x10ac7
+	call Function1d3c
+	ld a, [wd0db]
+	ld [wcf88], a
+	ld a, [wd0e1]
+	ld [wd0e4], a
+	call Function350c
+	ld a, [wd0e4]
+	ld [wd0e1], a
+	ld a, [wcfa9]
+	ld [wd0db], a
+	ret
+
+Function10762: ; 10762 (4:4762)
+	ld [wcf65], a
+	call Function10a36
+	call Function109bb
+	call Function1089a
+	ret
+
+
+Function1076f: ; 1076f
+	ld hl, wcf73
+	ld a, [hl]
+	and $1
+	jr nz, .asm_10788
+	ld a, [hl]
+	and $2
+	jr nz, .asm_1078f
+	ld a, [hl]
+	and $20
+	jr nz, .asm_10795
+	ld a, [hl]
+	and $10
+	jr nz, .asm_107a8
+	scf
+	ret
+
+.asm_10788
+	ld a, $1
+	ld [wcf66], a
+	and a
+	ret
+
+.asm_1078f
+	xor a
+	ld [wcf66], a
+	and a
+	ret
+
+.asm_10795
+	ld a, [wcf63]
+	dec a
+	and $3
+	ld [wcf63], a
+	push de
+	ld de, SFX_UNKNOWN_62
+	call PlaySFX
+	pop de
+	scf
+	ret
+
+.asm_107a8
+	ld a, [wcf63]
+	inc a
+	and $3
+	ld [wcf63], a
+	push de
+	ld de, SFX_UNKNOWN_62
+	call PlaySFX
+	pop de
+	scf
+	ret
+; 107bb
+
+Function107bb: ; 107bb
+	call Function106a5
+	ld a, [InputType]
+	or a
+	jr z, .asm_107ca
+	callba Function1de28f
+
+.asm_107ca
+	call Function107d7
+	call Function1076f
+	jr c, .asm_107ca
+	xor a
+	ld [wcf66], a
+	ret
+; 107d7
+
+Function107d7: ; 107d7
+	ld a, [wcf63]
+	ld hl, Jumptable_107e1
+	call Function1086b
+	jp [hl]
+; 107e1
+
+
+Jumptable_107e1: ; 107e1 (4:47e1)
+	dw Function107e9
+	dw Function1083b
+	dw Function10807
+	dw Function10826
+
+
+Function107e9: ; 107e9 (4:47e9)
+	xor a
+	ld hl, MenuDataHeader_0x107ef
+	jr Function1085a
+; 107ef (4:47ef)
+
+MenuDataHeader_0x107ef: ; 0x107ef
+	db $40 ; flags
+	db 01, 07 ; start coords
+	db 11, 19 ; end coords
+	dw MenuData2_0x107f7
+	db 1 ; default option
+; 0x107f7
+
+MenuData2_0x107f7: ; 0x107f7
+	db $ae ; flags
+	db 5, 8 ; rows, columns
+	db 2 ; horizontal spacing
+	dbw 0, OTPartyMons
+	dbw BANK(Function24ab4), Function24ab4
+	dbw BANK(Function24ac3), Function24ac3
+	dbw BANK(Function244c3), Function244c3
+; 10807
+
+Function10807: ; 10807 (4:4807)
+	ld a, $2
+	ld hl, MenuDataHeader_0x1080e
+	jr Function1085a
+; 1080e (4:480e)
+
+MenuDataHeader_0x1080e: ; 0x1080e
+	db $40 ; flags
+	db 01, 07 ; start coords
+	db 11, 19 ; end coords
+	dw MenuData2_0x10816
+	db 1 ; default option
+; 0x10816
+
+MenuData2_0x10816: ; 0x10816
+	db $ae ; flags
+	db 5, 8 ; rows, columns
+	db 1 ; horizontal spacing
+	dbw 0, OTPartyMon1Exp + 2
+	dbw BANK(Function24ab4), Function24ab4
+	dbw BANK(Function24ac3), Function24ac3
+	dbw BANK(Function244c3), Function244c3
+; 10826
+
+Function10826: ; 10826 (4:4826)
+	ld a, $3
+	call Function10762
+	call Function1089a
+	callba Function2c76f
+	ld a, [CurItem]
+	ld [CurItem], a
+	ret
+
+Function1083b: ; 1083b (4:483b)
+	ld a, $1
+	ld hl, MenuDataHeader_0x10842
+	jr Function1085a
+; 10842 (4:4842)
+
+MenuDataHeader_0x10842: ; 0x10842
+	db $40 ; flags
+	db 01, 07 ; start coords
+	db 11, 19 ; end coords
+	dw MenuData2_0x1084a
+	db 1 ; default option
+; 0x1084a
+
+MenuData2_0x1084a: ; 0x1084a
+	db $ae ; flags
+	db 5, 8 ; rows, columns
+	db 2 ; horizontal spacing
+	dbw 0, OTPartyMon1CaughtGender
+	dbw BANK(Function24ab4), Function24ab4
+	dbw BANK(Function24ac3), Function24ac3
+	dbw BANK(Function244c3), Function244c3
+; 1085a
+
+Function1085a: ; 1085a (4:485a)
+	push hl
+	call Function10762
+	pop hl
+	call Function1d3c
+	call Function350c
+	ret
+
+Function10866: ; 10866 (4:4866)
+	ld hl, wcf63
+	inc [hl]
+	ret
+
+Function1086b: ; 1086b
+	ld e, a
+	ld d, 0
+	add hl, de
+	add hl, de
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	ret
+; 10874
+
+Function10874: ; 10874 (4:4874)
+	ld hl, wcf63
+	set 7, [hl]
+	xor a
+	ld [wcf66], a
+	ret
+
+Function1087e: ; 1087e (4:487e)
+	ld hl, wcf63
+	set 7, [hl]
+	ld a, $1
+	ld [wcf66], a
+	ret
+
+Function10889: ; 10889 (4:4889)
+	ld a, [Options]
+	push af
+	set 4, a
+	ld [Options], a
+	call PrintText
+	pop af
+	ld [Options], a
+	ret
+
+Function1089a: ; 1089a (4:489a)
+	call WaitBGMap
+
+
+Function1089d: ; 1089d
+	ld a, [wcf65]
+	and $3
+	ld e, a
+	ld d, $0
+	ld a, [BattleType]
+	cp BATTLETYPE_TUTORIAL
+	jr z, .asm_108b3
+	ld a, [PlayerGender]
+	bit 0, a
+	jr nz, .asm_108c5
+
+.asm_108b3
+	ld hl, PackGFXPointers
+	add hl, de
+	add hl, de
+	ld a, [hli]
+	ld e, a
+	ld d, [hl]
+	ld hl, $9500
+	lb bc, BANK(PackGFX), 15
+	call Request2bpp
+	ret
+
+.asm_108c5
+	callba Function48e81
+	ret
+; 108cc
+
+PackGFXPointers: ; 108cc
+	dw PackGFX + $f0 * 1
+	dw PackGFX + $f0 * 3
+	dw PackGFX + $f0 * 0
+	dw PackGFX + $f0 * 2
+; 108d4
+
+Function108d4: ; 108d4 (4:48d4)
+	ld hl, wcf73
+	ld a, [wd0e3]
+	and a
+	jr nz, .asm_10931
+	ld a, [hl]
+	and $1
+	jr nz, .asm_108f8
+	ld a, [hl]
+	and $2
+	jr nz, .asm_108fa
+	ld a, [hl]
+	and $20
+	jr nz, .asm_10901
+	ld a, [hl]
+	and $10
+	jr nz, .asm_10912
+	ld a, [hl]
+	and $4
+	jr nz, .asm_10923
+	scf
+	ret
+.asm_108f8
+	and a
+	ret
+.asm_108fa
+	ld a, $9
+	ld [wcf63], a
+	scf
+	ret
+.asm_10901
+	ld a, b
+	ld [wcf63], a
+	ld [wcf64], a
+	push de
+	ld de, SFX_UNKNOWN_62
+	call PlaySFX
+	pop de
+	scf
+	ret
+.asm_10912
+	ld a, c
+	ld [wcf63], a
+	ld [wcf64], a
+	push de
+	ld de, SFX_UNKNOWN_62
+	call PlaySFX
+	pop de
+	scf
+	ret
+.asm_10923
+	callba Function2490c
+	ld hl, UnknownText_0x10b07
+	call Function10889
+	scf
+	ret
+.asm_10931
+	ld a, [hl]
+	and $5
+	jr nz, .asm_1093d
+	ld a, [hl]
+	and $2
+	jr nz, .asm_1094f
+	scf
+	ret
+.asm_1093d
+	callba Function2490c
+	ld de, SFX_SWITCH_POKEMON
+	call WaitPlaySFX
+	ld de, SFX_SWITCH_POKEMON
+	call WaitPlaySFX
+.asm_1094f
+	xor a
+	ld [wd0e3], a
+	scf
+	ret
+
+
+Function10955: ; 10955
+	call WhiteBGMap
+	call ClearTileMap
+	call ClearSprites
+	call DisableLCD
+	ld hl, PackMenuGFX
+	ld de, VTiles2
+	ld bc, $0600
+	ld a, BANK(PackMenuGFX)
+	call FarCopyBytes
+	hlcoord 0, 1
+	ld bc, $00dc
+	ld a, $24
+	call ByteFill
+	hlcoord 5, 1
+	lb bc, 11, 15
+	call ClearBox
+	ld hl, TileMap
+	ld a, $28
+	ld c, $14
+.asm_1098a
+	ld [hli], a
+	inc a
+	dec c
+	jr nz, .asm_1098a
+	call Function109bb
+	call Function109a5
+	hlcoord 0, 12
+	lb bc, 4, 18
+	call TextBox
+	call EnableLCD
+	call Function1089d
+	ret
+; 109a5
+
+Function109a5: ; 109a5
+	hlcoord 0, 3
+	ld a, $50
+	ld de, 15
+	ld b, 3
+.asm_109af
+	ld c, 5
+.asm_109b1
+	ld [hli], a
+	inc a
+	dec c
+	jr nz, .asm_109b1
+	add hl, de
+	dec b
+	jr nz, .asm_109af
+	ret
+; 109bb
+
+Function109bb: ; 109bb
+	ld a, [wcf65]
+
+	; * 15
+	ld d, a
+	swap a
+	sub d
+
+	ld d, 0
+	ld e, a
+	ld hl, Tilemap_109e1
+	add hl, de
+	ld d, h
+	ld e, l
+	hlcoord 0, 7
+	ld c, 3
+.asm_109d0
+	ld b, 5
+.asm_109d2
+	ld a, [de]
+	inc de
+	ld [hli], a
+	dec b
+	jr nz, .asm_109d2
+	ld a, c
+	ld c, 15
+	add hl, bc
+	ld c, a
+	dec c
+	jr nz, .asm_109d0
+	ret
+; 109e1
+
+Tilemap_109e1: ; 109e1
+	db $00, $04, $04, $04, $01,  $06, $07, $08, $09, $0a,  $02, $05, $05, $05, $03
+	db $00, $04, $04, $04, $01,  $15, $16, $17, $18, $19,  $02, $05, $05, $05, $03
+	db $00, $04, $04, $04, $01,  $0b, $0c, $0d, $0e, $0f,  $02, $05, $05, $05, $03
+	db $00, $04, $04, $04, $01,  $10, $11, $12, $13, $14,  $02, $05, $05, $05, $03
+; 10a1d
+
+Function10a1d: ; 10a1d
+	ld a, [CurItem]
+	ld [wd265], a
+	call GetItemName
+	call CopyName1
+	ret
+; 10a2a
+
+Function10a2a: ; 10a2a
+	ld hl, TileMap
+	ld bc, $0168
+	ld a, $7f
+	call ByteFill
+	ret
+; 10a36
+
+Function10a36: ; 10a36 (4:4a36)
+	hlcoord 5, 2
+	ld bc, $a0f
+	call ClearBox
+	ret
+
+
+Function10a40: ; 10a40
+	call WaitBGMap
+	ld b, $14
+	call GetSGBLayout
+	call Function32f9
+	call DelayFrame
+	ret
+; 10a4f
+
+MenuDataHeader_0x10a4f: ; 0x10a4f
+	db $40 ; flags
+	db 01, 07 ; start coords
+	db 11, 19 ; end coords
+	dw MenuData2_0x10a57
+	db 1 ; default option
+; 0x10a57
+
+MenuData2_0x10a57: ; 0x10a57
+	db $ae ; flags
+	db 5, 8 ; rows, columns
+	db 2 ; horizontal spacing
+	dbw 0, NumItems
+	dbw BANK(Function24ab4), Function24ab4
+	dbw BANK(Function24ac3), Function24ac3
+	dbw BANK(Function244c3), Function244c3
+; 10a67
+
+MenuDataHeader_0x10a67: ; 0x10a67
+	db $40 ; flags
+	db 01, 07 ; start coords
+	db 11, 19 ; end coords
+	dw MenuData2_0x10a6f
+	db 1 ; default option
+; 0x10a6f
+
+MenuData2_0x10a6f: ; 0x10a6f
+	db $2e ; flags
+	db 5, 8 ; rows, columns
+	db 2 ; horizontal spacing
+	dbw 0, NumItems
+	dbw BANK(Function24ab4), Function24ab4
+	dbw BANK(Function24ac3), Function24ac3
+	dbw BANK(Function244c3), Function244c3
+; 10a7f
+
+MenuDataHeader_0x10a7f: ; 0x10a7f
+	db $40 ; flags
+	db 01, 07 ; start coords
+	db 11, 19 ; end coords
+	dw MenuData2_0x10a87
+	db 1 ; default option
+; 0x10a87
+
+MenuData2_0x10a87: ; 0x10a87
+	db $ae ; flags
+	db 5, 8 ; rows, columns
+	db 1 ; horizontal spacing
+	dbw 0, NumKeyItems
+	dbw BANK(Function24ab4), Function24ab4
+	dbw BANK(Function24ac3), Function24ac3
+	dbw BANK(Function244c3), Function244c3
+; 10a97
+
+MenuDataHeader_0x10a97: ; 0x10a97
+	db $40 ; flags
+	db 01, 07 ; start coords
+	db 11, 19 ; end coords
+	dw MenuData2_0x10a9f
+	db 1 ; default option
+; 0x10a9f
+
+MenuData2_0x10a9f: ; 0x10a9f
+	db $2e ; flags
+	db 5, 8 ; rows, columns
+	db 1 ; horizontal spacing
+	dbw 0, NumKeyItems
+	dbw BANK(Function24ab4), Function24ab4
+	dbw BANK(Function24ac3), Function24ac3
+	dbw BANK(Function244c3), Function244c3
+; 10aaf
+
+MenuDataHeader_0x10aaf: ; 0x10aaf
+	db $40 ; flags
+	db 01, 07 ; start coords
+	db 11, 19 ; end coords
+	dw MenuData2_0x10ab7
+	db 1 ; default option
+; 0x10ab7
+
+MenuData2_0x10ab7: ; 0x10ab7
+	db $ae ; flags
+	db 5, 8 ; rows, columns
+	db 2 ; horizontal spacing
+	dbw 0, NumBalls
+	dbw BANK(Function24ab4), Function24ab4
+	dbw BANK(Function24ac3), Function24ac3
+	dbw BANK(Function244c3), Function244c3
+; 10ac7
+
+MenuDataHeader_0x10ac7: ; 0x10ac7
+	db $40 ; flags
+	db 01, 07 ; start coords
+	db 11, 19 ; end coords
+	dw MenuData2_0x10acf
+	db 1 ; default option
+; 0x10acf
+
+MenuData2_0x10acf: ; 0x10acf
+	db $2e ; flags
+	db 5, 8 ; rows, columns
+	db 2 ; horizontal spacing
+	dbw 0, NumBalls
+	dbw BANK(Function24ab4), Function24ab4
+	dbw BANK(Function24ac3), Function24ac3
+	dbw BANK(Function244c3), Function244c3
+; 10adf
+
+UnknownText_0x10adf: ; 0x10adf
+	; No items.
+	text_jump UnknownText_0x1c0b9a
+	db "@"
+; 0x10ae4
+
+UnknownText_0x10ae4: ; 0x10ae4
+	; Throw away how many?
+	text_jump UnknownText_0x1c0ba5
+	db "@"
+; 0x10ae9
+
+UnknownText_0x10ae9: ; 0x10ae9
+	; Throw away @ @ (S)?
+	text_jump UnknownText_0x1c0bbb
+	db "@"
+; 0x10aee
+
+UnknownText_0x10aee: ; 0x10aee
+	; Threw away @ (S).
+	text_jump UnknownText_0x1c0bd8
+	db "@"
+; 0x10af3
+
+UnknownText_0x10af3: ; 0x10af3
+	; OAK:  ! This isn't the time to use that!
+	text_jump UnknownText_0x1c0bee
+	db "@"
+; 0x10af8
+
+UnknownText_0x10af8: ; 0x10af8
+	; You don't have a #MON!
+	text_jump UnknownText_0x1c0c17
+	db "@"
+; 0x10afd
+
+UnknownText_0x10afd: ; 0x10afd
+	; Registered the @ .
+	text_jump UnknownText_0x1c0c2e
+	db "@"
+; 0x10b02
+
+UnknownText_0x10b02: ; 0x10b02
+	; You can't register that item.
+	text_jump UnknownText_0x1c0c45
+	db "@"
+; 0x10b07
+
+UnknownText_0x10b07: ; 0x10b07
+	; Where should this be moved to?
+	text_jump UnknownText_0x1c0c63
+	db "@"
+; 0x10b0c
+
+UnknownText_0x10b0c: ; 0x10b0c
+	; 
+	text_jump UnknownText_0x1c0c83
+	db "@"
+; 0x10b11
+
+UnknownText_0x10b11: ; 0x10b11
+	; You can't use it in a battle.
+	text_jump UnknownText_0x1c0c85
+	db "@"
+; 0x10b16
+
+PackMenuGFX:
+INCBIN "gfx/misc/pack_menu.2bpp"
+
+PackGFX:
+INCBIN "gfx/misc/pack.w40.2bpp"
+
--- a/main.asm
+++ b/main.asm
@@ -14671,1696 +14671,9 @@
 
 SECTION "bank4", ROMX, BANK[$4]
 
-Pack: ; 10000
-	ld hl, Options
-	set 4, [hl]
-	call Function1068a
-.loop
-	call Functiona57
-	ld a, [wcf63]
-	bit 7, a
-	jr nz, .done
-	call Function10026
-	call DelayFrame
-	jr .loop
 
-.done
-	ld a, [wcf65]
-	ld [wd0d6], a
-	ld hl, Options
-	res 4, [hl]
-	ret
-; 10026
+INCLUDE "engine/pack.asm"
 
-Function10026: ; 10026
-	ld a, [wcf63]
-	ld hl, Jumptable_10030
-	call Function1086b
-	jp [hl]
-; 10030
-
-
-Jumptable_10030: ; 10030 (4:4030)
-	dw Function10046
-	dw Function10056
-	dw Function10067
-	dw Function10186
-	dw Function10198
-	dw Function10094
-	dw Function100a6
-	dw Function100d3
-	dw Function100e8
-	dw Function10874
-	dw Function1087e
-
-
-Function10046: ; 10046 (4:4046)
-	xor a
-	ld [hBGMapMode], a ; $ff00+$d4
-	call Function10955
-	ld a, [wcf64]
-	ld [wcf63], a
-	call Function10a40
-	ret
-
-Function10056: ; 10056 (4:4056)
-	xor a
-	ld [wcf65], a
-	call Function10a36
-	call Function109bb
-	call Function1089a
-	call Function10866
-	ret
-
-Function10067: ; 10067 (4:4067)
-	ld hl, MenuDataHeader_0x10a4f
-	call Function1d3c
-	ld a, [wd0d9]
-	ld [wcf88], a
-	ld a, [wd0df]
-	ld [wd0e4], a
-	call Function350c
-	ld a, [wd0e4]
-	ld [wd0df], a
-	ld a, [wcfa9]
-	ld [wd0d9], a
-	ld b, $7
-	ld c, $3
-	call Function108d4
-	ret c
-	call Function101c5
-	ret
-
-Function10094: ; 10094 (4:4094)
-	ld a, $2
-	ld [wcf65], a
-	call Function10a36
-	call Function109bb
-	call Function1089a
-	call Function10866
-	ret
-
-Function100a6: ; 100a6 (4:40a6)
-	ld hl, MenuDataHeader_0x10a7f
-	call Function1d3c
-	ld a, [wd0da]
-	ld [wcf88], a
-	ld a, [wd0e0]
-	ld [wd0e4], a
-	call Function350c
-	ld a, [wd0e4]
-	ld [wd0e0], a
-	ld a, [wcfa9]
-	ld [wd0da], a
-	ld b, $3
-	ld c, $7
-	call Function108d4
-	ret c
-	call Function101c5
-	ret
-
-Function100d3: ; 100d3 (4:40d3)
-	ld a, $3
-	ld [wcf65], a
-	call Function10a36
-	call Function109bb
-	xor a
-	ld [hBGMapMode], a ; $ff00+$d4
-	call Function1089a
-	call Function10866
-	ret
-
-Function100e8: ; 100e8 (4:40e8)
-	callba Function2c76f
-	ld b, $5
-	ld c, $1
-	call Function108d4
-	ret c
-	callba _CheckTossableItem
-	ld a, [wd142]
-	and a
-	jr nz, .asm_1010a
-	ld hl, MenuDataHeader_0x1013b
-	ld de, Jumptable_10153
-	jr .asm_10110
-.asm_1010a
-	ld hl, MenuDataHeader_0x10124
-	ld de, Jumptable_10137
-.asm_10110
-	push de
-	call LoadMenuDataHeader
-	call Function1d81
-	call Function1c07
-	pop hl
-	ret c
-	ld a, [wcfa9]
-	dec a
-	call Function1086b
-	jp [hl]
-; 10124 (4:4124)
-
-MenuDataHeader_0x10124: ; 0x10124
-	db $40 ; flags
-	db 07, 13 ; start coords
-	db 11, 19 ; end coords
-	dw MenuData2_0x1012c
-	db 1 ; default option
-; 0x1012c
-
-MenuData2_0x1012c: ; 0x1012c
-	db $c0 ; flags
-	db 2 ; items
-	db "USE@"
-	db "QUIT@"
-; 0x10137
-
-Jumptable_10137: ; 10137
-	dw Function10159
-	dw Function10492
-; 1013b
-
-MenuDataHeader_0x1013b: ; 0x1013b
-	db $40 ; flags
-	db 05, 13 ; start coords
-	db 11, 19 ; end coords
-	dw MenuData2_0x10143
-	db 1 ; default option
-; 0x10143
-
-MenuData2_0x10143: ; 0x10143
-	db $c0 ; flags
-	db 3 ; items
-	db "USE@"
-	db "GIVE@"
-	db "QUIT@"
-; 0x10153
-
-Jumptable_10153: ; 10153
-	dw Function10159
-	dw Function103fd
-	dw Function10492
-; 10159
-
-Function10159: ; 10159
-	callba Function2c7bf
-	ret c
-	callba Function2c7fb
-	jr c, .asm_10179
-	ld hl, Options
-	ld a, [hl]
-	push af
-	res 4, [hl]
-	callba Function2c867
-	pop af
-	ld [Options], a
-.asm_10179
-	xor a
-	ld [hBGMapMode], a ; $ff00+$d4
-	call Function10955
-	call Function1089a
-	call Function10a40
-	ret
-
-Function10186: ; 10186 (4:4186)
-	ld a, $1
-	ld [wcf65], a
-	call Function10a36
-	call Function109bb
-	call Function1089a
-	call Function10866
-	ret
-
-Function10198: ; 10198 (4:4198)
-	ld hl, MenuDataHeader_0x10aaf
-	call Function1d3c
-	ld a, [wd0db]
-	ld [wcf88], a
-	ld a, [wd0e1]
-	ld [wd0e4], a
-	call Function350c
-	ld a, [wd0e4]
-	ld [wd0e1], a
-	ld a, [wcfa9]
-	ld [wd0db], a
-	ld b, $1
-	ld c, $5
-	call Function108d4
-	ret c
-	call Function101c5
-	ret
-
-Function101c5: ; 101c5 (4:41c5)
-	callba _CheckTossableItem
-	ld a, [wd142]
-	and a
-	jr nz, .asm_101f9
-	callba CheckSelectableItem
-	ld a, [wd142]
-	and a
-	jr nz, .asm_101eb
-	callba CheckItemMenu
-	ld a, [wd142]
-	and a
-	jr nz, .asm_10207
-	jr .asm_10227
-.asm_101eb
-	callba CheckItemMenu
-	ld a, [wd142]
-	and a
-	jr nz, .asm_1020f
-	jr .asm_1022f
-.asm_101f9
-	callba CheckSelectableItem
-	ld a, [wd142]
-	and a
-	jr nz, .asm_10217
-	jr .asm_1021f
-.asm_10207
-	ld hl, MenuDataHeader_0x10249
-	ld de, Jumptable_1026a
-	jr .asm_10235
-.asm_1020f
-	ld hl, MenuDataHeader_0x10274
-	ld de, Jumptable_10291
-	jr .asm_10235
-.asm_10217
-	ld hl, MenuDataHeader_0x10299
-	ld de, Jumptable_102ac
-	jr .asm_10235
-.asm_1021f
-	ld hl, MenuDataHeader_0x102b0
-	ld de, Jumptable_102c7
-	jr .asm_10235
-.asm_10227
-	ld hl, MenuDataHeader_0x102cd
-	ld de, Jumptable_102ea
-	jr .asm_10235
-.asm_1022f
-	ld hl, MenuDataHeader_0x102f2
-	ld de, Jumptable_1030b
-.asm_10235
-	push de
-	call LoadMenuDataHeader
-	call Function1d81
-	call Function1c07
-	pop hl
-	ret c
-	ld a, [wcfa9]
-	dec a
-	call Function1086b
-	jp [hl]
-; 10249 (4:4249)
-
-MenuDataHeader_0x10249: ; 0x10249
-	db $40 ; flags
-	db 01, 13 ; start coords
-	db 11, 19 ; end coords
-	dw MenuData2_0x10251
-	db 1 ; default option
-; 0x10251
-
-MenuData2_0x10251: ; 0x10251
-	db $c0 ; flags
-	db 5 ; items
-	db "USE@"
-	db "GIVE@"
-	db "TOSS@"
-	db "SEL@"
-	db "QUIT@"
-; 0x1026a
-
-Jumptable_1026a: ; 1026a
-	dw Function10311
-	dw Function103fd
-	dw Function10364
-	dw Function103c2
-	dw Function10492
-; 10274
-
-MenuDataHeader_0x10274: ; 0x10274
-	db $40 ; flags
-	db 03, 13 ; start coords
-	db 11, 19 ; end coords
-	dw MenuData2_0x1027c
-	db 1 ; default option
-; 0x1027c
-
-MenuData2_0x1027c: ; 0x1027c
-	db $c0 ; flags
-	db 4 ; items
-	db "USE@"
-	db "GIVE@"
-	db "TOSS@"
-	db "QUIT@"
-; 0x10291
-
-Jumptable_10291: ; 10291
-	dw Function10311
-	dw Function103fd
-	dw Function10364
-	dw Function10492
-; 10299
-
-MenuDataHeader_0x10299: ; 0x10299
-	db $40 ; flags
-	db 07, 13 ; start coords
-	db 11, 19 ; end coords
-	dw MenuData2_0x102a1
-	db 1 ; default option
-; 0x102a1
-
-MenuData2_0x102a1: ; 0x102a1
-	db $c0 ; flags
-	db 2 ; items
-	db "USE@"
-	db "QUIT@"
-; 0x102ac
-
-Jumptable_102ac: ; 102ac
-	dw Function10311
-	dw Function10492
-; 102b0
-
-MenuDataHeader_0x102b0: ; 0x102b0
-	db $40 ; flags
-	db 05, 13 ; start coords
-	db 11, 19 ; end coords
-	dw MenuData2_0x102b8
-	db 1 ; default option
-; 0x102b8
-
-MenuData2_0x102b8: ; 0x102b8
-	db $c0 ; flags
-	db 3 ; items
-	db "USE@"
-	db "SEL@"
-	db "QUIT@"
-; 0x102c7
-
-Jumptable_102c7: ; 102c7
-	dw Function10311
-	dw Function103c2
-	dw Function10492
-; 102cd
-
-MenuDataHeader_0x102cd: ; 0x102cd
-	db $40 ; flags
-	db 03, 13 ; start coords
-	db 11, 19 ; end coords
-	dw MenuData2_0x102d5
-	db 1 ; default option
-; 0x102d5
-
-MenuData2_0x102d5: ; 0x102d5
-	db $c0 ; flags
-	db 4 ; items
-	db "GIVE@"
-	db "TOSS@"
-	db "SEL@"
-	db "QUIT@"
-; 0x102ea
-
-Jumptable_102ea: ; 102ea
-	dw Function103fd
-	dw Function10364
-	dw Function103c2
-	dw Function10492
-; 102f2
-
-MenuDataHeader_0x102f2: ; 0x102f2
-	db $40 ; flags
-	db 05, 13 ; start coords
-	db 11, 19 ; end coords
-	dw MenuData2_0x102fa
-	db 1 ; default option
-; 0x102fa
-
-MenuData2_0x102fa: ; 0x102fa
-	db $c0 ; flags
-	db 3 ; items
-	db "GIVE@"
-	db "TOSS@"
-	db "QUIT@"
-; 0x1030b
-
-Jumptable_1030b: ; 1030b
-	dw Function103fd
-	dw Function10364
-	dw Function10492
-; 10311
-
-Function10311: ; 10311
-	callba CheckItemMenu
-	ld a, [wd142]
-	ld hl, Jumptable_1031f
-	rst JumpTable
-	ret
-; 1031f
-
-Jumptable_1031f: ; 1031f (4:431f)
-	dw Function1032d
-	dw Function1032d
-	dw Function1032d
-	dw Function1032d
-	dw Function10334
-	dw Function10338
-	dw Function10355
-; 1035c
-
-Function1032d: ; 1032d (4:432d)
-	ld hl, UnknownText_0x10af3
-	call Function10889
-	ret
-
-Function10334: ; 10334 (4:4334)
-	call DoItemEffect
-	ret
-
-Function10338: ; 10338 (4:4338)
-	ld a, [PartyCount]
-	and a
-	jr z, .asm_1034e
-	call DoItemEffect
-	xor a
-	ld [hBGMapMode], a ; $ff00+$d4
-	call Function10955
-	call Function1089a
-	call Function10a40
-	ret
-.asm_1034e
-	ld hl, UnknownText_0x10af8
-	call Function10889
-	ret
-
-Function10355: ; 10355 (4:4355)
-	call DoItemEffect
-	ld a, [wd0ec]
-	and a
-	jr z, Function1032d
-	ld a, $a
-	ld [wcf63], a
-	ret
-; 10364 (4:4364)
-
-Function10364: ; 10364
-	ld hl, UnknownText_0x10ae4
-	call Function10889
-	callba Function24fbf
-	push af
-	call Function1c07
-	pop af
-	jr c, .asm_1039c
-	call Function10a1d
-	ld hl, UnknownText_0x10ae9
-	call Function1d4f
-	call YesNoBox
-	push af
-	call Function1c07
-	pop af
-	jr c, .asm_1039c
-	ld hl, NumItems
-	ld a, [wd107]
-	call TossItem
-	call Function10a1d
-	ld hl, UnknownText_0x10aee
-	call Function10889
-
-.asm_1039c
-	ret
-; 1039d
-
-Function1039d: ; 1039d
-	ld a, [wcf65]
-	and a
-	jr z, .asm_103b2
-	dec a
-	jr z, .asm_103aa
-	dec a
-	jr z, .asm_103ba
-	ret
-
-.asm_103aa
-	xor a
-	ld [wd0db], a
-	ld [wd0e1], a
-	ret
-
-.asm_103b2
-	xor a
-	ld [wd0d9], a
-	ld [wd0df], a
-	ret
-
-.asm_103ba
-	xor a
-	ld [wd0da], a
-	ld [wd0e0], a
-	ret
-; 103c2
-
-Function103c2: ; 103c2
-	callba CheckSelectableItem
-	ld a, [wd142]
-	and a
-	jr nz, .asm_103f6
-	ld a, [wcf65]
-	rrca
-	rrca
-	and $c0
-	ld b, a
-	ld a, [wd107]
-	inc a
-	and $3f
-	or b
-	ld [WhichRegisteredItem], a
-	ld a, [CurItem]
-	ld [RegisteredItem], a
-	call Function10a1d
-	ld de, SFX_FULL_HEAL
-	call WaitPlaySFX
-	ld hl, UnknownText_0x10afd
-	call Function10889
-	ret
-
-.asm_103f6
-	ld hl, UnknownText_0x10b02
-	call Function10889
-	ret
-; 103fd
-
-Function103fd: ; 103fd
-	ld a, [PartyCount]
-	and a
-	jp z, Function10486
-	ld a, [Options]
-	push af
-	res 4, a
-	ld [Options], a
-	ld a, $8
-	ld [PartyMenuActionText], a
-	call WhiteBGMap
-	callba Function5004f
-	callba Function50405
-	callba Function503e0
-.asm_10427
-	callba WritePartyMenuTilemap
-	callba PrintPartyMenuText
-	call WaitBGMap
-	call Function32f9
-	call DelayFrame
-	callba PartyMenuSelect
-	jr c, .asm_10475
-	ld a, [CurPartySpecies]
-	cp EGG
-	jr nz, .asm_10453
-	ld hl, UnknownText_0x1048d
-	call PrintText
-	jr .asm_10427
-.asm_10453
-	ld a, [wcf63]
-	push af
-	ld a, [wcf64]
-	push af
-	call GetCurNick
-	ld hl, StringBuffer1
-	ld de, wd050
-	ld bc, PKMN_NAME_LENGTH
-	call CopyBytes
-	call Function12bd9
-	pop af
-	ld [wcf64], a
-	pop af
-	ld [wcf63], a
-.asm_10475
-	pop af
-	ld [Options], a
-	xor a
-	ld [hBGMapMode], a ; $ff00+$d4
-	call Function10955
-	call Function1089a
-	call Function10a40
-	ret
-
-Function10486: ; 10486 (4:4486)
-	ld hl, UnknownText_0x10af8
-	call Function10889
-	ret
-; 1048d (4:448d)
-
-UnknownText_0x1048d: ; 0x1048d
-	; An EGG can't hold an item.
-	text_jump UnknownText_0x1c0b7f
-	db "@"
-; 0x10492
-
-Function10492: ; 10492
-	ret
-; 10493
-
-
-BattlePack: ; 10493
-	ld hl, Options
-	set 4, [hl]
-	call Function1068a
-.asm_1049b
-	call Functiona57
-	ld a, [wcf63]
-	bit 7, a
-	jr nz, .asm_104ad
-	call Function104b9
-	call DelayFrame
-	jr .asm_1049b
-
-.asm_104ad
-	ld a, [wcf65]
-	ld [wd0d6], a
-	ld hl, Options
-	res 4, [hl]
-	ret
-; 104b9
-
-Function104b9: ; 104b9
-	ld a, [wcf63]
-	ld hl, Jumptable_104c3
-	call Function1086b
-	jp [hl]
-; 104c3
-
-
-Jumptable_104c3: ; 104c3 (4:44c3)
-	dw Function104d9
-	dw Function104e9
-	dw Function104fa
-	dw Function10594
-	dw Function105a6
-	dw Function10527
-	dw Function10539
-	dw Function10566
-	dw Function10581
-	dw Function10874
-	dw Function1087e
-
-
-Function104d9: ; 104d9 (4:44d9)
-	xor a
-	ld [hBGMapMode], a ; $ff00+$d4
-	call Function10955
-	ld a, [wcf64]
-	ld [wcf63], a
-	call Function10a40
-	ret
-
-Function104e9: ; 104e9 (4:44e9)
-	xor a
-	ld [wcf65], a
-	call Function10a36
-	call Function109bb
-	call Function1089a
-	call Function10866
-	ret
-
-Function104fa: ; 104fa (4:44fa)
-	ld hl, MenuDataHeader_0x10a4f
-	call Function1d3c
-	ld a, [wd0d9]
-	ld [wcf88], a
-	ld a, [wd0df]
-	ld [wd0e4], a
-	call Function350c
-	ld a, [wd0e4]
-	ld [wd0df], a
-	ld a, [wcfa9]
-	ld [wd0d9], a
-	ld b, $7
-	ld c, $3
-	call Function108d4
-	ret c
-	call Function105d3
-	ret
-
-Function10527: ; 10527 (4:4527)
-	ld a, $2
-	ld [wcf65], a
-	call Function10a36
-	call Function109bb
-	call Function1089a
-	call Function10866
-	ret
-
-Function10539: ; 10539 (4:4539)
-	ld hl, MenuDataHeader_0x10a7f
-	call Function1d3c
-	ld a, [wd0da]
-	ld [wcf88], a
-	ld a, [wd0e0]
-	ld [wd0e4], a
-	call Function350c
-	ld a, [wd0e4]
-	ld [wd0e0], a
-	ld a, [wcfa9]
-	ld [wd0da], a
-	ld b, $3
-	ld c, $7
-	call Function108d4
-	ret c
-	call Function105d3
-	ret
-
-Function10566: ; 10566 (4:4566)
-	ld a, $3
-	ld [wcf65], a
-	call Function10a36
-	call Function109bb
-	xor a
-	ld [hBGMapMode], a ; $ff00+$d4
-	call Function1089a
-	ld hl, UnknownText_0x10b0c
-	call Function10889
-	call Function10866
-	ret
-
-Function10581: ; 10581 (4:4581)
-	callba Function2c76f
-	ld b, $5
-	ld c, $1
-	call Function108d4
-	ret c
-	xor a
-	call Function105dc
-	ret
-
-Function10594: ; 10594 (4:4594)
-	ld a, $1
-	ld [wcf65], a
-	call Function10a36
-	call Function109bb
-	call Function1089a
-	call Function10866
-	ret
-
-Function105a6: ; 105a6 (4:45a6)
-	ld hl, MenuDataHeader_0x10aaf
-	call Function1d3c
-	ld a, [wd0db]
-	ld [wcf88], a
-	ld a, [wd0e1]
-	ld [wd0e4], a
-	call Function350c
-	ld a, [wd0e4]
-	ld [wd0e1], a
-	ld a, [wcfa9]
-	ld [wd0db], a
-	ld b, $1
-	ld c, $5
-	call Function108d4
-	ret c
-	call Function105d3
-	ret
-
-Function105d3: ; 105d3 (4:45d3)
-	callba CheckItemContext
-	ld a, [wd142]
-
-Function105dc: ; 105dc (4:45dc)
-	and a
-	jr z, .asm_105e7
-	ld hl, MenuDataHeader_0x10601
-	ld de, Jumptable_10614
-	jr .asm_105ed
-.asm_105e7
-	ld hl, MenuDataHeader_0x10618
-	ld de, Jumptable_10627
-.asm_105ed
-	push de
-	call LoadMenuDataHeader
-	call Function1d81
-	call Function1c07
-	pop hl
-	ret c
-	ld a, [wcfa9]
-	dec a
-	call Function1086b
-	jp [hl]
-; 10601 (4:4601)
-
-MenuDataHeader_0x10601: ; 0x10601
-	db $40 ; flags
-	db 07, 13 ; start coords
-	db 11, 19 ; end coords
-	dw MenuData2_0x10609
-	db 1 ; default option
-; 0x10609
-
-MenuData2_0x10609: ; 0x10609
-	db $c0 ; flags
-	db 2 ; items
-	db "USE@"
-	db "QUIT@"
-; 0x10614
-
-Jumptable_10614: ; 10614
-	dw Function10629
-	dw Function10689
-; 10618
-
-MenuDataHeader_0x10618: ; 0x10618
-	db $40 ; flags
-	db 09, 13 ; start coords
-	db 11, 19 ; end coords
-	dw MenuData2_0x10620
-	db 1 ; default option
-; 0x10620
-
-MenuData2_0x10620: ; 0x10620
-	db $c0 ; flags
-	db 1 ; items
-	db "QUIT@"
-; 0x10627
-
-Jumptable_10627: ; 10627
-	dw Function10689
-; 10629
-
-Function10629: ; 10629
-	callba CheckItemContext
-	ld a, [wd142]
-	ld hl, Jumptable_10637
-	rst JumpTable
-	ret
-
-Jumptable_10637: ; 10637 (4:4637)
-	dw Function10645
-	dw Function10645
-	dw Function10645
-	dw Function10645
-	dw Function1064c
-	dw Function10656
-	dw Function10671
-
-
-Function10645: ; 10645 (4:4645)
-	ld hl, UnknownText_0x10af3
-	call Function10889
-	ret
-
-Function1064c: ; 1064c (4:464c)
-	call DoItemEffect
-	ld a, [wd0ec]
-	and a
-	jr nz, asm_1066c
-	ret
-
-Function10656: ; 10656 (4:4656)
-	call DoItemEffect
-	ld a, [wd0ec]
-	and a
-	jr nz, asm_1067e
-	xor a
-	ld [hBGMapMode], a ; $ff00+$d4
-	call Function10955
-	call Function1089a
-	call Function10a40
-	ret
-asm_1066c: ; 1066c (4:466c)
-	call WhiteBGMap
-	jr asm_1067e
-
-Function10671: ; 10671 (4:4671)
-	call DoItemEffect
-	ld a, [wd0ec]
-	and a
-	jr z, Function10645
-	cp $2
-	jr z, asm_10684
-asm_1067e: ; 1067e (4:467e)
-	ld a, $a
-	ld [wcf63], a
-	ret
-asm_10684: ; 10684 (4:4684)
-	xor a
-	ld [wd0ec], a
-	ret
-; 10689 (4:4689)
-
-Function10689: ; 10689
-	ret
-; 1068a
-
-
-Function1068a: ; 1068a
-	xor a
-	ld [wcf63], a
-	ld a, [wd0d6]
-	and $3
-	ld [wcf65], a
-	inc a
-	add a
-	dec a
-	ld [wcf64], a
-	xor a
-	ld [wcf66], a
-	xor a
-	ld [wd0e3], a
-	ret
-; 106a5
-
-Function106a5: ; 106a5
-	xor a
-	ld [hBGMapMode], a
-	ld [wcf63], a
-	ld [wcf64], a
-	ld [wcf65], a
-	ld [wcf66], a
-	ld [wd0e3], a
-	call Function10955
-	call Function10a40
-	ret
-; 106be
-
-Function106be: ; 106be
-.asm_106be
-	call Function106c7
-	call Function1076f
-	jr c, .asm_106be
-	ret
-; 106c7
-
-Function106c7: ; 106c7
-	ld a, [wcf63]
-	ld hl, Jumptable_106d1
-	call Function1086b
-	jp [hl]
-; 106d1
-
-
-Jumptable_106d1: ; 106d1 (4:46d1)
-	dw Function106d9
-	dw Function1073b
-	dw Function106ff
-	dw Function10726
-
-
-Function106d9: ; 106d9 (4:46d9)
-	xor a
-	call Function10762
-	ld hl, MenuDataHeader_0x10a67
-	call Function1d3c
-	ld a, [wd0d9]
-	ld [wcf88], a
-	ld a, [wd0df]
-	ld [wd0e4], a
-	call Function350c
-	ld a, [wd0e4]
-	ld [wd0df], a
-	ld a, [wcfa9]
-	ld [wd0d9], a
-	ret
-
-Function106ff: ; 106ff (4:46ff)
-	ld a, $2
-	call Function10762
-	ld hl, MenuDataHeader_0x10a97
-	call Function1d3c
-	ld a, [wd0da]
-	ld [wcf88], a
-	ld a, [wd0e0]
-	ld [wd0e4], a
-	call Function350c
-	ld a, [wd0e4]
-	ld [wd0e0], a
-	ld a, [wcfa9]
-	ld [wd0da], a
-	ret
-
-Function10726: ; 10726 (4:4726)
-	ld a, $3
-	call Function10762
-	call Function1089a
-	callba Function2c76f
-	ld a, [CurItem]
-	ld [CurItem], a
-	ret
-
-Function1073b: ; 1073b (4:473b)
-	ld a, $1
-	call Function10762
-	ld hl, MenuDataHeader_0x10ac7
-	call Function1d3c
-	ld a, [wd0db]
-	ld [wcf88], a
-	ld a, [wd0e1]
-	ld [wd0e4], a
-	call Function350c
-	ld a, [wd0e4]
-	ld [wd0e1], a
-	ld a, [wcfa9]
-	ld [wd0db], a
-	ret
-
-Function10762: ; 10762 (4:4762)
-	ld [wcf65], a
-	call Function10a36
-	call Function109bb
-	call Function1089a
-	ret
-
-
-Function1076f: ; 1076f
-	ld hl, wcf73
-	ld a, [hl]
-	and $1
-	jr nz, .asm_10788
-	ld a, [hl]
-	and $2
-	jr nz, .asm_1078f
-	ld a, [hl]
-	and $20
-	jr nz, .asm_10795
-	ld a, [hl]
-	and $10
-	jr nz, .asm_107a8
-	scf
-	ret
-
-.asm_10788
-	ld a, $1
-	ld [wcf66], a
-	and a
-	ret
-
-.asm_1078f
-	xor a
-	ld [wcf66], a
-	and a
-	ret
-
-.asm_10795
-	ld a, [wcf63]
-	dec a
-	and $3
-	ld [wcf63], a
-	push de
-	ld de, SFX_UNKNOWN_62
-	call PlaySFX
-	pop de
-	scf
-	ret
-
-.asm_107a8
-	ld a, [wcf63]
-	inc a
-	and $3
-	ld [wcf63], a
-	push de
-	ld de, SFX_UNKNOWN_62
-	call PlaySFX
-	pop de
-	scf
-	ret
-; 107bb
-
-Function107bb: ; 107bb
-	call Function106a5
-	ld a, [InputType]
-	or a
-	jr z, .asm_107ca
-	callba Function1de28f
-
-.asm_107ca
-	call Function107d7
-	call Function1076f
-	jr c, .asm_107ca
-	xor a
-	ld [wcf66], a
-	ret
-; 107d7
-
-Function107d7: ; 107d7
-	ld a, [wcf63]
-	ld hl, Jumptable_107e1
-	call Function1086b
-	jp [hl]
-; 107e1
-
-
-Jumptable_107e1: ; 107e1 (4:47e1)
-	dw Function107e9
-	dw Function1083b
-	dw Function10807
-	dw Function10826
-
-
-Function107e9: ; 107e9 (4:47e9)
-	xor a
-	ld hl, MenuDataHeader_0x107ef
-	jr Function1085a
-; 107ef (4:47ef)
-
-MenuDataHeader_0x107ef: ; 0x107ef
-	db $40 ; flags
-	db 01, 07 ; start coords
-	db 11, 19 ; end coords
-	dw MenuData2_0x107f7
-	db 1 ; default option
-; 0x107f7
-
-MenuData2_0x107f7: ; 0x107f7
-	db $ae ; flags
-	db 5, 8 ; rows, columns
-	db 2 ; horizontal spacing
-	dbw 0, OTPartyMons
-	dbw BANK(Function24ab4), Function24ab4
-	dbw BANK(Function24ac3), Function24ac3
-	dbw BANK(Function244c3), Function244c3
-; 10807
-
-Function10807: ; 10807 (4:4807)
-	ld a, $2
-	ld hl, MenuDataHeader_0x1080e
-	jr Function1085a
-; 1080e (4:480e)
-
-MenuDataHeader_0x1080e: ; 0x1080e
-	db $40 ; flags
-	db 01, 07 ; start coords
-	db 11, 19 ; end coords
-	dw MenuData2_0x10816
-	db 1 ; default option
-; 0x10816
-
-MenuData2_0x10816: ; 0x10816
-	db $ae ; flags
-	db 5, 8 ; rows, columns
-	db 1 ; horizontal spacing
-	dbw 0, OTPartyMon1Exp + 2
-	dbw BANK(Function24ab4), Function24ab4
-	dbw BANK(Function24ac3), Function24ac3
-	dbw BANK(Function244c3), Function244c3
-; 10826
-
-Function10826: ; 10826 (4:4826)
-	ld a, $3
-	call Function10762
-	call Function1089a
-	callba Function2c76f
-	ld a, [CurItem]
-	ld [CurItem], a
-	ret
-
-Function1083b: ; 1083b (4:483b)
-	ld a, $1
-	ld hl, MenuDataHeader_0x10842
-	jr Function1085a
-; 10842 (4:4842)
-
-MenuDataHeader_0x10842: ; 0x10842
-	db $40 ; flags
-	db 01, 07 ; start coords
-	db 11, 19 ; end coords
-	dw MenuData2_0x1084a
-	db 1 ; default option
-; 0x1084a
-
-MenuData2_0x1084a: ; 0x1084a
-	db $ae ; flags
-	db 5, 8 ; rows, columns
-	db 2 ; horizontal spacing
-	dbw 0, OTPartyMon1CaughtGender
-	dbw BANK(Function24ab4), Function24ab4
-	dbw BANK(Function24ac3), Function24ac3
-	dbw BANK(Function244c3), Function244c3
-; 1085a
-
-Function1085a: ; 1085a (4:485a)
-	push hl
-	call Function10762
-	pop hl
-	call Function1d3c
-	call Function350c
-	ret
-
-Function10866: ; 10866 (4:4866)
-	ld hl, wcf63
-	inc [hl]
-	ret
-
-Function1086b: ; 1086b
-	ld e, a
-	ld d, 0
-	add hl, de
-	add hl, de
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	ret
-; 10874
-
-Function10874: ; 10874 (4:4874)
-	ld hl, wcf63
-	set 7, [hl]
-	xor a
-	ld [wcf66], a
-	ret
-
-Function1087e: ; 1087e (4:487e)
-	ld hl, wcf63
-	set 7, [hl]
-	ld a, $1
-	ld [wcf66], a
-	ret
-
-Function10889: ; 10889 (4:4889)
-	ld a, [Options]
-	push af
-	set 4, a
-	ld [Options], a
-	call PrintText
-	pop af
-	ld [Options], a
-	ret
-
-Function1089a: ; 1089a (4:489a)
-	call WaitBGMap
-
-
-Function1089d: ; 1089d
-	ld a, [wcf65]
-	and $3
-	ld e, a
-	ld d, $0
-	ld a, [BattleType]
-	cp BATTLETYPE_TUTORIAL
-	jr z, .asm_108b3
-	ld a, [PlayerGender]
-	bit 0, a
-	jr nz, .asm_108c5
-
-.asm_108b3
-	ld hl, PackGFXPointers
-	add hl, de
-	add hl, de
-	ld a, [hli]
-	ld e, a
-	ld d, [hl]
-	ld hl, $9500
-	lb bc, BANK(PackGFX), 15
-	call Request2bpp
-	ret
-
-.asm_108c5
-	callba Function48e81
-	ret
-; 108cc
-
-PackGFXPointers: ; 108cc
-	dw PackGFX + $f0 * 1
-	dw PackGFX + $f0 * 3
-	dw PackGFX + $f0 * 0
-	dw PackGFX + $f0 * 2
-; 108d4
-
-Function108d4: ; 108d4 (4:48d4)
-	ld hl, wcf73
-	ld a, [wd0e3]
-	and a
-	jr nz, .asm_10931
-	ld a, [hl]
-	and $1
-	jr nz, .asm_108f8
-	ld a, [hl]
-	and $2
-	jr nz, .asm_108fa
-	ld a, [hl]
-	and $20
-	jr nz, .asm_10901
-	ld a, [hl]
-	and $10
-	jr nz, .asm_10912
-	ld a, [hl]
-	and $4
-	jr nz, .asm_10923
-	scf
-	ret
-.asm_108f8
-	and a
-	ret
-.asm_108fa
-	ld a, $9
-	ld [wcf63], a
-	scf
-	ret
-.asm_10901
-	ld a, b
-	ld [wcf63], a
-	ld [wcf64], a
-	push de
-	ld de, SFX_UNKNOWN_62
-	call PlaySFX
-	pop de
-	scf
-	ret
-.asm_10912
-	ld a, c
-	ld [wcf63], a
-	ld [wcf64], a
-	push de
-	ld de, SFX_UNKNOWN_62
-	call PlaySFX
-	pop de
-	scf
-	ret
-.asm_10923
-	callba Function2490c
-	ld hl, UnknownText_0x10b07
-	call Function10889
-	scf
-	ret
-.asm_10931
-	ld a, [hl]
-	and $5
-	jr nz, .asm_1093d
-	ld a, [hl]
-	and $2
-	jr nz, .asm_1094f
-	scf
-	ret
-.asm_1093d
-	callba Function2490c
-	ld de, SFX_SWITCH_POKEMON
-	call WaitPlaySFX
-	ld de, SFX_SWITCH_POKEMON
-	call WaitPlaySFX
-.asm_1094f
-	xor a
-	ld [wd0e3], a
-	scf
-	ret
-
-
-Function10955: ; 10955
-	call WhiteBGMap
-	call ClearTileMap
-	call ClearSprites
-	call DisableLCD
-	ld hl, PackMenuGFX
-	ld de, VTiles2
-	ld bc, $0600
-	ld a, BANK(PackMenuGFX)
-	call FarCopyBytes
-	hlcoord 0, 1
-	ld bc, $00dc
-	ld a, $24
-	call ByteFill
-	hlcoord 5, 1
-	lb bc, 11, 15
-	call ClearBox
-	ld hl, TileMap
-	ld a, $28
-	ld c, $14
-.asm_1098a
-	ld [hli], a
-	inc a
-	dec c
-	jr nz, .asm_1098a
-	call Function109bb
-	call Function109a5
-	hlcoord 0, 12
-	lb bc, 4, 18
-	call TextBox
-	call EnableLCD
-	call Function1089d
-	ret
-; 109a5
-
-Function109a5: ; 109a5
-	hlcoord 0, 3
-	ld a, $50
-	ld de, 15
-	ld b, 3
-.asm_109af
-	ld c, 5
-.asm_109b1
-	ld [hli], a
-	inc a
-	dec c
-	jr nz, .asm_109b1
-	add hl, de
-	dec b
-	jr nz, .asm_109af
-	ret
-; 109bb
-
-Function109bb: ; 109bb
-	ld a, [wcf65]
-
-	; * 15
-	ld d, a
-	swap a
-	sub d
-
-	ld d, 0
-	ld e, a
-	ld hl, Tilemap_109e1
-	add hl, de
-	ld d, h
-	ld e, l
-	hlcoord 0, 7
-	ld c, 3
-.asm_109d0
-	ld b, 5
-.asm_109d2
-	ld a, [de]
-	inc de
-	ld [hli], a
-	dec b
-	jr nz, .asm_109d2
-	ld a, c
-	ld c, 15
-	add hl, bc
-	ld c, a
-	dec c
-	jr nz, .asm_109d0
-	ret
-; 109e1
-
-Tilemap_109e1: ; 109e1
-	db $00, $04, $04, $04, $01,  $06, $07, $08, $09, $0a,  $02, $05, $05, $05, $03
-	db $00, $04, $04, $04, $01,  $15, $16, $17, $18, $19,  $02, $05, $05, $05, $03
-	db $00, $04, $04, $04, $01,  $0b, $0c, $0d, $0e, $0f,  $02, $05, $05, $05, $03
-	db $00, $04, $04, $04, $01,  $10, $11, $12, $13, $14,  $02, $05, $05, $05, $03
-; 10a1d
-
-Function10a1d: ; 10a1d
-	ld a, [CurItem]
-	ld [wd265], a
-	call GetItemName
-	call CopyName1
-	ret
-; 10a2a
-
-Function10a2a: ; 10a2a
-	ld hl, TileMap
-	ld bc, $0168
-	ld a, $7f
-	call ByteFill
-	ret
-; 10a36
-
-Function10a36: ; 10a36 (4:4a36)
-	hlcoord 5, 2
-	ld bc, $a0f
-	call ClearBox
-	ret
-
-
-Function10a40: ; 10a40
-	call WaitBGMap
-	ld b, $14
-	call GetSGBLayout
-	call Function32f9
-	call DelayFrame
-	ret
-; 10a4f
-
-MenuDataHeader_0x10a4f: ; 0x10a4f
-	db $40 ; flags
-	db 01, 07 ; start coords
-	db 11, 19 ; end coords
-	dw MenuData2_0x10a57
-	db 1 ; default option
-; 0x10a57
-
-MenuData2_0x10a57: ; 0x10a57
-	db $ae ; flags
-	db 5, 8 ; rows, columns
-	db 2 ; horizontal spacing
-	dbw 0, NumItems
-	dbw BANK(Function24ab4), Function24ab4
-	dbw BANK(Function24ac3), Function24ac3
-	dbw BANK(Function244c3), Function244c3
-; 10a67
-
-MenuDataHeader_0x10a67: ; 0x10a67
-	db $40 ; flags
-	db 01, 07 ; start coords
-	db 11, 19 ; end coords
-	dw MenuData2_0x10a6f
-	db 1 ; default option
-; 0x10a6f
-
-MenuData2_0x10a6f: ; 0x10a6f
-	db $2e ; flags
-	db 5, 8 ; rows, columns
-	db 2 ; horizontal spacing
-	dbw 0, NumItems
-	dbw BANK(Function24ab4), Function24ab4
-	dbw BANK(Function24ac3), Function24ac3
-	dbw BANK(Function244c3), Function244c3
-; 10a7f
-
-MenuDataHeader_0x10a7f: ; 0x10a7f
-	db $40 ; flags
-	db 01, 07 ; start coords
-	db 11, 19 ; end coords
-	dw MenuData2_0x10a87
-	db 1 ; default option
-; 0x10a87
-
-MenuData2_0x10a87: ; 0x10a87
-	db $ae ; flags
-	db 5, 8 ; rows, columns
-	db 1 ; horizontal spacing
-	dbw 0, NumKeyItems
-	dbw BANK(Function24ab4), Function24ab4
-	dbw BANK(Function24ac3), Function24ac3
-	dbw BANK(Function244c3), Function244c3
-; 10a97
-
-MenuDataHeader_0x10a97: ; 0x10a97
-	db $40 ; flags
-	db 01, 07 ; start coords
-	db 11, 19 ; end coords
-	dw MenuData2_0x10a9f
-	db 1 ; default option
-; 0x10a9f
-
-MenuData2_0x10a9f: ; 0x10a9f
-	db $2e ; flags
-	db 5, 8 ; rows, columns
-	db 1 ; horizontal spacing
-	dbw 0, NumKeyItems
-	dbw BANK(Function24ab4), Function24ab4
-	dbw BANK(Function24ac3), Function24ac3
-	dbw BANK(Function244c3), Function244c3
-; 10aaf
-
-MenuDataHeader_0x10aaf: ; 0x10aaf
-	db $40 ; flags
-	db 01, 07 ; start coords
-	db 11, 19 ; end coords
-	dw MenuData2_0x10ab7
-	db 1 ; default option
-; 0x10ab7
-
-MenuData2_0x10ab7: ; 0x10ab7
-	db $ae ; flags
-	db 5, 8 ; rows, columns
-	db 2 ; horizontal spacing
-	dbw 0, NumBalls
-	dbw BANK(Function24ab4), Function24ab4
-	dbw BANK(Function24ac3), Function24ac3
-	dbw BANK(Function244c3), Function244c3
-; 10ac7
-
-MenuDataHeader_0x10ac7: ; 0x10ac7
-	db $40 ; flags
-	db 01, 07 ; start coords
-	db 11, 19 ; end coords
-	dw MenuData2_0x10acf
-	db 1 ; default option
-; 0x10acf
-
-MenuData2_0x10acf: ; 0x10acf
-	db $2e ; flags
-	db 5, 8 ; rows, columns
-	db 2 ; horizontal spacing
-	dbw 0, NumBalls
-	dbw BANK(Function24ab4), Function24ab4
-	dbw BANK(Function24ac3), Function24ac3
-	dbw BANK(Function244c3), Function244c3
-; 10adf
-
-UnknownText_0x10adf: ; 0x10adf
-	; No items.
-	text_jump UnknownText_0x1c0b9a
-	db "@"
-; 0x10ae4
-
-UnknownText_0x10ae4: ; 0x10ae4
-	; Throw away how many?
-	text_jump UnknownText_0x1c0ba5
-	db "@"
-; 0x10ae9
-
-UnknownText_0x10ae9: ; 0x10ae9
-	; Throw away @ @ (S)?
-	text_jump UnknownText_0x1c0bbb
-	db "@"
-; 0x10aee
-
-UnknownText_0x10aee: ; 0x10aee
-	; Threw away @ (S).
-	text_jump UnknownText_0x1c0bd8
-	db "@"
-; 0x10af3
-
-UnknownText_0x10af3: ; 0x10af3
-	; OAK:  ! This isn't the time to use that!
-	text_jump UnknownText_0x1c0bee
-	db "@"
-; 0x10af8
-
-UnknownText_0x10af8: ; 0x10af8
-	; You don't have a #MON!
-	text_jump UnknownText_0x1c0c17
-	db "@"
-; 0x10afd
-
-UnknownText_0x10afd: ; 0x10afd
-	; Registered the @ .
-	text_jump UnknownText_0x1c0c2e
-	db "@"
-; 0x10b02
-
-UnknownText_0x10b02: ; 0x10b02
-	; You can't register that item.
-	text_jump UnknownText_0x1c0c45
-	db "@"
-; 0x10b07
-
-UnknownText_0x10b07: ; 0x10b07
-	; Where should this be moved to?
-	text_jump UnknownText_0x1c0c63
-	db "@"
-; 0x10b0c
-
-UnknownText_0x10b0c: ; 0x10b0c
-	; 
-	text_jump UnknownText_0x1c0c83
-	db "@"
-; 0x10b11
-
-UnknownText_0x10b11: ; 0x10b11
-	; You can't use it in a battle.
-	text_jump UnknownText_0x1c0c85
-	db "@"
-; 0x10b16
-
-PackMenuGFX:
-INCBIN "gfx/misc/pack_menu.2bpp"
-
-PackGFX:
-INCBIN "gfx/misc/pack.w40.2bpp"
 
 Function113d6: ; 113d6
 	call Function114dd