shithub: pokecrystal

Download patch

ref: d39dc68a8836a10e728030961de88ddcb2ffffec
parent: 59cb57b9545e1aaba5d45f1a627abf082edea7a9
author: yenatch <[email protected]>
date: Thu Aug 1 01:34:10 EDT 2013

field move asm

--- a/main.asm
+++ b/main.asm
@@ -17196,7 +17196,7 @@
 ; 5d23
 
 Function5d23: ; 5d23
-	call $610f
+	call Function610f
 	ld a, $2
 	ld hl, $4029
 	rst FarCall
@@ -17582,11 +17582,11 @@
 	ld [CurPartySpecies], a
 	ld a, POKEMON_PROF
 	ld [TrainerClass], a
-	call $619c
+	call Function619c
 
 	ld b, $1c
 	call GetSGBLayout
-	call $616a
+	call Function616a
 
 	ld hl, OakText1
 	call PrintText
@@ -17607,7 +17607,7 @@
 
 	ld b, $1c
 	call GetSGBLayout
-	call $6182
+	call Function6182
 
 	ld hl, OakText2
 	call PrintText
@@ -17620,11 +17620,11 @@
 	ld [CurPartySpecies], a
 	ld a, POKEMON_PROF
 	ld [TrainerClass], a
-	call $619c
+	call Function619c
 
 	ld b, $1c
 	call GetSGBLayout
-	call $616a
+	call Function616a
 
 	ld hl, OakText5
 	call PrintText
@@ -17637,7 +17637,7 @@
 
 	ld b, $1c
 	call GetSGBLayout
-	call $616a
+	call Function616a
 
 	ld hl, OakText6
 	call PrintText
@@ -17685,7 +17685,7 @@
 	ld a, [$cfa9]
 	dec a
 	jr z, .NewName
-	call $60fa
+	call Function60fa
 	ld a, $2
 	ld hl, $4c1d
 	rst FarCall
@@ -17731,8 +17731,82 @@
 	db "KRIS@@@@@@@"
 ; 60e9
 
-INCBIN "baserom.gbc", $60e9, $617c - $60e9
+Function60e9: ; 60e9
+	call Function1d35
+	call Function1d81
+	ld a, [$cfa9]
+	dec a
+	call Function1db8
+	call Function1c17
+	ret
+; 60fa
 
+Function60fa: ; 60fa
+	ld a, $50
+	ld bc, $000b
+	ld hl, PlayerName
+	call ByteFill
+	ld hl, PlayerName
+	ld de, StringBuffer2
+	call CopyName2
+	ret
+; 610f
+
+Function610f: ; 610f
+	ld a, [hROMBank]
+	push af
+	ld a, $20
+	ld [MusicFade], a
+	ld de, MUSIC_NONE
+	ld a, e
+	ld [MusicFadeIDLo], a
+	ld a, d
+	ld [MusicFadeIDHi], a
+	ld de, SFX_ESCAPE_ROPE
+	call StartSFX
+	pop af
+	rst Bankswitch
+
+	ld c, $8
+	call DelayFrames
+	ld hl, $5249
+	ld b, $13
+	call Function61b4
+	ld c, $8
+	call DelayFrames
+	ld hl, $52d9
+	ld b, $13
+	call Function61b4
+	ld c, $8
+	call DelayFrames
+	ld hl, $c50a
+	ld b, $7
+	ld c, $7
+	call ClearBox
+	ld c, $3
+	call DelayFrames
+	call $61cd
+	call Functione5f
+	ld c, $32
+	call DelayFrames
+	call Function4b6
+	call ClearTileMap
+	ret
+; 616a
+
+Function616a: ; 616a
+	ld hl, IntroFadePalettes
+	ld b, $6
+.asm_616f
+	ld a, [hli]
+	call DmgToCgbBGPals
+	ld c, $a
+	call DelayFrames
+	dec b
+	jr nz, .asm_616f
+	ret
+; 617c
+
 IntroFadePalettes: ; 0x617c
 	db %01010100
 	db %10101000
@@ -17742,9 +17816,91 @@
 	db %11100100
 ; 6182
 
-INCBIN "baserom.gbc", $6182, $620b - $6182
+Function6182: ; 6182
+	ld a, $77
+	ld [$ffd1], a
+	call DelayFrame
+	ld a, $e4
+	call DmgToCgbBGPals
+.asm_618e
+	call DelayFrame
+	ld a, [$ffd1]
+	sub $8
+	cp $ff
+	ret z
+	ld [$ffd1], a
+	jr .asm_618e
+; 619c
 
+Function619c: ; 619c
+	ld de, VTiles2
+	callba Function5120d
+	xor a
+	ld [$ffad], a
+	ld hl, $c4f6
+	ld bc, $0707
+	ld a, $13
+	call Predef
+	ret
+; 61b4
 
+Function61b4: ; 61b4
+	ld de, VTiles2
+	ld c, $31
+	ld a, $40
+	call Predef
+	xor a
+	ld [$ffad], a
+	ld hl, $c4f6
+	ld bc, $0707
+	ld a, $13
+	call Predef
+	ret
+; 61cd
+
+Function61cd: ; 61cd
+	callba GetPlayerIcon
+	ld c, $c
+	ld hl, VTiles0
+	call Functioneba
+	ld hl, Sprites
+	ld de, .data_61fe
+	ld a, [de]
+	inc de
+	ld c, a
+.asm_61e4
+	ld a, [de]
+	inc de
+	ld [hli], a
+	ld a, [de]
+	inc de
+	ld [hli], a
+	ld a, [de]
+	inc de
+	ld [hli], a
+	ld b, $0
+	ld a, [PlayerGender]
+	bit 0, a
+	jr z, .asm_61f8
+	ld b, $1
+
+.asm_61f8
+	ld a, b
+	ld [hli], a
+	dec c
+	jr nz, .asm_61e4
+	ret
+; 61fe
+
+.data_61fe ; 61fe
+	db 4
+	db $4c, $48, $00
+	db $4c, $50, $01
+	db $54, $48, $02
+	db $54, $50, $03
+; 620b
+
+
 Function620b: ; 620b
 	ld hl, $4579
 	ld a, $39
@@ -17790,8 +17946,8 @@
 
 .asm_625e
 	ld e, a
-	ld d, $0
-	ld hl, $626a
+	ld d, 0
+	ld hl, .data_626a
 	add hl, de
 	add hl, de
 	ld a, [hli]
@@ -17800,8 +17956,15 @@
 	jp [hl]
 ; 626a
 
-INCBIN "baserom.gbc", $626a, $6274 - $626a
+.data_626a
+	dw Function5ae8
+	dw Function6389
+	dw Function620b
+	dw Function620b
+	dw Function6392
+; 6274
 
+
 FarStartTitleScreen: ; 6274
 	callba StartTitleScreen
 	ret
@@ -17824,13 +17987,22 @@
 	ret
 ; 6292
 
-INCBIN "baserom.gbc", $6292, $62a3 - $6292
+Function6292: ; 6292
+	ld a, [$ff9b]
+	and $7
+	ret nz
+	ld hl, $d15f
+	ld a, [hl]
+	dec a
+	ld bc, $0028
+	call ByteFill
+	ret
+; 62a3
 
-
 Function62a3: ; 62a3
 	ld e, a
-	ld d, $0
-	ld hl, $62af
+	ld d, 0
+	ld hl, .data_62af
 	add hl, de
 	add hl, de
 	ld a, [hli]
@@ -17839,8 +18011,20 @@
 	jp [hl]
 ; 62af
 
-INCBIN "baserom.gbc", $62af, $62bc - $62af
+.data_62af
+	dw TitleScreenEntrance
+	dw Function62f6
+	dw Function6304
+	dw Function6375
+; 62b7
 
+Function62b7: ; 62b7
+	ld hl, $cf63
+	inc [hl]
+	ret
+; 62bc
+
+
 TitleScreenEntrance: ; 62bc
 
 ; Animate the logo:
@@ -17850,19 +18034,19 @@
 	jr z, .done
 	sub 4
 	ld [$ffcf], a
-	
+
 ; Lay out a base (all lines scrolling together).
 	ld e, a
 	ld hl, $d100
 	ld bc, 8 * 10 ; logo height
 	call ByteFill
-	
+
 ; Alternate signage for each line's position vector.
 ; This is responsible for the interlaced effect.
 	ld a, e
 	xor $ff
 	inc a
-	
+
 	ld b, 8 * 10 / 2 ; logo height / 2
 	ld hl, $d101
 .loop
@@ -17870,11 +18054,10 @@
 	inc hl
 	dec b
 	jr nz, .loop
-	
+
 	callba AnimateTitleCrystal
 	ret
-	
-	
+
 .done
 ; Next scene
 	ld hl, $cf63
@@ -17885,19 +18068,168 @@
 ; Play the title screen music.
 	ld de, MUSIC_TITLE
 	call StartMusic
-	
+
 	ld a, $88
 	ld [$ffd2], a
 	ret
 ; 62f6
 
-INCBIN "baserom.gbc", $62f6, $63e2 - $62f6
 
+Function62f6: ; 62f6
+	ld hl, $cf63
+	inc [hl]
+	ld hl, $cf65
+	ld de, $1140
+	ld [hl], e
+	inc hl
+	ld [hl], d
+	ret
+; 6304
 
