ref: 2aff956ba4af940085929d1bc3af461dae16a167
parent: a75940caa20c85258c3ac5bafe4471abfb072cf5
author: yenatch <[email protected]>
date: Thu Sep 5 13:05:30 EDT 2013
some specials in bank 3 and unown dex asm
--- a/main.asm
+++ b/main.asm
@@ -16222,7 +16222,7 @@
dbw $04, $5485
dbw BANK(SpecialBeastsCheck),SpecialBeastsCheck
dbw BANK(SpecialMonCheck),SpecialMonCheck
- dbw $03, $4225
+ dbw BANK(Functionc225), Functionc225
dbw $5c, $4bd2
dbw $40, $766e
dbw $40, $77eb
@@ -16238,17 +16238,83 @@
dbw $12, $6927
dbw $24, $4a54
dbw $24, $4a88
- dbw $03, $4224
+ dbw BANK(Functionc224), Functionc224
; c224
-INCBIN "baserom.gbc", $c224, $c29d - $c224
+Functionc224: ; c224
+ ret
+; c225
+Functionc225: ; c225
+ ld a, [ScriptVar]
+ ld d, a
+ callba Function57e2
+ ret
+; c230
+
+Functionc230: ; c230
+ ld a, [ScriptVar]
+ dec a
+ call CheckSeenMon
+ ret nz
+ ld a, [ScriptVar]
+ dec a
+ call SetSeenAndCaughtMon
+ call FadeToMenu
+ ld a, [ScriptVar]
+ ld [$d265], a
+ callba Functionfb877
+ call Function2b4d
+ ret
+; c252
+
+Functionc252: ; c252
+ ld a, [ScriptVar]
+ dec a
+ call SetCaughtMon
+ ret
+; c25a
+
+Functionc25a: ; c25a
+ ld a, [ScriptVar]
+ ld b, a
+ callba Function4dbd2
+ jr z, .asm_c298
+ jr .asm_c292
+
+ ld a, [ScriptVar]
+ ld b, a
+ callba Function4dbd9
+ jr z, .asm_c298
+ jr .asm_c292
+
+ ld a, [ScriptVar]
+ ld b, a
+ callba Function4dbe0
+ jr z, .asm_c298
+ jr .asm_c292
+
+ ld a, [ScriptVar]
+ ld b, a
+ callba Function4dbe6
+ jr z, .asm_c298
+ jr .asm_c292
+
+.asm_c292
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+
+.asm_c298
+ xor a
+ ld [ScriptVar], a
+ ret
+; c29d
+
SpecialNameRival: ; 0xc29d
ld b, $2 ; rival
ld de, RivalName
- ld a, BANK(Function116b7)
- ld hl, Function116b7
- rst $8
+ callba Function116b7
; default to "SILVER"
ld hl, RivalName
ld de, DefaultRivalName
@@ -16259,8 +16325,199 @@
DefaultRivalName: ; 0xc2b2
db "SILVER@"
-INCBIN "baserom.gbc", $c2b9, $c3e2 - $c2b9
+Functionc2b9: ; c2b9
+ callba Functionfb6ed
+ ret
+; c2c0
+Functionc2c0: ; c2c0
+ call FadeToMenu
+ callba Function9191c
+ call Function2b4d
+ ret
+; c2cd
+
+Functionc2cd: ; c2cd
+ call FadeToMenu
+ callba Function16be4
+ call Function2b4d
+ ret
+; c2da
+
+Functionc2da: ; c2da
+ call FadeToMenu
+ callba Function3f836
+ call Function2b4d
+ ret
+; c2e7
+
+Functionc2e7: ; c2e7
+ xor a
+ ld [ScriptVar], a
+ callba Function156d9
+ ld a, c
+ ld [ScriptVar], a
+ ret
+; c2f6
+
+Functionc2f6: ; c2f6
+ ld a, $0
+ call GetSRAMBank
+ ld a, [$abe2]
+ and a
+ jr z, .asm_c302
+ inc a
+
+.asm_c302
+ ld [ScriptVar], a
+ call CloseSRAM
+ ret
+; c309
+
+Functionc309: ; c309
+ ld a, $0
+ call GetSRAMBank
+ ld a, [$abe2]
+ ld [CurItem], a
+ ld a, $1
+ ld [$d10c], a
+ ld hl, NumItems
+ call Function2f66
+ jr nc, .asm_c33d
+ xor a
+ ld [$abe2], a
+ call CloseSRAM
+ ld a, [CurItem]
+ ld [$d265], a
+ call GetItemName
+ ld hl, UnknownText_0xc345
+ call PrintText
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+
+.asm_c33d
+ call CloseSRAM
+ xor a
+ ld [ScriptVar], a
+ ret
+; c345
+
+UnknownText_0xc345: ; 0xc345
+ ; received item
+ text_jump UnknownText_0x1bd3be, BANK(UnknownText_0x1bd3be)
+ db "@"
+; 0xc34a
+
+Functionc34a: ; c34a
+ callba Function1369d
+ ld a, b
+ ld [ScriptVar], a
+ ret
+; c355
+
+Functionc355: ; c355
+ ld a, [ScriptVar]
+ ld e, a
+ callba Function91a53
+ ret
+; c360
+
+Functionc360: ; c360
+ call FadeToMenu
+ callba Functione1190
+ ld a, [$d0ec]
+ ld [ScriptVar], a
+ call Function2b4d
+ ret
+; c373
+
+Functionc373: ; c373
+ call Functionc3ae
+ ret c
+ ld a, $24
+ ld hl, $66c7
+ call Functionc39a
+ ret
+; c380
+
+Functionc380: ; c380
+ call Functionc3ae
+ ret c
+ ld a, $38
+ ld hl, $40ee
+ call Functionc39a
+ ret
+; c38d
+
+Functionc38d: ; c38d
+ call Functionc3ae
+ ret c
+ ld a, $38
+ ld hl, $5e5b
+ call Functionc39a
+ ret
+; c39a
+
+Functionc39a: ; c39a
+ call Function31cf
+ call FadeToMenu
+ ld hl, $d0e8
+ ld a, [hli]
+ push af
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ pop af
+ rst FarCall
+ call Function2b4d
+ ret
+; c3ae
+
+Functionc3ae: ; c3ae
+ ld hl, Coins
+ ld a, [hli]
+ or [hl]
+ jr z, .asm_c3c4
+ ld a, $36
+ ld [CurItem], a
+ ld hl, NumItems
+ call PickUpItem
+ jr nc, .asm_c3c9
+ and a
+ ret
+
+.asm_c3c4
+ ld hl, UnknownText_0xc3d1
+ jr .asm_c3cc
+
+.asm_c3c9
+ ld hl, UnknownText_0xc3d6
+
+.asm_c3cc
+ call PrintText
+ scf
+ ret
+; c3d1
+
+UnknownText_0xc3d1: ; 0xc3d1
+ ; You have no coins.
+ text_jump UnknownText_0x1bd3d7, BANK(UnknownText_0x1bd3d7)
+ db "@"
+; 0xc3d6
+
+UnknownText_0xc3d6: ; 0xc3d6
+ ; You don't have a COIN CASE.
+ text_jump UnknownText_0x1bd3eb, BANK(UnknownText_0x1bd3eb)
+ db "@"
+; 0xc3db
+
+Functionc3db: ; c3db
+ call WhiteBGMap
+ call Function2879
+ ret
+; c3e2
+
ScriptReturnCarry: ; c3e2
jr c, .carry
xor a
@@ -16272,9 +16529,16 @@
ret
; c3ef
-INCBIN "baserom.gbc", $c3ef, $c403 - $c3ef
+Functionc3ef: ; c3ef
+ callba Function1150c
+ ld a, [$dc3a]
+ ld [ScriptVar], a
+ ret
+; c3fc
+INCBIN "baserom.gbc", $c3fc, $c403 - $c3fc
+
Functionc403: ; c403
ld a, c
and a
@@ -24205,8 +24469,324 @@
; 0x1369d
-INCBIN "baserom.gbc", $1369d, $13988 - $1369d
+Function1369d: ; 1369d
+ call Function13900
+ callba Function105f79
+ call Function13819
+ ld a, [$d00a]
+ call Function13730
+ ld a, [$d00b]
+ ld [$d265], a
+ call GetPokemonName
+ ld hl, $7719
+ call PrintText
+ ld a, [EndFlypoint]
+ call Function13730
+ ld a, [MovementBuffer]
+ ld [$d265], a
+ call GetPokemonName
+ ld hl, $7702
+ call PrintText
+ ld a, [DefaultFlypoint]
+ call Function13730
+ ld a, [$d003]
+ ld [$d265], a
+ call GetPokemonName
+ ld hl, $76eb
+ call PrintText
+ jp Function13807
+; 136eb
+INCBIN "baserom.gbc", $136eb, $13730 - $136eb
+
+Function13730: ; 13730
+ dec a
+ jr z, .asm_13777
+ ld c, a
+ ld b, $0
+ ld hl, $7783
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [hli]
+ ld c, a
+ push hl
+ push bc
+ callab Function3952d
+ ld hl, StringBuffer1
+ ld de, $d016
+ ld bc, $000d
+ call CopyBytes
+ ld hl, $d016
+.asm_13757
+ ld a, [hli]
+ cp $50
+ jr nz, .asm_13757
+ dec hl
+ ld [hl], $7f
+ inc hl
+ ld d, h
+ ld e, l
+ pop bc
+ pop hl
+ push de
+ ld a, [hl]
+ ld b, a
+ callab Function3994c
+ ld hl, StringBuffer1
+ pop de
+ ld bc, $000a
+ jp CopyBytes
+
+.asm_13777
+ ld hl, PlayerName
+ ld de, $d016
+ ld bc, $000b
+ jp CopyBytes
+; 13783
+
+INCBIN "baserom.gbc", $13783, $13807 - $13783
+
+Function13807: ; 13807
+ ld hl, $d00a
+ ld de, $fffc
+ ld b, $3
+.asm_1380f
+ ld a, [hl]
+ cp $1
+ jr z, .asm_13818
+ add hl, de
+ dec b
+ jr nz, .asm_1380f
+
+.asm_13818
+ ret
+; 13819
+
+Function13819: ; 13819
+ call Function13833
+ call Function138b0
+ ld hl, $d00e
+ ld a, $1
+ ld [hli], a
+ ld a, [$df9c]
+ ld [hli], a
+ ld a, [hProduct]
+ ld [hli], a
+ ld a, [hMultiplicand]
+ ld [hl], a
+ call Function1383e
+ ret
+; 13833
+
+Function13833: ; 13833
+ ld hl, DefaultFlypoint
+ ld b, $c
+ xor a
+.asm_13839
+ ld [hli], a
+ dec b
+ jr nz, .asm_13839
+ ret
+; 1383e
+
+Function1383e: ; 1383e
+ ld de, $d010
+ ld hl, $d004
+ ld c, $2
+ call StringCmp
+ jr c, .asm_1386b
+ ld hl, EndFlypoint
+ ld de, $d00a
+ ld bc, $0004
+ call CopyBytes
+ ld hl, DefaultFlypoint
+ ld de, EndFlypoint
+ ld bc, $0004
+ call CopyBytes
+ ld hl, DefaultFlypoint
+ call Function138a0
+ jr .asm_1389f
+
+.asm_1386b
+ ld de, $d010
+ ld hl, $d008
+ ld c, $2
+ call StringCmp
+ jr c, .asm_1388c
+ ld hl, EndFlypoint
+ ld de, $d00a
+ ld bc, $0004
+ call CopyBytes
+ ld hl, EndFlypoint
+ call Function138a0
+ jr .asm_1389f
+
+.asm_1388c
+ ld de, $d010
+ ld hl, $d00c
+ ld c, $2
+ call StringCmp
+ jr c, .asm_1389f
+ ld hl, $d00a
+ call Function138a0
+
+.asm_1389f
+ ret
+; 138a0
+
+Function138a0: ; 138a0
+ ld de, $d00e
+ 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 a, [de]
+ inc de
+ ld [hl], a
+ ret
+; 138b0
+
+Function138b0: ; 138b0
+ ld e, $0
+.asm_138b2
+ push de
+ call Function139ed
+ pop de
+ jr nz, .asm_138f9
+ ld a, e
+ inc a
+ inc a
+ ld [$d00e], a
+ dec a
+ ld c, a
+ ld b, $0
+ ld hl, $7783
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ inc hl
+ inc hl
+.asm_138cd
+ call Random
+ and $3
+ cp $3
+ jr z, .asm_138cd
+ ld c, a
+ ld b, $0
+ add hl, bc
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld [$d00f], a
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call Random
+ and $7
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, h
+ ld [$d010], a
+ ld a, l
+ ld [$d011], a
+ push de
+ call Function1383e
+ pop de
+
+.asm_138f9
+ inc e
+ ld a, e
+ cp $a
+ jr nz, .asm_138b2
+ ret
+; 13900
+
+Function13900: ; 13900
+ xor a
+ ld [hProduct], a
+ ld [hMultiplicand], a
+ ld a, [$df9c]
+ and a
+ jr z, .asm_1397e
+ ld a, [$dfc1]
+ call Function1397f
+ ld a, [$dfc1]
+ call Function1397f
+ ld a, [$dfc1]
+ call Function1397f
+ ld a, [$dfc1]
+ call Function1397f
+ ld a, [$dfc3]
+ call Function1397f
+ ld a, [$dfc5]
+ call Function1397f
+ ld a, [$dfc7]
+ call Function1397f
+ ld a, [$dfc9]
+ call Function1397f
+ ld a, [$dfcb]
+ call Function1397f
+ ld a, [$dfb1]
+ ld b, a
+ and $2
+ add a
+ add a
+ ld c, a
+ swap b
+ ld a, b
+ and $2
+ add a
+ add c
+ ld d, a
+ ld a, [$dfb2]
+ ld b, a
+ and $2
+ ld c, a
+ swap b
+ ld a, b
+ and $2
+ srl a
+ add c
+ add c
+ add d
+ add d
+ call Function1397f
+ ld a, [$dfbf]
+ srl a
+ srl a
+ srl a
+ call Function1397f
+ ld a, [$df9d]
+ and a
+ jr z, .asm_1397e
+ ld a, $1
+ call Function1397f
+
+.asm_1397e
+ ret
+; 1397f
+
+Function1397f: ; 1397f
+ ld hl, hMultiplicand
+ add [hl]
+ ld [hl], a
+ ret nc
+ dec hl
+ inc [hl]
+ ret
+; 13988
+
Function13988: ; 13988
ld hl, PartyMon1PokerusStatus
ld a, [PartyCount]
@@ -24236,9 +24816,25 @@
ret
; 139a8
-INCBIN "baserom.gbc", $139a8, $13b87 - $139a8
+INCBIN "baserom.gbc", $139a8, $139ed - $139a8
+Function139ed: ; 139ed
+ ld hl, $79fe
+ ld e, a
+ ld d, $0
+ add hl, de
+ add hl, de
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld b, $2
+ call EventFlagAction
+ ret
+; 139fe
+INCBIN "baserom.gbc", $139fe, $13b87 - $139fe
+
+
GetSquareRoot: ; 13b87
; Return the square root of de in b.
@@ -26710,8 +27306,90 @@
jr .asm_1541d
; 15440
-INCBIN "baserom.gbc", $15440, $15736 - $15440
+INCBIN "baserom.gbc", $15440, $156b3 - $15440
+Function156b3: ; 156b3
+ ld de, $000d
+ jr Function156d0
+
+Function156b8: ; 156b8
+ ld de, $000e
+ call Function156d0
+ call WaitSFX
+ ret
+
+Function156c1: ; 156c1
+ ld de, $000f
+ jr Function156d0
+
+Function156c6: ; 156c6
+ ld de, $0020
+ call Function156d0
+ ld de, $0020
+
+Function156d0: ; 156d0
+ push de
+ call WaitSFX
+ pop de
+ call StartSFX
+ ret
+; 156d9
+
+Function156d9: ; 156d9
+ call Function156b3
+ ld hl, $56ff
+ call Function15a20
+ ld b, $1
+ call Function15704
+ and a
+ jr nz, .asm_156f9
+ call Function2173
+ call Function321c
+ call Function1ad2
+ call Function156b8
+ ld c, $0
+ ret
+
+.asm_156f9
+ call WhiteBGMap
+ ld c, $1
+ ret
+; 156ff
+
+INCBIN "baserom.gbc", $156ff, $15704 - $156ff
+
+Function15704: ; 15704
+ ld a, b
+ ld [$cf76], a
+ ld hl, $57cc
+ call Function157bb
+ call Function15715
+ call Function1c07
+ ret
+; 15715
+
+Function15715: ; 15715
+ xor a
+ ld [$d0d7], a
+ ld [$d0dd], a
+ ld hl, KrissPCMenuData
+ call LoadMenuDataHeader
+.asm_15722
+ call UpdateTimePals
+ call Function1e5d
+ jr c, .asm_15731
+ call Function1fa7
+ jr nc, .asm_15722
+ jr .asm_15732
+
+.asm_15731
+ xor a
+
+.asm_15732
+ call Function1c07
+ ret
+; 15736
+
KrissPCMenuData: ; 0x15736
db %01000000
db 0, 0 ; top left corner coords (y, x)
@@ -26771,8 +27449,19 @@
db LOG_OFF
db $ff
-INCBIN "baserom.gbc", $157bb, $157d1 - $157bb
+Function157bb: ; 157bb
+ ld a, [Options]
+ push af
+ set 4, a
+ ld [Options], a
+ call Function1d4f
+ pop af
+ ld [Options], a
+ ret
+; 157cc
+INCBIN "baserom.gbc", $157cc, $157d1 - $157cc
+
KrisWithdrawItemMenu: ; 0x157d1
call Function1d6e
ld a, BANK(ClearPCItemScreen)
@@ -27135,9 +27824,15 @@
dbw BANK(Function24ac3), Function24ac3
dbw BANK(Function244c3), Function244c3
-INCBIN "baserom.gbc", $15a20, $15a45 - $15a20
+Function15a20: ; 15a20
+ call Function1d4f
+ call Function1c07
+ ret
+; 15a27
+INCBIN "baserom.gbc", $15a27, $15a45 - $15a27
+
OpenMartDialog: ; 15a45
call GetMart
ld a, c
@@ -28056,9 +28751,249 @@
INCLUDE "items/marts.asm"
-INCBIN "baserom.gbc", $16218, $16e1d - $16218
+INCBIN "baserom.gbc", $16218, $16be4 - $16218
+Function16be4: ; 16be4
+ ld a, [UnownDex]
+ and a
+ ret z
+ ld a, [$ffaa]
+ push af
+ ld a, $1
+ ld [$ffaa], a
+ ld a, [Options]
+ push af
+ set 4, a
+ ld [Options], a
+ call WhiteBGMap
+ call ClearTileMap
+
+ ld de, UnownDexATile
+ ld hl, $8ef0
+ ld bc, $0501
+ call Request1bpp
+
+ ld de, UnownDexBTile
+ ld hl, $8f50
+ ld bc, $0501
+ call Request1bpp
+
+ ld hl, TileMap
+ ld bc, $0312
+ call TextBox
+
+ ld hl, $c504
+ ld bc, $0707
+ call TextBox
+
+ ld hl, $c5b8
+ ld bc, $0212
+ call TextBox
+
+ ld hl, $c4c9
+ ld de, AlphRuinsStampString
+ call PlaceString
+
+ ld hl, $c5e1
+ ld de, UnownDexDoWhatString
+ call PlaceString
+
+ ld hl, $c522
+ ld de, UnownDexMenuString
+ call PlaceString
+
+ xor a
+ ld [$cf63], a
+ call Function16cc8
+ call WaitBGMap
+
+ ld a, UNOWN
+ ld [CurPartySpecies], a
+ xor a
+ ld [TempMonDVs], a
+ ld [TempMonDVs + 1], a
+
+ ld b, $1c
+ call GetSGBLayout
+ call Function32f9
+
+.asm_16c6b
+ call Functiona57
+
+ ld a, [hJoyPressed]
+ and BUTTON_B
+ jr nz, .asm_16c95
+
+ ld a, [hJoyPressed]
+ and BUTTON_A
+ jr nz, .asm_16c82
+
+ call Function16ca0
+ call DelayFrame
+ jr .asm_16c6b
+
+.asm_16c82
+ ld a, [$cf63]
+ push af
+ callba Function84560
+ call Function3d47
+ pop af
+ ld [$cf63], a
+ jr .asm_16c6b
+
+.asm_16c95
+ pop af
+ ld [Options], a
+ pop af
+ ld [$ffaa], a
+ call Function222a
+ ret
+; 16ca0
+
+Function16ca0: ; 16ca0
+ ld a, [$ffa9]
+ and $10
+ jr nz, .asm_16cb9
+ ld a, [$ffa9]
+ and $20
+ jr nz, .asm_16cad
+ ret
+
+.asm_16cad
+ ld hl, $cf63
+ ld a, [hl]
+ and a
+ jr nz, .asm_16cb6
+ ld [hl], $1b
+
+.asm_16cb6
+ dec [hl]
+ jr .asm_16cc4
+
+.asm_16cb9
+ ld hl, $cf63
+ ld a, [hl]
+ cp $1a
+ jr c, .asm_16cc3
+ ld [hl], $ff
+
+.asm_16cc3
+ inc [hl]
+
+.asm_16cc4
+ call Function16cc8
+ ret
+; 16cc8
+
+Function16cc8: ; 16cc8
+ ld a, [$cf63]
+ cp 26
+ jr z, Function16d20
+ inc a
+ ld [UnownLetter], a
+ ld a, UNOWN
+ ld [CurPartySpecies], a
+ xor a
+ ld [$c2c6], a
+ ld de, VTiles2
+ ld a, $3c
+ call Predef
+ call Function16cff
+ ld hl, $c519
+ xor a
+ ld [$ffad], a
+ ld bc, $0707
+ ld a, $13
+ call Predef
+ ld de, $9310
+ callba Functione0000
+ ret
+; 16cff
+
+Function16cff: ; 16cff
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+ ld a, $0
+ call GetSRAMBank
+ ld de, Unkn1Pals
+ ld hl, $a000
+ ld a, [hROMBank]
+ ld b, a
+ ld c, $31
+ call Get2bpp
+ call CloseSRAM
+ pop af
+ ld [rSVBK], a
+ ret
+; 16d20
+
+Function16d20: ; 16d20
+ ld hl, $c519
+ ld bc, $0707
+ call ClearBox
+ ld hl, $c555
+ ld de, UnownDexVacantString
+ call PlaceString
+ xor a
+ call GetSRAMBank
+ ld hl, $a000
+ ld bc, $0310
+ xor a
+ call ByteFill
+ ld hl, $9310
+ ld de, $a000
+ ld c, $31
+ ld a, [hROMBank]
+ ld b, a
+ call Get2bpp
+ call CloseSRAM
+ ld c, $14
+ call DelayFrames
+ ret
+; 16d57
+
+AlphRuinsStampString:
+ db " ALPH RUINS STAMP@"
+
+UnownDexDoWhatString:
+ db "Do what?@"
+
+UnownDexMenuString:
+ db $ef, " PRINT", $4e
+ db $f5, " CANCEL", $4e
+ db $df, " PREVIOUS", $4e
+ db $eb, " NEXT@"
+
+UnownDexVacantString:
+ db "VACANT@"
+; 16d9c
+
+UnownDexATile: ; 16d9c
+ INCBIN "baserom.gbc", $16d9c, $16da4 - $16d9c
+UnownDexBTile: ; 16da4
+ INCBIN "baserom.gbc", $16da4, $16dac - $16da4
+; 16dac
+
+Function16dac: ; 16dac
+ ld hl, TileMap
+ ld bc, $0168
+ ld a, $7f
+ call ByteFill
+ ld hl, $c583
+ ld a, $31
+ ld [$ffad], a
+ ld bc, $0707
+ ld a, $13
+ call Predef
+ ret
+; 16dc7
+
+INCBIN "baserom.gbc", $16dc7, $16e1d - $16dc7
+
+
Function16e1d: ; 16e1d
call Function16ed6
ld c, $0
@@ -33689,11 +34624,14 @@
ld a, [$cfc0]
bit 0, a
ld hl, $d26b
- jp nz, $5984
+ jp nz, Function39984
+
ld a, [OtherTrainerID]
ld b, a
ld a, [OtherTrainerClass]
ld c, a
+
+Function3994c: ; 3994c
ld a, c
cp $c
jr nz, .asm_3996d
@@ -33706,7 +34644,7 @@
ld a, $0
call GetSRAMBank
ld hl, $abfe
- call $5984
+ call Function39984
jp CloseSRAM
.asm_3996d
@@ -33720,9 +34658,10 @@
ld h, [hl]
ld l, a
pop bc
+
.asm_3997a
dec b
- jr z, .asm_39984
+ jr z, Function39984
.asm_3997d
ld a, [hli]
cp $ff
@@ -33729,7 +34668,7 @@
jr nz, .asm_3997d
jr .asm_3997a
-.asm_39984
+Function39984: ; 39984
ld de, StringBuffer1
push de
ld bc, $000b
@@ -33746,8 +34685,6 @@
ret
; 39999
-
-
TrainerGroups: ; 0x39999
INCLUDE "trainers/trainer_pointers.asm"
@@ -43487,9 +44424,99 @@
jp [hl]
; 40115
-INCBIN "baserom.gbc", $40115, $40ad5 - $40115
+INCBIN "baserom.gbc", $40115, $40741 - $40115
+Function40741: ; 40741
+ push de
+ ld de, $0014
+.asm_40745
+ ld [hl], a
+ add hl, de
+ dec b
+ jr nz, .asm_40745
+ pop de
+ ret
+; 4074c
+INCBIN "baserom.gbc", $4074c, $407fd - $4074c
+
+Function407fd: ; 407fd
+ call Function40aa6
+ ld hl, TileMap
+ ld bc, $0f12
+ call Function40ad5
+ ld hl, $c4b3
+ ld [hl], $34
+ ld hl, $c4c7
+ ld a, $7f
+ ld b, $f
+ call Function40741
+ ld [hl], $39
+ ld hl, $c569
+ ld bc, $0013
+ ld a, $61
+ call ByteFill
+ ld hl, $c5f5
+ ld bc, $0012
+ ld a, $7f
+ call ByteFill
+ ld hl, $c535
+ ld de, $4852
+ call Function40acd
+ ld hl, $c55d
+ ld de, $485c
+ call Function40acd
+ ld hl, $c5f4
+ ld de, $4867
+ call Function40acd
+ call Function40ab2
+ ret
+; 4084f
+
+INCBIN "baserom.gbc", $4084f, $40aa6 - $4084f
+
+Function40aa6: ; 40aa6
+ ld hl, TileMap
+ ld a, $32
+ ld bc, $0168
+ call ByteFill
+ ret
+; 40ab2
+
+Function40ab2: ; 40ab2
+ ld hl, $c4b5
+ xor a
+ ld b, $7
+.asm_40ab8
+ ld c, $7
+ push af
+ push hl
+.asm_40abc
+ ld [hli], a
+ add $7
+ dec c
+ jr nz, .asm_40abc
+ pop hl
+ ld de, $0014
+ add hl, de
+ pop af
+ inc a
+ dec b
+ jr nz, .asm_40ab8
+ ret
+; 40acd
+
+Function40acd: ; 40acd
+.asm_40acd
+ ld a, [de]
+ cp $ff
+ ret z
+ inc de
+ ld [hli], a
+ jr .asm_40acd
+; 40ad5
+
+
Function40ad5: ; 40ad5
push hl
ld a, $33
@@ -43535,9 +44562,23 @@
jr .asm_40b07
; 40b0f
-INCBIN "baserom.gbc", $40b0f, $40bb1 - $40b0f
+INCBIN "baserom.gbc", $40b0f, $40ba0 - $40b0f
+Function40ba0: ; 40ba0
+ ld hl, $c4c6
+ ld a, $62
+ ld [hli], a
+ inc a
+ ld [hl], a
+ ld hl, $c4da
+ ld a, $64
+ ld [hli], a
+ inc a
+ ld [hl], a
+ ret
+; 40bb1
+
Function40bb1: ; 40bb1
ld a, [$c7d1]
ld hl, $c7d0
@@ -43604,9 +44645,19 @@
ret
; 40e7d
-INCBIN "baserom.gbc", $40e7d, $41432 - $40e7d
+INCBIN "baserom.gbc", $40e7d, $41423 - $40e7d
+Function41423: ; 41423
+ ld b, a
+ call GetSGBLayout
+ ld a, $e4
+ call DmgToCgbBGPals
+ ld a, $e0
+ call Functioncf8
+ ret
+; 41432
+
Function41432: ; 41432
ld e, a
ld d, $0
@@ -43648,9 +44699,44 @@
ret
; 41478
-INCBIN "baserom.gbc", $41478, $414b7 - $41478
+INCBIN "baserom.gbc", $41478, $4147b - $41478
+Function4147b: ; 4147b
+ ld a, [$d265]
+ dec a
+ and $f8
+ srl a
+ srl a
+ srl a
+ ld e, $0
+ ld d, a
+ ld a, [$d265]
+ dec a
+ and $7
+ swap a
+ ld l, a
+ ld h, $0
+ add hl, de
+ ld de, $5434
+ add hl, de
+ push hl
+ ld e, l
+ ld d, h
+ ld hl, $9620
+ ld bc, $3e02
+ call Request1bpp
+ pop hl
+ ld de, $0080
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, $9640
+ ld bc, $3e02
+ call Request1bpp
+ ret
+; 414b7
+
Function414b7: ; 414b7
call DisableLCD
ld hl, VTiles2
@@ -43730,9 +44816,45 @@
ret
; 41a58
-INCBIN "baserom.gbc", $41a58, $41af7 - $41a58
+INCBIN "baserom.gbc", $41a58, $41a7f - $41a58
+Function41a7f: ; 41a7f
+ xor a
+ ld [hBGMapMode], a
+ callba Function1de247
+ call Function41af7
+ call DisableLCD
+ call Functione51
+ call Functione5f
+ call Function414b7
+ call Function4147b
+ ld a, [$d265]
+ ld [CurPartySpecies], a
+ call Function407fd
+ call Function40ba0
+ ld hl, $c5f4
+ ld [hl], $3b
+ inc hl
+ ld bc, $0013
+ ld a, $7f
+ call ByteFill
+ callba Function4424d
+ call EnableLCD
+ call WaitBGMap
+ call GetBaseData
+ ld de, VTiles2
+ ld a, $3c
+ call Predef
+ ld a, $4
+ call Function41423
+ ld a, [CurPartySpecies]
+ call Function37ce
+ ret
+; 41ad7
+INCBIN "baserom.gbc", $41ad7, $41af7 - $41ad7
+
+
Function41af7: ; 41af7
xor a
ld [hBGMapMode], a
@@ -44789,9 +45911,167 @@
jr .asm_44210
; 44228
-INCBIN "baserom.gbc", $44228, $44378 - $44228
+INCBIN "baserom.gbc", $44228, $4424d - $44228
+Function4424d: ; 4424d
+ call GetPokemonName
+ ld hl, $c4e5
+ call PlaceString
+ ld a, [$d265]
+ ld b, a
+ call Function44333
+ ld a, b
+ push af
+ ld hl, $c50d
+ call Function13d4
+ ld h, b
+ ld l, c
+ push de
+ ld hl, $c542
+ ld a, $5c
+ ld [hli], a
+ ld a, $5d
+ ld [hli], a
+ ld de, $d265
+ ld bc, $8103
+ call PrintNum
+ ld a, [$d265]
+ dec a
+ call CheckSeenMon
+ pop hl
+ pop bc
+ ret z
+ ld a, [CurPartySpecies]
+ ld [CurSpecies], a
+ inc hl
+ ld a, b
+ push af
+ push hl
+ call GetFarHalfword
+ ld d, l
+ ld e, h
+ pop hl
+ inc hl
+ inc hl
+ ld a, d
+ or e
+ jr z, .asm_442b0
+ push hl
+ push de
+ ld hl, [sp+$0]
+ ld d, h
+ ld e, l
+ ld hl, $c538
+ ld bc, $0224
+ call PrintNum
+ ld hl, $c53a
+ ld [hl], $5e
+ pop af
+ pop hl
+.asm_442b0
+ pop af
+ push af
+ inc hl
+ push hl
+ dec hl
+ call GetFarHalfword
+ ld d, l
+ ld e, h
+ ld a, e
+ or d
+ jr z, .asm_442cd
+ push de
+ ld hl, [sp+$0]
+ ld d, h
+ ld e, l
+ ld hl, $c55f
+ ld bc, ClearVRAM
+ call PrintNum
+ pop de
+
+.asm_442cd
+ ld bc, $0512
+ ld hl, $c57e
+ call ClearBox
+ ld hl, $c569
+ ld bc, $0013
+ ld a, $61
+ call ByteFill
+ ld hl, $c555
+ ld [hl], $55
+ inc hl
+ ld [hl], $55
+ ld hl, $c569
+ ld [hl], $56
+ inc hl
+ ld [hl], $57
+ pop de
+ inc de
+ pop af
+ ld hl, $c57e
+ push af
+ call Function13d4
+ pop bc
+ ld a, [$cf65]
+ or a
+ ret z
+ push bc
+ push de
+ ld bc, $0512
+ ld hl, $c57e
+ call ClearBox
+ ld hl, $c569
+ ld bc, $0013
+ ld a, $61
+ call ByteFill
+ ld hl, $c555
+ ld [hl], $55
+ inc hl
+ ld [hl], $55
+ ld hl, $c569
+ ld [hl], $56
+ inc hl
+ ld [hl], $58
+ pop de
+ inc de
+ pop af
+ ld hl, $c57e
+ call Function13d4
+ ret
+; 44331
+
+INCBIN "baserom.gbc", $44331, $44333 - $44331
+
+Function44333: ; 44333
+ push hl
+ ld hl, PokedexDataPointerTable
+ ld a, b
+ dec a
+ ld d, $0
+ ld e, a
+ add hl, de
+ add hl, de
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ push de
+ rlca
+ rlca
+ and $3
+ ld hl, $4351
+ ld d, $0
+ ld e, a
+ add hl, de
+ ld b, [hl]
+ pop de
+ pop hl
+ ret
+; 44351
+
+INCBIN "baserom.gbc", $44351, $44378 - $44351
+
+
PokedexDataPointerTable: ; 0x44378
INCLUDE "stats/pokedex/entry_pointers.asm"
@@ -47112,8 +48392,147 @@
ret
; 4dbb8
-INCBIN "baserom.gbc", $4dbb8, $4dc8a - $4dbb8
+INCBIN "baserom.gbc", $4dbb8, $4dbd2 - $4dbb8
+Function4dbd2: ; 4dbd2
+ ld hl, PartyMon1Level
+ call Function4dc31
+ ret
+; 4dbd9
+
+Function4dbd9: ; 4dbd9
+ ld hl, PartyMon1Happiness
+ call Function4dc0a
+ ret
+; 4dbe0
+
+Function4dbe0: ; 4dbe0
+ ld hl, PartyMon1Species
+ jp Function4dc56
+; 4dbe6
+
+Function4dbe6: ; 4dbe6
+ ld hl, PartyMon1Species
+ call Function4dc56
+ ret z
+ ld a, c
+ ld hl, PartyMon1ID
+ ld bc, $0030
+ call AddNTimes
+ ld a, [PlayerID]
+ cp [hl]
+ jr nz, .asm_4dc08
+ inc hl
+ ld a, [$d47c]
+ cp [hl]
+ jr nz, .asm_4dc08
+ ld a, $1
+ and a
+ ret
+
+.asm_4dc08
+ xor a
+ ret
+; 4dc0a
+
+Function4dc0a: ; 4dc0a
+ ld c, $0
+ ld a, [PartyCount]
+ ld d, a
+.asm_4dc10
+ ld a, d
+ dec a
+ push hl
+ push bc
+ ld bc, $0030
+ call AddNTimes
+ pop bc
+ ld a, b
+ cp [hl]
+ pop hl
+ jr z, .asm_4dc22
+ jr nc, .asm_4dc26
+
+.asm_4dc22
+ ld a, c
+ or $1
+ ld c, a
+
+.asm_4dc26
+ sla c
+ dec d
+ jr nz, .asm_4dc10
+ call Function4dc67
+ ld a, c
+ and a
+ ret
+; 4dc31
+
+Function4dc31: ; 4dc31
+ ld c, $0
+ ld a, [PartyCount]
+ ld d, a
+.asm_4dc37
+ ld a, d
+ dec a
+ push hl
+ push bc
+ ld bc, $0030
+ call AddNTimes
+ pop bc
+ ld a, b
+ cp [hl]
+ pop hl
+ jr c, .asm_4dc4b
+ ld a, c
+ or $1
+ ld c, a
+
+.asm_4dc4b
+ sla c
+ dec d
+ jr nz, .asm_4dc37
+ call Function4dc67
+ ld a, c
+ and a
+ ret
+; 4dc56
+
+Function4dc56: ; 4dc56
+ ld c, $ff
+ ld hl, PartySpecies
+.asm_4dc5b
+ ld a, [hli]
+ cp $ff
+ ret z
+ inc c
+ cp b
+ jr nz, .asm_4dc5b
+ ld a, $1
+ and a
+ ret
+; 4dc67
+
+Function4dc67: ; 4dc67
+ ld e, $fe
+ ld hl, PartySpecies
+.asm_4dc6c
+ ld a, [hli]
+ cp $ff
+ ret z
+ cp $fd
+ jr nz, .asm_4dc77
+ ld a, c
+ and e
+ ld c, a
+
+.asm_4dc77
+ rlc e
+ jr .asm_4dc6c
+; 4dc7b
+
+INCBIN "baserom.gbc", $4dc7b, $4dc8a - $4dc7b
+
StatsScreenInit: ; 4dc8a
ld hl, StatsScreenMain
jr .gotaddress
@@ -51500,8 +52919,68 @@
ret
; 8442c
-INCBIN "baserom.gbc", $8442c, $845d4 - $8442c
+INCBIN "baserom.gbc", $8442c, $84560 - $8442c
+Function84560: ; 84560
+ ld a, [$cf65]
+ push af
+ xor a
+ ld [$ffac], a
+ call Function8474c
+ ld a, [rIE]
+ push af
+ xor a
+ ld [rIF], a
+ ld a, $9
+ ld [rIE], a
+ ld hl, $ff9e
+ ld a, [hl]
+ push af
+ ld [hl], $4
+ xor a
+ ld [hBGMapMode], a
+ call Function309d
+ callba Function16dac
+ ld a, $0
+ call Function84419
+ call Function30b4
+ call Function84742
+ ld a, $9
+ ld [$cf65], a
+.asm_84597
+ call Functiona57
+ call Function846f6
+ jr c, .asm_845c0
+ ld a, [$cf63]
+ bit 7, a
+ jr nz, .asm_845c0
+ call Function84022
+ ld a, [$cf63]
+ cp $2
+ jr nc, .asm_845b5
+ ld a, $3
+ ld [$ca81], a
+
+.asm_845b5
+ call Function84757
+ call Function84785
+ call DelayFrame
+ jr .asm_84597
+
+.asm_845c0
+ pop af
+ ld [$ff9e], a
+ call Function84411
+ call Function30b4
+ xor a
+ ld [rIF], a
+ pop af
+ ld [rIE], a
+ pop af
+ ld [$cf65], a
+ ret
+; 845d4
+
Function845d4: ; 845d4
call Function845db
call Function84425
@@ -51597,7 +53076,14 @@
ret
; 84742
-INCBIN "baserom.gbc", $84742, $8474c - $84742
+Function84742: ; 84742
+ xor a
+ ld [hJoyReleased], a
+ ld [hJoyPressed], a
+ ld [hJoyDown], a
+ ld [$ffa9], a
+ ret
+; 8474c
Function8474c: ; 8474c
ld de, $005b
@@ -56926,8 +58412,187 @@
db "SATURDAY@"
-INCBIN "baserom.gbc", $90a3f, $914dd - $90a3f
+INCBIN "baserom.gbc", $90a3f, $90c4e - $90a3f
+Function90c4e: ; 90c4e
+ call Functiond79
+ ld hl, $4ba0
+ ld de, VTiles2
+ ld a, $3e
+ call FarDecompress
+ ld hl, $62e4
+ ld de, $9300
+ ld a, $77
+ call FarDecompress
+ ld hl, PokegearSpritesGFX
+ ld de, VTiles0
+ ld a, $24
+ call Decompress
+ ld a, [MapGroup]
+ ld b, a
+ ld a, [MapNumber]
+ ld c, a
+ call GetWorldMapLocation
+ cp $5f
+ jr z, .asm_90ca5
+ callba GetPlayerIcon
+ push de
+ ld h, d
+ ld l, e
+ ld a, b
+ push af
+ ld de, $8100
+ ld bc, $0040
+ call FarCopyBytes
+ pop af
+ pop hl
+ ld de, $00c0
+ add hl, de
+ ld de, $8140
+ ld bc, $0040
+ call FarCopyBytes
+ ret
+
+.asm_90ca5
+ ld hl, $4cb2
+ ld de, $8100
+ ld bc, $0080
+ call CopyBytes
+ ret
+; 90cb2
+
+INCBIN "baserom.gbc", $90cb2, $90d56 - $90cb2
+
+Function90d56: ; 90d56
+ ld a, [MapGroup]
+ ld b, a
+ ld a, [MapNumber]
+ ld c, a
+ call GetWorldMapLocation
+ cp $0
+ ret nz
+ ld a, [BackupMapGroup]
+ ld b, a
+ ld a, [BackupMapNumber]
+ ld c, a
+ call GetWorldMapLocation
+ ret
+; 90d70
+
+INCBIN "baserom.gbc", $90d70, $9106a - $90d70
+
+Function9106a: ; 9106a
+ push af
+ ld de, $0000
+ ld b, $a
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .asm_91079
+ ld b, $1e
+
+.asm_91079
+ ld a, b
+ call Function3b2a
+ ld hl, $0003
+ add hl, bc
+ ld [hl], $10
+ pop af
+ ld e, a
+ push bc
+ callba GetLandmarkCoords
+ pop bc
+ ld hl, $0004
+ add hl, bc
+ ld [hl], e
+ ld hl, $0005
+ add hl, bc
+ ld [hl], d
+ ret
+; 91098
+
+Function91098: ; 91098
+ push af
+ ld de, $0000
+ ld a, $d
+ call Function3b2a
+ ld hl, $0003
+ add hl, bc
+ ld [hl], $4
+ ld hl, $0002
+ add hl, bc
+ ld [hl], $0
+ pop af
+ push bc
+ call Function910d4
+ pop bc
+ ret
+; 910b4
+
+Function910b4: ; 910b4
+ push af
+ ld hl, $c4a8
+ ld bc, $020c
+ call ClearBox
+ pop af
+ ld e, a
+ push de
+ callba GetLandmarkName
+ pop de
+ callba Function1de2c5
+ ld hl, $c4a8
+ ld [hl], $34
+ ret
+; 910d4
+
+Function910d4: ; 910d4
+ push bc
+ ld e, a
+ callba GetLandmarkCoords
+ pop bc
+ ld hl, $0004
+ add hl, bc
+ ld [hl], e
+ ld hl, $0005
+ add hl, bc
+ ld [hl], d
+ ret
+; 910e8
+
+Function910e8: ; 910e8
+ ld a, [StatusFlags]
+ bit 6, a
+ jr z, .asm_910f4
+ ld d, $5e
+ ld e, $2f
+ ret
+
+.asm_910f4
+ ld d, $5e
+ ld e, $58
+ ret
+; 910f9
+
+INCBIN "baserom.gbc", $910f9, $91492 - $910f9
+
+Function91492: ; 91492
+ ld a, [EnemyTurnsTaken]
+ cp $fe
+ jr z, .asm_914a3
+ cp $ff
+ call z, Function3d03
+ xor a
+ ld [EnemyTurnsTaken], a
+ ret
+
+.asm_914a3
+ call Function3d47
+ xor a
+ ld [EnemyTurnsTaken], a
+ ret
+; 914ab
+
+INCBIN "baserom.gbc", $914ab, $914dd - $914ab
+
PokegearSpritesGFX: ; 914dd
INCBIN "gfx/misc/pokegear_sprites.lz"
; 91508
@@ -56946,8 +58611,224 @@
db "# FLUTE@"
; 9191c
-INCBIN "baserom.gbc", $9191c, $91ae1 - $9191c
+Function9191c: ; 9191c
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set 4, [hl]
+ ld a, [$ffaa]
+ push af
+ ld a, $1
+ ld [$ffaa], a
+ ld a, [VramState]
+ push af
+ xor a
+ ld [VramState], a
+ call WhiteBGMap
+ call ClearTileMap
+ call ClearSprites
+ call DisableLCD
+ call Function90c4e
+ callba Function8cf53
+ ld a, $8
+ call Function3cb4
+ ld a, $e3
+ ld [rLCDC], a
+ call Function90d56
+ ld [DefaultFlypoint], a
+ ld [$d003], a
+ xor a
+ ld [hBGMapMode], a
+ call Function91a04
+ call Function3200
+ ld a, [DefaultFlypoint]
+ call Function9106a
+ ld a, [$d003]
+ call Function91098
+ ld a, c
+ ld [$d004], a
+ ld a, b
+ ld [StartFlypoint], a
+ ld b, $2
+ call GetSGBLayout
+ call Function32f9
+ ld a, [hCGB]
+ and a
+ jr z, .asm_9198b
+ ld a, $e4
+ call Functioncf8
+ call DelayFrame
+.asm_9198b
+ ld a, [DefaultFlypoint]
+ cp $2f
+ jr nc, .asm_9199b
+ ld d, $2e
+ ld e, $1
+ call Function919b0
+ jr .asm_919a1
+
+.asm_9199b
+ call Function910e8
+ call Function919b0
+
+.asm_919a1
+ pop af
+ ld [VramState], a
+ pop af
+ ld [$ffaa], a
+ pop af
+ ld [Options], a
+ call WhiteBGMap
+ ret
+; 919b0
+
+Function919b0: ; 919b0
+.asm_919b0
+ call Functiona57
+ ld hl, hJoyPressed
+ ld a, [hl]
+ and $2
+ ret nz
+ ld hl, $ffa9
+ ld a, [hl]
+ and $40
+ jr nz, .asm_919d4
+ ld a, [hl]
+ and $80
+ jr nz, .asm_919e1
+.asm_919c7
+ push de
+ callba Function8cf69
+ pop de
+ call DelayFrame
+ jr .asm_919b0
+
+.asm_919d4
+ ld hl, $d003
+ ld a, [hl]
+ cp d
+ jr c, .asm_919de
+ ld a, e
+ dec a
+ ld [hl], a
+
+.asm_919de
+ inc [hl]
+ jr .asm_919ec
+
+.asm_919e1
+ ld hl, $d003
+ ld a, [hl]
+ cp e
+ jr nz, .asm_919eb
+ ld a, d
+ inc a
+ ld [hl], a
+
+.asm_919eb
+ dec [hl]
+
+.asm_919ec
+ push de
+ ld a, [$d003]
+ call Function910b4
+ ld a, [$d004]
+ ld c, a
+ ld a, [StartFlypoint]
+ ld b, a
+ ld a, [$d003]
+ call Function910d4
+ pop de
+ jr .asm_919c7
+; 91a04
+
+Function91a04: ; 91a04
+ ld a, [DefaultFlypoint]
+ cp $2f
+ jr nc, .asm_91a0f
+ ld e, $0
+ jr .asm_91a11
+
+.asm_91a0f
+ ld e, $1
+
+.asm_91a11
+ callba Function91ae1
+ ld a, $7
+ ld bc, $0006
+ ld hl, $c4a1
+ call ByteFill
+ ld hl, TileMap
+ ld [hl], $6
+ ld hl, $c4a7
+ ld [hl], $17
+ ld hl, $c4bb
+ ld [hl], $16
+ ld hl, $c4cf
+ ld [hl], $26
+ ld a, $7
+ ld bc, $000b
+ ld hl, $c4d0
+ call ByteFill
+ ld hl, $c4db
+ ld [hl], $17
+ ld a, [$d003]
+ call Function910b4
+ callba TownMapPals
+ ret
+; 91a53
+
+Function91a53: ; 91a53
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set 4, [hl]
+ call Function91a87
+ ld c, $64
+ call DelayFrames
+.asm_91a62
+ call Functiona57
+ ld a, [hJoyPressed]
+ and $3
+ jr nz, .asm_91a7f
+ ld a, [EnemyEvaLevel]
+ ld l, a
+ ld a, [$c6db]
+ ld h, a
+ ld a, [EnemyAccLevel]
+ and a
+ jr z, .asm_91a7a
+ rst FarCall
+
+.asm_91a7a
+ call DelayFrame
+ jr .asm_91a62
+
+.asm_91a7f
+ pop af
+ ld [Options], a
+ call Function91492
+ ret
+; 91a87
+
+Function91a87: ; 91a87
+ ld a, $ff
+ ld [EnemyTurnsTaken], a
+ ld hl, $5ab9
+ ld d, $0
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, $5a9b
+ push de
+ jp [hl]
+; 91a9b
+
+INCBIN "baserom.gbc", $91a9b, $91ae1 - $91a9b
+
Function91ae1: ; 91ae1
ld a, e
and a
@@ -61610,9 +63491,643 @@
SECTION "bank38",ROMX,BANK[$38]
-INCBIN "baserom.gbc", $e0000, $e37f9 - $e0000
+Functione0000: ; e0000
+ push de
+ xor a
+ call GetSRAMBank
+ ld hl, $a000
+ ld bc, $0000
+.asm_e000b
+ push bc
+ push hl
+ push bc
+ ld de, DefaultFlypoint
+ call Functione004e
+ call Functione0057
+ ld hl, $408b
+ pop bc
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld e, a
+ ld d, [hl]
+ ld hl, $d012
+ call Functione004e
+ pop hl
+ ld bc, $0010
+ add hl, bc
+ pop bc
+ inc c
+ ld a, c
+ cp $31
+ jr c, .asm_e000b
+ ld hl, OverworldMap
+ ld de, $a000
+ ld bc, $0310
+ call CopyBytes
+ pop hl
+ ld de, $a000
+ ld c, $31
+ ld a, [hROMBank]
+ ld b, a
+ call Get2bpp
+ call CloseSRAM
+ ret
+; e004e
+Functione004e: ; e004e
+ ld c, $10
+.asm_e0050
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .asm_e0050
+ ret
+; e0057
+Functione0057: ; e0057
+ ld hl, $d012
+ ld e, $80
+ ld d, $8
+.asm_e005e
+ push hl
+ ld hl, DefaultFlypoint
+ call Functione0078
+ pop hl
+ ld a, b
+ ld [hli], a
+ push hl
+ ld hl, $d003
+ call Functione0078
+ pop hl
+ ld a, b
+ ld [hli], a
+ srl e
+ dec d
+ jr nz, .asm_e005e
+ ret
+; e0078
+
+Functione0078: ; e0078
+ ld b, $0
+ ld c, $8
+.asm_e007c
+ ld a, [hli]
+ and e
+ jr z, .asm_e0083
+ scf
+ jr .asm_e0084
+
+.asm_e0083
+ and a
+
+.asm_e0084
+ rr b
+ inc hl
+ dec c
+ jr nz, .asm_e007c
+ ret
+; e008b
+
+INCBIN "baserom.gbc", $e008b, $e1190 - $e008b
+
+Functione1190: ; e1190
+ ld a, [$ffaa]
+ push af
+ ld a, $1
+ ld [$ffaa], a
+ call WhiteBGMap
+ call ClearTileMap
+ call ClearSprites
+ xor a
+ ld [hBGMapMode], a
+ call DisableLCD
+ ld hl, EnemyMoveAnimation
+ ld bc, $01e0
+ xor a
+ call ByteFill
+ ld hl, $57c5
+ ld de, $8e00
+ ld bc, $0040
+ call CopyBytes
+ ld hl, $5805
+ ld de, $8ed0
+ call Decompress
+ call Functione17a3
+ ld hl, TileMap
+ ld bc, $0168
+ ld a, $ee
+ call ByteFill
+ ld hl, $c4e0
+ ld bc, $0c0c
+ ld a, $ef
+ call Functione13ee
+ call Functione124e
+ call Functione13fe
+ call Functione127d
+ xor a
+ ld [hSCY], a
+ ld [hSCX], a
+ ld [rWY], a
+ ld [$cf63], a
+ ld [$cf64], a
+ ld [$cf65], a
+ ld [$cf66], a
+ ld a, $93
+ ld [rLCDC], a
+ call WaitBGMap
+ ld b, $18
+ call GetSGBLayout
+ ld a, $e4
+ call DmgToCgbBGPals
+ ld a, $24
+ call Functioncf8
+ xor a
+ ld [$d0ec], a
+ call DelayFrame
+.asm_e1217
+ call Functiona57
+ ld a, [$cf63]
+ bit 7, a
+ jr nz, .asm_e123d
+ call Functione12ca
+ ld a, [$cf64]
+ and a
+ jr nz, .asm_e1230
+ ld a, [$ff9b]
+ and $10
+ jr z, .asm_e1235
+
+.asm_e1230
+ call Functione14d9
+ jr .asm_e1238
+
+.asm_e1235
+ call ClearSprites
+
+.asm_e1238
+ call DelayFrame
+ jr .asm_e1217
+
+.asm_e123d
+ pop af
+ ld [$ffaa], a
+ call WhiteBGMap
+ call ClearTileMap
+ call ClearSprites
+ ld a, $e3
+ ld [rLCDC], a
+ ret
+; e124e
+
+Functione124e: ; e124e
+ ld c, $1
+ ld b, $10
+.asm_e1252
+ call Random
+ and $f
+ ld hl, $526d
+ ld e, a
+ ld d, $0
+ add hl, de
+ ld e, [hl]
+ ld hl, PlayerSDefLevel
+ add hl, de
+ ld a, [hl]
+ and a
+ jr nz, .asm_e1252
+ ld [hl], c
+ inc c
+ dec b
+ jr nz, .asm_e1252
+ ret
+; e126d
+
+INCBIN "baserom.gbc", $e126d, $e127d - $e126d
+
+Functione127d: ; e127d
+ call Functione128d
+ ld hl, $c5e5
+ ld a, $f6
+ ld c, $a
+.asm_e1287
+ ld [hli], a
+ inc a
+ dec c
+ jr nz, .asm_e1287
+ ret
+; e128d
+
+Functione128d: ; e128d
+ ld hl, $c5d0
+ ld a, $f0
+ ld [hli], a
+ ld bc, $000a
+ ld a, $f1
+ call ByteFill
+ ld hl, $c5db
+ ld a, $f2
+ ld [hli], a
+ ld hl, $c5e4
+ ld a, $f3
+ ld [hli], a
+ ld bc, $000a
+ ld a, $ef
+ call ByteFill
+ ld hl, $c5ef
+ ld a, $f3
+ ld [hli], a
+ ld hl, $c5f8
+ ld a, $f4
+ ld [hli], a
+ ld bc, $000a
+ ld a, $f1
+ call ByteFill
+ ld hl, $c603
+ ld a, $f5
+ ld [hl], a
+ ret
+; e12ca
+
+Functione12ca: ; e12ca
+ ld a, [$cf63]
+ ld e, a
+ ld d, $0
+ ld hl, $52d9
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; e12d9
+
+INCBIN "baserom.gbc", $e12d9, $e13ee - $e12d9
+
+Functione13ee: ; e13ee
+ ld de, $0014
+.asm_e13f1
+ push bc
+ push hl
+.asm_e13f3
+ ld [hli], a
+ dec c
+ jr nz, .asm_e13f3
+ pop hl
+ add hl, de
+ pop bc
+ dec b
+ jr nz, .asm_e13f1
+ ret
+; e13fe
+
+Functione13fe: ; e13fe
+ xor a
+ ld [$cf65], a
+ ld c, $24
+.asm_e1404
+ push bc
+ call Functione1475
+ ld [$cf66], a
+ and a
+ jr z, .asm_e1413
+ call Functione141f
+ jr .asm_e1416
+
+.asm_e1413
+ call Functione1441
+
+.asm_e1416
+ ld hl, $cf65
+ inc [hl]
+ pop bc
+ dec c
+ jr nz, .asm_e1404
+ ret
+; e141f
+
+Functione141f: ; e141f
+ ld a, $2
+ call Functione1463
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ push hl
+ call Functione1481
+ pop hl
+ ld de, $0014
+ ld b, $3
+.asm_e1431
+ ld c, $3
+ push hl
+.asm_e1434
+ ld [hli], a
+ inc a
+ dec c
+ jr nz, .asm_e1434
+ add $9
+ pop hl
+ add hl, de
+ dec b
+ jr nz, .asm_e1431
+ ret
+; e1441
+
+Functione1441: ; e1441
+ ld a, $2
+ call Functione1463
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ push hl
+ ld a, $4
+ call Functione1463
+ ld a, [hl]
+ pop hl
+ ld de, $0014
+ ld b, $3
+.asm_e1456
+ ld c, $3
+ push hl
+.asm_e1459
+ ld [hli], a
+ dec c
+ jr nz, .asm_e1459
+ pop hl
+ add hl, de
+ dec b
+ jr nz, .asm_e1456
+ ret
+; e1463
+
+Functione1463: ; e1463
+ ld e, a
+ ld d, $0
+ ld hl, $5559
+ add hl, de
+ ld a, [$cf65]
+ ld e, a
+ add hl, de
+ add hl, de
+ add hl, de
+ add hl, de
+ add hl, de
+ add hl, de
+ ret
+; e1475
+
+Functione1475: ; e1475
+ ld hl, PlayerSDefLevel
+ ld a, [$cf65]
+ ld e, a
+ ld d, $0
+ add hl, de
+ ld a, [hl]
+ ret
+; e1481
+
+Functione1481: ; e1481
+ ld a, [$cf66]
+ ld hl, $548f
+ add l
+ ld l, a
+ ld a, $0
+ adc h
+ ld h, a
+ ld a, [hl]
+ ret
+; e148f
+
+INCBIN "baserom.gbc", $e148f, $e14d9 - $e148f
+
+Functione14d9: ; e14d9
+ call Functione1481
+ ld [DefaultFlypoint], a
+ xor a
+ call Functione1463
+ ld a, [hli]
+ ld b, [hl]
+ ld c, a
+ ld a, [DefaultFlypoint]
+ cp $e0
+ jr z, .asm_e14f2
+ ld hl, $550f
+ jr .asm_e14f5
+
+.asm_e14f2
+ ld hl, $5534
+
+.asm_e14f5
+ ld de, Sprites
+.asm_e14f8
+ ld a, [hli]
+ cp $ff
+ ret z
+ add b
+ ld [de], a
+ inc de
+ ld a, [hli]
+ add c
+ ld [de], a
+ inc de
+ ld a, [DefaultFlypoint]
+ add [hl]
+ ld [de], a
+ inc hl
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ jr .asm_e14f8
+; e150f
+
+INCBIN "baserom.gbc", $e150f, $e1631 - $e150f
+
+Functione1631: ; e1631
+ ld hl, VTiles2
+ ld de, VTiles0
+ ld b, $6
+.asm_e1639
+ push bc
+ push hl
+ push hl
+ call Functione1654
+ pop hl
+ ld bc, $0008
+ add hl, bc
+ call Functione1654
+ pop hl
+ ld bc, $0060
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .asm_e1639
+ call Functione16c7
+ ret
+; e1654
+
+Functione1654: ; e1654
+ ld c, $6
+.asm_e1656
+ push bc
+ push hl
+ push hl
+ ld c, $4
+.asm_e165b
+ push bc
+ ld a, [hli]
+ and $f0
+ swap a
+ call Functione16aa
+ ld c, a
+ ld a, [hli]
+ and $f0
+ swap a
+ call Functione16aa
+ ld b, a
+ ld a, c
+ ld [de], a
+ inc de
+ ld a, b
+ ld [de], a
+ inc de
+ ld a, c
+ ld [de], a
+ inc de
+ ld a, b
+ ld [de], a
+ inc de
+ pop bc
+ dec c
+ jr nz, .asm_e165b
+ pop hl
+ ld c, $4
+.asm_e1681
+ push bc
+ ld a, [hli]
+ and $f
+ call Functione16aa
+ ld c, a
+ ld a, [hli]
+ and $f
+ call Functione16aa
+ ld b, a
+ ld a, c
+ ld [de], a
+ inc de
+ ld a, b
+ ld [de], a
+ inc de
+ ld a, c
+ ld [de], a
+ inc de
+ ld a, b
+ ld [de], a
+ inc de
+ pop bc
+ dec c
+ jr nz, .asm_e1681
+ pop hl
+ ld bc, $0010
+ add hl, bc
+ pop bc
+ dec c
+ jr nz, .asm_e1656
+ ret
+; e16aa
+
+Functione16aa: ; e16aa
+ push hl
+ ld hl, $56b7
+ add l
+ ld l, a
+ ld a, $0
+ adc h
+ ld h, a
+ ld a, [hl]
+ pop hl
+ ret
+; e16b7
+
+INCBIN "baserom.gbc", $e16b7, $e16c7 - $e16b7
+
+Functione16c7: ; e16c7
+ ld hl, $5703
+ ld a, $8
+.asm_e16cc
+ push af
+ push hl
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call Functione16e2
+ pop hl
+ inc hl
+ inc hl
+ inc hl
+ inc hl
+ pop af
+ dec a
+ jr nz, .asm_e16cc
+ ret
+; e16e2
+
+Functione16e2: ; e16e2
+ ld bc, $0404
+.asm_e16e5
+ push bc
+.asm_e16e6
+ push de
+ push hl
+ ld b, $10
+.asm_e16ea
+ ld a, [de]
+ or [hl]
+ ld [hli], a
+ inc de
+ dec b
+ jr nz, .asm_e16ea
+ pop hl
+ ld de, $0030
+ add hl, de
+ pop de
+ dec c
+ jr nz, .asm_e16e6
+ ld bc, $0180
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .asm_e16e5
+ ret
+; e1703
+
+INCBIN "baserom.gbc", $e1703, $e17a3 - $e1703
+
+Functione17a3: ; e17a3
+ ld a, [ScriptVar]
+ and $3
+ ld e, a
+ ld d, $0
+ ld hl, $57bd
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, VTiles2
+ call Decompress
+ call Functione1631
+ ret
+; e17bd
+
+INCBIN "baserom.gbc", $e17bd, $e37f9 - $e17bd
+
+
SECTION "bank39",ROMX,BANK[$39]
CopyrightGFX: ; e4000
@@ -62955,9 +65470,236 @@
ret
; fb57e
-INCBIN "baserom.gbc", $fb57e, $fba18 - $fb57e
+INCBIN "baserom.gbc", $fb57e, $fb6ed - $fb57e
+Functionfb6ed: ; fb6ed
+ ld hl, $780f
+ call PrintText
+ call Function1dcf
+ jp c, .asm_fb77e
+ ld hl, $7814
+ call PrintText
+ callba Function50000
+ jr c, .asm_fb77e
+ ld a, [CurPartySpecies]
+ cp $fd
+ jr z, .asm_fb783
+ call GetCurNick
+ call Functionfb78a
+ jr c, .asm_fb779
+ ld hl, $7819
+ call PrintText
+ call Function1dcf
+ jr c, .asm_fb77e
+ ld hl, $781e
+ call PrintText
+ xor a
+ ld [MonType], a
+ ld a, [CurPartySpecies]
+ ld [$d265], a
+ ld [CurSpecies], a
+ call GetBaseData
+ ld b, $0
+ ld de, StringBuffer2
+ callba Function116b7
+ call Functionfb7be
+ ld hl, $7837
+ jr c, .asm_fb76c
+ call Functionfb7d3
+ ld hl, $7837
+ jr c, .asm_fb76c
+ ld hl, PartyMon1Nickname
+ ld bc, $000b
+ ld a, [CurPartyMon]
+ call AddNTimes
+ ld e, l
+ ld d, h
+ ld hl, StringBuffer2
+ ld bc, $000b
+ call CopyBytes
+ ld hl, $7823
+.asm_fb76c
+ push hl
+ call GetCurNick
+ ld hl, $783c
+ call PrintText
+ pop hl
+ jr .asm_fb786
+
+.asm_fb779
+ ld hl, $782d
+ jr .asm_fb786
+
+.asm_fb77e
+ ld hl, $7828
+ jr .asm_fb786
+
+.asm_fb783
+ ld hl, $7832
+
+.asm_fb786
+ call PrintText
+ ret
+; fb78a
+
+Functionfb78a: ; fb78a
+ ld hl, PartyMon1OT
+ ld bc, $000b
+ ld a, [CurPartyMon]
+ call AddNTimes
+ ld de, PlayerName
+ ld c, $b
+ call .asm_fb7b1
+ jr c, .asm_fb7bc
+ ld hl, PartyMon1ID
+ ld bc, $0030
+ ld a, [CurPartyMon]
+ call AddNTimes
+ ld de, PlayerID
+ ld c, $2
+.asm_fb7b1
+ ld a, [de]
+ cp [hl]
+ jr nz, .asm_fb7bc
+ inc hl
+ inc de
+ dec c
+ jr nz, .asm_fb7b1
+ and a
+ ret
+
+.asm_fb7bc
+ scf
+ ret
+; fb7be
+
+Functionfb7be: ; fb7be
+ ld hl, StringBuffer2
+ ld c, $a
+.asm_fb7c3
+ ld a, [hli]
+ cp $50
+ jr z, .asm_fb7cf
+ cp $7f
+ jr nz, .asm_fb7d1
+ dec c
+ jr nz, .asm_fb7c3
+
+.asm_fb7cf
+ scf
+ ret
+
+.asm_fb7d1
+ and a
+ ret
+; fb7d3
+
+Functionfb7d3: ; fb7d3
+ ld hl, PartyMon1Nickname
+ ld bc, $000b
+ ld a, [CurPartyMon]
+ call AddNTimes
+ push hl
+ call Functionfb802
+ ld b, c
+ ld hl, StringBuffer2
+ call Functionfb802
+ pop hl
+ ld a, c
+ cp b
+ jr nz, .asm_fb7fe
+ ld de, StringBuffer2
+.asm_fb7f2
+ ld a, [de]
+ cp $50
+ jr z, .asm_fb800
+ cp [hl]
+ jr nz, .asm_fb7fe
+ inc hl
+ inc de
+ jr .asm_fb7f2
+
+.asm_fb7fe
+ and a
+ ret
+
+.asm_fb800
+ scf
+ ret
+; fb802
+
+Functionfb802: ; fb802
+ ld c, $0
+.asm_fb804
+ ld a, [hli]
+ cp $50
+ ret z
+ inc c
+ ld a, c
+ cp $a
+ jr nz, .asm_fb804
+ ret
+; fb80f
+
+INCBIN "baserom.gbc", $fb80f, $fb877 - $fb80f
+
+Functionfb877: ; fb877
+ ld a, [$ffde]
+ push af
+ xor a
+ ld [$ffde], a
+ call LowVolume
+ call WhiteBGMap
+ call ClearTileMap
+ call Function1ad2
+ call ClearSprites
+ ld a, [$cf65]
+ push af
+ ld a, [hSCX]
+ add $5
+ ld [hSCX], a
+ xor a
+ ld [$cf65], a
+ callba Function41a7f
+ call Functiona80
+ ld a, $1
+ ld [$cf65], a
+ callba Function4424d
+ call Functiona80
+ pop af
+ ld [$cf65], a
+ call MaxVolume
+ call Function4b6
+ ld a, [hSCX]
+ add $fb
+ ld [hSCX], a
+ call Functionfb8c8
+ pop af
+ ld [$ffde], a
+ ret
+; fb8c8
+
+Functionfb8c8: ; fb8c8
+ call ClearTileMap
+ call Functione5f
+ call Functione51
+ callba Function40ab2
+ call Function3200
+ callba Function3da97
+ ld a, [hli]
+ ld [TempMonDVs], a
+ ld a, [hl]
+ ld [$d124], a
+ ld b, $1c
+ call GetSGBLayout
+ call Function32f9
+ ret
+; fb8f1
+
+INCBIN "baserom.gbc", $fb8f1, $fba18 - $fb8f1
+
+
Functionfba18: ; fba18
ld a, [UnownLetter]
ld c, a
@@ -67795,9 +70537,15 @@
HallOfFame2: ; 0x105ef6
ret
-INCBIN "baserom.gbc", $105ef7, $106008 - $105ef7
+INCBIN "baserom.gbc", $105ef7, $105f79 - $105ef7
+Function105f79: ; 105f79
+ ret
+; 105f7a
+INCBIN "baserom.gbc", $105f7a, $106008 - $105f7a
+
+
Function106008: ; 106008
ret
; 106009
@@ -72597,7 +75345,28 @@
; 1de2c5
-INCBIN "baserom.gbc", $1de2c5, $1de2e4 - $1de2c5
+Function1de2c5: ; 1de2c5
+ ld hl, StringBuffer1
+.asm_1de2c8
+ ld a, [hl]
+ cp $50
+ jr z, .asm_1de2da
+ cp $25
+ jr z, .asm_1de2d8
+ cp $1f
+ jr z, .asm_1de2d8
+ inc hl
+ jr .asm_1de2c8
+
+.asm_1de2d8
+ ld [hl], $22
+
+.asm_1de2da
+ ld de, StringBuffer1
+ ld hl, $c4a9
+ call PlaceString
+ ret
+; 1de2e4
PokegearGFX: ; 1de2e4
INCBIN "gfx/misc/pokegear.lz"