shithub: pokecrystal

Download patch

ref: c2889215a8dcf0af0f94ac05e6fa92be6838e101
parent: 0b905cb8acca15e810dba378774c46d8b4bb6a97
author: yenatch <[email protected]>
date: Thu Nov 28 20:51:27 EST 2013

audio.o and misc/crystal_misc.o

--- a/Makefile
+++ b/Makefile
@@ -9,6 +9,7 @@
 CRYSTAL_OBJS := \
 wram.o \
 main.o \
+audio.o \
 maps_crystal.o \
 engine/events.o \
 engine/scripting_crystal.o \
@@ -16,7 +17,8 @@
 engine/credits_crystal.o \
 stats/egg_moves_crystal.o \
 stats/evos_attacks_crystal.o \
-stats/pokedex/entries_crystal.o
+stats/pokedex/entries_crystal.o \
+misc/crystal_misc.o
 
 OBJS := $(CRYSTAL_OBJS)
 
--- /dev/null
+++ b/audio.asm
@@ -1,0 +1,173 @@
+INCLUDE "includes.asm"
+
+
+SECTION "Audio", ROMX, BANK[AUDIO]
+
+INCLUDE "audio/engine.asm"
+
+; What music plays when a trainer notices you
+INCLUDE "audio/trainer_encounters.asm"
+
+Music:
+INCLUDE "audio/music_pointers.asm"
+
+INCLUDE "audio/music/nothing.asm"
+
+Cries:
+INCLUDE "audio/cry_pointers.asm"
+
+SFX:
+INCLUDE "audio/sfx_pointers.asm"
+
+
+
+SECTION "Songs 1", ROMX, BANK[SONGS_1]
+
+INCLUDE "audio/music/route36.asm"
+INCLUDE "audio/music/rivalbattle.asm"
+INCLUDE "audio/music/rocketbattle.asm"
+INCLUDE "audio/music/elmslab.asm"
+INCLUDE "audio/music/darkcave.asm"
+INCLUDE "audio/music/johtogymbattle.asm"
+INCLUDE "audio/music/championbattle.asm"
+INCLUDE "audio/music/ssaqua.asm"
+INCLUDE "audio/music/newbarktown.asm"
+INCLUDE "audio/music/goldenrodcity.asm"
+INCLUDE "audio/music/vermilioncity.asm"
+INCLUDE "audio/music/titlescreen.asm"
+INCLUDE "audio/music/ruinsofalphinterior.asm"
+INCLUDE "audio/music/lookpokemaniac.asm"
+INCLUDE "audio/music/trainervictory.asm"
+
+
+SECTION "Songs 2", ROMX, BANK[SONGS_2]
+
+INCLUDE "audio/music/route1.asm"
+INCLUDE "audio/music/route3.asm"
+INCLUDE "audio/music/route12.asm"
+INCLUDE "audio/music/kantogymbattle.asm"
+INCLUDE "audio/music/kantotrainerbattle.asm"
+INCLUDE "audio/music/kantowildbattle.asm"
+INCLUDE "audio/music/pokemoncenter.asm"
+INCLUDE "audio/music/looklass.asm"
+INCLUDE "audio/music/lookofficer.asm"
+INCLUDE "audio/music/route2.asm"
+INCLUDE "audio/music/mtmoon.asm"
+INCLUDE "audio/music/showmearound.asm"
+INCLUDE "audio/music/gamecorner.asm"
+INCLUDE "audio/music/bicycle.asm"
+INCLUDE "audio/music/looksage.asm"
+INCLUDE "audio/music/pokemonchannel.asm"
+INCLUDE "audio/music/lighthouse.asm"
+INCLUDE "audio/music/lakeofrage.asm"
+INCLUDE "audio/music/indigoplateau.asm"
+INCLUDE "audio/music/route37.asm"
+INCLUDE "audio/music/rockethideout.asm"
+INCLUDE "audio/music/dragonsden.asm"
+INCLUDE "audio/music/ruinsofalphradio.asm"
+INCLUDE "audio/music/lookbeauty.asm"
+INCLUDE "audio/music/route26.asm"
+INCLUDE "audio/music/ecruteakcity.asm"
+INCLUDE "audio/music/lakeofragerocketradio.asm"
+INCLUDE "audio/music/magnettrain.asm"
+INCLUDE "audio/music/lavendertown.asm"
+INCLUDE "audio/music/dancinghall.asm"
+INCLUDE "audio/music/contestresults.asm"
+INCLUDE "audio/music/route30.asm"
+
+
+SECTION "Songs 3", ROMX, BANK[SONGS_3]
+
+INCLUDE "audio/music/violetcity.asm"
+INCLUDE "audio/music/route29.asm"
+INCLUDE "audio/music/halloffame.asm"
+INCLUDE "audio/music/healpokemon.asm"
+INCLUDE "audio/music/evolution.asm"
+INCLUDE "audio/music/printer.asm"
+
+
+SECTION "Songs 4", ROMX, BANK[SONGS_4]
+
+INCLUDE "audio/music/viridiancity.asm"
+INCLUDE "audio/music/celadoncity.asm"
+INCLUDE "audio/music/wildpokemonvictory.asm"
+INCLUDE "audio/music/successfulcapture.asm"
+INCLUDE "audio/music/gymleadervictory.asm"
+INCLUDE "audio/music/mtmoonsquare.asm"
+INCLUDE "audio/music/gym.asm"
+INCLUDE "audio/music/pallettown.asm"
+INCLUDE "audio/music/profoakspokemontalk.asm"
+INCLUDE "audio/music/profoak.asm"
+INCLUDE "audio/music/lookrival.asm"
+INCLUDE "audio/music/aftertherivalfight.asm"
+INCLUDE "audio/music/surf.asm"
+INCLUDE "audio/music/nationalpark.asm"
+INCLUDE "audio/music/azaleatown.asm"
+INCLUDE "audio/music/cherrygrovecity.asm"
+INCLUDE "audio/music/unioncave.asm"
+INCLUDE "audio/music/johtowildbattle.asm"
+INCLUDE "audio/music/johtowildbattlenight.asm"
+INCLUDE "audio/music/johtotrainerbattle.asm"
+INCLUDE "audio/music/lookyoungster.asm"
+INCLUDE "audio/music/tintower.asm"
+INCLUDE "audio/music/sprouttower.asm"
+INCLUDE "audio/music/burnedtower.asm"
+INCLUDE "audio/music/mom.asm"
+INCLUDE "audio/music/victoryroad.asm"
+INCLUDE "audio/music/pokemonlullaby.asm"
+INCLUDE "audio/music/pokemonmarch.asm"
+INCLUDE "audio/music/goldsilveropening.asm"
+INCLUDE "audio/music/goldsilveropening2.asm"
+INCLUDE "audio/music/lookhiker.asm"
+INCLUDE "audio/music/lookrocket.asm"
+INCLUDE "audio/music/rockettheme.asm"
+INCLUDE "audio/music/mainmenu.asm"
+INCLUDE "audio/music/lookkimonogirl.asm"
+INCLUDE "audio/music/pokeflutechannel.asm"
+INCLUDE "audio/music/bugcatchingcontest.asm"
+
+
+SECTION "Songs 5", ROMX, BANK[SONGS_5]
+
+INCLUDE "audio/music/mobileadaptermenu.asm"
+INCLUDE "audio/music/buenaspassword.asm"
+INCLUDE "audio/music/lookmysticalman.asm"
+INCLUDE "audio/music/crystalopening.asm"
+INCLUDE "audio/music/battletowertheme.asm"
+INCLUDE "audio/music/suicunebattle.asm"
+INCLUDE "audio/music/battletowerlobby.asm"
+INCLUDE "audio/music/mobilecenter.asm"
+
+
+
+SECTION "Extra Songs 1", ROMX, BANK[EXTRA_SONGS_1]
+
+INCLUDE "audio/music/credits.asm"
+INCLUDE "audio/music/clair.asm"
+INCLUDE "audio/music/mobileadapter.asm"
+
+
+SECTION "Extra Songs 2", ROMX, BANK[EXTRA_SONGS_2]
+
+INCLUDE "audio/music/postcredits.asm"
+
+
+
+SECTION "Sound Effects", ROMX, BANK[SOUND_EFFECTS]
+
+INCBIN "baserom.gbc",$f0941, $f2787 - $f0941
+
+
+SECTION "Crystal Sound Effects", ROMX, BANK[CRYSTAL_SOUND_EFFECTS]
+
+INCBIN "baserom.gbc",$17982d, $1799ef - $17982d
+
+
+
+SECTION "Cries", ROMX, BANK[CRIES]
+
+CryHeaders: INCLUDE "audio/cry_headers.asm"
+
+INCBIN "baserom.gbc",$f2d69, $f3fb6 - $f2d69
+
+
--- a/contents.asm
+++ b/contents.asm
@@ -61,3 +61,28 @@
 MAP_SCRIPTS_24            EQU $6B
 MAP_SCRIPTS_25            EQU $6C
 