+Function6304: ; 6304
+	ld hl, $cf65
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	ld a, e
+	or d
+	jr z, .asm_6355
+	dec de
+	ld [hl], d
+	dec hl
+	ld [hl], e
+	call GetJoypadPublic
+	ld hl, hJoyDown
+	ld a, [hl]
+	and $46
+	cp $46
+	jr z, .asm_634a
+	ld a, [$ffeb]
+	cp $34
+	jr z, .asm_6332
+	ld a, [hl]
+	and $86
+	cp $86
+	jr nz, .asm_6340
+	ld a, $34
+	ld [$ffeb], a
+	jr .asm_6340
+
+.asm_6332
+	bit 2, [hl]
+	jr nz, .asm_6340
+	xor a
+	ld [$ffeb], a
+	ld a, [hl]
+	and $60
+	cp $60
+	jr z, .asm_636a
+
+.asm_6340
+	ld a, [hl]
+	and $9
+	jr nz, .asm_6346
+	ret
+
+.asm_6346
+	ld a, $0
+	jr .asm_634c
+
+.asm_634a
+	ld a, $1
+
+.asm_634c
+	ld [$cf64], a
+	ld hl, $cf63
+	set 7, [hl]
+	ret
+
+.asm_6355
+	ld hl, $cf63
+	inc [hl]
+	xor a
+	ld [MusicFadeIDLo], a
+	ld [MusicFadeIDHi], a
+	ld hl, MusicFade
+	ld [hl], $8
+	ld hl, $cf65
+	inc [hl]
+	ret
+
+.asm_636a
+	ld a, $4
+	ld [$cf64], a
+	ld hl, $cf63
+	set 7, [hl]
+	ret
+; 6375
+
+Function6375: ; 6375
+	ld hl, $cf65
+	inc [hl]
+	ld a, [MusicFade]
+	and a
+	ret nz
+	ld a, $2
+	ld [$cf64], a
+	ld hl, $cf63
+	set 7, [hl]
+	ret
+; 6389
+
+Function6389: ; 6389
+	ld a, $13
+	ld hl, $554c
+	rst FarCall
+	jp Function17d
+; 6392
+
+Function6392: ; 6392
+	ld a, $13
+	ld hl, $53b1
+	rst FarCall
+	jp Function17d
+; 639b
+
+Function639b: ; 639b
+	ld a, [$cf65]
+	and $3
+	ret nz
+	ld bc, $c3a4
+	ld hl, $000a
+	add hl, bc
+	ld l, [hl]
+	ld h, 0
+	add hl, hl
+	add hl, hl
+	ld de, Data63ca
+	add hl, de
+	ld a, [$cf65]
+	and $4
+	srl a
+	srl a
+	ld e, a
+	ld d, 0
+	add hl, de
+	add hl, de
+	ld a, [hli]
+	and a
+	ret z
+	ld e, a
+	ld d, [hl]
+	ld a, $1
+	call Function3b2a
+	ret
+; 63ca
+
+Data63ca: ; 63ca
+INCBIN "baserom.gbc", $63ca, $63e2 - $63ca
+
+
 Function63e2: ; 63e2
 	call ClearTileMap
 	call Functione5f
-	ld de, Function4000
+	ld de, $4000
 	ld hl, $9600
 	ld bc, $391d
 	call Functioneba
@@ -17906,9 +18238,17 @@
 	jp PlaceString
 ; 63fd
 
-INCBIN "baserom.gbc", $63fd, $642e - $63fd
+; 63fd
+	db $60, $61, $62, $63, $64, $65, $66
+	db $67, $68, $69, $6a, $6b, $6c, $4e
 
+	db $60, $61, $62, $63, $64, $65, $66, $6d
+	db $6e, $6f, $70, $71, $72, $7a, $7b, $7c, $4e
 
+	db $60, $61, $62, $63, $64, $65, $66, $73, $74
+	db $75, $76, $77, $78, $79, $7a, $7b, $7c, "@"
+; 642e
+
 Function642e: ; 642e
 	ld a, $5
 	ld hl, $4f1c
@@ -19630,9 +19970,54 @@
 	ret
 ; 8ade
 
-INCBIN "baserom.gbc", $8ade, $8d55 - $8ade
+INCBIN "baserom.gbc", $8ade, $8cb4 - $8ade
 
+Function8cb4: ; 8cb4
+	ld l, e
+	ld h, $0
+	add hl, hl
+	add hl, hl
+	add hl, hl
+	ld de, $4d05
+	add hl, de
+	call Function8d55
+	jr nz, .asm_8cf0
+	push hl
+	ld hl, $5ce6
+	ld de, $cda9
+	ld bc, $0010
+	call CopyBytes
+	pop hl
+	inc hl
+	inc hl
+	ld a, [hli]
+	ld [$cdac], a
+	ld a, [hli]
+	ld [$cdad], a
+	ld a, [hli]
+	ld [$cdae], a
+	ld a, [hli]
+	ld [$cdaf], a
+	ld hl, $cda9
+	call $5809
+	ld hl, $5a86
+	call $5809
+	ret
 
+.asm_8cf0
+	ld de, $d000
+	ld bc, $0008
+	ld a, $5
+	call Function306b
+	call Function96a4
+	call Function9699
+	call $56b3
+	ret
+; 8d05
+
+INCBIN "baserom.gbc", $8d05, $8d55 - $8d05
+
+
 Function8d55: ; 8d55
 	ld a, [hCGB]
 	and a
@@ -19726,9 +20111,53 @@
 	ret
 ; 96b3
 
-INCBIN "baserom.gbc", $96b3, $971a - $96b3
+Function96b3: ; 96b3
+	ld a, [rLCDC]
+	bit 7, a
+	jr z, .asm_96d0
+	ld a, [hBGMapMode]
+	push af
+	ld a, $2
+	ld [hBGMapMode], a
+	call DelayFrame
+	call DelayFrame
+	call DelayFrame
+	call DelayFrame
+	pop af
+	ld [hBGMapMode], a
+	ret
 
+.asm_96d0
+	ld hl, AttrMap
+	ld de, VBGMap0
+	ld b, $12
+	ld a, $1
+	ld [rVBK], a
+.asm_96dc
+	ld c, $14
+.asm_96de
+	ld a, [hli]
+	ld [de], a
+	inc de
+	dec c
+	jr nz, .asm_96de
+	ld a, $c
+	add e
+	jr nc, .asm_96ea
+	inc d
 
+.asm_96ea
+	ld e, a
+	dec b
+	jr nz, .asm_96dc
+	ld a, $0
+	ld [rVBK], a
+	ret
+; 96f3
+
+INCBIN "baserom.gbc", $96f3, $971a - $96f3
+
+
 Function971a: ; 971a
 	ld hl, $7681
 	ld de, $d040
@@ -19738,9 +20167,64 @@
 	ret
 ; 9729
 
-INCBIN "baserom.gbc", $9729, $9890 - $9729
+INCBIN "baserom.gbc", $9729, $9809 - $9729
 
+Function9809: ; 9809
+	ld a, [$cfbe]
+	push af
+	set 7, a
+	ld [$cfbe], a
+	call $581a
+	pop af
+	ld [$cfbe], a
+	ret
+; 981a
 
+Function981a: ; 981a
+	ld a, [hl]
+	and $7
+	ret z
+	ld b, a
+.asm_981f
+	push bc
+	xor a
+	ld [rJOYP], a
+	ld a, $30
+	ld [rJOYP], a
+	ld b, $10
+.asm_9829
+	ld e, $8
+	ld a, [hli]
+	ld d, a
+.asm_982d
+	bit 0, d
+	ld a, $10
+	jr nz, .asm_9835
+	ld a, $20
+
+.asm_9835
+	ld [rJOYP], a
+	ld a, $30
+	ld [rJOYP], a
+	rr d
+	dec e
+	jr nz, .asm_982d
+	dec b
+	jr nz, .asm_9829
+	ld a, $20
+	ld [rJOYP], a
+	ld a, $30
+	ld [rJOYP], a
+	call $5a7a
+	pop bc
+	dec b
+	jr nz, .asm_981f
+	ret
+; 9853
+
+INCBIN "baserom.gbc", $9853, $9890 - $9853
+
+
 Function9890: ; 9890
 	call Function8d55
 	ret z
@@ -19843,8 +20327,21 @@
 	ret
 ; 0x9a7a
 
-INCBIN "baserom.gbc", $9a7a, $a51e - $9a7a
+Function9a7a: ; 9a7a
+	ld de, $1b58
+.asm_9a7d
+	nop
+	nop
+	nop
+	dec de
+	ld a, d
+	or e
+	jr nz, .asm_9a7d
+	ret
+; 9a86
 
+INCBIN "baserom.gbc", $9a86, $a51e - $9a86
+
 SGBBorder:
 INCBIN "gfx/misc/sgb_border.2bpp"
 
@@ -20558,9 +21055,86 @@
 	ret
 ; c779
 
-INCBIN "baserom.gbc", $c779, $c986 - $c779
+Functionc779: ; c779
+	ld hl, $4780
+	call Function1d67
+	ret
+; c780
 
+INCBIN "baserom.gbc", $c780, $c785 - $c780
 
