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]