+
+; audio.o
+
+AUDIO                     EQU $3A
+
+SONGS_1                   EQU $3A
+SONGS_2                   EQU $3B
+SONGS_3                   EQU $3C
+SONGS_4                   EQU $3D
+SONGS_5                   EQU $5E
+
+EXTRA_SONGS_1             EQU $7
+EXTRA_SONGS_2             EQU $33
+
+SOUND_EFFECTS             EQU $3C
+CRYSTAL_SOUND_EFFECTS     EQU $5E
+
+CRIES                     EQU $3C
+
+
+; misc.o
+
+MISC_CRYSTAL              EQU $5E
+
+
--- a/main.asm
+++ b/main.asm
@@ -30795,13 +30795,8 @@
 
 INCLUDE "tilesets/data_2.asm"
 
-;                           Songs i
 
-INCLUDE "audio/music/credits.asm"
-INCLUDE "audio/music/clair.asm"
-INCLUDE "audio/music/mobileadapter.asm"
 
-
 SECTION "bank8", ROMX, BANK[$8]
 
 
@@ -96847,12 +96842,8 @@
 
 INCBIN "baserom.gbc",$ce85e,$cfd9e - $ce85e
 
-;                          Songs iii
 
-INCLUDE "audio/music/postcredits.asm"
 
-
-
 ;                       Pic animations I
 
 SECTION "bank34", ROMX, BANK[$34]
@@ -104034,147 +104025,7 @@
 INCBIN "baserom.gbc", $e799d, $e7a70 - $e799d
 
 
-; ================================================================
-;           Sound engine and music/sound effect pointers
-SECTION "bank3A", ROMX, BANK[$3A]
 
-
-; The sound engine. Interfaces are in bank 0
-INCLUDE "audio/engine.asm"
-
-; What music plays when a trainer notices you
-INCLUDE "audio/trainer_encounters.asm"
-
-; Pointer table for all 103 songs
-Music: INCLUDE "audio/music_pointers.asm"
-
-; Empty song
-INCLUDE "audio/music/nothing.asm"
-
-; Pointer table for all 68 base cries
-Cries: INCLUDE "audio/cry_pointers.asm"
-
-; Pointer table for all 207 sfx
-SFX: INCLUDE "audio/sfx_pointers.asm"
-
-
-;                            Songs I
-
-INCLUDE "audio/music/route36.asm"
-INCLUDE "audio/music/rivalbattle.asm"
-INCLUDE "audio/music/rocketbattle.asm"
-INCLUDE "audio/music/elmslab.asm"
-INCLUDE "audio/music/darkcave.asm"
-INCLUDE "audio/music/johtogymbattle.asm"
-INCLUDE "audio/music/championbattle.asm"
-INCLUDE "audio/music/ssaqua.asm"
-INCLUDE "audio/music/newbarktown.asm"
-INCLUDE "audio/music/goldenrodcity.asm"
-INCLUDE "audio/music/vermilioncity.asm"
-INCLUDE "audio/music/titlescreen.asm"
-INCLUDE "audio/music/ruinsofalphinterior.asm"
-INCLUDE "audio/music/lookpokemaniac.asm"
-INCLUDE "audio/music/trainervictory.asm"
-
-
-SECTION "bank3B", ROMX, BANK[$3B]
-
-;                           Songs II
-
-INCLUDE "audio/music/route1.asm"
-INCLUDE "audio/music/route3.asm"
-INCLUDE "audio/music/route12.asm"
-INCLUDE "audio/music/kantogymbattle.asm"
-INCLUDE "audio/music/kantotrainerbattle.asm"
-INCLUDE "audio/music/kantowildbattle.asm"
-INCLUDE "audio/music/pokemoncenter.asm"
-INCLUDE "audio/music/looklass.asm"
-INCLUDE "audio/music/lookofficer.asm"
-INCLUDE "audio/music/route2.asm"
-INCLUDE "audio/music/mtmoon.asm"
-INCLUDE "audio/music/showmearound.asm"
-INCLUDE "audio/music/gamecorner.asm"
-INCLUDE "audio/music/bicycle.asm"
-INCLUDE "audio/music/looksage.asm"
-INCLUDE "audio/music/pokemonchannel.asm"
-INCLUDE "audio/music/lighthouse.asm"
-INCLUDE "audio/music/lakeofrage.asm"
-INCLUDE "audio/music/indigoplateau.asm"
-INCLUDE "audio/music/route37.asm"
-INCLUDE "audio/music/rockethideout.asm"
-INCLUDE "audio/music/dragonsden.asm"
-INCLUDE "audio/music/ruinsofalphradio.asm"
-INCLUDE "audio/music/lookbeauty.asm"
-INCLUDE "audio/music/route26.asm"
-INCLUDE "audio/music/ecruteakcity.asm"
-INCLUDE "audio/music/lakeofragerocketradio.asm"
-INCLUDE "audio/music/magnettrain.asm"
-INCLUDE "audio/music/lavendertown.asm"
-INCLUDE "audio/music/dancinghall.asm"
-INCLUDE "audio/music/contestresults.asm"
-INCLUDE "audio/music/route30.asm"
-
-SECTION "bank3C", ROMX, BANK[$3C]
-
-;                          Songs III
-
-INCLUDE "audio/music/violetcity.asm"
-INCLUDE "audio/music/route29.asm"
-INCLUDE "audio/music/halloffame.asm"
-INCLUDE "audio/music/healpokemon.asm"
-INCLUDE "audio/music/evolution.asm"
-INCLUDE "audio/music/printer.asm"
-
-INCBIN "baserom.gbc",$f0941,$f2787 - $f0941
-
-CryHeaders:
-INCLUDE "audio/cry_headers.asm"
-
-INCBIN "baserom.gbc",$f2d69,$f3fb6 - $f2d69
-
-
-SECTION "bank3D", ROMX, BANK[$3D]
-
-;                           Songs IV
-
-INCLUDE "audio/music/viridiancity.asm"
-INCLUDE "audio/music/celadoncity.asm"
-INCLUDE "audio/music/wildpokemonvictory.asm"
-INCLUDE "audio/music/successfulcapture.asm"
-INCLUDE "audio/music/gymleadervictory.asm"
-INCLUDE "audio/music/mtmoonsquare.asm"
-INCLUDE "audio/music/gym.asm"
-INCLUDE "audio/music/pallettown.asm"
-INCLUDE "audio/music/profoakspokemontalk.asm"
-INCLUDE "audio/music/profoak.asm"
-INCLUDE "audio/music/lookrival.asm"
-INCLUDE "audio/music/aftertherivalfight.asm"
-INCLUDE "audio/music/surf.asm"
-INCLUDE "audio/music/nationalpark.asm"
-INCLUDE "audio/music/azaleatown.asm"
-INCLUDE "audio/music/cherrygrovecity.asm"
-INCLUDE "audio/music/unioncave.asm"
-INCLUDE "audio/music/johtowildbattle.asm"
-INCLUDE "audio/music/johtowildbattlenight.asm"
-INCLUDE "audio/music/johtotrainerbattle.asm"
-INCLUDE "audio/music/lookyoungster.asm"
-INCLUDE "audio/music/tintower.asm"
-INCLUDE "audio/music/sprouttower.asm"
-INCLUDE "audio/music/burnedtower.asm"
-INCLUDE "audio/music/mom.asm"
-INCLUDE "audio/music/victoryroad.asm"
-INCLUDE "audio/music/pokemonlullaby.asm"
-INCLUDE "audio/music/pokemonmarch.asm"
-INCLUDE "audio/music/goldsilveropening.asm"
-INCLUDE "audio/music/goldsilveropening2.asm"
-INCLUDE "audio/music/lookhiker.asm"
-INCLUDE "audio/music/lookrocket.asm"
-INCLUDE "audio/music/rockettheme.asm"
-INCLUDE "audio/music/mainmenu.asm"
-INCLUDE "audio/music/lookkimonogirl.asm"
-INCLUDE "audio/music/pokeflutechannel.asm"
-INCLUDE "audio/music/bugcatchingcontest.asm"
-
 SECTION "bank3E", ROMX, BANK[$3E]
 
 FontExtra:
@@ -121890,837 +121741,6 @@
 	callba Function3ee27
 	ret
 ; 17801f (5e:401f)
-
-;                          Songs V
-
-INCLUDE "audio/music/mobileadaptermenu.asm"
-INCLUDE "audio/music/buenaspassword.asm"
-INCLUDE "audio/music/lookmysticalman.asm"
-INCLUDE "audio/music/crystalopening.asm"
-INCLUDE "audio/music/battletowertheme.asm"
-INCLUDE "audio/music/suicunebattle.asm"
-INCLUDE "audio/music/battletowerlobby.asm"
-INCLUDE "audio/music/mobilecenter.asm"
-
-INCBIN "baserom.gbc",$17982d,$1799ef - $17982d
-
-MobileAdapterGFX:
-INCBIN "gfx/misc/mobile_adapter.2bpp"
-
-
-; no known jump sources
-Function17a68f: ; 17a68f (5e:668f)
-	call Function17a6a8
-	call Function17a751
-	ld hl, $d088
-	bit 5, [hl]
-	jr z, .asm_17a6a6
-	ld de, StringBuffer1 ; $d073
-	push de
-	call Function17a721
-	pop de
-	xor a
-	ret
-.asm_17a6a6
-	scf
-	ret
-
-; known jump sources: 17a68f (5e:668f)
-Function17a6a8: ; 17a6a8 (5e:66a8)
-	push de
-	push bc
-	ld hl, StringBuffer2 ; $d086
-	ld bc, $a
-	xor a
-	call ByteFill
-	ld hl, Buffer1 ; $d1ea (aliases: MagikarpLength)
-	ld bc, $10
-	ld a, $ff
-	call ByteFill
-	pop bc
-	ld a, c
-	and a
-	jr z, .asm_17a6c9
-	ld hl, $d088
-	set 4, [hl]
-.asm_17a6c9
-	pop de
-	call Function17a6f5
-	call Function17aba0
-	callba Function106464
-	call Function17ac0c
-	callba Function104000
-	call Function17abcf
-	callba Function49409
-	callba Function49420
-	call Function32f9
-	call DelayFrame
-	ret
-
-; known jump sources: 17a6ca (5e:66ca)
-Function17a6f5: ; 17a6f5 (5e:66f5)
-	ld hl, Buffer1 ; $d1ea (aliases: MagikarpLength)
-	ld c, $0
-	ld b, $8
-.asm_17a6fc
-	ld a, [de]
-	call Function17a713
-	jr c, .asm_17a70e
-	ld a, [de]
-	swap a
-	call Function17a713
-	jr c, .asm_17a70e
-	inc de
-	dec b
-	jr nz, .asm_17a6fc
-.asm_17a70e
-	ld a, c
-	ld [$d08c], a
-	ret
-
-; known jump sources: 17a6fd (5e:66fd), 17a705 (5e:6705)
-Function17a713: ; 17a713 (5e:6713)
-	and $f
-	cp $a
-	jr nc, .asm_17a71d
-	ld [hli], a
-	inc c
-	and a
-	ret
-.asm_17a71d
-	ld [hl], $ff
-	scf
-	ret
-
-; known jump sources: 17a6a0 (5e:66a0)
-Function17a721: ; 17a721 (5e:6721)
-	push de
-	ld h, d
-	ld l, e
-	ld bc, $8
-	ld a, $ff
-	call ByteFill
-	pop de
-	ld hl, Buffer1 ; $d1ea (aliases: MagikarpLength)
-	ld b, $8
-.asm_17a732
-	ld c, $0
-	ld a, [hli]
-	cp $a
-	jr nc, .asm_17a748
-	ld c, a
-	ld a, [hli]
-	cp $a
-	jr nc, .asm_17a74c
-	swap a
-	or c
-	ld [de], a
-	inc de
-	dec b
-	jr nz, .asm_17a732
-	ret
-.asm_17a748
-	ld a, $ff
-	ld [de], a
-	ret
-.asm_17a74c
-	ld a, $f0
-	or c
-	ld [de], a
-	ret
-
-; known jump sources: 17a692 (5e:6692)
-Function17a751: ; 17a751 (5e:6751)
-	xor a
-	ld [$d087], a
-.asm_17a755
-	call Function17a781
-	call Function17a7ae
-	call Function17a97b
-	call Function17a770
-	call Function17a78f
-	ld hl, $d08f
-	inc [hl]
-	ld a, [$d087]
-	bit 7, a
-	jr z, .asm_17a755
-	ret
-
-; known jump sources: 17a75e (5e:675e)
-Function17a770: ; 17a770 (5e:6770)
-	ld a, [hOAMUpdate] ; $ff00+$d8
-	push af
-	ld a, $1
-	ld [hOAMUpdate], a ; $ff00+$d8
-	call HideSprites
-	call Function17a9cb
-	pop af
-	ld [hOAMUpdate], a ; $ff00+$d8
-	ret
-
-; known jump sources: 17a755 (5e:6755)
-Function17a781: ; 17a781 (5e:6781)
-	ld a, [$FF00+$aa]
-	push af
-	ld a, $1
-	ld [$FF00+$aa], a
-	call Functiona57
-	pop af
-	ld [$FF00+$aa], a
-	ret
-
-; known jump sources: 17a761 (5e:6761)
-Function17a78f: ; 17a78f (5e:678f)
-	ld hl, $d088
-	bit 7, [hl]
-	res 7, [hl]
-	jr nz, .asm_17a79f
-	callba Function10402d
-	ret
-.asm_17a79f
-	callba Function104061
-	ret
-; 17a7a6 (5e:67a6)
-
-INCBIN "baserom.gbc",$17a7a6,$17a7ae - $17a7a6
-
-; known jump sources: 17a758 (5e:6758)
-Function17a7ae: ; 17a7ae (5e:67ae)
-	ld a, [$d087]
-	ld hl, $67b6
-	rst $28
-	ret
-
-; no known jump sources
-Jumptable_17a7b6: ; 17a7b6 (5e:67b6)
-	dw Function17a7c2
-	dw Function17a7cd
-	dw Function17a7d8
-	dw Function17a7ff
-	dw Function17a81a
-	dw Function17a7f4
-
-
-; no known jump sources
-Function17a7c2: ; 17a7c2 (5e:67c2)
-	ld a, $4
-	call Function17aad3
-	ld a, $1
-	ld [$d087], a
-	ret
-
-; no known jump sources
-Function17a7cd: ; 17a7cd (5e:67cd)
-	call Function17a83c
-	call Function17a8ae
-	ret c
-	call Function17a848
-	ret
-
-; no known jump sources
-Function17a7d8: ; 17a7d8 (5e:67d8)
-	call Function17a83c
-	call Function17a848
-	ld hl, $d08b
-	dec [hl]
-	ret nz
-	call Function17ac1d
-	call Function17ac2a
-	ld hl, $d088
-	set 7, [hl]
-	ld a, $1
-	ld [$d087], a
-	ret
-
-; no known jump sources
-Function17a7f4: ; 17a7f4 (5e:67f4)
-	ld hl, $d08b
-	dec [hl]
-	ret nz
-	ld hl, $d087
-	set 7, [hl]
-	ret
-
-; no known jump sources
-Function17a7ff: ; 17a7ff (5e:67ff)
-	ld hl, $d08b
-	dec [hl]
-	ret nz
-	call Function17ac1d
-	call Function17ac2a
-	ld hl, $d088
-	set 7, [hl]
-	ld hl, $d088
-	set 5, [hl]
-	ld hl, $d087
-	set 7, [hl]
-	ret
-
-; no known jump sources
-Function17a81a: ; 17a81a (5e:681a)
-	call Function3c74
-	ret nc
-	ld a, [hJoyPressed] ; $ff00+$a7
-	and $3
-	ret z
-	call Function1c07
-	call Function17ac1d
-	call Function17ac2a
-	ld hl, $d088
-	set 7, [hl]
-	ld hl, $d088
-	res 6, [hl]
-	ld a, $1
-	ld [$d087], a
-	ret
-
-; known jump sources: 17a7cd (5e:67cd), 17a7d8 (5e:67d8)
-Function17a83c: ; 17a83c (5e:683c)
-	ld a, [$FF00+$a9]
-	and $f0
-	ld c, a
-	ld a, [hJoyPressed] ; $ff00+$a7
-	and $b
-	or c
-	ld c, a
-	ret
-
-; known jump sources: 17a7d4 (5e:67d4), 17a7db (5e:67db)
-Function17a848: ; 17a848 (5e:6848)
-	ld a, c
-	and $60
-	cp $60
-	jr z, .asm_17a876
-	ld a, c
-	and $50
-	cp $50
-	jr z, .asm_17a87d
-	ld a, c
-	and $a0
-	cp $a0
-	jr z, .asm_17a884
-	ld a, c
-	and $90
-	cp $90
-	jr z, .asm_17a88b
-	bit 6, c
-	jr nz, .asm_17a892
-	bit 7, c
-	jr nz, .asm_17a899
-	bit 5, c
-	jr nz, .asm_17a8a0
-	bit 4, c
-	jr nz, .asm_17a8a7
-	xor a
-	ret
-.asm_17a876
-	ld a, $9
-	call Function17aad0
-	scf
-	ret
-.asm_17a87d
-	ld a, $a
-	call Function17aad0
-	scf
-	ret
-.asm_17a884
-	ld a, $b
-	call Function17aad0
-	scf
-	ret
-.asm_17a88b
-	ld a, $c
-	call Function17aad0
-	scf
-	ret
-.asm_17a892
-	ld a, $5
-	call Function17aad0
-	scf
-	ret
-.asm_17a899
-	ld a, $6
-	call Function17aad0
-	scf
-	ret
-.asm_17a8a0
-	ld a, $7
-	call Function17aad0
-	scf
-	ret
-.asm_17a8a7
-	ld a, $8
-	call Function17aad0
-	scf
-	ret
-
-; known jump sources: 17a7d0 (5e:67d0)
-Function17a8ae: ; 17a8ae (5e:68ae)
-	bit 1, c
-	jr nz, .asm_17a8bc
-	bit 0, c
-	jr nz, .asm_17a8cc
-	bit 3, c
-	jr nz, .asm_17a8d7
-	xor a
-	ret
-.asm_17a8bc
-	ld a, $b
-	ld [$d08a], a
-	call Function17aa98
-	call Function17a943
-	call Function17aa88
-	scf
-	ret
-.asm_17a8cc
-	call Function17aad7
-	call Function17aa98
-	call Function17a8de
-	scf
-	ret
-.asm_17a8d7
-	ld a, $c
-	call Function17aad3
-	scf
-	ret
-
-; known jump sources: 17a8d2 (5e:68d2)
-Function17a8de: ; 17a8de (5e:68de)
-	ld a, $2
-	call Function17aae0
-	ld a, [hl]
-	cp $f1
-	jr z, .asm_17a8fd
-	cp $f0
-	jr z, .asm_17a904
-	cp $f2
-	jr z, .asm_17a911
-	ld e, a
-	call Function17a964
-	ld a, $2
-	ld [$d087], a
-	call Function17aa88
-	ret
-.asm_17a8fd
-	call Function17a943
-	call Function17aa88
-	ret
-.asm_17a904
-	call Function17aad7
-	call Function17aa98
-	call Function17a91e
-	call Function17aa88
-	ret
-.asm_17a911
-	call Function17aa98
-	ld a, $5
-	ld [$d087], a
-	xor a
-	call Function17aa88
-	ret
-
-; known jump sources: 17a90a (5e:690a)
-Function17a91e: ; 17a91e (5e:691e)
-	ld a, [$d08c]
-	cp $7
-	jr c, .asm_17a92c
-	ld a, $3
-	ld [$d087], a
-	xor a
-	ret
-.asm_17a92c
-	call Function1d6e
-	call Function17a99e
-	ld hl, $d088
-	set 7, [hl]
-	ld hl, $d088
-	set 6, [hl]
-	ld a, $4
-	ld [$d087], a
-	scf
-	ret
-
-; known jump sources: 17a8c4 (5e:68c4), 17a8fd (5e:68fd)
-Function17a943: ; 17a943 (5e:6943)
-	ld a, [$d08c]
-	and a
-	jr z, .asm_17a95d
-	dec a
-	ld [$d08c], a
-	ld c, a
-	ld b, $0
-	ld hl, Buffer1 ; $d1ea (aliases: MagikarpLength)
-	add hl, bc
-	ld [hl], $ff
-	ld a, $2
-	ld [$d087], a
-	and a
-	ret
-.asm_17a95d
-	ld a, $5
-	ld [$d087], a
-	xor a
-	ret
-
-; known jump sources: 17a8f1 (5e:68f1)
-Function17a964: ; 17a964 (5e:6964)
-	ld a, [$d08c]
-	cp $10
-	jr nc, .asm_17a979
-	ld c, a
-	ld b, $0
-	inc a
-	ld [$d08c], a
-	ld hl, Buffer1 ; $d1ea (aliases: MagikarpLength)
-	add hl, bc
-	ld [hl], e
-	and a
-	ret
-.asm_17a979
-	scf
-	ret
-
-; known jump sources: 17a75b (5e:675b)
-Function17a97b: ; 17a97b (5e:697b)
-	ld hl, $c4b5
-	ld bc, $212
-	call ClearBox
-	ld hl, $c4cb
-	ld de, Buffer1 ; $d1ea (aliases: MagikarpLength)
-	ld a, [$d08c]
-	and a
-	ret z
-	ld c, a
-.asm_17a990
-	ld a, [de]
-	inc de
-	cp $a
-	jr nc, .asm_17a99d
-	add $f6
-	ld [hli], a
-	dec c
-	jr nz, .asm_17a990
-	ret
-.asm_17a99d
-	ret
-
-; known jump sources: 17a92f (5e:692f)
-Function17a99e: ; 17a99e (5e:699e)
-	ld hl, $c590
-	ld b, $4
-	ld c, $12
-	call Function17ac46
-	ld hl, $c5ba
-	ld de, $69b2
-	call PlaceString
-	ret
-; 17a9b2 (5e:69b2)
-
-INCBIN "baserom.gbc",$17a9b2,$17a9cb - $17a9b2
-
-; known jump sources: 17a77a (5e:677a)
-Function17a9cb: ; 17a9cb (5e:69cb)
-	ld de, Sprites ; $c400
-	ld hl, $d088
-	bit 6, [hl]
-	jr nz, .asm_17a9df
-	call Function17a9e3
-	call Function17aa22
-	call Function17a9f5
-	ret
-.asm_17a9df
-	call Function17a9e3
-	ret
-
-; known jump sources: 17a9d5 (5e:69d5), 17a9df (5e:69df)
-Function17a9e3: ; 17a9e3 (5e:69e3)
-	ld a, $3
-	ld [$d08e], a
-	ld hl, $6a77
-	ld b, $8
-	ld c, $8
-	ld a, $5
-	call Function17aa4a
-	ret
-
-; known jump sources: 17a9db (5e:69db)
-Function17a9f5: ; 17a9f5 (5e:69f5)
-	ld a, [$d08c]
-	cp $10
-	ret nc
-	ld a, [$d08f]
-	swap a
-	and $1
-	add $1
-	ld [$d08e], a
-	ld a, [$d08c]
-	cp $10
-	jr c, .asm_17aa0f
-	dec a
-.asm_17aa0f
-	ld c, $8
-	call SimpleMultiply
-	add $18
-	ld b, a
-	ld c, $11
-	ld hl, $6a72
-	ld a, $4
-	call Function17aa4a
-	ret
-
-; known jump sources: 17a9d8 (5e:69d8)
-Function17aa22: ; 17aa22 (5e:6a22)
-	ld a, $0
-	ld [$d08e], a
-	push de
-	ld a, $3
-	call Function17aae0
-	add a
-	add a
-	add a
-	add $0
-	push af
-	ld a, $4
-	call Function17aae0
-	add a
-	add a
-	add a
-	add $8
-	ld c, a
-	pop af
-	ld b, a
-	pop de
-	ld a, $0
-	ld hl, $6a77
-	call Function17aa4a
-	ret
-
-; known jump sources: 17a9f1 (5e:69f1), 17aa1e (5e:6a1e), 17aa46 (5e:6a46)
-Function17aa4a: ; 17aa4a (5e:6a4a)
-	ld [$d08d], a
-	ld a, b
-	add $8
-	ld b, a
-	ld a, c
-	add $10
-	ld c, a
-	ld a, [hli]
-.asm_17aa56
-	push af
-	ld a, [hli]
-	add c
-	ld [de], a
-	inc de
-	ld a, [hli]
-	add b
-	ld [de], a
-	inc de
-	ld a, [$d08d]
-	add [hl]
-	inc hl
-	ld [de], a
-	inc de
-	ld a, [$d08e]
-	or [hl]
-	inc hl
-	ld [de], a
-	inc de
-	pop af
-	dec a
-	jr nz, .asm_17aa56
-	ret
-; 17aa72 (5e:6a72)
-
-INCBIN "baserom.gbc",$17aa72,$17aa88 - $17aa72
-
-; known jump sources: 17a8c7 (5e:68c7), 17a8f9 (5e:68f9), 17a900 (5e:6900), 17a90d (5e:690d), 17a91a (5e:691a)
-Function17aa88: ; 17aa88 (5e:6a88)
-	jr c, asm_17aa91
-	ld de, $20
-	call PlaySFX
-	ret
-
-; known jump sources: 17aa88 (5e:6a88)
-asm_17aa91: ; 17aa91 (5e:6a91)
-	ld de, $19
-	call PlaySFX
-	ret
-
-; known jump sources: 17a8c1 (5e:68c1), 17a8cf (5e:68cf), 17a907 (5e:6907), 17a911 (5e:6911)
-Function17aa98: ; 17aa98 (5e:6a98)
-	ld a, $5
-	ld [$d08b], a
-	call Function17aaa9
-	call Function17aac3
-	ld hl, $d088
-	set 7, [hl]
-	ret
-
-; known jump sources: 17aa9d (5e:6a9d)
-Function17aaa9: ; 17aaa9 (5e:6aa9)
-	ld a, $3
-	call Function17aae3
-	ld c, a
-	ld b, $0
-	ld hl, AttrMap ; $cdd9
-	add hl, bc
-	push hl
-	ld a, $4
-	call Function17aae3
-	ld bc, $14
-	pop hl
-	call AddNTimes
-	ret
-
-; known jump sources: 17aaa0 (5e:6aa0)
-Function17aac3: ; 17aac3 (5e:6ac3)
-	ld a, $b
-	push hl
-	ld [hli], a
-	ld [hli], a
-	pop hl
-	ld de, $14
-	add hl, de
-	ld [hli], a
-	ld [hli], a
-	ret
-
-; known jump sources: 17a878 (5e:6878), 17a87f (5e:687f), 17a886 (5e:6886), 17a88d (5e:688d), 17a894 (5e:6894), 17a89b (5e:689b), 17a8a2 (5e:68a2), 17a8a9 (5e:68a9)
-Function17aad0: ; 17aad0 (5e:6ad0)
-	call Function17aae0
-
-; known jump sources: 17a7c4 (5e:67c4), 17a8d9 (5e:68d9)
-Function17aad3: ; 17aad3 (5e:6ad3)
-	ld [$d089], a
-	ret
-
-; known jump sources: 17a8cc (5e:68cc), 17a904 (5e:6904), 17aae0 (5e:6ae0)
-Function17aad7: ; 17aad7 (5e:6ad7)
-	push af
-	ld a, [$d089]
-	ld [$d08a], a
-	pop af
-	ret
-
-; known jump sources: 17a8e0 (5e:68e0), 17aa2a (5e:6a2a), 17aa35 (5e:6a35), 17aad0 (5e:6ad0)
-Function17aae0: ; 17aae0 (5e:6ae0)
-	call Function17aad7
-
-; known jump sources: 17aaab (5e:6aab), 17aab8 (5e:6ab8)
-Function17aae3: ; 17aae3 (5e:6ae3)
-	push af
-	ld a, [$d08a]
-	ld bc, $d
-	ld hl, $6af7
-	call AddNTimes
-	pop af
-	ld c, a
-	ld b, $0
-	add hl, bc
-	ld a, [hl]
-	ret
-; 17aaf7 (5e:6af7)
-
-INCBIN "baserom.gbc",$17aaf7,$17aba0 - $17aaf7
-
-; known jump sources: 17a6cd (5e:66cd)
-Function17aba0: ; 17aba0 (5e:6ba0)
-	ld a, [rVBK] ; $ff00+$4f
-	push af
-	ld a, $1
-	ld [rVBK], a ; $ff00+$4f
-	ld hl, $9000
-	ld de, $6fa5
-	ld bc, $5e80
-	call Get2bpp
-	pop af
-	ld [rVBK], a ; $ff00+$4f
-	ld hl, $8000
-	ld de, $7465
-	ld bc, $5e05
-	call Get2bpp
-	ld hl, $8050
-	ld de, $601a
-	ld bc, $4504
-	call Get2bpp
-	ret
-
-; known jump sources: 17a6df (5e:66df)
-Function17abcf: ; 17abcf (5e:6bcf)
-	ld a, [rSVBK] ; $ff00+$70
-	push af
-	ld a, $5
-	ld [rSVBK], a ; $ff00+$70
-	ld hl, $6c55
-	ld de, Unkn1Pals ; $d000
-	ld bc, $30
-	call CopyBytes
-	ld hl, $6c95
-	ld de, MartPointer ; $d040 (aliases: Unkn2Pals)
-	ld bc, $40
-	call CopyBytes
-	ld hl, $74b5
-	ld de, $d048
-	ld bc, $10
-	call CopyBytes
-	ld hl, $7471
-	ld de, $d058
-	ld bc, $8
-	ld a, $2
-	call FarCopyBytes
-	pop af
-	ld [rSVBK], a ; $ff00+$70
-	ret
-
-; known jump sources: 17a6d6 (5e:66d6)
-Function17ac0c: ; 17ac0c (5e:6c0c)
-	call Function17ac1d
-	call Function17ac2a
-	ld hl, TileMap ; $c4a0 (aliases: SpritesEnd)
-	ld b, $2
-	ld c, $12
-	call Function17ac46
-	ret
-
-; known jump sources: 17a7e3 (5e:67e3), 17a804 (5e:6804), 17a826 (5e:6826), 17ac0c (5e:6c0c)
-Function17ac1d: ; 17ac1d (5e:6c1d)
-	ld hl, $6cd5
-	ld de, $c4f0
-	ld bc, $118
-	call CopyBytes
-	ret
-
-; known jump sources: 17a7e6 (5e:67e6), 17a807 (5e:6807), 17a829 (5e:6829), 17ac0f (5e:6c0f)
-Function17ac2a: ; 17ac2a (5e:6c2a)
-	ld hl, $6e3d
-	ld de, $ce29
-	ld bc, $118
-	call CopyBytes
-	ld hl, $ce29
-	ld bc, $118
-.asm_17ac3c
-	ld a, [hl]
-	or $8
-	ld [hli], a
-	dec bc
-	ld a, b
-	or c
-	jr nz, .asm_17ac3c
-	ret
-
-; known jump sources: 17a9a5 (5e:69a5), 17ac19 (5e:6c19)
-Function17ac46: ; 17ac46 (5e:6c46)
-	ld a, [$d088]
-	bit 4, a
-	jr nz, .asm_17ac51
-	call TextBox
-	ret
-.asm_17ac51
-	call Function3eea
-	ret
-; 17ac55 (5e:6c55)
-
-INCBIN "baserom.gbc",$17ac55,$17b629 - $17ac55
 
 
 SECTION "bank5F", ROMX, BANK[$5F]