+Functionc785: ; c785
+	call Functionc6ea
+.asm_c788
+	ld hl, $4796
+	call Functionc6f5
+	jr nc, .asm_c788
+	and $7f
+	ld [$d0ec], a
+	ret
+; c796
+
+INCBIN "baserom.gbc", $c796, $c8ac - $c796
+
+Functionc8ac: ; c8ac
+	call Functionc8b5
+	and $7f
+	ld [$d0ec], a
+	ret
+; c8b5
+
+Functionc8b5: ; c8b5
+	ld de, $001b
+	ld a, $3
+	ld hl, $4731
+	rst FarCall
+	jr c, .asm_c8dd
+	push hl
+	ld a, $22
+	ld hl, $6e30
+	rst FarCall
+	pop hl
+	jr c, .asm_c8d1
+	ld a, [$d847]
+	cp $ff
+	jr nz, .asm_c8d7
+
+.asm_c8d1
+	call $48e0
+	ld a, $81
+	ret
+
+.asm_c8d7
+	call $4779
+	ld a, $80
+	ret
+
+.asm_c8dd
+	ld a, $80
+	ret
+; c8e0
+
+Functionc8e0: ; c8e0
+	ld hl, $48e6
+	jp Function31cd
+; c8e6
+
+INCBIN "baserom.gbc", $c8e6, $c909 - $c8e6
+
+Functionc909: ; c909
+	call Functionc6ea
+.asm_c90c
+	ld hl, $491a
+	call Functionc6f5
+	jr nc, .asm_c90c
+	and $7f
+	ld [$d0ec], a
+	ret
+; c91a
+
+INCBIN "baserom.gbc", $c91a, $c986 - $c91a
+
+
 UsedSurfScript: ; c986
 	2writetext UsedSurfText ; "used SURF!"
 	closetext
@@ -20717,9 +21291,127 @@
 ; ca3b
 
 
-INCBIN "baserom.gbc", $ca3b, $cb95 - $ca3b
+Functionca3b: ; ca3b
+	call Functionc6ea
+.asm_ca3e
+	ld hl, .data_ca4c
+	call Functionc6f5
+	jr nc, .asm_ca3e
+	and $7f
+	ld [$d0ec], a
+	ret
+; ca4c
 
+.data_ca4c
+ 	dw Functionca52
+ 	dw Functionca94
+ 	dw Functionca9d
+; ca52
 
+
+Functionca52: ; ca52
+; Fly
+	ld de, $0020 ; storm badge
+	call CheckBadge
+	jr c, .asm_ca85
+	call GetMapPermission
+	call CheckOutdoorMap
+	jr z, .asm_ca64
+	jr .asm_ca88
+
+.asm_ca64
+	xor a
+	ld [$ffde], a
+	call Function1d6e
+	call ClearSprites
+	callba Function91af3
+	ld a, e
+	cp $ff
+	jr z, .asm_ca8b
+	cp $1c
+	jr nc, .asm_ca8b
+	ld [$d001], a
+	call Function1c17
+	ld a, $1
+	ret
+
+.asm_ca85
+	ld a, $82
+	ret
+
+.asm_ca88
+	ld a, $2
+	ret
+
+.asm_ca8b
+	call Function1c17
+	call WaitBGMap
+	ld a, $80
+	ret
+; ca94
+
+Functionca94: ; ca94
+	ld hl, Datacaa3
+	call Function31cd
+	ld a, $81
+	ret
+; ca9d
+
+Functionca9d: ; ca9d
+	call Functionc779
+	ld a, $82
+	ret
+; caa3
+
+Datacaa3: ; caa3
+INCBIN "baserom.gbc", $caa3, $cade - $caa3
+
+Functioncade: ; cade
+	call Functioncae7
+	and $7f
+	ld [$d0ec], a
+	ret
+; cae7
+
+Functioncae7: ; cae7
+	ld de, $0022
+	ld a, $3
+	ld hl, $4731
+	rst FarCall
+	ld a, $80
+	ret c
+	call $4b07
+	jr c, .asm_cb01
+	ld hl, $4b1c
+	call Function31cd
+	ld a, $81
+	ret
+
+.asm_cb01
+	call $4779
+	ld a, $80
+	ret
+; cb07
+
+Functioncb07: ; cb07
+	ld a, [PlayerDirection]
+	and $c
+	cp $4
+	jr nz, .asm_cb1a
+	ld a, [TileUp]
+	call CheckWaterfallTile
+	jr nz, .asm_cb1a
+	xor a
+	ret
+
+.asm_cb1a
+	scf
+	ret
+; cb1c
+
+INCBIN "baserom.gbc", $cb1c, $cb95 - $cb1c
+
+
 Functioncb95: ; cb95
 	call Functionc6ea
 	ld a, $1
@@ -20739,9 +21431,145 @@
 	ret
 ; cbb2
 
-INCBIN "baserom.gbc", $cbb2, $cf8e - $cbb2
+INCBIN "baserom.gbc", $cbb2, $cc61 - $cbb2
 
+Functioncc61: ; cc61
+	call Functionc6ea
+.asm_cc64
+	ld hl, $4c72
+	call Functionc6f5
+	jr nc, .asm_cc64
+	and $7f
+	ld [$d0ec], a
+	ret
+; cc72
 
+INCBIN "baserom.gbc", $cc72, $cce5 - $cc72
+
+Functioncce5: ; cce5
+	call $4cee
+	and $7f
+	ld [$d0ec], a
+	ret
+; ccee
+
+Functionccee: ; ccee
+	ld de, $001d
+	call CheckBadge
+	jr c, .asm_cd06
+	jr .asm_cd09
+
+	ld hl, .data_cd01
+	call Function1d67
+	ld a, $80
+	ret
+
+.data_cd01
+	db $16
+	db $51
+	db $47
+	db $70
+	db $50
+
+.asm_cd06
+	ld a, $80
+	ret
+
+.asm_cd09
+	ld hl, $4d29
+	call Function31cd
+	ld a, $81
+	ret
+; cd12
+
+INCBIN "baserom.gbc", $cd12, $cd9d - $cd12
+
+Functioncd9d: ; cd9d
+	call Functionc6ea
+.asm_cda0
+	ld hl, $4dae
+	call Functionc6f5
+	jr nc, .asm_cda0
+	and $7f
+	ld [$d0ec], a
+	ret
+; cdae
+
+INCBIN "baserom.gbc", $cdae, $ce7d - $cdae
+
+Functionce7d: ; ce7d
+	call $4e86
+	and $7f
+	ld [$d0ec], a
+	ret
+; ce86
+
+Functionce86: ; ce86
+	call GetFacingTileCoord
+	call Function189a
+	jr nz, .asm_ce97
+	ld hl, $4ea7
+	call Function31cd
+	ld a, $81
+	ret
+
+.asm_ce97
+	call $4779
+	ld a, $80
+	ret
+; ce9d
+
+INCBIN "baserom.gbc", $ce9d, $ceeb - $ce9d
+
+Functionceeb: ; ceeb
+	call $4ef4
+	and $7f
+	ld [$d0ec], a
+	ret
+; cef4
+
+Functioncef4: ; cef4
+	call $4f0d
+	jr c, .asm_cf07
+	ld a, d
+	cp $18
+	jr nz, .asm_cf07
+	ld hl, $4f2e
+	call Function31cd
+	ld a, $81
+	ret
+
+.asm_cf07
+	call $4779
+	ld a, $80
+	ret
+; cf0d
+
+Functioncf0d: ; cf0d
+	callba CheckFacingObject
+	jr nc, .asm_cf2c
+	ld a, [hConnectedMapWidth]
+	call Function1ae5
+	ld hl, $0001
+	add hl, bc
+	ld a, [hl]
+	ld [$ffe0], a
+	call GetMapObject
+	ld hl, $0004
+	add hl, bc
+	ld a, [hl]
+	ld d, a
+	and a
+	ret
+
+.asm_cf2c
+	scf
+	ret
+; cf2e
+
+INCBIN "baserom.gbc", $cf2e, $cf8e - $cf2e
+
+
 Functioncf8e: ; cf8e
 	ld a, e
 	push af
@@ -22819,9 +23647,23 @@
 	ret
 ; 0xe5bb
 
-INCBIN "baserom.gbc", $e5bb, $e6ce - $e5bb
+Functione5bb: ; e5bb
+	ld a, [CurPartyMon]
+	ld hl, $ad26
+	ld bc, $0020
+	call AddNTimes
+	ld de, TempMonSpecies
+	ld bc, $0020
+	ld a, $1
+	call GetSRAMBank
+	call CopyBytes
+	call CloseSRAM
+	ret
+; e5d9
 
+INCBIN "baserom.gbc", $e5d9, $e6ce - $e5d9
 
+
 Functione6ce: ; e6ce
 	ld a, [$df9c]
 	and a
@@ -24780,26 +25622,26 @@
 	ret
 
 .Actions
-	dbw $01, $6e1b
-	dbw $02, $6e30
-	dbw $03, $6ebd
-	dbw $04, $6e6a
-	dbw $06, $6e55
-	dbw $07, $6e7f
-	dbw $08, $6ed1
-	dbw $09, $6ea9
-	dbw $0a, $6ee6
-	dbw $0d, $6ee6
-	dbw $0b, $6f26
-	dbw $05, $6e94
-	dbw $0c, $6f3b
-	dbw $0e, $6f50
-	dbw $0f, OpenPartyStats
-	dbw $10, SwitchPartyMons
-	dbw $11, GiveTakePartyMonItem
-	dbw $12, CancelPokemonAction
-	dbw $13, $6fba ; move
-	dbw $14, $6d45 ; mail
+	dbw  1, Function12e1b ; Cut
+	dbw  2, Function12e30 ; Fly
+	dbw  3, Function12ebd ; Surf
+	dbw  4, Function12e6a ; Strength
+	dbw  6, Function12e55 ; Flash
+	dbw  7, Function12e7f ; Whirlpool
+	dbw  8, Function12ed1 ; Dig
+	dbw  9, Function12ea9 ; Teleport
+	dbw 10, Function12ee6 ; Softboiled
+	dbw 13, Function12ee6 ; MilkDrink
+	dbw 11, Function12f26 ; Headbutt
+	dbw  5, Function12e94 ; Flash
+	dbw 12, Function12f3b ; RockSmash
+	dbw 14, Function12f50 ; SweetScent
+	dbw 15, OpenPartyStats
+	dbw 16, SwitchPartyMons
+	dbw 17, GiveTakePartyMonItem
+	dbw 18, CancelPokemonAction
+	dbw 19, Function12fba ; move
+	dbw 20, Function12d45 ; mail
 ; 12aec
 
 
