summaryrefslogtreecommitdiff
path: root/main.asm
diff options
context:
space:
mode:
Diffstat (limited to 'main.asm')
-rw-r--r--main.asm11373
1 files changed, 141 insertions, 11232 deletions
diff --git a/main.asm b/main.asm
index b58e05282..11a57420e 100644
--- a/main.asm
+++ b/main.asm
@@ -439,7 +439,7 @@ Continue: ; 5d65
ld [MusicFadeIDLo], a
ld a, MUSIC_NONE / $100
ld [MusicFadeIDHi], a
- call WhiteBGMap
+ call ClearBGPalettes
call Function5df0
call WriteBackup
call ClearTileMap
@@ -451,7 +451,7 @@ Continue: ; 5d65
ld a, [wSpawnAfterChampion]
cp SPAWN_LANCE
jr z, .SpawnAfterE4
- ld a, MAPSETUP_02
+ ld a, MAPSETUP_CONTINUE
ld [hMapEntryMethod], a
jp FinishContinueFunction
@@ -1085,7 +1085,7 @@ Function6219: ; 6219
jr nc, .loop
call ClearSprites
- call WhiteBGMap
+ call ClearBGPalettes
pop af
ld [rSVBK], a
@@ -1467,7 +1467,7 @@ CopyrightString: ; 63fd
GameInit:: ; 642e
callba Function14f1c
call ResetTextRelatedRAM
- call WhiteBGMap
+ call ClearBGPalettes
call ClearTileMap
ld a, VBGMap0 / $100
ld [hBGMapAddress + 1], a
@@ -3186,7 +3186,7 @@ Function8000: ; 8000
call DisableSpriteUpdates
xor a
ld [hBGMapMode], a
- call WhiteBGMap
+ call ClearBGPalettes
call ClearSprites
hlcoord 0, 0
ld bc, TileMapEnd - TileMap
@@ -3603,6 +3603,7 @@ Function8286: ; 8286
ld hl, OBJECT_MAP_OBJECT_INDEX
add hl, de
ld [hl], a
+
ld a, [wc2f4]
call Function1a61
ld a, [wc2f3]
@@ -3610,30 +3611,39 @@ Function8286: ; 8286
add hl, de
or [hl]
ld [hl], a
+
ld a, [wc2f7]
call Function82d5
+
ld a, [wc2f6]
call Function82f1
+
ld a, [wc2f1]
ld hl, OBJECT_SPRITE
add hl, de
ld [hl], a
+
ld a, [wc2f2]
ld hl, OBJECT_SPRITE_TILE
add hl, de
ld [hl], a
+
ld hl, OBJECT_09
add hl, de
ld [hl], $0
+
ld hl, OBJECT_FACING_STEP
add hl, de
ld [hl], $ff
+
ld a, [wc2f8]
call Function830d
+
ld a, [wc2f5]
ld hl, OBJECT_32
add hl, de
ld [hl], a
+
and a
ret
; 82d5
@@ -3694,7 +3704,7 @@ Function830d: ; 830d
TrainerWalkToPlayer: ; 831e
ld a, [hLastTalked]
call InitMovementBuffer
- ld a, movement_show_person
+ ld a, movement_step_sleep_1
call AppendToMovementBuffer
ld a, [wd03f]
dec a
@@ -5269,7 +5279,7 @@ FlyFunction: ; ca3b
special WarpToSpawnPoint
callasm DelayLoadingNewSprites
writecode VAR_MOVEMENT, $0
- newloadmap MAPSETUP_12
+ newloadmap MAPSETUP_FLY
callasm Function8cb33
special WaitSFX
callasm Functioncacb
@@ -5537,7 +5547,7 @@ UsedDigOrEscapeRopeScript: ; 0xcc3c
farscall Script_AbortBugContest
special WarpToSpawnPoint
writecode VAR_MOVEMENT, $0
- newloadmap MAPSETUP_05
+ newloadmap MAPSETUP_DOOR
playsound SFX_WARP_FROM
applymovement PLAYER, MovementData_0xcc5d
end
@@ -5635,7 +5645,7 @@ Script_UsedTeleport: ; 0xccbb
farscall Script_AbortBugContest
special WarpToSpawnPoint
writecode VAR_MOVEMENT, $0
- newloadmap MAPSETUP_04
+ newloadmap MAPSETUP_TELEPORT
playsound SFX_WARP_FROM
applymovement PLAYER, MovementData_0xcce3
end
@@ -6333,14 +6343,14 @@ MovementData_0xd062: ; d062
fish_got_bite
fish_got_bite
fish_got_bite
- show_person
+ step_sleep_1
show_emote
step_end
; d069
MovementData_0xd069: ; d069
hide_emote
- fish_got_bite_2
+ fish_cast_rod
step_end
; d06c
@@ -6362,7 +6372,7 @@ Script_FishCastRod: ; 0xd07c
loadvar hBGMapMode, $0
special UpdateTimePals
loademote EMOTE_09
- callasm Functionb84b3
+ callasm LoadFishingGFX
loademote EMOTE_SHOCK
applymovement PLAYER, MovementData_0xd093
pause 40
@@ -6370,7 +6380,7 @@ Script_FishCastRod: ; 0xd07c
; 0xd093
MovementData_0xd093: ; d093
- fish_got_bite_2
+ fish_cast_rod
step_end
; d095
@@ -9801,7 +9811,7 @@ Functione43f: ; e43f (3:643f)
ret
Functione443: ; e443 (3:6443)
- ld hl, MenuDataHeader_0xe46f
+ ld hl, .MenuDataHeader
call LoadMenuDataHeader
ld a, $1
.loop
@@ -9815,7 +9825,7 @@ Functione443: ; e443 (3:6443)
ld a, [wMenuCursorBuffer]
push af
ld a, [MenuSelection]
- ld hl, Jumptable_e4ba
+ ld hl, .Jumptable
rst JumpTable
pop bc
ld a, b
@@ -9825,38 +9835,38 @@ Functione443: ; e443 (3:6443)
ret
; e46f (3:646f)
-MenuDataHeader_0xe46f: ; 0xe46f
+.MenuDataHeader: ; 0xe46f
db $40 ; flags
db 00, 00 ; start coords
db 17, 19 ; end coords
- dw MenuData2_0xe477
+ dw .MenuData2
db 1 ; default option
; 0xe477
-MenuData2_0xe477: ; 0xe477
+.MenuData2: ; 0xe477
db $80 ; flags
db 0 ; items
- dw MenuItems_e4c4
+ dw .items
dw Function1f79
- dw Strings_e47f
+ dw .strings
; 0xe47f
-Strings_e47f: ; e47f
+.strings: ; e47f
db "WITHDRAW <PK><MN>@"
db "DEPOSIT <PK><MN>@"
db "CHANGE BOX@"
db "MOVE <PK><MN> W/O MAIL@"
db "SEE YA!@"
-Jumptable_e4ba: ; e4ba (3:64ba)
- dw Functione559
- dw Functione4fe
- dw Functione583
- dw Functione4cd
- dw Functione4cb
+.Jumptable: ; e4ba (3:64ba)
+ dw BillsPC_WithdrawMenu
+ dw BillsPC_DepositMenu
+ dw BillsPC_ChangeBoxMenu
+ dw BillsPC_MovePKMNMenu
+ dw BillsPC_SeeYa
; e4c4
-MenuItems_e4c4: ; e4c4
+.items: ; e4c4
db 5
db 0 ; WITHDRAW
db 1; DEPOSIT
@@ -9866,27 +9876,27 @@ MenuItems_e4c4: ; e4c4
db -1
; e4cb
-Functione4cb: ; e4cb
+BillsPC_SeeYa: ; e4cb
scf
ret
; e4cd
-Functione4cd: ; e4cd
+BillsPC_MovePKMNMenu: ; e4cd
call LoadStandardMenuDataHeader
callba Function44781
- jr nc, .asm_e4e0
+ jr nc, .no_mail
ld hl, UnknownText_0xe4f9
call PrintText
- jr .asm_e4f4
+ jr .quit
-.asm_e4e0
+.no_mail
callba Function14b34
- jr c, .asm_e4f4
- callba Functione2759
- call Function222a
+ jr c, .quit
+ callba _MovePKMNWithoutMail
+ call ReturnToMapFromSubmenu
call ClearPCItemScreen
-.asm_e4f4
+.quit
call WriteBackup
and a
ret
@@ -9898,10 +9908,10 @@ UnknownText_0xe4f9: ; 0xe4f9
db "@"
; 0xe4fe
-Functione4fe: ; e4fe (3:64fe)
+BillsPC_DepositMenu: ; e4fe (3:64fe)
call LoadStandardMenuDataHeader
- callba Functione2391
- call Function222a
+ callba _DepositPKMN
+ call ReturnToMapFromSubmenu
call ClearPCItemScreen
call WriteBackup
and a
@@ -9974,10 +9984,10 @@ CheckCurPartyMonFainted: ; e538
; e559
-Functione559: ; e559 (3:6559)
+BillsPC_WithdrawMenu: ; e559 (3:6559)
call LoadStandardMenuDataHeader
- callba Functione2583
- call Function222a
+ callba _WithdrawPKMN
+ call ReturnToMapFromSubmenu
call ClearPCItemScreen
call WriteBackup
and a
@@ -10004,8 +10014,8 @@ UnknownText_0xe57e: ; 0xe57e
db "@"
; 0xe583
-Functione583: ; e583 (3:6583)
- callba Functione35aa
+BillsPC_ChangeBoxMenu: ; e583 (3:6583)
+ callba _ChangeBox
and a
ret
@@ -10013,7 +10023,7 @@ ClearPCItemScreen: ; e58b
call DisableSpriteUpdates
xor a
ld [hBGMapMode], a
- call WhiteBGMap
+ call ClearBGPalettes
call ClearSprites
hlcoord 0, 0
ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
@@ -10395,7 +10405,7 @@ Function11e75: ; 11e75 (4:5e75)
ret
Function11e9a: ; 11e9a (4:5e9a)
- call WhiteBGMap
+ call ClearBGPalettes
call DisableLCD
call Function11c51
ld de, VTiles0 tile $00
@@ -11635,7 +11645,7 @@ Function156d9: ; 156d9
ret
.asm_156f9
- call WhiteBGMap
+ call ClearBGPalettes
ld c, $1
ret
; 156ff
@@ -13144,7 +13154,7 @@ Function16be4: ; 16be4
push af
set NO_TEXT_SCROLL, a
ld [Options], a
- call WhiteBGMap
+ call ClearBGPalettes
call ClearTileMap
ld de, UnownDexATile
@@ -13225,7 +13235,7 @@ Function16be4: ; 16be4
ld [Options], a
pop af
ld [hInMenu], a
- call Function222a
+ call ReturnToMapFromSubmenu
ret
; 16ca0
@@ -15710,7 +15720,7 @@ Function25105: ; 25105
ret
Function2513b: ; 2513b (9:513b)
- call WhiteBGMap
+ call ClearBGPalettes
call ClearSprites
call ClearTileMap
call DisableLCD
@@ -17997,7 +18007,7 @@ LevelUpHappinessMod: ; 2709e
INCLUDE "trainers/dvs.asm"
Function2715c: ; 2715c
- call WhiteBGMap
+ call ClearBGPalettes
call ClearTileMap
ld a, [BattleType]
cp BATTLETYPE_TUTORIAL
@@ -19614,7 +19624,7 @@ INCBIN "gfx/battle/balls.2bpp"
; 2c1b2
_ShowLinkBattleParticipants: ; 2c1b2
- call WhiteBGMap
+ call ClearBGPalettes
call LoadFontsExtra
hlcoord 2, 3
ld b, 9
@@ -20222,7 +20232,7 @@ Function2c7fb: ; 2c7fb
ld de, wd066
ld bc, $c
call CopyBytes
- call WhiteBGMap
+ call ClearBGPalettes
Function2c80a: ; 2c80a
callba Function5004f
@@ -23442,7 +23452,7 @@ Function4484a: ; 0x4484a
call FadeToMenu
xor a
ld [PartyMenuActionText], a
- call WhiteBGMap
+ call ClearBGPalettes
.asm_448dc
callba Function5004f
callba Function50405
@@ -23564,7 +23574,7 @@ Function4802f: ; 4802f (12:402f)
ld a, c
and a
call z, Function48000
- call WhiteBGMap
+ call ClearBGPalettes
call Function48d3d
ld a, [wd479]
bit 1, a
@@ -23587,7 +23597,7 @@ Function4802f: ; 4802f (12:402f)
lb bc, BANK(GFX_488cb), 1
call Request1bpp
call Function4a3a7
- call WhiteBGMap
+ call ClearBGPalettes
ld a, [wd002]
bit 6, a
jr z, .asm_4808a
@@ -23604,7 +23614,7 @@ Function4802f: ; 4802f (12:402f)
call DelayFrames
ld b, $1
call Function4930f
- call WhiteBGMap
+ call ClearBGPalettes
hlcoord 0, 0
ld b, $2
ld c, $14
@@ -23698,7 +23708,7 @@ asm_4815f: ; 4815f (12:415f)
.asm_48177
jp Function48272
.asm_4817a
- call WhiteBGMap
+ call ClearBGPalettes
call Function48d30
pop bc
call ClearTileMap
@@ -23811,7 +23821,7 @@ Function4820d: ; 4820d (12:420d)
call DelayFrames
.asm_4825c
- call WhiteBGMap
+ call ClearBGPalettes
call Function48d30
pop bc
call ClearTileMap
@@ -24223,7 +24233,7 @@ Function48689: ; 48689 (12:4689)
call DelayFrames
ld b, $1
call Function4930f
- call WhiteBGMap
+ call ClearBGPalettes
hlcoord 0, 0
ld b, $4
ld c, $14
@@ -25436,7 +25446,7 @@ Function48e14: ; 48e14 (12:4e14)
ld [MusicFadeIDHi], a
ld c, 8
call DelayFrames
- call WhiteBGMap
+ call ClearBGPalettes
call Function48000
call LoadFontsExtra
hlcoord 0, 0
@@ -25505,7 +25515,7 @@ INCBIN "gfx/misc/pack_f.2bpp"
Function4925b: ; 4925b
call FadeToMenu
- call WhiteBGMap
+ call ClearBGPalettes
call ClearScreen
call DelayFrame
ld b, $14
@@ -26955,16 +26965,16 @@ MainMenu_MysteryGift: ; 49ef5
; 49efc
MainMenu_Mobile: ; 49efc
- call WhiteBGMap
+ call ClearBGPalettes
ld a, MUSIC_MOBILE_ADAPTER_MENU
ld [wMapMusic], a
ld de, MUSIC_MOBILE_ADAPTER_MENU
call Function4a6c5
Function49f0a: ; 49f0a
- call WhiteBGMap
+ call ClearBGPalettes
call Function4a3a7
call Function4a492
- call WhiteBGMap
+ call ClearBGPalettes
Function49f16: ; 49f16
call Function4a071
ld c, 12
@@ -27021,7 +27031,7 @@ Function49f16: ; 49f16
.asm_49f84
pop bc
- call WhiteBGMap
+ call ClearBGPalettes
call ClearTileMap
ld a, MUSIC_MAIN_MENU
ld [wMapMusic], a
@@ -27160,7 +27170,7 @@ Function4a0c2: ; 4a0c2 (12:60c2)
ld c, $1
call Function4802f
push af
- call WhiteBGMap
+ call ClearBGPalettes
pop af
and a
jr nz, .asm_4a0f9
@@ -27173,9 +27183,9 @@ Function4a0c2: ; 4a0c2 (12:60c2)
Function4a100: ; 4a100 (12:6100)
ld a, $2
call Function1ff8
- call WhiteBGMap
+ call ClearBGPalettes
call Function4a13b
- call WhiteBGMap
+ call ClearBGPalettes
call ClearTileMap
asm_4a111: ; 4a111 (12:6111)
@@ -27308,7 +27318,7 @@ Function4a20e: ; 4a20e (12:620e)
ld a, $1
call Function1ff8
callba Function1719c8
- call WhiteBGMap
+ call ClearBGPalettes
call DelayFrame
jr Function4a239
@@ -27378,7 +27388,7 @@ Function4a28a: ; 4a28a (12:628a)
jr z, .asm_4a33b
.asm_4a2df
callba Function11765d
- call WhiteBGMap
+ call ClearBGPalettes
call Call_ExitMenu
call LoadFontsExtra
scf
@@ -27610,7 +27620,7 @@ MainMenu_MobileStudium: ; 4a496
push bc
push de
callba MobileStudium
- call WhiteBGMap
+ call ClearBGPalettes
pop de
pop bc
ld a, b
@@ -27626,11 +27636,11 @@ MainMenu_MobileStudium: ; 4a496
Function4a4c4: ; 4a4c4 (12:64c4)
- call WhiteBGMap
+ call ClearBGPalettes
call Function4a3a7
call Function4a492
call Function4a680
- call WhiteBGMap
+ call ClearBGPalettes
ld c, 20
call DelayFrames
hlcoord 2, 0
@@ -27704,7 +27714,7 @@ asm_4a54d: ; 4a54d (12:654d)
call Function1ff8
.asm_4a574
pop bc
- call WhiteBGMap
+ call ClearBGPalettes
call ClearTileMap
jp Function49f0a
.asm_4a57e
@@ -27805,7 +27815,7 @@ endr
Function4a6ab: ; 4a6ab (12:66ab)
ld a, $2
call Function1ff8
- call WhiteBGMap
+ call ClearBGPalettes
ld b, $8
call GetSGBLayout
callba Function11c1ab
@@ -28429,7 +28439,7 @@ UnknownText_0x4aa1d: ; 0x4aa1d
; 0x4aa22
Function4aa22: ; 4aa22
- call WhiteBGMap
+ call ClearBGPalettes
Function4aa25: ; 4aa25
callba Function5004f
@@ -29524,7 +29534,7 @@ Function4d319: ; 4d319
inc a
ld [MenuSelection2], a
call ClearScreen
- call WhiteBGMap
+ call ClearBGPalettes
call MaxVolume
callba Function28ef8
callba Function4d354
@@ -30745,13 +30755,13 @@ StatsScreenInit_gotaddress: ; 4dc94
push bc
push hl
- call WhiteBGMap
+ call ClearBGPalettes
call ClearTileMap
call UpdateSprites
callba Functionfb53e
pop hl
call _hl_
- call WhiteBGMap
+ call ClearBGPalettes
call ClearTileMap
pop bc
@@ -30860,7 +30870,7 @@ Function4dd6c: ; 4dd6c (13:5d6c)
MonStatsInit: ; 4dd72 (13:5d72)
ld hl, wcf64
res 6, [hl]
- call WhiteBGMap
+ call ClearBGPalettes
call ClearTileMap
callba Function10402d
call Function4ddf2
@@ -32140,1385 +32150,13 @@ INCLUDE "event/poke_seer.asm"
SECTION "bank14", ROMX, BANK[$14]
-SelectMonFromParty: ; 50000
- call DisableSpriteUpdates
- xor a
- ld [PartyMenuActionText], a
- call WhiteBGMap
- call Function5003f
- call WaitBGMap
- call SetPalettes
- call DelayFrame
- call PartyMenuSelect
- call Function2b74
- ret
-; 5001d
-
-
-Function5001d: ; 5001d
- ld a, b
- ld [PartyMenuActionText], a
- call DisableSpriteUpdates
- call WhiteBGMap
- call Function5003f
- call WaitBGMap
- ld b, $a
- call GetSGBLayout
- call SetPalettes
- call DelayFrame
- call PartyMenuSelect
- call Function2b74
- ret
-; 5003f
-
-Function5003f: ; 5003f
- call Function5004f
- call Function50405
- call Function503e0
- call WritePartyMenuTilemap
- call PrintPartyMenuText
- ret
-; 5004f
-
-Function5004f: ; 5004f
- call LoadFontsBattleExtra
- callab Function8ad1 ; engine/color.asm
- callab InefficientlyClear121BytesAtwc300
- ret
-; 5005f
-
-
-WritePartyMenuTilemap: ; 0x5005f
- ld hl, Options
- ld a, [hl]
- push af
- set 4, [hl] ; Disable text delay
- xor a
- ld [hBGMapMode], a
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, " "
- call ByteFill ; blank the tilemap
- call GetPartyMenuTilemapPointers ; This reads from a pointer table???
-.loop
- ld a, [hli]
- cp $ff
- jr z, .end ; 0x5007a $8
- push hl
- ld hl, .Jumptable
- rst JumpTable
- pop hl
- jr .loop ; 0x50082 $f3
-.end
- pop af
- ld [Options], a
- ret
-; 0x50089
-
-.Jumptable: ; 50089
- dw PlacePartyNicknames
- dw PlacePartyHPBar
- dw PlacePartyMenuHPDigits
- dw PlacePartyMonLevel
- dw PlacePartyMonStatus
- dw PlacePartyMonTMHMCompatibility
- dw PlacePartyMonEvoStoneCompatibility
- dw PlacePartyMonGender
- dw PlacePartyMonMobileBattleSelection
-; 5009b
-
-PlacePartyNicknames: ; 5009b
- hlcoord 3, 1
- ld a, [PartyCount]
- and a
- jr z, .end
- ld c, a
- ld b, $0
-.loop
- push bc
- push hl
- push hl
- ld hl, PartyMonNicknames
- ld a, b
- call GetNick
- pop hl
- call PlaceString
- pop hl
- ld de, 2 * SCREEN_WIDTH
- add hl, de
- pop bc
- inc b
- dec c
- jr nz, .loop
-
-.end
-rept 2
- dec hl
-endr
- ld de, .CANCEL
- call PlaceString
- ret
-; 500c8
-
-.CANCEL: ; 500c8
- db "CANCEL@"
-; 500cf
-
-
-PlacePartyHPBar: ; 500cf
- xor a
- ld [wcda9], a
- ld a, [PartyCount]
- and a
- ret z
- ld c, a
- ld b, $0
- hlcoord 11, 2
-.loop
- push bc
- push hl
- call PartyMenuCheckEgg
- jr z, .skip
- push hl
- call PlacePartymonHPBar
- pop hl
- ld d, $6
- ld b, $0
- call DrawBattleHPBar
- ld hl, wcd9b
- ld a, [wcda9]
- ld c, a
- ld b, $0
- add hl, bc
- call SetHPPal
- ld b, $fc
- call GetSGBLayout
-
-.skip
- ld hl, wcda9
- inc [hl]
- pop hl
- ld de, 2 * SCREEN_WIDTH
- add hl, de
- pop bc
- inc b
- dec c
- jr nz, .loop
- ld b, $a
- call GetSGBLayout
- ret
-; 50117
-
-PlacePartymonHPBar: ; 50117
- ld a, b
- ld bc, PARTYMON_STRUCT_LENGTH
- ld hl, PartyMon1HP
- call AddNTimes
- ld a, [hli]
- or [hl]
- jr nz, .not_fainted
- xor a
- ld e, a
- ld c, a
- ret
-
-.not_fainted
- dec hl
- ld a, [hli]
- ld b, a
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld e, a
- predef DrawPartyMenuHPBar
- ret
-; 50138
-
-PlacePartyMenuHPDigits: ; 50138
- ld a, [PartyCount]
- and a
- ret z
- ld c, a
- ld b, $0
- hlcoord 13, 1
-.loop
- push bc
- push hl
- call PartyMenuCheckEgg
- jr z, .next
- push hl
- ld a, b
- ld bc, PARTYMON_STRUCT_LENGTH
- ld hl, PartyMon1HP
- call AddNTimes
- ld e, l
- ld d, h
- pop hl
- push de
- lb bc, 2, 3
- call PrintNum
- pop de
- ld a, "/"
- ld [hli], a
-rept 2
- inc de
-endr
- lb bc, 2, 3
- call PrintNum
-
-.next
- pop hl
- ld de, 2 * SCREEN_WIDTH
- add hl, de
- pop bc
- inc b
- dec c
- jr nz, .loop
- ret
-; 50176
-
-PlacePartyMonLevel: ; 50176
- ld a, [PartyCount]
- and a
- ret z
- ld c, a
- ld b, 0
- hlcoord 8, 2
-.loop
- push bc
- push hl
- call PartyMenuCheckEgg
- jr z, .next
- push hl
- ld a, b
- ld bc, PARTYMON_STRUCT_LENGTH
- ld hl, PartyMon1Level
- call AddNTimes
- ld e, l
- ld d, h
- pop hl
- ld a, [de]
- cp 100 ; This is distinct from MAX_LEVEL.
- jr nc, .ThreeDigits
- ld a, "<LV>"
- ld [hli], a
- lb bc, PRINTNUM_RIGHTALIGN | 1, 2
- ; jr .okay
-.ThreeDigits
- lb bc, PRINTNUM_RIGHTALIGN | 1, 3
-; .okay
- call PrintNum
-
-.next
- pop hl
- ld de, SCREEN_WIDTH * 2
- add hl, de
- pop bc
- inc b
- dec c
- jr nz, .loop
- ret
-; 501b2
-
-PlacePartyMonStatus: ; 501b2
- ld a, [PartyCount]
- and a
- ret z
- ld c, a
- ld b, 0
- hlcoord 5, 2
-.loop
- push bc
- push hl
- call PartyMenuCheckEgg
- jr z, .next
- push hl
- ld a, b
- ld bc, PARTYMON_STRUCT_LENGTH
- ld hl, PartyMon1Status
- call AddNTimes
- ld e, l
- ld d, h
- pop hl
- call PlaceStatusString
-
-.next
- pop hl
- ld de, SCREEN_WIDTH * 2
- add hl, de
- pop bc
- inc b
- dec c
- jr nz, .loop
- ret
-; 501e0
-
-PlacePartyMonTMHMCompatibility: ; 501e0
- ld a, [PartyCount]
- and a
- ret z
- ld c, a
- ld b, 0
- hlcoord 12, 2
-.loop
- push bc
- push hl
- call PartyMenuCheckEgg
- jr z, .next
- push hl
- ld hl, PartySpecies
- ld e, b
- ld d, 0
- add hl, de
- ld a, [hl]
- ld [CurPartySpecies], a
- predef CanLearnTMHMMove
- pop hl
- call .PlaceAbleNotAble
- call PlaceString
-
-.next
- pop hl
- ld de, SCREEN_WIDTH * 2
- add hl, de
- pop bc
- inc b
- dec c
- jr nz, .loop
- ret
-; 50215
-
-.PlaceAbleNotAble: ; 50215
- ld a, c
- and a
- jr nz, .able
- ld de, .string_not_able
- ret
-
-.able
- ld de, .string_able
- ret
-; 50221
-
-.string_able: ; 50221
- db "ABLE@"
-; 50226
-
-.string_not_able: ; 50226
- db "NOT ABLE@"
-; 5022f
-
-
-PlacePartyMonEvoStoneCompatibility: ; 5022f
- ld a, [PartyCount]
- and a
- ret z
- ld c, a
- ld b, 0
- hlcoord 12, 2
-.loop
- push bc
- push hl
- call PartyMenuCheckEgg
- jr z, .next
- push hl
- ld a, b
- ld bc, PARTYMON_STRUCT_LENGTH
- ld hl, PartyMon1Species
- call AddNTimes
- ld a, [hl]
- dec a
- ld e, a
- ld d, 0
- ld hl, EvosAttacksPointers
-rept 2
- add hl, de
-endr
- call .DetermineCompatibility
- pop hl
- call PlaceString
-
-.next
- pop hl
- ld de, 2 * SCREEN_WIDTH
- add hl, de
- pop bc
- inc b
- dec c
- jr nz, .loop
- ret
-; 50268
-
-.DetermineCompatibility: ; 50268
- ld de, StringBuffer1
- ld a, BANK(EvosAttacksPointers)
- ld bc, 2
- call FarCopyBytes
- ld hl, StringBuffer1
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, StringBuffer1
- ld a, BANK(EvosAttacks)
- ld bc, $a
- call FarCopyBytes
- ld hl, StringBuffer1
-.loop2
- ld a, [hli]
- and a
- jr z, .nope
-rept 2
- inc hl
-endr
- cp EVOLVE_ITEM
- jr nz, .loop2
-rept 2
- dec hl
-endr
- ld a, [CurItem]
- cp [hl]
-rept 2
- inc hl
-endr
- jr nz, .loop2
- ld de, .string_able
- ret
-
-.nope
- ld de, .string_not_able
- ret
-; 502a3
-
-.string_able: ; 502a3
- db "ABLE@"
-; 502a8
-.string_not_able: ; 502a8
- db "NOT ABLE@"
-; 502b1
-
-
-PlacePartyMonGender: ; 502b1
- ld a, [PartyCount]
- and a
- ret z
- ld c, a
- ld b, 0
- hlcoord 12, 2
-.loop
- push bc
- push hl
- call PartyMenuCheckEgg
- jr z, .next
- ld [CurPartySpecies], a
- push hl
- ld a, b
- ld [CurPartyMon], a
- xor a
- ld [MonType], a
- call GetGender
- ld de, .unknown
- jr c, .got_gender
- ld de, .male
- jr nz, .got_gender
- ld de, .female
-
-.got_gender
- pop hl
- call PlaceString
-
-.next
- pop hl
- ld de, 2 * SCREEN_WIDTH
- add hl, de
- pop bc
- inc b
- dec c
- jr nz, .loop
- ret
-; 502ee
-
-.male: ; 502ee
- db "♂…MALE@"
-; 502f5
-
-.female: ; 502f5
- db "♀…FEMALE@"
-; 502fe
-
-.unknown: ; 502fe
- db "…UNKNOWN@"
-; 50307
-
-
-PlacePartyMonMobileBattleSelection: ; 50307
- ld a, [PartyCount]
- and a
- ret z
- ld c, a
- ld b, 0
- hlcoord 12, 1
-.loop
- push bc
- push hl
- ld de, .String_Sanka_Shinai
- call PlaceString
- pop hl
- ld de, 2 * SCREEN_WIDTH
- add hl, de
- pop bc
- inc b
- dec c
- jr nz, .loop
- ld a, l
- ld e, PKMN_NAME_LENGTH
- sub e
- ld l, a
- ld a, h
- sbc $0
- ld h, a
- ld de, .String_Kettei_Yameru
- call PlaceString
- ld b, $3
- ld c, $0
- ld hl, wd002
- ld a, [hl]
-.loop2
- push hl
- push bc
- hlcoord 12, 1
-.loop3
- and a
- jr z, .done
- ld de, 2 * SCREEN_WIDTH
- add hl, de
- dec a
- jr .loop3
-
-.done
- ld de, .String_Banme
- push hl
- call PlaceString
- pop hl
- pop bc
- push bc
- push hl
- ld a, c
- ld hl, .Strings_1_2_3
- call GetNthString
- ld d, h
- ld e, l
- pop hl
- call PlaceString
- pop bc
- pop hl
- inc hl
- ld a, [hl]
- inc c
- dec b
- ret z
- jr .loop2
-; 5036b
-
-.String_Banme: ; 5036b
- db " ばんめ @" ; Place
-; 50372
-.String_Sanka_Shinai: ; 50372
- db "さんかしない@" ; Cancel
-; 50379
-.String_Kettei_Yameru: ; 50379
- db "けってい やめる@" ; Quit
-; 50383
-.Strings_1_2_3: ; 50383
- db "1@", "2@", "3@" ; 1st, 2nd, 3rd
-; 50389
-
-
-PartyMenuCheckEgg: ; 50389
- ld a, PartySpecies % $100
- add b
- ld e, a
- ld a, PartySpecies / $100
- adc 0
- ld d, a
- ld a, [de]
- cp EGG
- ret
-; 50396
-
-GetPartyMenuTilemapPointers: ; 50396
- ld a, [PartyMenuActionText]
- and $f0
- jr nz, .skip
- ld a, [PartyMenuActionText]
- and $f
- ld e, a
- ld d, 0
- ld hl, .Pointers
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ret
-
-.skip
- ld hl, .Default
- ret
-; 503b2
-
-.Pointers: ; 503b2
- dw .Default
- dw .Default
- dw .Default
- dw .TMHM
- dw .Default
- dw .EvoStone
- dw .Gender
- dw .Gender
- dw .Default
- dw .Mobile
-; 503c6
-
-.Default: db 0, 1, 2, 3, 4, $ff
-.TMHM: db 0, 5, 3, 4, $ff
-.EvoStone: db 0, 6, 3, 4, $ff
-.Gender: db 0, 7, 3, 4, $ff
-.Mobile: db 0, 8, 3, 4, $ff
-; 503e0
-
-
-Function503e0: ; 503e0
- ld hl, PartyCount
- ld a, [hli]
- and a
- ret z
- ld c, a
- xor a
- ld [hObjectStructIndexBuffer], a
-.asm_503ea
- push bc
- push hl
- ld hl, Function8e83f
- ld a, BANK(Function8e83f)
- ld e, $0
- rst FarCall
- ld a, [hObjectStructIndexBuffer]
- inc a
- ld [hObjectStructIndexBuffer], a
- pop hl
- pop bc
- dec c
- jr nz, .asm_503ea
- callab Function8cf69
- ret
-; 50405
-
-Function50405: ; 50405
- xor a
- ld [wd0e3], a
- ld de, Unknown_5044f
- call Function1bb1
- ld a, [PartyCount]
- inc a
- ld [wcfa3], a
- dec a
- ld b, a
- ld a, [wd0d8]
- and a
- jr z, .asm_50422
- inc b
- cp b
- jr c, .asm_50424
-
-.asm_50422
- ld a, $1
-
-.asm_50424
- ld [MenuSelection2], a
- ld a, $3
- ld [wcfa8], a
- ret
-; 5042d
-
-Function5042d: ; 0x5042d
- ld de, Unknown_5044f
- call Function1bb1
- ld a, [PartyCount]
- ld [wcfa3], a
- ld b, a
- ld a, [wd0d8]
- and a
- jr z, .asm_50444
- inc b
- cp b
- jr c, .asm_50446
-.asm_50444
- ld a, $1
-.asm_50446
- ld [MenuSelection2], a
- ld a, $3
- ld [wcfa8], a
- ret
-; 5044f (14:444f)
-
-Unknown_5044f: ; 5044f
-; cursor y
-; cursor x
-; list length
-; ?
-; bit 6: animate sprites bit 5: wrap around
-; ?
-; distance between items (hi: y, lo: x)
-; allowed buttons (mask)
- db $01, $00, $00, $01, $60, $00, $20, $00
-; 50457
-
-PartyMenuSelect: ; 0x50457
-; sets carry if exitted menu.
- call Function1bc9
- call Function1bee
- ld a, [PartyCount]
- inc a
- ld b, a
- ld a, [MenuSelection2] ; menu selection?
- cp b
- jr z, .exitmenu ; CANCEL
- ld [wd0d8], a
- ld a, [hJoyLast]
- ld b, a
- bit 1, b
- jr nz, .exitmenu ; B button?
- ld a, [MenuSelection2]
- dec a
- ld [CurPartyMon], a
- ld c, a
- ld b, $0
- ld hl, PartySpecies
- add hl, bc
- ld a, [hl]
- ld [CurPartySpecies], a
-
- ld de, SFX_READ_TEXT_2
- call PlaySFX
- call WaitSFX
- and a
- ret
-
-.exitmenu
- ld de, SFX_READ_TEXT_2
- call PlaySFX
- call WaitSFX
- scf
- ret
-; 0x5049a
-
-
-PrintPartyMenuText: ; 5049a
- hlcoord 0, 14
- lb bc, 2, 18
- call TextBox
- ld a, [PartyCount]
- and a
- jr nz, .haspokemon
- ld de, YouHaveNoPKMNString
- jr .gotstring
-.haspokemon ; 504ae
- ld a, [PartyMenuActionText]
- and $f ; drop high nibble
- ld hl, PartyMenuStrings
- ld e, a
- ld d, $0
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld d, [hl]
- ld e, a
-.gotstring ; 504be
- ld a, [Options]
- push af
- set 4, a ; disable text delay
- ld [Options], a
- hlcoord 1, 16 ; Coord
- call PlaceString
- pop af
- ld [Options], a
- ret
-; 0x504d2
-
-PartyMenuStrings: ; 0x504d2
- dw ChooseAMonString
- dw UseOnWhichPKMNString
- dw WhichPKMNString
- dw TeachWhichPKMNString
- dw MoveToWhereString
- dw UseOnWhichPKMNString
- dw ChooseAMonString ; Probably used to be ChooseAFemalePKMNString
- dw ChooseAMonString ; Probably used to be ChooseAMalePKMNString
- dw ToWhichPKMNString
-
-ChooseAMonString: ; 0x504e4
- db "Choose a #MON.@"
-UseOnWhichPKMNString: ; 0x504f3
- db "Use on which <PK><MN>?@"
-WhichPKMNString: ; 0x50504
- db "Which <PK><MN>?@"
-TeachWhichPKMNString: ; 0x5050e
- db "Teach which <PK><MN>?@"
-MoveToWhereString: ; 0x5051e
- db "Move to where?@"
-ChooseAFemalePKMNString: ; 0x5052d ; UNUSED
- db "Choose a ♀<PK><MN>.@"
-ChooseAMalePKMNString: ; 0x5053b ; UNUSED
- db "Choose a ♂<PK><MN>.@"
-ToWhichPKMNString: ; 0x50549
- db "To which <PK><MN>?@"
-
-YouHaveNoPKMNString: ; 0x50556
- db "You have no <PK><MN>!@"
-
-
-Function50566: ; 50566
- ld a, [CurPartyMon]
- ld hl, PartyMonNicknames
- call GetNick
- ld a, [PartyMenuActionText]
- and $f
- ld hl, Unknown_5057b
- call Function505c1
- ret
-; 5057b
-
-Unknown_5057b: ; 5057b
- dw UnknownText_0x50594
- dw UnknownText_0x5059e
- dw UnknownText_0x505a3
- dw UnknownText_0x505a8
- dw UnknownText_0x50599
- dw UnknownText_0x5058f
- dw UnknownText_0x505ad
- dw UnknownText_0x505b2
- dw UnknownText_0x505b7
- dw UnknownText_0x505bc
-; 5058f
-
-UnknownText_0x5058f: ; 0x5058f
- ; recovered @ HP!
- text_jump UnknownText_0x1bc0a2
- db "@"
-; 0x50594
-
-UnknownText_0x50594: ; 0x50594
- ; 's cured of poison.
- text_jump UnknownText_0x1bc0bb
- db "@"
-; 0x50599
-
-UnknownText_0x50599: ; 0x50599
- ; 's rid of paralysis.
- text_jump UnknownText_0x1bc0d2
- db "@"
-; 0x5059e
-
-UnknownText_0x5059e: ; 0x5059e
- ; 's burn was healed.
- text_jump UnknownText_0x1bc0ea
- db "@"
-; 0x505a3
-
-UnknownText_0x505a3: ; 0x505a3
- ; was defrosted.
- text_jump UnknownText_0x1bc101
- db "@"
-; 0x505a8
-
-UnknownText_0x505a8: ; 0x505a8
- ; woke up.
- text_jump UnknownText_0x1bc115
- db "@"
-; 0x505ad
-
-UnknownText_0x505ad: ; 0x505ad
- ; 's health returned.
- text_jump UnknownText_0x1bc123
- db "@"
-; 0x505b2
-
-UnknownText_0x505b2: ; 0x505b2
- ; is revitalized.
- text_jump UnknownText_0x1bc13a
- db "@"
-; 0x505b7
-
-UnknownText_0x505b7: ; 0x505b7
- ; grew to level @ !@ @
- text_jump UnknownText_0x1bc14f
- db "@"
-; 0x505bc
-
-UnknownText_0x505bc: ; 0x505bc
- ; came to its senses.
- text_jump UnknownText_0x1bc16e
- db "@"
-; 0x505c1
-
-
-Function505c1: ; 505c1
- ld e, a
- ld d, 0
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [Options]
- push af
- set 4, a
- ld [Options], a
- call PrintText
- pop af
- ld [Options], a
- ret
-; 505da
-
-DoPoisonStep:: ; 505da
- ld a, [PartyCount]
- and a
- jr z, .asm_5062c
- xor a
- ld c, 7
- ld hl, EngineBuffer1
-.asm_505e6
- ld [hli], a
- dec c
- jr nz, .asm_505e6
- xor a
- ld [CurPartyMon], a
-.asm_505ee
- call Function5062e
- jr nc, .asm_50605
- ld a, [CurPartyMon]
- ld e, a
- ld d, 0
- ld hl, wd03f
- add hl, de
- ld [hl], c
- ld a, [EngineBuffer1]
- or c
- ld [EngineBuffer1], a
-
-.asm_50605
- ld a, [PartyCount]
- ld hl, CurPartyMon
- inc [hl]
- cp [hl]
- jr nz, .asm_505ee
- ld a, [EngineBuffer1]
- and $2
- jr nz, .asm_50622
- ld a, [EngineBuffer1]
- and $1
- jr z, .asm_5062c
- call Function50658
- xor a
- ret
-
-.asm_50622
- ld a, BANK(UnknownScript_0x50669)
- ld hl, UnknownScript_0x50669
- call CallScript
- scf
- ret
-
-.asm_5062c
- xor a
- ret
-; 5062e
-
-Function5062e: ; 5062e
- ld a, MON_STATUS
- call GetPartyParamLocation
- ld a, [hl]
- and 1 << PSN
- ret z
-
- ld a, MON_HP
- call GetPartyParamLocation
- ld a, [hli]
- ld b, a
- ld c, [hl]
-
- or c
- ret z
-
- dec bc
- ld [hl], c
- dec hl
- ld [hl], b
-
- ld a, b
- or c
- jr nz, .not_fainted
-
- ld a, MON_STATUS
- call GetPartyParamLocation
- ld [hl], 0
- ld c, 2
- scf
- ret
-
-.not_fainted
- ld c, 1
- scf
- ret
-; 50658
-
-Function50658: ; 50658
- ld de, SFX_POISON
- call PlaySFX
- ld b, $2
- predef Functioncbcdd
- call DelayFrame
- ret
-; 50669
-
-UnknownScript_0x50669: ; 50669
- callasm Function50658
- loadfont
- callasm Function5067b
- iffalse UnknownScript_0x50677
- loadmovesprites
- end
-; 50677
-
-UnknownScript_0x50677: ; 50677
- farjump Script_OverworldWhiteout
-; 5067b
-
-Function5067b: ; 5067b
- xor a
- ld [CurPartyMon], a
- ld de, wd03f
-.asm_50682
- push de
- ld a, [de]
- and 2
- jr z, .asm_5069c
- ld c, HAPPINESS_POISONFAINT
- callba ChangeHappiness
- callba GetPartyNick
- ld hl, PoisonFaintText
- call PrintText
-
-.asm_5069c
- pop de
- inc de
- ld hl, CurPartyMon
- inc [hl]
- ld a, [PartyCount]
- cp [hl]
- jr nz, .asm_50682
- predef CheckPlayerPartyForFitPkmn
- ld a, d
- ld [ScriptVar], a
- ret
-; 506b2
-
-PoisonFaintText: ; 506b2
- text_jump UnknownText_0x1c0acc
- db "@"
-; 506b7
-
-PoisonWhiteOutText: ; 506b7
- text_jump UnknownText_0x1c0ada
- db "@"
-; 506bc
-
-
-DoMovementFunctionc: ; 506bc
- ld hl, UnknownScript_0x506c8
- call QueueScript
- ld a, $1
- ld [wd0ec], a
- ret
-; 506c8
-
-UnknownScript_0x506c8: ; 0x506c8
- reloadmappart
- special UpdateTimePals
- callasm GetPartyNick
- writetext UnknownText_0x50726
- closetext
- callasm SweetScentEncounter
- iffalse UnknownScript_0x506e9
- checkflag ENGINE_BUG_CONTEST_TIMER
- iftrue UnknownScript_0x506e5
- battlecheck
- startbattle
- returnafterbattle
- end
-; 0x506e5
-
-UnknownScript_0x506e5: ; 0x506e5
- farjump BugCatchingContestBattleScript
-; 0x506e9
-
-UnknownScript_0x506e9: ; 0x506e9
- writetext UnknownText_0x5072b
- closetext
- loadmovesprites
- end
-; 0x506ef
-
-SweetScentEncounter: ; 506ef
- callba CanUseSweetScent
- jr nc, .no_battle
- ld hl, StatusFlags2
- bit 2, [hl]
- jr nz, .not_in_bug_contest
- callba GetMapEncounterRate
- ld a, b
- and a
- jr z, .no_battle
- callba ChooseWildEncounter
- jr nz, .no_battle
- jr .start_battle
-
-.not_in_bug_contest
- callba ChooseWildEncounter_BugContest
-
-.start_battle
- ld a, $1
- ld [ScriptVar], a
- ret
-
-.no_battle
- xor a
- ld [ScriptVar], a
- ld [BattleType], a
- ret
-; 50726
-
-UnknownText_0x50726: ; 0x50726
- ; used SWEET SCENT!
- text_jump UnknownText_0x1c0b03
- db "@"
-; 0x5072b
-
-UnknownText_0x5072b: ; 0x5072b
- ; Looks like there's nothing here…
- text_jump UnknownText_0x1c0b1a
- db "@"
-; 0x50730
-
-
-_Squirtbottle: ; 50730
- ld hl, UnknownScript_0x5073c
- call QueueScript
- ld a, $1
- ld [wd0ec], a
- ret
-; 5073c
-
-UnknownScript_0x5073c: ; 0x5073c
- reloadmappart
- special UpdateTimePals
- callasm Function50753
- iffalse UnknownScript_0x5074b
- farjump WateredWeirdTreeScript
-; 0x5074b
-
-UnknownScript_0x5074b: ; 0x5074b
- jumptext UnknownText_0x5074e
-; 0x5074e
-
-UnknownText_0x5074e: ; 0x5074e
- ; sprinkled water. But nothing happened…
- text_jump UnknownText_0x1c0b3b
- db "@"
-; 0x50753
-
-Function50753: ; 50753
- ld a, [MapGroup]
- cp GROUP_ROUTE_36
- jr nz, .asm_50774
-
- ld a, [MapNumber]
- cp MAP_ROUTE_36
- jr nz, .asm_50774
-
- callba GetFacingObject
- jr c, .asm_50774
-
- ld a, d
- cp $17
- jr nz, .asm_50774
-
- ld a, $1
- ld [ScriptVar], a
- ret
-
-.asm_50774
- xor a
- ld [ScriptVar], a
- ret
-; 50779
-
-
-_CardKey: ; 50779
-; Are we even in the right map to use this?
- ld a, [MapGroup]
- cp GROUP_RADIO_TOWER_3F
- jr nz, .nope
-
- ld a, [MapNumber]
- cp MAP_RADIO_TOWER_3F
- jr nz, .nope
-; Are we facing the slot?
- ld a, [PlayerDirection]
- and $c
- cp OW_UP
- jr nz, .nope
-
- call GetFacingTileCoord
- ld a, d
- cp 18
- jr nz, .nope
- ld a, e
- cp 6
- jr nz, .nope
-; Let's use the Card Key.
- ld hl, .CardKeyScript
- call QueueScript
- ld a, $1
- ld [wd0ec], a
- ret
-
-.nope
- ld a, $0
- ld [wd0ec], a
- ret
-; 507af
-
-.CardKeyScript: ; 0x507af
- loadmovesprites
- farjump MapRadioTower3FSignpost2Script
-; 0x507b4
-
-
-_BasementKey: ; 507b4
-; Are we even in the right map to use this?
- ld a, [MapGroup]
- cp GROUP_WAREHOUSE_ENTRANCE
- jr nz, .nope
-
- ld a, [MapNumber]
- cp MAP_WAREHOUSE_ENTRANCE
- jr nz, .nope
-; Are we on the tile in front of the door?
- call GetFacingTileCoord
- ld a, d
- cp 22
- jr nz, .nope
- ld a, e
- cp 10
- jr nz, .nope
-; Let's use the Basement Key
- ld hl, .BasementKeyScript
- call QueueScript
- ld a, 1
- ld [wd0ec], a
- ret
-
-.nope
- ld a, $0
- ld [wd0ec], a
- ret
-; 507e1
-
-.BasementKeyScript: ; 0x507e1
- loadmovesprites
- farjump BasementDoorScript
-; 0x507e6
-
-
-_SacredAsh: ; 507e6
- ld a, $0
- ld [wd0ec], a
- call CheckAnyFaintedMon
- ret nc
-
- ld hl, SacredAshScript
- call QueueScript
- ld a, $1
- ld [wd0ec], a
- ret
-; 507fb
-
-CheckAnyFaintedMon: ; 507fb
- ld de, PARTYMON_STRUCT_LENGTH
- ld bc, PartySpecies
- ld hl, PartyMon1HP
- ld a, [PartyCount]
- and a
- ret z
-
-.loop
- push af
- push hl
- ld a, [bc]
- inc bc
- cp EGG
- jr z, .next
-
- ld a, [hli]
- or [hl]
- jr z, .done
-
-.next
- pop hl
- add hl, de
- pop af
- dec a
- jr nz, .loop
- xor a
- ret
-
-.done
- pop hl
- pop af
- scf
- ret
-; 50821
-
-SacredAshScript: ; 0x50821
- special HealParty
- reloadmappart
- playsound SFX_WARP_TO
- special FadeBlackBGMap
- special FadeInBGMap
- special FadeBlackBGMap
- special FadeInBGMap
- special FadeBlackBGMap
- special FadeInBGMap
- waitbutton
- writetext UnknownText_0x50845
- playsound SFX_CAUGHT_MON
- waitbutton
- closetext
- loadmovesprites
- end
-; 0x50845
-
-UnknownText_0x50845: ; 0x50845
- ; 's #MON were all healed!
- text_jump UnknownText_0x1c0b65
- db "@"
-; 0x5084a
+INCLUDE "engine/party_menu.asm"
+INCLUDE "event/poisonstep.asm"
+INCLUDE "event/sweet_scent.asm"
+INCLUDE "event/squirtbottle.asm"
+INCLUDE "event/card_key.asm"
+INCLUDE "event/basement_key.asm"
+INCLUDE "event/sacred_ash.asm"
CopyPkmnToTempMon: ; 5084a
; gets the BaseData of a Pkmn
@@ -33567,21 +32205,21 @@ Function50890: ; 50890
; 50893
Function50893: ; 50893
- ld hl, TempMonLevel - TempMon
+ ld hl, MON_LEVEL
add hl, bc
ld a, [hl]
ld [CurPartyLevel], a
- ld hl, TempMonMaxHP - TempMon
+ ld hl, MON_MAXHP
add hl, bc
ld d, h
ld e, l
- ld hl, TempMonExp + 2 - TempMon
+ ld hl, MON_EXP + 2
add hl, bc
push bc
ld b, $1
predef CalcPkmnStats
pop bc
- ld hl, TempMonHP - TempMon
+ ld hl, MON_HP
add hl, bc
ld d, h
ld e, l
@@ -33596,14 +32234,14 @@ Function50893: ; 50893
.asm_508c1
push bc
- ld hl, TempMonMaxHP - TempMon
+ ld hl, MON_MAXHP
add hl, bc
ld bc, 2
call CopyBytes
pop bc
.asm_508cd
- ld hl, TempMonStatus - TempMon
+ ld hl, MON_STATUS
add hl, bc
xor a
ld [hli], a
@@ -38609,7 +37247,7 @@ Function84419: ; 84419
; 84425
Function84425: ; 84425
- call Function222a
+ call ReturnToMapFromSubmenu
call Function84753
ret
; 8442c
@@ -39499,7 +38137,7 @@ RedCredits:: ; 86455
ld [MusicFadeIDHi], a
ld a, $a
ld [MusicFade], a
- callba FadeBlackBGMap
+ callba FadeOutPalettes
xor a
ld [VramState], a
ld [hMapAnims], a
@@ -39522,7 +38160,7 @@ Function8648e: ; 8648e
ld [MusicFadeIDHi], a
ld a, 10
ld [MusicFade], a
- callba FadeBlackBGMap
+ callba FadeOutPalettes
xor a
ld [VramState], a
ld [hMapAnims], a
@@ -39688,7 +38326,7 @@ GetHallOfFameParty: ; 8653f
Function865b5: ; 865b5
push hl
- call WhiteBGMap
+ call ClearBGPalettes
callba Function4e906
pop hl
ld a, [hli]
@@ -39833,7 +38471,7 @@ Function86692: ; 86692
.asm_866a9
push hl
- call WhiteBGMap
+ call ClearBGPalettes
pop hl
call Function86748
ld a, [wc608]
@@ -39997,7 +38635,7 @@ Function86748: ; 86748
; 86810
Function86810: ; 86810
- call WhiteBGMap
+ call ClearBGPalettes
ld hl, VTiles2 tile $63
ld de, FontExtra + $d0
lb bc, BANK(FontExtra), 1
@@ -40420,7 +39058,7 @@ PlayWhirlpoolSound: ; 8c7d4
; 8c7e1
BlindingFlash: ; 8c7e1
- callba FadeBlackBGMap
+ callba FadeOutPalettes
ld hl, StatusFlags
set 2, [hl]
callba Function8c0e5
@@ -40428,7 +39066,7 @@ BlindingFlash: ; 8c7e1
ld b, $9
call GetSGBLayout
callba Function49409
- callba FadeInBGMap
+ callba FadeInPalettes
ret
; 8c80a
@@ -40929,7 +39567,7 @@ Special_MagnetTrain: ; 8cc04
.done
pop af
ld [hVBlank], a
- call WhiteBGMap
+ call ClearBGPalettes
xor a
ld [hLCDStatCustom], a
ld [hLCDStatCustom + 1], a
@@ -40986,7 +39624,7 @@ Function8ccc4: ; 8ccc4
; 8ccc9
Function8ccc9: ; 8ccc9
- call WhiteBGMap
+ call ClearBGPalettes
call ClearSprites
call DisableLCD
callab Function8cf53
@@ -45602,7 +44240,7 @@ Function90b8d: ; 90b8d (24:4b8d)
ld [hInMenu], a
pop af
ld [Options], a
- call WhiteBGMap
+ call ClearBGPalettes
xor a
ld [hBGMapAddress], a
ld a, VBGMap0 / $100
@@ -45613,7 +44251,7 @@ Function90b8d: ; 90b8d (24:4b8d)
ret
Function90bea: ; 90bea (24:4bea)
- call WhiteBGMap
+ call ClearBGPalettes
call ClearTileMap
call ClearSprites
call DisableLCD
@@ -47002,7 +45640,7 @@ Function9191c: ; 9191c
push af
xor a
ld [VramState], a
- call WhiteBGMap
+ call ClearBGPalettes
call ClearTileMap
call ClearSprites
call DisableLCD
@@ -47057,7 +45695,7 @@ Function9191c: ; 9191c
ld [hInMenu], a
pop af
ld [Options], a
- call WhiteBGMap
+ call ClearBGPalettes
ret
; 919b0
@@ -47263,927 +45901,12 @@ Function91ae1: ; 91ae1
; 91af3
-_FlyMap: ; 91af3
- call WhiteBGMap
- call ClearTileMap
- call ClearSprites
- ld hl, hInMenu
- ld a, [hl]
- push af
- ld [hl], $1
- xor a
- ld [hBGMapMode], a
- callba Function8cf53
- call Function91ff2
- ld de, GFX_922e1
- ld hl, VTiles2 tile $30
- lb bc, BANK(GFX_922e1), 6
- call Request1bpp
- call FlyMap
- call Function91c8f
- ld b, $2
- call GetSGBLayout
- call SetPalettes
-.loop
- call JoyTextDelay
- ld hl, hJoyPressed
- ld a, [hl]
- and B_BUTTON
- jr nz, .pressedB
- ld a, [hl]
- and A_BUTTON
- jr nz, .pressedA
- call FlyMapScroll
- call GetMapCursorCoordinates
- callba Function8cf69
- call DelayFrame
- jr .loop
-
-.pressedB
- ld a, -1
- jr .exit
-
-.pressedA
- ld a, [wd002]
- ld l, a
- ld h, 0
- add hl, hl
- ld de, Flypoints + 1
- add hl, de
- ld a, [hl]
+INCLUDE "engine/flypoints.asm"
-.exit
- ld [wd002], a
- pop af
- ld [hInMenu], a
- call WhiteBGMap
- ld a, $90
- ld [hWY], a
+Function92311: ; unreferenced
xor a
- ld [hBGMapAddress], a
- ld a, VBGMap0 / $100
- ld [hBGMapAddress + 1], a
- ld a, [wd002]
- ld e, a
- ret
-; 91b73
-
-FlyMapScroll: ; 91b73
- ld a, [StartFlypoint]
- ld e, a
- ld a, [EndFlypoint]
- ld d, a
- ld hl, hJoyLast
- ld a, [hl]
- and D_UP
- jr nz, .ScrollNext
- ld a, [hl]
- and D_DOWN
- jr nz, .ScrollPrev
- ret
-
-.ScrollNext
- ld hl, wd002
- ld a, [hl]
- cp d
- jr nz, .NotAtEndYet
- ld a, e
- dec a
- ld [hl], a
-
-.NotAtEndYet
- inc [hl]
- call CheckIfVisitedFlypoint
- jr z, .ScrollNext
- jr .Finally
-
-.ScrollPrev
- ld hl, wd002
- ld a, [hl]
- cp e
- jr nz, .NotAtStartYet
- ld a, d
- inc a
- ld [hl], a
-
-.NotAtStartYet
- dec [hl]
- call CheckIfVisitedFlypoint
- jr z, .ScrollPrev
-
-.Finally
- 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
-
-; Top-left corner
- hlcoord 1, 0
- ld a, $30
- ld [hli], a
-
-; Top row
- ld bc, 16
- ld a, " "
- call ByteFill
-
-; Top-right corner
- ld a, $31
- ld [hl], a
- hlcoord 1, 1
-
-
-; Middle row
- ld bc, 18
- ld a, " "
- call ByteFill
-
-
-; Bottom-left corner
- hlcoord 1, 2
- ld a, $32
- ld [hli], a
-
-; Bottom row
- ld bc, 16
- ld a, " "
- call ByteFill
-
-; Bottom-right corner
- ld a, $33
- ld [hl], a
-
-
-; Print "Where?"
- hlcoord 2, 0
- ld de, .Where
- call PlaceString
-
-; Print the name of the default flypoint
- call .Name
-
-; Up/down arrows
- hlcoord 18, 1
- ld [hl], $34
- ret
-
-.Where
- db "Where?@"
-
-.Name
-; We need the map location of the default flypoint
- ld a, [wd002]
- ld l, a
- ld h, 0
- add hl, hl ; two bytes per flypoint
- ld de, Flypoints
- add hl, de
- ld e, [hl]
-
- callba GetLandmarkName
-
- hlcoord 2, 1
- ld de, StringBuffer1
- call PlaceString
- ret
-; 91c17
-
-GetMapCursorCoordinates: ; 91c17
- ld a, [wd002]
- ld l, a
- ld h, $0
- add hl, hl
- ld de, Flypoints
- add hl, de
- ld e, [hl]
- callba GetLandmarkCoords
- ld a, [wd003]
- ld c, a
- ld a, [wd004]
- ld b, a
- ld hl, $4
- add hl, bc
- ld [hl], e
- ld hl, $5
- add hl, bc
- ld [hl], d
- ret
-; 91c3c
-
-CheckIfVisitedFlypoint: ; 91c3c
-; Check if the flypoint loaded in [hl] has been visited yet.
- push bc
- push de
- push hl
- ld l, [hl]
- ld h, 0
- add hl, hl
- ld de, Flypoints + 1
- add hl, de
- ld c, [hl]
- call HasVisitedSpawn
- pop hl
- pop de
- pop bc
- and a
- ret
-; 91c50
-
-HasVisitedSpawn: ; 91c50
-; Check if spawn point c has been visited.
- ld hl, VisitedSpawns
- ld b, CHECK_FLAG
- ld d, 0
- predef FlagPredef
- ld a, c
- ret
-; 91c5e
-
-Flypoints: ; 91c5e
-; landmark, spawn point
-
- const_def
-
-flypoint: MACRO
-; \1\@FLY EQUS "FLY_\1"
-; \1\@SPAWN EQUS "SPAWN_\1"
- ; const \1\@FLY
- ; db \2, \1\@SPAWN
- const FLY_\1
- db \2, SPAWN_\1
-ENDM
-
-; Johto
- flypoint NEW_BARK, NEW_BARK_TOWN
- flypoint CHERRYGROVE, CHERRYGROVE_CITY
- flypoint VIOLET, VIOLET_CITY
- flypoint AZALEA, AZALEA_TOWN
- flypoint GOLDENROD, GOLDENROD_CITY
- flypoint ECRUTEAK, ECRUTEAK_CITY
- flypoint OLIVINE, OLIVINE_CITY
- flypoint CIANWOOD, CIANWOOD_CITY
- flypoint MAHOGANY, MAHOGANY_TOWN
- flypoint LAKE, LAKE_OF_RAGE
- flypoint BLACKTHORN, BLACKTHORN_CITY
- flypoint MT_SILVER, SILVER_CAVE
-
-; Kanto
-KANTO_FLYPOINT EQU const_value
-
- flypoint PALLET, PALLET_TOWN
- flypoint VIRIDIAN, VIRIDIAN_CITY
- flypoint PEWTER, PEWTER_CITY
- flypoint CERULEAN, CERULEAN_CITY
- flypoint VERMILION, VERMILION_CITY
- flypoint ROCK_TUNNEL, ROCK_TUNNEL
- flypoint LAVENDER, LAVENDER_TOWN
- flypoint CELADON, CELADON_CITY
- flypoint SAFFRON, SAFFRON_CITY
- flypoint FUCHSIA, FUCHSIA_CITY
- flypoint CINNABAR, CINNABAR_ISLAND
- flypoint INDIGO, INDIGO_PLATEAU
-
- db -1
-; 91c8f
-
-Function91c8f: ; 91c8f
- ret
-; 91c90
-
-FlyMap: ; 91c90
-
- ld a, [MapGroup]
- ld b, a
- ld a, [MapNumber]
- ld c, a
- call GetWorldMapLocation
-
-; If we're not in a valid location, i.e. Pokecenter floor 2F,
-; the backup map information is used
-
- cp SPECIAL_MAP
- jr nz, .CheckRegion
-
- ld a, [BackupMapGroup]
- ld b, a
- ld a, [BackupMapNumber]
- ld c, a
- call GetWorldMapLocation
-
-.CheckRegion
-; The first 46 locations are part of Johto. The rest are in Kanto
- cp KANTO_LANDMARK
- jr nc, .KantoFlyMap
-
-.JohtoFlyMap
-; Note that .NoKanto should be modified in tandem with this branch
-
- push af
-
-; Start from New Bark Town
- ld a, FLY_NEW_BARK
- ld [wd002], a
-
-; Flypoints begin at New Bark Town...
- ld [StartFlypoint], a
-; ..and end at Silver Cave
- ld a, FLY_MT_SILVER
- ld [EndFlypoint], a
-
-; Fill out the map
- call FillJohtoMap
- call .MapHud
- pop af
- call TownMapPlayerIcon
- ret
-
-.KantoFlyMap
-
-; The event that there are no flypoints enabled in a map is not
-; accounted for. As a result, if you attempt to select a flypoint
-; when there are none enabled, the game will crash. Additionally,
-; the flypoint selection has a default starting point that
-; can be flown to even if none are enabled
-
-; To prevent both of these things from happening when the player
-; enters Kanto, fly access is restricted until Indigo Plateau is
-; visited and its flypoint enabled
-
- push af
- ld c, SPAWN_INDIGO
- call HasVisitedSpawn
- and a
- jr z, .NoKanto
-
-; Kanto's map is only loaded if we've visited Indigo Plateau
-
-; Flypoints begin at Pallet Town...
- ld a, FLY_PALLET
- ld [StartFlypoint], a
-; ...and end at Indigo Plateau
- ld a, FLY_INDIGO
- ld [EndFlypoint], a
-
-; Because Indigo Plateau is the first flypoint the player
-; visits, it's made the default flypoint
- ld [wd002], a
-
-; Fill out the map
- call FillKantoMap
- call .MapHud
- pop af
- call TownMapPlayerIcon
- ret
-
-.NoKanto
-; If Indigo Plateau hasn't been visited, we use Johto's map instead
-
-; Start from New Bark Town
- ld a, FLY_NEW_BARK
ld [wd002], a
-
-; Flypoints begin at New Bark Town...
- ld [StartFlypoint], a
-; ..and end at Silver Cave
- ld a, FLY_MT_SILVER
- ld [EndFlypoint], a
-
- call FillJohtoMap
-
- pop af
-
-.MapHud
- call TownMapBubble
- call TownMapPals
-
- ld hl, VBGMap0 ; BG Map 0
- call TownMapBGUpdate
-
- call TownMapMon
- ld a, c
- ld [wd003], a
- ld a, b
- ld [wd004], a
- ret
-; 91d11
-
-Function91d11: ; 91d11
- ld a, [wd002]
- push af
- ld a, [wd003]
- push af
- ld a, e
- ld [wd002], a
- call ClearSprites
- xor a
- ld [hBGMapMode], a
- ld a, $1
- ld [hInMenu], a
- ld de, GFX_922d1
- ld hl, VTiles0 tile $7f
- lb bc, BANK(GFX_922d1), 1
- call Request2bpp ; actually 1bpp
- call Function91ed0
- ld hl, VTiles0 tile $78
- ld c, $4
- call Request2bpp
- call Function91ff2
- call FillKantoMap
- call Function91de9
- call TownMapPals
- ld hl, VBGMap1
- call TownMapBGUpdate
- call FillJohtoMap
- call Function91de9
- call TownMapPals
- ld hl, VBGMap0
- call TownMapBGUpdate
- ld b, $2
- call GetSGBLayout
- call SetPalettes
- xor a
- ld [hBGMapMode], a
- xor a
- call Function91e1e
-.asm_91d6e
- call JoyTextDelay
- ld hl, hJoyPressed
- ld a, [hl]
- and A_BUTTON | B_BUTTON
- jr nz, .asm_91d8f
- ld a, [hJoypadDown]
- and SELECT
- jr nz, .asm_91d87
- call Function91d9b
- call Function91dcd
- jr .asm_91d8a
-
-.asm_91d87
- call Function91e5a
-
-.asm_91d8a
- call DelayFrame
- jr .asm_91d6e
-
-.asm_91d8f
- call ClearSprites
- pop af
- ld [wd003], a
- pop af
- ld [wd002], a
- ret
-; 91d9b
-
-Function91d9b: ; 91d9b
- ld a, [hl]
- and $20
- jr nz, .asm_91da6
- ld a, [hl]
- and $10
- jr nz, .asm_91db7
- ret
-
-.asm_91da6
- ld a, [hWY]
- cp $90
- ret z
- call ClearSprites
- ld a, $90
- ld [hWY], a
- xor a
- call Function91e1e
- ret
-
-.asm_91db7
- ld a, [StatusFlags]
- bit 6, a
- ret z
- ld a, [hWY]
- and a
- ret z
- call ClearSprites
- xor a
- ld [hWY], a
- ld a, $1
- call Function91e1e
- ret
-; 91dcd
-
-Function91dcd: ; 91dcd
- ld a, [hVBlankCounter]
- ld e, a
- and $f
- ret nz
- ld a, e
- and $10
- jr nz, .asm_91ddc
- call ClearSprites
- ret
-
-.asm_91ddc
- hlcoord 0, 0
- ld de, Sprites
- ld bc, $a0
- call CopyBytes
- ret
-; 91de9
-
-Function91de9: ; 91de9
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH
- ld a, $7f
- call ByteFill
- hlcoord 0, 1
- ld a, $6
- ld [hli], a
- ld bc, SCREEN_HEIGHT
- ld a, $7
- call ByteFill
- ld [hl], $17
- call GetPokemonName
- hlcoord 2, 0
- call PlaceString
- ld h, b
- ld l, c
- ld de, String_91e16
- call PlaceString
- ret
-; 91e16
-
-String_91e16:
- db "'S NEST@"
-; 91e1e
-
-Function91e1e: ; 91e1e
- ld [wd003], a
- ld e, a
- callba Function2a01f
- decoord 0, 0
- ld hl, Sprites
-.asm_91e2e
- ld a, [de]
- and a
- jr z, .asm_91e4d
- push de
- ld e, a
- push hl
- callba GetLandmarkCoords
- pop hl
- ld a, d
- sub $4
- ld [hli], a
- ld a, e
- sub $4
- ld [hli], a
- ld a, $7f
- ld [hli], a
- xor a
- ld [hli], a
- pop de
- inc de
- jr .asm_91e2e
-
-.asm_91e4d
- ld hl, Sprites
- decoord 0, 0
- ld bc, $a0
- call CopyBytes
- ret
-; 91e5a
-
-Function91e5a: ; 91e5a
- call Function91ea9
- ret c
-
- ld a, [wd002]
- ld e, a
- callba GetLandmarkCoords
- ld c, e
- ld b, d
- ld de, Unknown_91e9c
- ld hl, Sprites
-.asm_91e70
- ld a, [de]
- cp $80
- jr z, .asm_91e91
-
- add b
- ld [hli], a
- inc de
-
- ld a, [de]
- add c
- ld [hli], a
- inc de
-
- ld a, [de]
- add $78
- ld [hli], a
- inc de
-
- push bc
- ld c, 0
- ld a, [PlayerGender]
- bit 0, a
- jr z, .asm_91e8c
- inc c
-.asm_91e8c
- ld a, c
- ld [hli], a
- pop bc
-
- jr .asm_91e70
-
-.asm_91e91
- ld hl, Sprites + $10
- ld bc, SpritesEnd - (Sprites + $10)
- xor a
- call ByteFill
- ret
-; 91e9c
-
-Unknown_91e9c: ; 91e9c
- db -8, -8, 0
- db -8, 0, 1
- db 0, -8, 2
- db 0, 0, 3
- db $80 ; terminator
-; 91ea9
-
-Function91ea9: ; 91ea9
- ld a, [wd002]
- cp FAST_SHIP
- jr z, .johto
- cp KANTO_LANDMARK
- jr c, .johto
-
-.kanto
- ld a, [wd003]
- and a
- jr z, .clear
- jr .ok
-
-.johto
- ld a, [wd003]
- and a
- jr nz, .clear
-
-.ok
- and a
- ret
-
-.clear
- ld hl, Sprites
- ld bc, SpritesEnd - Sprites
- xor a
- call ByteFill
- scf
- ret
-; 91ed0
-
-Function91ed0: ; 91ed0
- ld a, [wd002]
- cp FAST_SHIP
- jr z, .asm_91ede
- callba GetPlayerIcon
- ret
-
-.asm_91ede
- ld de, FastShipGFX
- ld b, BANK(FastShipGFX)
- ret
-; 91ee4
-
-TownMapBGUpdate: ; 91ee4
-; Update BG Map tiles and attributes
-
-; BG Map address
- ld a, l
- ld [hBGMapAddress], a
- ld a, h
- ld [hBGMapAddress + 1], a
-
-; Only update palettes on CGB
- ld a, [hCGB]
- and a
- jr z, .tiles
-
-; BG Map mode 2 (palettes)
- ld a, 2
- ld [hBGMapMode], a
-
-; The BG Map is updated in thirds, so we wait
-; 3 frames to update the whole screen's palettes.
- ld c, 3
- call DelayFrames
-
-.tiles
-; Update BG Map tiles
- call WaitBGMap
-
-; Turn off BG Map update
- xor a
- ld [hBGMapMode], a
- ret
-; 91eff
-
-FillJohtoMap: ; 91eff
- ld de, JohtoMap
- jr FillTownMap
-
-FillKantoMap: ; 91f04
- ld de, KantoMap
-
-FillTownMap: ; 91f07
- hlcoord 0, 0
-.loop
- ld a, [de]
- cp $ff
- ret z
- ld a, [de]
- ld [hli], a
- inc de
- jr .loop
-; 91f13
-
-TownMapPals: ; 91f13
-; Assign palettes based on tile ids
-
- hlcoord 0, 0
- decoord 0, 0, AttrMap
- ld bc, 360
-.loop
-; Current tile
- ld a, [hli]
- push hl
-
-; HP/borders use palette 0
- cp $60
- jr nc, .pal0
-
-; The palette data is condensed to nybbles,
-; least-significant first.
- ld hl, TownMapPalMap
- srl a
- jr c, .odd
-
-; Even-numbered tile ids take the bottom nybble...
- add l
- ld l, a
- ld a, h
- adc 0
- ld h, a
- ld a, [hl]
- and %111
- jr .update
-
-.odd
-; ...and odd ids take the top.
- add l
- ld l, a
- ld a, h
- adc 0
- ld h, a
- ld a, [hl]
- swap a
- and %111
- jr .update
-
-.pal0
- xor a
-
-.update
- pop hl
- ld [de], a
- inc de
- dec bc
- ld a, b
- or c
- jr nz, .loop
- ret
-
-TownMapPalMap:
- db $11, $21, $22, $00, $11, $13, $54, $54, $11, $21, $22, $00
- db $11, $10, $01, $00, $11, $21, $22, $00, $00, $00, $00, $00
- db $00, $00, $44, $04, $00, $00, $00, $00, $33, $33, $33, $33
- db $33, $33, $33, $03, $33, $33, $33, $33, $00, $00, $00, $00
-; 91f7b
-
-TownMapMon: ; 91f7b
-; Draw the FlyMon icon at town map location in
-
-; Get FlyMon species
- ld a, [CurPartyMon]
- ld hl, PartySpecies
- ld e, a
- ld d, $0
- add hl, de
- ld a, [hl]
- ld [wd265], a
-
-; Get FlyMon icon
- ld e, 8 ; starting tile in VRAM
- callba GetSpeciesIcon
-
-; Animation/palette
- ld de, 0
- ld a, $0
- call Function3b2a
-
- ld hl, 3
- add hl, bc
- ld [hl], 8
- ld hl, 2
- add hl, bc
- ld [hl], 0
- ret
-; 91fa6
-
-TownMapPlayerIcon: ; 91fa6
-; Draw the player icon at town map location in a
- push af
-
- callba GetPlayerIcon
-
-; Standing icon
- ld hl, VTiles0 tile $10
- ld c, 4 ; # tiles
- call Request2bpp
-
-; Walking icon
- ld hl, $c0
- add hl, de
- ld d, h
- ld e, l
- ld hl, VTiles0 tile $14
- ld c, 4 ; # tiles
- ld a, BANK(ChrisSpriteGFX) ; does nothing
- call Request2bpp
-
-; Animation/palette
- ld de, 0
- ld b, $0a ; Male
- ld a, [PlayerGender]
- bit 0, a
- jr z, .asm_91fd3
- ld b, $1e ; Female
-.asm_91fd3
- ld a, b
- call Function3b2a
-
- ld hl, $3
- add hl, bc
- ld [hl], $10
-
- pop af
- ld e, a
- push bc
- callba GetLandmarkCoords
- pop bc
-
- ld hl, 4
- add hl, bc
- ld [hl], e
- ld hl, 5
- add hl, bc
- ld [hl], d
- ret
-; 0x91ff2
-
-Function91ff2: ; 91ff2
- ld hl, TownMapGFX
- ld de, VTiles2
- lb bc, BANK(TownMapGFX), $30
- call DecompressRequest2bpp
- ret
-; 91fff
-
-
-JohtoMap: ; 91fff
-INCBIN "gfx/misc/johto.bin"
-; 92168
-
-KantoMap: ; 92168
-INCBIN "gfx/misc/kanto.bin"
-; 922d1
-
-
-GFX_922d1: ; 922d1
-INCBIN "gfx/unknown/0922d1.2bpp"
-GFX_922e1: ; 922e1
-INCBIN "gfx/unknown/0922e1.2bpp"
-GFX_92301: ; 92301
-INCBIN "gfx/unknown/092301.2bpp"
-
-Function92311: ; 92311
- xor a
- ld [wd002], a
- call WhiteBGMap
+ call ClearBGPalettes
call ClearTileMap
call ClearSprites
ld hl, hInMenu
@@ -48248,7 +45971,7 @@ Function92311: ; 92311
ld [wd002], a
pop af
ld [hInMenu], a
- call WhiteBGMap
+ call ClearBGPalettes
ld a, $90
ld [hWY], a
xor a
@@ -48317,2121 +46040,7 @@ Function923b8: ; 923b8
INCLUDE "data/wild/fish.asm"
-
-
-_SlotMachine:
- ld hl, Options
- set 4, [hl]
- call Function926f7
- call DelayFrame
-.asm_926d2
- call Function927af
- jr nc, .asm_926d2
- call WaitSFX
- ld de, SFX_QUIT_SLOTS
- call PlaySFX
- call WaitSFX
- call WhiteBGMap
- callba MobileFn_105fd0
- ld hl, Options
- res 4, [hl]
- ld hl, rLCDC ; $ff40
- res 2, [hl]
- ret
-
-Function926f7: ; 926f7 (24:66f7)
- call WhiteBGMap
- call ClearTileMap
- call ClearSprites
- ld de, MUSIC_NONE
- call PlayMusic
- call DelayFrame
- call DisableLCD
- ld hl, VBGMap0 tile $00
- lb bc, 4, 0
- ld a, $7f
- call ByteFill
- ld b, $5
- call GetSGBLayout
- callab Function8cf53
- ld hl, wc6d0
- ld bc, $48
- xor a
- call ByteFill
- ld hl, Slots2LZ
- ld de, VTiles0 tile $00
- call Decompress
- ld hl, Slots3LZ
- ld de, VTiles0 tile $40
- call Decompress
- ld hl, Slots1LZ
- ld de, VTiles2 tile $00
- call Decompress
- ld hl, Slots2LZ
- ld de, VTiles2 tile $25
- call Decompress
- ld hl, SlotsTilemap
- decoord 0, 0
- ld bc, 20 * 12
- call CopyBytes
- ld hl, rLCDC ; $ff40
- set 2, [hl]
- call EnableLCD
- ld hl, wc6d0
- ld bc, $64
- xor a
- call ByteFill
- call Function92a98
- call Function9279b
- ld a, $7
- ld hl, wc300
- ld [hli], a
- ld [hl], $40
- xor a
- ld [wJumptableIndex], a
- ld a, $ff
- ld [wc709], a
- ld de, MUSIC_GAME_CORNER
- call PlayMusic
- xor a
- ld [wd002], a
- call Random
- and $2a
- ret nz
- ld a, $1
- ld [wd002], a
- ret
-
-Function9279b: ; 9279b (24:679b)
- ld a, $e4
- call DmgToCgbBGPals
- lb de, $e4, $e4
- ld a, [hCGB]
- and a
- jr nz, .asm_927ab
- lb de, $c0, $e4
-.asm_927ab
- call DmgToCgbObjPals
- ret
-
-Function927af: ; 927af (24:67af)
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .asm_927d1
- call Function92844
- call Function92b0f
- xor a
- ld [wc3b5], a
- callab Function8cfa8
- call Function927f8
- call Function927d3
- call DelayFrame
- and a
- ret
-.asm_927d1
- scf
- ret
-
-Function927d3: ; 927d3 (24:67d3)
- ret
-; 927d4 (24:67d4)
-
-Function927d4: ; 927d4
- ld a, [wc6d0]
- and a
- ret nz
- ld a, [wc6e0]
- and a
- ret nz
- ld a, [wc70c]
- and a
- jr nz, .asm_927ea
- ld a, $e4
- call DmgToCgbBGPals
- ret
-
-.asm_927ea
- ld a, [TextDelayFrames]
- and $7
- ret nz
- ld a, [rBGP]
- xor %1100
- call DmgToCgbBGPals
- ret
-; 927f8
-
-Function927f8: ; 927f8 (24:67f8)
- hlcoord 5, 1
- ld de, Coins
- lb bc, PRINTNUM_LEADINGZEROS | 2, 4
- call PrintNum
- hlcoord 11, 1
- ld de, wc711
- lb bc, PRINTNUM_LEADINGZEROS | 2, 4
- call PrintNum
- ret
-; 92811 (24:6811)
-
-Function92811: ; 92811
- ld a, [wc709]
- add 0
- daa
- ld e, a
- and $f
- add "0"
- hlcoord 1, 0
- ld [hl], a
- ld a, e
- swap a
- and $f
- add "0"
- hlcoord 0, 0
- ld [hl], a
- ret
-; 9282c
-
-Function9282c: ; 9282c
- ld hl, wcf66
- ld a, [hl]
- inc [hl]
- and $7
- ret nz
- ld hl, Sprites + $42
- ld c, $18
-.asm_92839
- ld a, [hl]
- xor $20
- ld [hli], a
-rept 3
- inc hl
-endr
- dec c
- jr nz, .asm_92839
- ret
-; 92844
-
-Function92844: ; 92844 (24:6844)
- ld a, [wJumptableIndex]
- ld e, a
- ld d, 0
- ld hl, Jumptable_92853
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 92853 (24:6853)
-
-
-Jumptable_92853: ; 92853 (24:6853)
- dw Function9287e
- dw Function9288e
- dw Function928c6
- dw Function928d6
- dw Function928e6
- dw Function92900
- dw Function92910
- dw Function9292a
- dw Function9293a
- dw Function92879
- dw Function92879
- dw Function92879
- dw Function92955
- dw Function9296b
- dw Function92987
- dw Function9299e
- dw Function929a4
- dw Function929d9
- dw Function929f0
-
-
-Function92879: ; 92879 (24:6879)
- ld hl, wJumptableIndex
- inc [hl]
- ret
-
-Function9287e: ; 9287e (24:687e)
- call Function92879
- xor a
- ld [wc70b], a
- ld [wc70c], a
- ld a, $ff
- ld [wc70d], a
- ret
-
-Function9288e: ; 9288e (24:688e)
- call Function9307c
- jr nc, .asm_92899
- ld a, $12
- ld [wJumptableIndex], a
- ret
-.asm_92899
- call Function92879
- call Function9303f
- call Function93002
- ld a, $20
- ld [wcf64], a
- ld a, $4
- ld [wc6d0], a
- ld [wc6e0], a
- ld [wc6f0], a
- ld a, $4
- ld [wc6d9], a
- ld [wc6e9], a
- ld [wc6f9], a
- call WaitSFX
- ld a, SFX_SLOT_MACHINE_START
- call Function9331e
- ret
-
-Function928c6: ; 928c6 (24:68c6)
- ld hl, wcf64
- ld a, [hl]
- and a
- jr z, .asm_928cf
- dec [hl]
- ret
-.asm_928cf
- call Function92879
- xor a
- ld [hJoypadSum], a
- ret
-
-Function928d6: ; 928d6 (24:68d6)
- ld hl, hJoypadSum ; $ffa5
- ld a, [hl]
- and A_BUTTON
- ret z
- call Function92879
- call Function92a2b
- ld [wc6d0], a
-
-Function928e6: ; 928e6 (24:68e6)
- ld a, [wc6d0]
- cp $0
- ret nz
- ld a, SFX_STOP_SLOT
- call Function9331e
- ld bc, wc6d0
- ld de, wc700
- call Function929f6
- call Function92879
- xor a
- ld [hJoypadSum], a
-
-Function92900: ; 92900 (24:6900)
- ld hl, hJoypadSum ; $ffa5
- ld a, [hl]
- and A_BUTTON
- ret z
- call Function92879
- call Function92a2e
- ld [wc6e0], a
-
-Function92910: ; 92910 (24:6910)
- ld a, [wc6e0]
- cp $0
- ret nz
- ld a, SFX_STOP_SLOT
- call Function9331e
- ld bc, wc6e0
- ld de, wc703
- call Function929f6
- call Function92879
- xor a
- ld [hJoypadSum], a
-
-Function9292a: ; 9292a (24:692a)
- ld hl, hJoypadSum ; $ffa5
- ld a, [hl]
- and A_BUTTON
- ret z
- call Function92879
- call Function92a60
- ld [wc6f0], a
-
-Function9293a: ; 9293a (24:693a)
- ld a, [wc6f0]
- cp $0
- ret nz
- ld a, SFX_STOP_SLOT
- call Function9331e
- ld bc, wc6f0
- ld de, wc706
- call Function929f6
- call Function92879
- xor a
- ld [hJoypadSum], a
- ret
-
-Function92955: ; 92955 (24:6955)
- ld a, [wc70d]
- cp $ff
- jr nz, .asm_92963
- call Function92879
- call Function92879
- ret
-.asm_92963
- call Function92879
- ld a, $10
- ld [wcf64], a
-
-Function9296b: ; 9296b (24:696b)
- ld hl, wcf64
- ld a, [hl]
- and a
- jr z, .asm_92980
- dec [hl]
- srl a
- ret z
- ld a, [rOBP0]
- xor $ff
- ld e, a
- ld d, a
- call DmgToCgbObjPals
- ret
-.asm_92980
- call Function9279b
- call Function92879
- ret
-
-Function92987: ; 92987 (24:6987)
- xor a
- ld [wc70b], a
- ld [wc70c], a
- ld a, $e4
- call DmgToCgbBGPals
- call Function93124
- xor a
- ld [wcf64], a
- call Function92879
- ret
-
-Function9299e: ; 9299e (24:699e)
- call Function93158
- call Function92879
-
-Function929a4: ; 929a4 (24:69a4)
- ld hl, wcf64
- ld a, [hl]
- inc [hl]
- and $1
- ret z
- ld hl, wc711
- ld a, [hli]
- ld d, a
- or [hl]
- jr z, .asm_929d5
- ld e, [hl]
- dec de
- ld [hl], e
- dec hl
- ld [hl], d
- ld hl, Coins
- ld d, [hl]
- inc hl
- ld e, [hl]
- call Function92a04
- jr c, .asm_929c5
- inc de
-.asm_929c5
- ld [hl], e
- dec hl
- ld [hl], d
- ld a, [wcf64]
- and $7
- ret z
- ld de, SFX_GET_COIN_FROM_SLOTS
- call PlaySFX
- ret
-.asm_929d5
- call Function92879
- ret
-
-Function929d9: ; 929d9 (24:69d9)
- call Function9304c
- call WaitPressAorB_BlinkCursor
- call Function930e9
- jr c, .asm_929ea
- ld a, $0
- ld [wJumptableIndex], a
- ret
-.asm_929ea
- ld a, $12
- ld [wJumptableIndex], a
- ret
-
-Function929f0: ; 929f0 (24:69f0)
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-
-Function929f6: ; 929f6 (24:69f6)
- push de
- call Function92a12
- pop de
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- ret
-
-Function92a04: ; 92a04 (24:6a04)
- ld a, d
- cp 9999 / $100
- jr c, .asm_92a10
- ld a, e
- cp 9999 % $100
- jr c, .asm_92a10
- scf
- ret
-.asm_92a10
- and a
- ret
-
-Function92a12: ; 92a12 (24:6a12)
- ld hl, $3
- add hl, bc
- ld a, [hl]
- and a
- jr nz, .asm_92a1c
- ld a, $f
-.asm_92a1c
- dec a
- and $f
- ld e, a
- ld d, $0
- ld hl, $1
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- add hl, de
- ret
-
-Function92a2b: ; 92a2b (24:6a2b)
- ld a, $7
- ret
-
-Function92a2e: ; 92a2e (24:6a2e)
- ld a, [wc70a]
- cp $2
- jr c, .asm_92a4e
- ld a, [wc709]
- and a
- jr z, .asm_92a3f
- cp $ff
- jr nz, .asm_92a4e
-.asm_92a3f
- call Function92a51
- jr nz, .asm_92a4e
- call Random
- cp $50
- jr nc, .asm_92a4e
- ld a, $a
- ret
-.asm_92a4e
- ld a, $8
- ret
-
-Function92a51: ; 92a51 (24:6a51)
- ld a, [wc700]
- and a
- ret z
- ld a, [wc701]
- and a
- ret z
- ld a, [wc702]
- and a
- ret
-
-Function92a60: ; 92a60 (24:6a60)
- ld a, [wc70b]
- and a
- jr z, .asm_92a95
- ld a, [wc70c]
- and a
- jr z, .asm_92a95
- ld a, [wc709]
- and a
- jr nz, .asm_92a84
- call Random
- cp 180
- jr nc, .asm_92a95
- cp 120
- jr nc, .asm_92a92
- cp 60
- jr nc, .asm_92a8f
- ld a, $15
- ret
-.asm_92a84
- call Random
- cp $a0
- jr nc, .asm_92a95
- cp $50
- jr nc, .asm_92a92
-.asm_92a8f
- ld a, $12
- ret
-.asm_92a92
- ld a, $10
- ret
-.asm_92a95
- ld a, $9
- ret
-
-Function92a98: ; 92a98 (24:6a98)
- ld bc, wc6d0
- ld hl, $6
- add hl, bc
- ld de, Sprites + $40
- ld [hl], e
- inc hl
- ld [hl], d
- ld hl, $1
- add hl, bc
- ld de, Unknown_93327
- ld [hl], e
- inc hl
- ld [hl], d
- ld hl, $8
- add hl, bc
- ld [hl], $30
- call Function92af9
- ld bc, wc6e0
- ld hl, $6
- add hl, bc
- ld de, Sprites + $60
- ld [hl], e
- inc hl
- ld [hl], d
- ld hl, $1
- add hl, bc
- ld de, Unknown_93339
- ld [hl], e
- inc hl
- ld [hl], d
- ld hl, $8
- add hl, bc
- ld [hl], $50
- call Function92af9
- ld bc, wc6f0
- ld hl, $6
- add hl, bc
- ld de, Sprites + $80
- ld [hl], e
- inc hl
- ld [hl], d
- ld hl, $1
- add hl, bc
- ld de, Unknown_9334b
- ld [hl], e
- inc hl
- ld [hl], d
- ld hl, $8
- add hl, bc
- ld [hl], $70
- call Function92af9
- ret
-
-Function92af9: ; 92af9 (24:6af9)
- ld hl, 0
- add hl, bc
- ld [hl], $0
- ld hl, $3
- add hl, bc
- ld [hl], $e
- ld hl, $4
- add hl, bc
- ld [hl], $0
- call Function92b53
- ret
-
-Function92b0f: ; 92b0f (24:6b0f)
- ld bc, wc6d0
- call Function92b22
- ld bc, wc6e0
- call Function92b22
- ld bc, wc6f0
- call Function92b22
- ret
-
-Function92b22: ; 92b22 (24:6b22)
- ld hl, $4
- add hl, bc
- ld a, [hl]
- and $f
- jr nz, .asm_92b2e
- call Function92bd4
-.asm_92b2e
- ld hl, $5
- add hl, bc
- ld a, [hl]
- and a
- ret z
- ld d, a
- ld hl, $4
- add hl, bc
- add [hl]
- ld [hl], a
- and $f
- jr z, Function92b53
- ld hl, $6
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld e, $8
-.asm_92b49
- ld a, [hl]
- add d
- ld [hli], a
-rept 3
- inc hl
-endr
- dec e
- jr nz, .asm_92b49
- ret
-
-Function92b53: ; 92b53 (24:6b53)
- ld hl, $8
- add hl, bc
- ld a, [hl]
- ld [wc712 + 1], a
- ld a, $50
- ld [wc712 + 2], a
- ld hl, $3
- add hl, bc
- ld e, [hl]
- ld d, $0
- ld hl, $1
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- add hl, de
- ld e, l
- ld d, h
- call Function92b83
- ld hl, $3
- add hl, bc
- ld a, [hl]
- inc a
- and $f
- cp $f
- jr nz, .asm_92b81
- xor a
-.asm_92b81
- ld [hl], a
- ret
-
-Function92b83: ; 92b83 (24:6b83)
- ld hl, $6
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
-.asm_92b8a
- ld a, [wc712 + 2]
- ld [hli], a
- ld a, [wc712 + 1]
- ld [hli], a
- ld a, [de]
- ld [hli], a
- srl a
- srl a
- set 7, a
- ld [hli], a
- ld a, [wc712 + 2]
- ld [hli], a
- ld a, [wc712 + 1]
- add $8
- ld [hli], a
- ld a, [de]
-rept 2
- inc a
-endr
- ld [hli], a
- srl a
- srl a
- set 7, a
- ld [hli], a
- inc de
- ld a, [wc712 + 2]
- sub $10
- ld [wc712 + 2], a
- cp $10
- jr nz, .asm_92b8a
- ret
-; 92bbe (24:6bbe)
-
-Function92bbe: ; 92bbe
- push hl
- srl a
- srl a
- add Unknown_92bce % $100
- ld l, a
- ld a, 0
- adc Unknown_92bce / $100
- ld h, a
- ld a, [hl]
- pop hl
- ret
-; 92bce
-
-Unknown_92bce: ; 92bce
- db 0, 1, 2, 3, 4, 5
-; 92bd4
-
-Function92bd4: ; 92bd4 (24:6bd4)
- ld hl, 0
- add hl, bc
- ld e, [hl]
- ld d, 0
- ld hl, Jumptable_92be4
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 92be4 (24:6be4)
-
-Jumptable_92be4: ; 92be4
- dw Function92c16
- dw Function92c4c
- dw Function92c17
- dw Function92c1e
- dw Function92c25
- dw Function92c2c
- dw Function92c33
- dw Function92c5e
- dw Function92c86
- dw Function92ca9
- dw Function92cd2
- dw Function92cf8
- dw Function92d13
- dw Function92df7
- dw Function92e10
- dw Function92e31
- dw Function92e47
- dw Function92e64
- dw Function92d20
- dw Function92d4f
- dw Function92d6e
- dw Function92d7e
- dw Function92da4
- dw Function92db3
- dw Function92dca
-; 92c16
-
-Function92c16: ; 92c16
- ret
-; 92c17
-
-Function92c17: ; 92c17
- ld hl, $5
- add hl, bc
- ld [hl], $10
- ret
-; 92c1e
-
-Function92c1e: ; 92c1e
- ld hl, $5
- add hl, bc
- ld [hl], $8
- ret
-; 92c25
-
-Function92c25: ; 92c25
- ld hl, $5
- add hl, bc
- ld [hl], $4
- ret
-; 92c2c
-
-Function92c2c: ; 92c2c
- ld hl, $5
- add hl, bc
- ld [hl], $2
- ret
-; 92c33
-
-Function92c33: ; 92c33
- ld hl, $5
- add hl, bc
- ld [hl], $1
- ret
-; 92c3a
-
-Function92c3a: ; 92c3a
- ld hl, $5
- add hl, bc
- ld [hl], $0
- ld hl, 0
- add hl, bc
- ld [hl], $1
- ld hl, $f
- add hl, bc
- ld [hl], $3
-
-Function92c4c: ; 92c4c
- ld hl, $f
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_92c56
- dec [hl]
- ret
-
-.asm_92c56
- ld hl, 0
- add hl, bc
- ld a, $0
- ld [hl], a
- ret
-; 92c5e
-
-Function92c5e: ; 92c5e
- ld a, [wc709]
- cp $ff
- jr z, .asm_92c72
- ld hl, $9
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_92c72
- dec [hl]
- call Function92c76
- ret nz
-
-.asm_92c72
- call Function92c3a
- ret
-; 92c76
-
-Function92c76: ; 92c76
- call Function92a12
- ld a, [wc709]
- ld e, a
- ld a, [hli]
- cp e
- ret z
- ld a, [hli]
- cp e
- ret z
- ld a, [hl]
- cp e
- ret
-; 92c86
-
-Function92c86: ; 92c86
- call Function92e94
- jr nc, .asm_92c94
- ld a, [wc717]
- ld hl, wc709
- cp [hl]
- jr z, .asm_92ca5
-
-.asm_92c94
- ld a, [wc709]
- cp $ff
- jr z, .asm_92ca5
- ld hl, $9
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_92ca5
- dec [hl]
- ret
-
-.asm_92ca5
- call Function92c3a
- ret
-; 92ca9
-
-Function92ca9: ; 92ca9
- call Function92f1d
- jr nc, .asm_92cbd
- ld hl, wc709
- cp [hl]
- jr z, .asm_92cce
- ld hl, $9
- add hl, bc
- ld a, [hl]
- and a
- ret z
- dec [hl]
- ret
-
-.asm_92cbd
- ld a, [wc709]
- cp $ff
- jr z, .asm_92cce
- ld hl, $9
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_92cce
- dec [hl]
- ret
-
-.asm_92cce
- call Function92c3a
- ret
-; 92cd2
-
-Function92cd2: ; 92cd2
- call Function92e94
- jr nc, .asm_92ce1
- ld a, [wc70c]
- and a
- jr z, .asm_92ce1
- call Function92c3a
- ret
-
-.asm_92ce1
- ld a, SFX_STOP_SLOT
- call Function9331e
- ld hl, 0
- add hl, bc
- inc [hl]
- ld hl, $a
- add hl, bc
- ld [hl], $20
- ld hl, $5
- add hl, bc
- ld [hl], $0
- ret
-; 92cf8
-
-Function92cf8: ; 92cf8
- ld hl, $a
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_92d02
- dec [hl]
- ret
-
-.asm_92d02
- ld a, SFX_THROW_BALL
- call Function9331e
- ld hl, 0
- add hl, bc
- inc [hl]
- ld hl, $5
- add hl, bc
- ld [hl], $8
- ret
-; 92d13
-
-Function92d13: ; 92d13
- call Function92e94
- ret nc
- ld a, [wc70c]
- and a
- ret z
- call Function92c3a
- ret
-; 92d20
-
-Function92d20: ; 92d20
- call Function92f1d
- ret c
- ld a, SFX_STOP_SLOT
- call Function9331e
- call Function93316
- ld hl, 0
- add hl, bc
- inc [hl]
- ld hl, $5
- add hl, bc
- ld [hl], $0
- call Function92fc0
- push bc
- push af
- ld de, $6068
- ld a, $6
- call Function3b2a
- ld hl, $e
- add hl, bc
- pop af
- ld [hl], a
- pop bc
- xor a
- ld [wcf64], a
-
-Function92d4f: ; 92d4f
- ld a, [wcf64]
- cp $2
- jr z, .asm_92d5b
- cp $1
- jr z, .asm_92d62
- ret
-
-.asm_92d5b
- call Function92f1d
- call Function92c3a
- ret
-
-.asm_92d62
- ld hl, 0
- add hl, bc
- inc [hl]
- ld hl, $5
- add hl, bc
- ld [hl], $8
- ret
-; 92d6e
-
-Function92d6e: ; 92d6e
- xor a
- ld [wcf64], a
- ld hl, 0
- add hl, bc
- dec [hl]
- ld hl, $5
- add hl, bc
- ld [hl], $0
- ret
-; 92d7e
-
-Function92d7e: ; 92d7e
- call Function92f1d
- ret c
- ld a, SFX_STOP_SLOT
- call Function9331e
- call Function93316
- ld hl, 0
- add hl, bc
- inc [hl]
- ld hl, $5
- add hl, bc
- ld [hl], $0
- push bc
- ld de, $6000
- ld a, $7
- call Function3b2a
- pop bc
- xor a
- ld [wcf64], a
- ret
-; 92da4
-
-Function92da4: ; 92da4
- ld a, [wcf64]
- and a
- ret z
- ld hl, 0
- add hl, bc
- inc [hl]
- ld a, $2
- ld [wcf64], a
-
-Function92db3: ; 92db3
- ld a, [wcf64]
- cp $4
- ret c
- ld hl, 0
- add hl, bc
- inc [hl]
- ld hl, $5
- add hl, bc
- ld [hl], $10
- ld hl, $a
- add hl, bc
- ld [hl], $11
-
-Function92dca: ; 92dca
- ld hl, $a
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_92dd4
- dec [hl]
- ret
-
-.asm_92dd4
- call Function92f1d
- jr nc, .asm_92de5
- and a
- jr nz, .asm_92de5
- ld a, $5
- ld [wcf64], a
- call Function92c3a
- ret
-
-.asm_92de5
- ld hl, $5
- add hl, bc
- ld [hl], $0
- ld hl, 0
- add hl, bc
-rept 2
- dec [hl]
-endr
- ld a, $1
- ld [wcf64], a
- ret
-; 92df7
-
-Function92df7: ; 92df7
- call Function92f1d
- ret c
- ld a, SFX_STOP_SLOT
- call Function9331e
- call Function93316
- ld hl, 0
- add hl, bc
- inc [hl]
- call Function92fc0
- ld hl, $a
- add hl, bc
- ld [hl], a
-
-Function92e10: ; 92e10
- ld hl, $a
- add hl, bc
- ld a, [hl]
- and a
- jr nz, .asm_92e1f
- call Function92f1d
- call Function92c3a
- ret
-
-.asm_92e1f
- dec [hl]
- ld hl, 0
- add hl, bc
- inc [hl]
- ld hl, $b
- add hl, bc
- ld [hl], $20
- ld hl, $5
- add hl, bc
- ld [hl], $0
-
-Function92e31: ; 92e31
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_92e3b
- dec [hl]
- ret
-
-.asm_92e3b
- ld hl, 0
- add hl, bc
- dec [hl]
- ld hl, $5
- add hl, bc
- ld [hl], $8
- ret
-; 92e47
-
-Function92e47: ; 92e47
- call Function92f1d
- ret c
- ld a, SFX_STOP_SLOT
- call Function9331e
- call Function93316
- ld hl, $5
- add hl, bc
- ld [hl], $1
- ld hl, 0
- add hl, bc
- inc [hl]
- ld hl, $a
- add hl, bc
- ld [hl], $10
-
-Function92e64: ; 92e64
- ld hl, $a
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_92e73
- dec [hl]
-.asm_92e6d
- ld a, SFX_GOT_SAFARI_BALLS
- call Function9331e
- ret
-
-.asm_92e73
- ld a, [wc709]
- and a
- jr nz, .asm_92e88
- call Function92f1d
- jr nc, .asm_92e6d
- and a
- jr nz, .asm_92e6d
- call Function92c3a
- call WaitSFX
- ret
-
-.asm_92e88
- call Function92f1d
- jr c, .asm_92e6d
- call Function92c3a
- call WaitSFX
- ret
-; 92e94
-
-Function92e94: ; 92e94
- xor a
- ld [wc70b], a
- ld [wc70c], a
- call Function92a12
- call Function92fb4
- ld a, [wc70a]
- and 3
- ld e, a
- ld d, 0
- ld hl, Jumptable_92ebd
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, .asm_92eb6
- push de
- jp [hl]
-
-.asm_92eb6
- ld a, [wc70b]
- and a
- ret z
- scf
- ret
-; 92ebd
-
-Jumptable_92ebd: ; 92ebd
- dw Function92ed4
- dw Function92ed1
- dw Function92ecb
- dw Function92ec5
-; 92ec5
-
-Function92ec5: ; 92ec5
- call Function92ee0
- call Function92ef6
-
-Function92ecb: ; 92ecb
- call Function92ed5
- call Function92f01
-
-Function92ed1: ; 92ed1
- call Function92eeb
-
-Function92ed4: ; 92ed4
- ret
-; 92ed5
-
-Function92ed5: ; 92ed5
- ld hl, wc70e
- ld a, [EnemyScreens]
- cp [hl]
- call z, Function92f0c
- ret
-; 92ee0
-
-Function92ee0: ; 92ee0
- ld hl, wEnemyGoesFirst
- ld a, [wc700]
- cp [hl]
- call z, Function92f0c
- ret
-; 92eeb
-
-Function92eeb: ; 92eeb
- ld hl, wEnemyGoesFirst
- ld a, [wc701]
- cp [hl]
- call z, Function92f0c
- ret
-; 92ef6
-
-Function92ef6: ; 92ef6
- ld hl, wEnemyGoesFirst
- ld a, [wc702]
- cp [hl]
- call z, Function92f0c
- ret
-; 92f01
-
-Function92f01: ; 92f01
- ld hl, wc710
- ld a, [wc702]
- cp [hl]
- call z, Function92f0c
- ret
-; 92f0c
-
-Function92f0c: ; 92f0c
- ld [wc717], a
- and a
- jr nz, .asm_92f17
- ld a, $1
- ld [wc70c], a
-
-.asm_92f17
- ld a, $1
- ld [wc70b], a
- ret
-; 92f1d
-
-Function92f1d: ; 92f1d
- ld a, $ff
- ld [EffectFailed], a
- call Function92a12
- call Function92fb4
- ld a, [wc70a]
- and 3
- ld e, a
- ld d, 0
- ld hl, Jumptable_92f48
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, .asm_92f3d
- push de
- jp [hl]
-
-.asm_92f3d
- ld a, [wc70d]
- cp $ff
- jr nz, .asm_92f46
- and a
- ret
-
-.asm_92f46
- scf
- ret
-; 92f48
-
-Jumptable_92f48: ; 92f48
- dw Function92f5f
- dw Function92f5c
- dw Function92f56
- dw Function92f50
-; 92f50
-
-Function92f50: ; 92f50
- call Function92f70
- call Function92f90
-
-Function92f56: ; 92f56
- call Function92f60
- call Function92fa0
-
-Function92f5c: ; 92f5c
- call Function92f80
-
-Function92f5f: ; 92f5f
- ret
-; 92f60
-
-Function92f60: ; 92f60
- ld hl, wc70e
- ld a, [wc700]
- cp [hl]
- ret nz
- ld hl, wc703
- cp [hl]
- call z, Function92fb0
- ret
-; 92f70
-
-Function92f70: ; 92f70
- ld hl, wc710
- ld a, [wc700]
- cp [hl]
- ret nz
- ld hl, wc704
- cp [hl]
- call z, Function92fb0
- ret
-; 92f80
-
-Function92f80: ; 92f80
- ld hl, wEnemyGoesFirst
- ld a, [wc701]
- cp [hl]
- ret nz
- ld hl, wc704
- cp [hl]
- call z, Function92fb0
- ret
-; 92f90
-
-Function92f90: ; 92f90
- ld hl, wc70e
- ld a, [wc702]
- cp [hl]
- ret nz
- ld hl, wc704
- cp [hl]
- call z, Function92fb0
- ret
-; 92fa0
-
-Function92fa0: ; 92fa0
- ld hl, wc710
- ld a, [wc702]
- cp [hl]
- ret nz
- ld hl, wc705
- cp [hl]
- call z, Function92fb0
- ret
-; 92fb0
-
-Function92fb0: ; 92fb0
- ld [wc70d], a
- ret
-; 92fb4
-
-Function92fb4: ; 92fb4
- ld de, wc70e
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hl]
- ld [de], a
- ret
-; 92fc0
-
-Function92fc0: ; 92fc0
- ld hl, $3
- add hl, bc
- ld a, [hl]
- push af
- push hl
- call Function92fcf
- pop hl
- pop af
- ld [hl], a
- ld a, e
- ret
-; 92fcf
-
-Function92fcf: ; 92fcf
- ld a, [wc709]
- and a
- jr nz, .asm_92fe8
- ld e, $0
-.asm_92fd7
- ld hl, $3
- add hl, bc
- inc [hl]
- inc e
- push de
- call Function92f1d
- pop de
- jr nc, .asm_92fd7
- and a
- jr nz, .asm_92fd7
- ret
-
-.asm_92fe8
- call Random
- and $7
- cp $4
- jr c, .asm_92fe8
- ld e, a
-.asm_92ff2
- ld a, e
- inc e
- ld hl, $3
- add hl, bc
- add [hl]
- ld [hl], a
- push de
- call Function92f1d
- pop de
- jr c, .asm_92ff2
- ret
-; 93002
-
-Function93002: ; 93002 (24:7002)
- ld a, [wc709]
- and a
- ret z
- ld hl, Unknown_93023
- ld a, [ScriptVar]
- and a
- jr z, .asm_93013
- ld hl, Unknown_93031
-.asm_93013
- call Random
- ld c, a
-.asm_93017
- ld a, [hli]
- cp c
- jr nc, .asm_9301e
- inc hl
- jr .asm_93017
-.asm_9301e
- ld a, [hl]
- ld [wc709], a
- ret
-; 93023 (24:7023)
-
-Unknown_93023: ; 93023
- db $01, $00
- db $03, $04
- db $0a, $14
- db $14, $10
- db $28, $0c
- db $30, $08
- db $ff, $ff
-; 93031
-
-Unknown_93031: ; 93031
- db $02, $00
- db $03, $04
- db $08, $14
- db $10, $10
- db $1e, $0c
- db $50, $08
- db $ff, $ff
-; 9303f
-
-Function9303f: ; 9303f (24:703f)
- ld b, $14
- ld a, [wc70a]
- dec a
- jr z, asm_93066
- dec a
- jr z, asm_9305a
- jr asm_9304e
-
-Function9304c: ; 9304c (24:704c)
- ld b, $23
-asm_9304e: ; 9304e (24:704e)
- hlcoord 3, 2
- call Function93069
- hlcoord 3, 10
- call Function93069
-asm_9305a: ; 9305a (24:705a)
- hlcoord 3, 4
- call Function93069
- hlcoord 3, 8
- call Function93069
-asm_93066: ; 93066 (24:7066)
- hlcoord 3, 6
-
-Function93069: ; 93069 (24:7069)
- ld a, b
- ld [hl], a
- ld de, $d
- add hl, de
- ld [hl], a
- ld de, $7
- add hl, de
- inc a
- ld [hl], a
- ld de, $d
- add hl, de
- ld [hl], a
- ret
-
-Function9307c: ; 9307c (24:707c)
- ld hl, UnknownText_0x930c7
- call PrintText
- ld hl, MenuDataHeader_0x930d6
- call LoadMenuDataHeader
- call InterpretMenu2
- call WriteBackup
- ret c
- ld a, [MenuSelection2]
- ld b, a
- ld a, $4
- sub b
- ld [wc70a], a
- ld hl, Coins
- ld c, a
- ld a, [hli]
- and a
- jr nz, .asm_930ad
- ld a, [hl]
- cp c
- jr nc, .asm_930ad
- ld hl, UnknownText_0x930d1
- call PrintText
- jr Function9307c
-.asm_930ad
- ld hl, Coins + 1
- ld a, [hl]
- sub c
- ld [hld], a
- jr nc, .asm_930b6
- dec [hl]
-.asm_930b6
- call WaitSFX
- ld de, SFX_PAY_DAY
- call PlaySFX
- ld hl, UnknownText_0x930cc
- call PrintText
- and a
- ret
-; 930c7 (24:70c7)
-
-UnknownText_0x930c7: ; 0x930c7
- ; Bet how many coins?
- text_jump UnknownText_0x1c5049
- db "@"
-; 0x930cc
-
-UnknownText_0x930cc: ; 0x930cc
- ; Start!
- text_jump UnknownText_0x1c505e
- db "@"
-; 0x930d1
-
-UnknownText_0x930d1: ; 0x930d1
- ; Not enough coins.
- text_jump UnknownText_0x1c5066
- db "@"
-; 0x930d6
-
-MenuDataHeader_0x930d6: ; 0x930d6
- db $40 ; flags
- db 10, 14 ; start coords
- db 17, 19 ; end coords
- dw MenuData2_0x930de
- db 1 ; default option
-; 0x930de
-
-MenuData2_0x930de: ; 0x930de
- db $80 ; flags
- db 3 ; items
- db " 3@"
- db " 2@"
- db " 1@"
-; 0x930e9
-
-Function930e9: ; 930e9 (24:70e9)
- ld hl, Coins
- ld a, [hli]
- or [hl]
- jr nz, .asm_930fd
- ld hl, UnknownText_9311a
- call PrintText
- ld c, 60
- call DelayFrames
- jr .asm_93118
-.asm_930fd
- ld hl, UnknownText_9311f
- call PrintText
- call LoadMenuTextBox
- lb bc, 14, 12
- call PlaceYesNoBox
- ld a, [MenuSelection2]
- dec a
- call WriteBackup
- and a
- jr nz, .asm_93118
- and a
- ret
-.asm_93118
- scf
- ret
-; 9311a (24:711a)
-
-UnknownText_9311a: ; 9311a
- text_jump UnknownText_0x1c5079
- db "@"
-
-UnknownText_9311f: ; 9311f
- text_jump UnknownText_0x1c5092
- db "@"
-
-Function93124: ; 93124 (24:7124)
- ld a, [EffectFailed]
- cp $ff
- jr z, .asm_93151
- srl a
- ld e, a
- ld d, 0
- ld hl, .data_93145
- add hl, de
- ld a, [hli]
- ld [PlayerUsedMoves], a
- ld e, a
- ld a, [hl]
- ld [wc711], a
- ld d, a
- callba MobileFn_105fe3
- ret
-
-.data_93145
- db $2c, $01
- db $32, $00
- db $06, $00
- db $08, $00
- db $0a, $00
- db $0f, $00
-
-.asm_93151
- ld hl, wc711
- xor a
- ld [hli], a
- ld [hl], a
- ret
-
-Function93158: ; 93158 (24:7158)
- ld a, [EffectFailed]
- cp $ff
- jr nz, .asm_9316c
- ld hl, UnknownText_0x931e0
- call PrintText
- callba MobileFn_105fd0
- ret
-.asm_9316c
- srl a
- ld e, a
- ld d, 0
- ld hl, Unknown_93195
-rept 3
- add hl, de
-endr
- ld de, StringBuffer2
- ld bc, $4
- call CopyBytes
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, .asm_93188
- push de
- jp [hl]
-.asm_93188
- ld hl, UnknownText_0x931b9
- call PrintText
- callba MobileFn_105f9f
- ret
-; 93195 (24:7195)
-
-Unknown_93195: ; 93195
- db "300@"
- dw Function931e5
- db "50@@"
- dw Function9320b
- db "6@@@"
- dw Function93214
- db "8@@@"
- dw Function93214
- db "10@@"
- dw Function93214
- db "15@@"
- dw Function93214
-; 931b9
-
-UnknownText_0x931b9: ; 0x931b9
- start_asm
-; 0x931ba
-
-Function931ba: ; 931ba
- ld a, [EffectFailed]
- add $25
- ldcoord_a 2, 13
- inc a
- ldcoord_a 2, 14
- inc a
- ldcoord_a 3, 13
- inc a
- ldcoord_a 3, 14
- hlcoord 18, 17
- ld [hl], $ee
- ld hl, UnknownText_0x931db
-rept 4
- inc bc
-endr
- ret
-; 931db
-
-UnknownText_0x931db: ; 0x931db
- ; lined up! Won @ coins!
- text_jump UnknownText_0x1c509f
- db "@"
-; 0x931e0
-
-UnknownText_0x931e0: ; 0x931e0
- ; Darn!
- text_jump UnknownText_0x1c50bb
- db "@"
-; 0x931e5
-
-Function931e5: ; 931e5
- ld a, SFX_2ND_PLACE
- call Function9331e
- call WaitSFX
- ld a, [wd002]
- and a
- jr nz, .asm_931ff
- call Random
- and $14
- ret z
- ld a, $ff
- ld [wc709], a
- ret
-
-.asm_931ff
- call Random
- and $1c
- ret z
- ld a, $ff
- ld [wc709], a
- ret
-; 9320b
-
-Function9320b: ; 9320b
- ld a, SFX_3RD_PLACE
- call Function9331e
- call WaitSFX
- ret
-; 93214
-
-Function93214: ; 93214
- ld a, SFX_PRESENT
- call Function9331e
- call WaitSFX
- ret
-; 9321d
-
-Function9321d: ; 9321d (24:721d)
- ld hl, $b
- add hl, bc
- ld e, [hl]
- ld d, 0
- ld hl, Jumptable_9322d
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-
-Jumptable_9322d: ; 9322d (24:722d)
- dw Function93233
- dw Function93259
- dw Function93289
-
-
-Function93233: ; 93233 (24:7233)
- ld hl, $e
- add hl, bc
- ld a, [hl]
- and a
- jr nz, .asm_93247
- ld a, $2
- ld [wcf64], a
- ld hl, 0
- add hl, bc
- ld [hl], $0
- ret
-.asm_93247
- dec [hl]
- ld hl, $b
- add hl, bc
- inc [hl]
- ld hl, $c
- add hl, bc
- ld [hl], $30
- ld hl, $6
- add hl, bc
- ld [hl], $0
-
-Function93259: ; 93259 (24:7259)
- ld hl, $c
- add hl, bc
- ld a, [hl]
- cp $20
- jr c, .asm_93273
- dec [hl]
- ld e, a
- ld d, $70
- callba Functionce765
- ld a, e
- ld hl, $7
- add hl, bc
- ld [hl], a
- ret
-.asm_93273
- ld hl, $b
- add hl, bc
- inc [hl]
- ld hl, $d
- add hl, bc
- ld [hl], $2
- ld a, $1
- ld [wcf64], a
- ld a, SFX_PLACE_PUZZLE_PIECE_DOWN
- call Function9331e
- ret
-
-Function93289: ; 93289 (24:7289)
- ld hl, $6
- add hl, bc
- ld a, [hl]
-rept 2
- inc [hl]
-endr
- cp $48
- jr nc, .asm_932a3
- and $3
- ret nz
- ld hl, $d
- add hl, bc
- ld a, [hl]
- xor $ff
- inc a
- ld [hl], a
- ld [hSCY], a
- ret
-.asm_932a3
- ld hl, $b
- add hl, bc
- xor a
- ld [hl], a
- ld [hSCY], a
- ret
-
-Function932ac: ; 932ac (24:72ac)
- ld hl, $b
- add hl, bc
- ld e, [hl]
- ld d, 0
- ld hl, Jumptable_932bc
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-
-Jumptable_932bc: ; 932bc (24:72bc)
- dw Function932c2
- dw Function932e0
- dw Function932fc
-
-
-Function932c2: ; 932c2 (24:72c2)
- ld hl, $4
- add hl, bc
- ld a, [hl]
- inc [hl]
- cp $68
- jr z, .asm_932d6
- and $f
- ret nz
- ld de, SFX_JUMP_OVER_LEDGE
- call PlaySFX
- ret
-.asm_932d6
- ld hl, $b
- add hl, bc
- inc [hl]
- ld a, $1
- ld [wcf64], a
-
-Function932e0: ; 932e0 (24:72e0)
- ld a, [wcf64]
- cp $2
- jr z, .asm_932f1
- cp $5
- ret nz
- ld hl, 0
- add hl, bc
- ld [hl], $0
- ret
-.asm_932f1
- ld hl, $b
- add hl, bc
- inc [hl]
- ld hl, $c
- add hl, bc
- ld [hl], $8
-
-Function932fc: ; 932fc (24:72fc)
- ld hl, $c
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_93306
- dec [hl]
- ret
-.asm_93306
- ld hl, $b
- add hl, bc
- dec [hl]
- push bc
- ld de, $606c
- ld a, $8
- call Function3b2a
- pop bc
- ret
-; 93316 (24:7316)
-
-Function93316: ; 93316
- push bc
- ld c, 16
- call DelayFrames
- pop bc
- ret
-; 9331e
-
-Function9331e: ; 9331e (24:731e)
- push de
- ld e, a
- ld d, 0
- call PlaySFX
- pop de
- ret
-; 93327 (24:7327)
-
-Unknown_93327: ; 93327
- db $00, $08, $14, $0c, $10, $00, $08, $14, $0c, $10, $04, $08, $14, $0c, $10, $00, $08, $14
-Unknown_93339: ; 93339
- db $00, $0c, $08, $10, $14, $04, $0c, $08, $10, $14, $04, $0c, $08, $10, $14, $00, $0c, $08
-Unknown_9334b: ; 9334b
- db $00, $0c, $08, $10, $14, $0c, $08, $10, $14, $0c, $04, $08, $10, $14, $0c, $00, $0c, $08
-; 9335d
-
-SlotsTilemap: ; 9335d
-INCBIN "gfx/slots.tilemap"
-; 9344d
-
-Slots1LZ: ; 9344d
-INCBIN "gfx/slots_1.2bpp.lz"
-; 935cd
-
-Slots2LZ: ; 935cd
-INCBIN "gfx/slots_2.2bpp.lz"
-; 9382d
-
-Slots3LZ: ; 9382d
-INCBIN "gfx/slots_3.2bpp.lz"
-; 93a3d
-
+INCLUDE "engine/slot_machine.asm"
SECTION "bank28", ROMX, BANK[$28]
@@ -50468,870 +46077,7 @@ INCLUDE "tilesets/data_5.asm"
SECTION "bank2E", ROMX, BANK[$2E]
-ReturnFromMapSetupScript:: ; b8000
- xor a
- ld [hBGMapMode], a
- ; For some reson, GameFreak chose to use a callba here instead of just falling through.
- ; No other function in the game references the function at 2E:400A, here labeled
- ; ReturnFromMapSetupScript.inefficientcallba.
- callba .inefficientcallba ; this is a waste of 6 ROM bytes and 2 stack bytes
- ret
-; b800a
-
-.inefficientcallba: ; b800a
- ld a, [MapGroup]
- ld b, a
- ld a, [MapNumber]
- ld c, a
- call GetWorldMapLocation
- ld [wCurrentLandmark], a
- call .CheckNationalParkGate
- jr z, .nationalparkgate
-
- call GetMapPermission
- cp GATE
- jr nz, .not_gate
-
-.nationalparkgate
- ld a, -1
- ld [wCurrentLandmark], a
-
-.not_gate
- ld hl, wEnteredMapFromContinue
- bit 1, [hl]
- res 1, [hl]
- jr nz, .dont_do_map_sign
-
- call .CheckMovingWithinLandmark
- jr z, .dont_do_map_sign
- ld a, [wCurrentLandmark]
- ld [wPreviousLandmark], a
-
- call .CheckSpecialMap
- jr z, .dont_do_map_sign
-
-; Display for 60 frames
- ld a, 60
- ld [wLandmarkSignTimer], a
- call LoadMapNameSignGFX
- call InitMapNameFrame
- callba Function104303
- ret
-
-.dont_do_map_sign
- ld a, [wCurrentLandmark]
- ld [wPreviousLandmark], a
- ld a, $90
- ld [rWY], a
- ld [hWY], a
- xor a
- ld [hLCDStatCustom], a
- ret
-; b8064
-
-.CheckMovingWithinLandmark: ; b8064
- ld a, [wCurrentLandmark]
- ld c, a
- ld a, [wPreviousLandmark]
- cp c
- ret z
- cp $0
- ret
-; b8070
-
-.CheckSpecialMap: ; b8070
- cp -1
- ret z
- cp SPECIAL_MAP
- ret z
- cp RADIO_TOWER
- ret z
- cp LAV_RADIO_TOWER
- ret z
- cp UNDERGROUND
- ret z
- cp INDIGO_PLATEAU
- ret z
- cp POWER_PLANT
- ret z
- ld a, $1
- and a
- ret
-; b8089
-
-.CheckNationalParkGate: ; b8089
- ld a, [MapGroup]
- cp GROUP_ROUTE_35_NATIONAL_PARK_GATE
- ret nz
- ld a, [MapNumber]
- cp MAP_ROUTE_35_NATIONAL_PARK_GATE
- ret z
- cp MAP_ROUTE_36_NATIONAL_PARK_GATE
- ret
-; b8098
-
-
-PlaceMapNameSign:: ; b8098 (2e:4098)
- ld hl, wLandmarkSignTimer
- ld a, [hl]
- and a
- jr z, .disappear
- dec [hl]
- cp 60
- ret z
- cp 59
- jr nz, .skip2
- call InitMapNameFrame
- call PlaceMapNameCenterAlign
- callba Function104303
-.skip2
- ld a, $80
- ld a, $70
- ld [rWY], a
- ld [hWY], a
- ret
-
-.disappear
- ld a, $90
- ld [rWY], a
- ld [hWY], a
- xor a
- ld [hLCDStatCustom], a
- ret
-
-
-LoadMapNameSignGFX: ; b80c6
- ld de, MapEntryFrameGFX
- ld hl, VTiles2 tile $60
- lb bc, BANK(MapEntryFrameGFX), $e
- call Get2bpp
- ret
-; b80d3
-
-InitMapNameFrame: ; b80d3
- hlcoord 0, 0
- ld b, 2
- ld c, 18
- call InitMapSignAttrMap
- call PlaceMapNameFrame
- ret
-; b80e1
-
-
-PlaceMapNameCenterAlign: ; b80e1 (2e:40e1)
- ld a, [wCurrentLandmark]
- ld e, a
- callba GetLandmarkName
- call .GetNameLength
- ld a, SCREEN_WIDTH
- sub c
- srl a
- ld b, $0
- ld c, a
- hlcoord 0, 2
- add hl, bc
- ld de, StringBuffer1
- call PlaceString
- ret
-
-.GetNameLength: ; b8101 (2e:4101)
- ld c, 0
- push hl
- ld hl, StringBuffer1
-.loop
- ld a, [hli]
- cp "@"
- jr z, .stop
- cp "%"
- jr z, .loop
- inc c
- jr .loop
-.stop
- pop hl
- ret
-
-
-InitMapSignAttrMap: ; b8115
- ld de, AttrMap - TileMap
- add hl, de
-rept 2
- inc b
-endr
-rept 2
- inc c
-endr
- ld a, $87
-.loop
- push bc
- push hl
-.inner_loop
- ld [hli], a
- dec c
- jr nz, .inner_loop
- pop hl
- ld de, SCREEN_WIDTH
- add hl, de
- pop bc
- dec b
- jr nz, .loop
- ret
-; b812f
-
-PlaceMapNameFrame: ; b812f
- hlcoord 0, 0
- ; top left
- ld a, $61
- ld [hli], a
- ; top row
- ld a, $62
- call .FillTopBottom
- ; top right
- ld a, $64
- ld [hli], a
- ; left, first line
- ld a, $65
- ld [hli], a
- ; first line
- call .FillMiddle
- ; right, first line
- ld a, $6b
- ld [hli], a
- ; left, second line
- ld a, $66
- ld [hli], a
- ; second line
- call .FillMiddle
- ; right, second line
- ld a, $6c
- ld [hli], a
- ; bottom left
- ld a, $67
- ld [hli], a
- ; bottom
- ld a, $68
- call .FillTopBottom
- ; bottom right
- ld a, $6a
- ld [hl], a
- ret
-; b815b
-
-.FillMiddle: ; b815b
- ld c, 18
- ld a, $6d
-.loop
- ld [hli], a
- dec c
- jr nz, .loop
- ret
-; b8164
-
-.FillTopBottom: ; b8164
- ld c, 5
- jr .enterloop
-
-.continueloop
-rept 2
- ld [hli], a
-endr
-
-.enterloop
- inc a
-rept 2
- ld [hli], a
-endr
- dec a
- dec c
- jr nz, .continueloop
- ret
-; b8172
-
-CheckForSignpostItems: ; b8172
-; Checks to see if there are hidden items on the screen that have not yet been found. If it finds one, returns carry.
- call GetMapScriptHeaderBank
- ld [Buffer1], a
-; Get the coordinate of the bottom right corner of the screen, and load it in wd1ec/wd1ed.
- ld a, [XCoord]
- add SCREEN_WIDTH / 4
- ld [wd1ed], a
- ld a, [YCoord]
- add SCREEN_HEIGHT / 4
- ld [wd1ec], a
-; Get the pointer for the first signpost header in the map...
- ld hl, wdc02
- ld a, [hli]
- ld h, [hl]
- ld l, a
-; ... before even checking to see if there are any signposts on this map.
- ld a, [wCurrentMapSignpostCount]
- and a
- jr z, .nosignpostitems
-; For i = 1:wCurrentMapSignpostCount...
-.loop
-; Store the counter in Buffer2, and store the signpost header pointer in the stack.
- ld [Buffer2], a
- push hl
-; Get the Y coordinate of the signpost.
- call .GetFarByte
- ld e, a
-; Is the Y coordinate of the signpost on the screen? If not, go to the next signpost.
- ld a, [wd1ec]
- sub e
- jr c, .next
- cp SCREEN_HEIGHT / 2
- jr nc, .next
-; Is the X coordinate of the signpost on the screen? If not, go to the next signpost.
- call .GetFarByte
- ld d, a
- ld a, [wd1ed]
- sub d
- jr c, .next
- cp SCREEN_WIDTH / 2
- jr nc, .next
-; Is this signpost a hidden item? If not, go to the next signpost.
- call .GetFarByte
- cp SIGNPOST_ITEM
- jr nz, .next
-; Has this item already been found? If not, set off the Itemfinder.
- ld a, [Buffer1]
- call GetFarHalfword
- ld a, [Buffer1]
- call GetFarHalfword
- ld d, h
- ld e, l
- ld b, CHECK_FLAG
- call EventFlagAction
- ld a, c
- and a
- jr z, .itemnearby
-
-.next
-; Restore the signpost header pointer and increment it by the length of a signpost header.
- pop hl
- ld bc, 5
- add hl, bc
-; Restore the signpost counter and decrement it. If it hits zero, there are no hidden items in range.
- ld a, [Buffer2]
- dec a
- jr nz, .loop
-
-.nosignpostitems
- xor a
- ret
-
-.itemnearby
- pop hl
- scf
- ret
-; b81e2
-
-.GetFarByte: ; b81e2
- ld a, [Buffer1]
- call GetFarByte
- inc hl
- ret
-; b81ea
-
-
-TreeMonEncounter: ; b81ea
- callba MobileFn_1060ef
-
- xor a
- ld [TempWildMonSpecies], a
- ld [CurPartyLevel], a
-
- ld hl, TreeMonMaps
- call GetTreeMonSet
- jr nc, .no_battle
-
- call GetTreeMons
- jr nc, .no_battle
-
- call GetTreeMon
- jr nc, .no_battle
-
- ld a, BATTLETYPE_TREE
- ld [BattleType], a
- ld a, 1
- ld [ScriptVar], a
- ret
-
-.no_battle
- xor a
- ld [ScriptVar], a
- ret
-; b8219
-
-RockMonEncounter: ; b8219
-
- xor a
- ld [TempWildMonSpecies], a
- ld [CurPartyLevel], a
-
- ld hl, RockMonMaps
- call GetTreeMonSet
- jr nc, .no_battle
-
- call GetTreeMons
- jr nc, .no_battle
-
- ld a, 10
- call RandomRange
- cp 4
- jr nc, .no_battle
-
- call SelectTreeMon
- jr nc, .no_battle
-
- ret
-
-.no_battle
- xor a
- ret
-; b823e
-
- db $05 ; ????
-
-GetTreeMonSet: ; b823f
-; Return carry and treemon set in a
-; if the current map is in table hl.
- ld a, [MapNumber]
- ld e, a
- ld a, [MapGroup]
- ld d, a
-.loop
- ld a, [hli]
- cp -1
- jr z, .not_in_table
-
- cp d
- jr nz, .skip2
-
- ld a, [hli]
- cp e
- jr nz, .skip1
-
- jr .in_table
-
-.skip2
- inc hl
-.skip1
- inc hl
- jr .loop
-
-.not_in_table
- xor a
- ret
-
-.in_table
- ld a, [hl]
- scf
- ret
-; b825e
-
-TreeMonMaps: ; b825e
-treemon_map: macro
- map \1
- db \2 ; treemon set
-endm
- treemon_map ROUTE_26, 4
- treemon_map ROUTE_27, 4
- treemon_map ROUTE_28, 0
- treemon_map ROUTE_29, 3
- treemon_map ROUTE_30, 3
- treemon_map ROUTE_31, 3
- treemon_map ROUTE_32, 4
- treemon_map ROUTE_33, 2
- treemon_map ROUTE_34, 3
- treemon_map ROUTE_35, 3
- treemon_map ROUTE_36, 3
- treemon_map ROUTE_37, 3
- treemon_map ROUTE_38, 3
- treemon_map ROUTE_39, 3
- treemon_map ROUTE_40, 0
- treemon_map ROUTE_41, 0
- treemon_map ROUTE_42, 2
- treemon_map ROUTE_43, 5
- treemon_map ROUTE_44, 1
- treemon_map ROUTE_45, 1
- treemon_map ROUTE_46, 1
- treemon_map NEW_BARK_TOWN, 0
- treemon_map CHERRYGROVE_CITY, 0
- treemon_map VIOLET_CITY, 0
- treemon_map AZALEA_TOWN, 2
- treemon_map CIANWOOD_CITY, 0
- treemon_map GOLDENROD_CITY, 0
- treemon_map OLIVINE_CITY, 0
- treemon_map ECRUTEAK_CITY, 0
- treemon_map MAHOGANY_TOWN, 0
- treemon_map LAKE_OF_RAGE, 5
- treemon_map BLACKTHORN_CITY, 0
- treemon_map SILVER_CAVE_OUTSIDE, 0
- treemon_map ILEX_FOREST, 6
- db -1
-; b82c5
-
-RockMonMaps: ; b82c5
- treemon_map CIANWOOD_CITY, 7
- treemon_map ROUTE_40, 7
- treemon_map DARK_CAVE_VIOLET_ENTRANCE, 7
- treemon_map SLOWPOKE_WELL_B1F, 7
- db -1
-; b82d2
-
-GetTreeMons: ; b82d2
-; Return the address of TreeMon table a in hl.
-; Return nc if table a doesn't exist.
-
- cp 8
- jr nc, .quit
-
- and a
- jr z, .quit
-
- ld e, a
- ld d, 0
- ld hl, TreeMons
-rept 2
- add hl, de
-endr
-
- ld a, [hli]
- ld h, [hl]
- ld l, a
-
- scf
- ret
-
-.quit
- xor a
- ret
-; b82e8
-
-TreeMons: ; b82e8
- dw TreeMons1
- dw TreeMons1
- dw TreeMons2
- dw TreeMons3
- dw TreeMons4
- dw TreeMons5
- dw TreeMons6
- dw RockMons
- dw TreeMons1
-
-; Two tables each (normal, rare).
-; Structure:
-; db %, species, level
-
-TreeMons1: ; b82fa
- db 50, SPEAROW, 10
- db 15, SPEAROW, 10
- db 15, SPEAROW, 10
- db 10, AIPOM, 10
- db 5, AIPOM, 10
- db 5, AIPOM, 10
- db -1
-
- db 50, SPEAROW, 10
- db 15, HERACROSS, 10
- db 15, HERACROSS, 10
- db 10, AIPOM, 10
- db 5, AIPOM, 10
- db 5, AIPOM, 10
- db -1
-
-TreeMons2: ; b8320
- db 50, SPEAROW, 10
- db 15, EKANS, 10
- db 15, SPEAROW, 10
- db 10, AIPOM, 10
- db 5, AIPOM, 10
- db 5, AIPOM, 10
- db -1
-
- db 50, SPEAROW, 10
- db 15, HERACROSS, 10
- db 15, HERACROSS, 10
- db 10, AIPOM, 10
- db 5, AIPOM, 10
- db 5, AIPOM, 10
- db -1
-
-TreeMons3: ; b8346
- db 50, HOOTHOOT, 10
- db 15, SPINARAK, 10
- db 15, LEDYBA, 10
- db 10, EXEGGCUTE, 10
- db 5, EXEGGCUTE, 10
- db 5, EXEGGCUTE, 10
- db -1
-
- db 50, HOOTHOOT, 10
- db 15, PINECO, 10
- db 15, PINECO, 10
- db 10, EXEGGCUTE, 10
- db 5, EXEGGCUTE, 10
- db 5, EXEGGCUTE, 10
- db -1
-
-TreeMons4: ; b836c
- db 50, HOOTHOOT, 10
- db 15, EKANS, 10
- db 15, HOOTHOOT, 10
- db 10, EXEGGCUTE, 10
- db 5, EXEGGCUTE, 10
- db 5, EXEGGCUTE, 10
- db -1
-
- db 50, HOOTHOOT, 10
- db 15, PINECO, 10
- db 15, PINECO, 10
- db 10, EXEGGCUTE, 10
- db 5, EXEGGCUTE, 10
- db 5, EXEGGCUTE, 10
- db -1
-
-TreeMons5: ; b8392
- db 50, HOOTHOOT, 10
- db 15, VENONAT, 10
- db 15, HOOTHOOT, 10
- db 10, EXEGGCUTE, 10
- db 5, EXEGGCUTE, 10
- db 5, EXEGGCUTE, 10
- db -1
-
- db 50, HOOTHOOT, 10
- db 15, PINECO, 10
- db 15, PINECO, 10
- db 10, EXEGGCUTE, 10
- db 5, EXEGGCUTE, 10
- db 5, EXEGGCUTE, 10
- db -1
-
-TreeMons6: ; b83b8
- db 50, HOOTHOOT, 10
- db 15, PINECO, 10
- db 15, PINECO, 10
- db 10, NOCTOWL, 10
- db 5, BUTTERFREE, 10
- db 5, BEEDRILL, 10
- db -1
-
- db 50, HOOTHOOT, 10
- db 15, CATERPIE, 10
- db 15, WEEDLE, 10
- db 10, HOOTHOOT, 10
- db 5, METAPOD, 10
- db 5, KAKUNA, 10
- db -1
-
-RockMons: ; b83de
- db 90, KRABBY, 15
- db 10, SHUCKLE, 15
- db -1
-; b83e5
-
-GetTreeMon: ; b83e5
- push hl
- call GetTreeScore
- pop hl
- and a
- jr z, .bad
- cp 1
- jr z, .good
- cp 2
- jr z, .rare
- ret
-
-.bad
- ld a, 10
- call RandomRange
- and a
- jr nz, NoTreeMon
- jr SelectTreeMon
-
-.good
- ld a, 10
- call RandomRange
- cp 5
- jr nc, NoTreeMon
- jr SelectTreeMon
-
-.rare
- ld a, 10
- call RandomRange
- cp 8
- jr nc, NoTreeMon
- jr .skip
-.skip
- ld a, [hli]
- cp -1
- jr nz, .skip
- call SelectTreeMon
- ret
-; b841f
-
-SelectTreeMon: ; b841f
-; Read a TreeMons table and pick one monster at random.
-
- ld a, 100
- call RandomRange
-.loop
- sub [hl]
- jr c, .ok
-rept 3
- inc hl
-endr
- jr .loop
-
-.ok
- ld a, [hli]
- cp $ff
- jr z, NoTreeMon
-
- ld a, [hli]
- ld [TempWildMonSpecies], a
- ld a, [hl]
- ld [CurPartyLevel], a
- scf
- ret
-
-NoTreeMon: ; b843b
- xor a
- ld [TempWildMonSpecies], a
- ld [CurPartyLevel], a
- ret
-; b8443
-
-GetTreeScore: ; b8443
- call .CoordScore
- ld [Buffer1], a
- call .OTIDScore
- ld [Buffer2], a
- ld c, a
- ld a, [Buffer1]
- sub c
- jr z, .rare
- jr nc, .ok
- add 10
-.ok
- cp 5
- jr c, .good
-
-.bad
- xor a
- ret
-
-.good
- ld a, 1
- ret
-
-.rare
- ld a, 2
- ret
-; b8466
-
-.CoordScore: ; b8466
- call GetFacingTileCoord
- ld hl, 0
- ld c, e
- ld b, 0
- ld a, d
-
- and a
- jr z, .next
-.loop
- add hl, bc
- dec a
- jr nz, .loop
-.next
-
- add hl, bc
- ld c, d
- add hl, bc
-
- ld a, h
- ld [hDividend], a
- ld a, l
- ld [hDividend + 1], a
- ld a, 5
- ld [hDivisor], a
- ld b, 2
- call Divide
-
- ld a, [hQuotient + 1]
- ld [hDividend], a
- ld a, [hQuotient + 2]
- ld [hDividend + 1], a
- ld a, 10
- ld [hDivisor], a
- ld b, 2
- call Divide
-
- ld a, [hQuotient + 3]
- ret
-; b849d
-
-.OTIDScore: ; b849d
- ld a, [PlayerID]
- ld [hDividend], a
- ld a, [PlayerID + 1]
- ld [hDividend + 1], a
- ld a, 10
- ld [hDivisor], a
- ld b, 2
- call Divide
- ld a, [hQuotient + 3]
- ret
-; b84b3
-
-
-Functionb84b3: ; b84b3
- ld a, [rVBK]
- push af
- ld a, $1
- ld [rVBK], a
-
- ld de, FishingGFX
- ld a, [PlayerGender]
- bit 0, a
- jr z, .asm_b84c7
- ld de, KrisFishingGFX
-.asm_b84c7
-
- ld hl, VTiles0 tile $02
- call Functionb84e3
- ld hl, VTiles0 tile $06
- call Functionb84e3
- ld hl, VTiles0 tile $0a
- call Functionb84e3
- ld hl, VTiles2 tile $00 - $40
- call Functionb84e3
-
- pop af
- ld [rVBK], a
- ret
-; b84e3
-
-Functionb84e3: ; b84e3
- lb bc, BANK(FishingGFX), 2
- push de
- call Get2bpp
- pop de
- ld hl, $20
- add hl, de
- ld d, h
- ld e, l
- ret
-; b84f2
-
-FishingGFX: ; b84f2
-INCBIN "gfx/unknown/0b84f2.2bpp"
-; b8582
-
-KrisFishingGFX: ; b8582
-INCBIN "gfx/unknown/0b8582.2bpp"
-; b8612
+INCLUDE "engine/events_3.asm"
INCLUDE "engine/radio.asm"
@@ -51344,7 +46090,7 @@ ReadPartyMonMail: ; b9229
ld e, l
ReadAnyMail: ; b9237
push de
- call WhiteBGMap
+ call ClearBGPalettes
call ClearSprites
call ClearTileMap
call DisableLCD
@@ -51379,7 +46125,7 @@ ReadAnyMail: ; b9237
xor a
ld [hJoyPressed], a
call Functionb929a
- call WhiteBGMap
+ call ClearBGPalettes
call DisableLCD
call LoadStandardFont
jp EnableLCD
@@ -52543,7 +47289,7 @@ SECTION "bank33", ROMX, BANK[$33]
DisplayCaughtContestMonStats: ; cc000
- call WhiteBGMap
+ call ClearBGPalettes
call ClearTileMap
call ClearSprites
call LoadFontsBattleExtra
@@ -52845,5846 +47591,9 @@ Functione00ed: ; e00ed (38:40ed)
ret
; e00ee (38:40ee)
-_CardFlip: ; e00ee (38:40ee)
- ld hl, Options
- set 4, [hl]
- call WhiteBGMap
- call ClearTileMap
- call ClearSprites
- ld de, MUSIC_NONE
- call PlayMusic
- call DelayFrame
- call DisableLCD
- call LoadStandardFont
- call LoadFontsExtra
- ld hl, LZ_e0d16
- ld de, VTiles2 tile $00
- call Decompress
- ld hl, LZ_e0ea8
- ld de, VTiles2 tile $3e
- call Decompress
- ld hl, LZ_e0cdb
- ld de, VTiles0 tile $00
- call Decompress
- ld hl, GFX_e0cf6
- ld de, VTiles1 tile $6f
- ld bc, $10
- call CopyBytes
- ld hl, GFX_e0d06
- ld de, VTiles1 tile $75
- ld bc, $10
- call CopyBytes
- call Functione0521
- call Functione04c1
- call Functione0c37
- call EnableLCD
- call Function3200
- ld a, $e4
- call DmgToCgbBGPals
- ld de, $e4e4
- call DmgToCgbObjPals
- call DelayFrame
- xor a
- ld [wJumptableIndex], a
- ld a, $2
- ld [wcf64], a
- ld [wcf65], a
- ld de, MUSIC_GAME_CORNER
- call PlayMusic
-.MasterLoop
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .leavethegame
- call .CardFlip
- jr .MasterLoop
-.leavethegame
- call WaitSFX
- ld de, SFX_QUIT_SLOTS
- call PlaySFX
- call WaitSFX
- call WhiteBGMap
- ld hl, Options
- res 4, [hl]
- ret
-
-.CardFlip: ; e0191 (38:4191)
- ld a, [wJumptableIndex]
- ld e, a
- ld d, 0
- ld hl, .Jumptable
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; e01a0 (38:41a0)
-
-.Jumptable: ; e01a0
- dw .AskPlayWithThree
- dw .DeductCoins
- dw .ChooseACard
- dw .PlaceYourBet
- dw .CheckTheCard
- dw .TabulateTheResult
- dw .PlayAgain
- dw .Quit
-; e01b0
-
-.Increment: ; e01b0
- ld hl, wJumptableIndex
- inc [hl]
- ret
-; e01b5
-
-.AskPlayWithThree: ; e01b5
- ld hl, .PlayWithThreeCoinsText
- call Functione0489
- call YesNoBox
- jr c, .SaidNo
- call Functione0366
- call .Increment
- ret
-
-.SaidNo
- ld a, $7
- ld [wJumptableIndex], a
- ret
-; e01cd
-
-.PlayWithThreeCoinsText: ; 0xe01cd
- ; Play with three coins?
- text_jump UnknownText_0x1c5793
- db "@"
-; 0xe01d2
-
-.DeductCoins: ; e01d2
- ld a, [Coins]
- ld h, a
- ld a, [Coins + 1]
- ld l, a
- ld a, h
- and a
- jr nz, .deduct ; You have at least 256 coins.
- ld a, l
- cp 3
- jr nc, .deduct ; You have at least 3 coins.
- ld hl, .NotEnoughCoinsText
- call Functione0489
- ld a, $7
- ld [wJumptableIndex], a
- ret
-
-.deduct
- ld de, -3
- add hl, de
- ld a, h
- ld [Coins], a
- ld a, l
- ld [Coins + 1], a
- ld de, SFX_TRANSACTION
- call PlaySFX
- xor a
- ld [hBGMapMode], a
- call Functione049c
- ld a, $1
- ld [hBGMapMode], a
- call WaitSFX
- call .Increment
- ret
-; e0212
-
-.NotEnoughCoinsText: ; 0xe0212
- ; Not enough coins…
- text_jump UnknownText_0x1c57ab
- db "@"
-; 0xe0217
-
-.ChooseACard: ; e0217
- xor a
- ld [hBGMapMode], a
- hlcoord 0, 0
- lb bc, 12, 9
- call Functione04e5
- hlcoord 9, 0
- ld bc, SCREEN_WIDTH
- ld a, [wc6e8]
- call AddNTimes
- ld [hl], $f5
- ld a, $1
- ld [hBGMapMode], a
- ld c, 20
- call DelayFrames
- hlcoord 2, 0
- call Functione03c1
- ld a, $1
- ld [hBGMapMode], a
- ld c, 20
- call DelayFrames
- hlcoord 2, 6
- call Functione03c1
- call WaitBGMap
- ld hl, .ChooseACardText
- call Functione0489
- xor a
- ld [wcf66], a
-.loop
- call JoyTextDelay
- ld a, [hJoyLast]
- and A_BUTTON
- jr nz, .next
- ld de, SFX_KINESIS
- call PlaySFX
- call Functione0849
- ld c, 4
- call DelayFrames
- ld hl, wcf66
- ld a, [hl]
- xor $1
- ld [hl], a
- jr .loop
-
-.next
- ld de, SFX_SLOT_MACHINE_START
- call PlaySFX
- ld a, $3
-.loop2
- push af
- call Functione0849
- ld c, 4
- call DelayFrames
- call ClearSprites
- ld c, 4
- call DelayFrames
- pop af
- dec a
- jr nz, .loop2
- ld hl, wcf66
- ld a, [hl]
- push af
- xor $1
- ld [hl], a
- call Functione03ac
- lb bc, 6, 5
- call Functione04e5
- pop af
- ld [wcf66], a
- call .Increment
- ret
-; e02b2
-
-.ChooseACardText: ; 0xe02b2
- ; Choose a card.
- text_jump UnknownText_0x1c57be
- db "@"
-; 0xe02b7
-
-.PlaceYourBet: ; e02b7
- ld hl, .PlaceYourBetText
- call Functione0489
-.betloop
- call JoyTextDelay
- ld a, [hJoyLast]
- and A_BUTTON
- jr nz, .betdone
- call Functione089c
- call Functione0960
- call DelayFrame
- jr .betloop
-
-.betdone
- call .Increment
- ret
-; e02d5
-
-.PlaceYourBetText: ; 0xe02d5
- ; Place your bet.
- text_jump UnknownText_0x1c57ce
- db "@"
-; 0xe02da
-
-.CheckTheCard: ; e02da
- xor a
- ld [hVBlankCounter], a
- call Functione0960
- call WaitSFX
- ld de, SFX_CHOOSE_A_CARD
- call PlaySFX
- call WaitSFX
- ld a, [wc6e8]
- ld e, a
- ld d, 0
- ld hl, wc6d0
-rept 2
- add hl, de
-endr
- ld a, [wcf66]
- ld e, a
- add hl, de
- ld a, [hl]
- ld [CurEnemyMoveNum], a
- ld e, a
- ld hl, wc6ea
- add hl, de
- ld [hl], $1
- call Functione03ac
- call Functione03ec
- call Function3200
- call .Increment
- ret
-; e0314
-
-.TabulateTheResult: ; e0314
- call Functione0637
- call WaitPressAorB_BlinkCursor
- call .Increment
- ret
-; e031e
-
-.PlayAgain: ; e031e
- call ClearSprites
- ld hl, .PlayAgainText
- call Functione0489
- call YesNoBox
- jr nc, .Continue
- call .Increment
- ret
-
-.Continue
- ld a, [wc6e8]
- inc a
- ld [wc6e8], a
- cp $c
- jr c, .KeepTheCurrentDeck
- call Functione04c1
- ld a, $1
- ld [hBGMapMode], a
- call Functione0366
- ld hl, .CardsShuffledText
- call PrintText
- jr .LoopAround
-
-.KeepTheCurrentDeck
- call Functione0534
-
-.LoopAround
- ld a, $1
- ld [wJumptableIndex], a
- ret
-; e0356
-
-.PlayAgainText: ; 0xe0356
- ; Want to play again?
- text_jump UnknownText_0x1c57df
- db "@"
-; 0xe035b
-
-.CardsShuffledText: ; 0xe035b
- ; The cards have been shuffled.
- text_jump UnknownText_0x1c57f4
- db "@"
-; 0xe0360
-
-.Quit: ; e0360
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-; e0366
-
-Functione0366: ; e0366
- ld hl, wc6d0
- ld bc, $18
- xor a
- call ByteFill
- ld de, wc6d0
- ld c, $17
-.asm_e0375
- call Random
- and $1f
- cp $18
- jr nc, .asm_e0375
- ld l, a
- ld h, $0
- add hl, de
- ld a, [hl]
- and a
- jr nz, .asm_e0375
- ld [hl], c
- dec c
- jr nz, .asm_e0375
- xor a
- ld [wc6e8], a
- ld hl, wc6ea
- ld bc, $18
- call ByteFill
- ret
-; e0398
-
-Functione0398: ; e0398
- ld hl, 0
- ld bc, 6
- ld a, [wcf64]
- call AddNTimes
- ld b, $0
- ld a, [wcf65]
- ld c, a
- add hl, bc
- ret
-; e03ac
-
-Functione03ac: ; e03ac
- ld a, [wcf66]
- and a
- jr nz, .asm_e03ba
- hlcoord 2, 0
- ld bc, $1018
- jr .asm_e03c0
-
-.asm_e03ba
- hlcoord 2, 6
- ld bc, $4018
-
-.asm_e03c0
- ret
-; e03c1
-
-Functione03c1: ; e03c1
- xor a
- ld [hBGMapMode], a
- ld de, Unknown_e03ce
- lb bc, 6, 5
- call Functione04f7
- ret
-; e03ce
-
-Unknown_e03ce: ; e03ce
- db $08, $09, $09, $09, $0a
- db $0b, $28, $2b, $28, $0c
- db $0b, $2c, $2d, $2e, $0c
- db $0b, $2f, $30, $31, $0c
- db $0b, $32, $33, $34, $0c
- db $0d, $0e, $0e, $0e, $0f
-; e03ec
-
-Functione03ec: ; e03ec
- xor a
- ld [hBGMapMode], a
- push hl
- push hl
- ld de, Unknown_e043b
- lb bc, 6, 5
- call Functione04f7
- ld a, [CurEnemyMoveNum]
- ld e, a
- ld d, 0
- ld hl, Unknown_e0459
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld e, a
- ld d, [hl]
- pop hl
- ld bc, $17
- add hl, bc
- ld [hl], e
- ld bc, SCREEN_HEIGHT
- add hl, bc
- ld a, d
- ld de, SCREEN_WIDTH
- ld b, $3
-.asm_e0418
- push hl
- ld c, $3
-.asm_e041b
- ld [hli], a
- inc a
- dec c
- jr nz, .asm_e041b
- pop hl
- add hl, de
- dec b
- jr nz, .asm_e0418
- pop hl
- ld a, [hCGB]
- and a
- ret z
- ld de, AttrMap - TileMap
- add hl, de
- ld a, [CurEnemyMoveNum]
- and 3
- inc a
- lb bc, 6, 5
- call Functione04e7
- ret
-; e043b
-
-Unknown_e043b: ; e043b
- db $18, $19, $19, $19, $1a
- db $1b, $35, $7f, $7f, $1c
- db $0b, $28, $28, $28, $0c
- db $0b, $28, $28, $28, $0c
- db $0b, $28, $28, $28, $0c
- db $1d, $1e, $1e, $1e, $1f
-; e0459
-
-Unknown_e0459: ; e0459
- db $f7,$4e, $f7,$57, $f7,$69, $f7,$60
- db $f8,$4e, $f8,$57, $f8,$69, $f8,$60
- db $f9,$4e, $f9,$57, $f9,$69, $f9,$60
- db $fa,$4e, $fa,$57, $fa,$69, $fa,$60
- db $fb,$4e, $fb,$57, $fb,$69, $fb,$60
- db $fc,$4e, $fc,$57, $fc,$69, $fc,$60
-; e0489
-
-Functione0489: ; e0489
- push hl
- hlcoord 0, 12
- ld b, $4
- ld c, $12
- call TextBox
- pop hl
- call PrintTextBoxText
- call Functione049c
- ret
-; e049c
-
-Functione049c: ; e049c
- hlcoord 9, 15
- ld b, $1
- ld c, $9
- call TextBox
- hlcoord 10, 16
- ld de, String_e04bc
- call PlaceString
- hlcoord 15, 16
- ld de, Coins
- lb bc, PRINTNUM_LEADINGZEROS | 2, 4
- call PrintNum
- ret
-; e04bc
-
-String_e04bc:
- db "COIN@"
-; e04c1
-
-Functione04c1: ; e04c1 (38:44c1)
- xor a
- ld [hBGMapMode], a
- hlcoord 0, 0
- ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
- ld a, $29
- call ByteFill
- hlcoord 9, 0
- ld de, Unknown_e110c
- lb bc, 12, 11
- call Functione04f7
- hlcoord 0, 12
- lb bc, 4, 18
- call TextBox
- ret
-; e04e5 (38:44e5)
-
-Functione04e5: ; e04e5
- ld a, $29
-
-Functione04e7: ; e04e7 (38:44e7)
- push bc
- push hl
-.asm_e04e9
- ld [hli], a
- dec c
- jr nz, .asm_e04e9
- pop hl
- ld bc, $14
- add hl, bc
- pop bc
- dec b
- jr nz, Functione04e7
- ret
-
-Functione04f7: ; e04f7 (38:44f7)
- push bc
- push hl
-.asm_e04f9
- ld a, [de]
- inc de
- ld [hli], a
- dec c
- jr nz, .asm_e04f9
- pop hl
- ld bc, $14
- add hl, bc
- pop bc
- dec b
- jr nz, Functione04f7
- ret
-; e0509 (38:4509)
-
-Functione0509: ; e0509
- ld de, Sprites
- ld a, [hli]
-.asm_e050d
- push af
- ld a, [hli]
- add b
- ld [de], a
- inc de
- ld a, [hli]
- add c
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- pop af
- dec a
- jr nz, .asm_e050d
- ret
-; e0521
-
-Functione0521: ; e0521 (38:4521)
- ld de, VTiles1 tile $76
- ld hl, $8f62
- ld bc, $9e
- call CopyBytes
- ld hl, $8ffe
- xor a
- ld [hli], a
- ld [hl], a
- ret
-; e0534 (38:4534)
-
-Functione0534: ; e0534
- xor a
- ld [hBGMapMode], a
- ld a, [CurEnemyMoveNum]
- ld e, a
- ld d, 0
- and 3
- ld c, a
- ld b, 0
- ld a, e
- and $1c
- srl a
- add Jumptable_e0553 % $100
- ld l, a
- ld a, 0
- adc Jumptable_e0553 / $100
- ld h, a
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; e0553
-
-Jumptable_e0553: ; e0553
- dw Functione055f
- dw Functione0583
- dw Functione05a7
- dw Functione05cb
- dw Functione05ef
- dw Functione0613
-; e055f
-
-Functione055f: ; e055f
- ld hl, wc6e6 + 8
- add hl, de
- ld a, [hl]
- and a
- jr nz, .asm_e0575
- hlcoord 13, 3
-rept 2
- add hl, bc
-endr
- ld [hl], $36
- ld bc, SCREEN_WIDTH
- add hl, bc
- ld [hl], $37
- ret
-
-.asm_e0575
- hlcoord 13, 3
-rept 2
- add hl, bc
-endr
- ld [hl], $36
- ld bc, SCREEN_WIDTH
- add hl, bc
- ld [hl], $3d
- ret
-; e0583
-
-Functione0583: ; e0583
- ld hl, wc6e6
- add hl, de
- ld a, [hl]
- and a
- jr nz, .asm_e0599
- hlcoord 13, 4
-rept 2
- add hl, bc
-endr
- ld [hl], $3b
- ld bc, SCREEN_WIDTH
- add hl, bc
- ld [hl], $3a
- ret
-
-.asm_e0599
- hlcoord 13, 4
-rept 2
- add hl, bc
-endr
- ld [hl], $3d
- ld bc, SCREEN_WIDTH
- add hl, bc
- ld [hl], $3a
- ret
-; e05a7
-
-Functione05a7: ; e05a7
- ld hl, wc6e6 + 8
- add hl, de
- ld a, [hl]
- and a
- jr nz, .asm_e05bd
- hlcoord 13, 6
-rept 2
- add hl, bc
-endr
- ld [hl], $36
- ld bc, SCREEN_WIDTH
- add hl, bc
- ld [hl], $38
- ret
-
-.asm_e05bd
- hlcoord 13, 6
-rept 2
- add hl, bc
-endr
- ld [hl], $36
- ld bc, SCREEN_WIDTH
- add hl, bc
- ld [hl], $3d
- ret
-; e05cb
-
-Functione05cb: ; e05cb
- ld hl, wc6e6
- add hl, de
- ld a, [hl]
- and a
- jr nz, .asm_e05e1
- hlcoord 13, 7
-rept 2
- add hl, bc
-endr
- ld [hl], $3c
- ld bc, SCREEN_WIDTH
- add hl, bc
- ld [hl], $3a
- ret
-
-.asm_e05e1
- hlcoord 13, 7
-rept 2
- add hl, bc
-endr
- ld [hl], $3d
- ld bc, SCREEN_WIDTH
- add hl, bc
- ld [hl], $3a
- ret
-; e05ef
-
-Functione05ef: ; e05ef
- ld hl, wc6e6 + 8
- add hl, de
- ld a, [hl]
- and a
- jr nz, .asm_e0605
- hlcoord 13, 9
-rept 2
- add hl, bc
-endr
- ld [hl], $36
- ld bc, SCREEN_WIDTH
- add hl, bc
- ld [hl], $39
- ret
-
-.asm_e0605
- hlcoord 13, 9
-rept 2
- add hl, bc
-endr
- ld [hl], $36
- ld bc, SCREEN_WIDTH
- add hl, bc
- ld [hl], $3d
- ret
-; e0613
-
-Functione0613: ; e0613
- ld hl, wc6e6
- add hl, de
- ld a, [hl]
- and a
- jr nz, .asm_e0629
- hlcoord 13, 10
-rept 2
- add hl, bc
-endr
- ld [hl], $3c
- ld bc, SCREEN_WIDTH
- add hl, bc
- ld [hl], $3a
- ret
-
-.asm_e0629
- hlcoord 13, 10
-rept 2
- add hl, bc
-endr
- ld [hl], $3d
- ld bc, SCREEN_WIDTH
- add hl, bc
- ld [hl], $3a
- ret
-; e0637
-
-Functione0637: ; e0637
- call Functione0398
- add hl, hl
- ld de, Jumptable_e0643
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; e0643
-
-Jumptable_e0643: ; e0643
- dw Functione06a3
- dw Functione06a3
- dw Functione06a6
- dw Functione06a6
- dw Functione06b0
- dw Functione06b0
- dw Functione06a3
- dw Functione06a3
- dw Functione06ec
- dw Functione06f6
- dw Functione0702
- dw Functione070e
- dw Functione06c2
- dw Functione0722
- dw Functione0770
- dw Functione0774
- dw Functione0778
- dw Functione077c
- dw Functione06c2
- dw Functione072c
- dw Functione0780
- dw Functione0784
- dw Functione0788
- dw Functione078c
- dw Functione06cc
- dw Functione0738
- dw Functione0790
- dw Functione0794
- dw Functione0798
- dw Functione079c
- dw Functione06cc
- dw Functione0744
- dw Functione07a0
- dw Functione07a4
- dw Functione07a8
- dw Functione07ac
- dw Functione06d8
- dw Functione0750
- dw Functione07b0
- dw Functione07b4
- dw Functione07b8
- dw Functione07bc
- dw Functione06d8
- dw Functione075c
- dw Functione07c0
- dw Functione07c4
- dw Functione07c8
- dw Functione07cc
-; e06a3
-
-Functione06a3: ; e06a3
- jp Functione07db
-; e06a6
-
-Functione06a6: ; e06a6
- ld a, [CurEnemyMoveNum]
- and $2
- jp nz, Functione07db
- jr Functione06ba
-
-Functione06b0: ; e06b0
- ld a, [CurEnemyMoveNum]
- and $2
- jr nz, Functione06ba
- jp Functione07db
-
-Functione06ba: ; e06ba
- ld c, $6
- ld de, SFX_2ND_PLACE
- jp Functione07eb
-; e06c2
-
-Functione06c2: ; e06c2
- ld a, [CurEnemyMoveNum]
- and $18
- jr z, Functione06e4
- jp Functione07db
-
-Functione06cc: ; e06cc
- ld a, [CurEnemyMoveNum]
- and $18
- cp $8
- jr z, Functione06e4
- jp Functione07db
-
-Functione06d8: ; e06d8
- ld a, [CurEnemyMoveNum]
- and $18
- cp $10
- jr z, Functione06e4
- jp Functione07db
-
-Functione06e4: ; e06e4
- ld c, $9
- ld de, SFX_2ND_PLACE
- jp Functione07eb
-; e06ec
-
-Functione06ec: ; e06ec
- ld a, [CurEnemyMoveNum]
- and $3
- jr z, Functione071a
- jp Functione07db
-
-Functione06f6: ; e06f6
- ld a, [CurEnemyMoveNum]
- and $3
- cp $1
- jr z, Functione071a
- jp Functione07db
-
-Functione0702: ; e0702
- ld a, [CurEnemyMoveNum]
- and $3
- cp $2
- jr z, Functione071a
- jp Functione07db
-
-Functione070e: ; e070e
- ld a, [CurEnemyMoveNum]
- and $3
- cp $3
- jr z, Functione071a
- jp Functione07db
-
-Functione071a: ; e071a
- ld c, $c
- ld de, SFX_2ND_PLACE
- jp Functione07eb
-; e0722
-
-Functione0722: ; e0722
- ld a, [CurEnemyMoveNum]
- and $1c
- jr z, Functione0768
- jp Functione07db
-
-Functione072c: ; e072c
- ld a, [CurEnemyMoveNum]
- and $1c
- cp $4
- jr z, Functione0768
- jp Functione07db
-
-Functione0738: ; e0738
- ld a, [CurEnemyMoveNum]
- and $1c
- cp $8
- jr z, Functione0768
- jp Functione07db
-
-Functione0744: ; e0744
- ld a, [CurEnemyMoveNum]
- and $1c
- cp $c
- jr z, Functione0768
- jp Functione07db
-
-Functione0750: ; e0750
- ld a, [CurEnemyMoveNum]
- and $1c
- cp $10
- jr z, Functione0768
- jp Functione07db
-
-Functione075c: ; e075c
- ld a, [CurEnemyMoveNum]
- and $1c
- cp $14
- jr z, Functione0768
- jp Functione07db
-
-Functione0768: ; e0768
- ld c, $12
- ld de, SFX_2ND_PLACE
- jp Functione07eb
-; e0770
-
-
-Functione0770: ; e0770
- ld e, $0
- jr Functione07ce
-
-Functione0774: ; e0774
- ld e, $1
- jr Functione07ce
-
-Functione0778: ; e0778
- ld e, $2
- jr Functione07ce
-
-Functione077c: ; e077c
- ld e, $3
- jr Functione07ce
-
-Functione0780: ; e0780
- ld e, $4
- jr Functione07ce
-
-Functione0784: ; e0784
- ld e, $5
- jr Functione07ce
-
-Functione0788: ; e0788
- ld e, $6
- jr Functione07ce
-
-Functione078c: ; e078c
- ld e, $7
- jr Functione07ce
-
-Functione0790: ; e0790
- ld e, $8
- jr Functione07ce
-
-Functione0794: ; e0794
- ld e, $9
- jr Functione07ce
-
-Functione0798: ; e0798
- ld e, $a
- jr Functione07ce
-
-Functione079c: ; e079c
- ld e, $b
- jr Functione07ce
-
-Functione07a0: ; e07a0
- ld e, $c
- jr Functione07ce
-
-Functione07a4: ; e07a4
- ld e, $d
- jr Functione07ce
-
-Functione07a8: ; e07a8
- ld e, $e
- jr Functione07ce
-
-Functione07ac: ; e07ac
- ld e, $f
- jr Functione07ce
-
-Functione07b0: ; e07b0
- ld e, $10
- jr Functione07ce
-
-Functione07b4: ; e07b4
- ld e, $11
- jr Functione07ce
-
-Functione07b8: ; e07b8
- ld e, $12
- jr Functione07ce
-
-Functione07bc: ; e07bc
- ld e, $13
- jr Functione07ce
-
-Functione07c0: ; e07c0
- ld e, $14
- jr Functione07ce
-
-Functione07c4: ; e07c4
- ld e, $15
- jr Functione07ce
-
-Functione07c8: ; e07c8
- ld e, $16
- jr Functione07ce
-
-Functione07cc: ; e07cc
- ld e, $17
-
-Functione07ce: ; e07ce
- ld a, [CurEnemyMoveNum]
- cp e
- jr nz, Functione07db
- ld c, $48
- ld de, SFX_2ND_PLACE
- jr Functione07eb
-
-Functione07db: ; e07db
- ld de, SFX_WRONG
- call PlaySFX
- ld hl, UnknownText_0xe0816
- call Functione0489
- call WaitSFX
- ret
-
-Functione07eb: ; e07eb
- push bc
- push de
- ld hl, UnknownText_0xe0811
- call Functione0489
- pop de
- call PlaySFX
- call WaitSFX
- pop bc
-.asm_e07fb
- push bc
- call Functione0833
- jr c, .asm_e0804
- call Functione081b
-
-.asm_e0804
- call Functione049c
- ld c, 2
- call DelayFrames
- pop bc
- dec c
- jr nz, .asm_e07fb
- ret
-; e0811
-
-UnknownText_0xe0811: ; 0xe0811
- ; Yeah!
- text_jump UnknownText_0x1c5813
- db "@"
-; 0xe0816
-
-UnknownText_0xe0816: ; 0xe0816
- ; Darn…
- text_jump UnknownText_0x1c581a
- db "@"
-; 0xe081b
-
-Functione081b: ; e081b
- ld a, [Coins]
- ld h, a
- ld a, [Coins + 1]
- ld l, a
- inc hl
- ld a, h
- ld [Coins], a
- ld a, l
- ld [Coins + 1], a
- ld de, SFX_PAY_DAY
- call PlaySFX
- ret
-; e0833
-
-Functione0833: ; e0833
- ld a, [Coins]
- cp 9999 / $100
- jr c, .asm_e0847
- jr z, .asm_e083e
- jr .asm_e0845
-
-.asm_e083e
- ld a, [Coins + 1]
- cp 9999 % $100
- jr c, .asm_e0847
-
-.asm_e0845
- scf
- ret
-
-.asm_e0847
- and a
- ret
-; e0849
-
-Functione0849: ; e0849
- call Functione03ac
- ld hl, Unknown_e0853
- call Functione0509
- ret
-; e0853
-
-Unknown_e0853: ; e0853
- db 18
- db $00, $00, $04, $00
- db $00, $08, $06, $00
- db $00, $10, $06, $00
- db $00, $18, $06, $00
- db $00, $20, $04, $20
- db $08, $00, $05, $00
- db $08, $20, $05, $20
- db $10, $00, $05, $00
- db $10, $20, $05, $20
- db $18, $00, $05, $00
- db $18, $20, $05, $20
- db $20, $00, $05, $00
- db $20, $20, $05, $20
- db $28, $00, $04, $40
- db $28, $08, $06, $40
- db $28, $10, $06, $40
- db $28, $18, $06, $40
- db $28, $20, $04, $60
-; e089c
-
-Functione089c: ; e089c
- ld hl, hJoyLast
- ld a, [hl]
- and D_LEFT
- jp nz, Functione08b8
- ld a, [hl]
- and D_RIGHT
- jp nz, Functione08ef
- ld a, [hl]
- and D_UP
- jp nz, Functione090a
- ld a, [hl]
- and D_DOWN
- jp nz, Functione093d
- ret
-; e08b8
-
-Functione08b8: ; e08b8
- ld hl, wcf65
- ld a, [wcf64]
- and a
- jr z, .asm_e08d5
- cp $1
- jr z, .asm_e08cc
- ld a, [hl]
- and a
- ret z
- dec [hl]
- jp Functione0959
-
-.asm_e08cc
- ld a, [hl]
- cp $3
- jr c, .asm_e08e2
- dec [hl]
- jp Functione0959
-
-.asm_e08d5
- ld a, [hl]
- and $e
- ld [hl], a
- cp $3
- jr c, .asm_e08e2
-rept 2
- dec [hl]
-endr
- jp Functione0959
-
-.asm_e08e2
- ld a, $2
- ld [wcf64], a
- ld a, $1
- ld [wcf65], a
- jp Functione0959
-; e08ef
-
-Functione08ef: ; e08ef
- ld hl, wcf65
- ld a, [wcf64]
- and a
- jr z, .asm_e08ff
- ld a, [hl]
- cp $5
- ret nc
- inc [hl]
- jr Functione0959
-
-.asm_e08ff
- ld a, [hl]
- and $e
- ld [hl], a
- cp $4
- ret nc
-rept 2
- inc [hl]
-endr
- jr Functione0959
-
-Functione090a: ; e090a
- ld hl, wcf64
- ld a, [wcf65]
- and a
- jr z, .asm_e0925
- cp $1
- jr z, .asm_e091d
- ld a, [hl]
- and a
- ret z
- dec [hl]
- jr Functione0959
-
-.asm_e091d
- ld a, [hl]
- cp $3
- jr c, .asm_e0931
- dec [hl]
- jr Functione0959
-
-.asm_e0925
- ld a, [hl]
- and $e
- ld [hl], a
- cp $3
- jr c, .asm_e0931
-rept 2
- dec [hl]
-endr
- jr Functione0959
-
-.asm_e0931
- ld a, $1
- ld [wcf64], a
- ld a, $2
- ld [wcf65], a
- jr Functione0959
-
-Functione093d: ; e093d
- ld hl, wcf64
- ld a, [wcf65]
- and a
- jr z, .asm_e0950
- ld hl, wcf64
- ld a, [hl]
- cp $7
- ret nc
- inc [hl]
- jr Functione0959
-
-.asm_e0950
- ld a, [hl]
- and $e
- ld [hl], a
- cp $6
- ret nc
-rept 2
- inc [hl]
-endr
-
-Functione0959: ; e0959
- ld de, SFX_POKEBALLS_PLACED_ON_TABLE
- call PlaySFX
- ret
-; e0960
-
-Functione0960: ; e0960
- call ClearSprites
- ld a, [hCGB]
- and a
- jr nz, .asm_e096d
- ld a, [hVBlankCounter]
- and $4
- ret nz
-
-.asm_e096d
- call Functione0398
-rept 2
- add hl, hl
-endr
- ld de, Unknown_e0981
- add hl, de
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- ld a, [hli]
- ld h, [hl]
- ld l, a
- call Functione0509
- ret
-; e0981
-
-Unknown_e0981: ; e0981
- dbbw $58, $10, Unknown_e0c26
- dbbw $60, $10, Unknown_e0c26
- dbbw $68, $10, Unknown_e0b8d
- dbbw $68, $10, Unknown_e0b8d
- dbbw $88, $10, Unknown_e0b8d
- dbbw $88, $10, Unknown_e0b8d
-
- dbbw $58, $18, Unknown_e0c26
- dbbw $60, $18, Unknown_e0c26
- dbbw $68, $18, Unknown_e0a5a
- dbbw $78, $18, Unknown_e0a5a
- dbbw $88, $18, Unknown_e0a5a
- dbbw $98, $18, Unknown_e0a5a
-
- dbbw $58, $28, Unknown_e0b14
- dbbw $60, $28, Unknown_e0ac3
- dbbw $68, $28, Unknown_e0a41
- dbbw $78, $28, Unknown_e0a41
- dbbw $88, $28, Unknown_e0a41
- dbbw $98, $28, Unknown_e0a41
- dbbw $58, $28, Unknown_e0b14
-
- dbbw $60, $34, Unknown_e0ac3
- dbbw $68, $34, Unknown_e0a41
- dbbw $78, $34, Unknown_e0a41
- dbbw $88, $34, Unknown_e0a41
- dbbw $98, $34, Unknown_e0a41
-
- dbbw $58, $40, Unknown_e0b14
- dbbw $60, $40, Unknown_e0ac3
- dbbw $68, $40, Unknown_e0a41
- dbbw $78, $40, Unknown_e0a41
- dbbw $88, $40, Unknown_e0a41
- dbbw $98, $40, Unknown_e0a41
- dbbw $58, $40, Unknown_e0b14
-
- dbbw $60, $4c, Unknown_e0ac3
- dbbw $68, $4c, Unknown_e0a41
- dbbw $78, $4c, Unknown_e0a41
- dbbw $88, $4c, Unknown_e0a41
- dbbw $98, $4c, Unknown_e0a41
-
- dbbw $58, $58, Unknown_e0b14
- dbbw $60, $58, Unknown_e0ac3
- dbbw $68, $58, Unknown_e0a41
- dbbw $78, $58, Unknown_e0a41
- dbbw $88, $58, Unknown_e0a41
- dbbw $98, $58, Unknown_e0a41
- dbbw $58, $58, Unknown_e0b14
-
- dbbw $60, $64, Unknown_e0ac3
- dbbw $68, $64, Unknown_e0a41
- dbbw $78, $64, Unknown_e0a41
- dbbw $88, $64, Unknown_e0a41
- dbbw $98, $64, Unknown_e0a41
-; e0a41
-
-Unknown_e0a41: ; e0a41
- db 6
- db $00, $ff, $00, $80
- db $00, $00, $02, $80
- db $00, $08, $03, $80
- db $05, $ff, $00, $c0
- db $05, $00, $02, $c0
- db $05, $08, $03, $80
-
-Unknown_e0a5a: ; e0a5a
- db 26
- db $00, $ff, $00, $80
- db $00, $00, $02, $80
- db $00, $08, $00, $a0
- db $08, $ff, $01, $80
- db $08, $08, $01, $a0
- db $10, $ff, $01, $80
- db $10, $08, $03, $80
- db $18, $ff, $01, $80
- db $18, $08, $03, $80
- db $20, $ff, $01, $80
- db $20, $08, $03, $80
- db $28, $ff, $01, $80
- db $28, $08, $03, $80
- db $30, $ff, $01, $80
- db $30, $08, $03, $80
- db $38, $ff, $01, $80
- db $38, $08, $03, $80
- db $40, $ff, $01, $80
- db $40, $08, $03, $80
- db $48, $ff, $01, $80
- db $48, $08, $03, $80
- db $50, $ff, $01, $80
- db $50, $08, $03, $80
- db $51, $ff, $00, $c0
- db $51, $00, $02, $c0
- db $51, $08, $03, $80
-
-Unknown_e0ac3: ; e0ac3
- db 20
- db $00, $ff, $00, $80
- db $00, $00, $02, $80
- db $00, $08, $02, $80
- db $00, $10, $03, $80
- db $00, $18, $02, $80
- db $00, $20, $03, $80
- db $00, $28, $02, $80
- db $00, $30, $03, $80
- db $00, $38, $02, $80
- db $00, $40, $03, $80
- db $05, $ff, $00, $c0
- db $05, $00, $02, $c0
- db $05, $08, $02, $c0
- db $05, $10, $03, $80
- db $05, $18, $02, $c0
- db $05, $20, $03, $80
- db $05, $28, $02, $c0
- db $05, $30, $03, $80
- db $05, $38, $02, $c0
- db $05, $40, $03, $80
-
-Unknown_e0b14: ; e0b14
- db 30
- db $00, $00, $00, $80
- db $00, $08, $02, $80
- db $00, $10, $02, $80
- db $00, $18, $03, $80
- db $00, $20, $02, $80
- db $00, $28, $03, $80
- db $00, $30, $02, $80
- db $00, $38, $03, $80
- db $00, $40, $02, $80
- db $00, $48, $03, $80
- db $08, $00, $01, $80
- db $08, $18, $03, $80
- db $08, $28, $03, $80
- db $08, $38, $03, $80
- db $08, $48, $03, $80
- db $10, $00, $01, $80
- db $10, $18, $03, $80
- db $10, $28, $03, $80
- db $10, $38, $03, $80
- db $10, $48, $03, $80
- db $11, $00, $00, $c0
- db $11, $08, $02, $c0
- db $11, $10, $02, $c0
- db $11, $18, $03, $80
- db $11, $20, $03, $80
- db $11, $28, $03, $80
- db $11, $30, $03, $80
- db $11, $38, $03, $80
- db $11, $40, $03, $80
- db $11, $48, $03, $80
-
-Unknown_e0b8d: ; e0b8d
- db 38
- db $00, $ff, $00, $80
- db $00, $18, $00, $a0
- db $08, $ff, $01, $80
- db $08, $18, $01, $a0
- db $10, $ff, $01, $80
- db $10, $18, $01, $a0
- db $18, $ff, $01, $80
- db $18, $08, $03, $80
- db $18, $18, $03, $80
- db $20, $ff, $01, $80
- db $20, $08, $03, $80
- db $20, $18, $03, $80
- db $28, $ff, $01, $80
- db $28, $08, $03, $80
- db $28, $18, $03, $80
- db $30, $ff, $01, $80
- db $30, $08, $03, $80
- db $30, $18, $03, $80
- db $38, $ff, $01, $80
- db $38, $08, $03, $80
- db $38, $18, $03, $80
- db $40, $ff, $01, $80
- db $40, $08, $03, $80
- db $40, $18, $03, $80
- db $48, $ff, $01, $80
- db $48, $08, $03, $80
- db $48, $18, $03, $80
- db $50, $ff, $01, $80
- db $50, $08, $03, $80
- db $50, $18, $03, $80
- db $58, $ff, $01, $80
- db $58, $08, $03, $80
- db $58, $18, $03, $80
- db $59, $ff, $00, $c0
- db $59, $00, $02, $c0
- db $59, $08, $03, $c0
- db $59, $10, $02, $c0
- db $59, $18, $03, $e0
-
-Unknown_e0c26: ; e0c26
- db 4
- db $00, $00, $00, $80
- db $00, $08, $00, $a0
- db $08, $00, $00, $c0
- db $08, $08, $00, $e0
-; e0c37
-
-Functione0c37: ; e0c37 (38:4c37)
- ld a, [hCGB]
- and a
- ret z
- hlcoord 0, 0, AttrMap
- ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
- xor a
- call ByteFill
- hlcoord 12, 1, AttrMap
- lb bc, 2, 2
- ld a, $1
- call Functione04e7
- hlcoord 14, 1, AttrMap
- lb bc, 2, 2
- ld a, $2
- call Functione04e7
- hlcoord 16, 1, AttrMap
- lb bc, 2, 2
- ld a, $3
- call Functione04e7
- hlcoord 18, 1, AttrMap
- lb bc, 2, 2
- ld a, $4
- call Functione04e7
- hlcoord 9, 0, AttrMap
- lb bc, 12, 1
- ld a, $1
- call Functione04e7
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_e0c93
- ld de, Unkn1Pals
- ld bc, $48
- call CopyBytes
- pop af
- ld [rSVBK], a
- ret
-; e0c93 (38:4c93)
-
-Palette_e0c93: ; e0c93
- RGB 31, 31, 31
- RGB 17, 07, 31
- RGB 06, 19, 08
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 29, 25, 00
- RGB 06, 19, 08
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 13, 30
- RGB 06, 19, 08
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 08, 17, 30
- RGB 06, 19, 08
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 08, 31, 08
- RGB 06, 19, 08
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 17, 07, 31
- RGB 06, 19, 08
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 17, 07, 31
- RGB 06, 19, 08
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 17, 07, 31
- RGB 06, 19, 08
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 00, 00
- RGB 31, 00, 00
-; e0cdb
-
-LZ_e0cdb: ; e0cdb
-INCBIN "gfx/unknown/0e0cdb.2bpp.lz"
-
-GFX_e0cf6: ; e0cf6
-INCBIN "gfx/unknown/0e0cf6.2bpp"
-
-GFX_e0d06: ; e0d06
-INCBIN "gfx/unknown/0e0d06.2bpp"
-
-LZ_e0d16: ; e0d16
-INCBIN "gfx/unknown/0e0d16.2bpp.lz"
-
-LZ_e0ea8: ; e0ea8
-INCBIN "gfx/unknown/0e0ea8.2bpp.lz"
-
-Unknown_e110c: ; e110c
- db $ef, $15, $27, $2a, $2a, $06, $27, $2a, $2a, $06, $27
- db $ef, $07, $27, $3e, $3f, $42, $43, $46, $47, $4a, $4b
- db $ef, $17, $26, $40, $41, $44, $45, $48, $49, $4c, $4d
- db $ef, $25, $04, $00, $01, $00, $01, $00, $01, $00, $01
- db $ef, $05, $14, $10, $11, $10, $11, $10, $11, $10, $11
- db $ef, $16, $24, $20, $21, $20, $21, $20, $21, $20, $21
- db $ef, $25, $04, $00, $02, $00, $02, $00, $02, $00, $02
- db $ef, $05, $14, $10, $12, $10, $12, $10, $12, $10, $12
- db $ef, $16, $24, $20, $22, $20, $22, $20, $22, $20, $22
- db $ef, $25, $04, $00, $03, $00, $03, $00, $03, $00, $03
- db $ef, $05, $14, $10, $13, $10, $13, $10, $13, $10, $13
- db $ef, $16, $24, $20, $23, $20, $23, $20, $23, $20, $23
-; e1190
-
-Functione1190: ; e1190
- ld a, [hInMenu]
- push af
- ld a, $1
- ld [hInMenu], a
- call WhiteBGMap
- call ClearTileMap
- call ClearSprites
- xor a
- ld [hBGMapMode], a
- call DisableLCD
- ld hl, wc608
- ld bc, $1e0
- xor a
- call ByteFill
- ld hl, GFX_e17c5
- ld de, VTiles1 tile $60
- ld bc, $40
- call CopyBytes
- ld hl, LZ_e1805
- ld de, VTiles1 tile $6d
- call Decompress
- call Functione17a3
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, $ee
- call ByteFill
- hlcoord 4, 3
- lb bc, 12, 12
- ld a, $ef
- call Functione13ee
- call Functione124e
- call Functione13fe
- call Functione127d
- xor a
- ld [hSCY], a
- ld [hSCX], a
- ld [rWY], a
- ld [wJumptableIndex], a
- ld [wcf64], a
- ld [wcf65], a
- ld [wcf66], 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 [wd0ec], a
- call DelayFrame
-.asm_e1217
- call JoyTextDelay
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .asm_e123d
- call Functione12ca
- ld a, [wcf64]
- and a
- jr nz, .asm_e1230
- ld a, [hVBlankCounter]
- 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 [hInMenu], 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, Unknown_e126d
- ld e, a
- ld d, $0
- add hl, de
- ld e, [hl]
- ld hl, wc6d0
- 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
-
-Unknown_e126d: ; e126d
- db $00, $01, $02, $03
- db $04, $05, $06, $0b
- db $0c, $11, $12, $17
- db $18, $1d, $1e, $23
-; e127d
-
-Functione127d: ; e127d
- call Functione128d
- hlcoord 5, 16
- ld a, $f6
- ld c, $a
-.asm_e1287
- ld [hli], a
- inc a
- dec c
- jr nz, .asm_e1287
- ret
-; e128d
-
-Functione128d: ; e128d
- hlcoord 4, 15
- ld a, $f0
- ld [hli], a
- ld bc, $a
- ld a, $f1
- call ByteFill
- hlcoord 15, 15
- ld a, $f2
- ld [hli], a
- hlcoord 4, 16
- ld a, $f3
- ld [hli], a
- ld bc, $a
- ld a, $ef
- call ByteFill
- hlcoord 15, 16
- ld a, $f3
- ld [hli], a
- hlcoord 4, 17
- ld a, $f4
- ld [hli], a
- ld bc, $a
- ld a, $f1
- call ByteFill
- hlcoord 15, 17
- ld a, $f5
- ld [hl], a
- ret
-; e12ca
-
-Functione12ca: ; e12ca
- ld a, [wJumptableIndex]
- ld e, a
- ld d, 0
- ld hl, Jumptable_e12d9
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; e12d9
-
-Jumptable_e12d9: ; e12d9
- dw Functione12db
-; e12db
-
-Functione12db: ; e12db
- ld a, [hJoyPressed]
- and START
- jp nz, Functione13de
- ld a, [hJoyPressed]
- and A_BUTTON
- jp nz, Functione1376
- ld hl, hJoyLast
- ld a, [hl]
- and D_UP
- jr nz, .asm_e1301
- ld a, [hl]
- and D_DOWN
- jr nz, .asm_e130d
- ld a, [hl]
- and D_LEFT
- jr nz, .asm_e1325
- ld a, [hl]
- and D_RIGHT
- jr nz, .asm_e1345
- ret
-
-.asm_e1301
- ld hl, wcf65
- ld a, [hl]
- cp $6
- ret c
- sub $6
- ld [hl], a
- jr .asm_e1364
-
-.asm_e130d
- ld hl, wcf65
- ld a, [hl]
- cp $19
- ret z
- cp $1a
- ret z
- cp $1b
- ret z
- cp $1c
- ret z
- cp $1e
- ret nc
- add $6
- ld [hl], a
- jr .asm_e1364
-
-.asm_e1325
- ld hl, wcf65
- ld a, [hl]
- and a
- ret z
- cp $6
- ret z
- cp $c
- ret z
- cp $12
- ret z
- cp $18
- ret z
- cp $1e
- ret z
- cp $23
- jr z, .asm_e1341
- dec [hl]
- jr .asm_e1364
-
-.asm_e1341
- ld [hl], $1e
- jr .asm_e1364
-
-.asm_e1345
- ld hl, wcf65
- ld a, [hl]
- cp $5
- ret z
- cp $b
- ret z
- cp $11
- ret z
- cp $17
- ret z
- cp $1d
- ret z
- cp $23
- ret z
- cp $1e
- jr z, .asm_e1362
- inc [hl]
- jr .asm_e1364
-
-.asm_e1362
- ld [hl], $23
-
-.asm_e1364
- ld a, [wcf64]
- and a
- jr nz, .asm_e136f
- ld de, SFX_POUND
- jr .asm_e1372
-
-.asm_e136f
- ld de, SFX_MOVE_PUZZLE_PIECE
-
-.asm_e1372
- call PlaySFX
- ret
-; e1376
-
-Functione1376: ; e1376
- ld a, [wcf64]
- and a
- jr nz, .asm_e139f
- call Functione1475
- and a
- jr z, Functione13e4
- ld de, SFX_MEGA_KICK
- call PlaySFX
- ld [hl], $0
- ld [wcf66], a
- call Functione14d9
- call Functione1441
- call WaitBGMap
- call WaitSFX
- ld a, $1
- ld [wcf64], a
- ret
-
-.asm_e139f
- call Functione1475
- and a
- jr nz, Functione13e4
- ld de, SFX_PLACE_PUZZLE_PIECE_DOWN
- call PlaySFX
- ld a, [wcf66]
- ld [hl], a
- call Functione141f
- call WaitBGMap
- xor a
- ld [wcf66], a
- call Functione14d9
- xor a
- ld [wcf64], a
- call WaitSFX
- call Functione14a0
- ret nc
- call Functione128d
- call ClearSprites
- ld de, SFX_1ST_PLACE
- call PlaySFX
- call WaitSFX
- call SimpleWaitPressAorB
- ld a, $1
- ld [wd0ec], a
-
-Functione13de: ; e13de
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-
-Functione13e4: ; e13e4
- ld de, SFX_WRONG
- call PlaySFX
- call WaitSFX
- ret
-; e13ee
-
-Functione13ee: ; e13ee
- ld de, SCREEN_WIDTH
-.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 [wcf65], a
- ld c, $24
-.asm_e1404
- push bc
- call Functione1475
- ld [wcf66], a
- and a
- jr z, .asm_e1413
- call Functione141f
- jr .asm_e1416
-
-.asm_e1413
- call Functione1441
-
-.asm_e1416
- ld hl, wcf65
- 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, SCREEN_WIDTH
- 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, SCREEN_WIDTH
- 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, Unknown_e1559
- add hl, de
- ld a, [wcf65]
- ld e, a
-rept 4
- add hl, de
-endr
-rept 2
- add hl, de
-endr
- ret
-; e1475
-
-Functione1475: ; e1475
- ld hl, wc6d0
- ld a, [wcf65]
- ld e, a
- ld d, $0
- add hl, de
- ld a, [hl]
- ret
-; e1481
-
-Functione1481: ; e1481
- ld a, [wcf66]
- ld hl, Unknown_e148f
- add l
- ld l, a
- ld a, $0
- adc h
- ld h, a
- ld a, [hl]
- ret
-; e148f
-
-Unknown_e148f: ; e148f
- db $e0
- db $00, $03, $06, $09
- db $24, $27, $2a, $2d
- db $48, $4b, $4e, $51
- db $6c, $6f, $72, $75
-; e14a0
-
-Functione14a0: ; e14a0
- ld hl, Unknown_e14b5
- ld de, wc6d0
- ld c, $24
-.asm_e14a8
- ld a, [de]
- cp [hl]
- jr nz, .asm_e14b3
- inc de
- inc hl
- dec c
- jr nz, .asm_e14a8
- scf
- ret
-
-.asm_e14b3
- and a
- ret
-; e14b5
-
-Unknown_e14b5: ; e14b5
- db $00, $00, $00, $00, $00, $00
- db $00, $01, $02, $03, $04, $00
- db $00, $05, $06, $07, $08, $00
- db $00, $09, $0a, $0b, $0c, $00
- db $00, $0d, $0e, $0f, $10, $00
- db $00, $00, $00, $00, $00, $00
-; e14d9
-
-Functione14d9: ; e14d9
- call Functione1481
- ld [wd002], a
- xor a
- call Functione1463
- ld a, [hli]
- ld b, [hl]
- ld c, a
- ld a, [wd002]
- cp $e0
- jr z, .asm_e14f2
- ld hl, Unknown_e150f
- jr .asm_e14f5
-
-.asm_e14f2
- ld hl, Unknown_e1534
-
-.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, [wd002]
- add [hl]
- ld [de], a
- inc hl
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- jr .asm_e14f8
-; e150f
-
-Unknown_e150f: ; e150f
- db $f4, $f4, $00, $00
- db $f4, $fc, $01, $00
- db $f4, $04, $02, $00
- db $fc, $f4, $0c, $00
- db $fc, $fc, $0d, $00
- db $fc, $04, $0e, $00
- db $04, $f4, $18, $00
- db $04, $fc, $19, $00
- db $04, $04, $1a, $00
- db $ff
-
-Unknown_e1534: ; e1534
- db $f4, $f4, $00, $00
- db $f4, $fc, $01, $00
- db $f4, $04, $00, $20
- db $fc, $f4, $02, $00
- db $fc, $fc, $03, $00
- db $fc, $04, $02, $20
- db $04, $f4, $00, $40
- db $04, $fc, $01, $40
- db $04, $04, $00, $60
- db $ff
-
-Unknown_e1559: ; e1559
-
-macro_e1559: macro
- db \1, \2
- dwcoord \3, \4
- db \5, \6
-endm
-
- macro_e1559 $1c, $1c, 1, 0, $ee, $00
- macro_e1559 $34, $1c, 4, 0, $ee, $00
- macro_e1559 $4c, $1c, 7, 0, $ee, $00
- macro_e1559 $64, $1c, 10, 0, $ee, $00
- macro_e1559 $7c, $1c, 13, 0, $ee, $00
- macro_e1559 $94, $1c, 16, 0, $ee, $00
- macro_e1559 $1c, $34, 1, 3, $ee, $00
- macro_e1559 $34, $34, 4, 3, $ef, $00
- macro_e1559 $4c, $34, 7, 3, $ef, $00
- macro_e1559 $64, $34, 10, 3, $ef, $00
- macro_e1559 $7c, $34, 13, 3, $ef, $00
- macro_e1559 $94, $34, 16, 3, $ee, $00
- macro_e1559 $1c, $4c, 1, 6, $ee, $00
- macro_e1559 $34, $4c, 4, 6, $ef, $00
- macro_e1559 $4c, $4c, 7, 6, $ef, $00
- macro_e1559 $64, $4c, 10, 6, $ef, $00
- macro_e1559 $7c, $4c, 13, 6, $ef, $00
- macro_e1559 $94, $4c, 16, 6, $ee, $00
- macro_e1559 $1c, $64, 1, 9, $ee, $00
- macro_e1559 $34, $64, 4, 9, $ef, $00
- macro_e1559 $4c, $64, 7, 9, $ef, $00
- macro_e1559 $64, $64, 10, 9, $ef, $00
- macro_e1559 $7c, $64, 13, 9, $ef, $00
- macro_e1559 $94, $64, 16, 9, $ee, $00
- macro_e1559 $1c, $7c, 1, 12, $ee, $00
- macro_e1559 $34, $7c, 4, 12, $ef, $00
- macro_e1559 $4c, $7c, 7, 12, $ef, $00
- macro_e1559 $64, $7c, 10, 12, $ef, $00
- macro_e1559 $7c, $7c, 13, 12, $ef, $00
- macro_e1559 $94, $7c, 16, 12, $ee, $00
- macro_e1559 $1c, $94, 1, 15, $ee, $00
- macro_e1559 $34, $94, 4, 15, $ee, $00
- macro_e1559 $4c, $94, 7, 15, $ee, $00
- macro_e1559 $64, $94, 10, 15, $ee, $00
- macro_e1559 $7c, $94, 13, 15, $ee, $00
- macro_e1559 $94, $94, 16, 15, $ee, $00
-
-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, 8
- add hl, bc
- call Functione1654
- pop hl
- ld bc, $60
- 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, $10
- add hl, bc
- pop bc
- dec c
- jr nz, .asm_e1656
- ret
-; e16aa
-
-Functione16aa: ; e16aa
- push hl
- ld hl, Unknown_e16b7
- add l
- ld l, a
- ld a, 0
- adc h
- ld h, a
- ld a, [hl]
- pop hl
- ret
-; e16b7
-
-Unknown_e16b7: ; e16b7
- db $00, $03, $0c, $0f
- db $30, $33, $3c, $3f
- db $c0, $c3, $cc, $cf
- db $f0, $f3, $fc, $ff
-; e16c7
-
-Functione16c7: ; e16c7
- ld hl, Unknown_e1703
- 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
-rept 4
- inc hl
-endr
- pop af
- dec a
- jr nz, .asm_e16cc
- ret
-; e16e2
-
-Functione16e2: ; e16e2
- lb bc, 4, 4
-.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, $30
- add hl, de
- pop de
- dec c
- jr nz, .asm_e16e6
- ld bc, $180
- add hl, bc
- pop bc
- dec b
- jr nz, .asm_e16e5
- ret
-; e1703
-
-Unknown_e1703: ; e1703
- dw GFX_e1723 + $00, $8000
- dw GFX_e1723 + $10, $8010
- dw GFX_e1723 + $20, $8020
- dw GFX_e1723 + $30, $80c0
- dw GFX_e1723 + $40, $80e0
- dw GFX_e1723 + $50, $8180
- dw GFX_e1723 + $60, $8190
- dw GFX_e1723 + $70, $81a0
-; e1723
-
-GFX_e1723: ; e1723
-INCBIN "gfx/unknown/0e1723.2bpp"
-
-Functione17a3: ; e17a3
- ld a, [ScriptVar]
- and 3
- ld e, a
- ld d, 0
- ld hl, Unknown_e17bd
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, VTiles2
- call Decompress
- call Functione1631
- ret
-; e17bd
-
-Unknown_e17bd: ; e17bd
- dw LZ_e1bab
- dw LZ_e1c9b
- dw LZ_e19fb
- dw LZ_e18ab
-; e17c5
-
-GFX_e17c5: ; e17c5
-INCBIN "gfx/unknown/0e17c5.2bpp"
-
-LZ_e1805: ; e1805
-INCBIN "gfx/unknown/0e1805.2bpp.lz"
-
-LZ_e18ab: ; e18ab
-INCBIN "gfx/unknown/0e18ab.2bpp.lz"
-
-LZ_e19fb: ; e19fb
-INCBIN "gfx/unknown/0e19fb.2bpp.lz"
-
-LZ_e1bab: ; e1bab
-INCBIN "gfx/unknown/0e1bab.2bpp.lz"
-
-LZ_e1c9b: ; e1c9b
-INCBIN "gfx/unknown/0e1c9b.2bpp.lz"
-
-_DummyGame: ; e1e5b (38:5e5b)
- call Functione1e67
- call DelayFrame
-.asm_e1e61
- call Functione1ebb
- jr nc, .asm_e1e61
- ret
-
-Functione1e67: ; e1e67 (38:5e67)
- call DisableLCD
- ld b, $8
- call GetSGBLayout
- callab Function8cf53
- ld hl, LZ_e2221
- ld de, VTiles2 tile $00
- call Decompress
- ld hl, Unknown_e00ed
- ld de, VTiles0 tile $00
- ld bc, $40
- ld a, BANK(Unknown_e00ed)
- call FarCopyBytes
- ld a, $8
- ld hl, wc300
- ld [hli], a
- ld [hl], $0
- hlcoord 0, 0
- ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
- xor a
- call ByteFill
- xor a
- ld [hSCY], a
- ld [hSCX], a
- ld [rWY], a
- ld [wJumptableIndex], a
- ld a, $1
- ld [hBGMapMode], a
- ld a, $e3
- ld [rLCDC], a
- ld a, $e4
- call DmgToCgbBGPals
- ld a, $e0
- call Functioncf8
- ret
-
-Functione1ebb: ; e1ebb (38:5ebb)
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .asm_e1ed0
- call Functione1ed2
- callab Function8cf69
- call DelayFrame
- and a
- ret
-.asm_e1ed0
- scf
- ret
-
-Functione1ed2: ; e1ed2 (38:5ed2)
- ld a, [wJumptableIndex]
- ld e, a
- ld d, 0
- ld hl, Jumptable_e1ee1
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; e1ee1 (38:5ee1)
-
-Jumptable_e1ee1: ; e1ee1
- dw Functione1ef3
- dw Functione1efb
- dw Functione1f1c
- dw Functione1f42
- dw Functione1f61
- dw Functione1f8b
- dw Functione1fba
- dw Functione1fcc
- dw Functione2000
-; e1ef3
-
-Functione1ef3: ; e1ef3
- call Functione2152
- ld hl, wJumptableIndex
- inc [hl]
- ret
-; e1efb
-
-Functione1efb: ; e1efb
- call Functione00ed
- jr nc, .asm_e1f06
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-
-.asm_e1f06
- call Functione209d
- ld hl, wJumptableIndex
- inc [hl]
- xor a
- ld [wc708], a
- ld hl, wc703
-rept 4
- ld [hli], a
-endr
- ld [hl], a
- ld [wc709], a
-
-Functione1f1c: ; e1f1c
- ld hl, wc708
- ld a, [hl]
- cp $2d
- jr nc, .asm_e1f30
- inc [hl]
- call Functione2183
- xor a
- ld [wc6fd], a
- call Functione2128
- ret
-
-.asm_e1f30
- ld de, $341c
- ld a, $c
- call Function3b2a
- ld a, $5
- ld [wc702], a
- ld hl, wJumptableIndex
- inc [hl]
- ret
-; e1f42
-
-Functione1f42: ; e1f42
- ld a, [wc702]
- hlcoord 17, 0
- add $f6
- ld [hl], a
- ld hl, wc702
- ld a, [hl]
- and a
- jr nz, .asm_e1f58
- ld a, $7
- ld [wJumptableIndex], a
- ret
-
-.asm_e1f58
- dec [hl]
- xor a
- ld [wcf64], a
- ld hl, wJumptableIndex
- inc [hl]
-
-Functione1f61: ; e1f61
- ld a, [wcf64]
- and a
- ret z
- dec a
- ld e, a
- ld d, $0
- ld hl, wc6d0
- add hl, de
- ld a, [hl]
- cp $ff
- ret z
- ld [wc6fd], a
- ld [wPlayerMinimized], a
- ld a, e
- ld [EnemyScreens], a
- call Functione2183
- call Functione2128
- xor a
- ld [wcf64], a
- ld hl, wJumptableIndex
- inc [hl]
- ret
-; e1f8b
-
-Functione1f8b: ; e1f8b
- ld a, [wcf64]
- and a
- ret z
- dec a
- ld hl, EnemyScreens
- cp [hl]
- ret z
- ld e, a
- ld d, $0
- ld hl, wc6d0
- add hl, de
- ld a, [hl]
- cp $ff
- ret z
- ld [wc6fd], a
- ld [PlayerScreens], a
- ld a, e
- ld [wc701], a
- call Functione2183
- call Functione2128
- ld a, $40
- ld [wc708], a
- ld hl, wJumptableIndex
- inc [hl]
-
-Functione1fba: ; e1fba
- ld hl, wc708
- ld a, [hl]
- and a
- jr z, .asm_e1fc3
- dec [hl]
- ret
-
-.asm_e1fc3
- call Functione2010
- ld a, $3
- ld [wJumptableIndex], a
- ret
-; e1fcc
-
-Functione1fcc: ; e1fcc
- ld a, [hJoypadPressed]
- and A_BUTTON
- ret z
- xor a
- ld [wc708], a
-.asm_e1fd5
- ld hl, wc708
- ld a, [hl]
- cp $2d
- jr nc, .asm_e1ff9
- inc [hl]
- push af
- call Functione2183
- pop af
- push hl
- ld e, a
- ld d, $0
- ld hl, wc6d0
- add hl, de
- ld a, [hl]
- pop hl
- cp $ff
- jr z, .asm_e1fd5
- ld [wc6fd], a
- call Functione2128
- jr .asm_e1fd5
-
-.asm_e1ff9
- call WaitPressAorB_BlinkCursor
- ld hl, wJumptableIndex
- inc [hl]
-
-Functione2000: ; e2000
- call Functione00ed
- jr nc, .asm_e200b
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-
-.asm_e200b
- xor a
- ld [wJumptableIndex], a
- ret
-; e2010
-
-Functione2010: ; e2010
- ld hl, wPlayerMinimized
- ld a, [hli]
- cp [hl]
- jr nz, .asm_e2066
- ld a, [EnemyScreens]
- call Functione2183
- call Functione2142
- ld a, [wc701]
- call Functione2183
- call Functione2142
- ld a, [EnemyScreens]
- ld e, a
- ld d, $0
- ld hl, wc6d0
- add hl, de
- ld [hl], $ff
- ld a, [wc701]
- ld e, a
- ld d, $0
- ld hl, wc6d0
- add hl, de
- ld [hl], $ff
- ld hl, wc703
-.asm_e2044
- ld a, [hli]
- and a
- jr nz, .asm_e2044
- dec hl
- ld a, [wPlayerMinimized]
- ld [hl], a
- ld [wc6fd], a
- ld hl, wc709
- ld e, [hl]
-rept 2
- inc [hl]
-endr
- ld d, $0
- hlcoord 5, 0
- add hl, de
- call Functione2128
- ld hl, UnknownText_0xe2083
- call PrintText
- ret
-
-.asm_e2066
- xor a
- ld [wc6fd], a
- ld a, [EnemyScreens]
- call Functione2183
- call Functione2128
- ld a, [wc701]
- call Functione2183
- call Functione2128
- ld hl, UnknownText_0xe2098
- call PrintText
- ret
-; e2083
-
-UnknownText_0xe2083: ; 0xe2083
- start_asm
-; 0xe2084
-
-Functione2084: ; e2084
- push bc
- hlcoord 2, 13
- call Functione2128
- ld hl, UnknownText_0xe2093
- pop bc
-rept 3
- inc bc
-endr
- ret
-; e2093
-
-UnknownText_0xe2093: ; 0xe2093
- ; , yeah!
- text_jump UnknownText_0x1c1a5b
- db "@"
-; 0xe2098
-
-UnknownText_0xe2098: ; 0xe2098
- ; Darn…
- text_jump UnknownText_0x1c1a65
- db "@"
-; 0xe209d
-
-Functione209d: ; e209d
- ld hl, wc6d0
- ld bc, $2d
- xor a
- call ByteFill
- call Functione2101
- ld c, $2
- ld b, [hl]
- call Functione20e5
- ld c, $8
- ld b, [hl]
- call Functione20e5
- ld c, $4
- ld b, [hl]
- call Functione20e5
- ld c, $7
- ld b, [hl]
- call Functione20e5
- ld c, $3
- ld b, [hl]
- call Functione20e5
- ld c, $6
- ld b, [hl]
- call Functione20e5
- ld c, $1
- ld b, [hl]
- call Functione20e5
- ld c, $5
- ld hl, wc6d0
- ld b, $2d
-.asm_e20db
- ld a, [hl]
- and a
- jr nz, .asm_e20e0
- ld [hl], c
-
-.asm_e20e0
- inc hl
- dec b
- jr nz, .asm_e20db
- ret
-; e20e5
-
-Functione20e5: ; e20e5
- push hl
- ld de, wc6d0
-.asm_e20e9
- call Random
- and $3f
- cp $2d
- jr nc, .asm_e20e9
- ld l, a
- ld h, $0
- add hl, de
- ld a, [hl]
- and a
- jr nz, .asm_e20e9
- ld [hl], c
- dec b
- jr nz, .asm_e20e9
- pop hl
- inc hl
- ret
-; e2101
-
-Functione2101: ; e2101
- ld a, [MenuSelection2]
- dec a
- ld l, a
- ld h, 0
-rept 3
- add hl, hl
-endr
- ld de, Unknown_e2110
- add hl, de
- ret
-; e2110
-
-Unknown_e2110: ; e2110
- db $02, $03, $06, $06, $06, $08, $08, $06
- db $02, $02, $04, $06, $06, $08, $08, $09
- db $02, $02, $02, $04, $07, $08, $08, $0c
-; e2128
-
-Functione2128: ; e2128
- ld a, [wc6fd]
- sla a
- sla a
- add $4
- ld [hli], a
- inc a
- ld [hld], a
- inc a
- ld bc, SCREEN_WIDTH
- add hl, bc
- ld [hli], a
- inc a
- ld [hl], a
- ld c, 3
- call DelayFrames
- ret
-; e2142
-
-Functione2142: ; e2142
- ld a, $1
- ld [hli], a
- ld [hld], a
- ld bc, SCREEN_WIDTH
- add hl, bc
- ld [hli], a
- ld [hl], a
- ld c, 3
- call DelayFrames
- ret
-; e2152
-
-Functione2152: ; e2152
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, $1
- call ByteFill
- hlcoord 0, 0
- ld de, String_e2177
- call PlaceString
- hlcoord 15, 0
- ld de, String_e217d
- call PlaceString
- ld hl, UnknownText_0xe2176
- call PrintText
- ret
-; e2176
-
-UnknownText_0xe2176: ; 0xe2176
- db "@"
-; 0xe2177
-
-String_e2177: db "とったもの@"
-String_e217d: db "あと かい@"
-; e2183
-
-Functione2183: ; e2183
- ld d, $0
-.asm_e2185
- sub $9
- jr c, .asm_e218c
- inc d
- jr .asm_e2185
-
-.asm_e218c
- add $9
- ld e, a
- hlcoord 1, 2
- ld bc, $28
-.asm_e2195
- ld a, d
- and a
- jr z, .asm_e219d
- add hl, bc
- dec d
- jr .asm_e2195
-
-.asm_e219d
- sla e
- add hl, de
- ret
-; e21a1
-
-Functione21a1: ; e21a1 (38:61a1)
- ld a, [wJumptableIndex]
- cp $7
- jr nc, .quit
- call JoyTextDelay
- ld hl, hJoypadPressed ; $ffa3
- ld a, [hl]
- and A_BUTTON
- jr nz, .pressed_a
- ld a, [hl]
- and D_LEFT
- jr nz, .pressed_left
- ld a, [hl]
- and D_RIGHT
- jr nz, .pressed_right
- ld a, [hl]
- and D_UP
- jr nz, .pressed_up
- ld a, [hl]
- and D_DOWN
- jr nz, .pressed_down
- ret
-
-.quit
- ld hl, 0
- add hl, bc
- ld [hl], $0
- ret
-
-.pressed_a
- ld hl, $c
- add hl, bc
- ld a, [hl]
- inc a
- ld [wcf64], a
- ret
-
-.pressed_left
- ld hl, $6
- add hl, bc
- ld a, [hl]
- and a
- ret z
- sub $10
- ld [hl], a
- ld hl, $c
- add hl, bc
- dec [hl]
- ret
-
-.pressed_right
- ld hl, $6
- add hl, bc
- ld a, [hl]
- cp $80
- ret z
- add $10
- ld [hl], a
- ld hl, $c
- add hl, bc
- inc [hl]
- ret
-
-.pressed_up
- ld hl, $7
- add hl, bc
- ld a, [hl]
- and a
- ret z
- sub $10
- ld [hl], a
- ld hl, $c
- add hl, bc
- ld a, [hl]
- sub $9
- ld [hl], a
- ret
-
-.pressed_down
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $40
- ret z
- add $10
- ld [hl], a
- ld hl, $c
- add hl, bc
- ld a, [hl]
- add $9
- ld [hl], a
- ret
-; e2221 (38:6221)
-
-LZ_e2221: ; e2221
-INCBIN "gfx/unknown/0e2221.2bpp.lz"
-
-Functione2391: ; e2391 (38:6391)
- ld hl, Options
- ld a, [hl]
- push af
- set 4, [hl]
- ld a, [VramState]
- push af
- xor a
- ld [VramState], a
- ld a, [hInMenu]
- push af
- ld a, $1
- ld [hInMenu], a
- xor a
- ld [hMapAnims], a
- call Functione2963
- xor a
- ld [wcb2e], a
- call DelayFrame
-.asm_e23b4
- call JoyTextDelay
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .asm_e23c6
- call Functione23d5
- call DelayFrame
- jr .asm_e23b4
-.asm_e23c6
- call ClearSprites
- pop af
- ld [hInMenu], a
- pop af
- ld [VramState], a
- pop af
- ld [Options], a
- ret
-
-Functione23d5: ; e23d5 (38:63d5)
- ld a, [wJumptableIndex]
- ld hl, Jumptable_e23df
- call Functione33df
- jp [hl]
-
-Jumptable_e23df: ; e23df (38:63df)
- dw Functione23e9
- dw Functione241a
- dw Functione245d
- dw Functione247d
- dw Functione2992
-
-
-Functione23e9: ; e23e9 (38:63e9)
- xor a
- ld [hBGMapMode], a
- call ClearSprites
- call Functione2d30
- call Functione2a8e
- ld de, PCString_ChooseaPKMN
- call Functione2a6e
- ld a, $5
- ld [wcb2d], a
- call Functione2c2c
- call PCMonInfo
- ld a, $ff
- ld [CurPartySpecies], a
- ld a, $17
- call Functione33d0
- call WaitBGMap
- call Functione2e01
- call Functione298d
- ret
-
-Functione241a: ; e241a (38:641a)
- ld hl, hJoyPressed ; $ffa7
- ld a, [hl]
- and B_BUTTON
- jr nz, .asm_e2457
- ld a, [hl]
- and A_BUTTON
- jr nz, .asm_e2443
- call Functione29b5
- and a
- ret z
- call Functione2e01
- xor a
- ld [hBGMapMode], a
- call Functione2c2c
- call PCMonInfo
- ld a, $1
- ld [hBGMapMode], a
- call DelayFrame
- call DelayFrame
- ret
-.asm_e2443
- call Functione2def
- and a
- ret z
- cp $ff
- jr z, .asm_e2457
- ld a, $2
- ld [wJumptableIndex], a
- ret
-; e2452 (38:6452)
-
-.asm_e2452
- ld hl, wJumptableIndex
- dec [hl]
- ret
-
-.asm_e2457
- ld a, $4
- ld [wJumptableIndex], a
- ret
-
-Functione245d: ; e245d (38:645d)
- xor a
- ld [hBGMapMode], a
- call ClearSprites
- call Functione2def
- ld [CurPartySpecies], a
- ld a, $17
- call Functione33d0
- ld de, PCString_WhatsUp
- call Functione2a6e
- ld a, $1
- ld [MenuSelection2], a
- call Functione298d
- ret
-
-Functione247d: ; e247d (38:647d)
- ld hl, BillsPCDepositMenuDataHeader
- call CopyMenuDataHeader
- ld a, [MenuSelection2]
- call Function1d4b
- call InterpretMenu2
- jp c, BillsPCDepositFuncCancel
- ld a, [MenuSelection2]
- dec a
- and $3
- ld e, a
- ld d, 0
- ld hl, BillsPCDepositJumptable
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-
-BillsPCDepositJumptable: ; e24a1 (38:64a1)
- dw BillsPCDepositFuncDeposit ; Deposit Pokemon
- dw BillsPCDepositFuncStats ; Pokemon Stats
- dw BillsPCDepositFuncRelease ; Release Pokemon
- dw BillsPCDepositFuncCancel ; Cancel
-
-
-BillsPCDepositFuncDeposit: ; e24a9 (38:64a9)
- call Functione2f18
- jp c, BillsPCDepositFuncCancel
- call Functione307c
- jr c, .no_overflow_31
- ld a, $0
- ld [wJumptableIndex], a
- xor a
- ld [wcb2b], a
- ld [wcb2a], a
- ret
-.no_overflow_31
- ld de, PCString_WhatsUp
- call Functione2a6e
- ret
-
-BillsPCDepositFuncStats: ; e24c8 (38:64c8)
- call LoadStandardMenuDataHeader
- call Functione2f7e
- call ExitMenu
- call PCMonInfo
- call Functione2def
- ld [CurPartySpecies], a
- ld a, $17
- call Functione33d0
- ret
-
-BillsPCDepositFuncRelease: ; e24e0 (38:64e0)
- call Functione2f18
- jr c, BillsPCDepositFuncCancel
- call Functione2f5f
- jr c, BillsPCDepositFuncCancel
- ld a, [MenuSelection2]
- push af
- ld de, PCString_ReleasePKMN
- call Functione2a6e
- call LoadStandardMenuDataHeader
- lb bc, 14, 11
- call PlaceYesNoBox
- ld a, [MenuSelection2]
- dec a
- call ExitMenu
- and a
- jr nz, .asm_e252c
- ld a, [wcb2b]
- ld hl, wcb2a
- add [hl]
- ld [CurPartyMon], a
- xor a
- ld [wPokemonWithdrawDepositParameter], a
- callba Functione039
- call Functione3180
- ld a, $0
- ld [wJumptableIndex], a
- xor a
- ld [wcb2b], a
- ld [wcb2a], a
- pop af
- ret
-.asm_e252c
- ld de, PCString_WhatsUp
- call Functione2a6e
- pop af
- ld [MenuSelection2], a
- ret
-
-BillsPCDepositFuncCancel: ; e2537 (38:6537)
- ld a, $0
- ld [wJumptableIndex], a
- ret
-; e253d (38:653d)
-
-BillsPCDepositMenuDataHeader: ; 0xe253d (38:653d)
- db $40 ; flags
- db 04, 09 ; start coords
- db 13, 19 ; end coords
- dw BillsPCDepositMenuData
- db 1 ; default option
-; 0xe2545
-
-BillsPCDepositMenuData: ; 0xe2545 (38:6545)
- db $80 ; flags
- db 4 ; items
- db "DEPOSIT@"
- db "STATS@"
- db "RELEASE@"
- db "CANCEL@"
-; 0xe2564 (38:6564)
-
-Functione2564: ; e2564
- hlcoord 0, 0
- ld b, $4
- ld c, $8
- call ClearBox
- hlcoord 0, 4
- ld b, $a
- ld c, $9
- call ClearBox
- hlcoord 0, 14
- ld b, $2
- ld c, $8
- call ClearBox
- ret
-; e2583
-
-Functione2583: ; e2583 (38:6583)
- ld hl, Options
- ld a, [hl]
- push af
- set 4, [hl]
- ld a, [VramState]
- push af
- xor a
- ld [VramState], a
- ld a, [hInMenu]
- push af
- ld a, $1
- ld [hInMenu], a
- xor a
- ld [hMapAnims], a
- call Functione2963
- ld a, $f
- ld [wcb2e], a
- call DelayFrame
-.asm_e25a7
- call JoyTextDelay
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .no_overflow_49
- call Functione25c8
- call DelayFrame
- jr .asm_e25a7
-.no_overflow_49
- call ClearSprites
- pop af
- ld [hInMenu], a
- pop af
- ld [VramState], a
- pop af
- ld [Options], a
- ret
-
-Functione25c8: ; e25c8 (38:65c8)
- ld a, [wJumptableIndex]
- ld hl, .jumptable
- call Functione33df
- jp [hl]
-
-.jumptable: ; e25d2 (38:65d2)
- dw Functione25dc
- dw Functione2612
- dw Functione2655
- dw BillsPC_Withdraw
- dw Functione2992
-
-
-Functione25dc: ; e25dc (38:65dc)
- ld a, $f
- ld [wcb2e], a
- xor a
- ld [hBGMapMode], a
- call ClearSprites
- call Functione2d30
- call Functione2a8e
- ld de, PCString_ChooseaPKMN
- call Functione2a6e
- ld a, $5
- ld [wcb2d], a
- call Functione2c2c
- call PCMonInfo
- ld a, $ff
- ld [CurPartySpecies], a
- ld a, $17
- call Functione33d0
- call WaitBGMap
- call Functione2e01
- call Functione298d
- ret
-
-Functione2612: ; e2612 (38:6612)
- ld hl, hJoyPressed ; $ffa7
- ld a, [hl]
- and B_BUTTON
- jr nz, .asm_e264f
- ld a, [hl]
- and A_BUTTON
- jr nz, .asm_e263b
- call Functione29b5
- and a
- ret z
- call Functione2e01
- xor a
- ld [hBGMapMode], a
- call Functione2c2c
- call PCMonInfo
- ld a, $1
- ld [hBGMapMode], a
- call DelayFrame
- call DelayFrame
- ret
-.asm_e263b
- call Functione2def
- and a
- ret z
- cp $ff
- jr z, .asm_e264f
- ld a, $2
- ld [wJumptableIndex], a
- ret
-; e264a (38:664a)
-
-.asm_e264a
- ld hl, wJumptableIndex
- dec [hl]
- ret
-
-.asm_e264f
- ld a, $4
- ld [wJumptableIndex], a
- ret
-; e2655
-
-Functione2655: ; e2655 (38:6655)
- xor a
- ld [hBGMapMode], a
- call ClearSprites
- call Functione2def
- ld [CurPartySpecies], a
- ld a, $17
- call Functione33d0
- ld de, PCString_WhatsUp
- call Functione2a6e
- ld a, $1
- ld [MenuSelection2], a
- call Functione298d
- ret
-
-BillsPC_Withdraw: ; e2675 (38:6675)
- ld hl, .MenuDataHeader
- call CopyMenuDataHeader
- ld a, [MenuSelection2]
- call Function1d4b
- call InterpretMenu2
- jp c, .cancel
- ld a, [MenuSelection2]
- dec a
- and 3
- ld e, a
- ld d, 0
- ld hl, .jumptable
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-
-.jumptable: ; e2699 (38:6699) #mark
- dw .withdraw ; Withdraw
- dw .stats ; Stats
- dw .release ; Release
- dw .cancel ; Cancel
-
-
-.withdraw: ; e26a1 (38:66a1)
- call Functione2f18
- jp c, .cancel
- call TryWithdrawPokemon
- jr c, .FailedWithdraw
- ld a, $0
- ld [wJumptableIndex], a
- xor a
- ld [wcb2b], a
- ld [wcb2a], a
- ret
-.FailedWithdraw
- ld de, PCString_WhatsUp
- call Functione2a6e
- ret
-
-.stats: ; e26c0 (38:66c0)
- call LoadStandardMenuDataHeader
- call Functione2f7e
- call ExitMenu
- call PCMonInfo
- call Functione2def
- ld [CurPartySpecies], a
- ld a, $17
- call Functione33d0
- ret
-
-.release: ; e26d8 (38:66d8)
- ld a, [MenuSelection2]
- push af
- call Functione2f5f
- jr c, .FailedRelease
- ld de, PCString_ReleasePKMN
- call Functione2a6e
- call LoadStandardMenuDataHeader
- lb bc, 14, 11
- call PlaceYesNoBox
- ld a, [MenuSelection2]
- dec a
- call ExitMenu
- and a
- jr nz, .FailedRelease
- ld a, [wcb2b]
- ld hl, wcb2a
- add [hl]
- ld [CurPartyMon], a
- ld a, PC_DEPOSIT
- ld [wPokemonWithdrawDepositParameter], a
- callba Functione039
- call Functione3180
- ld a, $0
- ld [wJumptableIndex], a
- xor a
- ld [wcb2b], a
- ld [wcb2a], a
- pop af
- ret
-.FailedRelease
- ld de, PCString_WhatsUp
- call Functione2a6e
- pop af
- ld [MenuSelection2], a
- ret
-
-.cancel: ; e272b (38:672b)
- ld a, $0
- ld [wJumptableIndex], a
- ret
-; e2731 (38:6731)
-
-.MenuDataHeader: ; 0xe2731
- db $40 ; flags
- db 04, 09 ; start coords
- db 13, 19 ; end coords
- dw .MenuData
- db 1 ; default option
-; 0xe2739
-
-.MenuData: ; 0xe2739
- db $80 ; flags
- db 4 ; items
- db "WITHDRAW@"
- db "STATS@"
- db "RELEASE@"
- db "CANCEL@"
-; 0xe2759
-
-Functione2759: ; e2759
- ld hl, Options
- ld a, [hl]
- push af
- set 4, [hl]
- ld a, [VramState]
- push af
- xor a
- ld [VramState], a
- ld a, [hInMenu]
- push af
- ld a, $1
- ld [hInMenu], a
- xor a
- ld [hMapAnims], a
- call Functione2963
- ld a, [wCurBox]
- and $f
- inc a
- ld [wcb2e], a
- call DelayFrame
-.asm_e2781
- call JoyTextDelay
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .asm_e2793
- call Functione27a2
- call DelayFrame
- jr .asm_e2781
-
-.asm_e2793
- call ClearSprites
- pop af
- ld [hInMenu], a
- pop af
- ld [VramState], a
- pop af
- ld [Options], a
- ret
-; e27a2
-
-Functione27a2: ; e27a2
- ld a, [wJumptableIndex]
- ld hl, Jumptable_e27ac
- call Functione33df
- jp [hl]
-; e27ac
-
-Jumptable_e27ac: ; e27ac
- dw Functione27ba
- dw Functione27eb
- dw Functione283d
- dw Functione285d
- dw Functione28df
- dw Functione2903
- dw Functione2992
-; e27ba
-
-Functione27ba: ; e27ba
- xor a
- ld [hBGMapMode], a
- call ClearSprites
- call Functione2d30
- ld de, PCString_ChooseaPKMN
- call Functione2a6e
- ld a, $5
- ld [wcb2d], a
- call Functione2c2c
- call Functione2a80
- call PCMonInfo
- ld a, $ff
- ld [CurPartySpecies], a
- ld a, $17
- call Functione33d0
- call WaitBGMap
- call Functione2e01
- call Functione298d
- ret
-; e27eb
-
-Functione27eb: ; e27eb
- ld hl, hJoyPressed
- ld a, [hl]
- and B_BUTTON
- jr nz, .asm_e2837
- ld a, [hl]
- and A_BUTTON
- jr nz, .asm_e2823
- call Functione29d0
- jr c, .asm_e2816
- and a
- ret z
- call Functione2e01
- xor a
- ld [hBGMapMode], a
- call Functione2c2c
- call PCMonInfo
- ld a, $1
- ld [hBGMapMode], a
- call DelayFrame
- call DelayFrame
- ret
-
-.asm_e2816
- xor a
- ld [wcb2b], a
- ld [wcb2a], a
- ld a, $0
- ld [wJumptableIndex], a
- ret
-
-.asm_e2823
- call Functione2def
- and a
- ret z
- cp $ff
- jr z, .asm_e2837
- ld a, $2
- ld [wJumptableIndex], a
- ret
-
- ld hl, wJumptableIndex
- dec [hl]
- ret
-
-.asm_e2837
- ld a, $6
- ld [wJumptableIndex], a
- ret
-; e283d
-
-Functione283d: ; e283d
- xor a
- ld [hBGMapMode], a
- call ClearSprites
- call Functione2def
- ld [CurPartySpecies], a
- ld a, $17
- call Functione33d0
- ld de, PCString_WhatsUp
- call Functione2a6e
- ld a, $1
- ld [MenuSelection2], a
- call Functione298d
- ret
-; e285d
-
-Functione285d: ; e285d
- ld hl, MenuDataHeader_0xe28c3
- call CopyMenuDataHeader
- ld a, [MenuSelection2]
- call Function1d4b
- call InterpretMenu2
- jp c, Functione28bd
- ld a, [MenuSelection2]
- dec a
- and 3
- ld e, a
- ld d, 0
- ld hl, Jumptable_e2881
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; e2881
-
-Jumptable_e2881: ; e2881
- dw Functione2887
- dw Functione28a5
- dw Functione28bd
-; e2887
-
-Functione2887: ; e2887
- call Functione2f18
- jp c, Functione28bd
- ld a, [wcb2a]
- ld [wcb2f], a
- ld a, [wcb2b]
- ld [wcb30], a
- ld a, [wcb2e]
- ld [wcb31], a
- ld a, $4
- ld [wJumptableIndex], a
- ret
-; e28a5
-
-Functione28a5: ; e28a5
- call LoadStandardMenuDataHeader
- call Functione2f7e
- call ExitMenu
- call PCMonInfo
- call Functione2def
- ld [CurPartySpecies], a
- ld a, $17
- call Functione33d0
- ret
-; e28bd
-
-Functione28bd: ; e28bd
- ld a, $0
- ld [wJumptableIndex], a
- ret
-; e28c3
-
-MenuDataHeader_0xe28c3: ; 0xe28c3
- db $40 ; flags
- db 04, 09 ; start coords
- db 13, 19 ; end coords
- dw MenuData2_0xe28cb
- db 1 ; default option
-; 0xe28cb
-
-MenuData2_0xe28cb: ; 0xe28cb
- db $80 ; flags
- db 3 ; items
- db "MOVE@"
- db "STATS@"
- db "CANCEL@"
-; 0xe28df
-
-Functione28df: ; e28df
- xor a
- ld [hBGMapMode], a
- call Functione2d30
- ld de, PCString_MoveToWhere
- call Functione2a6e
- ld a, $5
- ld [wcb2d], a
- call Functione2c2c
- call Functione2a80
- call ClearSprites
- call Functione2e8c
- call WaitBGMap
- call Functione298d
- ret
-; e2903
-
-Functione2903: ; e2903
- ld hl, hJoyPressed
- ld a, [hl]
- and B_BUTTON
- jr nz, .asm_e294b
- ld a, [hl]
- and A_BUTTON
- jr nz, .asm_e2938
- call Functione29f4
- jr c, .asm_e292b
- and a
- ret z
- call Functione2e8c
- xor a
- ld [hBGMapMode], a
- call Functione2c2c
- ld a, $1
- ld [hBGMapMode], a
- call DelayFrame
- call DelayFrame
- ret
-
-.asm_e292b
- xor a
- ld [wcb2b], a
- ld [wcb2a], a
- ld a, $4
- ld [wJumptableIndex], a
- ret
-
-.asm_e2938
- call Functione2ee5
- jr c, .asm_e2946
- call Functione31e7
- ld a, $0
- ld [wJumptableIndex], a
- ret
-
-.asm_e2946
- ld hl, wJumptableIndex
- dec [hl]
- ret
-
-.asm_e294b
- ld a, [wcb2f]
- ld [wcb2a], a
- ld a, [wcb30]
- ld [wcb2b], a
- ld a, [wcb31]
- ld [wcb2e], a
- ld a, $0
- ld [wJumptableIndex], a
- ret
-; e2963
-
-Functione2963: ; e2963 (38:6963)
- call WhiteBGMap
- call ClearSprites
- call ClearTileMap
- call Functione33e8
- ld hl, OverworldMap
- ld bc, $338
- xor a
- call ByteFill
- xor a
- ld [wJumptableIndex], a
- ld [wcf64], a
- ld [wcf65], a
- ld [wcf66], a
- ld [wcb2b], a
- ld [wcb2a], a
- ret
-
-Functione298d: ; e298d (38:698d)
- ld hl, wJumptableIndex
- inc [hl]
- ret
-
-Functione2992: ; e2992 (38:6992)
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-
-Functione2998: ; e2998 (38:6998)
- ld a, [wcb2d]
- ld d, a
- ld a, [wcb2c]
- and a
- jr z, .asm_e29b2
- dec a
- cp $1
- jr z, .asm_e29b2
- ld e, a
- ld a, [hl]
- and D_UP
- jr nz, Functione2a18
- ld a, [hl]
- and D_DOWN
- jr nz, Functione2a2c
-.asm_e29b2
- jp Functione2a65
-
-Functione29b5: ; e29b5 (38:69b5)
- ld hl, hJoyLast
- ld a, [wcb2d]
- ld d, a
- ld a, [wcb2c]
- ld e, a
- and a
- jr z, .asm_e29cd
- ld a, [hl]
- and D_UP
- jr nz, Functione2a18
- ld a, [hl]
- and D_DOWN
- jr nz, Functione2a2c
-.asm_e29cd
- jp Functione2a65
-; e29d0 (38:69d0)
-
-Functione29d0: ; e29d0
- ld hl, hJoyLast
- ld a, [wcb2d]
- ld d, a
- ld a, [wcb2c]
- ld e, a
- and a
- jr z, .asm_e29e8
- ld a, [hl]
- and D_UP
- jr nz, Functione2a18
- ld a, [hl]
- and D_DOWN
- jr nz, Functione2a2c
-
-.asm_e29e8
- ld a, [hl]
- and D_LEFT
- jr nz, Functione2a48
- ld a, [hl]
- and D_RIGHT
- jr nz, Functione2a56
- jr Functione2a65
-
-Functione29f4: ; e29f4
- ld hl, hJoyLast
- ld a, [wcb2d]
- ld d, a
- ld a, [wcb2c]
- ld e, a
- and a
- jr z, .asm_e2a0c
-
- ld a, [hl]
- and D_UP
- jr nz, Functione2a18
- ld a, [hl]
- and D_DOWN
- jr nz, Functione2a2c
-
-.asm_e2a0c
- ld a, [hl]
- and D_LEFT
- jr nz, Functione2a48
- ld a, [hl]
- and D_RIGHT
- jr nz, Functione2a56
- jr Functione2a65
-
-Functione2a18: ; e2a18 (38:6a18)
- ld hl, wcb2b
- ld a, [hl]
- and a
- jr z, .asm_e2a22
- dec [hl]
- jr Functione2a68
-
-.asm_e2a22
- ld hl, wcb2a
- ld a, [hl]
- and a
- jr z, Functione2a65
- dec [hl]
- jr Functione2a68
-
-Functione2a2c: ; e2a2c (38:6a2c)
- ld a, [wcb2b]
- ld hl, wcb2a
- add [hl]
- inc a
- cp e
- jr nc, Functione2a65
-
- ld hl, wcb2b
- ld a, [hl]
- inc a
- cp d
- jr nc, .asm_e2a42
- inc [hl]
- jr Functione2a68
-
-.asm_e2a42
- ld hl, wcb2a
- inc [hl]
- jr Functione2a68
-; e2a48 (38:6a48)
-
-Functione2a48: ; e2a48
- ld hl, wcb2e
- ld a, [hl]
- and a
- jr z, .asm_e2a52
- dec [hl]
- jr Functione2a6c
-
-.asm_e2a52
- ld [hl], $e
- jr Functione2a6c
-
-Functione2a56: ; e2a56
- ld hl, wcb2e
- ld a, [hl]
- cp $e
- jr z, .asm_e2a61
- inc [hl]
- jr Functione2a6c
-
-.asm_e2a61
- ld [hl], $0
- jr Functione2a6c
-
-Functione2a65: ; e2a65 (38:6a65)
- xor a
- and a
- ret
-
-Functione2a68: ; e2a68 (38:6a68)
- ld a, $1
- and a
- ret
-; e2a6c (38:6a6c)
-
-Functione2a6c: ; e2a6c
- scf
- ret
-; e2a6e
-
-Functione2a6e: ; e2a6e (38:6a6e)
- push de
- hlcoord 0, 15
- lb bc, 1, 18
- call TextBox
- pop de
- hlcoord 1, 16
- call PlaceString
- ret
-; e2a80 (38:6a80)
-
-Functione2a80: ; e2a80
- call Functione2a8e
- hlcoord 8, 1
- ld [hl], $5f
- hlcoord 19, 1
- ld [hl], $5e
- ret
-; e2a8e
-
-Functione2a8e: ; e2a8e (38:6a8e)
- hlcoord 8, 0
- lb bc, 1, 10
- call TextBox
-
- ld a, [wcb2e]
- and a
- jr z, .party
-
- cp NUM_BOXES + 1
- jr nz, .gotbox
-
- ld a, [wCurBox]
- inc a
-.gotbox
- dec a
- ld hl, wBoxNames
- ld bc, BOX_NAME_LENGTH
- call AddNTimes
- ld e, l
- ld d, h
- jr .print
-
-.party
- ld de, String_e2abd
-.print
- hlcoord 10, 1
- call PlaceString
- ret
-; e2abd (38:6abd)
-
-String_e2abd:
- db "PARTY <PK><MN>@"
-; e2ac6
-
-PCMonInfo: ; e2ac6 (38:6ac6)
-; Display a monster's pic and
-; attributes when highlighting
-; it in a PC menu.
-
-; Includes the neat cascading
-; effect when showing the pic.
-
-; Example: Species, level, gender,
-; whether it's holding an item.
-
- hlcoord 0, 0
- lb bc, 15, 8
- call ClearBox
-
- hlcoord 8, 14
- lb bc, 1, 3
- call ClearBox
-
- call Functione2def
- and a
- ret z
- cp $ff
- ret z
-
- ld [wd265], a
- hlcoord 1, 4
- xor a
- ld b, 7
-.asm_e2ae9
- ld c, 7
- push af
- push hl
-.asm_e2aed
- ld [hli], a
- add 7
- dec c
- jr nz, .asm_e2aed
- pop hl
- ld de, 20
- add hl, de
- pop af
- inc a
- dec b
- jr nz, .asm_e2ae9
-
- call Functione2b6d
- ld a, [wd265]
- ld [CurPartySpecies], a
- ld [CurSpecies], a
- ld hl, TempMonDVs
- predef GetUnownLetter
- call GetBaseData
- ld de, VTiles2 tile $00
- predef GetFrontpic
- xor a
- ld [wcb32], a
- ld a, [CurPartySpecies]
- ld [wd265], a
-
- cp EGG
- ret z
-
- call GetBasePokemonName
- hlcoord 1, 14
- call PlaceString
-
- hlcoord 1, 12
- call PrintLevel
-
- ld a, $3
- ld [MonType], a
- callba GetGender
- jr c, .asm_e2b4f
- ld a, "♂"
- jr nz, .printgender
- ld a, "♀"
-.printgender
- hlcoord 5, 12
- ld [hl], a
-.asm_e2b4f
-
- ld a, [TempMonItem]
- and a
- ret z
-
- ld d, a
- callab ItemIsMail
- jr c, .mail
- ld a, $5d ; item icon
- jr .printitem
-.mail
- ld a, $1
- ld [wcb32], a
- ld a, $5c ; mail icon
-.printitem
- hlcoord 7, 12
- ld [hl], a
- ret
-
-Functione2b6d: ; e2b6d (38:6b6d)
- ld a, [wcb2b]
- ld hl, wcb2a
- add [hl]
- ld e, a
- ld d, $0
- ld hl, wc801
-rept 3
- add hl, de
-endr
- ld a, [hl]
- and a
- jr z, .asm_e2bc6
- cp $f
- jr z, .asm_e2bf5
- ld b, a
- call Functione3396
- ld a, b
- call GetSRAMBank
- push hl
- ld bc, $35
- add hl, bc
- ld bc, $20
- ld a, e
- call AddNTimes
- ld a, [hl]
- ld [TempMonLevel], a
- pop hl
- push hl
- ld bc, $17
- add hl, bc
- ld bc, $20
- ld a, e
- call AddNTimes
- ld a, [hl]
- ld [TempMonItem], a
- pop hl
- ld bc, $2b
- add hl, bc
- ld bc, $20
- ld a, e
- call AddNTimes
- ld de, TempMonDVs
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hl]
- ld [de], a
- call CloseSRAM
- ret
-.asm_e2bc6
- ld hl, PartyMon1Level
- ld bc, $30
- ld a, e
- call AddNTimes
- ld a, [hl]
- ld [TempMonLevel], a
- ld hl, PartyMon1Item
- ld bc, $30
- ld a, e
- call AddNTimes
- ld a, [hl]
- ld [TempMonItem], a
- ld hl, PartyMon1DVs
- ld bc, $30
- ld a, e
- call AddNTimes
- ld de, TempMonDVs
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hl]
- ld [de], a
- ret
-
-.asm_e2bf5
- ld a, BANK(sBox)
- call GetSRAMBank
- ld hl, sBoxMon1Level
- ld bc, $20
- ld a, e
- call AddNTimes
- ld a, [hl]
- ld [TempMonLevel], a
-
- ld hl, sBoxMon1Item
- ld bc, $20
- ld a, e
- call AddNTimes
- ld a, [hl]
- ld [TempMonItem], a
-
- ld hl, sBoxMon1DVs
- ld bc, $20
- ld a, e
- call AddNTimes
- ld de, TempMonDVs
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hl]
- ld [de], a
-
- call CloseSRAM
- ret
-
-Functione2c2c: ; e2c2c (38:6c2c)
- hlcoord 8, 2
- lb bc, 10, 10
- call TextBox
-
- hlcoord 8, 2
- ld [hl], "└"
- hlcoord 19, 2
- ld [hl], "┘"
-
- ld a, [wcb2a]
- ld e, a
- ld d, 0
- ld hl, OverworldMap
-rept 3
- add hl, de
-endr
- ld e, l
- ld d, h
- hlcoord 9, 4
- ld a, [wcb2d]
-.asm_e2c53
- push af
- push de
- push hl
- call Functione2c6e
- pop hl
- ld de, $28
- add hl, de
- pop de
-rept 3
- inc de
-endr
- pop af
- dec a
- jr nz, .asm_e2c53
- ret
-; e2c67 (38:6c67)
-
-String_e2c67:
- db "CANCEL@"
-; e2c6e
-
-Functione2c6e: ; e2c6e (38:6c6e)
- ld a, [de]
- and a
- ret z
- cp $ff
- jr nz, .asm_e2c7c
- ld de, String_e2c67
- call PlaceString
- ret
-.asm_e2c7c
- inc de
- ld a, [de]
- ld b, a
- inc de
- ld a, [de]
- ld e, a
- ld a, b
- and a
- jr z, .asm_e2cc8
- cp $f
- jr z, .asm_e2cf1
- push hl
- call Functione3396
- ld a, b
- call GetSRAMBank
- push hl
- ld bc, $16
- add hl, bc
- ld bc, $20
- ld a, e
- call AddNTimes
- ld a, [hl]
- pop hl
- and a
- jr z, .asm_e2cc2
- ld bc, $372
- add hl, bc
- ld bc, $b
- ld a, e
- call AddNTimes
- ld de, StringBuffer1
- ld bc, $b
- call CopyBytes
- call CloseSRAM
- pop hl
- ld de, StringBuffer1
- call PlaceString
- ret
-.asm_e2cc2
- call CloseSRAM
- pop hl
- jr .asm_e2d23
-.asm_e2cc8
- push hl
- ld hl, PartySpecies
- ld d, $0
- add hl, de
- ld a, [hl]
- and a
- jr z, .asm_e2cee
- ld hl, PartyMonNicknames
- ld bc, $b
- ld a, e
- call AddNTimes
- ld de, StringBuffer1
- ld bc, $b
- call CopyBytes
- pop hl
- ld de, StringBuffer1
- call PlaceString
- ret
-.asm_e2cee
- pop hl
- jr .asm_e2d23
-.asm_e2cf1
- push hl
- ld a, BANK(sBox)
- call GetSRAMBank
- ld hl, sBoxSpecies
- ld d, $0
- add hl, de
- ld a, [hl]
- and a
- jr z, .asm_e2d1f
- ld hl, sBoxMonNicknames
- ld bc, PKMN_NAME_LENGTH
- ld a, e
- call AddNTimes
- ld de, StringBuffer1
- ld bc, PKMN_NAME_LENGTH
- call CopyBytes
- call CloseSRAM
- pop hl
- ld de, StringBuffer1
- call PlaceString
- ret
-.asm_e2d1f
- call CloseSRAM
- pop hl
-.asm_e2d23
- ld de, String_e2d2a
- call PlaceString
- ret
-; e2d2a (38:6d2a)
-
-String_e2d2a:
- db "-----@"
-; e2d30
-
-Functione2d30: ; e2d30 (38:6d30)
- xor a
- ld hl, OverworldMap
- ld bc, $5a
- call ByteFill
- ld de, OverworldMap
- xor a
- ld [wd003], a
- ld [wd004], a
- ld a, [wcb2e]
- and a
- jr z, .asm_e2d87
- cp $f
- jr z, .asm_e2db7
- ld b, a
- call Functione3396
- ld a, b
- call GetSRAMBank
- inc hl
-.asm_e2d57
- ld a, [hl]
- cp $ff
- jr z, .asm_e2d79
- and a
- jr z, .asm_e2d79
- ld [de], a
- inc de
- ld a, [wcb2e]
- ld [de], a
- inc de
- ld a, [wd003]
- ld [de], a
- inc a
- ld [wd003], a
- inc de
- inc hl
- ld a, [wd004]
- inc a
- ld [wd004], a
- jr .asm_e2d57
-.asm_e2d79
- call CloseSRAM
- ld a, $ff
- ld [de], a
- ld a, [wd004]
- inc a
- ld [wcb2c], a
- ret
-.asm_e2d87
- ld hl, PartySpecies
-.asm_e2d8a
- ld a, [hl]
- cp $ff
- jr z, .asm_e2dac
- and a
- jr z, .asm_e2dac
- ld [de], a
- inc de
- ld a, [wcb2e]
- ld [de], a
- inc de
- ld a, [wd003]
- ld [de], a
- inc a
- ld [wd003], a
- inc de
- inc hl
- ld a, [wd004]
- inc a
- ld [wd004], a
- jr .asm_e2d8a
-.asm_e2dac
- ld a, $ff
- ld [de], a
- ld a, [wd004]
- inc a
- ld [wcb2c], a
- ret
-.asm_e2db7
- ld a, BANK(sBox)
- call GetSRAMBank
- ld hl, sBoxSpecies
-.asm_e2dbf
- ld a, [hl]
- cp $ff
- jr z, .asm_e2de1
- and a
- jr z, .asm_e2de1
- ld [de], a
- inc de
- ld a, [wcb2e]
- ld [de], a
- inc de
- ld a, [wd003]
- ld [de], a
- inc a
- ld [wd003], a
- inc de
- inc hl
- ld a, [wd004]
- inc a
- ld [wd004], a
- jr .asm_e2dbf
-.asm_e2de1
- call CloseSRAM
- ld a, $ff
- ld [de], a
- ld a, [wd004]
- inc a
- ld [wcb2c], a
- ret
-
-Functione2def: ; e2def (38:6def)
- ld a, [wcb2b]
- ld hl, wcb2a
- add [hl]
- ld e, a
- ld d, $0
- ld hl, OverworldMap
-rept 3
- add hl, de
-endr
- ld a, [hl]
- ret
-
-Functione2e01: ; e2e01 (38:6e01)
- ld a, [wcb2c]
- and a
- jr nz, .asm_e2e0b
- call ClearSprites
- ret
-.asm_e2e0b
- ld hl, Unknown_e2e2b
- ld de, Sprites
-.done1
- ld a, [hl]
- cp $ff
- ret z
- ld a, [wcb2b]
- and $7
- swap a
- add [hl]
- inc hl
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- jr .done1
-; e2e2b (38:6e2b)
-
-Unknown_e2e2b: ; e2e2b
- db $26, $50, $00, $00
- db $26, $58, $00, $00
- db $26, $60, $00, $00
- db $26, $68, $00, $00
- db $26, $70, $00, $00
- db $26, $78, $00, $00
- db $26, $80, $00, $00
- db $26, $88, $00, $00
- db $26, $90, $00, $00
- db $26, $97, $00, $00
- db $39, $50, $00, $40
- db $39, $58, $00, $40
- db $39, $60, $00, $40
- db $39, $68, $00, $40
- db $39, $70, $00, $40
- db $39, $78, $00, $40
- db $39, $80, $00, $40
- db $39, $88, $00, $40
- db $39, $90, $00, $40
- db $39, $97, $00, $40
- db $2e, $4e, $01, $00
- db $31, $4e, $01, $40
- db $2e, $99, $01, $20
- db $31, $99, $01, $60
- db $ff
-; e2e8c
-
-Functione2e8c: ; e2e8c
- ld hl, Unknown_e2eac
- ld de, Sprites
-.asm_e2e92
- ld a, [hl]
- cp $ff
- ret z
- ld a, [wcb2b]
- and $7
- swap a
- add [hl]
- inc hl
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- jr .asm_e2e92
-; e2eac
-
-Unknown_e2eac: ; e2eac
- db $27, $50, $06, $00
- db $2b, $58, $00, $40
- db $2b, $60, $00, $40
- db $2b, $68, $00, $40
- db $2b, $70, $00, $40
- db $2b, $78, $00, $40
- db $2b, $80, $00, $40
- db $2b, $88, $00, $40
- db $2b, $90, $00, $40
- db $27, $98, $07, $00
- db $ff
-; e2ed5
-
-Functione2ed5: ; e2ed5
-.asm_e2ed5
- push bc
- push hl
-.asm_e2ed7
- ld [hli], a
- dec c
- jr nz, .asm_e2ed7
- pop hl
- ld bc, SCREEN_WIDTH
- add hl, bc
- pop bc
- dec b
- jr nz, .asm_e2ed5
- ret
-; e2ee5
-
-Functione2ee5: ; e2ee5
- ld hl, wcb2e
- ld a, [wcb31]
- cp [hl]
- jr z, .asm_e2f00
- ld a, [wcb2e]
- and a
- jr z, .asm_e2ef8
- ld e, $15
- jr .asm_e2efa
-
-.asm_e2ef8
- ld e, $7
-
-.asm_e2efa
- ld a, [wcb2c]
- cp e
- jr nc, .asm_e2f02
-
-.asm_e2f00
- and a
- ret
-
-.asm_e2f02
- ld de, PCString_TheresNoRoom
- call Functione2a6e
- ld de, SFX_WRONG
- call WaitPlaySFX
- call WaitSFX
- ld c, 50
- call DelayFrames
- scf
- ret
-; e2f18
-
-Functione2f18: ; e2f18 (38:6f18)
- ld a, [wcb2e]
- and a
- jr nz, .Okay
- ld a, [wcb2c]
- cp $3
- jr c, .ItsYourLastPokemon
- ld a, [wcb2b]
- ld hl, wcb2a
- add [hl]
- ld [CurPartyMon], a
- callba CheckCurPartyMonFainted
- jr c, .AllOthersFainted
- ld a, [wcb32]
- and a
- jr nz, .HasMail
-.Okay
- and a
- ret
-.HasMail
- ld de, PCString_RemoveMail
- jr .NotOkay
-.AllOthersFainted
- ld de, PCString_NoMoreUsablePKMN
- jr .NotOkay
-.ItsYourLastPokemon
- ld de, PCString_ItsYourLastPKMN
-.NotOkay
- call Functione2a6e
- ld de, SFX_WRONG
- call WaitPlaySFX
- call WaitSFX
- ld c, 50
- call DelayFrames
- scf
- ret
-
-Functione2f5f: ; e2f5f (38:6f5f)
- ld a, [CurPartySpecies]
- cp EGG
- jr z, .asm_e2f68
- and a
- ret
-.asm_e2f68
- ld de, PCString_NoReleasingEGGS
- call Functione2a6e
- ld de, SFX_WRONG
- call WaitPlaySFX
- call WaitSFX
- ld c, 50
- call DelayFrames
- scf
- ret
-
-Functione2f7e: ; e2f7e (38:6f7e)
- call LowVolume
- call Functione2fd6
- ld a, $3
- ld [MonType], a
- predef StatsScreenInit
- call Functione33e8
- call MaxVolume
- ret
-
-Functione2f95: ; e2f95 (38:6f95)
- ld hl, hJoyPressed ; $ffa7
- ld a, [hl]
- and A_BUTTON | B_BUTTON | D_RIGHT + D_LEFT
- ld [wcf73], a
- jr nz, .asm_e2fd0
- ld a, [hl]
- and D_DOWN | D_UP
- ld [wcf73], a
- jr nz, .asm_e2faa
- jr .asm_e2fd0
-.asm_e2faa
- call Functione2998
- and a
- jr z, .asm_e2fd1
- call Functione2def
- ld [wd265], a
- call Functione2b6d
- ld a, [wd265]
- ld [CurPartySpecies], a
- ld [CurSpecies], a
- ld hl, TempMonDVs
- predef GetUnownLetter
- call GetBaseData
- call Functione2fd6
-.asm_e2fd0
- ret
-.asm_e2fd1
- xor a
- ld [wcf73], a
- ret
-
-Functione2fd6: ; e2fd6 (38:6fd6)
- ld a, [wcb2b]
- ld hl, wcb2a
- add [hl]
- ld [CurPartyMon], a
- ld a, [wcb2e]
- and a
- jr z, .asm_e3020
- cp $f
- jr nz, .asm_e3048
- ld a, BANK(sBox)
- call GetSRAMBank
- ld hl, sBoxSpecies
- call Functione3357
- ld hl, sBoxMonNicknames
- call Functione3363
- ld hl, sBoxMonOT
- call Functione3376
- ld hl, sBoxMons
- ld bc, BOXMON_STRUCT_LENGTH
- ld a, [CurPartyMon]
- call AddNTimes
- ld de, wd018
- ld bc, $30
- call CopyBytes
- call CloseSRAM
- callba Function5088b
- ret
-.asm_e3020
- ld hl, PartySpecies
- call Functione3357
- ld hl, PartyMonNicknames
- call Functione3363
- ld hl, PartyMonOT
- call Functione3376
- ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species)
- ld bc, $30
- ld a, [CurPartyMon]
- call AddNTimes
- ld de, wd018
- ld bc, $30
- call CopyBytes
- ret
-.asm_e3048
- ld b, a
- call Functione3396
- ld a, b
- call GetSRAMBank
- push hl
- inc hl
- call Functione3357
- pop hl
- push hl
- ld bc, $372
- add hl, bc
- call Functione3363
- pop hl
- push hl
- ld bc, $296
- add hl, bc
- call Functione3376
- pop hl
- ld bc, $16
- add hl, bc
- ld bc, $20
- call Functione3389
- call CloseSRAM
- callba Function5088b
- ret
-
-Functione307c: ; e307c (38:707c)
- ld a, [wcb2b]
- ld hl, wcb2a
- add [hl]
- ld [CurPartyMon], a
- ld hl, PartyMonNicknames
- ld a, [CurPartyMon]
- call GetNick
- ld a, PC_DEPOSIT
- ld [wPokemonWithdrawDepositParameter], a
- predef SentGetPkmnIntoFromBox
- jr c, .asm_boxisfull
- xor a
- ld [wPokemonWithdrawDepositParameter], a
- callba Functione039
- ld a, [CurPartySpecies]
- call PlayCry
- hlcoord 0, 0
- lb bc, 15, 8
- call ClearBox
- hlcoord 8, 14
- lb bc, 1, 3
- call ClearBox
- hlcoord 0, 15
- lb bc, 1, 18
- call TextBox
- call WaitBGMap
- hlcoord 1, 16
- ld de, PCString_Stored
- call PlaceString
- ld l, c
- ld h, b
- ld de, StringBuffer1
- call PlaceString
- ld a, "!"
- ld [bc], a
- ld c, 50
- call DelayFrames
- and a
- ret
-
-.asm_boxisfull
- ld de, PCString_BoxFull
- call Functione2a6e
- ld de, SFX_WRONG
- call WaitPlaySFX
- call WaitSFX
- ld c, 50
- call DelayFrames
- scf
- ret
-
-TryWithdrawPokemon: ; e30fa (38:70fa)
- ld a, [wcb2b]
- ld hl, wcb2a
- add [hl]
- ld [CurPartyMon], a
- ld a, BANK(sBoxMonNicknames)
- call GetSRAMBank
- ld a, [CurPartyMon]
- ld hl, sBoxMonNicknames
- call GetNick
- call CloseSRAM
- xor a
- ld [wPokemonWithdrawDepositParameter], a
- predef SentGetPkmnIntoFromBox
- jr c, .PartyFull
- ld a, PC_DEPOSIT
- ld [wPokemonWithdrawDepositParameter], a
- callba Functione039
- ld a, [CurPartySpecies]
- call PlayCry
- hlcoord 0, 0
- lb bc, 15, 8
- call ClearBox
- hlcoord 8, 14
- lb bc, 1, 3
- call ClearBox
- hlcoord 0, 15
- lb bc, 1, 18
- call TextBox
- call WaitBGMap
- hlcoord 1, 16
- ld de, PCString_Got
- call PlaceString
- ld l, c
- ld h, b
- ld de, StringBuffer1
- call PlaceString
- ld a, $e7
- ld [bc], a
- ld c, 50
- call DelayFrames
- and a
- ret
-
-.PartyFull
- ld de, PCString_PartyFull
- call Functione2a6e
- ld de, SFX_WRONG
- call WaitPlaySFX
- call WaitSFX
- ld c, 50
- call DelayFrames
- scf
- ret
-
-
-Functione3180: ; e3180 (38:7180)
- hlcoord 0, 0
- lb bc, 15, 8
- call ClearBox
- hlcoord 8, 14
- lb bc, 1, 3
- call ClearBox
- hlcoord 0, 15
- lb bc, 1, 18
- call TextBox
-
- call WaitBGMap
- ld a, [CurPartySpecies]
- call GetCryIndex
- jr c, .asm_e31ab
- ld e, c
- ld d, b
- call PlayCryHeader
-.asm_e31ab
-
- ld a, [CurPartySpecies]
- ld [wd265], a
- call GetPokemonName
- hlcoord 1, 16
- ld de, PCString_ReleasedPKMN
- call PlaceString
- ld c, 80
- call DelayFrames
- hlcoord 0, 15
- lb bc, 1, 18
- call TextBox
- hlcoord 1, 16
- ld de, PCString_Bye
- call PlaceString
- ld l, c
- ld h, b
- inc hl
- ld de, StringBuffer1
- call PlaceString
- ld l, c
- ld h, b
- ld [hl], $e7
- ld c, 50
- call DelayFrames
- ret
-; e31e7 (38:71e7)
-
-Functione31e7: ; e31e7
- push hl
- push de
- push bc
- push af
- hlcoord 0, 15
- lb bc, 1, 18
- call TextBox
- hlcoord 1, 16
- ld de, String_e3233
- call PlaceString
- ld c, 20
- call DelayFrames
- pop af
- pop bc
- pop de
- pop hl
- ld a, [wCurBox]
- push af
- ld bc, 0
- ld a, [wcb31]
- and a
- jr nz, .asm_e3215
- set 0, c
-
-.asm_e3215
- ld a, [wcb2e]
- and a
- jr nz, .asm_e321d
- set 1, c
-
-.asm_e321d
- ld hl, Jumptable_e3245
-rept 2
- add hl, bc
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, Functione322a
- push de
- jp [hl]
-; e322a
-
-Functione322a: ; e322a
- pop af
- ld e, a
- callba Function14ad5
- ret
-; e3233
-
-String_e3233:
- db "Saving… Leave ON!@"
-; e3245
-
-Jumptable_e3245: ; e3245
- dw Functione324d
- dw Functione3267
- dw Functione327d
- dw Functione3284
-; e324d
-
-Functione324d: ; e324d
- ld hl, wcb31
- ld a, [wcb2e]
- cp [hl]
- jr z, .asm_e325d
- call Functione32b0
- call Functione32fa
- ret
-
-.asm_e325d
- call Functione32b0
- call Functione328e
- call Functione32fa
- ret
-; e3267
-
-Functione3267: ; e3267
- call Functione3316
- ld a, $1
- ld [wc2cd], a
- callba SaveGameData
- xor a
- ld [wc2cd], a
- call Functione32fa
- ret
-; e327d
-
-Functione327d: ; e327d
- call Functione32b0
- call Functione3346
- ret
-; e3284
-
-Functione3284: ; e3284
- call Functione3316
- call Functione328e
- call Functione3346
- ret
-; e328e
-
-Functione328e: ; e328e
- ld a, [wcb2b]
- ld hl, wcb2a
- add [hl]
- ld e, a
- ld a, [wcb30]
- ld hl, wcb2f
- add [hl]
- cp e
- ret nc
- ld hl, wcb2b
- ld a, [hl]
- and a
- jr z, .asm_e32a8
- dec [hl]
- ret
-
-.asm_e32a8
- ld hl, wcb2a
- ld a, [hl]
- and a
- ret z
- dec [hl]
- ret
-; e32b0
-
-Functione32b0: ; e32b0
- ld a, [wcb31]
- dec a
- ld e, a
- callba Function14ac2
- ld a, [wcb30]
- ld hl, wcb2f
- add [hl]
- ld [CurPartyMon], a
- ld a, $1
- call GetSRAMBank
- ld hl, sBoxSpecies
- call Functione3357
- ld hl, sBoxMonNicknames
- call Functione3363
- ld hl, sBoxMonOT
- call Functione3376
- ld hl, sBoxMons
- ld bc, BOXMON_STRUCT_LENGTH
- call Functione3389
- call CloseSRAM
- callba Function5088b
- ld a, PC_DEPOSIT
- ld [wPokemonWithdrawDepositParameter], a
- callba Functione039
- ret
-; e32fa
-
-Functione32fa: ; e32fa
- ld a, [wcb2e]
- dec a
- ld e, a
- callba Function14ac2
- ld a, [wcb2b]
- ld hl, wcb2a
- add [hl]
- ld [CurPartyMon], a
- callba Function51322
- ret
-; e3316
-
-Functione3316: ; e3316
- ld a, [wcb30]
- ld hl, wcb2f
- add [hl]
- ld [CurPartyMon], a
- ld hl, PartySpecies
- call Functione3357
- ld hl, PartyMonNicknames
- call Functione3363
- ld hl, PartyMonOT
- call Functione3376
- ld hl, PartyMon1Species
- ld bc, PARTYMON_STRUCT_LENGTH
- call Functione3389
- xor a
- ld [wPokemonWithdrawDepositParameter], a
- callba Functione039
- ret
-; e3346
-
-Functione3346: ; e3346
- ld a, [wcb2b]
- ld hl, wcb2a
- add [hl]
- ld [CurPartyMon], a
- callba Function5138b
- ret
-; e3357
-
-Functione3357: ; e3357 (38:7357)
- ld a, [CurPartyMon]
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [hl]
- ld [CurPartySpecies], a
- ret
-
-Functione3363: ; e3363 (38:7363)
- ld bc, $b
- ld a, [CurPartyMon]
- call AddNTimes
- ld de, wd002
- ld bc, $b
- call CopyBytes
- ret
-
-Functione3376: ; e3376 (38:7376)
- ld bc, $b
- ld a, [CurPartyMon]
- call AddNTimes
- ld de, wd00d
- ld bc, $b
- call CopyBytes
- ret
-
-Functione3389: ; e3389 (38:7389)
- ld a, [CurPartyMon]
- call AddNTimes
- ld de, wd018
- call CopyBytes
- ret
-
-Functione3396: ; e3396 (38:7396)
- dec b
- ld c, b
- ld b, 0
- ld hl, Unknown_e33a6
-rept 3
- add hl, bc
-endr
- ld a, [hli]
- ld b, a
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ret
-; e33a6 (38:73a6)
-
-Unknown_e33a6: ; e33a6
- ; bank, address
- dba sBox1
- dba sBox2
- dba sBox3
- dba sBox4
- dba sBox5
- dba sBox6
- dba sBox7
- dba sBox8
- dba sBox9
- dba sBox10
- dba sBox11
- dba sBox12
- dba sBox13
- dba sBox14
-; e33d0
-
-Functione33d0: ; e33d0 (38:73d0)
- ld b, a
- call GetSGBLayout
- ld a, $e4
- call DmgToCgbBGPals
- ld a, $fc
- call Functioncf8
- ret
-
-Functione33df: ; e33df (38:73df)
- ld e, a
- ld d, $0
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ret
-
-Functione33e8: ; e33e8 (38:73e8)
- call DisableLCD
- ld hl, VTiles2 tile $00
- ld bc, $310
- xor a
- call ByteFill
- call LoadStandardFont
- call LoadFontsBattleExtra
- ld hl, PCMailGFX
- ld de, VTiles2 tile $5c
- ld bc, $40
- call CopyBytes
- ld hl, PCSelectLZ
- ld de, VTiles0 tile $00
- call Decompress
- ld a, 6
- call SkipMusic
- call EnableLCD
- ret
-; e3419 (38:7419)
-
-PCSelectLZ: INCBIN "gfx/pc.2bpp.lz"
-PCMailGFX: INCBIN "gfx/pc_mail.2bpp"
-; e34dd
-
-PCString_ChooseaPKMN: db "Choose a <PK><MN>.@"
-PCString_WhatsUp: db "What's up?@"
-PCString_ReleasePKMN: db "Release <PK><MN>?@"
-PCString_MoveToWhere: db "Move to where?@"
-PCString_ItsYourLastPKMN: db "It's your last <PK><MN>!@"
-PCString_TheresNoRoom: db "There's no room!@"
-PCString_NoMoreUsablePKMN: db "No more usable <PK><MN>!@"
-PCString_RemoveMail: db "Remove MAIL.@"
-PCString_ReleasedPKMN: db "Released <PK><MN>.@"
-PCString_Bye: db "Bye,@"
-PCString_Stored: db "Stored @"
-PCString_Got: db "Got @"
-PCString_Non: db "Non.@"
-PCString_BoxFull: db "The BOX is full.@"
-PCString_PartyFull: db "The party's full!@"
-PCString_NoReleasingEGGS: db "No releasing EGGS!@"
-; e35aa
-
-Functione35aa: ; e35aa (38:75aa)
- call LoadStandardMenuDataHeader
- call Functione35e2
-.loop
- xor a
- ld [hBGMapMode], a
- call Functione36cf
- call Functione379c
- ld hl, Functione35aa_menudataheader
- call CopyMenuDataHeader
- xor a
- ld [wd0e4], a
- hlcoord 0, 4
- lb bc, 8, 9
- call TextBox
- call HandleScrollingMenu
- ld a, [wcf73]
- cp $2
- jr z, .done
- call Functione37af
- call Functione36f9
- jr .loop
-.done
- call WriteBackup
- ret
-
-Functione35e2: ; e35e2 (38:75e2)
- xor a
- ld [hBGMapMode], a
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, " "
- call ByteFill
- ret
-; e35f1 (38:75f1)
-
-Functione35aa_menudataheader: ; 0xe35f1
- db $40 ; flags
- db 05, 01 ; start coords
- db 12, 09 ; end coords
- dw .menudata2
- db 1 ; default option
-; 0xe35f9
-
-.menudata2: ; 0xe35f9
- db $22 ; flags
- db 4, 0
- db 1
- dba .boxes
- dba .boxnames
- dba NULL
- dba Functione3632
-; e3609
-
-.boxes: ; e3609
- db NUM_BOXES
-x = 1
-rept NUM_BOXES
- db x
-x = x + 1
-endr
- db -1
-; e3619
-
-.boxnames: ; e3619
- push de
- ld a, [MenuSelection]
- dec a
- call GetBoxName
- pop hl
- call PlaceString
- ret
-; e3626
-
-GetBoxName: ; e3626 (38:7626)
- ld bc, BOX_NAME_LENGTH
- ld hl, wBoxNames
- call AddNTimes
- ld d, h
- ld e, l
- ret
-; e3632 (38:7632)
-
-Functione3632: ; e3632
- hlcoord 11, 7
- lb bc, 5, 7
- call TextBox
- ld a, [MenuSelection]
- cp -1
- ret z
- hlcoord 12, 9
- ld de, String_e3663
- call PlaceString
- call GetBoxCount
- ld [wd265], a
- hlcoord 13, 11
- ld de, wd265
- lb bc, 1, 2
- call PrintNum
- ld de, String_e3668
- call PlaceString
- ret
-; e3663
-
-String_e3663: ; e3663
- db "#MON@"
-; e3668
-
-String_e3668: ; e3668
- ; db "/20@"
- db "/"
- db "0" + MONS_PER_BOX / 10 ; "2"
- db "0" + MONS_PER_BOX % 10 ; "0"
- db "@"
-; e366c
-
-GetBoxCount: ; e366c (38:766c)
- ld a, [wCurBox]
- ld c, a
- ld a, [MenuSelection]
- dec a
- cp c
- jr z, .activebox
- ld c, a
- ld b, 0
- ld hl, .boxbanks
-rept 3
- add hl, bc
-endr
- ld a, [hli]
- ld b, a
- call GetSRAMBank
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [hl]
- call CloseSRAM
- ld c, a
- ld a, [wSavedAtLeastOnce]
- and a
- jr z, .newfile
- ld a, c
- ret
-
-.newfile
- xor a
- ret
-
-.activebox
- ld a, BANK(sBoxCount)
- ld b, a
- call GetSRAMBank
- ld hl, sBoxCount
- ld a, [hl]
- call CloseSRAM
- ret
-; e36a5 (38:76a5)
-
-.boxbanks: ; e36a5
- dba sBox1
- dba sBox2
- dba sBox3
- dba sBox4
- dba sBox5
- dba sBox6
- dba sBox7
- dba sBox8
- dba sBox9
- dba sBox10
- dba sBox11
- dba sBox12
- dba sBox13
- dba sBox14
-; e36cf
-
-Functione36cf: ; e36cf (38:76cf)
- hlcoord 0, 0
- ld b, 2
- ld c, 18
- call TextBox
- hlcoord 1, 2
- ld de, String_e36f1
- call PlaceString
- ld a, [wCurBox]
- and $f
- call GetBoxName
- hlcoord 11, 2
- call PlaceString
- ret
-; e36f1 (38:76f1)
-
-String_e36f1: ; e36f1
- db "CURRENT@"
-; e36f9
-
-Functione36f9: ; e36f9 (38:76f9)
- ld hl, MenuDataHeader_0xe377b
- call LoadMenuDataHeader
- call InterpretMenu2
- call ExitMenu
- ret c
- ld a, [MenuSelection2]
- cp $1
- jr z, .asm_e3734
- cp $2
- jr z, .asm_e3745
- cp $3
- jr z, .asm_e3717
- and a
- ret
-
-.asm_e3717
- call GetBoxCount
- and a
- jr z, .asm_e372f
- ld e, l
- ld d, h
- ld a, [MenuSelection]
- dec a
- ld c, a
- callba Function844bc
- call Functione35e2
- and a
- ret
-
-.asm_e372f
- call Functione37be
- and a
- ret
-
-.asm_e3734
- ld a, [MenuSelection]
- dec a
- ld e, a
- ld a, [wCurBox]
- cp e
- ret z
- callba Function14a83
- ret
-
-.asm_e3745
- ld b, $4
- ld de, wd002
- callba NamingScreen
- call ClearTileMap
- call LoadStandardFont
- call LoadFontsBattleExtra
- ld a, [MenuSelection]
- dec a
- call GetBoxName
- ld e, l
- ld d, h
- ld hl, wd002
- ld c, $8
- call InitString
- ld a, [MenuSelection]
- dec a
- call GetBoxName
- ld de, wd002
- call CopyName2
- ret
-; e3778 (38:7778)
-
- hlcoord 11, 7 ; XXX
-
-MenuDataHeader_0xe377b: ; 0xe377b
- db $40 ; flags
- db 04, 11 ; start coords
- db 13, 19 ; end coords
- dw MenuData2_0xe3783
- db 1 ; default option
-; 0xe3783
-
-MenuData2_0xe3783: ; 0xe3783
- db $80 ; flags
- db 4 ; items
- db "SWITCH@"
- db "NAME@"
- db "PRINT@"
- db "QUIT@"
-; 0xe379c
-
-Functione379c: ; e379c (38:779c)
- ld de, String_e37a1
- jr Functione37e3
-; e37a1 (38:77a1)
-
-String_e37a1: ; e37a1
- db "Choose a BOX.@"
-; e37af
-
-Functione37af: ; e37af (38:77af)
- ld de, String_e37b4
- jr Functione37e3
-; e37b4 (38:77b4)
-
-String_e37b4: ; e37b4
- db "What's up?@"
-; e37be
-
-Functione37be: ; e37be (38:77be)
- ld de, String_e37d3
- call Functione37e3
- ld de, SFX_WRONG
- call WaitPlaySFX
- call WaitSFX
- ld c, 50
- call DelayFrames
- ret
-; e37d3 (38:77d3)
-
-String_e37d3: ; e37d3
- db "There's no #MON.@"
-; e37e3
-
-Functione37e3: ; e37e3 (38:77e3)
- push de
- hlcoord 0, 14
- lb bc, 2, 18
- call TextBox
- pop de
- hlcoord 1, 16
- call PlaceString
- ld a, $1
- ld [hBGMapMode], a
- ret
-
+INCLUDE "engine/card_flip.asm"
+INCLUDE "engine/dummy_game.asm"
+INCLUDE "engine/billspc.asm"
SECTION "bank39", ROMX, BANK[$39]
@@ -58697,7 +47606,7 @@ _OptionsMenu: ; e41d0
ld a, [hl]
push af
ld [hl], $1
- call WhiteBGMap
+ call ClearBGPalettes
hlcoord 0, 0
ld b, $10
ld c, $12
@@ -59279,7 +48188,7 @@ Functione455c: ; e455c
Functione4579: ; e4579
ld de, MUSIC_NONE
call PlayMusic
- call WhiteBGMap
+ call ClearBGPalettes
call ClearTileMap
ld a, VBGMap0 / $100
ld [hBGMapAddress + 1], a
@@ -59669,7 +48578,7 @@ CrystalIntro: ; e48ac
call PlayMusic
.done
- call WhiteBGMap
+ call ClearBGPalettes
call ClearSprites
call ClearTileMap
xor a
@@ -60690,7 +49599,7 @@ IntroScene25: ; e50ad (39:50ad)
IntroScene26: ; e50bb (39:50bb)
; Load the final scene.
- call WhiteBGMap
+ call ClearBGPalettes
call ClearSprites
call ClearTileMap
xor a
@@ -60779,7 +49688,7 @@ IntroScene28: ; e5152 (39:5152)
ret
.clear
- call WhiteBGMap
+ call ClearBGPalettes
ret
.done
@@ -62369,7 +51278,7 @@ Functionfb877: ; fb877
xor a
ld [hMapAnims], a
call LowVolume
- call WhiteBGMap
+ call ClearBGPalettes
call ClearTileMap
call UpdateSprites
call ClearSprites
@@ -66036,7 +54945,7 @@ Function10510b: ; 10510b (41:510b)
jp CloseSRAM
Function105153: ; 105153 (41:5153)
- call WhiteBGMap
+ call ClearBGPalettes
call DisableLCD
ld hl, MysteryGiftGFX
ld de, VTiles2 tile $00
@@ -66335,7 +55244,7 @@ Function10578c: ; 10578c (41:578c)
ret
Function1057d7: ; 1057d7 (41:57d7)
- call WhiteBGMap
+ call ClearBGPalettes
call DisableLCD
ld hl, MysteryGiftJP_GFX
ld de, VTiles2 tile $00
@@ -67101,7 +56010,7 @@ String_1dc34c:
; 1dc381
Function1dc381: ; 1dc381
- call WhiteBGMap
+ call ClearBGPalettes
call ClearTileMap
call ClearSprites
xor a
@@ -67201,7 +56110,7 @@ Function1dc381: ; 1dc381
; 1dc47b
Function1dc47b: ; 1dc47b
- call WhiteBGMap
+ call ClearBGPalettes
call ClearTileMap
call ClearSprites
xor a