--- /dev/null
+++ b/misc/crystal_misc.asm
@@ -1,0 +1,824 @@
+INCLUDE "includes.asm"
+
+
+SECTION "Misc Crystal", ROMX, BANK[MISC_CRYSTAL]
+
+MobileAdapterGFX:
+INCBIN "gfx/misc/mobile_adapter.2bpp"
+
+
+; no known jump sources
+Function17a68f: ; 17a68f (5e:668f)
+	call Function17a6a8
+	call Function17a751
+	ld hl, $d088
+	bit 5, [hl]
+	jr z, .asm_17a6a6
+	ld de, StringBuffer1 ; $d073
+	push de
+	call Function17a721
+	pop de
+	xor a
+	ret
+.asm_17a6a6
+	scf
+	ret
+
+; known jump sources: 17a68f (5e:668f)
+Function17a6a8: ; 17a6a8 (5e:66a8)
+	push de
+	push bc
+	ld hl, StringBuffer2 ; $d086
+	ld bc, $a
+	xor a
+	call ByteFill
+	ld hl, Buffer1 ; $d1ea (aliases: MagikarpLength)
+	ld bc, $10
+	ld a, $ff
+	call ByteFill
+	pop bc
+	ld a, c
+	and a
+	jr z, .asm_17a6c9
+	ld hl, $d088
+	set 4, [hl]
+.asm_17a6c9
+	pop de
+	call Function17a6f5
+	call Function17aba0
+	callba Function106464
+	call Function17ac0c
+	callba Function104000
+	call Function17abcf
+	callba Function49409
+	callba Function49420
+	call Function32f9
+	call DelayFrame
+	ret
+
+; known jump sources: 17a6ca (5e:66ca)
+Function17a6f5: ; 17a6f5 (5e:66f5)
+	ld hl, Buffer1 ; $d1ea (aliases: MagikarpLength)
+	ld c, $0
+	ld b, $8
+.asm_17a6fc
+	ld a, [de]
+	call Function17a713
+	jr c, .asm_17a70e
+	ld a, [de]
+	swap a
+	call Function17a713
+	jr c, .asm_17a70e
+	inc de
+	dec b
+	jr nz, .asm_17a6fc
+.asm_17a70e
+	ld a, c
+	ld [$d08c], a
+	ret
+
+; known jump sources: 17a6fd (5e:66fd), 17a705 (5e:6705)
+Function17a713: ; 17a713 (5e:6713)
+	and $f
+	cp $a
+	jr nc, .asm_17a71d
+	ld [hli], a
+	inc c
+	and a
+	ret
+.asm_17a71d
+	ld [hl], $ff
+	scf
+	ret
+
+; known jump sources: 17a6a0 (5e:66a0)
+Function17a721: ; 17a721 (5e:6721)
+	push de
+	ld h, d
+	ld l, e
+	ld bc, $8
+	ld a, $ff
+	call ByteFill
+	pop de
+	ld hl, Buffer1 ; $d1ea (aliases: MagikarpLength)
+	ld b, $8
+.asm_17a732
+	ld c, $0
+	ld a, [hli]
+	cp $a
+	jr nc, .asm_17a748
+	ld c, a
+	ld a, [hli]
+	cp $a
+	jr nc, .asm_17a74c
+	swap a
+	or c
+	ld [de], a
+	inc de
+	dec b
+	jr nz, .asm_17a732
+	ret
+.asm_17a748
+	ld a, $ff
+	ld [de], a
+	ret
+.asm_17a74c
+	ld a, $f0
+	or c
+	ld [de], a
+	ret
+
+; known jump sources: 17a692 (5e:6692)
+Function17a751: ; 17a751 (5e:6751)
+	xor a
+	ld [$d087], a
+.asm_17a755
+	call Function17a781
+	call Function17a7ae
+	call Function17a97b
+	call Function17a770
+	call Function17a78f
+	ld hl, $d08f
+	inc [hl]
+	ld a, [$d087]
+	bit 7, a
+	jr z, .asm_17a755
+	ret
+
+; known jump sources: 17a75e (5e:675e)
+Function17a770: ; 17a770 (5e:6770)
+	ld a, [hOAMUpdate] ; $ff00+$d8
+	push af
+	ld a, $1
+	ld [hOAMUpdate], a ; $ff00+$d8
+	call HideSprites
+	call Function17a9cb
+	pop af
+	ld [hOAMUpdate], a ; $ff00+$d8
+	ret
+
+; known jump sources: 17a755 (5e:6755)
+Function17a781: ; 17a781 (5e:6781)
+	ld a, [$FF00+$aa]
+	push af
+	ld a, $1
+	ld [$FF00+$aa], a
+	call Functiona57
+	pop af
+	ld [$FF00+$aa], a
+	ret
+
+; known jump sources: 17a761 (5e:6761)
+Function17a78f: ; 17a78f (5e:678f)
+	ld hl, $d088
+	bit 7, [hl]
+	res 7, [hl]
+	jr nz, .asm_17a79f
+	callba Function10402d
+	ret
+.asm_17a79f
+	callba Function104061
+	ret
+; 17a7a6 (5e:67a6)
+
+INCBIN "baserom.gbc",$17a7a6,$17a7ae - $17a7a6
+
+; known jump sources: 17a758 (5e:6758)
+Function17a7ae: ; 17a7ae (5e:67ae)
+	ld a, [$d087]
+	ld hl, $67b6
+	rst $28
+	ret
+
+; no known jump sources
+Jumptable_17a7b6: ; 17a7b6 (5e:67b6)
+	dw Function17a7c2
+	dw Function17a7cd
+	dw Function17a7d8
+	dw Function17a7ff
+	dw Function17a81a
+	dw Function17a7f4
+
+
+; no known jump sources
+Function17a7c2: ; 17a7c2 (5e:67c2)
+	ld a, $4
+	call Function17aad3
+	ld a, $1
+	ld [$d087], a
+	ret
+
+; no known jump sources
+Function17a7cd: ; 17a7cd (5e:67cd)
+	call Function17a83c
+	call Function17a8ae
+	ret c
+	call Function17a848
+	ret
+
+; no known jump sources
+Function17a7d8: ; 17a7d8 (5e:67d8)
+	call Function17a83c
+	call Function17a848
+	ld hl, $d08b
+	dec [hl]
+	ret nz
+	call Function17ac1d
+	call Function17ac2a
+	ld hl, $d088
+	set 7, [hl]
+	ld a, $1
+	ld [$d087], a
+	ret
+
+; no known jump sources
+Function17a7f4: ; 17a7f4 (5e:67f4)
+	ld hl, $d08b
+	dec [hl]
+	ret nz
+	ld hl, $d087
+	set 7, [hl]
+	ret
+
+; no known jump sources
+Function17a7ff: ; 17a7ff (5e:67ff)
+	ld hl, $d08b
+	dec [hl]
+	ret nz
+	call Function17ac1d
+	call Function17ac2a
+	ld hl, $d088
+	set 7, [hl]
+	ld hl, $d088
+	set 5, [hl]
+	ld hl, $d087
+	set 7, [hl]
+	ret
+
+; no known jump sources
+Function17a81a: ; 17a81a (5e:681a)
+	call Function3c74
+	ret nc
+	ld a, [hJoyPressed] ; $ff00+$a7
+	and $3
+	ret z
+	call Function1c07
+	call Function17ac1d
+	call Function17ac2a
+	ld hl, $d088
+	set 7, [hl]
+	ld hl, $d088
+	res 6, [hl]
+	ld a, $1
+	ld [$d087], a
+	ret
+
+; known jump sources: 17a7cd (5e:67cd), 17a7d8 (5e:67d8)
+Function17a83c: ; 17a83c (5e:683c)
+	ld a, [$FF00+$a9]
+	and $f0
+	ld c, a
+	ld a, [hJoyPressed] ; $ff00+$a7
+	and $b
+	or c
+	ld c, a
+	ret
+
+; known jump sources: 17a7d4 (5e:67d4), 17a7db (5e:67db)
+Function17a848: ; 17a848 (5e:6848)
+	ld a, c
+	and $60
+	cp $60
+	jr z, .asm_17a876
+	ld a, c
+	and $50
+	cp $50
+	jr z, .asm_17a87d
+	ld a, c
+	and $a0
+	cp $a0
+	jr z, .asm_17a884
+	ld a, c
+	and $90
+	cp $90
+	jr z, .asm_17a88b
+	bit 6, c
+	jr nz, .asm_17a892
+	bit 7, c
+	jr nz, .asm_17a899
+	bit 5, c
+	jr nz, .asm_17a8a0
+	bit 4, c
+	jr nz, .asm_17a8a7
+	xor a
+	ret
+.asm_17a876
+	ld a, $9
+	call Function17aad0
+	scf
+	ret
+.asm_17a87d
+	ld a, $a
+	call Function17aad0
+	scf
+	ret
+.asm_17a884
+	ld a, $b
+	call Function17aad0
+	scf
+	ret
+.asm_17a88b
+	ld a, $c
+	call Function17aad0
+	scf
+	ret
+.asm_17a892
+	ld a, $5
+	call Function17aad0
+	scf
+	ret
+.asm_17a899
+	ld a, $6
+	call Function17aad0
+	scf
+	ret
+.asm_17a8a0
+	ld a, $7
+	call Function17aad0
+	scf
+	ret
+.asm_17a8a7
+	ld a, $8
+	call Function17aad0
+	scf
+	ret
+
+; known jump sources: 17a7d0 (5e:67d0)
+Function17a8ae: ; 17a8ae (5e:68ae)
+	bit 1, c
+	jr nz, .asm_17a8bc
+	bit 0, c
+	jr nz, .asm_17a8cc
+	bit 3, c
+	jr nz, .asm_17a8d7
+	xor a
+	ret
+.asm_17a8bc
+	ld a, $b
+	ld [$d08a], a
+	call Function17aa98
+	call Function17a943
+	call Function17aa88
+	scf
+	ret
+.asm_17a8cc
+	call Function17aad7
+	call Function17aa98
+	call Function17a8de
+	scf
+	ret
+.asm_17a8d7
+	ld a, $c
+	call Function17aad3
+	scf
+	ret
+
+; known jump sources: 17a8d2 (5e:68d2)
+Function17a8de: ; 17a8de (5e:68de)
+	ld a, $2
+	call Function17aae0
+	ld a, [hl]
+	cp $f1
+	jr z, .asm_17a8fd
+	cp $f0
+	jr z, .asm_17a904
+	cp $f2
+	jr z, .asm_17a911
+	ld e, a
+	call Function17a964
+	ld a, $2
+	ld [$d087], a
+	call Function17aa88
+	ret
+.asm_17a8fd
+	call Function17a943
+	call Function17aa88
+	ret
+.asm_17a904
+	call Function17aad7
+	call Function17aa98
+	call Function17a91e
+	call Function17aa88
+	ret
+.asm_17a911
+	call Function17aa98
+	ld a, $5
+	ld [$d087], a
+	xor a
+	call Function17aa88
+	ret
+
+; known jump sources: 17a90a (5e:690a)
+Function17a91e: ; 17a91e (5e:691e)
+	ld a, [$d08c]
+	cp $7
+	jr c, .asm_17a92c
+	ld a, $3
+	ld [$d087], a
+	xor a
+	ret
+.asm_17a92c
+	call Function1d6e
+	call Function17a99e
+	ld hl, $d088
+	set 7, [hl]
+	ld hl, $d088
+	set 6, [hl]
+	ld a, $4
+	ld [$d087], a
+	scf
+	ret
+
+; known jump sources: 17a8c4 (5e:68c4), 17a8fd (5e:68fd)
+Function17a943: ; 17a943 (5e:6943)
+	ld a, [$d08c]
+	and a
+	jr z, .asm_17a95d
+	dec a
+	ld [$d08c], a
+	ld c, a
+	ld b, $0
+	ld hl, Buffer1 ; $d1ea (aliases: MagikarpLength)
+	add hl, bc
+	ld [hl], $ff
+	ld a, $2
+	ld [$d087], a
+	and a
+	ret
+.asm_17a95d
+	ld a, $5
+	ld [$d087], a
+	xor a
+	ret
+
+; known jump sources: 17a8f1 (5e:68f1)
+Function17a964: ; 17a964 (5e:6964)
+	ld a, [$d08c]
+	cp $10
+	jr nc, .asm_17a979
+	ld c, a
+	ld b, $0
+	inc a
+	ld [$d08c], a
+	ld hl, Buffer1 ; $d1ea (aliases: MagikarpLength)
+	add hl, bc
+	ld [hl], e
+	and a
+	ret
+.asm_17a979
+	scf
+	ret
+
+; known jump sources: 17a75b (5e:675b)
+Function17a97b: ; 17a97b (5e:697b)
+	ld hl, $c4b5
+	ld bc, $212
+	call ClearBox
+	ld hl, $c4cb
+	ld de, Buffer1 ; $d1ea (aliases: MagikarpLength)
+	ld a, [$d08c]
+	and a
+	ret z
+	ld c, a
+.asm_17a990
+	ld a, [de]
+	inc de
+	cp $a
+	jr nc, .asm_17a99d
+	add $f6
+	ld [hli], a
+	dec c
+	jr nz, .asm_17a990
+	ret
+.asm_17a99d
+	ret
+
+; known jump sources: 17a92f (5e:692f)
+Function17a99e: ; 17a99e (5e:699e)
+	ld hl, $c590
+	ld b, $4
+	ld c, $12
+	call Function17ac46
+	ld hl, $c5ba
+	ld de, $69b2
+	call PlaceString
+	ret
+; 17a9b2 (5e:69b2)
+
+INCBIN "baserom.gbc",$17a9b2,$17a9cb - $17a9b2
+
+; known jump sources: 17a77a (5e:677a)
+Function17a9cb: ; 17a9cb (5e:69cb)
+	ld de, Sprites ; $c400
+	ld hl, $d088
+	bit 6, [hl]
+	jr nz, .asm_17a9df
+	call Function17a9e3
+	call Function17aa22
+	call Function17a9f5
+	ret
+.asm_17a9df
+	call Function17a9e3
+	ret
+
+; known jump sources: 17a9d5 (5e:69d5), 17a9df (5e:69df)
+Function17a9e3: ; 17a9e3 (5e:69e3)
+	ld a, $3
+	ld [$d08e], a
+	ld hl, $6a77
+	ld b, $8
+	ld c, $8
+	ld a, $5
+	call Function17aa4a
+	ret
+
+; known jump sources: 17a9db (5e:69db)
+Function17a9f5: ; 17a9f5 (5e:69f5)
+	ld a, [$d08c]
+	cp $10
+	ret nc
+	ld a, [$d08f]
+	swap a
+	and $1
+	add $1
+	ld [$d08e], a
+	ld a, [$d08c]
+	cp $10
+	jr c, .asm_17aa0f
+	dec a
+.asm_17aa0f
+	ld c, $8
+	call SimpleMultiply
+	add $18
+	ld b, a
+	ld c, $11
+	ld hl, $6a72
+	ld a, $4
+	call Function17aa4a
+	ret
+
+; known jump sources: 17a9d8 (5e:69d8)
+Function17aa22: ; 17aa22 (5e:6a22)
+	ld a, $0
+	ld [$d08e], a
+	push de
+	ld a, $3
+	call Function17aae0
+	add a
+	add a
+	add a
+	add $0
+	push af
+	ld a, $4
+	call Function17aae0
+	add a
+	add a
+	add a
+	add $8
+	ld c, a
+	pop af
+	ld b, a
+	pop de
+	ld a, $0
+	ld hl, $6a77
+	call Function17aa4a
+	ret
+
+; known jump sources: 17a9f1 (5e:69f1), 17aa1e (5e:6a1e), 17aa46 (5e:6a46)
+Function17aa4a: ; 17aa4a (5e:6a4a)
+	ld [$d08d], a
+	ld a, b
+	add $8
+	ld b, a
+	ld a, c
+	add $10
+	ld c, a
+	ld a, [hli]
+.asm_17aa56
+	push af
+	ld a, [hli]
+	add c
+	ld [de], a
+	inc de
+	ld a, [hli]
+	add b
+	ld [de], a
+	inc de
+	ld a, [$d08d]
+	add [hl]
+	inc hl
+	ld [de], a
+	inc de
+	ld a, [$d08e]
+	or [hl]
+	inc hl
+	ld [de], a
+	inc de
+	pop af
+	dec a
+	jr nz, .asm_17aa56
+	ret
+; 17aa72 (5e:6a72)
+
+INCBIN "baserom.gbc",$17aa72,$17aa88 - $17aa72
+
+; known jump sources: 17a8c7 (5e:68c7), 17a8f9 (5e:68f9), 17a900 (5e:6900), 17a90d (5e:690d), 17a91a (5e:691a)
+Function17aa88: ; 17aa88 (5e:6a88)
+	jr c, asm_17aa91
+	ld de, $20
+	call PlaySFX
+	ret
+
+; known jump sources: 17aa88 (5e:6a88)
+asm_17aa91: ; 17aa91 (5e:6a91)
+	ld de, $19
+	call PlaySFX
+	ret
+
+; known jump sources: 17a8c1 (5e:68c1), 17a8cf (5e:68cf), 17a907 (5e:6907), 17a911 (5e:6911)
+Function17aa98: ; 17aa98 (5e:6a98)
+	ld a, $5
+	ld [$d08b], a
+	call Function17aaa9
+	call Function17aac3
+	ld hl, $d088
+	set 7, [hl]
+	ret
+
+; known jump sources: 17aa9d (5e:6a9d)
+Function17aaa9: ; 17aaa9 (5e:6aa9)
+	ld a, $3
+	call Function17aae3
+	ld c, a
+	ld b, $0
+	ld hl, AttrMap ; $cdd9
+	add hl, bc
+	push hl
+	ld a, $4
+	call Function17aae3
+	ld bc, $14
+	pop hl
+	call AddNTimes
+	ret
+
+; known jump sources: 17aaa0 (5e:6aa0)
+Function17aac3: ; 17aac3 (5e:6ac3)
+	ld a, $b
+	push hl
+	ld [hli], a
+	ld [hli], a
+	pop hl
+	ld de, $14
+	add hl, de
+	ld [hli], a
+	ld [hli], a
+	ret
+
+; known jump sources: 17a878 (5e:6878), 17a87f (5e:687f), 17a886 (5e:6886), 17a88d (5e:688d), 17a894 (5e:6894), 17a89b (5e:689b), 17a8a2 (5e:68a2), 17a8a9 (5e:68a9)
+Function17aad0: ; 17aad0 (5e:6ad0)
+	call Function17aae0
+
+; known jump sources: 17a7c4 (5e:67c4), 17a8d9 (5e:68d9)
+Function17aad3: ; 17aad3 (5e:6ad3)
+	ld [$d089], a
+	ret
+
+; known jump sources: 17a8cc (5e:68cc), 17a904 (5e:6904), 17aae0 (5e:6ae0)
+Function17aad7: ; 17aad7 (5e:6ad7)
+	push af
+	ld a, [$d089]
+	ld [$d08a], a
+	pop af
+	ret
+
+; known jump sources: 17a8e0 (5e:68e0), 17aa2a (5e:6a2a), 17aa35 (5e:6a35), 17aad0 (5e:6ad0)
+Function17aae0: ; 17aae0 (5e:6ae0)
+	call Function17aad7
+
+; known jump sources: 17aaab (5e:6aab), 17aab8 (5e:6ab8)
+Function17aae3: ; 17aae3 (5e:6ae3)
+	push af
+	ld a, [$d08a]
+	ld bc, $d
+	ld hl, $6af7
+	call AddNTimes
+	pop af
+	ld c, a
+	ld b, $0
+	add hl, bc
+	ld a, [hl]
+	ret
+; 17aaf7 (5e:6af7)
+
+INCBIN "baserom.gbc",$17aaf7,$17aba0 - $17aaf7
+
+; known jump sources: 17a6cd (5e:66cd)
+Function17aba0: ; 17aba0 (5e:6ba0)
+	ld a, [rVBK] ; $ff00+$4f
+	push af
+	ld a, $1
+	ld [rVBK], a ; $ff00+$4f
+	ld hl, $9000
+	ld de, $6fa5
+	ld bc, $5e80
+	call Get2bpp
+	pop af
+	ld [rVBK], a ; $ff00+$4f
+	ld hl, $8000
+	ld de, $7465
+	ld bc, $5e05
+	call Get2bpp
+	ld hl, $8050
+	ld de, $601a
+	ld bc, $4504
+	call Get2bpp
+	ret
+
+; known jump sources: 17a6df (5e:66df)
+Function17abcf: ; 17abcf (5e:6bcf)
+	ld a, [rSVBK] ; $ff00+$70
+	push af
+	ld a, $5
+	ld [rSVBK], a ; $ff00+$70
+	ld hl, $6c55
+	ld de, Unkn1Pals ; $d000
+	ld bc, $30
+	call CopyBytes
+	ld hl, $6c95
+	ld de, MartPointer ; $d040 (aliases: Unkn2Pals)
+	ld bc, $40
+	call CopyBytes
+	ld hl, $74b5
+	ld de, $d048
+	ld bc, $10
+	call CopyBytes
+	ld hl, $7471
+	ld de, $d058
+	ld bc, $8
+	ld a, $2
+	call FarCopyBytes
+	pop af
+	ld [rSVBK], a ; $ff00+$70
+	ret
+
+; known jump sources: 17a6d6 (5e:66d6)
+Function17ac0c: ; 17ac0c (5e:6c0c)
+	call Function17ac1d
+	call Function17ac2a
+	ld hl, TileMap ; $c4a0 (aliases: SpritesEnd)
+	ld b, $2
+	ld c, $12
+	call Function17ac46
+	ret
+
+; known jump sources: 17a7e3 (5e:67e3), 17a804 (5e:6804), 17a826 (5e:6826), 17ac0c (5e:6c0c)
+Function17ac1d: ; 17ac1d (5e:6c1d)
+	ld hl, $6cd5
+	ld de, $c4f0
+	ld bc, $118
+	call CopyBytes
+	ret
+
+; known jump sources: 17a7e6 (5e:67e6), 17a807 (5e:6807), 17a829 (5e:6829), 17ac0f (5e:6c0f)
+Function17ac2a: ; 17ac2a (5e:6c2a)
+	ld hl, $6e3d
+	ld de, $ce29
+	ld bc, $118
+	call CopyBytes
+	ld hl, $ce29
+	ld bc, $118
+.asm_17ac3c
+	ld a, [hl]
+	or $8
+	ld [hli], a
+	dec bc
+	ld a, b
+	or c
+	jr nz, .asm_17ac3c
+	ret
+
+; known jump sources: 17a9a5 (5e:69a5), 17ac19 (5e:6c19)
+Function17ac46: ; 17ac46 (5e:6c46)
+	ld a, [$d088]
+	bit 4, a
+	jr nz, .asm_17ac51
+	call TextBox
+	ret
+.asm_17ac51
+	call Function3eea
+	ret
+; 17ac55 (5e:6c55)
+
+INCBIN "baserom.gbc",$17ac55,$17b629 - $17ac55
+
+