@@ -25134,9 +25976,94 @@
 ; 12cdf
 
 
-INCBIN "baserom.gbc", $12cdf, $12e00 - $12cdf
+Function12cdf: ; 12cdf
+	ld a, $1
+	ld [$d10c], a
+	ld hl, NumItems
+	jp Function2f66
+; 12cea
 
+INCBIN "baserom.gbc", $12cea, $12cf5 - $12cea
 
+Function12cf5: ; 12cf5
+	call Function1d4f
+	call Function1dcf
+	jp Function1c07
+; 12cfe
+
+INCBIN "baserom.gbc", $12cfe, $12d45 - $12cfe
+
+Function12d45: ; 12d45
+	ld a, [InLinkBattle]
+	cp $1
+	jr z, .asm_12d6d
+	cp $2
+	jr z, .asm_12d6d
+	ld hl, $6dc9
+	call Function1d35
+	call Function1d81
+	call Function1c07
+	jp c, $6dc6
+	ld a, [$cfa9]
+	cp $1
+	jr z, .asm_12d6d
+	cp $2
+	jr z, .asm_12d76
+	jp $6dc6
+
+.asm_12d6d
+	ld a, $2e
+	ld hl, $5229
+	rst FarCall
+	ld a, $0
+	ret
+
+.asm_12d76
+	ld hl, $6df1
+	call $6cf5
+	jr c, .asm_12d9a
+	ld a, [CurPartyMon]
+	ld b, a
+	callba Function4456e
+	jr c, .asm_12d92
+	ld hl, $6dfb
+	call Function1d67
+	jr .asm_12dc6
+
+.asm_12d92
+	ld hl, $6df6
+	call Function1d67
+	jr .asm_12dc6
+
+.asm_12d9a
+	ld hl, $6de2
+	call $6cf5
+	jr c, .asm_12dc6
+	call GetPartyItemLocation
+	ld a, [hl]
+	ld [CurItem], a
+	call $6cdf
+	jr nc, .asm_12dbe
+	call GetPartyItemLocation
+	ld [hl], $0
+	call $389c
+	ld hl, $6de7
+	call Function1d67
+	jr .asm_12dc6
+
+.asm_12dbe
+	ld hl, $6dec
+	call Function1d67
+	jr .asm_12dc6
+
+.asm_12dc6
+	ld a, $3
+	ret
+; 12dc9
+
+INCBIN "baserom.gbc", $12dc9, $12e00 - $12dc9
+
+
 OpenPartyStats: ; 12e00
 	call Function1d6e
 	call ClearSprites
@@ -25153,9 +26080,694 @@
 ; 12e1b
 
 
-INCBIN "baserom.gbc", $12e1b, $13327 - $12e1b
+Function12e1b: ; 12e1b
+	ld a, $3
+	ld hl, $4785
+	rst FarCall
+	ld a, [$d0ec]
+	cp $1
+	jr nz, .asm_12e2d
+	ld b, $4
+	ld a, $2
+	ret
 
+.asm_12e2d
+	ld a, $3
+	ret
+; 12e30
 
+
+Function12e30: ; 12e30
+	callba Functionca3b
+	ld a, [$d0ec]
+	cp $2
+	jr z, .asm_12e4c
+	cp $0
+	jr z, .asm_12e4f
+	ld a, $41
+	ld hl, $60b5
+	rst FarCall
+	ld b, $4
+	ld a, $2
+	ret
+
+.asm_12e4c
+	ld a, $3
+	ret
+
+.asm_12e4f
+	ld a, $0
+	ret
+; 12e52
+
+INCBIN "baserom.gbc", $12e52, $12e55 - $12e52
+
+Function12e55: ; 12e55
+	ld a, $3
+	ld hl, $48ac
+	rst FarCall
+	ld a, [$d0ec]
+	cp $1
+	jr nz, .asm_12e67
+	ld b, $4
+	ld a, $2
+	ret
+
+.asm_12e67
+	ld a, $3
+	ret
+; 12e6a
+
+Function12e6a: ; 12e6a
+	ld a, $3
+	ld hl, $4ce5
+	rst FarCall
+	ld a, [$d0ec]
+	cp $1
+	jr nz, .asm_12e7c
+	ld b, $4
+	ld a, $2
+	ret
+
+.asm_12e7c
+	ld a, $3
+	ret
+; 12e7f
+
+Function12e7f: ; 12e7f
+	ld a, $3
+	ld hl, $4d9d
+	rst FarCall
+	ld a, [$d0ec]
+	cp $1
+	jr nz, .asm_12e91
+	ld b, $4
+	ld a, $2
+	ret
+
+.asm_12e91
+	ld a, $3
+	ret
+; 12e94
+
+Function12e94: ; 12e94
+	ld a, $3
+	ld hl, $4ade
+	rst FarCall
+	ld a, [$d0ec]
+	cp $1
+	jr nz, .asm_12ea6
+	ld b, $4
+	ld a, $2
+	ret
+
+.asm_12ea6
+	ld a, $3
+	ret
+; 12ea9
+
+Function12ea9: ; 12ea9
+	ld a, $3
+	ld hl, $4c61
+	rst FarCall
+	ld a, [$d0ec]
+	and a
+	jr z, .asm_12eba
+	ld b, $4
+	ld a, $2
+	ret
+
+.asm_12eba
+	ld a, $3
+	ret
+; 12ebd
+
+Function12ebd: ; 12ebd
+	ld a, $3
+	ld hl, $4909
+	rst FarCall
+	ld a, [$d0ec]
+	and a
+	jr z, .asm_12ece
+	ld b, $4
+	ld a, $2
+	ret
+
+.asm_12ece
+	ld a, $3
+	ret
+; 12ed1
+
+Function12ed1: ; 12ed1
+	ld a, $3
+	ld hl, $4b9c
+	rst FarCall
+	ld a, [$d0ec]
+	cp $1
+	jr nz, .asm_12ee3
+	ld b, $4
+	ld a, $2
+	ret
+
+.asm_12ee3
+	ld a, $3
+	ret
+; 12ee6
+
+Function12ee6: ; 12ee6
+	call $6f05
+	jr nc, .asm_12ef3
+	ld a, $3
+	ld hl, $73df
+	rst FarCall
+	jr .asm_12ef9
+
+.asm_12ef3
+	ld hl, $6f00
+	call PrintText
+
+.asm_12ef9
+	xor a
+	ld [PartyMenuActionText], a
+	ld a, $3
+	ret
+; 12f00
+
+INCBIN "baserom.gbc", $12f00, $12f05 - $12f00
+
+Function12f05: ; 12f05
+	ld a, $24
+	call GetPartyParamLocation
+	ld a, [hli]
+	ld [hProduct], a
+	ld a, [hl]
+	ld [hMultiplicand], a
+	ld a, $5
+	ld [hMultiplier], a
+	ld b, $2
+	call Divide
+	ld a, $23
+	call GetPartyParamLocation
+	ld a, [$ffb6]
+	sub [hl]
+	dec hl
+	ld a, [$ffb5]
+	sbc [hl]
+	ret
+; 12f26
+
+Function12f26: ; 12f26
+	ld a, $3
+	ld hl, $4e7d
+	rst FarCall
+	ld a, [$d0ec]
+	cp $1
+	jr nz, .asm_12f38
+	ld b, $4
+	ld a, $2
+	ret
+
+.asm_12f38
+	ld a, $3
+	ret
+; 12f3b
+
+Function12f3b: ; 12f3b
+	ld a, $3
+	ld hl, $4eeb
+	rst FarCall
+	ld a, [$d0ec]
+	cp $1
+	jr nz, .asm_12f4d
+	ld b, $4
+	ld a, $2
+	ret
+
+.asm_12f4d
+	ld a, $3
+	ret
+; 12f50
+
+Function12f50: ; 12f50
+	ld a, $14
+	ld hl, $46bc
+	rst FarCall
+	ld b, $4
+	ld a, $2
+	ret
+; 12f5b
+
+INCBIN "baserom.gbc", $12f5b, $12fba - $12f5b
+
+Function12fba: ; 12fba
+	ld a, [CurPartySpecies]
+	cp $fd
+	jr z, .asm_12fd2
+	ld hl, Options
+	ld a, [hl]
+	push af
+	set 4, [hl]
+	call $6fd5
+	pop af
+	ld [Options], a
+	call WhiteBGMap
+
+.asm_12fd2
+	ld a, $0
+	ret
+; 12fd5
+
+Function12fd5: ; 12fd5
+	ld a, [CurPartyMon]
+	inc a
+	ld [$d0d8], a
+	call $7172
+	call $72d3
+	ld de, $7163
+	call Function1bb1
+	call $71ef
+	ld hl, $cfa5
+	set 6, [hl]
+	jr .asm_13009
+
+	call Function1bd3
+	bit 1, a
+	jp nz, $7038
+	bit 0, a
+	jp nz, $70c6
+	bit 4, a
+	jp nz, $705b
+	bit 5, a
+	jp nz, $7075
+
+.asm_13009
+	call $7235
+	ld a, [$d0e3]
+	and a
+	jr nz, .asm_13018
+	call $7256
+	jp $6ff2
+
+.asm_13018
+	ld a, $7f
+	ld hl, $c57d
+	ld bc, $0005
+	call ByteFill
+	ld hl, $c591
+	ld bc, $0512
+	call ClearBox
+	ld hl, $c591
+	ld de, $716b
+	call PlaceString
+	jp $6ff2
+; 13038
+
+Function13038: ; 13038
+	call PlayClickSFX
+	call WaitSFX
+	ld a, [$d0e3]
+	and a
+	jp z, $7154
+	ld a, [$d0e3]
+	ld [$cfa9], a
+	xor a
+	ld [$d0e3], a
+	ld hl, $c4c9
+	ld bc, $0812
+	call ClearBox
+	jp $6fe8
+; 1305b
+
+Function1305b: ; 1305b
+	ld a, [$d0e3]
+	and a
+	jp nz, $6ff2
+	ld a, [CurPartyMon]
+	ld b, a
+	push bc
+	call $708f
+	pop bc
+	ld a, [CurPartyMon]
+	cp b
+	jp z, $6ff2
+	jp $6fd5
+; 13075
+
+Function13075: ; 13075
+	ld a, [$d0e3]
+	and a
+	jp nz, $6ff2
+	ld a, [CurPartyMon]
+	ld b, a
+	push bc
+	call $70a7
+	pop bc
+	ld a, [CurPartyMon]
+	cp b
+	jp z, $6ff2
+	jp $6fd5
+; 1308f
+
+Function1308f: ; 1308f
+.asm_1308f
+	ld a, [CurPartyMon]
+	inc a
+	ld [CurPartyMon], a
+	ld c, a
+	ld b, $0
+	ld hl, PartySpecies
+	add hl, bc
+	ld a, [hl]
+	cp $ff
+	jr z, .asm_130a7
+	cp $fd
+	ret nz
+	jr .asm_1308f
+
+.asm_130a7
+	ld a, [CurPartyMon]
+	and a
+	ret z
+.asm_130ac
+	ld a, [CurPartyMon]
+	dec a
+	ld [CurPartyMon], a
+	ld c, a
+	ld b, $0
+	ld hl, PartySpecies
+	add hl, bc
+	ld a, [hl]
+	cp $fd
+	ret nz
+	ld a, [CurPartyMon]
+	and a
+	jr z, .asm_1308f
+	jr .asm_130ac
+; 130c6
+
+Function130c6: ; 130c6
+	call PlayClickSFX
+	call WaitSFX
+	ld a, [$d0e3]
+	and a
+	jr nz, .asm_130de
+	ld a, [$cfa9]
+	ld [$d0e3], a
+	call Function1bee
+	jp $7018
+
+.asm_130de
+	ld hl, PartyMon1Move1
+	ld bc, $0030
+	ld a, [CurPartyMon]
+	call AddNTimes
+	push hl
+	call $713a
+	pop hl
+	ld bc, $0015
+	add hl, bc
+	call $713a
+	ld a, [IsInBattle]
+	jr z, .asm_13113
+	ld hl, BattleMonMove1
+	ld bc, $0020
+	ld a, [CurPartyMon]
+	call AddNTimes
+	push hl
+	call $713a
+	pop hl
+	ld bc, $0006
+	add hl, bc
+	call $713a
+
+.asm_13113
+	ld de, $0020
+	call StartSFX
+	call WaitSFX
+	ld de, $0020
+	call StartSFX
+	call WaitSFX
+	ld hl, $c4c9
+	ld bc, $0812
+	call ClearBox
+	ld hl, $c572
+	ld bc, $0109
+	call ClearBox
+	jp $6fe8
+; 1313a
+
+Function1313a: ; 1313a
+	push hl
+	ld a, [$cfa9]
+	dec a
+	ld c, a
+	ld b, $0
+	add hl, bc
+	ld d, h
+	ld e, l
+	pop hl
+	ld a, [$d0e3]
+	dec a
+	ld c, a
+	ld b, $0
+	add hl, bc
+	ld a, [de]
+	ld b, [hl]
+	ld [hl], a
+	ld a, b
+	ld [de], a
+	ret
+; 13154
+
+Function13154: ; 13154
+	xor a
+	ld [$d0e3], a
+	ld hl, $cfa5
+	res 6, [hl]
+	call ClearSprites
+	jp ClearTileMap
+; 13163
+
+INCBIN "baserom.gbc", $13163, $13172 - $13163
+
+Function13172: ; 13172
+	call WhiteBGMap
+	call ClearTileMap
+	call ClearSprites
+	xor a
+	ld [hBGMapMode], a
+	ld a, $3e
+	ld hl, $7571
+	rst FarCall
+	callba Function8e814
+	ld a, [CurPartyMon]
+	ld e, a
+	ld d, $0
+	ld hl, PartySpecies
+	add hl, de
+	ld a, [hl]
+	ld [$d265], a
+	ld e, $2
+	ld a, $23
+	ld hl, $683f
+	rst FarCall
+	ld hl, $c4b4
+	ld b, $9
+	ld c, $12
+	call TextBox
+	ld hl, $c57c
+	ld b, $5
+	ld c, $12
+	call TextBox
+	ld hl, $c4a2
+	ld bc, $0203
+	call ClearBox
+	xor a
+	ld [MonType], a
+	ld hl, PartyMon1Nickname
+	ld a, [CurPartyMon]
+	call GetNick
+	ld hl, $c4b9
+	call PlaceString
+	push bc
+	ld a, $14
+	ld hl, $484a
+	rst FarCall
+	pop hl
+	call Function382d
+	ld hl, PlayerHPPal
+	call SetHPPal
+	ld b, $e
+	call GetSGBLayout
+	ld hl, $c4b0
+	ld bc, $0103
+	jp ClearBox
+; 131ef
+
+Function131ef: ; 131ef
+	xor a
+	ld [hBGMapMode], a
+	ld [$d0e3], a
+	ld [MonType], a
+	ld a, $1f
+	call Predef
+	ld hl, TempMonMove1
+	ld de, $d25e
+	ld bc, $0004
+	call CopyBytes
+	ld a, $28
+	ld [Buffer1], a
+	ld hl, $c4de
+	ld a, $20
+	call Predef
+	ld hl, $c4fa
+	ld a, $23
+	call Predef
+	call WaitBGMap
+	call Function32f9
+	ld a, [$d0eb]
+	inc a
+	ld [$cfa3], a
+	ld hl, $c57c
+	ld b, $5
+	ld c, $12
+	jp TextBox
+; 13235
+
+Function13235: ; 13235
+	ld hl, PartyMon1Move1
+	ld bc, $0030
+	ld a, [CurPartyMon]
+	call AddNTimes
+	ld a, [$cfa9]
+	dec a
+	ld c, a
+	ld b, $0
+	add hl, bc
+	ld a, [hl]
+	ld [CurSpecies], a
+	ld hl, $c591
+	ld bc, $0512
+	jp ClearBox
+; 13256
+
+Function13256: ; 13256
+	xor a
+	ld [hBGMapMode], a
+	ld hl, $c568
+	ld de, $72ba
+	call PlaceString
+	ld hl, $c57c
+	ld de, $72c2
+	call PlaceString
+	ld hl, $c59c
+	ld de, $72ca
+	call PlaceString
+	ld a, [CurSpecies]
+	ld b, a
+	ld hl, $c592
+	ld a, $2a
+	call Predef
+	ld a, [CurSpecies]
+	dec a
+	ld hl, $5afd
+	ld bc, $0007
+	call AddNTimes
+	ld a, $10
+	call GetFarByte
+	ld hl, $c5a0
+	cp $2
+	jr c, .asm_132a7
+	ld [$d265], a
+	ld de, $d265
+	ld bc, $0103
+	call Function3198
+	jr .asm_132ad
+
+.asm_132a7
+	ld de, $72cf
+	call PlaceString
+
+.asm_132ad
+	ld hl, $c5b9
+	ld a, $11
+	call Predef
+	ld a, $1
+	ld [hBGMapMode], a
+	ret
+; 132ba
+
+INCBIN "baserom.gbc", $132ba, $132d3 - $132ba
+
+Function132d3: ; 132d3
+	call $72da
+	call $72fe
+	ret
+; 132da
+
+Function132da: ; 132da
+	ld a, [CurPartyMon]
+	and a
+	ret z
+	ld c, a
+	ld e, a
+	ld d, $0
+	ld hl, PartyCount
+	add hl, de
+.asm_132e7
+	ld a, [hl]
+	and a
+	jr z, .asm_132f3
+	cp $fd
+	jr z, .asm_132f3
+	cp $fc
+	jr c, .asm_132f8
+
+.asm_132f3
+	dec hl
+	dec c
+	jr nz, .asm_132e7
+	ret
+
+.asm_132f8
+	ld hl, $c4b0
+	ld [hl], $71
+	ret
+; 132fe
+
+Function132fe: ; 132fe
+	ld a, [CurPartyMon]
+	inc a
+	ld c, a
+	ld a, [PartyCount]
+	cp c
+	ret z
+	ld e, c
+	ld d, $0
+	ld hl, PartySpecies
+	add hl, de
+.asm_1330f
+	ld a, [hl]
+	cp $ff
+	ret z
+	and a
+	jr z, .asm_1331e
+	cp $fd
+	jr z, .asm_1331e
+	cp $fc
+	jr c, .asm_13321
+
+.asm_1331e
+	inc hl
+	jr .asm_1330f
+
+.asm_13321
+	ld hl, $c4b2
+	ld [hl], $ed
+	ret
+; 13327
+
+
 SelectMenu: ; 13327
 
 	call CheckRegisteredItem
@@ -47402,9 +49014,31 @@
 	db $00, $00, $00, $00, $00, $00, $00, $0f
 ; 4cf1f
 
-INCBIN "baserom.gbc", $4cf1f, $4cffe - $4cf1f
+Function4cf1f: ; 4cf1f
+	ld a, $0
+	call $4f34
+	ld a, $1
+	call $4f34
+	ld a, $2
+	call $4f34
+	ld a, $3
+	call $4f34
+	ret
+; 4cf34
 
+Function4cf34: ; 4cf34
+	call GetSRAMBank
+	ld hl, $a000
+	ld bc, $2000
+	xor a
+	call ByteFill
+	call CloseSRAM
+	ret
+; 4cf45
 
+INCBIN "baserom.gbc", $4cf45, $4cffe - $4cf45
+
+
 Function4cffe: ; 4cffe
 	ld a, $1
 	call GetSRAMBank
@@ -47697,8 +49331,277 @@
 	ret
 ; 4d3b1
 
-INCBIN "baserom.gbc", $4d3b1, $4d596 - $4d3b1
+Function4d3b1: ; 4d3b1
+	ld a, $2
+	ld hl, $4000
+	rst FarCall
+	ld b, $8
+	call GetSGBLayout
+	call Functione51
+	call Functione5f
+	ld de, $0054
+	call StartMusic
+	ld hl, $5408
+	call PrintText
+	ld hl, $540d
+	call Function1d3c
+	call Function1d81
+	ret c
+	ld a, [$cfa9]
+	cp $1
+	ret z
+	call $541e
+	jr c, .asm_4d3f7
+	ld a, $0
+	call GetSRAMBank
+	ld a, $80
+	ld [$ac60], a
+	call CloseSRAM
+	ld hl, $53fe
+	call PrintText
+	ret
 
+.asm_4d3f7
+	ld hl, $5403
+	call PrintText
+	ret
+; 4d3fe
+
+INCBIN "baserom.gbc", $4d3fe, $4d41e - $4d3fe
+
+Function4d41e: ; 4d41e
+	call $550f
+	push de
+	ld hl, StringBuffer2
+	ld bc, $0005
+	xor a
+	call ByteFill
+	ld a, $4
+	ld [$d08b], a
+	ld hl, $5463
+	call PrintText
+.asm_4d437
+	call $5468
+.asm_4d43a
+	call Functiona57
+	ld a, [$ffa9]
+	ld b, a
+	and $1
+	jr nz, .asm_4d453
+	ld a, b
+	and $f0
+	jr z, .asm_4d43a
+	call $5490
+	ld c, $3
+	call DelayFrames
+	jr .asm_4d437
+
+.asm_4d453
+	call $54e0
+	pop de
+	ld a, e
+	cp l
+	jr nz, .asm_4d461
+	ld a, d
+	cp h
+	jr nz, .asm_4d461
+	and a
+	ret
+
+.asm_4d461
+	scf
+	ret
+; 4d463
+
+INCBIN "baserom.gbc", $4d463, $4d468 - $4d463
+
+Function4d468: ; 4d468
+	ld hl, $c5da
+	ld de, StringBuffer2
+	ld c, $5
+.asm_4d470
+	ld a, [de]
+	add $f6
+	ld [hli], a
+	inc de
+	dec c
+	jr nz, .asm_4d470
+	ld hl, $c5ee
+	ld bc, $0005
+	ld a, $7f
+	call ByteFill
+	ld hl, $c5ee
+	ld a, [$d08b]
+	ld e, a
+	ld d, $0
+	add hl, de
+	ld [hl], $61
+	ret
+; 4d490
+
+Function4d490: ; 4d490
+	ld a, b
+	and $20
+	jr nz, .asm_4d4a5
+	ld a, b
+	and $10
+	jr nz, .asm_4d4af
+	ld a, b
+	and $40
+	jr nz, .asm_4d4ba
+	ld a, b
+	and $80
+	jr nz, .asm_4d4c8
+	ret
+
+.asm_4d4a5
+	ld a, [$d08b]
+	and a
+	ret z
+	dec a
+	ld [$d08b], a
+	ret
+
+.asm_4d4af
+	ld a, [$d08b]
+	cp $4
+	ret z
+	inc a
+	ld [$d08b], a
+	ret
+
+.asm_4d4ba
+	call $54d5
+	ld a, [hl]
+	cp $9
+	jr z, .asm_4d4c5
+	inc a
+	ld [hl], a
+	ret
+
+.asm_4d4c5
+	ld [hl], $0
+	ret
+
+.asm_4d4c8
+	call $54d5
+	ld a, [hl]
+	and a
+	jr z, .asm_4d4d2
+	dec a
+	ld [hl], a
+	ret
+
+.asm_4d4d2
+	ld [hl], $9
+	ret
+; 4d4d5
+
+Function4d4d5: ; 4d4d5
+	ld a, [$d08b]
+	ld e, a
+	ld d, $0
+	ld hl, StringBuffer2
+	add hl, de
+	ret
+; 4d4e0
+
+Function4d4e0: ; 4d4e0
+	ld hl, $0000
+	ld de, $d08a
+	ld bc, $0001
+	call $5501
+	ld bc, $000a
+	call $5501
+	ld bc, $0064
+	call $5501
+	ld bc, $03e8
+	call $5501
+	ld bc, $2710
+	ld a, [de]
+	dec de
+	push hl
+	ld hl, $0000
+	call AddNTimes
+	ld c, l
+	ld b, h
+	pop hl
+	add hl, bc
+	ret
+; 4d50f
+
+Function4d50f: ; 4d50f
+	ld a, $1
+	call GetSRAMBank
+	ld de, $0000
+	ld hl, $a009
+	ld c, $2
+	call $5533
+	ld hl, $a00b
+	ld c, $5
+	call $553e
+	ld hl, $a3dc
+	ld c, $3
+	call $5533
+	call CloseSRAM
+	ret
+; 4d533
+
+Function4d533: ; 4d533
+.asm_4d533
+	ld a, [hli]
+	add e
+	ld e, a
+	ld a, $0
+	adc d
+	ld d, a
+	dec c
+	jr nz, .asm_4d533
+	ret
+; 4d53e
+
+Function4d53e: ; 4d53e
+.asm_4d53e
+	ld a, [hli]
+	cp $50
+	ret z
+	add e
+	ld e, a
+	ld a, $0
+	adc d
+	ld d, a
+	dec c
+	jr nz, .asm_4d53e
+	ret
+; 4d54c
+
+Function4d54c: ; 4d54c
+	ld a, $2
+	ld hl, $4000
+	rst FarCall
+	ld b, $8
+	call GetSGBLayout
+	call Functione51
+	call Functione5f
+	ld de, $0054
+	call StartMusic
+	ld hl, $5580
+	call PrintText
+	ld hl, $5585
+	call Function1d3c
+	call Function1d81
+	ret c
+	ld a, [$cfa9]
+	cp $1
+	ret z
+	ld a, $13
+	ld hl, $4f1f
+	rst FarCall
+	ret
+; 4d580
+
+INCBIN "baserom.gbc", $4d580, $4d596 - $4d580
+
 Tilesets:
 
 Tileset00: ; 0x4d596
@@ -49798,9 +51701,19 @@
 	ret
 ; 505da
 
-INCBIN "baserom.gbc", $505da, $50730 - $505da
+INCBIN "baserom.gbc", $505da, $506bc - $505da
 
+Function506bc: ; 506bc
+	ld hl, $46c8
+	call Function31cd
+	ld a, $1
+	ld [$d0ec], a
+	ret
+; 506c8
 
+INCBIN "baserom.gbc", $506c8, $50730 - $506c8
+
+
 Function50730: ; 50730
 	ld hl, $473c
 	call Function31cd
@@ -49920,9 +51833,87 @@
 	ret
 ; 50821
 
-INCBIN "baserom.gbc", $50821, $5093a - $50821
+INCBIN "baserom.gbc", $50821, $5084a - $50821
 
+Function5084a: ; 5084a
+	ld a, [CurPartyMon]
+	ld e, a
+	call $48d5
+	ld a, [CurPartySpecies]
+	ld [CurSpecies], a
+	call GetBaseData
+	ld a, [MonType]
+	ld hl, PartyMon1Species
+	ld bc, $0030
+	and a
+	jr z, .asm_5087b
+	ld hl, OTPartyMon1Species
+	ld bc, $0030
+	cp $1
+	jr z, .asm_5087b
+	ld bc, $0020
+	ld hl, $65bb
+	ld a, $3
+	rst FarCall
+	jr .asm_5088a
 
+.asm_5087b
+	ld a, [CurPartyMon]
+	call AddNTimes
+	ld de, TempMonSpecies
+	ld bc, $0030
+	call CopyBytes
+
+.asm_5088a
+	ret
+; 5088b
+
+INCBIN "baserom.gbc", $5088b, $508d5 - $5088b
+
+Function508d5: ; 508d5
+	ld a, [MonType]
+	and a
+	jr z, .asm_508e7
+	cp $1
+	jr z, .asm_508ec
+	cp $2
+	jr z, .asm_508f1
+	cp $3
+	jr z, .asm_50900
+
+.asm_508e7
+	ld hl, PartySpecies
+	jr .asm_50905
+
+.asm_508ec
+	ld hl, OTPartySpecies
+	jr .asm_50905
+
+.asm_508f1
+	ld a, $1
+	call GetSRAMBank
+	ld hl, $ad11
+	call $4905
+	call CloseSRAM
+	ret
+
+.asm_50900
+	ld a, [BreedMon1Species]
+	jr .asm_50909
+
+.asm_50905
+	ld d, $0
+	add hl, de
+	ld a, [hl]
+
+.asm_50909
+	ld [CurPartySpecies], a
+	ret
+; 5090d
+
+INCBIN "baserom.gbc", $5090d, $5093a - $5090d
+
+
 PrintMoveType: ; 5093a
 ; Print the type of move b at hl.
 
@@ -51661,9 +53652,57 @@
 
 SECTION "bank21",DATA,BANK[$21]
 
-INCBIN "baserom.gbc", $84000, $842db - $84000
+Function84000: ; 84000
+	ld hl, OverworldMap
+	ld bc, $040c
+	xor a
+	call $42ab
+	xor a
+	ld [rSB], a
+	ld [rSC], a
+	ld [$c2d5], a
+	ld hl, $c2d4
+	set 0, [hl]
+	ld a, [GBPrinter]
+	ld [$cbfb], a
+	xor a
+	ld [$cf63], a
+	ret
+; 84022
 
+Function84022: ; 84022
+	ld a, [$cf63]
+	ld e, a
+	ld d, $0
+	ld hl, $4031
+	add hl, de
+	add hl, de
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	jp [hl]
+; 84031
 
+INCBIN "baserom.gbc", $84031, $842ab - $84031
+
+Function842ab: ; 842ab
+	push de
+	ld e, a
+.asm_842ad
+	ld [hl], e
+	inc hl
+	dec bc
+	ld a, c
+	or b
+	jr nz, .asm_842ad
+	ld a, e
+	pop de
+	ret
+; 842b7
+
+INCBIN "baserom.gbc", $842b7, $842db - $842b7
+
+
 Function842db: ; 842db
 	ld a, [$c2d5]
 	add a
@@ -51677,8 +53716,232 @@
 	jp [hl]
 ; 842ea
 
-INCBIN "baserom.gbc", $842ea, $84a2e - $842ea
+INCBIN "baserom.gbc", $842ea, $843f0 - $842ea
 
+Function843f0: ; 843f0
+.asm_843f0
+	call Functiona57
+	call $46f6
+	jr c, .asm_8440f
+	ld a, [$cf63]
+	bit 7, a
+	jr nz, .asm_8440d
+	call $4022
+	call $4757
+	call $4785
+	call DelayFrame
+	jr .asm_843f0
+
+.asm_8440d
+	and a
+	ret
+
+.asm_8440f
+	scf
+	ret
+; 84411
+
+Function84411: ; 84411
+	xor a
+	ld [$c2d4], a
+	ld [$c2d5], a
+	ret
+; 84419
+
+Function84419: ; 84419
+	push af
+	call $4000
+	pop af
+	ld [$cbfa], a
+	call $4728
+	ret
+; 84425
+
+Function84425: ; 84425
+	call Function222a
+	call $4753
+	ret
+; 8442c
+
+INCBIN "baserom.gbc", $8442c, $845d4 - $8442c
+
+Function845d4: ; 845d4
+	call $45db
+	call $4425
+	ret
+; 845db
+
+Function845db: ; 845db
+	ld a, [$cf65]
+	push af
+	xor a
+	ld [$ffac], a
+	call $474c
+	ld a, [rIE]
+	push af
+	xor a
+	ld [rIF], a
+	ld a, $9
+	ld [rIE], a
+	xor a
+	ld [hBGMapMode], a
+	ld a, $13
+	call $4419
+	ld hl, $ff9e
+	ld a, [hl]
+	push af
+	ld [hl], $4
+	ld a, $9
+	ld [$cf65], a
+	call $43f0
+	pop af
+	ld [$ff9e], a
+	call $4411
+	call $4735
+	xor a
+	ld [rIF], a
+	pop af
+	ld [rIE], a
+	pop af
+	ld [$cf65], a
+	ret
+; 8461a
+
+INCBIN "baserom.gbc", $8461a, $846f6 - $8461a
+
+Function846f6: ; 846f6
+	ld a, [hJoyDown]
+	and $2
+	jr nz, .asm_846fe
+	and a
+	ret
+
+.asm_846fe
+	ld a, [$ca80]
+	cp $c
+	jr nz, .asm_84722
+.asm_84705
+	ld a, [$c2d5]
+	and a
+	jr nz, .asm_84705
+	ld a, $16
+	ld [$c2d5], a
+	ld a, $88
+	ld [rSB], a
+	ld a, $1
+	ld [rSC], a
+	ld a, $81
+	ld [rSC], a
+.asm_8471c
+	ld a, [$c2d5]
+	and a
+	jr nz, .asm_8471c
+
+.asm_84722
+	ld a, $1
+	ld [$ffac], a
+	scf
+	ret
+; 84728
+
+Function84728: ; 84728
+	ld hl, TileMap
+	ld de, $ca90
+	ld bc, $0168
+	call CopyBytes
+	ret
+; 84735
+
+Function84735: ; 84735
+	ld hl, $ca90
+	ld de, TileMap
+	ld bc, $0168
+	call CopyBytes
+	ret
+; 84742
+
+INCBIN "baserom.gbc", $84742, $8474c - $84742
+
+Function8474c: ; 8474c
+	ld de, $005b
+	call StartMusic2
+	ret
+; 84753
+
+Function84753: ; 84753
+	call Function3d47
+	ret
+; 84757
+
+Function84757: ; 84757
+	ld a, [$ca88]
+	cp $ff
+	jr nz, .asm_84765
+	ld a, [$ca89]
+	cp $ff
+	jr z, .asm_8477f
+
+.asm_84765
+	ld a, [$ca89]
+	and $e0
+	ret z
+	bit 7, a
+	jr nz, .asm_8477b
+	bit 6, a
+	jr nz, .asm_84777
+	ld a, $6
+	jr .asm_84781
+
+.asm_84777
+	ld a, $7
+	jr .asm_84781
+
+.asm_8477b
+	ld a, $4
+	jr .asm_84781
+
+.asm_8477f
+	ld a, $5
+
+.asm_84781
+	ld [$cbf8], a
+	ret
+; 84785
+
+Function84785: ; 84785
+	ld a, [$cbf8]
+	and a
+	ret z
+	push af
+	xor a
+	ld [hBGMapMode], a
+	ld hl, $c504
+	ld bc, $0a12
+	call TextBox
+	pop af
+	ld e, a
+	ld d, $0
+	ld hl, $4807
+	add hl, de
+	add hl, de
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	ld hl, $c52d
+	ld a, $77
+	call Function13d4
+	ld hl, $c5ce
+	ld de, $47f5
+	call PlaceString
+	ld a, $1
+	ld [hBGMapMode], a
+	xor a
+	ld [$cbf8], a
+	ret
+; 847bd
+
+INCBIN "baserom.gbc", $847bd, $84a2e - $847bd
+
 FX00GFX:
 FX01GFX: ; 84a2e
 INCBIN "gfx/fx/001.lz"
@@ -52690,8 +54953,35 @@
 	ret
 ; 0x8adef
 
-INCBIN "baserom.gbc", $8adef, $8b170 - $8adef
+INCBIN "baserom.gbc", $8adef, $8ae30 - $8adef
 
+Function8ae30: ; 8ae30
+	push de
+	push bc
+	call GetSecondaryMapHeaderPointer
+	ld a, h
+	cp $58
+	jr nz, .asm_8ae4a
+	ld a, l
+	cp $e8
+	jr nz, .asm_8ae4a
+	ld de, $0329
+	ld b, $1
+	call BitTable1Func
+	scf
+	jr .asm_8ae4b
+
+.asm_8ae4a
+	and a
+
+.asm_8ae4b
+	pop bc
+	pop de
+	ret
+; 8ae4e
+
+INCBIN "baserom.gbc", $8ae4e, $8b170 - $8ae4e
+
 SpecialDratini: ; 0x8b170
 ; if ScriptVar is 0 or 1, change the moveset of the last Dratini in the party.
 ;  0: give it a special moveset with Extremespeed.
@@ -53907,8 +56197,30 @@
 	ret
 ; 8e83f
 
-INCBIN "baserom.gbc", $8e83f, $8e9ac - $8e83f
+Function8e83f: ; 8e83f
+	push hl
+	push de
+	push bc
+	call $6849
+	pop bc
+	pop de
+	pop hl
+	ret
+; 8e849
 
+Function8e849: ; 8e849
+	ld d, $0
+	ld hl, $6854
+	add hl, de
+	add hl, de
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	jp [hl]
+; 8e854
+
+INCBIN "baserom.gbc", $8e854, $8e9ac - $8e854
+
 GetSpeciesIcon: ; 8e9ac
 ; Load species icon into VRAM at tile a
 	push de
@@ -54617,8 +56929,123 @@
 	ret
 ; 91af3
 
-INCBIN "baserom.gbc", $91af3, $91bb5 - $91af3
 
+Function91af3: ; 91af3
+	call WhiteBGMap
+	call ClearTileMap
+	call ClearSprites
+	ld hl, $ffaa
+	ld a, [hl]
+	push af
+	ld [hl], $1
+	xor a
+	ld [hBGMapMode], a
+	callba Function8cf53
+	call Function91ff2
+	ld de, $62e1
+	ld hl, $9300
+	ld bc, $2406
+	call Functionf1e
+	call FlyMap
+	call $5c8f
+	ld b, $2
+	call GetSGBLayout
+	call Function32f9
+.asm_91b29
+	call Functiona57
+	ld hl, hJoyPressed
+	ld a, [hl]
+	and $2
+	jr nz, .asm_91b4a
+	ld a, [hl]
+	and $1
+	jr nz, .asm_91b4e
+	call $5b73
+	call $5c17
+	callba Function8cf69
+	call DelayFrame
+	jr .asm_91b29
+
+.asm_91b4a
+	ld a, $ff
+	jr .asm_91b5a
+
+.asm_91b4e
+	ld a, [DefaultFlypoint]
+	ld l, a
+	ld h, $0
+	add hl, hl
+	ld de, $5c5f
+	add hl, de
+	ld a, [hl]
+
+.asm_91b5a
+	ld [DefaultFlypoint], a
+	pop af
+	ld [$ffaa], a
+	call WhiteBGMap
+	ld a, $90
+	ld [$ffd2], a
+	xor a
+	ld [hBGMapAddress], a
+	ld a, $98
+	ld [$ffd7], a
+	ld a, [DefaultFlypoint]
+	ld e, a
+	ret
+; 91b73
+
+Function91b73: ; 91b73
+	ld a, [StartFlypoint]
+	ld e, a
+	ld a, [EndFlypoint]
+	ld d, a
+	ld hl, $ffa9
+	ld a, [hl]
+	and $40
+	jr nz, .asm_91b89
+	ld a, [hl]
+	and $80
+	jr nz, .asm_91b9b
+	ret
+
+.asm_91b89
+	ld hl, DefaultFlypoint
+	ld a, [hl]
+	cp d
+	jr nz, .asm_91b93
+	ld a, e
+	dec a
+	ld [hl], a
+
+.asm_91b93
+	inc [hl]
+	call $5c3c
+	jr z, .asm_91b89
+	jr .asm_91bab
+
+.asm_91b9b
+	ld hl, DefaultFlypoint
+	ld a, [hl]
+	cp e
+	jr nz, .asm_91ba5
+	ld a, d
+	inc a
+	ld [hl], a
+
+.asm_91ba5
+	dec [hl]
+	call $5c3c
+	jr z, .asm_91b9b
+
+.asm_91bab
+	call TownMapBubble
+	call WaitBGMap
+	xor a
+	ld [hBGMapMode], a
+	ret
+; 91bb5
+
 TownMapBubble: ; 91bb5
 ; Draw the bubble containing the location text in the town map HUD
 	
@@ -54693,8 +57120,46 @@
 	ret
 ; 91c17
 
-INCBIN "baserom.gbc", $91c17, $91c50 - $91c17
+Function91c17: ; 91c17
+	ld a, [DefaultFlypoint]
+	ld l, a
+	ld h, $0
+	add hl, hl
+	ld de, Flypoints
+	add hl, de
+	ld e, [hl]
+	callba GetLandmarkCoords
+	ld a, [$d003]
+	ld c, a
+	ld a, [$d004]
+	ld b, a
+	ld hl, $0004
+	add hl, bc
+	ld [hl], e
+	ld hl, $0005
+	add hl, bc
+	ld [hl], d
+	ret
+; 91c3c
 
+Function91c3c: ; 91c3c
+	push bc
+	push de
+	push hl
+	ld l, [hl]
+	ld h, $0
+	add hl, hl
+	ld de, $5c5f
+	add hl, de
+	ld c, [hl]
+	call GetFlyPermission
+	pop hl
+	pop de
+	pop bc
+	and a
+	ret
+; 91c50
+
 GetFlyPermission: ; 91c50
 ; Return flypoint c permission flag in a
 	ld hl, FlypointPerms
@@ -54739,8 +57204,12 @@
 	
 ; 91c8e
 
-INCBIN "baserom.gbc", $91c8e, $91c90 - $91c8e
+INCBIN "baserom.gbc", $91c8e, $91c8f - $91c8e
 
+Function91c8f: ; 91c8f
+	ret
+; 91c90
+
 FlyMap: ; 91c90
 	
 	ld a, [MapGroup]
@@ -58898,9 +61367,130 @@
 	db $ff ; end
 ; b83e5
 
-INCBIN "baserom.gbc", $b83e5, $b9e76 - $b83e5
+INCBIN "baserom.gbc", $b83e5, $b9229 - $b83e5
 
+Functionb9229: ; b9229
+	ld a, [CurPartyMon]
+	ld hl, $a600
+	ld bc, $002f
+	call AddNTimes
+	ld d, h
+	ld e, l
+	push de
+	call WhiteBGMap
+	call ClearSprites
+	call ClearTileMap
+	call DisableLCD
+	call Functione5f
+	pop de
+	push de
+	ld a, $0
+	call GetSRAMBank
+	ld a, $77
+	ld hl, $65c8
+	rst FarCall
+	call CloseSRAM
+	ld a, c
+	ld de, $65e6
+	or a
+	jr z, .asm_b9268
+	ld de, $69e6
+	sub $3
+	jr c, .asm_b9268
+	ld de, $6de6
 
+.asm_b9268
+	ld hl, VTiles1
+	ld bc, $7780
+	call Functionf9d
+	pop de
+	call $52b8
+	call EnableLCD
+	call WaitBGMap
+	ld a, [$d1ec]
+	ld e, a
+	ld a, $2
+	ld hl, $4cb4
+	rst FarCall
+	call Function32f9
+	xor a
+	ld [hJoyPressed], a
+	call $529a
+	call WhiteBGMap
+	call DisableLCD
+	call Functione51
+	jp EnableLCD
+; b929a
+
+Functionb929a: ; b929a
+.asm_b929a
+	call GetJoypadPublic
+	ld a, [hJoyPressed]
+	and $b
+	jr z, .asm_b929a
+	and $8
+	jr nz, .asm_b92a8
+	ret
+
+.asm_b92a8
+	ld a, [$cf63]
+	push af
+	ld hl, $45d4
+	ld a, $21
+	rst FarCall
+	pop af
+	ld [$cf63], a
+	jr .asm_b929a
+; b92b8
+
+Functionb92b8: ; b92b8
+	ld h, d
+	ld l, e
+	push hl
+	ld a, $0
+	call GetSRAMBank
+	ld de, $002b
+	add hl, de
+	ld a, [hli]
+	ld [Buffer1], a
+	ld a, [hli]
+	ld [Buffer2], a
+	ld a, [hli]
+	ld [CurPartySpecies], a
+	ld b, [hl]
+	call CloseSRAM
+	ld hl, $52f8
+	ld c, $0
+.asm_b92d9
+	ld a, [hli]
+	cp b
+	jr z, .asm_b92ea
+	cp $ff
+	jr z, .asm_b92e6
+	inc c
+	inc hl
+	inc hl
+	jr .asm_b92d9
+
+.asm_b92e6
+	ld hl, $52f8
+	inc hl
+
+.asm_b92ea
+	ld a, c
+	ld [$d1ec], a
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	ld de, $52f7
+	pop bc
+	push de
+	jp [hl]
+; b92f7
+
+INCBIN "baserom.gbc", $b92f7, $b9e76 - $b92f7
+
+
 Functionb9e76: ; b9e76
 	ld a, d
 	ld hl, $5e80
@@ -65141,8 +67731,14 @@
 	ret
 ; 106095
 
-INCBIN "baserom.gbc", $106095, $1060bb - $106095
+INCBIN "baserom.gbc", $106095, $1060b5 - $106095
 
+Function1060b5: ; 1060b5
+	ret
+; 1060b6
+
+INCBIN "baserom.gbc", $1060b6, $1060bb - $1060b6
+
 Function1060bb: ; 1060bb
 ; commented out
 	ret
@@ -68242,7 +70838,33 @@
 INCBIN "gfx/misc/pokegear.lz"
 ; 1de5c7
 
-INCBIN "baserom.gbc", $1de5c7, $1df238 - $1de5c7
+INCBIN "baserom.gbc", $1de5c7, $1de5c8 - $1de5c7
+
+Function1de5c8: ; 1de5c8
+	ld c, $0
+	ld hl, $0029
+	add hl, de
+	ld a, [hli]
+	cp $84
+	ret nz
+	ld a, [hli]
+	inc c
+	cp $85
+	ret z
+	inc c
+	cp $86
+	ret z
+	inc c
+	cp $88
+	ret z
+	inc c
+	cp $92
+	ret z
+	ld c, $0
+	ret
+; 1de5e6
+
+INCBIN "baserom.gbc", $1de5e6, $1df238 - $1de5e6
 
 
 SECTION "bank78",DATA,BANK[$78]