summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <PikalaxALT@gmail.com>2015-10-16 13:35:43 -0400
committerPikalaxALT <PikalaxALT@gmail.com>2015-10-16 13:35:43 -0400
commit4fa6c6daa46935c7580a60a22bd9216414246dc0 (patch)
treeac6d9963a55214087d9b81b510409b6fdffcb164
parent1e2ff967aa11ed0bcdd1dd069bde67724d3851c2 (diff)
Split up bank 2; other relabelings
-rw-r--r--battle/core.asm8
-rw-r--r--constants/misc_constants.asm7
-rw-r--r--contents.asm1
-rw-r--r--data/wild/fish.asm4
-rw-r--r--engine/credits.asm2
-rw-r--r--engine/map_objects.asm4
-rw-r--r--engine/pack.asm36
-rw-r--r--engine/phone_scripts.asm2
-rw-r--r--engine/pokedex.asm16
-rw-r--r--engine/predef.asm4
-rw-r--r--engine/save.asm4
-rw-r--r--engine/specials.asm26
-rw-r--r--engine/std_scripts.asm2
-rwxr-xr-xengine/time.asm12
-rw-r--r--event/battle_tower.asm344
-rw-r--r--event/buena.asm339
-rw-r--r--event/kurt.asm415
-rw-r--r--event/mom.asm6
-rw-r--r--event/unown.asm300
-rw-r--r--home.asm10
-rw-r--r--home/joypad.asm42
-rw-r--r--home/menu.asm24
-rw-r--r--home/movement.asm8
-rw-r--r--home/palettes.asm16
-rw-r--r--home/text.asm25
-rw-r--r--home/tilemap.asm10
-rw-r--r--home/vblank.asm2
-rw-r--r--hram.asm8
-rw-r--r--lib/mobile/main.asm63
-rw-r--r--macros/charmap.asm2
-rw-r--r--main.asm8042
-rw-r--r--maps/BillsHouse.asm12
-rw-r--r--maps/CeladonGameCornerPrizeRoom.asm120
-rw-r--r--maps/GoldenrodCity.asm4
-rw-r--r--maps/GoldenrodGameCorner.asm4
-rw-r--r--maps/KurtsHouse.asm2
-rw-r--r--maps/RadioTower1F.asm2
-rw-r--r--maps/Route34.asm4
-rw-r--r--misc/crystal_misc.asm8
-rw-r--r--misc/mobile_22.asm4435
-rw-r--r--misc/mobile_22_2.asm1155
-rw-r--r--misc/mobile_40.asm4
-rw-r--r--misc/mobile_45.asm72
-rw-r--r--misc/unused_title.asm2
-rw-r--r--wram.asm31
45 files changed, 7856 insertions, 7783 deletions
diff --git a/battle/core.asm b/battle/core.asm
index 24fe5b820..4954c4cd3 100644
--- a/battle/core.asm
+++ b/battle/core.asm
@@ -8870,7 +8870,7 @@ Function3f85f: ; 3f85f
ld a, [de]
and a
jr z, .asm_3f8c9
- ld a, [wd4b4]
+ ld a, [wSavedAtLeastOnce]
and a
jr z, .asm_3f8c9
push hl
@@ -8967,7 +8967,7 @@ Function3f85f: ; 3f85f
ret
.asm_3f92b
- ld a, [wd4b4]
+ ld a, [wSavedAtLeastOnce]
and a
ret nz
ld de, .Scores
@@ -8981,9 +8981,9 @@ Function3f85f: ; 3f85f
; 3f947
.Format ; 3f947
- db " --- ", $22, " - - -@"
+ db " --- <LNBRK> - - -@"
.Record ; 3f964
- db $52, "'s RECORD@"
+ db "<PLAYER>'s RECORD@"
.Result ; 3f96e
db "RESULT WIN LOSE DRAW@"
.Total ; 3f983
diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm
index 9678faf8a..173a9ea64 100644
--- a/constants/misc_constants.asm
+++ b/constants/misc_constants.asm
@@ -46,8 +46,6 @@ CHECK_FLAG EQU 2
; joypad
-BUTTONS EQU %00010000
-D_PAD EQU %00100000
NO_INPUT EQU %00000000
A_BUTTON EQU %00000001
@@ -59,6 +57,11 @@ D_LEFT EQU %00100000
D_UP EQU %01000000
D_DOWN EQU %10000000
+BUTTONS EQU A_BUTTON | B_BUTTON | SELECT | START
+D_PAD EQU D_RIGHT | D_LEFT | D_UP | D_DOWN
+
+R_DPAD EQU %00100000
+R_BUTTONS EQU %00010000
; screen
HP_BAR_LENGTH EQU 6
diff --git a/contents.asm b/contents.asm
index af277dcad..0d55c2dcd 100644
--- a/contents.asm
+++ b/contents.asm
@@ -34,7 +34,6 @@ POKEDEX_ENTRIES_4 EQU $74
; engine/events.o
; engine/scripting.o
; engine/events_2.o
-
EVENTS EQU $25
diff --git a/data/wild/fish.asm b/data/wild/fish.asm
index e2deb093a..b528bbed8 100644
--- a/data/wild/fish.asm
+++ b/data/wild/fish.asm
@@ -134,14 +134,14 @@ GetFishGroupHeader: ; 9245b
ret
.group11
- ld a, [wdfce]
+ ld a, [wFishingSwarmFlag]
cp 1
jr nz, .end
ld d, 6
jr .end
.group12
- ld a, [wdfce]
+ ld a, [wFishingSwarmFlag]
cp 2
jr nz, .end
ld d, 7
diff --git a/engine/credits.asm b/engine/credits.asm
index e5849c2ba..dabdb6ea1 100644
--- a/engine/credits.asm
+++ b/engine/credits.asm
@@ -193,7 +193,7 @@ Function109847:: ; 109847
ld a, $5
ld [hVBlank], a
ld a, $1
- ld [$ffaa], a
+ ld [hInMenu], a
xor a
ld [hBGMapMode], a
ld [CreditsPos], a
diff --git a/engine/map_objects.asm b/engine/map_objects.asm
index d9282d965..f4eef1ab8 100644
--- a/engine/map_objects.asm
+++ b/engine/map_objects.asm
@@ -3137,7 +3137,7 @@ Function5803:: ; 5803
Function5815: ; 5815
call Function18de
ret c
- ld a, [$ffb0]
+ ld a, [hConnectedMapWidth]
ld [wd4cd], a
ret
; 581f
@@ -3166,7 +3166,7 @@ Function582c: ; 582c
ld hl, OBJECT_09
add hl, bc
ld [hl], 0
- ld a, [$ffb0]
+ ld a, [hConnectedMapWidth]
ld [wd4ce], a
ret
; 5847
diff --git a/engine/pack.asm b/engine/pack.asm
index ed8d197bc..7da0e4605 100644
--- a/engine/pack.asm
+++ b/engine/pack.asm
@@ -1157,8 +1157,8 @@ MenuData2_0x107f7: ; 0x107f7
db 5, 8 ; rows, columns
db 2 ; horizontal spacing
dbw 0, OTPartyMons
- dbw BANK(Function24ab4), Function24ab4
- dbw BANK(Function24ac3), Function24ac3
+ dbw BANK(PlaceMenuItemName), PlaceMenuItemName
+ dbw BANK(PlaceMenuItemQuantity), PlaceMenuItemQuantity
dbw BANK(Function244c3), Function244c3
; 10807
@@ -1181,8 +1181,8 @@ MenuData2_0x10816: ; 0x10816
db 5, 8 ; rows, columns
db 1 ; horizontal spacing
dbw 0, OTPartyMon1Exp + 2
- dbw BANK(Function24ab4), Function24ab4
- dbw BANK(Function24ac3), Function24ac3
+ dbw BANK(PlaceMenuItemName), PlaceMenuItemName
+ dbw BANK(PlaceMenuItemQuantity), PlaceMenuItemQuantity
dbw BANK(Function244c3), Function244c3
; 10826
@@ -1214,8 +1214,8 @@ MenuData2_0x1084a: ; 0x1084a
db 5, 8 ; rows, columns
db 2 ; horizontal spacing
dbw 0, OTPartyMon1CaughtGender
- dbw BANK(Function24ab4), Function24ab4
- dbw BANK(Function24ac3), Function24ac3
+ dbw BANK(PlaceMenuItemName), PlaceMenuItemName
+ dbw BANK(PlaceMenuItemQuantity), PlaceMenuItemQuantity
dbw BANK(Function244c3), Function244c3
; 1085a
@@ -1525,8 +1525,8 @@ MenuData2_0x10a57: ; 0x10a57
db 5, 8 ; rows, columns
db 2 ; horizontal spacing
dbw 0, NumItems
- dbw BANK(Function24ab4), Function24ab4
- dbw BANK(Function24ac3), Function24ac3
+ dbw BANK(PlaceMenuItemName), PlaceMenuItemName
+ dbw BANK(PlaceMenuItemQuantity), PlaceMenuItemQuantity
dbw BANK(Function244c3), Function244c3
; 10a67
@@ -1543,8 +1543,8 @@ MenuData2_0x10a6f: ; 0x10a6f
db 5, 8 ; rows, columns
db 2 ; horizontal spacing
dbw 0, NumItems
- dbw BANK(Function24ab4), Function24ab4
- dbw BANK(Function24ac3), Function24ac3
+ dbw BANK(PlaceMenuItemName), PlaceMenuItemName
+ dbw BANK(PlaceMenuItemQuantity), PlaceMenuItemQuantity
dbw BANK(Function244c3), Function244c3
; 10a7f
@@ -1561,8 +1561,8 @@ MenuData2_0x10a87: ; 0x10a87
db 5, 8 ; rows, columns
db 1 ; horizontal spacing
dbw 0, NumKeyItems
- dbw BANK(Function24ab4), Function24ab4
- dbw BANK(Function24ac3), Function24ac3
+ dbw BANK(PlaceMenuItemName), PlaceMenuItemName
+ dbw BANK(PlaceMenuItemQuantity), PlaceMenuItemQuantity
dbw BANK(Function244c3), Function244c3
; 10a97
@@ -1579,8 +1579,8 @@ MenuData2_0x10a9f: ; 0x10a9f
db 5, 8 ; rows, columns
db 1 ; horizontal spacing
dbw 0, NumKeyItems
- dbw BANK(Function24ab4), Function24ab4
- dbw BANK(Function24ac3), Function24ac3
+ dbw BANK(PlaceMenuItemName), PlaceMenuItemName
+ dbw BANK(PlaceMenuItemQuantity), PlaceMenuItemQuantity
dbw BANK(Function244c3), Function244c3
; 10aaf
@@ -1597,8 +1597,8 @@ MenuData2_0x10ab7: ; 0x10ab7
db 5, 8 ; rows, columns
db 2 ; horizontal spacing
dbw 0, NumBalls
- dbw BANK(Function24ab4), Function24ab4
- dbw BANK(Function24ac3), Function24ac3
+ dbw BANK(PlaceMenuItemName), PlaceMenuItemName
+ dbw BANK(PlaceMenuItemQuantity), PlaceMenuItemQuantity
dbw BANK(Function244c3), Function244c3
; 10ac7
@@ -1615,8 +1615,8 @@ MenuData2_0x10acf: ; 0x10acf
db 5, 8 ; rows, columns
db 2 ; horizontal spacing
dbw 0, NumBalls
- dbw BANK(Function24ab4), Function24ab4
- dbw BANK(Function24ac3), Function24ac3
+ dbw BANK(PlaceMenuItemName), PlaceMenuItemName
+ dbw BANK(PlaceMenuItemQuantity), PlaceMenuItemQuantity
dbw BANK(Function244c3), Function244c3
; 10adf
diff --git a/engine/phone_scripts.asm b/engine/phone_scripts.asm
index 5be1c9a77..6eccfda86 100644
--- a/engine/phone_scripts.asm
+++ b/engine/phone_scripts.asm
@@ -833,7 +833,7 @@ UnknownScript_0xbd544:
pokenamemem QWILFISH, $1
displaylocation ROUTE_32, $2
writebyte $1
- special Functionc3fc
+ special Special_ActivateFishingSwarm
farjump UnknownScript_0xa05d6
UnknownScript_0xbd55c:
diff --git a/engine/pokedex.asm b/engine/pokedex.asm
index 2712b51be..1f4f786d2 100644
--- a/engine/pokedex.asm
+++ b/engine/pokedex.asm
@@ -16,10 +16,10 @@ Pokedex: ; 40000
push af
xor a
ld [VramState], a
- ld a, [$ffaa]
+ ld a, [hInMenu]
push af
ld a, $1
- ld [$ffaa], a
+ ld [hInMenu], a
xor a
ld [$ffde], a
@@ -44,7 +44,7 @@ Pokedex: ; 40000
ld [wd959], a
pop af
- ld [$ffaa], a
+ ld [hInMenu], a
pop af
ld [VramState], a
pop af
@@ -844,7 +844,7 @@ Function405df: ; 405df (10:45df)
ret
Function40610: ; 40610 (10:4610)
- ld hl, $ffa9
+ ld hl, hJoyLast
ld a, [hl]
and D_RIGHT
jr nz, .right
@@ -913,7 +913,7 @@ Function4066c: ; 4066c (10:466c)
ld [wc7e2], a
ld a, [wc7d0]
ld [wc7e3], a
- ld hl, $ffa9
+ ld hl, hJoyLast
ld a, [hl]
and D_UP
jr nz, .up
@@ -964,7 +964,7 @@ Function406c5: ; 406c5 (10:46c5)
ld d, a
ld a, [wc7d2]
ld e, a
- ld hl, $ffa9
+ ld hl, hJoyLast
ld a, [hl]
and D_UP
jr nz, Function406ea
@@ -1799,7 +1799,7 @@ Function40f4f: ; 40f4f (10:4f4f)
ld a, [wc7d8]
cp $2
jr nc, .asm_40f63
- ld hl, $ffa9
+ ld hl, hJoyLast
ld a, [hl]
and $20
jr nz, .asm_40f65
@@ -2274,7 +2274,7 @@ Function4135a: ; 4135a (10:535a)
jr nz, .asm_413c1
call Function413f5
jr c, .asm_413bf
- ld hl, $ffa9
+ ld hl, hJoyLast
ld a, [hl]
and D_LEFT | D_UP
and b
diff --git a/engine/predef.asm b/engine/predef.asm
index 47bc2528a..8c1a600bb 100644
--- a/engine/predef.asm
+++ b/engine/predef.asm
@@ -83,8 +83,8 @@ PredefPointers:: ; 856b
add_predef Function91d11
add_predef CheckContestMon
add_predef Function8c20f
- add_predef Function8c000
- add_predef Function8c000_2
+ add_predef Predef35
+ add_predef Predef36
add_predef PlayBattleAnim
add_predef Predef38 ; $38
add_predef Predef39
diff --git a/engine/save.asm b/engine/save.asm
index 92b65398b..549991207 100644
--- a/engine/save.asm
+++ b/engine/save.asm
@@ -380,7 +380,7 @@ ErasePreviousSave: ; 14cbb
ld [sStackTop + 1], a
call CloseSRAM
ld a, $1
- ld [wd4b4], a
+ ld [wSavedAtLeastOnce], a
ret
; 14ce2
@@ -486,7 +486,7 @@ Function14d93: ; 14d93
Function14da0: ; 14da0
- ld a, [wd4b4]
+ ld a, [wSavedAtLeastOnce]
and a
ret nz
call ErasePreviousSave
diff --git a/engine/specials.asm b/engine/specials.asm
index 41b0d9e9a..827ed11a9 100644
--- a/engine/specials.asm
+++ b/engine/specials.asm
@@ -39,7 +39,7 @@ SpecialsPointers:: ; c029
add_special Special_GetMysteryGiftItem
add_special Special_UnlockMysteryGift
-; Bug Catching Contest
+; Map Events
add_special BugContestJudging
add_special CheckPartyFullAfterContest
add_special CheckFirstMonFainted
@@ -88,25 +88,25 @@ SpecialsPointers:: ; c029
add_special Special_FindAtLeastThatHappy
add_special Special_FindThatSpecies
add_special Special_FindThatSpeciesYourTrainerID
- add_special Functionc3ef
- add_special Function17421
- add_special Function17440
+ add_special Functionc3ef ; unreferenced
+ add_special Special_DayCareMon1
+ add_special Special_DayCareMon2
add_special Special_SelectRandomBugContestContestants
- add_special Functionc3fc
+ add_special Special_ActivateFishingSwarm
add_special ToggleMaptileDecorations
add_special ToggleDecorationsVisibility
add_special SpecialGiveShuckle
add_special SpecialReturnShuckle
- add_special Function73f7
+ add_special Special_BillsGrandfather
add_special SpecialCheckPokerus
- add_special Function24b25
- add_special Function24b4e
+ add_special Special_DisplayCoinCaseBalance
+ add_special Special_DisplayMoneyAndCoinBalance
add_special Function24ae8
add_special Special_CheckForLuckyNumberWinners
add_special Special_CheckLuckyNumberShowFlag
add_special Special_ResetLuckyNumberShowFlag
- add_special Function4d9d3
- add_special Function88018
+ add_special Special_PrintTodaysLuckyNumber
+ add_special Special_SelectApricornForKurt
add_special SpecialNameRater
add_special Functionc2da
add_special GetFirstPokemonHappiness
@@ -489,9 +489,9 @@ Functionc3ef: ; c3ef
ret
; c3fc
-Functionc3fc: ; c3fc
+Special_ActivateFishingSwarm: ; c3fc
ld a, [ScriptVar]
- ld [wdfce], a
+ ld [wFishingSwarmFlag], a
ret
; c403
@@ -531,7 +531,7 @@ Special_ResetLuckyNumberShowFlag: ; c422
; c434
Special_CheckLuckyNumberShowFlag: ; c434
- callba Function11542
+ callba CheckLuckyNumberShowFlag
jp ScriptReturnCarry
; c43d
diff --git a/engine/std_scripts.asm b/engine/std_scripts.asm
index 95c91b647..8a759a218 100644
--- a/engine/std_scripts.asm
+++ b/engine/std_scripts.asm
@@ -1809,7 +1809,7 @@ CoinVendor_IntroScript: ; 0xbcde0
farwritetext CoinVendor_IntroText
CoinVendor_SellCoinsMenuScript: ; 0xbcde4
- special Function24b4e
+ special Special_DisplayMoneyAndCoinBalance
loadmenudata CoinVendor_MenuDataHeader
interpretmenu2
writebackup
diff --git a/engine/time.asm b/engine/time.asm
index 8b3f5d758..b9b8113bb 100755
--- a/engine/time.asm
+++ b/engine/time.asm
@@ -62,7 +62,7 @@ Function11415: ; 11415
ret
; 11420
-Function11420: ; 11420
+CheckDayDependentEventHL: ; 11420
inc hl
push hl
call Function115cf
@@ -98,7 +98,7 @@ Function1144c: ; 1144c
Function11452:: ; 11452
ld hl, wdc1c
- call Function11420
+ call CheckDayDependentEventHL
ret nc
xor a
ld hl, DailyFlags
@@ -217,7 +217,7 @@ Function114fc: ; 114fc
ret
; 1150c
-Function1150c: ; 1150c
+Function1150c: ; Specific version of CheckDayDependentEventHL when hl = $dc3a
ld hl, wdc3b
call Function115cf
call Function115c8
@@ -262,9 +262,9 @@ Function1152b: ; 1152b
ret
; 11542
-Function11542: ; 11542
+CheckLuckyNumberShowFlag: ; 11542
ld hl, wLuckyNumberDayBuffer
- jp Function11420
+ jp CheckDayDependentEventHL
; 11548
Function11548: ; 11548
@@ -277,7 +277,7 @@ Function11548: ; 11548
ld [Buffer2], a
call CloseSRAM
ld hl, Buffer1
- call Function11420
+ call CheckDayDependentEventHL
jr nc, .asm_11572
ld hl, Buffer1
call Function11413
diff --git a/event/battle_tower.asm b/event/battle_tower.asm
new file mode 100644
index 000000000..0d870d2fa
--- /dev/null
+++ b/event/battle_tower.asm
@@ -0,0 +1,344 @@
+Function8b1e1: ; 8b1e1
+ ld de, Unknown_8b1ed
+ call Function8b25b
+ ret z
+ call Function8b231
+ scf
+ ret
+; 8b1ed
+
+Unknown_8b1ed: ; 8b1ed
+ db 2
+ dw Unknown_8b1f2
+ dw Unknown_8b1f6
+
+Unknown_8b1f2: ; 8b1f2
+ dw Function8b2bb
+ dw Function8b2c1
+; 8b1f6
+
+Unknown_8b1f6: ; 8b1f6
+ dw UnknownText_0x8b1fc
+ dw UnknownText_0x8b23d
+ dw UnknownText_0x8b242
+; 8b1fc
+
+UnknownText_0x8b1fc: ; 0x8b1fc
+ ; Excuse me!
+ text_jump UnknownText_0x1c5937
+ db "@"
+; 0x8b201
+
+CheckForBattleTowerRules: ; 8b201
+ ld hl, StringBuffer2
+ ld [hl], "3"
+ inc hl
+ ld [hl], "@"
+ ld de, CheckForBattleTowerRules_FunctionsText
+ call Function8b25b
+ ret z
+ call Function8b231
+ scf
+ ret
+; 8b215
+
+CheckForBattleTowerRules_FunctionsText: ; 8b215
+ db 4
+ dw CheckForBattleTowerRules_Functions
+ dw CheckForBattleTowerRules_Text
+
+CheckForBattleTowerRules_Functions: ; 8b21a
+ dw Function_PartyCountEq3
+ dw Function_PartySpeciesAreUnique
+ dw Function_PartyItemsAreUnique
+ dw Function_HasPartyAnEgg
+; 8b222
+
+CheckForBattleTowerRules_Text: ; 8b222
+ dw JumpText_ExcuseMeYoureNotReady
+ dw JumbText_OnlyThreePkmnMayBeEntered
+ dw JumpText_ThePkmnMustAllBeDifferentKinds
+ dw JumpText_ThePkmnMustNotHoldTheSameItems
+ dw JumpText_YouCantTakeAnEgg
+; 8b22c
+
+JumpText_ExcuseMeYoureNotReady: ; 0x8b22c
+ ; Excuse me. You're not ready.
+ text_jump Text_ExcuseMeYoureNotReady
+ db "@"
+; 0x8b231
+
+Function8b231: ; 8b231
+ ld hl, UnknownText_0x8b238
+ call PrintText
+ ret
+; 8b238
+
+UnknownText_0x8b238: ; 0x8b238
+ ; Please return when you're ready.
+ text_jump UnknownText_0x1c5962
+ db "@"
+; 0x8b23d
+
+UnknownText_0x8b23d: ; 0x8b23d
+ ; You need at least three #MON.
+ text_jump UnknownText_0x1c5983
+ db "@"
+; 0x8b242
+
+UnknownText_0x8b242: ; 0x8b242
+ ; Sorry, an EGG doesn't qualify.
+ text_jump UnknownText_0x1c59a3
+ db "@"
+; 0x8b247
+
+JumbText_OnlyThreePkmnMayBeEntered: ; 0x8b247
+ ; Only three #MON may be entered.
+ text_jump Text_OnlyThreePkmnMayBeEntered
+ db "@"
+; 0x8b24c
+
+JumpText_ThePkmnMustAllBeDifferentKinds: ; 0x8b24c
+ ; The @ #MON must all be different kinds.
+ text_jump Text_ThePkmnMustAllBeDifferentKinds
+ db "@"
+; 0x8b251
+
+JumpText_ThePkmnMustNotHoldTheSameItems: ; 0x8b251
+ ; The @ #MON must not hold the same items.
+ text_jump Text_ThePkmnMustNotHoldTheSameItems
+ db "@"
+; 0x8b256
+
+JumpText_YouCantTakeAnEgg: ; 0x8b256
+ ; You can't take an EGG!
+ text_jump Text_YouCantTakeAnEgg
+ db "@"
+; 0x8b25b
+
+Function8b25b: ; 8b25b
+ ld bc, $0000
+.asm_8b25e
+ call Function8b26c
+ call c, Function8b28e
+ call Function8b276
+ jr nz, .asm_8b25e
+ ld a, b
+ and a
+ ret
+; 8b26c
+
+Function8b26c: ; 8b26c
+ push de
+ push bc
+ call Function8b27a
+ ld a, c
+ rst JumpTable
+ pop bc
+ pop de
+ ret
+; 8b276
+
+Function8b276: ; 8b276
+ inc c
+ ld a, [de]
+ cp c
+ ret
+; 8b27a
+
+Function8b27a: ; 8b27a
+ inc de
+ ld a, [de]
+ ld l, a
+ inc de
+ ld a, [de]
+ ld h, a
+ ret
+; 8b281
+
+Function8b281: ; 8b281
+rept 3
+ inc de
+endr
+ ld a, [de]
+ ld l, a
+ inc de
+ ld a, [de]
+ ld h, a
+ ret
+; 8b28a
+
+Function8b28a: ; 8b28a
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ret
+; 8b28e
+
+Function8b28e: ; 8b28e
+ push de
+ push bc
+ ld a, b
+ and a
+ call z, Function8b29d
+ pop bc
+ call Function8b2a9
+ ld b, $1
+ pop de
+ ret
+; 8b29d
+
+Function8b29d: ; 8b29d
+ push de
+ call Function8b281
+ call Function8b28a
+ call PrintText
+ pop de
+ ret
+; 8b2a9
+
+Function8b2a9: ; 8b2a9
+ push bc
+ call Function8b281
+rept 2
+ inc hl
+endr
+ ld b, $0
+rept 2
+ add hl, bc
+endr
+ call Function8b28a
+ call PrintText
+ pop bc
+ ret
+; 8b2bb
+
+Function8b2bb: ; 8b2bb
+ ld a, [PartyCount]
+ cp 3
+ ret
+; 8b2c1
+
+Function8b2c1: ; 8b2c1
+ ld hl, PartyCount
+ ld a, [hli]
+ ld b, $0
+ ld c, a
+.asm_8b2c8
+ ld a, [hli]
+ cp EGG
+ jr z, .asm_8b2ce
+ inc b
+
+.asm_8b2ce
+ dec c
+ jr nz, .asm_8b2c8
+ ld a, [PartyCount]
+ cp b
+ ret z
+ ld a, b
+ cp 3
+ ret
+; 8b2da
+
+Function_PartyCountEq3: ; 8b2da
+ ld a, [PartyCount]
+ cp 3
+ ret z
+ scf
+ ret
+; 8b2e2
+
+Function_PartySpeciesAreUnique: ; 8b2e2
+ ld hl, PartyMon1Species
+ call VerifyUniqueness
+ ret
+; 8b2e9
+
+VerifyUniqueness: ; 8b2e9
+ ld de, PartyCount
+ ld a, [de]
+ inc de
+ dec a
+ jr z, .done
+ ld b, a
+.loop
+ push hl
+ push de
+ ld c, b
+ call .isegg
+ jr z, .next
+ ld a, [hl]
+ and a
+ jr z, .next
+.loop2
+ call .nextmon
+ call .isegg
+ jr z, .next2
+ cp [hl]
+ jr z, .gotcha
+
+.next2
+ dec c
+ jr nz, .loop2
+
+.next
+ pop de
+ pop hl
+ call .nextmon
+ dec b
+ jr nz, .loop
+
+.done
+ and a
+ ret
+
+.gotcha
+ pop de
+ pop hl
+ scf
+ ret
+; 8b31a
+
+.nextmon: ; 8b31a
+ push bc
+ ld bc, PartyMon2 - PartyMon1
+ add hl, bc
+ inc de
+ pop bc
+ ret
+; 8b322
+
+.isegg: ; 8b322
+ push bc
+ ld b, a
+ ld a, [de]
+ cp EGG
+ ld a, b
+ pop bc
+ ret
+; 8b32a
+
+Function_PartyItemsAreUnique: ; 8b32a
+ ld hl, PartyMon1Item
+ call VerifyUniqueness
+ ret
+; 8b331
+
+Function_HasPartyAnEgg: ; 8b331
+ ld hl, PartyCount
+ ld a, [hli]
+ ld c, a
+.loop
+ ld a, [hli]
+ cp EGG
+ jr z, .found
+ dec c
+ jr nz, .loop
+ and a
+ ret
+
+.found
+ scf
+ ret
+; 8b342
diff --git a/event/buena.asm b/event/buena.asm
new file mode 100644
index 000000000..31ce0a895
--- /dev/null
+++ b/event/buena.asm
@@ -0,0 +1,339 @@
+SpecialBuenasPassword: ; 8af6b
+ xor a
+ ld [wcf76], a
+ ld hl, MenuDataHeader_0x8afa9
+ call CopyMenuDataHeader
+ ld a, [wdc4a]
+ ld c, a
+ callba GetBuenasPassword
+ ld a, [wcf83]
+ add c
+ add $2
+ ld [wcf85], a
+ call Function1c00
+ call Function1e5d
+ callba Function4ae5e
+ ld b, $0
+ ld a, [MenuSelection]
+ ld c, a
+ ld a, [wdc4a]
+ and $3
+ cp c
+ jr nz, .asm_8afa4
+ ld b, $1
+
+.asm_8afa4
+ ld a, b
+ ld [ScriptVar], a
+ ret
+; 8afa9
+
+MenuDataHeader_0x8afa9: ; 0x8afa9
+ db $40 ; flags
+ db 00, 00 ; start coords
+ db 07, 10 ; end coords
+ dw MenuData2_0x8afb2
+ db 1 ; default option
+; 0x8afb1
+
+ db 0
+
+MenuData2_0x8afb2: ; 0x8afb2
+ db $81 ; flags
+ db 0 ; items
+ dw Unknown_8afb8
+ dw Function8afbd
+; 0x8afb4
+
+Unknown_8afb8: ; 8afb8
+ db 3
+ db 0, 1, 2
+ db -1
+
+Function8afbd: ; 8afbd
+ push de
+ ld a, [wdc4a]
+ and $f0
+ ld c, a
+ ld a, [MenuSelection]
+ add c
+ ld c, a
+ callba GetBuenasPassword
+ pop hl
+ call PlaceString
+ ret
+; 8afd4
+
+SpecialBuenaPrize: ; 8afd4
+ xor a
+ ld [wd0e4], a
+ ld a, $1
+ ld [MenuSelection], a
+ call Function8b0d6
+ call Function8b090
+ ld hl, UnknownText_0x8b072
+ call PrintText
+ jr .asm_8aff1
+
+.asm_8afeb
+ ld hl, UnknownText_0x8b072
+ call Function105a
+
+.asm_8aff1
+ call DelayFrame
+ call UpdateSprites
+ call Function8b097
+ call Function8b0e2
+ jr z, .asm_8b05f
+ ld [wcf75], a
+ call GetBuenaPrize
+ ld a, [hl]
+ ld [wd265], a
+ call GetItemName
+ ld hl, UnknownText_0x8b077
+ call Function105a
+ call YesNoBox
+ jr c, .asm_8afeb
+ ld a, [wcf75]
+ call GetBuenaPrize
+ inc hl
+ ld a, [hld]
+ ld c, a
+ ld a, [wdc4b]
+ cp c
+ jr c, .asm_8b047
+ ld a, [hli]
+ push hl
+ ld [CurItem], a
+ ld a, $1
+ ld [wd10c], a
+ ld hl, NumItems
+ call ReceiveItem
+ pop hl
+ jr nc, .asm_8b04c
+ ld a, [hl]
+ ld c, a
+ ld a, [wdc4b]
+ sub c
+ ld [wdc4b], a
+ call Function8b097
+ jr .asm_8b051
+
+.asm_8b047
+ ld hl, UnknownText_0x8b081
+ jr .asm_8b05a
+
+.asm_8b04c
+ ld hl, UnknownText_0x8b086
+ jr .asm_8b05a
+
+.asm_8b051
+ ld de, SFX_TRANSACTION
+ call PlaySFX
+ ld hl, UnknownText_0x8b07c
+
+.asm_8b05a
+ call Function105a
+ jr .asm_8afeb
+
+.asm_8b05f
+ call WriteBackup
+ call WriteBackup
+ ld hl, UnknownText_0x8b08b
+ call PrintText
+ call Functiona36
+ call PlayClickSFX
+ ret
+; 8b072
+
+UnknownText_0x8b072: ; 0x8b072
+ ; Which prize would you like?
+ text_jump UnknownText_0x1c589f
+ db "@"
+; 0x8b077
+
+UnknownText_0x8b077: ; 0x8b077
+ ; ? Is that right?
+ text_jump UnknownText_0x1c58bc
+ db "@"
+; 0x8b07c
+
+UnknownText_0x8b07c: ; 0x8b07c
+ ; Here you go!
+ text_jump UnknownText_0x1c58d1
+ db "@"
+; 0x8b081
+
+UnknownText_0x8b081: ; 0x8b081
+ ; You don't have enough points.
+ text_jump UnknownText_0x1c58e0
+ db "@"
+; 0x8b086
+
+UnknownText_0x8b086: ; 0x8b086
+ ; You have no room for it.
+ text_jump UnknownText_0x1c58ff
+ db "@"
+; 0x8b08b
+
+UnknownText_0x8b08b: ; 0x8b08b
+ ; Oh. Please come back again!
+ text_jump UnknownText_0x1c591a
+ db "@"
+; 0x8b090
+
+Function8b090: ; 8b090
+ ld hl, MenuDataHeader_0x8b0d1
+ call LoadMenuDataHeader
+ ret
+; 8b097
+
+Function8b097: ; 8b097
+ ld de, wdc4b
+ call Function8b09e
+ ret
+; 8b09e
+
+Function8b09e: ; 8b09e
+ push de
+ xor a
+ ld [hBGMapMode], a
+ ld hl, MenuDataHeader_0x8b0d1
+ call CopyMenuDataHeader
+ call Function1cbb
+ call UpdateSprites
+ call GetMemTileCoord
+ ld bc, $0015
+ add hl, bc
+ ld de, String_8b0ca
+ call PlaceString
+ ld h, b
+ ld l, c
+ inc hl
+ ld a, $7f
+ ld [hli], a
+ ld [hld], a
+ pop de
+ lb bc, 1, 2
+ call PrintNum
+ ret
+; 8b0ca
+
+String_8b0ca:
+ db "Points@"
+; 8b0d1
+
+MenuDataHeader_0x8b0d1: ; 0x8b0d1
+ db $40 ; flags
+ db 11, 00 ; start coords
+ db 13, 11 ; end coords
+; 8b0d6
+
+Function8b0d6: ; 8b0d6
+ ld hl, MenuDataHeader_0x8b0dd
+ call LoadMenuDataHeader
+ ret
+; 8b0dd
+
+MenuDataHeader_0x8b0dd: ; 0x8b0dd
+ db $40 ; flags
+ db 00, 00 ; start coords
+ db 11, 17 ; end coords
+; 8b0e2
+
+Function8b0e2: ; 8b0e2
+ ld hl, MenuDataHeader_0x8b113
+ call CopyMenuDataHeader
+ ld a, [MenuSelection]
+ ld [wcf88], a
+ xor a
+ ld [wcf76], a
+ ld [hBGMapMode], a
+ call Function352f
+ call UpdateSprites
+ call Function350c
+ ld a, [MenuSelection]
+ ld c, a
+ ld a, [wcfa9]
+ ld [MenuSelection], a
+ ld a, [wcf73]
+ cp $2
+ jr z, .asm_8b111
+ ld a, c
+ and a
+ ret nz
+
+.asm_8b111
+ xor a
+ ret
+; 8b113
+
+MenuDataHeader_0x8b113: ; 0x8b113
+ db $40 ; flags
+ db 01, 01 ; start coords
+ db 09, 16 ; end coords
+ dw MenuData2_0x8b11c
+ db 1 ; default option
+; 0x8b11b
+
+ db 0
+
+MenuData2_0x8b11c: ; 0x8b11c
+ db $10 ; flags
+ db 4 ; items
+ db $d, $1
+ dbw BANK(Unknown_8b129), Unknown_8b129
+ dbw BANK(BuenaPrizeItem), BuenaPrizeItem
+ dbw BANK(BuenaPrizePoints), BuenaPrizePoints
+; 8b129
+
+Unknown_8b129: ; 8b129
+ db 9
+ db 1, 2, 3, 4, 5, 6, 7, 8, 9, $ff
+; 8b134
+
+BuenaPrizeItem: ; 8b134
+ ld a, [MenuSelection]
+ call GetBuenaPrize
+ ld a, [hl]
+ push de
+ ld [wd265], a
+ call GetItemName
+ pop hl
+ call PlaceString
+ ret
+; 8b147
+
+BuenaPrizePoints: ; 8b147
+ ld a, [MenuSelection]
+ call GetBuenaPrize
+ inc hl
+ ld a, [hl]
+ ld c, "0"
+ add c
+ ld [de], a
+ ret
+; 8b154
+
+GetBuenaPrize: ; 8b154
+ dec a
+ ld hl, BuenaPrizes
+ ld b, 0
+ ld c, a
+rept 2
+ add hl, bc
+endr
+ ret
+; 8b15e
+
+BuenaPrizes: ; 8b15e
+ db ULTRA_BALL, 2
+ db FULL_RESTORE, 2
+ db NUGGET, 3
+ db RARE_CANDY, 3
+ db PROTEIN, 5
+ db IRON, 5
+ db CARBOS, 5
+ db CALCIUM, 5
+ db HP_UP, 5
+; 8b170
diff --git a/event/kurt.asm b/event/kurt.asm
new file mode 100644
index 000000000..505d0e7b6
--- /dev/null
+++ b/event/kurt.asm
@@ -0,0 +1,415 @@
+Kurt_PrintTextWhichApricorn: ; 88000
+ ld hl, UnknownText_0x88007
+ call PrintText
+ ret
+; 88007
+
+UnknownText_0x88007: ; 0x88007
+ ; Which APRICORN should I use?
+ text_jump UnknownText_0x1bc06b
+ db "@"
+; 0x8800c
+
+Kurt_PrintTextHowMany: ; 8800c
+ ld hl, UnknownText_0x88013
+ call PrintText
+ ret
+; 88013
+
+UnknownText_0x88013: ; 0x88013
+ ; How many should I make?
+ text_jump UnknownText_0x1bc089
+ db "@"
+; 0x88018
+
+Special_SelectApricornForKurt: ; 88018
+ call Function1d6e
+ ld c, $1
+ xor a
+ ld [wd0e4], a
+ ld [wdca4], a
+.loop
+ push bc
+ call Kurt_PrintTextWhichApricorn
+ pop bc
+ ld a, c
+ ld [MenuSelection], a
+ call Kurt_SelectApricorn
+ ld a, c
+ ld [ScriptVar], a
+ and a
+ jr z, .done
+ ld [CurItem], a
+ ld a, [wcfa9]
+ ld c, a
+ push bc
+ call Kurt_PrintTextHowMany
+ call Kurt_SelectQuantity
+ pop bc
+ jr nc, .loop
+ ld a, [wd10c]
+ ld [wdca4], a
+ call Kurt_GiveUpSelectedQuantityOfSelectedApricorn
+
+.done
+ call Function1d7d
+ ret
+; 88055
+
+Kurt_SelectApricorn: ; 88055
+ callba FindApricornsInBag
+ jr c, .nope
+ ld hl, .MenuDataHeader
+ call CopyMenuDataHeader
+ ld a, [MenuSelection]
+ ld [wcf88], a
+ xor a
+ ld [hBGMapMode], a
+ call Function352f
+ call UpdateSprites
+ call Function350c
+ ld a, [wcf73]
+ cp $2
+ jr z, .nope
+ ld a, [MenuSelection]
+ cp -1
+ jr nz, .done
+
+.nope
+ xor a
+
+.done
+ ld c, a
+ ret
+; 88086
+
+.MenuDataHeader: ; 0x88086
+ db $40 ; flags
+ db 01, 01 ; start coords
+ db 10, 13 ; end coords
+ dw .MenuData2
+ db 1 ; default option
+; 0x8808e
+
+ db 0
+
+.MenuData2: ; 0x8808f
+ db $10 ; flags
+ db 4, 7
+ db 1
+ dbw 0, Buffer1
+ dbw BANK(.Name), .Name
+ dbw BANK(.Quantity), .Quantity
+ dbw BANK(NULL), NULL
+
+.Name: ; 8809f
+ ld a, [MenuSelection]
+ and a
+ ret z
+ callba PlaceMenuItemName
+ ret
+; 880ab
+
+.Quantity: ; 880ab
+ ld a, [MenuSelection]
+ ld [CurItem], a
+ call Kurt_GetQuantityOfApricorn
+ ret z
+ ld a, [wd10c]
+ ld [wcf75], a
+ callba PlaceMenuItemQuantity
+ ret
+; 880c2
+
+Kurt_SelectQuantity: ; 880c2
+ ld a, [CurItem]
+ ld [MenuSelection], a
+ call Kurt_GetQuantityOfApricorn
+ jr z, .done
+ ld a, [wd10c]
+ ld [wd10d], a
+ ld a, $1
+ ld [wd10c], a
+ ld hl, .MenuDataHeader
+ call LoadMenuDataHeader
+.loop
+ xor a
+ ld [hBGMapMode], a
+ call Function1cbb
+ call UpdateSprites
+ call .PlaceApricornName
+ call PlaceApricornQuantity
+ call Function321c
+ callba Function27a28
+ jr nc, .loop
+
+ push bc
+ call PlayClickSFX
+ pop bc
+ ld a, b
+ cp -1
+ jr z, .done
+ ld a, [wd10c]
+ ld [wd10c], a ; What is the point of this operation?
+ scf
+
+.done
+ call WriteBackup
+ ret
+; 8810d
+
+.MenuDataHeader: ; 0x8810d
+ db $40 ; flags
+ db 09, 06 ; start coords
+ db 12, 19 ; end coords
+
+ db 0, 0, -1, 0 ; XXX
+
+.PlaceApricornName: ; 88116
+ call GetMemTileCoord
+ ld de, $0015
+ add hl, de
+ ld d, h
+ ld e, l
+ callba PlaceMenuItemName
+ ret
+; 88126
+
+PlaceApricornQuantity: ; 88126
+ call GetMemTileCoord
+ ld de, $0032
+ add hl, de
+ ld [hl], "×"
+ inc hl
+ ld de, wd10c
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 2
+ jp PrintNum
+; 88139
+
+Kurt_GetQuantityOfApricorn: ; 88139
+ push bc
+ ld hl, NumItems
+ ld a, [CurItem]
+ ld c, a
+ ld b, $0
+.loop
+ inc hl
+ ld a, [hli]
+ cp -1
+ jr z, .done
+ cp c
+ jr nz, .loop
+ ld a, [hl]
+ add b
+ ld b, a
+ jr nc, .loop
+ ld b, -1
+
+.done
+ ld a, b
+ sub 99
+ jr c, .done2
+ ld b, 99
+
+.done2
+ ld a, b
+ ld [wd10c], a
+ and a
+ pop bc
+ ret
+; 88161
+
+Kurt_GiveUpSelectedQuantityOfSelectedApricorn: ; 88161
+; Get the quantity of Apricorns of type [CurItem]
+; in the bag. Compatible with multiple stacks.
+
+; Initialize the search.
+ push de
+ push bc
+ ld hl, NumItems
+ ld a, [CurItem]
+ ld c, a
+ ld e, $0
+ xor a
+ ld [ItemCountBuffer], a
+ ld a, -1
+ ld [MiscBuffer2], a
+
+; Search for [CurItem] in the bag.
+.loop1
+; Increase the total count.
+ ld a, [ItemCountBuffer]
+ inc a
+ ld [ItemCountBuffer], a
+; Get the index of the next item.
+ inc hl
+ ld a, [hli]
+; If we've reached the end of the pocket, break.
+ cp -1
+ jr z, .okay1
+; If we haven't found what we're looking for, continue.
+ cp c
+ jr nz, .loop1
+; Increment the result counter and store the bag index of the match.
+ ld d, $0
+ push hl
+ ld hl, MiscBuffer2
+ add hl, de
+ inc e
+ ld a, [ItemCountBuffer]
+ dec a
+ ld [hli], a
+ ld a, -1
+ ld [hl], a
+ pop hl
+ jr .loop1
+
+.okay1
+; How many stacks have we found?
+ ld a, e
+ and a
+ jr z, .done
+ dec a
+ jr z, .OnlyOne
+ ld hl, MiscBuffer2
+
+.loop2
+ ld a, [hl]
+ ld c, a
+ push hl
+.loop3
+ inc hl
+ ld a, [hl]
+ cp -1
+ jr z, .okay2
+ ld b, a
+ ld a, c
+ call Kurt_GetAddressOfApricornQuantity
+ ld e, a
+ ld a, b
+ call Kurt_GetAddressOfApricornQuantity
+ sub e
+ jr z, .equal
+ jr c, .less
+ jr .loop3
+
+.equal
+ ld a, c
+ sub b
+ jr nc, .loop3
+
+.less
+ ld a, c
+ ld c, b
+ ld [hl], a
+ ld a, c
+ pop hl
+ ld [hl], a
+ push hl
+ jr .loop3
+
+.okay2
+ pop hl
+ inc hl
+ ld a, [hl]
+ cp -1
+ jr nz, .loop2
+
+.OnlyOne
+ ld hl, MiscBuffer2
+.loop4
+ ld a, [hl]
+ cp -1
+ jr z, .done
+ push hl
+ ld [ItemCountBuffer], a
+ call Kurt_GetRidOfItem
+ pop hl
+ ld a, [wd10c]
+ and a
+ jr z, .done
+ push hl
+ ld a, [hli]
+ ld c, a
+.loop5
+ ld a, [hli]
+ cp -1
+ jr z, .okay3
+ cp c
+ jr c, .loop5
+ dec a
+ dec hl
+ ld [hli], a
+ jr .loop5
+
+.okay3
+ pop hl
+ inc hl
+ jr .loop4
+
+.done
+ ld a, [wd10c]
+ and a
+ pop bc
+ pop de
+ ret
+; 88201
+
+Kurt_GetAddressOfApricornQuantity: ; 88201
+ push hl
+ push bc
+ ld hl, NumItems
+ inc hl
+ ld c, a
+ ld b, $0
+rept 2
+ add hl, bc
+endr
+ inc hl
+ ld a, [hl]
+ pop bc
+ pop hl
+ ret
+; 88211
+
+Kurt_GetRidOfItem: ; 88211
+ push bc
+ ld hl, NumItems
+ ld a, [ItemCountBuffer]
+ ld c, a
+ ld b, $0
+ inc hl
+rept 2
+ add hl, bc
+endr
+ ld a, [CurItem]
+ ld c, a
+ ld a, [hli]
+ cp -1
+ jr z, .done
+ cp c
+ jr nz, .done
+ ld a, [wd10c]
+ ld c, a
+ ld a, [hl]
+ sub c
+ ld b, c
+ jr nc, .okay
+ add c
+ ld b, a
+
+.okay
+ push bc
+ ld hl, NumItems
+ ld a, b
+ ld [wd10c], a
+ call TossItem
+ pop bc
+ ld a, c
+ sub b
+
+.done
+ ld [wd10c], a
+ pop bc
+ ret
+; 88248
diff --git a/event/mom.asm b/event/mom.asm
index f6bccdc28..a659eddd4 100644
--- a/event/mom.asm
+++ b/event/mom.asm
@@ -1,8 +1,8 @@
Special_BankOfMom: ; 16218
- ld a, [$ffaa]
+ ld a, [hInMenu]
push af
ld a, $1
- ld [$ffaa], a
+ ld [hInMenu], a
xor a
ld [wcf63], a
.asm_16223
@@ -14,7 +14,7 @@ Special_BankOfMom: ; 16218
.asm_1622f
pop af
- ld [$ffaa], a
+ ld [hInMenu], a
ret
; 16233
diff --git a/event/unown.asm b/event/unown.asm
new file mode 100644
index 000000000..03ebbbaff
--- /dev/null
+++ b/event/unown.asm
@@ -0,0 +1,300 @@
+
+
+SpecialHoOhChamber: ; 0x8addb
+ ld hl, PartySpecies
+ ld a, [hl]
+ cp HO_OH ; is Ho-oh the first Pokémon in the party?
+ jr nz, .done ; if not, we're done
+ call GetSecondaryMapHeaderPointer
+ ld de, EVENT_WALL_OPENED_IN_HO_OH_CHAMBER
+ ld b, SET_FLAG
+ call EventFlagAction
+.done
+ ret
+; 0x8adef
+
+SpecialOmanyteChamber: ; 8adef
+ call GetSecondaryMapHeaderPointer
+ ld de, EVENT_WALL_OPENED_IN_OMANYTE_CHAMBER
+ ld b, CHECK_FLAG
+ call EventFlagAction
+ ld a, c
+ and a
+ jr nz, .nope
+
+ ld a, WATER_STONE
+ ld [CurItem], a
+ ld hl, NumItems
+ call CheckItem
+ jr c, .open
+
+ ld a, [PartyCount]
+ ld b, a
+ inc b
+.loop
+ dec b
+ jr z, .nope
+ ld a, b
+ dec a
+ ld [CurPartyMon], a
+ push bc
+ ld a, PartyMon1Item - PartyMon1
+ call GetPartyParamLocation
+ pop bc
+ ld a, [hl]
+ cp WATER_STONE
+ jr nz, .loop
+
+.open
+ call GetSecondaryMapHeaderPointer
+ ld de, EVENT_WALL_OPENED_IN_OMANYTE_CHAMBER
+ ld b, SET_FLAG
+ call EventFlagAction
+
+.nope
+ ret
+; 8ae30
+
+SpecialAerodactylChamber: ; 8ae30
+ push de
+ push bc
+
+ call GetSecondaryMapHeaderPointer
+ ld a, h
+ cp RuinsofAlphAerodactylChamber_SecondMapHeader / $100
+ jr nz, .nope
+ ld a, l
+ cp RuinsofAlphAerodactylChamber_SecondMapHeader % $100
+ jr nz, .nope
+
+ ld de, EVENT_WALL_OPENED_IN_AERODACTYL_CHAMBER
+ ld b, SET_FLAG
+ call EventFlagAction
+
+ scf
+ jr .done
+
+.nope
+ and a
+
+.done
+ pop bc
+ pop de
+ ret
+; 8ae4e
+
+SpecialKabutoChamber: ; 8ae4e
+ push hl
+ push de
+
+ call GetSecondaryMapHeaderPointer
+ ld a, h
+ cp RuinsofAlphKabutoChamber_SecondMapHeader / $100
+ jr nz, .done
+ ld a, l
+ cp RuinsofAlphKabutoChamber_SecondMapHeader % $100
+ jr nz, .done
+
+ ld de, EVENT_WALL_OPENED_IN_KABUTO_CHAMBER
+ ld b, SET_FLAG
+ call EventFlagAction
+
+.done
+ pop de
+ pop hl
+ ret
+; 8ae68
+
+Special_DisplayUnownWords: ; 8ae68
+ ld a, [ScriptVar]
+ ld hl, MenuDataHeader_0x8aed5
+ and a
+ jr z, .asm_8ae79
+
+ ld d, $0
+ ld e, $5
+.asm_8ae75
+ add hl, de
+ dec a
+ jr nz, .asm_8ae75
+
+.asm_8ae79
+ call LoadMenuDataHeader
+ xor a
+ ld [hBGMapMode], a
+ call Function1cbb
+ call UpdateSprites
+ call Function321c
+ call GetMemTileCoord
+ inc hl
+ ld d, $0
+ ld e, $14
+rept 2
+ add hl, de
+endr
+ ld a, [ScriptVar]
+ ld c, a
+ ld de, Unknown_8aebc
+ and a
+ jr z, .asm_8aea5
+.asm_8ae9c
+ ld a, [de]
+ inc de
+ cp $ff
+ jr nz, .asm_8ae9c
+ dec c
+ jr nz, .asm_8ae9c
+
+.asm_8aea5
+ call Function8af09
+ ld bc, AttrMap - TileMap
+ add hl, bc
+ call Function8aee9
+ call Function3200
+ call Functiona36
+ call PlayClickSFX
+ call WriteBackup
+ ret
+; 8aebc
+
+Unknown_8aebc: ; 8aebc
+ db $08, $44, $04, $00, $2e, $08, $ff
+ db $26, $20, $0c, $0e, $46, $ff
+ db $4c, $00, $46, $08, $42, $ff
+ db $0e, $2c, $64, $2c, $0e, $ff
+; 8aed5
+
+MenuDataHeader_0x8aed5: ; 0x8aed5
+ db $40 ; flags
+ db 04, 03 ; start coords
+ db 09, 16 ; end coords
+
+MenuDataHeader_0x8aeda: ; 0x8aeda
+ db $40 ; flags
+ db 04, 04 ; start coords
+ db 09, 15 ; end coords
+
+MenuDataHeader_0x8aedf: ; 0x8aedf
+ db $40 ; flags
+ db 04, 04 ; start coords
+ db 09, 15 ; end coords
+
+MenuDataHeader_0x8aee4: ; 0x8aee4
+ db $40 ; flags
+ db 04, 04 ; start coords
+ db 09, 15 ; end coords
+; 8aee9
+
+Function8aee9: ; 8aee9
+.asm_8aee9
+ ld a, [de]
+ cp $ff
+ ret z
+ cp $60
+ ld a, $d
+ jr c, .asm_8aef5
+ ld a, $5
+
+.asm_8aef5
+ call Function8aefd
+rept 2
+ inc hl
+endr
+ inc de
+ jr .asm_8aee9
+; 8aefd
+
+Function8aefd: ; 8aefd
+ push hl
+ ld [hli], a
+ ld [hld], a
+ ld b, $0
+ ld c, $14
+ add hl, bc
+ ld [hli], a
+ ld [hl], a
+ pop hl
+ ret
+; 8af09
+
+Function8af09: ; 8af09
+ push hl
+ push de
+.asm_8af0b
+ ld a, [de]
+ cp $ff
+ jr z, .asm_8af19
+ ld c, a
+ call Function8af1c
+rept 2
+ inc hl
+endr
+ inc de
+ jr .asm_8af0b
+
+.asm_8af19
+ pop de
+ pop hl
+ ret
+; 8af1c
+
+Function8af1c: ; 8af1c
+ push hl
+ ld a, c
+ cp $60
+ jr z, .asm_8af3b
+ cp $62
+ jr z, .asm_8af4b
+ cp $64
+ jr z, .asm_8af5b
+ ld [hli], a
+ inc a
+ ld [hld], a
+ dec a
+ ld b, $0
+ ld c, $14
+ add hl, bc
+ ld c, $10
+ add c
+ ld [hli], a
+ inc a
+ ld [hl], a
+ pop hl
+ ret
+
+.asm_8af3b
+ ld [hl], $5b
+ inc hl
+ ld [hl], $5c
+ ld bc, $0013
+ add hl, bc
+ ld [hl], $4d
+ inc hl
+ ld [hl], $5d
+ pop hl
+ ret
+
+.asm_8af4b
+ ld [hl], $4e
+ inc hl
+ ld [hl], $4f
+ ld bc, $0013
+ add hl, bc
+ ld [hl], $5e
+ inc hl
+ ld [hl], $5f
+ pop hl
+ ret
+
+.asm_8af5b
+ ld [hl], $2
+ inc hl
+ ld [hl], $3
+ ld bc, $0013
+ add hl, bc
+ ld [hl], $3
+ inc hl
+ ld [hl], $2
+ pop hl
+ ret
+; 8af6b
diff --git a/home.asm b/home.asm
index ec4daa2d2..f59175bd0 100644
--- a/home.asm
+++ b/home.asm
@@ -1184,15 +1184,15 @@ Function352f:: ; 352f
Function354b:: ; 354b
call DelayFrame
- ld a, [$ffaa]
+ ld a, [hInMenu]
push af
ld a, $1
- ld [$ffaa], a
+ ld [hInMenu], a
call Functiona57
pop af
- ld [$ffaa], a
+ ld [hInMenu], a
- ld a, [$ffa9]
+ ld a, [hJoyLast]
and D_RIGHT + D_LEFT + D_UP + D_DOWN
ld c, a
ld a, [hJoyPressed]
@@ -2220,7 +2220,7 @@ Function3f6e:: ; 3f6e
; 3f7c
Function3f7c:: ; 3f7c
- call Function1cfd
+ call GetMemTileCoord
call Function1c53
dec b
dec c
diff --git a/home/joypad.asm b/home/joypad.asm
index aa7d092af..b16b716ac 100644
--- a/home/joypad.asm
+++ b/home/joypad.asm
@@ -39,7 +39,7 @@ Joypad:: ; 935
; We can only get four inputs at a time.
; We take d-pad first for no particular reason.
- ld a, D_PAD
+ ld a, R_DPAD
ld [rJOYP], a
; Read twice to give the request time to take.
rept 2
@@ -57,7 +57,7 @@ endr
; Buttons make 8 total inputs (A, B, Select, Start).
; We can fit this into one byte.
- ld a, BUTTONS
+ ld a, R_BUTTONS
ld [rJOYP], a
; Wait for input to stabilize.
rept 6
@@ -285,7 +285,7 @@ Functiona1b:: ; a1b
cp D_UP | SELECT | B_BUTTON
jr z, .asm_a34
- ld a, [$ffa9]
+ ld a, [hJoyLast]
and START | A_BUTTON
jr nz, .asm_a34
@@ -325,29 +325,29 @@ CloseText:: ; a46
Functiona57:: ; a57
call GetJoypad
- ld a, [$ffaa]
+ ld a, [hInMenu]
and a
ld a, [hJoyPressed]
- jr z, .asm_a63
+ jr z, .ok
ld a, [hJoyDown]
-.asm_a63
+.ok
ld [hJoyLast], a
ld a, [hJoyPressed]
and a
- jr z, .asm_a70
+ jr z, .checkframedelay
ld a, 15
ld [TextDelayFrames], a
ret
-.asm_a70
+.checkframedelay
ld a, [TextDelayFrames]
and a
- jr z, .asm_a7a
+ jr z, .restartframedelay
xor a
ld [hJoyLast], a
ret
-.asm_a7a
+.restartframedelay
ld a, 5
ld [TextDelayFrames], a
ret
@@ -356,23 +356,23 @@ Functiona57:: ; a57
Functiona80:: ; a80
ld a, [hConnectionStripLength]
push af
- ld a, [$ffb0]
+ ld a, [hConnectedMapWidth]
push af
xor a
ld [hConnectionStripLength], a
ld a, $6
- ld [$ffb0], a
+ ld [hConnectedMapWidth], a
.asm_a8d
push hl
hlcoord 18, 17
call Functionb06
pop hl
call Functiona57
- ld a, [$ffa9]
+ ld a, [hJoyLast]
and $3
jr z, .asm_a8d
pop af
- ld [$ffb0], a
+ ld [hConnectedMapWidth], a
pop af
ld [hConnectionStripLength], a
ret
@@ -380,7 +380,7 @@ Functiona80:: ; a80
Functionaa5:: ; aa5
call Functiona57
- ld a, [$ffa9]
+ ld a, [hJoyLast]
and A_BUTTON | B_BUTTON
jr z, Functionaa5
ret
@@ -456,16 +456,16 @@ Functionb06:: ; b06
dec a
ld [hConnectionStripLength], a
ret nz
- ld a, [$ffb0]
+ ld a, [hConnectedMapWidth]
dec a
- ld [$ffb0], a
+ ld [hConnectedMapWidth], a
ret nz
ld a, $7a
ld [hl], a
ld a, $ff
ld [hConnectionStripLength], a
ld a, $6
- ld [$ffb0], a
+ ld [hConnectedMapWidth], a
ret
.asm_b27
@@ -477,12 +477,12 @@ Functionb06:: ; b06
ret nz
dec a
ld [hConnectionStripLength], a
- ld a, [$ffb0]
+ ld a, [hConnectedMapWidth]
dec a
- ld [$ffb0], a
+ ld [hConnectedMapWidth], a
ret nz
ld a, $6
- ld [$ffb0], a
+ ld [hConnectedMapWidth], a
ld a, $ee
ld [hl], a
ret
diff --git a/home/menu.asm b/home/menu.asm
index 82bac3b99..bc7751a0b 100644
--- a/home/menu.asm
+++ b/home/menu.asm
@@ -81,16 +81,16 @@ InterpretMenu2:: ; 0x1d81
call Function1c66
ld a, [wcf91]
bit 7, a
- jr z, .asm_1da7 ; 0x1d98 $d
+ jr z, .cancel ; 0x1d98 $d
call Function1c10
call Function1bc9
call Function1ff8
bit 1, a
- jr z, .asm_1da9 ; 0x1da5 $2
-.asm_1da7
+ jr z, .okay ; 0x1da5 $2
+.cancel
scf
ret
-.asm_1da9
+.okay
and a
ret
; 0x1dab
@@ -165,15 +165,15 @@ Function1dfe:: ; 1dfe
call DelayFrames
call WriteBackup
pop af
- jr c, .asm_1e16
+ jr c, .no
ld a, [wcfa9]
cp 2 ; no
- jr z, .asm_1e16
+ jr z, .no
and a
ret
-.asm_1e16
- ld a, $2
+.no
+ ld a, 2
ld [wcfa9], a
scf
ret
@@ -308,7 +308,7 @@ Function1ebd:: ; 1ebd
; 1eda
Function1eda:: ; 1eda
- call Function1cfd
+ call GetMemTileCoord
ld bc, $002a
add hl, bc
.asm_1ee1
@@ -521,13 +521,13 @@ Function1ff0:: ; 1ff0
Function1ff8:: ; 1ff8
push af
and $3
- jr z, .asm_2007
+ jr z, .nosound
ld hl, wcf81
bit 3, [hl]
- jr nz, .asm_2007
+ jr nz, .nosound
call PlayClickSFX
-.asm_2007
+.nosound
pop af
ret
; 2009
diff --git a/home/movement.asm b/home/movement.asm
index 87f28f5ca..d85be3b09 100644
--- a/home/movement.asm
+++ b/home/movement.asm
@@ -159,11 +159,11 @@ Function1bd3:: ; 1bd3
Function1bdd:: ; 1bdd
push bc
push af
- ld a, [$ffa9]
- and $f0
+ ld a, [hJoyLast]
+ and D_PAD
ld b, a
ld a, [hJoyPressed]
- and $f
+ and BUTTONS
or b
ld b, a
pop af
@@ -214,7 +214,7 @@ WriteBackup:: ; 0x1c17
ret
Function1c23:: ; 0x1c23
- call Function1cfd
+ call GetMemTileCoord
call Function1c30
call Function1d19
call Function1c30
diff --git a/home/palettes.asm b/home/palettes.asm
index 32ef29057..93498aedd 100644
--- a/home/palettes.asm
+++ b/home/palettes.asm
@@ -79,6 +79,7 @@ DmgToCgbBGPals:: ; c9f
ld [rBGP], a
push af
+; Don't need to be here if CGB
ld a, [hCGB]
and a
jr z, .end
@@ -89,7 +90,7 @@ DmgToCgbBGPals:: ; c9f
ld a, [rSVBK]
push af
- ld a, 5
+ ld a, 5 ; gfx
ld [rSVBK], a
; copy & reorder bg pal buffer
@@ -165,16 +166,21 @@ DmgToCgbObjPals:: ; ccb
Functioncf8:: ; cf8
ld [rOBP0], a
push af
+
+; Don't need to be here if CGB
ld a, [hCGB]
and a
- jr z, .asm_d22
+ jr z, .done
+
push hl
push de
push bc
+
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, 5 ; gfx
ld [rSVBK], a
+
ld hl, OBPals
ld de, Unkn2Pals
ld a, [rOBP0]
@@ -183,13 +189,15 @@ Functioncf8:: ; cf8
call CopyPals
ld a, $1
ld [hCGBPalUpdate], a
+
pop af
ld [rSVBK], a
+
pop bc
pop de
pop hl
-.asm_d22
+.done
pop af
ret
; d24
diff --git a/home/text.asm b/home/text.asm
index 79f85d38b..77053d0d6 100644
--- a/home/text.asm
+++ b/home/text.asm
@@ -17,19 +17,19 @@ ClearBox:: ; fb6
ld a, " "
FillBoxWithByte::
-.col
+.row
push bc
push hl
-.row
+.col
ld [hli], a
dec c
- jr nz, .row
+ jr nz, .col
pop hl
ld bc, SCREEN_WIDTH
add hl, bc
pop bc
dec b
- jr nz, .col
+ jr nz, .row
ret
; fc8
@@ -61,8 +61,11 @@ ClearScreen:: ; fdb
TextBox:: ; fe8
-; Draw a text box width c height b at hl.
-; Dimensions do not include the border.
+; Draw a text box at hl with room for
+; b lines of c characters each.
+; Places a border around the textbox,
+; then switches the palette to the
+; text black-and-white scheme.
push bc
push hl
call TextBoxBorder
@@ -263,14 +266,14 @@ endm
dict "<ROCKET>", RocketChar
dict "<TM>", TMChar
dict "<TRNER>", TrainerChar
- dict $23, Char23
- dict $22, Char22
+ dict $23, PlaceKougeki
+ dict "<LNBRK>", Char22
dict "<CONT>", ContText
dict "<......>", SixDotsChar
dict "<DONE>", DoneText
dict "<PROMPT>", PromptText
dict "<PKMN>", PlacePKMN
- dict $24, PlacePOKE
+ dict "<POKE>", PlacePOKE
dict $25, NextChar
dict2 $1f, " "
dict "<DEXEND>", PlaceDexEnd
@@ -349,7 +352,7 @@ TMChar: print_name TMCharText ; 11b0
PCChar: print_name PCCharText ; 11b7
RocketChar: print_name RocketCharText ; 11be
PlacePOKe: print_name PlacePOKeText ; 11c5
-Char23: print_name Char23Text ; 11cc
+PlaceKougeki: print_name KougekiText ; 11cc
SixDotsChar: print_name SixDotsCharText ; 11d3
PlacePKMN: print_name PlacePKMNText ; 11da
PlacePOKE: print_name PlacePOKEText ; 11e1
@@ -444,7 +447,7 @@ TrainerCharText:: db "TRAINER@" ; 1276
PCCharText:: db "PC@" ; 127e
RocketCharText:: db "ROCKET@" ; 1281
PlacePOKeText:: db "POKé@" ; 1288
-Char23Text:: db "こうげき@" ; 128d
+KougekiText:: db "こうげき@" ; 128d
SixDotsCharText:: db "……@" ; 1292
EnemyText:: db "Enemy @" ; 1295
PlacePKMNText:: db "<PK><MN>@" ; PK MN ; 129c
diff --git a/home/tilemap.asm b/home/tilemap.asm
index d0875c37b..4ce4dced8 100644
--- a/home/tilemap.asm
+++ b/home/tilemap.asm
@@ -99,7 +99,7 @@ Function1c89:: ; 1c89
ld a, [wcf91]
bit 4, a
ret z
- call Function1cfd
+ call GetMemTileCoord
ld a, [de]
ld c, a
inc de
@@ -109,7 +109,7 @@ Function1c89:: ; 1c89
; 1cbb
Function1cbb:: ; 1cbb
- call Function1cfd
+ call GetMemTileCoord
call Function1c53
dec b
dec c
@@ -139,7 +139,7 @@ Function1cc6:: ; 1cc6
; 1ce1
Function1ce1:: ; 1ce1
- call Function1cfd
+ call GetMemTileCoord
ld bc, $0015
add hl, bc
call Function1c53
@@ -150,7 +150,7 @@ Function1ce1:: ; 1ce1
; 1cf1
Function1cf1:: ; 1cf1
- call Function1cfd
+ call GetMemTileCoord
call Function1c53
inc c
inc b
@@ -159,7 +159,7 @@ Function1cf1:: ; 1cf1
; 1cfd
-Function1cfd:: ; 1cfd
+GetMemTileCoord:: ; 1cfd
ld a, [wcf83]
ld c, a
ld a, [wcf82]
diff --git a/home/vblank.asm b/home/vblank.asm
index b8b8b0efb..870ef4808 100644
--- a/home/vblank.asm
+++ b/home/vblank.asm
@@ -146,7 +146,7 @@ VBlank0:: ; 2b1
rst Bankswitch
ld a, [hSeconds]
- ld [$ffe3], a
+ ld [hSecondsBackup], a
ret
; 325
diff --git a/hram.asm b/hram.asm
index 10a96f4b8..0cbb79688 100644
--- a/hram.asm
+++ b/hram.asm
@@ -15,6 +15,8 @@ hMinutes EQU $ff96
hSeconds EQU $ff98
+hVBlankCounter EQU $ff9b
+
hROMBank EQU $ff9d
hVBlank EQU $ff9e
hMapEntryMethod EQU $ff9f
@@ -27,6 +29,7 @@ hJoyReleased EQU $ffa6
hJoyPressed EQU $ffa7
hJoyDown EQU $ffa8
hJoyLast EQU $ffa9
+hInMenu EQU $ffaa
hConnectionStripLength EQU $ffaf
hConnectedMapWidth EQU $ffb0
@@ -44,6 +47,8 @@ hMultiplicand EQU $ffb4 ; 3 bytes long
hMultiplier EQU $ffb7 ; 1 byte long
hProduct EQU $ffb3 ; result (4 bytes long)
+hMathBuffer EQU $ffb8
+
hPrintNum1 EQU $ffb3
hPrintNum2 EQU $ffb4
hPrintNum3 EQU $ffb5
@@ -51,7 +56,6 @@ hPrintNum4 EQU $ffb6
hPrintNum5 EQU $ffb7
hPrintNum6 EQU $ffb8
hPrintNum7 EQU $ffb9
-hMathBuffer EQU $ffb8
hMoneyTemp EQU $ffc3
@@ -81,7 +85,7 @@ hLastTalked EQU $ffe0
hRandom EQU $ffe1
hRandomAdd EQU $ffe1
hRandomSub EQU $ffe2
-
+hSecondsBackup EQU $ffe3
hBattleTurn EQU $ffe4
hCGBPalUpdate EQU $ffe5
hCGB EQU $ffe6
diff --git a/lib/mobile/main.asm b/lib/mobile/main.asm
index 739e12641..8d763dae0 100644
--- a/lib/mobile/main.asm
+++ b/lib/mobile/main.asm
@@ -6,43 +6,53 @@ INCLUDE "gbhw.asm"
SECTION "Main", ROMX
Function110000: ; 110000 (44:4000)
+; Copy b bytes from hl to de
+.loop
ld a, [hli]
ld [de], a
inc de
dec b
- jr nz, Function110000
+ jr nz, .loop
ret
; 110007 (44:4007)
Function110007: ; 110007
-.asm_110007
+; Copy bytes from hl to de until a 0 is encountered.
+; Include the 0 in the copy, and count the number of
+; nonzero bytes copied. Keep the de pointer at the
+; copied zero.
+.loop
ld a, [hli]
ld [de], a
or a
ret z
inc de
inc bc
- jr .asm_110007
+ jr .loop
; 11000f
Function11000f: ; 11000f
+; Copy bytes from hl to de until a 0 is encountered,
+; or a bytes have been copied, whichever comes first.
+; Add the byte count to the count previously stored
+; in bc.
push bc
ld c, $0
ld b, a
dec b
-.asm_110014
+.loop
ld a, [hli]
ld [de], a
or a
- jr z, .asm_110020
+ jr z, .done
inc de
inc c
dec b
- jr nz, .asm_110014
+ jr nz, .loop
xor a
ld [de], a
-.asm_110020
+.done
ld a, c
pop bc
add c
@@ -54,6 +64,7 @@ Function11000f: ; 11000f
; 110029
Function110029: ; 110029 (44:4029)
+; Clear two bytes at $ca3a.
xor a
ld hl, $ca3a
ld [hli], a
@@ -61,21 +72,25 @@ Function110029: ; 110029 (44:4029)
ret
Function110030:: ; 110030 (44:4030)
+; Use the byte at $c988 as a parameter
+; for a jumptable.
+; If [$c988] in {12, 14, 16},
+; clear [$c835].
push de
ld a, [$c988]
- cp $c
- jr z, .asm_110047
- cp $e
- jr z, .asm_110047
- cp $10
- jr z, .asm_110047
+ cp 2 * 6
+ jr z, .noreset
+ cp 2 * 7
+ jr z, .noreset
+ cp 2 * 8
+ jr z, .noreset
xor a
ld [$c835], a
ld a, [$c988]
-.asm_110047
+.noreset
ld d, $0
ld e, a
- ld hl, Jumptable_110070
+ ld hl, .jumptable
add hl, de
ld a, [hli]
ld [$c988], a
@@ -89,19 +104,19 @@ Function110030:: ; 110030 (44:4030)
push hl
ld a, $36
cp l
- jr nz, .asm_110066
+ jr nz, .okay
ld a, $42
cp h
-.asm_110066
+.okay
call nz, Function1100b4
ld hl, $c986
ld a, [hli]
ld h, [hl]
ld l, a
- ret
+ ret ; indirectly jump to the function loaded from the jumptable, which returns to Function3e60.
; 110070 (44:4070)
-Jumptable_110070: ; 110070
+.jumptable: ; 110070
dw Function110115
dw Function110236
dw Function110291
@@ -140,7 +155,7 @@ Jumptable_110070: ; 110070
Function1100b4: ; 1100b4 (44:40b4)
push bc
-.asm_1100b5
+.loop
di
ld a, [$c800]
ld b, a
@@ -150,19 +165,19 @@ Function1100b4: ; 1100b4 (44:40b4)
ei
or a
bit 0, a
- jr z, .asm_1100da
+ jr z, .done
ld a, b
or a
- jr nz, .asm_1100b5
+ jr nz, .loop
ld a, c
cp $4
- jr z, .asm_1100b5
+ jr z, .loop
xor a
ld [$c80f], a
ld hl, $c821
set 1, [hl]
scf
-.asm_1100da
+.done
pop bc
ret
; 1100dc (44:40dc)
diff --git a/macros/charmap.asm b/macros/charmap.asm
index de6519602..76fbd707e 100644
--- a/macros/charmap.asm
+++ b/macros/charmap.asm
@@ -106,6 +106,7 @@
charmap "♂", $ef
charmap "¥", $f0
charmap "×", $f1
+ charmap "·", $f2
charmap "/", $f3
charmap ",", $f4
charmap "♀", $f5
@@ -306,3 +307,4 @@
charmap "<......>", $56
charmap "<START>", $00
charmap "<DEXEND>", $5f
+ charmap "<LNBRK>", $22
diff --git a/main.asm b/main.asm
index adc84750d..22a6a0286 100644
--- a/main.asm
+++ b/main.asm
@@ -183,29 +183,29 @@ _ResetWRAM: ; 5bae
call ByteFill
ld a, [rLY]
- ld [$ffe3], a
+ ld [hSecondsBackup], a
call DelayFrame
ld a, [hRandomSub]
ld [PlayerID], a
ld a, [rLY]
- ld [$ffe3], a
+ ld [hSecondsBackup], a
call DelayFrame
ld a, [hRandomAdd]
ld [PlayerID + 1], a
call Random
- ld [wd84a], a
+ ld [wSecretID], a
call DelayFrame
call Random
- ld [wd84b], a
+ ld [wSecretID + 1], a
ld hl, PartyCount
call InitList
xor a
ld [wCurBox], a
- ld [wd4b4], a
+ ld [wSavedAtLeastOnce], a
call SetDefaultBoxNames
@@ -648,7 +648,7 @@ MenuData2_0x5f03: ; 5f03
Function5f1c: ; 5f1c
- call Function1cfd
+ call GetMemTileCoord
push hl
ld de, $005d
add hl, de
@@ -1154,7 +1154,7 @@ Function6292: ; 6292 ; unreferenced
ld hl, LYOverrides + $5f
ld a, [hl]
dec a
- ld bc, $0028
+ ld bc, 2 * SCREEN_WIDTH
call ByteFill
ret
; 62a3
@@ -1463,7 +1463,7 @@ GameInit:: ; 642e
call WhiteBGMap
call ClearTileMap
ld a, $98
- ld [$ffd7], a
+ ld [hBGMapAddress + 1], a
xor a
ld [hBGMapAddress], a
ld [hJoyDown], a
@@ -1527,7 +1527,7 @@ Function6473: ; 6473
; 64b9
Function64b9: ; 64b9
- ld [$ffd7], a
+ ld [hBGMapAddress + 1], a
xor a
ld [hBGMapAddress], a
ret
@@ -1566,9 +1566,9 @@ Function64db: ; 64db
ld [rHDMA1], a
ld a, w6_d000 % $100
ld [rHDMA2], a
- ld a, ($9800 % $8000) / $100
+ ld a, (VBGMap0 % $8000) / $100
ld [rHDMA3], a
- ld a, ($9800 % $8000) % $100
+ ld a, (VBGMap0 % $8000) % $100
ld [rHDMA4], a
ld a, $3f
ld [hDMATransfer], a
@@ -2422,7 +2422,7 @@ Function7041: ; 7041
ld bc, ObjectStructs
xor a
.loop
- ld [$ffb0], a
+ ld [hConnectedMapWidth], a
call GetObjectSprite
jr z, .nope
ld hl, OBJECT_04
@@ -2452,7 +2452,7 @@ Function7041: ; 7041
.ok2
ld a, [hConnectionStripLength]
ld l, a
- ld a, [$ffb0]
+ ld a, [hConnectedMapWidth]
cp l
jr nz, .setcarry
@@ -2469,7 +2469,7 @@ Function7041: ; 7041
jr nz, .nope
ld a, [hConnectionStripLength]
ld l, a
- ld a, [$ffb0]
+ ld a, [hConnectedMapWidth]
cp l
jr nz, .setcarry
@@ -2478,7 +2478,7 @@ Function7041: ; 7041
add hl, bc
ld b, h
ld c, l
- ld a, [$ffb0]
+ ld a, [hConnectedMapWidth]
inc a
cp NUM_OBJECT_STRUCTS
jr nz, .loop
@@ -2589,7 +2589,7 @@ Function7113: ; 7113
ld bc, ObjectStructs
xor a
.loop
- ld [$ffb0], a
+ ld [hConnectedMapWidth], a
call GetObjectSprite
jr z, .asm_7160
ld hl, OBJECT_03
@@ -2612,7 +2612,7 @@ Function7113: ; 7113
ld a, [hl]
cp d
jr nz, .asm_714e
- ld a, [$ffb0]
+ ld a, [hConnectedMapWidth]
cp $0
jr z, .asm_7160
jr .asm_716f
@@ -2635,7 +2635,7 @@ Function7113: ; 7113
add hl, bc
ld b, h
ld c, l
- ld a, [$ffb0]
+ ld a, [hConnectedMapWidth]
inc a
cp NUM_OBJECT_STRUCTS
jr nz, .loop
@@ -3066,16 +3066,16 @@ SpecialReturnShuckle: ; 737e
ret
; 73f7
-Function73f7: ; 73f7
+Special_BillsGrandfather: ; 73f7
callba SelectMonFromParty
- jr c, .asm_740e
+ jr c, .cancel
ld a, [CurPartySpecies]
ld [ScriptVar], a
- ld [wd265], a
+ ld [wNamedObjectIndexBuffer], a
call GetPokemonName
jp CopyPokemonName_Buffer1_Buffer3
-.asm_740e
+.cancel
xor a
ld [ScriptVar], a
ret
@@ -3215,7 +3215,7 @@ GetSpawnCoord: ; 8029
ld [hConnectionStripLength], a
ld bc, MapObjects
ld a, $0
- ld [$ffb0], a
+ ld [hConnectedMapWidth], a
ld de, ObjectStructs
call Function8116
ld a, $0
@@ -3314,12 +3314,12 @@ CopyObjectStruct:: ; 80e7
ld a, 1
ld de, OBJECT_STRUCT_LENGTH
.loop
- ld [$ffb0], a
+ ld [hConnectedMapWidth], a
ld a, [hl]
and a
jr z, .done
add hl, de
- ld a, [$ffb0]
+ ld a, [hConnectedMapWidth]
inc a
cp NUM_OBJECT_STRUCTS
jr nz, .loop
@@ -3346,7 +3346,7 @@ Function8116: ; 8116
; 811d
Function811d: ; 811d
- ld a, [$ffb0]
+ ld a, [hConnectedMapWidth]
ld hl, MAPOBJECT_OBJECT_STRUCT_ID
add hl, bc
ld [hl], a
@@ -3833,7 +3833,7 @@ Function839e:: ; 839e
ld hl, OBJECT_SPRITE_Y
add hl, de
ld [hl], a
- ld a, [$ffb0]
+ ld a, [hConnectedMapWidth]
ld hl, OBJECT_32
add hl, de
ld [hl], a
@@ -6062,7 +6062,7 @@ GetFacingObject: ; cf0d
callba CheckFacingObject
jr nc, .fail
- ld a, [$ffb0]
+ ld a, [hConnectedMapWidth]
call GetObjectStruct
ld hl, OBJECT_MAP_OBJECT_INDEX
add hl, bc
@@ -6594,7 +6594,7 @@ UnknownText_0xd1d0: ; 0xd1d0
_ReceiveItem:: ; d1d5
- call CheckHLequTMsHMsEnd
+ call DoesHLEqualNumItems
jp nz, PutItemInPocket
push hl
call CheckItemPocket
@@ -6641,8 +6641,8 @@ _ReceiveItem:: ; d1d5
_TossItem:: ; d20d
- call CheckHLequTMsHMsEnd
- jr nz, .asm_d241
+ call DoesHLEqualNumItems
+ jr nz, .remove
push hl
call CheckItemPocket
pop de
@@ -6684,13 +6684,13 @@ _TossItem:: ; d20d
ld l, e
; d241
-.asm_d241
+.remove
jp RemoveItemFromPocket
; d244
_CheckItem:: ; d244
- call CheckHLequTMsHMsEnd
- jr nz, .asm_d278
+ call DoesHLEqualNumItems
+ jr nz, .nope
push hl
call CheckItemPocket
pop de
@@ -6732,16 +6732,16 @@ _CheckItem:: ; d244
ld l, e
; d278
-.asm_d278
+.nope
jp CheckTheItem
; d27b
-CheckHLequTMsHMsEnd: ; d27b
+DoesHLEqualNumItems: ; d27b
ld a, l
- cp TMsHMsEnd % $100
+ cp NumItems % $100
ret nz
ld a, h
- cp TMsHMsEnd / $100
+ cp NumItems / $100
ret
; d283
@@ -6749,21 +6749,21 @@ GetPocketCapacity: ; d283
ld c, MAX_ITEMS
ld a, e
cp NumItems % $100
- jr nz, .asm_d28e
+ jr nz, .not_bag
ld a, d
cp NumItems / $100
ret z
-.asm_d28e
+.not_bag
ld c, MAX_PC_ITEMS
ld a, e
cp PCItems % $100
- jr nz, .asm_d299
+ jr nz, .not_pc
ld a, d
cp PCItems / $100
ret z
-.asm_d299
+.not_pc
ld c, MAX_BALLS
ret
; d29c
@@ -10439,17 +10439,17 @@ Function116c1: ; 116c1
push af
xor a
ld [$ffde], a
- ld a, [$ffaa]
+ ld a, [hInMenu]
push af
ld a, $1
- ld [$ffaa], a
+ ld [hInMenu], a
call Function116f8
call DelayFrame
.asm_116e5
call Function11915
jr nc, .asm_116e5
pop af
- ld [$ffaa], a
+ ld [hInMenu], a
pop af
ld [$ffde], a
pop af
@@ -10994,7 +10994,7 @@ Unknown_11a82: ; 11a82
; 11a8b
Function11a8b: ; 11a8b (4:5a8b)
- ld hl, $ffa9
+ ld hl, hJoyLast
ld a, [hl]
and D_UP
jr nz, .up
@@ -11199,21 +11199,22 @@ Function11bd0: ; 11bd0 (4:5bd0)
; 11be0
Function11be0: ; 11be0
+; load $f2, ($eb * [wc6d3]), $50 into the dw address at wc6d0
ld hl, wc6d0
ld a, [hli]
ld h, [hl]
ld l, a
- ld [hl], $f2
+ ld [hl], "·"
inc hl
ld a, [wc6d3]
dec a
ld c, a
- ld a, $eb
-.asm_11bf0
+ ld a, "→"
+.loop
ld [hli], a
dec c
- jr nz, .asm_11bf0
- ld [hl], $50
+ jr nz, .loop
+ ld [hl], "@"
ret
; 11bf7
@@ -11385,17 +11386,17 @@ Function11e75: ; 11e75 (4:5e75)
push af
xor a
ld [$ffde], a
- ld a, [$ffaa]
+ ld a, [hInMenu]
push af
ld a, $1
- ld [$ffaa], a
+ ld [hInMenu], a
call Function11e9a
call DelayFrame
.asm_11e8e
call Function11fc0
jr nc, .asm_11e8e
pop af
- ld [$ffaa], a
+ ld [hInMenu], a
pop af
ld [$ffde], a
ret
@@ -11427,9 +11428,9 @@ Function11e9a: ; 11e9a (4:5e9a)
call GetSGBLayout
call WaitBGMap
call WaitTop
- ld a, $e4
+ ld a, %11100100
call DmgToCgbBGPals
- ld a, $e4
+ ld a, %11100100
call Functioncf8
call Function11be0
ld hl, wc6d0
@@ -11459,15 +11460,15 @@ String_11f7a: ; 11f7a
Function11f84: ; 11f84 (4:5f84)
call WaitTop
hlcoord 0, 0
- ld bc, $78
+ ld bc, 6 * SCREEN_WIDTH
ld a, $60
call ByteFill
hlcoord 0, 6
- ld bc, $f0
+ ld bc, 12 * SCREEN_WIDTH
ld a, " "
call ByteFill
hlcoord 1, 1
- ld bc, $412
+ lb bc, 4, SCREEN_WIDTH - 2
call ClearBox
ld de, String_121dd
@@ -11688,7 +11689,7 @@ Unknown_12102: ; 12102
; 1210c
Function1210c: ; 1210c (4:610c)
- ld hl, $ffa9
+ ld hl, hJoyLast
ld a, [hl]
and D_UP
jr nz, .up
@@ -12762,8 +12763,8 @@ endr
xor a
ld hl, MenuItemsList
ld [hli], a
- ld a, $ff
- ld bc, $000f
+ ld a, -1
+ ld bc, MenuItemsListEnd - (MenuItemsList + 1)
call ByteFill
ld de, MenuItemsList + 1
ld c, 0
@@ -13970,12 +13971,12 @@ Function12fd5: ; 12fd5
jp .asm_12ff2
.asm_13018
- ld a, $7f
+ ld a, " "
hlcoord 1, 11
- ld bc, $0005
+ ld bc, 5
call ByteFill
hlcoord 1, 12
- ld bc, $0512
+ lb bc, 5, SCREEN_WIDTH - 2
call ClearBox
hlcoord 1, 12
ld de, String_1316b
@@ -13992,7 +13993,7 @@ Function12fd5: ; 12fd5
xor a
ld [wd0e3], a
hlcoord 1, 2
- ld bc, $0812
+ lb bc, 8, SCREEN_WIDTH - 2
call ClearBox
jp .asm_12fe8
; 1305b
@@ -18408,8 +18409,8 @@ MenuData15a08: ; 0x15a08
db 4, 8 ; rows/cols?
db 2 ; horizontal spacing?
dbw 0, PCItems
- dbw BANK(Function24ab4), Function24ab4
- dbw BANK(Function24ac3), Function24ac3
+ dbw BANK(PlaceMenuItemName), PlaceMenuItemName
+ dbw BANK(PlaceMenuItemQuantity), PlaceMenuItemQuantity
dbw BANK(Function244c3), Function244c3
PC_DisplayText: ; 15a20
@@ -19096,7 +19097,7 @@ MenuData2_0x15e20: ; 0x15e20
db 4, 8 ; rows, columns
db 1 ; horizontal spacing
dbw 0, OBPals + 8 * 6
- dbw BANK(Function24ab4), Function24ab4
+ dbw BANK(PlaceMenuItemName), PlaceMenuItemName
dbw BANK(Function15e30), Function15e30
dbw BANK(Function244c3), Function244c3
; 15e30
@@ -20428,10 +20429,10 @@ Function16be4: ; 16be4
and a
ret z
- ld a, [$ffaa]
+ ld a, [hInMenu]
push af
ld a, $1
- ld [$ffaa], a
+ ld [hInMenu], a
ld a, [Options]
push af
set 4, a
@@ -20516,17 +20517,17 @@ Function16be4: ; 16be4
pop af
ld [Options], a
pop af
- ld [$ffaa], a
+ ld [hInMenu], a
call Function222a
ret
; 16ca0
Function16ca0: ; 16ca0
- ld a, [$ffa9]
- and $10
+ ld a, [hJoyLast]
+ and D_RIGHT
jr nz, .asm_16cb9
- ld a, [$ffa9]
- and $20
+ ld a, [hJoyLast]
+ and D_LEFT
jr nz, .asm_16cad
ret
@@ -20608,7 +20609,7 @@ Function16d20: ; 16d20
xor a
call GetSRAMBank
ld hl, sScratch
- ld bc, $0310
+ ld bc, $0310 ; 784
xor a
call ByteFill
ld hl, VTiles2 tile $31
@@ -20618,7 +20619,7 @@ Function16d20: ; 16d20
ld b, a
call Get2bpp
call CloseSRAM
- ld c, $14
+ ld c, 20
call DelayFrames
ret
; 16d57
@@ -20649,7 +20650,7 @@ INCBIN "gfx/unknown/016da4.1bpp"
Function16dac: ; 16dac
hlcoord 0, 0
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, $7f
+ ld a, " "
call ByteFill
hlcoord 7, 11
ld a, $31
@@ -21381,13 +21382,13 @@ Function17254: ; 17254 (5:7254)
push hl
push bc
hlcoord 0, 0
- ld bc, $168
- ld a, $7f
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
+ ld a, " "
call ByteFill
pop bc
pop hl
ld a, b
- ld [$ffd7], a
+ ld [hBGMapAddress + 1], a
ld a, c
ld [$ffad], a
ld bc, $707
@@ -21590,7 +21591,7 @@ Function17418: ; 17418 (5:7418)
jr nz, .asm_1741a
ret
-Function17421: ; 17421
+Special_DayCareMon1: ; 17421
ld hl, UnknownText_0x17467
call PrintText
ld a, [wBreedMon1Species]
@@ -21603,7 +21604,7 @@ Function17421: ; 17421
call Function1746c
jp PrintText
-Function17440: ; 17440
+Special_DayCareMon2: ; 17440
ld hl, UnknownText_0x17462
call PrintText
ld a, [wBreedMon2Species]
@@ -22592,7 +22593,7 @@ Function24374:: ; 24374
ld h, [hl]
ld l, a
set 0, [hl]
- call Function1cfd
+ call GetMemTileCoord
call Function243cd
call Function1d19
call Function243cd
@@ -22950,7 +22951,7 @@ Function245af:: ; 245af
ld [wcf73], a
ld [hBGMapMode], a
inc a
- ld [$ffaa], a
+ ld [hInMenu], a
call Function2471a
call Function24764
call Function247dd
@@ -22963,21 +22964,21 @@ Function245af:: ; 245af
Function245cb:: ; 245cb
.loop
- call Function24609
- jp c, Function245d6
- call z, Function245e1
+ call MenuJoyAction
+ jp c, .exit
+ call z, .zero
jr .loop
; 245d6
-Function245d6: ; 245d6
+.exit: ; 245d6
call Function1ff8
ld [wcf73], a
ld a, 0
- ld [$ffaa], a
+ ld [hInMenu], a
ret
; 245e1
-Function245e1: ; 245e1
+.zero: ; 245e1
call Function245f1
ld a, 1
ld [hBGMapMode], a
@@ -23003,42 +23004,42 @@ Function245f1: ; 245f1
ret
; 24609
-Function24609: ; 24609
-.asm_24609
+MenuJoyAction: ; 24609
+.loop
call Function1bd3
- ld a, [$ffa9]
- and $f0
+ ld a, [hJoyLast]
+ and D_PAD
ld b, a
ld a, [hJoyPressed]
- and $f
+ and BUTTONS
or b
- bit 0, a
- jp nz, Function24644
- bit 1, a
- jp nz, Function2466f
- bit 2, a
- jp nz, Function24673
- bit 3, a
- jp nz, Function24695
- bit 4, a
- jp nz, Function246b5
- bit 5, a
- jp nz, Function246a1
- bit 6, a
- jp nz, Function246c9
- bit 7, a
- jp nz, Function246df
- jr .asm_24609
+ bit 0, a ; A
+ jp nz, .a_button
+ bit 1, a ; B
+ jp nz, .b_button
+ bit 2, a ; Select
+ jp nz, .select
+ bit 3, a ; Start
+ jp nz, .start
+ bit 4, a ; Right
+ jp nz, .d_right
+ bit 5, a ; Left
+ jp nz, .d_left
+ bit 6, a ; Up
+ jp nz, .d_up
+ bit 7, a ; Down
+ jp nz, .d_down
+ jr .loop
; 24640
-Function24640: ; 24640
- ld a, $ff
+.unreferenced: ; unreferenced
+ ld a, -1
and a
ret
; 24644
-Function24644: ; 24644
+.a_button: ; 24644
call Function1bee
ld a, [wcfa9]
dec a
@@ -23052,20 +23053,20 @@ Function24644: ; 24644
ld [wcf77], a
ld [wd107], a
ld a, [MenuSelection]
- cp $ff
- jr z, Function2466f
- ld a, $1
+ cp -1
+ jr z, .b_button
+ ld a, A_BUTTON
scf
ret
; 2466f
-Function2466f: ; 2466f
- ld a, $2
+.b_button: ; 2466f
+ ld a, B_BUTTON
scf
ret
; 24673
-Function24673: ; 24673
+.select: ; 24673
ld a, [wcf91]
bit 7, a
jp z, xor_a_dec_a
@@ -23073,65 +23074,65 @@ Function24673: ; 24673
dec a
call Function248d5
ld a, [MenuSelection]
- cp $ff
+ cp -1
jp z, xor_a_dec_a
call Function246fc
dec a
ld [wcf77], a
- ld a, $4
+ ld a, SELECT
scf
ret
; 24695
-Function24695: ; 24695
+.start: ; 24695
ld a, [wcf91]
bit 6, a
jp z, xor_a_dec_a
- ld a, $8
+ ld a, START
scf
ret
; 246a1
-Function246a1: ; 246a1
+.d_left: ; 246a1
ld hl, wcfa6
bit 7, [hl]
jp z, xor_a_dec_a
ld a, [wcf91]
bit 3, a
jp z, xor_a_dec_a
- ld a, $20
+ ld a, D_LEFT
scf
ret
; 246b5
-Function246b5: ; 246b5
+.d_right: ; 246b5
ld hl, wcfa6
bit 7, [hl]
jp z, xor_a_dec_a
ld a, [wcf91]
bit 2, a
jp z, xor_a_dec_a
- ld a, $10
+ ld a, D_RIGHT
scf
ret
; 246c9
-Function246c9: ; 246c9
+.d_up: ; 246c9
ld hl, wcfa6
bit 7, [hl]
jp z, xor_a
ld hl, wd0e4
ld a, [hl]
and a
- jr z, .asm_246dc
+ jr z, .xor_dec_up
dec [hl]
jp xor_a
-.asm_246dc
+.xor_dec_up
jp xor_a_dec_a
; 246df
-Function246df: ; 246df
+.d_down: ; 246df
ld hl, wcfa6
bit 7, [hl]
jp z, xor_a
@@ -23141,11 +23142,11 @@ Function246df: ; 246df
ld b, a
ld a, [wd144]
cp b
- jr c, .asm_246f9
+ jr c, .xor_dec_down
inc [hl]
jp xor_a
-.asm_246f9
+.xor_dec_down
jp xor_a_dec_a
; 246fc
@@ -23159,7 +23160,7 @@ Function246fc: ; 246fc
; 24706
Function24706: ; 24706 (9:4706)
- call Function1cfd
+ call GetMemTileCoord
ld de, $14
add hl, de
ld de, $28
@@ -23326,7 +23327,7 @@ Function247f0: ; 247f0
ld [hl], $61
.asm_2480d
- call Function1cfd
+ call GetMemTileCoord
ld bc, $0015
add hl, bc
ld a, [wcf92]
@@ -23759,17 +23760,17 @@ Function24aab: ; 24aab (9:4aab)
jr nz, Function24aab
ret
-Function24ab4: ; 0x24ab4
+PlaceMenuItemName: ; 0x24ab4
push de
ld a, [MenuSelection]
- ld [wd265], a
+ ld [wNamedObjectIndexBuffer], a
call GetItemName
pop hl
call PlaceString
ret
; 0x24ac3
-Function24ac3: ; 0x24ac3
+PlaceMenuItemQuantity: ; 0x24ac3
push de
ld a, [MenuSelection]
ld [CurItem], a
@@ -23780,7 +23781,7 @@ Function24ac3: ; 0x24ac3
jr nz, .done
ld de, $0015
add hl, de
- ld [hl], $f1
+ ld [hl], "×"
inc hl
ld de, wcf75
lb bc, 1, 2
@@ -23807,7 +23808,7 @@ Function24af8: ; 24af8
Function24b01: ; 24b01
call Function1cbb
- call Function1cfd
+ call GetMemTileCoord
ld de, $0015
add hl, de
ld de, Money
@@ -23832,7 +23833,8 @@ MenuDataHeader_0x24b1d: ; 0x24b1d
db 1 ; default option
; 0x24b25
-Function24b25: ; 24b25
+Special_DisplayCoinCaseBalance: ; 24b25
+ ; Place a text box of size 1x7 at 11, 0.
hlcoord 11, 0
ld b, 1
ld c, 7
@@ -23841,7 +23843,7 @@ Function24b25: ; 24b25
ld de, CoinString
call PlaceString
hlcoord 17, 1
- ld de, String24b8e
+ ld de, ShowMoney_TerminatorString
call PlaceString
ld de, Coins
lb bc, 2, 4
@@ -23850,10 +23852,10 @@ Function24b25: ; 24b25
ret
; 24b4e
-Function24b4e: ; 24b4e
+Special_DisplayMoneyAndCoinBalance: ; 24b4e
hlcoord 5, 0
- ld b, $3
- ld c, $d
+ ld b, 3
+ ld c, 13
call TextBox
hlcoord 6, 1
ld de, MoneyString
@@ -23876,7 +23878,7 @@ MoneyString: ; 24b83
db "MONEY@"
CoinString: ; 24b89
db "COIN@"
-String24b8e: ; 24b8e
+ShowMoney_TerminatorString: ; 24b8e
db "@"
; 24b8f
@@ -23980,34 +23982,35 @@ String24c5e: ; 24c5e
; 24c64
-Function24c64: ; 24c64
+FindApricornsInBag: ; 24c64
+; Checks the bag for Apricorns.
ld hl, Buffer1
xor a
ld [hli], a
dec a
- ld bc, $000a
+ ld bc, 10
call ByteFill
- ld hl, ApricornBalls
-.asm_24c73
+ ld hl, .ApricornBalls
+.loop
ld a, [hl]
- cp $ff
- jr z, .asm_24c8d
+ cp -1
+ jr z, .done
push hl
ld [CurItem], a
ld hl, NumItems
call CheckItem
pop hl
- jr nc, .asm_24c89
+ jr nc, .nope
ld a, [hl]
- call Function24c94
-.asm_24c89
+ call .addtobuffer
+.nope
rept 2
inc hl
endr
- jr .asm_24c73
+ jr .loop
-.asm_24c8d
+.done
ld a, [Buffer1]
and a
ret nz
@@ -24015,7 +24018,7 @@ endr
ret
; 24c94
-Function24c94: ; 24c94
+.addtobuffer: ; 24c94
push hl
ld hl, Buffer1
inc [hl]
@@ -24027,7 +24030,7 @@ Function24c94: ; 24c94
ret
; 24ca0
-ApricornBalls: ; 24ca0
+.ApricornBalls: ; 24ca0
db RED_APRICORN, LEVEL_BALL
db BLU_APRICORN, LURE_BALL
db YLW_APRICORN, MOON_BALL
@@ -24035,7 +24038,7 @@ ApricornBalls: ; 24ca0
db WHT_APRICORN, FAST_BALL
db BLK_APRICORN, HEAVY_BALL
db PNK_APRICORN, LOVE_BALL
- db $ff
+ db -1
; 24caf
@@ -24154,7 +24157,7 @@ MonMenuLoop: ; 24d59
; 24d91
PopulateMonMenu: ; 24d91
- call Function1cfd
+ call GetMemTileCoord
ld bc, $002a ; 42
add hl, bc
ld de, Buffer2
@@ -24301,7 +24304,7 @@ Function24e68: ; 24e68
xor a
ld [Buffer1], a
ld hl, Buffer2
- ld bc, $0009
+ ld bc, 9
call ByteFill
ret
; 24e76
@@ -24312,7 +24315,7 @@ Function24e76: ; 24e76
ld d, $0
ld hl, Buffer2
add hl, de
- ld [hl], $ff
+ ld [hl], -1
ret
; 24e83
@@ -24642,7 +24645,7 @@ Function2500e: ; 2500e
Function25072: ; 25072
call Function1cbb
- call Function1cfd
+ call GetMemTileCoord
ld de, $0015
add hl, de
ld [hl], $f1
@@ -24766,8 +24769,8 @@ Function25105: ; 25105
ld a, [wcf63]
bit 7, a
jr nz, .asm_25132
- ld a, [$ffa9]
- and $2
+ ld a, [hJoyLast]
+ and B_BUTTON
jr nz, .asm_25132
call Function2518e
call DelayFrame
@@ -24862,9 +24865,9 @@ Function251b6: ; 251b6 (9:51b6)
Function251d7: ; 251d7 (9:51d7)
call Function25415
- ld hl, $ffa9
+ ld hl, hJoyLast
ld a, [hl]
- and $11
+ and D_RIGHT | A_BUTTON
jr nz, .asm_251e3
ret
.asm_251e3
@@ -24903,12 +24906,12 @@ Function251f4: ; 251f4 (9:51f4)
Function25221: ; 25221 (9:5221)
ld hl, Unknown_254c9
call Function25438
- ld hl, $ffa9
+ ld hl, hJoyLast
ld a, [hl]
- and $1
+ and A_BUTTON
jr nz, Function25246
ld a, [hl]
- and $20
+ and D_LEFT
jr nz, .asm_25235
ret
.asm_25235
@@ -24952,12 +24955,12 @@ Function2524c: ; 2524c (9:524c)
Function25279: ; 25279 (9:5279)
ld hl, Unknown_254c9
call Function25438
- ld hl, $ffa9
+ ld hl, hJoyLast
ld a, [hl]
- and $20
+ and D_LEFT
jr nz, .asm_2528d
ld a, [hl]
- and $10
+ and D_RIGHT
jr nz, .asm_25293
ret
.asm_2528d
@@ -25429,7 +25432,7 @@ ClearOakRatingBuffers: ; 0x26647
ClearOakRatingBuffer: ; 0x2665a
push hl
ld a, "@"
- ld bc, $000d
+ ld bc, ITEM_NAME_LENGTH
call ByteFill
pop hl
lb bc, PRINTNUM_RIGHTALIGN | 1, 3
@@ -25727,8 +25730,8 @@ Function26822: ; 26822 (9:6822)
ld hl, StringBuffer2
xor a
ld [hli], a
- ld bc, $c
- ld a, $ff
+ ld bc, ITEM_NAME_LENGTH - 1
+ ld a, -1
call ByteFill
ret
@@ -28740,13 +28743,13 @@ Function28ade: ; 28ade
ldcoord 9, 17
.asm_28ae3
call Functiona57
- ld a, [$ffa9]
+ ld a, [hJoyLast]
and a
jr z, .asm_28ae3
bit 0, a
jr nz, .asm_28b0b
push af
- ld a, $7f
+ ld a, " "
ldcoord 9, 17
pop af
bit 6, a
@@ -28790,12 +28793,12 @@ Function28b22: ; 28b22
Function28b42: ; 28b42
hlcoord 0, 16
- ld a, $7e
- ld bc, $0028
+ ld a, "┘"
+ ld bc, 2 * SCREEN_WIDTH
call ByteFill
hlcoord 1, 16
- ld a, $7f
- ld bc, SCREEN_HEIGHT
+ ld a, " "
+ ld bc, SCREEN_WIDTH - 2
call ByteFill
hlcoord 2, 16
ld de, String_28b61
@@ -29372,7 +29375,7 @@ Function28fdb: ; 28fdb
ld a, $1
ld [rVBK], a
ld hl, VTiles0
- ld bc, $2000
+ ld bc, sScratch - VTiles0
xor a
call ByteFill
ld a, $0
@@ -29380,8 +29383,8 @@ Function28fdb: ; 28fdb
.asm_2900b
ld hl, VBGMap0
- ld bc, $0800
- ld a, $7f
+ ld bc, sScratch - VBGMap0
+ ld a, " "
call ByteFill
ld hl, TradeGameBoyLZ
ld de, VTiles2 tile $31
@@ -29689,8 +29692,8 @@ Function29229: ; 29229
call DisableLCD
callab Function8cf53
ld hl, VBGMap0
- ld bc, $0800
- ld a, $7f
+ ld bc, sScratch - VBGMap0
+ ld a, " "
call ByteFill
xor a
ld [hSCX], a
@@ -29814,11 +29817,11 @@ Function292f6: ; 292f6
call WhiteBGMap
call WaitTop
ld a, $9c
- ld [$ffd7], a
+ ld [hBGMapAddress + 1], a
call ClearTileMap
hlcoord 0, 0
ld bc, SCREEN_WIDTH
- ld a, $7a
+ ld a, "─"
call ByteFill
hlcoord 0, 1
ld de, wc736
@@ -29827,7 +29830,7 @@ Function292f6: ; 292f6
ld de, 0
.asm_2931e
ld a, [hli]
- cp $50
+ cp "@"
jr z, .asm_29326
dec de
jr .asm_2931e
@@ -29844,7 +29847,7 @@ Function292f6: ; 292f6
call WaitBGMap
call WaitTop
ld a, $98
- ld [$ffd7], a
+ ld [hBGMapAddress + 1], a
call ClearTileMap
ret
; 29348
@@ -29955,7 +29958,7 @@ Function293de: ; 293de
Function293ea: ; 293ea
call WaitTop
ld a, $9c
- ld [$ffd7], a
+ ld [hBGMapAddress + 1], a
call WaitBGMap
ld a, $7
ld [hWX], a
@@ -29964,7 +29967,7 @@ Function293ea: ; 293ea
call DelayFrame
call WaitTop
ld a, $98
- ld [$ffd7], a
+ ld [hBGMapAddress + 1], a
call ClearTileMap
call Function2910f
ret
@@ -29980,14 +29983,14 @@ Function2940c: ; 2940c
.asm_29417
ld a, $9c
- ld [$ffd7], a
+ ld [hBGMapAddress + 1], a
call WaitBGMap
ld a, $7
ld [hWX], a
ld a, $90
ld [hWY], a
ld a, $98
- ld [$ffd7], a
+ ld [hBGMapAddress + 1], a
call Function29114
ret
; 2942e
@@ -30174,7 +30177,7 @@ Function29573: ; 29573
call WaitTop
call Function297cf
ld a, $9c
- ld [$ffd7], a
+ ld [hBGMapAddress + 1], a
hlcoord 3, 0
ld b, $6
ld c, $d
@@ -30196,7 +30199,7 @@ Function295a1: ; 295a1
call WaitTop
call Function297cf
ld a, $9c
- ld [$ffd7], a
+ ld [hBGMapAddress + 1], a
hlcoord 3, 0
ld b, $6
ld c, $d
@@ -30218,7 +30221,7 @@ Function295d8: ; 295d8
call WaitBGMap
call WaitTop
ld a, $98
- ld [$ffd7], a
+ ld [hBGMapAddress + 1], a
ret
; 295e3
@@ -30490,8 +30493,8 @@ UnknownText_0x29757: ; 0x29757
Function2975c: ; 2975c
call WaitTop
hlcoord 0, 10
- ld bc, $00a0
- ld a, $7f
+ ld bc, 8 * SCREEN_WIDTH
+ ld a, " "
call ByteFill
call WaitBGMap
ld hl, UnknownText_0x2977a
@@ -30566,7 +30569,7 @@ Function297c9: ; 297c9
Function297cf: ; 297cf
hlcoord 0, 0
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, $7f
+ ld a, " "
call ByteFill
ret
; 297db
@@ -33335,10 +33338,10 @@ Unknown_2c74a: ; 2c74a
Function2c76f: ; 2c76f (b:476f)
ld a, $1
- ld [$ffaa], a
+ ld [hInMenu], a
call Function2c8d3
ld a, $0
- ld [$ffaa], a
+ ld [hInMenu], a
ret nc
call Function1bee
call WaitBGMap
@@ -34878,7 +34881,7 @@ Function41a7f: ; 41a7f
ld [hl], $3b
inc hl
ld bc, $0013
- ld a, $7f
+ ld a, " "
call ByteFill
callba Function4424d
call EnableLCD
@@ -36140,23 +36143,23 @@ Function4456e: ; 4456e
call Function44648
cp $a
jr nc, .asm_445be
- ld bc, $002f
+ ld bc, PartyMon1StatsEnd - PartyMon1Item
ld hl, s0_a834 + 1
call AddNTimes
ld d, h
ld e, l
ld a, [CurPartyMon]
- ld bc, $002f
+ ld bc, PartyMon1StatsEnd - PartyMon1Item
ld hl, s0_a600
call AddNTimes
push hl
ld a, BANK(s0_a834)
call GetSRAMBank
- ld bc, $002f
+ ld bc, PartyMon1StatsEnd - PartyMon1Item
call CopyBytes
pop hl
xor a
- ld bc, $002f
+ ld bc, PartyMon1StatsEnd - PartyMon1Item
call ByteFill
ld a, PartyMon1Item - PartyMon1
call GetPartyParamLocation
@@ -36178,7 +36181,7 @@ Function445c0: ; 445c0 (11:45c0)
ld a, b
push bc
ld hl, s0_a834 + 1
- ld bc, $2f
+ ld bc, PartyMon1StatsEnd - PartyMon1Item
call AddNTimes
push hl
add hl, bc
@@ -36189,7 +36192,7 @@ Function445c0: ; 445c0 (11:45c0)
cp $9
jr z, .asm_445e4
push bc
- ld bc, $2f
+ ld bc, PartyMon1StatsEnd - PartyMon1Item
call CopyBytes
pop bc
inc b
@@ -36198,7 +36201,7 @@ Function445c0: ; 445c0 (11:45c0)
ld h, d
ld l, e
xor a
- ld bc, $2f
+ ld bc, PartyMon1StatsEnd - PartyMon1Item
call ByteFill
ld hl, s0_a834
dec [hl]
@@ -36208,7 +36211,7 @@ Function445c0: ; 445c0 (11:45c0)
Function445f4: ; 445f4
ld a, b
ld hl, s0_a834 + 1
- ld bc, $2f
+ ld bc, PartyMon1StatsEnd - PartyMon1Item
call AddNTimes
ld d, h
ld e, l
@@ -36220,22 +36223,22 @@ Function44607: ; 44607
call GetSRAMBank
push bc
ld a, b
- ld bc, $2f
+ ld bc, PartyMon1StatsEnd - PartyMon1Item
ld hl, s0_a834 + 1
call AddNTimes
push hl
ld a, [CurPartyMon]
- ld bc, $2f
+ ld bc, PartyMon1StatsEnd - PartyMon1Item
ld hl, s0_a600
call AddNTimes
ld d, h
ld e, l
pop hl
push hl
- ld bc, $2f
+ ld bc, PartyMon1StatsEnd - PartyMon1Item
call CopyBytes
pop hl
- ld de, $2e
+ ld de, PartyMon1StatsEnd - PartyMon1Moves
add hl, de
ld d, [hl]
ld a, [CurPartyMon]
@@ -36274,7 +36277,7 @@ Function44654:: ; 44654
call GetSRAMBank
ld a, [CurPartyMon]
ld hl, s0_a600
- ld bc, $002f
+ ld bc, PartyMon1StatsEnd - PartyMon1Item
call AddNTimes
ld d, h
ld e, l
@@ -36288,7 +36291,7 @@ Function44654:: ; 44654
ld c, a
ld a, b
call GetFarByte
- cp $50
+ cp "@"
jr z, .asm_446ab
cp c
ld a, $0
@@ -37556,10 +37559,10 @@ Function4876f: ; 4876f (12:476f)
call PlaceString
ld hl, MenuDataHeader_0x48509
call LoadMenuDataHeader
- ld a, [$ffaa]
+ ld a, [hInMenu]
push af
ld a, $1
- ld [$ffaa], a
+ ld [hInMenu], a
hlcoord 10, 5
ld b, $1
ld c, $8
@@ -37605,7 +37608,7 @@ Function4876f: ; 4876f (12:476f)
hlcoord 11, 6
call Function487ec
pop af
- ld [$ffaa], a
+ ld [hInMenu], a
jp Function4840c
Function487ec: ; 487ec (12:47ec)
@@ -37643,7 +37646,7 @@ Function4880e: ; 4880e (12:480e)
ld a, [hJoyPressed] ; $ff00+$a7
and B_BUTTON
jp nz, Function488b4
- ld hl, $ffa9
+ ld hl, hJoyLast
ld a, [hl]
and D_UP
jr nz, .asm_48843
@@ -37759,10 +37762,10 @@ Function488d3: ; 488d3 (12:48d3)
jp c, Function4840c
ld hl, MenuDataHeader_0x4850e
call LoadMenuDataHeader
- ld a, [$ffaa]
+ ld a, [hInMenu]
push af
ld a, $1
- ld [$ffaa], a
+ ld [hInMenu], a
hlcoord 10, 9
ld b, $1
ld c, $8
@@ -37797,7 +37800,7 @@ asm_48922: ; 48922 (12:4922)
bit 1, a
jp nz, Function4896e
ld a, [DefaultFlypoint]
- and $cf
+ and %11001111
res 7, a
ld [DefaultFlypoint], a
pop bc
@@ -37830,7 +37833,7 @@ Function4895a: ; 4895a
jr asm_48972
.asm_48965
- ld a, [$ffa9]
+ ld a, [hJoyLast]
and a
jr z, asm_48972
@@ -37907,7 +37910,7 @@ asm_48972: ; 48972 (12:4972)
ld bc, $108
call ClearBox
pop af
- ld [$ffaa], a
+ ld [hInMenu], a
jp Function4840c
Function489ea: ; 489ea (12:49ea)
@@ -38084,18 +38087,18 @@ Function48ab5: ; 48ab5 (12:4ab5)
dec a
jr .asm_48b25
.asm_48b2c
- ld hl, $ffa9
+ ld hl, hJoyLast
ld a, [hl]
- and $40
+ and D_UP
jr nz, .asm_48b8d
ld a, [hl]
- and $80
+ and D_DOWN
jr nz, .asm_48b55
ld a, [hl]
- and $20
+ and D_LEFT
jp nz, Function48bd7
ld a, [hl]
- and $10
+ and D_RIGHT
jr nz, .asm_48b9d
hlcoord 11, 10
call Function489ea
@@ -38624,11 +38627,11 @@ Function48e14: ; 48e14 (12:4e14)
call Function48000
call Functione5f
hlcoord 0, 0
- ld bc, $168
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
ld a, $0
call ByteFill
hlcoord 0, 0, AttrMap
- ld bc, $168
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
xor a
call ByteFill
ret
@@ -38847,7 +38850,7 @@ Function49336: ; 49336
Function49346: ; 49346 (12:5346)
hlcoord 0, 0, AttrMap
- ld bc, $168
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
xor a
call ByteFill
ret
@@ -38905,7 +38908,7 @@ Function49384: ; 49384 (12:5384)
ld a, $3
call Function49336
hlcoord 0, 12, AttrMap
- ld bc, $78
+ ld bc, 6 * SCREEN_WIDTH
ld a, $7
call ByteFill
ret
@@ -38977,7 +38980,7 @@ Function4942f: ; 4942f
xor a
call ByteFill
hlcoord 0, 14, AttrMap
- ld bc, $0050
+ ld bc, 4 * SCREEN_WIDTH
ld a, $7
call ByteFill
ld a, [DefaultFlypoint]
@@ -39361,7 +39364,7 @@ endr
ld [hl], a
hlcoord 2, 17, AttrMap
ld a, $3
- ld bc, $0006
+ ld bc, 6
call ByteFill
ret
; 49811
@@ -40745,17 +40748,17 @@ Function4a3aa: ; 4a3aa
; 4a449 (12:6449)
Function4a449: ; 4a449
- ld bc, $003c
+ ld bc, 3 * SCREEN_WIDTH
ld a, $0
hlcoord 0, 0
call ByteFill
- ld bc, $0028
+ ld bc, 2 * SCREEN_WIDTH
ld a, $1
call ByteFill
- ld bc, $0028
+ ld bc, 2 * SCREEN_WIDTH
ld a, $0
call ByteFill
- ld bc, $0028
+ ld bc, 2 * SCREEN_WIDTH
ld a, $1
call ByteFill
ld bc, SCREEN_WIDTH
@@ -40765,7 +40768,7 @@ Function4a449: ; 4a449
ld a, $3
call ByteFill
ld bc, SCREEN_WIDTH
- ld a, $7f
+ ld a, " "
call ByteFill
ret
; 4a485
@@ -41489,9 +41492,9 @@ Function4a927: ; 4a927
Function4a94e: ; 4a94e
call FadeToMenu
- ld a, $ff
+ ld a, -1
ld hl, DefaultFlypoint
- ld bc, $0003
+ ld bc, 3
call ByteFill
xor a
ld [wd018], a
@@ -41525,8 +41528,8 @@ Function4a94e: ; 4a94e
.asm_4a990
call Function2b3c
ld hl, DefaultFlypoint
- ld a, $ff
- ld bc, $0003
+ ld a, -1
+ ld bc, 3
call ByteFill
scf
jr .asm_4a9af
@@ -41743,15 +41746,15 @@ Function4aad3: ; 4aad3
ld c, a
xor a
- ld [$ffb0], a
+ ld [hConnectedMapWidth], a
.loop
push bc
push hl
ld e, 0
callba Function8e83f
- ld a, [$ffb0]
+ ld a, [hConnectedMapWidth]
inc a
- ld [$ffb0], a
+ ld [hConnectedMapWidth], a
pop hl
pop bc
dec c
@@ -42455,8 +42458,8 @@ Function4cf1f: ; 4cf1f
Function4cf34: ; 4cf34
call GetSRAMBank
- ld hl, $a000
- ld bc, $2000
+ ld hl, sScratch
+ ld bc, StackBottom - sScratch
xor a
call ByteFill
call CloseSRAM
@@ -42503,7 +42506,7 @@ Function4cf45: ; 4cf45 (13:4f45)
Function4cf80: ; 4cf80 (13:4f80)
ld [hSPBuffer], sp ; $ffd9
ld sp, hl
- ld a, [$ffd7]
+ ld a, [hBGMapAddress + 1]
ld h, a
ld l, $0
ld a, $12
@@ -42723,7 +42726,7 @@ Function4d188: ; 4d188
Function4d1cb: ; 4d1cb
ld [hSPBuffer], sp
ld sp, hl
- ld a, [$ffd7]
+ ld a, [hBGMapAddress + 1]
ld h, a
ld l, $0
ld a, $12
@@ -43013,7 +43016,7 @@ Function4d41e: ; 4d41e
call Function4d50f
push de
ld hl, StringBuffer2
- ld bc, $0005
+ ld bc, 5
xor a
call ByteFill
ld a, $4
@@ -43024,12 +43027,12 @@ Function4d41e: ; 4d41e
call Function4d468
.asm_4d43a
call Functiona57
- ld a, [$ffa9]
+ ld a, [hJoyLast]
ld b, a
- and $1
+ and A_BUTTON
jr nz, .asm_4d453
ld a, b
- and $f0
+ and D_PAD
jr z, .asm_4d43a
call Function4d490
ld c, $3
@@ -43071,8 +43074,8 @@ Function4d468: ; 4d468
dec c
jr nz, .asm_4d470
hlcoord 14, 16
- ld bc, $0005
- ld a, $7f
+ ld bc, 5
+ ld a, " "
call ByteFill
hlcoord 14, 16
ld a, [StringBuffer2 + 5]
@@ -43629,7 +43632,7 @@ endr
db "@"
; 0x4d9d3
-Function4d9d3: ; 4d9d3
+Special_PrintTodaysLuckyNumber: ; 4d9d3
ld hl, StringBuffer3
ld de, wLuckyIDNumber
lb bc, PRINTNUM_LEADINGZEROS | 2, 5
@@ -45520,7 +45523,7 @@ Function4e779: ; 4e779
call Functiona57
ld a, [hJoyDown]
pop bc
- and $2
+ and B_BUTTON
jr nz, .asm_4e78c
.asm_4e787
dec c
@@ -45654,8 +45657,8 @@ Function4e881: ; 4e881
call Functione51
call Functione58
ld hl, VBGMap0
- ld bc, $400
- ld a, $7f
+ ld bc, VBGMap1 - VBGMap0
+ ld a, " "
call ByteFill
hlcoord 0, 0, AttrMap
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
@@ -45687,8 +45690,8 @@ Function4e8c2: ; 4e8c2
call Functione51
call Functione58
ld hl, VBGMap0
- ld bc, $400
- ld a, $7f
+ ld bc, VBGMap1 - VBGMap0
+ ld a, " "
call ByteFill
hlcoord 0, 0, AttrMap
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
@@ -45697,9 +45700,9 @@ Function4e8c2: ; 4e8c2
ld hl, wd000
ld c, $40
.asm_4e8ee
- ld a, $ff
+ ld a, -1
ld [hli], a
- ld a, $7f
+ ld a, " "
ld [hli], a
dec c
jr nz, .asm_4e8ee
@@ -45718,8 +45721,8 @@ Function4e906: ; 4e906
ld a, $6
ld [rSVBK], a
ld hl, w6_d000
- ld bc, $400
- ld a, $7f
+ ld bc, w6_d400 - w6_d000
+ ld a, " "
call ByteFill
ld hl, VBGMap0
ld de, w6_d000
@@ -45902,7 +45905,7 @@ endr
Function4e9e5: ; 4e9e5
ld hl, LYOverrides
ld a, $90
- ld bc, $0090
+ ld bc, SCREEN_HEIGHT_PX
call ByteFill
ret
; 4e9f1
@@ -46674,7 +46677,7 @@ Function503e0: ; 503e0
ret z
ld c, a
xor a
- ld [$ffb0], a
+ ld [hConnectedMapWidth], a
.asm_503ea
push bc
push hl
@@ -46682,9 +46685,9 @@ Function503e0: ; 503e0
ld a, BANK(Function8e83f)
ld e, $0
rst FarCall
- ld a, [$ffb0]
+ ld a, [hConnectedMapWidth]
inc a
- ld [$ffb0], a
+ ld [hConnectedMapWidth], a
pop hl
pop bc
dec c
@@ -46764,7 +46767,7 @@ PartyMenuSelect: ; 0x50457
cp b
jr z, .exitmenu ; CANCEL
ld [wd0d8], a
- ld a, [$ffa9]
+ ld a, [hJoyLast]
ld b, a
bit 1, b
jr nz, .exitmenu ; B button?
@@ -48401,10 +48404,10 @@ Function50f12:
Function50f34: ; 50f34 (14:4f34)
push af
hlcoord 0, 1
- ld bc, $28
+ ld bc, 2 * SCREEN_WIDTH
call AddNTimes
- ld bc, $28
- ld a, $7f
+ ld bc, 2 * SCREEN_WIDTH
+ ld a, " "
call ByteFill
pop af
ld hl, Sprites
@@ -49239,7 +49242,7 @@ GetMovementInput: ; 80017
ret z
ld c, a
- and $f0
+ and D_PAD
ret nz
ld a, c
@@ -49551,14 +49554,14 @@ TrySurfStep: ; 801c0
call CheckWaterPermissions
ld [wd040], a
- jr c, .asm_801f1
+ jr c, .bump
call IsNPCInFront
ld [wd03f], a
and a
- jr z, .asm_801f1
+ jr z, .bump
cp 2
- jr z, .asm_801f1
+ jr z, .bump
ld a, [wd040]
and a
@@ -49578,7 +49581,7 @@ TrySurfStep: ; 801c0
scf
ret
-.asm_801f1
+.bump
xor a
ret
; 801f3
@@ -50315,10 +50318,10 @@ ColorTest: ; 818ac
ret z
.asm_818b5
- ld a, [$ffaa]
+ ld a, [hInMenu]
push af
ld a, $1
- ld [$ffaa], a
+ ld [hInMenu], a
call DisableLCD
call Function81948
call Function8197c
@@ -50342,7 +50345,7 @@ ColorTest: ; 818ac
.asm_818f0
pop af
- ld [$ffaa], a
+ ld [hInMenu], a
ret
; 818f4
@@ -50411,13 +50414,13 @@ Function81948: ; 81948
ld a, $1
ld [rVBK], a
ld hl, VTiles0
- ld bc, $2000
+ ld bc, sScratch - VTiles0
xor a
call ByteFill
ld a, $0
ld [rVBK], a
ld hl, VTiles0
- ld bc, $2000
+ ld bc, sScratch - VTiles0
xor a
call ByteFill
hlcoord 0, 0, AttrMap
@@ -50593,12 +50596,12 @@ Function81a74: ; 81a74
ld a, [wcf63]
cp $4
jr nc, .asm_81a8b
- ld hl, $ffa9
+ ld hl, hJoyLast
ld a, [hl]
- and $4
+ and SELECT
jr nz, .asm_81a9a
ld a, [hl]
- and $8
+ and START
jr nz, .asm_81aab
.asm_81a8b
@@ -50671,17 +50674,17 @@ Function81adb: ; 81adb
ld a, $6f
call ByteFill
hlcoord 1, 3
- ld bc, $0712
+ lb bc, 7, 18
ld a, $6c
- call Function81efc
+ call Bank20_FillBoxWithByte
hlcoord 11, 0
- ld bc, $0203
+ lb bc, 2, 3
ld a, $6d
- call Function81efc
+ call Bank20_FillBoxWithByte
hlcoord 16, 0
- ld bc, $0203
+ lb bc, 2, 3
ld a, $6e
- call Function81efc
+ call Bank20_FillBoxWithByte
call Function81bc0
call Function81bf4
ld a, [wcf66]
@@ -50904,11 +50907,11 @@ Function81cbc: ; 81cbc
; 81cc2
Function81cc2: ; 81cc2
- ld a, [$ffa9]
- and $2
+ ld a, [hJoyLast]
+ and B_BUTTON
jr nz, .asm_81cdf
- ld a, [$ffa9]
- and $1
+ ld a, [hJoyLast]
+ and A_BUTTON
jr nz, .asm_81ce5
ld a, [wcf64]
and $3
@@ -50953,15 +50956,15 @@ Jumptable_81d02: ; 81d02
; 81d0a
Function81d0a: ; 81d0a
- ld hl, $ffa9
+ ld hl, hJoyLast
ld a, [hl]
- and $80
+ and D_DOWN
jr nz, Function81d89
ld a, [hl]
- and $20
+ and D_LEFT
jr nz, .asm_81d1d
ld a, [hl]
- and $10
+ and D_RIGHT
jr nz, .asm_81d28
ret
@@ -50980,40 +50983,40 @@ Function81d0a: ; 81d0a
ret
Function81d34: ; 81d34
- ld hl, $ffa9
+ ld hl, hJoyLast
ld a, [hl]
- and $80
+ and D_DOWN
jr nz, Function81d89
ld a, [hl]
- and $40
+ and D_UP
jr nz, Function81d84
ld hl, wc608 + 10
jr Function81d63
Function81d46: ; 81d46
- ld hl, $ffa9
+ ld hl, hJoyLast
ld a, [hl]
- and $80
+ and D_DOWN
jr nz, Function81d89
ld a, [hl]
- and $40
+ and D_UP
jr nz, Function81d84
ld hl, wc608 + 11
jr Function81d63
Function81d58: ; 81d58
- ld hl, $ffa9
+ ld hl, hJoyLast
ld a, [hl]
- and $40
+ and D_UP
jr nz, Function81d84
ld hl, wc608 + 12
Function81d63: ; 81d63
- ld a, [$ffa9]
- and $10
+ ld a, [hJoyLast]
+ and D_RIGHT
jr nz, Function81d70
- ld a, [$ffa9]
- and $20
+ ld a, [hJoyLast]
+ and D_LEFT
jr nz, Function81d77
ret
@@ -51066,7 +51069,7 @@ Function81d8e: ; 81d8e
Function81daf: ; 81daf
ld hl, hJoyPressed
ld a, [hl]
- and $2
+ and B_BUTTON
jr nz, .asm_81dbb
call Function81dc7
ret
@@ -51084,12 +51087,12 @@ Function81dc1: ; 81dc1
; 81dc7
Function81dc7: ; 81dc7
- ld hl, $ffa9
+ ld hl, hJoyLast
ld a, [hl]
- and $40
+ and D_UP
jr nz, .asm_81dd5
ld a, [hl]
- and $80
+ and D_DOWN
jr nz, .asm_81de2
ret
@@ -51284,20 +51287,21 @@ endr
ret
; 81efc
-Function81efc: ; 81efc
-.asm_81efc
+Bank20_FillBoxWithByte: ; 81efc
+; For some reason, we have another copy of FillBoxWithByte here
+.row
push bc
push hl
-.asm_81efe
+.col
ld [hli], a
dec c
- jr nz, .asm_81efe
+ jr nz, .col
pop hl
ld bc, SCREEN_WIDTH
add hl, bc
pop bc
dec b
- jr nz, .asm_81efc
+ jr nz, .row
ret
; 81f0c
@@ -51382,7 +51386,7 @@ Function81f5e: ; 81f5e
jr z, .asm_81f8d
dec a
hlcoord 1, 11
- ld bc, $0028
+ ld bc, 2 * SCREEN_WIDTH
call AddNTimes
ld [hl], $ed
@@ -51466,7 +51470,7 @@ TilesetColorTest:
lb bc, BANK(DebugColorTestGFX), 1
call Request2bpp
ld a, $9c
- ld [$ffd7], a
+ ld [hBGMapAddress + 1], a
hlcoord 0, 0
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
ld a, $6f
@@ -51532,7 +51536,7 @@ Function821f4: ; 821f4
Function82203: ; 82203
ld a, $6a
ld [hli], a
- ld bc, $000f
+ ld bc, $10 - 1
ld a, $6b
call ByteFill
ret
@@ -51563,12 +51567,12 @@ endr
Function82236: ; 82236
- ld hl, $ffa9
+ ld hl, hJoyLast
ld a, [hl]
- and $4
+ and SELECT
jr nz, .loop7
ld a, [hl]
- and $2
+ and B_BUTTON
jr nz, .asm_82299
call Function822f0
ret
@@ -51660,7 +51664,7 @@ Function822f0: ; 822f0
and 3
ld e, a
ld d, 0
- ld hl, Jumptable_82301
+ ld hl, .jumptable
rept 2
add hl, de
endr
@@ -51670,7 +51674,7 @@ endr
jp [hl]
; 82301
-Jumptable_82301: ; 82301
+.jumptable: ; 82301
dw Function82309
dw Function82339
dw Function8234b
@@ -51678,15 +51682,15 @@ Jumptable_82301: ; 82301
; 82309
Function82309: ; 82309
- ld hl, $ffa9
+ ld hl, hJoyLast
ld a, [hl]
- and $80
+ and D_DOWN
jr nz, Function8238c
ld a, [hl]
- and $20
+ and D_LEFT
jr nz, .asm_8231c
ld a, [hl]
- and $10
+ and D_RIGHT
jr nz, .asm_82322
ret
@@ -51714,40 +51718,40 @@ endr
ret
Function82339: ; 82338
- ld hl, $ffa9
+ ld hl, hJoyLast
ld a, [hl]
- and $80
+ and D_DOWN
jr nz, Function8238c
ld a, [hl]
- and $40
+ and D_UP
jr nz, Function82387
ld hl, wc608 + 10
jr Function82368
Function8234b: ; 8234b
- ld hl, $ffa9
+ ld hl, hJoyLast
ld a, [hl]
- and $80
+ and D_DOWN
jr nz, Function8238c
ld a, [hl]
- and $40
+ and D_UP
jr nz, Function82387
ld hl, wc608 + 11
jr Function82368
Function8235d: ; 8235d
- ld hl, $ffa9
+ ld hl, hJoyLast
ld a, [hl]
- and $40
+ and D_UP
jr nz, Function82387
ld hl, wc608 + 12
Function82368: ; 82368
- ld a, [$ffa9]
- and $10
+ ld a, [hJoyLast]
+ and D_RIGHT
jr nz, .asm_82375
- ld a, [$ffa9]
- and $20
+ ld a, [hJoyLast]
+ and D_LEFT
jr nz, .asm_8237c
ret
@@ -52836,7 +52840,7 @@ Function84688: ; 84688
Function846f6: ; 846f6
ld a, [hJoyDown]
- and $2
+ and B_BUTTON
jr nz, .asm_846fe
and a
ret
@@ -52890,7 +52894,7 @@ Function84742: ; 84742
ld [hJoyReleased], a
ld [hJoyPressed], a
ld [hJoyDown], a
- ld [$ffa9], a
+ ld [hJoyLast], a
ret
; 8474c
@@ -53025,13 +53029,13 @@ Function84817: ; 84817 (21:4817)
xor a
ld [wd002], a
hlcoord 0, 0
- ld bc, $168
- ld a, $7f
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
+ ld a, " "
call ByteFill
call Function84a0e
hlcoord 0, 0
- ld bc, $b4
- ld a, $7f
+ ld bc, 9 * SCREEN_WIDTH
+ ld a, " "
call ByteFill
call Function849e9
call Function849d7
@@ -53060,8 +53064,8 @@ String_84865:
Function8486f: ; 8486f (21:486f)
hlcoord 0, 0
- ld bc, $168
- ld a, $7f
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
+ ld a, " "
call ByteFill
call Function84a0e
call Function849e9
@@ -53077,8 +53081,8 @@ Function8486f: ; 8486f (21:486f)
Function84893: ; 84893 (21:4893)
hlcoord 0, 0
- ld bc, $168
- ld a, $7f
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
+ ld a, " "
call ByteFill
call Function84a0e
call Function849e9
@@ -53094,8 +53098,8 @@ Function84893: ; 84893 (21:4893)
Function848b7: ; 848b7 (21:48b7)
hlcoord 0, 0
- ld bc, $168
- ld a, $7f
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
+ ld a, " "
call ByteFill
call Function84a0e
hlcoord 1, 15
@@ -53132,7 +53136,7 @@ Function848ed: ; 848ed (21:48ed)
push de
push hl
ld bc, $10
- ld a, $7f
+ ld a, " "
call ByteFill
pop hl
push hl
@@ -53153,7 +53157,7 @@ Function848ed: ; 848ed (21:48ed)
ld [hli], a
push hl
ld bc, $e
- ld a, $7f
+ ld a, " "
call ByteFill
pop hl
push hl
@@ -53474,7 +53478,7 @@ GetHallOfFameParty: ; 8653f
ld c, 0
.next
ld a, [hli]
- cp $ff
+ cp -1
jr z, .done
cp EGG
jr nz, .mon
@@ -53567,7 +53571,7 @@ endr
predef GetUnownLetter
hlcoord 0, 0
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, $7f
+ ld a, " "
call ByteFill
ld de, VTiles2 tile $31
predef GetBackpic
@@ -53591,7 +53595,7 @@ endr
ld [wc2c6], a
hlcoord 0, 0
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, $7f
+ ld a, " "
call ByteFill
hlcoord 6, 5
call Function378b
@@ -53649,15 +53653,15 @@ Function86665: ; 86665
jr c, .asm_86690
.asm_8666e
call Functiona57
- ld hl, $ffa9
+ ld hl, hJoyLast
ld a, [hl]
- and $2
+ and B_BUTTON
jr nz, .asm_8668e
ld a, [hl]
- and $1
+ and A_BUTTON
jr nz, .asm_86688
ld a, [hl]
- and $8
+ and START
jr nz, .asm_86690
call DelayFrame
jr .asm_8666e
@@ -53787,19 +53791,19 @@ Function86748: ; 86748
ld a, [hli]
ld [TempMonLevel], a
ld de, StringBuffer2
- ld bc, $000a
+ ld bc, 10
call CopyBytes
- ld a, $50
+ ld a, "@"
ld [StringBuffer2 + 10], a
hlcoord 0, 0
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, $7f
+ ld a, " "
call ByteFill
hlcoord 0, 0
- ld bc, $0312
+ lb bc, 3, SCREEN_WIDTH - 2
call TextBox
hlcoord 0, 12
- ld bc, $0412
+ lb bc, 4, SCREEN_WIDTH - 2
call TextBox
ld a, [TempMonSpecies]
ld [CurPartySpecies], a
@@ -53866,13 +53870,13 @@ Function86810: ; 86810
call Request2bpp
hlcoord 0, 0
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, $7f
+ ld a, " "
call ByteFill
callba GetPlayerBackpic
ld a, $31
ld [$ffad], a
hlcoord 6, 6
- ld bc, $0606
+ lb bc, 6, 6
predef FillBox
ld a, $d0
ld [hSCY], a
@@ -53890,7 +53894,7 @@ Function86810: ; 86810
ld [wc2c6], a
hlcoord 0, 0
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, $7f
+ ld a, " "
call ByteFill
callba Function88840
xor a
@@ -53950,417 +53954,16 @@ Function86810: ; 86810
SECTION "bank22", ROMX, BANK[$22]
-Function88000: ; 88000
- ld hl, UnknownText_0x88007
- call PrintText
- ret
-; 88007
-
-UnknownText_0x88007: ; 0x88007
- ; Which APRICORN should I use?
- text_jump UnknownText_0x1bc06b
- db "@"
-; 0x8800c
-
-Function8800c: ; 8800c
- ld hl, UnknownText_0x88013
- call PrintText
- ret
-; 88013
-
-UnknownText_0x88013: ; 0x88013
- ; How many should I make?
- text_jump UnknownText_0x1bc089
- db "@"
-; 0x88018
-
-Function88018: ; 88018
- call Function1d6e
- ld c, $1
- xor a
- ld [wd0e4], a
- ld [wdca4], a
-.asm_88024
- push bc
- call Function88000
- pop bc
- ld a, c
- ld [MenuSelection], a
- call Function88055
- ld a, c
- ld [ScriptVar], a
- and a
- jr z, .asm_88051
- ld [CurItem], a
- ld a, [wcfa9]
- ld c, a
- push bc
- call Function8800c
- call Function880c2
- pop bc
- jr nc, .asm_88024
- ld a, [wd10c]
- ld [wdca4], a
- call Function88161
-
-.asm_88051
- call Function1d7d
- ret
-; 88055
-
-Function88055: ; 88055
- callba Function24c64
- jr c, .asm_88083
- ld hl, MenuDataHeader_0x88086
- call CopyMenuDataHeader
- ld a, [MenuSelection]
- ld [wcf88], a
- xor a
- ld [hBGMapMode], a
- call Function352f
- call UpdateSprites
- call Function350c
- ld a, [wcf73]
- cp $2
- jr z, .asm_88083
- ld a, [MenuSelection]
- cp $ff
- jr nz, .asm_88084
-
-.asm_88083
- xor a
-
-.asm_88084
- ld c, a
- ret
-; 88086
-
-MenuDataHeader_0x88086: ; 0x88086
- db $40 ; flags
- db 01, 01 ; start coords
- db 10, 13 ; end coords
- dw MenuData2_0x8808f
- db 1 ; default option
-; 0x8808e
-
- db 0
-
-MenuData2_0x8808f: ; 0x8808f
- db $10 ; flags
- db 4, 7
- db 1
- dbw 0, wd1ea
- dbw BANK(Function8809f), Function8809f
- dbw BANK(Function880ab), Function880ab
- dbw BANK(NULL), NULL
-
-Function8809f: ; 8809f
- ld a, [MenuSelection]
- and a
- ret z
- callba Function24ab4
- ret
-; 880ab
-
-Function880ab: ; 880ab
- ld a, [MenuSelection]
- ld [CurItem], a
- call Function88139
- ret z
- ld a, [wd10c]
- ld [wcf75], a
- callba Function24ac3
- ret
-; 880c2
-
-Function880c2: ; 880c2
- ld a, [CurItem]
- ld [MenuSelection], a
- call Function88139
- jr z, .asm_88109
- ld a, [wd10c]
- ld [wd10d], a
- ld a, $1
- ld [wd10c], a
- ld hl, MenuDataHeader_0x8810d
- call LoadMenuDataHeader
-.asm_880de
- xor a
- ld [hBGMapMode], a
- call Function1cbb
- call UpdateSprites
- call Function88116
- call Function88126
- call Function321c
- callba Function27a28
- jr nc, .asm_880de
- push bc
- call PlayClickSFX
- pop bc
- ld a, b
- cp $ff
- jr z, .asm_88109
- ld a, [wd10c]
- ld [wd10c], a
- scf
-
-.asm_88109
- call WriteBackup
- ret
-; 8810d
-
-MenuDataHeader_0x8810d: ; 0x8810d
- db $40 ; flags
- db 09, 06 ; start coords
- db 12, 19 ; end coords
-
- db 0, 0, -1, 0 ; XXX
-
-Function88116: ; 88116
- call Function1cfd
- ld de, $0015
- add hl, de
- ld d, h
- ld e, l
- callba Function24ab4
- ret
-; 88126
-
-Function88126: ; 88126
- call Function1cfd
- ld de, $0032
- add hl, de
- ld [hl], $f1
- inc hl
- ld de, wd10c
- lb bc, PRINTNUM_LEADINGZEROS | 1, 2
- jp PrintNum
-; 88139
-
-Function88139: ; 88139
- push bc
- ld hl, NumItems
- ld a, [CurItem]
- ld c, a
- ld b, $0
-.asm_88143
- inc hl
- ld a, [hli]
- cp $ff
- jr z, .asm_88153
- cp c
- jr nz, .asm_88143
- ld a, [hl]
- add b
- ld b, a
- jr nc, .asm_88143
- ld b, $ff
-
-.asm_88153
- ld a, b
- sub $63
- jr c, .asm_8815a
- ld b, $63
-
-.asm_8815a
- ld a, b
- ld [wd10c], a
- and a
- pop bc
- ret
-; 88161
-
-Function88161: ; 88161
- push de
- push bc
- ld hl, NumItems
- ld a, [CurItem]
- ld c, a
- ld e, $0
- xor a
- ld [wd107], a
- ld a, $ff
- ld [DefaultFlypoint], a
-.asm_88175
- ld a, [wd107]
- inc a
- ld [wd107], a
- inc hl
- ld a, [hli]
- cp $ff
- jr z, .asm_88198
- cp c
- jr nz, .asm_88175
- ld d, $0
- push hl
- ld hl, DefaultFlypoint
- add hl, de
- inc e
- ld a, [wd107]
- dec a
- ld [hli], a
- ld a, $ff
- ld [hl], a
- pop hl
- jr .asm_88175
-
-.asm_88198
- ld a, e
- and a
- jr z, .asm_881fa
- dec a
- jr z, .asm_881d0
- ld hl, DefaultFlypoint
-.asm_881a2
- ld a, [hl]
- ld c, a
- push hl
-.asm_881a5
- inc hl
- ld a, [hl]
- cp $ff
- jr z, .asm_881c9
- ld b, a
- ld a, c
- call Function88201
- ld e, a
- ld a, b
- call Function88201
- sub e
- jr z, .asm_881bc
- jr c, .asm_881c0
- jr .asm_881a5
-
-.asm_881bc
- ld a, c
- sub b
- jr nc, .asm_881a5
-
-.asm_881c0
- ld a, c
- ld c, b
- ld [hl], a
- ld a, c
- pop hl
- ld [hl], a
- push hl
- jr .asm_881a5
-
-.asm_881c9
- pop hl
- inc hl
- ld a, [hl]
- cp $ff
- jr nz, .asm_881a2
-
-.asm_881d0
- ld hl, DefaultFlypoint
-.asm_881d3
- ld a, [hl]
- cp $ff
- jr z, .asm_881fa
- push hl
- ld [wd107], a
- call Function88211
- pop hl
- ld a, [wd10c]
- and a
- jr z, .asm_881fa
- push hl
- ld a, [hli]
- ld c, a
-.asm_881e9
- ld a, [hli]
- cp $ff
- jr z, .asm_881f6
- cp c
- jr c, .asm_881e9
- dec a
- dec hl
- ld [hli], a
- jr .asm_881e9
-
-.asm_881f6
- pop hl
- inc hl
- jr .asm_881d3
-
-.asm_881fa
- ld a, [wd10c]
- and a
- pop bc
- pop de
- ret
-; 88201
-
-Function88201: ; 88201
- push hl
- push bc
- ld hl, NumItems
- inc hl
- ld c, a
- ld b, $0
-rept 2
- add hl, bc
-endr
- inc hl
- ld a, [hl]
- pop bc
- pop hl
- ret
-; 88211
-
-Function88211: ; 88211
- push bc
- ld hl, NumItems
- ld a, [wd107]
- ld c, a
- ld b, $0
- inc hl
-rept 2
- add hl, bc
-endr
- ld a, [CurItem]
- ld c, a
- ld a, [hli]
- cp $ff
- jr z, .asm_88243
- cp c
- jr nz, .asm_88243
- ld a, [wd10c]
- ld c, a
- ld a, [hl]
- sub c
- ld b, c
- jr nc, .asm_88235
- add c
- ld b, a
-
-.asm_88235
- push bc
- ld hl, NumItems
- ld a, b
- ld [wd10c], a
- call TossItem
- pop bc
- ld a, c
- sub b
-
-.asm_88243
- ld [wd10c], a
- pop bc
- ret
-; 88248
-
+INCLUDE "event/kurt.asm"
Function88248: ; 88248
- ld c, $c
+ ld c, CAL
ld a, [PlayerGender]
bit 0, a
- jr z, .asm_88253
- ld c, $e
+ jr z, .okay
+ ld c, KAREN
-.asm_88253
+.okay
ld a, c
ld [TrainerClass], a
ret
@@ -54416,9 +54019,9 @@ ShowPlayerNamingChoices: ; 88297
ld hl, ChrisNameMenuHeader
ld a, [PlayerGender]
bit 0, a
- jr z, .GotClass
+ jr z, .GotGender
ld hl, KrisNameMenuHeader
-.GotClass
+.GotGender
call LoadMenuDataHeader
call InterpretMenu2
ld a, [wcfa9]
@@ -54646,6587 +54249,18 @@ String_89116:
db "-----@"
; 8911c
-String_8911c: ; 8911c
- db "でんわばんごうが ただしく" ; Phone number is not
- next "はいって いません!@" ; entered correctly!
-; 89135
-
-String_89135: ; 89135
- db "データが かわって いますが" ; The data has changed.
- next "かきかえないで やめますか?@" ; Quit anyway?
-; 89153
-
-String_89153: ; 89153
- db "メッセージは ありません@" ; No message
-; 89160
-
-Function89160: ; 89160
- push af
- ld a, $4
- call GetSRAMBank
- pop af
- ret
-; 89168
-
-
-Function89168: ; 89168 (22:5168)
- ld hl, GameTimerPause
- set 7, [hl]
- ret
-
-Function8916e: ; 8916e (22:516e)
- ld hl, GameTimerPause
- res 7, [hl]
- ret
-
-Function89174: ; 89174 (22:5174)
- ld hl, GameTimerPause
- bit 7, [hl]
- ret
-
-Function8917a: ; 8917a (22:517a)
- ld hl, DefaultFlypoint
- ld bc, $32
- xor a
- call ByteFill
- ret
-
-Function89185: ; 89185 (22:5185)
-; Compares c bytes starting at de and hl and incrementing together until a match is found.
- push de
- push hl
-.loop
- ld a, [de]
- inc de
- cp [hl]
- jr nz, .done
- inc hl
- dec c
- jr nz, .loop
-.done
- pop hl
- pop de
- ret
-
-Function89193: ; 89193
-; Copies c bytes from hl to de.
- push de
- push hl
-.loop
- ld a, [hli]
- ld [de], a
- inc de
- dec c
- jr nz, .loop
- pop hl
- pop de
- ret
-; 8919e
-
-
-Function8919e: ; 8919e (22:519e)
-; Searches for the c'th string starting at de. Returns the pointer in de.
- ld a, c
- and a
- ret z
-.loop
- ld a, [de]
- inc de
- cp "@"
- jr nz, .loop
- dec c
- jr nz, .loop
- ret
-
-Function891ab: ; 891ab
- call Function89240
- callba Function104061
- call Function8923c
- ret
-; 891b8
-
-Function891b8: ; 891b8
- call Function8923c
- hlcoord 0, 0
- ld a, $7f
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- call ByteFill
- call DelayFrame
- ret
-; 891ca
-
-
-Function891ca: ; 891ca (22:51ca)
- push bc
- call Function891b8
- call WaitBGMap
- pop bc
- ret
-
-Function891d3: ; 891d3 (22:51d3)
- push bc
- call Function891ca
- ld c, $10
- call DelayFrames
- pop bc
- ret
-
-Function891de: ; 891de
- call Function8923c
- call ClearPalettes
- hlcoord 0, 0, AttrMap
- ld a, $7
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- call ByteFill
- hlcoord 0, 0
- ld a, $7f
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- call ByteFill
- call Function891ab
- ret
-; 891fe
-
-Function891fe: ; 891fe
- push bc
- call Function891de
- ld c, $10
- call DelayFrames
- pop bc
- ret
-; 89209
-
-Function89209: ; 89209
- ld a, 1
- ld [wc2ce], a
- ret
-; 8920f
-
-Function8920f: ; 8920f
- ld a, 0
- ld [wc2ce], a
- ret
-; 89215
-
-Function89215: ; 89215
- push hl
- push bc
- ld bc, AttrMap - TileMap
- add hl, bc
- ld [hl], a
- pop bc
- pop hl
- ret
-; 8921f
-
-
-Function8921f: ; 8921f (22:521f)
- push de
- ld de, SCREEN_WIDTH
- add hl, de
- inc hl
- ld a, $7f
-.loop
- push bc
- push hl
-.asm_89229
- ld [hli], a
- dec c
- jr nz, .asm_89229
- pop hl
- add hl, de
- pop bc
- dec b
- jr nz, .loop
- pop de
- ret
-
-Function89235: ; 89235 (22:5235)
- call Functiona36
- call PlayClickSFX
- ret
-
-Function8923c: ; 8923c
- xor a
- ld [hBGMapMode], a
- ret
-; 89240
-
-Function89240: ; 89240
- ld a, $1
- ld [hBGMapMode], a
- ret
-; 89245
-
-
-Function89245: ; 89245 (22:5245)
- callba TryLoadSaveFile
- ret c
- callba Function150b9
- and a
- ret
-
-Function89254: ; 89254 (22:5254)
- ld bc, $d07
- jr Function89261
-
-Function89259: ; 89259
- ld bc, $0e07
- jr Function89261
-
-Function8925e: ; 8925e
- ld bc, $0e0c
-
-Function89261: ; 89261
- push af
- push bc
- ld hl, MenuDataHeader_0x892a3
- call CopyMenuDataHeader
- pop bc
- ld hl, wcf82
- ld a, c
- ld [hli], a
- ld a, b
- ld [hli], a
- ld a, c
- add $4
- ld [hli], a
- ld a, b
- add $5
- ld [hl], a
- pop af
- ld [wcf88], a
- call Function1c00
- call Function8923c
- call Function89209
- call InterpretMenu2
- push af
- ld c, $a
- call DelayFrames
- call WriteBackup
- call Function8920f
- pop af
- jr c, .done
- ld a, [wcfa9]
- cp $2
- jr z, .done
- and a
- ret
-
-.done
- scf
- ret
-; 892a3
-
-MenuDataHeader_0x892a3: ; 0x892a3
- db $40 ; flags
- db 05, 10 ; start coords
- db 09, 15 ; end coords
- dw MenuData2_0x892ab
- db 1 ; default option
-; 0x892ab
-
-MenuData2_0x892ab: ; 0x892ab
- db $c0 ; flags
- db 2 ; items
- db "はい@"
- db "いいえ@"
-; 0x892b4
-
-Function892b4: ; 892b4 (22:52b4)
- call Function8931b
-
-Function892b7: ; 892b7
- ld d, b
- ld e, c
- ld hl, 0
- add hl, bc
- ld a, "@"
- ld bc, 6
- call ByteFill
- ld b, d
- ld c, e
- ld hl, 6
- add hl, bc
- ld a, "@"
- ld bc, 6
- call ByteFill
- ld b, d
- ld c, e
- ld hl, 12
- add hl, bc
- xor a
- ld [hli], a
- ld [hl], a
- ld hl, 14
- add hl, bc
- ld [hli], a
- ld [hl], a
- ld hl, 16
- add hl, bc
- ld [hl], a
- ld hl, 17
- add hl, bc
- ld a, -1
- ld bc, 8
- call ByteFill
- ld b, d
- ld c, e
- ld e, 6
- ld hl, 25
- add hl, bc
-.loop
- ld a, -1
- ld [hli], a
- ld a, -1
- ld [hli], a
- dec e
- jr nz, .loop
- ret
-; 89305
-
-
-Function89305: ; 89305 (22:5305)
- xor a
- ld [MenuSelection], a
- ld c, 40
-.loop
- ld a, [MenuSelection]
- inc a
- ld [MenuSelection], a
- push bc
- call Function892b4
- pop bc
- dec c
- jr nz, .loop
- ret
-
-Function8931b: ; 8931b
- push hl
- ld hl, $a03b
- ld a, [MenuSelection]
- dec a
- ld bc, $0025
- call AddNTimes
- ld b, h
- ld c, l
- pop hl
- ret
-; 8932d
-
-Function8932d: ; 8932d
- ld hl, 0
- add hl, bc
-
-Function89331: ; 89331
-; Scans up to 5 characters starting at hl, looking for a nonspace character up to the next terminator. Sets carry if it does not find a nonspace character. Returns the location of the following character in hl.
- push bc
- ld c, 5
-.loop
- ld a, [hli]
- cp "@"
- jr z, .terminator
- cp " "
- jr nz, .nonspace
- dec c
- jr nz, .loop
-
-.terminator
- scf
- jr .done
-
-.nonspace
- and a
-
-.done
- pop bc
- ret
-; 89346
-
-
-Function89346: ; 89346 (22:5346)
- ld h, b
- ld l, c
- jr _incave
-
-Function8934a: ; 8934a
- ld hl, 6
- add hl, bc
-_incave:
-; Scans up to 5 characters starting at hl, looking for a nonspace character up to the next terminator. Sets carry if it does not find a nonspace character. Returns the location of the following character in hl.
- push bc
- ld c, 5
-.loop
- ld a, [hli]
- cp "@"
- jr z, .terminator
- cp " "
- jr nz, .nonspace
- dec c
- jr nz, .loop
-
-.terminator
- scf
- jr .done
-
-.nonspace
- and a
-
-.done
- pop bc
- ret
-; 89363
-
-Function89363: ; 89363
-; Scans six byte pairs starting at bc to find $ff. Sets carry if it does not find a $ff. Returns the location of the byte after the first $ff found in hl.
- ld h, b
- ld l, c
- jr ._incave
-
- ld hl, 25
- add hl, bc
-
-._incave
- push de
- ld e, 6
-.loop
- ld a, [hli]
- cp -1
- jr nz, .ok
- ld a, [hli]
- cp -1
- jr nz, .ok
- dec e
- jr nz, .loop
- scf
- jr .done
-
-.ok
- and a
-
-.done
- pop de
- ret
-; 89381
-
-Function89381: ; 89381
- push bc
- push de
- call Function89b45
- jr c, .ok
- push hl
- ld a, -1
- ld bc, 8
- call ByteFill
- pop hl
-
-.ok
- pop de
- ld c, 8
- call Function89193
- pop bc
- ret
-; 8939a
-
-Function8939a: ; 8939a
- push bc
- ld hl, 0
- add hl, bc
- ld de, DefaultFlypoint
- ld c, 6
- call Function89193
- pop bc
- ld hl, 17
- add hl, bc
- ld de, wd008
- call Function89381
- ret
-; 893b3
-
-
-Function893b3: ; 893b3 (22:53b3)
- call DisableLCD
- call ClearSprites
- call Functione51
- call Functione5f
- call Function893ef
- call Function8942b
- call Function89455
- call EnableLCD
- ret
-
-Function893cc: ; 893cc
- call DisableLCD
- call ClearSprites
- call Functione51
- call Functione5f
- call Function893ef
- call Function89464
- call EnableLCD
- ret
-; 893e2
-
-
-Function893e2: ; 893e2 (22:53e2)
- call Function89b1e
- call Function893b3
- call Function8a5b6
- call Function8949c
- ret
-
-Function893ef: ; 893ef
- ld de, VTiles0
- ld hl, GFX_8940b
- ld bc, $20
- ld a, BANK(GFX_8940b)
- call FarCopyBytes
- ret
-; 893fe
-
-Function893fe: ; 893fe
- call DisableLCD
- call Function893ef
- call EnableLCD
- call DelayFrame
- ret
-; 8940b
-
-GFX_8940b: ; 8940b
-INCBIN "gfx/unknown/08940b.2bpp"
-; 8942b
-
-Function8942b: ; 8942b (22:542b)
- ld de, VTiles0 tile $02
- ld hl, MobileAdapterGFX + $7d0
- ld bc, $80
- ld a, BANK(MobileAdapterGFX)
- call FarCopyBytes
- ld de, VTiles0 tile $0a
- ld hl, MobileAdapterGFX + $c60
- ld bc, $40
- ld a, BANK(MobileAdapterGFX)
- call FarCopyBytes
- ret
-
-Function89448: ; 89448 (22:5448)
-; Clears the Sprites array
- push af
- ld hl, Sprites
- ld d, $10 * 6
- xor a
-.loop
- ld [hli], a
- dec d
- jr nz, .loop
- pop af
- ret
-
-Function89455: ; 89455 (22:5455)
- ld hl, MobileAdapterGFX + $7d0
- ld de, VTiles2 tile $0c
- ld bc, $490
- ld a, BANK(MobileAdapterGFX)
- call FarCopyBytes
- ret
-
-Function89464: ; 89464
- ld hl, MobileAdapterGFX
- ld de, VTiles2
- ld bc, $200
- ld a, BANK(MobileAdapterGFX)
- call FarCopyBytes
- ld hl, MobileAdapterGFX + $660
- ld de, VTiles2 tile $20
- ld bc, $170
- ld a, BANK(MobileAdapterGFX)
- call FarCopyBytes
- ret
-; 89481
-
-Function89481: ; 89481
- ld d, 2
- call Function8934a
- ret c
- ld d, 0
- ld hl, 16
- add hl, bc
- bit 0, [hl]
- ret z
- inc d
- ret
-; 89492
-
-
-Function89492: ; 89492 (22:5492)
- ld d, 0
- ld a, [PlayerGender]
- bit 0, a
- ret z
- inc d
- ret
-
-Function8949c: ; 8949c
- ld a, [rSVBK]
- push af
- ld a, 5
- ld [rSVBK], a
- ld hl, Palette_894b3
- ld de, Unkn1Pals + 8 * 7
- ld bc, 8
- call CopyBytes
- pop af
- ld [rSVBK], a
- ret
-; 894b3
-
-Palette_894b3: ; 894b3
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
-; 894bb
-
-Function894bb: ; 894bb
- call Function894dc
- push bc
- call Function8956f
- call Function8949c
- call Function8a60d
- pop bc
- ret
-; 894ca
-
-
-Function894ca: ; 894ca (22:54ca)
- push bc
- call Function894dc
- call Function895c7
- call Function8949c
- call Function8a60d
- call Function32f9
- pop bc
- ret
-
-Function894dc: ; 894dc
- push bc
- ld a, [rSVBK]
- push af
- ld a, 5
- ld [rSVBK], a
- ld c, d
- ld b, 0
- ld hl, Unknown_89509
-rept 2
- add hl, bc
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, Unkn1Pals
- ld bc, 24
- call CopyBytes
- ld hl, Palette_89557
- ld de, wd018
- ld bc, 24
- call CopyBytes
- pop af
- ld [rSVBK], a
- pop bc
- ret
-; 89509
-
-Unknown_89509: ; 89509
- dw Palette_8950f
- dw Palette_89527
- dw Palette_8953f
-; 8950f
-
-Palette_8950f: ; 8950f
- RGB 31, 31, 31
- RGB 10, 17, 13
- RGB 10, 08, 22
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 16, 20, 31
- RGB 10, 08, 22
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 16, 20, 31
- RGB 10, 17, 13
- RGB 00, 00, 00
-
-Palette_89527: ; 89527
- RGB 31, 31, 31
- RGB 30, 22, 11
- RGB 31, 08, 15
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 16, 20, 31
- RGB 31, 08, 15
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 16, 20, 31
- RGB 30, 22, 11
- RGB 00, 00, 00
-
-Palette_8953f: ; 8953f
- RGB 31, 31, 31
- RGB 15, 20, 26
- RGB 25, 07, 20
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 16, 20, 31
- RGB 25, 07, 20
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 16, 20, 31
- RGB 15, 20, 26
- RGB 00, 00, 00
-
-Palette_89557: ; 89557
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 13, 00
- RGB 14, 08, 00
-
- RGB 31, 31, 31
- RGB 16, 16, 31
- RGB 00, 00, 31
- RGB 00, 00, 00
-
- RGB 19, 31, 11
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-; 8956f
-
-Function8956f: ; 8956f
- push bc
- ld hl, 16
- add hl, bc
- ld d, h
- ld e, l
- ld hl, $000c
- add hl, bc
- ld b, h
- ld c, l
- callba Function4e929
- ld a, c
- ld [TrainerClass], a
- ld a, [rSVBK]
- push af
- ld a, 5
- ld [rSVBK], a
- ld hl, wd030
- ld a, -1
- ld [hli], a
- ld a, " "
- ld [hl], a
- pop af
- ld [rSVBK], a
- ld a, [TrainerClass]
- ld h, 0
- ld l, a
-rept 2
- add hl, hl
-endr
- ld de, TrainerPalettes
- add hl, de
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld de, wd032
- ld c, 4
-.loop
- ld a, BANK(TrainerPalettes)
- call GetFarByte
- ld [de], a
- inc de
- inc hl
- dec c
- jr nz, .loop
- ld hl, wd036
- xor a
- ld [hli], a
- ld [hl], a
- pop af
- ld [rSVBK], a
- pop bc
- ret
-; 895c7
-
-
-Function895c7: ; 895c7 (22:55c7)
- ld a, [rSVBK] ; $ff00+$70
- push af
- ld a, 5
- ld [rSVBK], a ; $ff00+$70
- ld hl, Palette_895de
- ld de, wd030
- ld bc, 8
- call CopyBytes
- pop af
- ld [rSVBK], a ; $ff00+$70
- ret
-; 895de (22:55de)
-
-Palette_895de: ; 895de
- RGB 31, 31, 31
- RGB 07, 07, 06
- RGB 07, 07, 06
- RGB 00, 00, 00
-; 895e6
-
-Function895e6: ; 895e6
- ld a, 7
- hlcoord 0, 0, AttrMap
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- call ByteFill
- ret
-; 895f2
-
-Function895f2: ; 895f2
- push bc
- xor a
- hlcoord 0, 0, AttrMap
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- call ByteFill
- call Function89605
- call Function89655
- pop bc
- ret
-; 89605
-
-Function89605: ; 89605
- hlcoord 19, 2, AttrMap
- ld a, 1
- ld de, SCREEN_WIDTH
- ld c, 14
-.loop
- ld [hl], a
- dec c
- jr z, .done
- add hl, de
- inc a
- ld [hl], a
- dec a
- add hl, de
- dec c
- jr nz, .loop
-
-.done
- hlcoord 0, 16, AttrMap
- ld c, 10
- ld a, 2
-.loop2
- ld [hli], a
- dec a
- ld [hli], a
- inc a
- dec c
- jr nz, .loop2
- hlcoord 1, 11, AttrMap
- ld a, 4
- ld bc, 4
- call ByteFill
- ld a, 5
- ld bc, 14
- call ByteFill
- ret
-; 8963d
-
-Function8963d: ; 8963d
- hlcoord 12, 3, AttrMap
- ld a, 6
- ld de, SCREEN_WIDTH
- lb bc, 7, 7
-.loop
- push hl
- ld c, 7
-.next
- ld [hli], a
- dec c
- jr nz, .next
- pop hl
- add hl, de
- dec b
- jr nz, .loop
- ret
-; 89655
-
-Function89655: ; 89655
- hlcoord 1, 12, AttrMap
- ld de, SCREEN_WIDTH
- ld a, 5
- ld b, 4
-.loop
- ld c, 18
- push hl
-.next
- ld [hli], a
- dec c
- jr nz, .next
- pop hl
- add hl, de
- dec b
- jr nz, .loop
- ret
-; 8966c
-
-Function8966c: ; 8966c
- push bc
- call Function89688
- hlcoord 4, 0
- ld c, 8
- call Function896f5
- pop bc
- ret
-; 8967a
-
-
-Function8967a: ; 8967a (22:567a)
- push bc
- call Function89688
- hlcoord 2, 0
- ld c, 12
- call Function896f5
- pop bc
- ret
-
-Function89688: ; 89688
- hlcoord 0, 0
- ld a, 1
- ld e, SCREEN_WIDTH
- call Function896e1
- ld a, 2
- ld e, SCREEN_WIDTH
- call Function896eb
- ld a, 3
- ld [hli], a
- ld a, 4
- ld e, SCREEN_HEIGHT
- call Function896e1
- ld a, 6
- ld [hli], a
- push bc
- ld c, 13
-.loop
- call Function896cb
- dec c
- jr z, .done
- call Function896d6
- dec c
- jr nz, .loop
-
-.done
- pop bc
- ld a, 25
- ld [hli], a
- ld a, 26
- ld e, SCREEN_HEIGHT
- call Function896e1
- ld a, 28
- ld [hli], a
- ld a, 2
- ld e, SCREEN_WIDTH
- call Function896eb
- ret
-; 896cb
-
-Function896cb: ; 896cb
- ld de, SCREEN_WIDTH - 1
- ld a, 7
- ld [hl], a
- add hl, de
- ld a, 9
- ld [hli], a
- ret
-; 896d6
-
-Function896d6: ; 896d6
- ld de, SCREEN_WIDTH - 1
- ld a, 10
- ld [hl], a
- add hl, de
- ld a, 11
- ld [hli], a
- ret
-; 896e1
-
-Function896e1: ; 896e1
-.loop
- ld [hli], a
- inc a
- dec e
- ret z
- ld [hli], a
- dec a
- dec e
- jr nz, .loop
- ret
-; 896eb
-
-Function896eb: ; 896eb
-.loop
- ld [hli], a
- dec a
- dec e
- ret z
- ld [hli], a
- inc a
- dec e
- jr nz, .loop
- ret
-; 896f5
-
-Function896f5: ; 896f5
- call Function8971f
- call Function89736
-rept 2
- inc hl
-endr
- ld b, 2
-
-ClearScreenArea: ; 0x896ff
-; clears an area of the screen
-; INPUT:
-; hl = address of upper left corner of the area
-; b = height
-; c = width
-
- ld a, " " ; blank tile
- ld de, 20 ; screen width
-.loop
- push bc
- push hl
-.innerLoop
- ld [hli], a
- dec c
- jr nz, .innerLoop
- pop hl
- pop bc
- add hl, de
- dec b
- jr nz, .loop
-
- dec hl
-rept 2
- inc c
-endr
-.asm_89713
- ld a, $36
- ld [hli], a
- dec c
- ret z
- ld a, $18
- ld [hli], a
- dec c
- jr nz, .asm_89713 ; 0x8971c $f5
- ret
-; 0x8971f
-
-Function8971f: ; 8971f
- ld a, $2c
- ld [hli], a
- ld a, $2d
- ld [hld], a
- push hl
- ld de, SCREEN_WIDTH
- add hl, de
- ld a, $31
- ld [hli], a
- ld a, $32
- ld [hld], a
- add hl, de
- ld a, $35
- ld [hl], a
- pop hl
- ret
-; 89736
-
-Function89736: ; 89736
- push hl
-rept 2
- inc hl
-endr
- ld e, c
- ld d, $0
- add hl, de
- ld a, $2f
- ld [hli], a
- ld a, $30
- ld [hld], a
- ld de, SCREEN_WIDTH
- add hl, de
- ld a, $33
- ld [hli], a
- ld a, $34
- ld [hl], a
- add hl, de
- ld a, $1f
- ld [hl], a
- pop hl
- ret
-; 89753
-
-Function89753: ; 89753
- ld a, $c
- ld [hl], a
- xor a
- call Function89215
- ret
-; 8975b
-
-Function8975b: ; 8975b
- ld a, $1d
- ld [hli], a
- inc a
- ld [hli], a
- ld a, $d
- ld [hl], a
-rept 2
- dec hl
-endr
- ld a, $4
- ld e, $3
-.asm_89769
- call Function89215
- inc hl
- dec e
- jr nz, .asm_89769
- ret
-; 89771
-
-Function89771: ; 89771
- ld a, $12
- ld [hl], a
- ld a, $3
- call Function89215
- ret
-; 8977a
-
-Function8977a: ; 8977a
- ld e, $4
- ld d, $13
-.asm_8977e
- ld a, d
- ld [hl], a
- ld a, $4
- call Function89215
- inc hl
- inc d
- dec e
- jr nz, .asm_8977e
- ld e, $e
-.asm_8978c
- ld a, d
- ld [hl], a
- xor a
- call Function89215
- inc hl
- dec e
- jr nz, .asm_8978c
- ret
-; 89797
-
-Function89797: ; 89797
- push bc
- ld a, $e
- ld [hl], a
- ld bc, SCREEN_WIDTH
- add hl, bc
- ld a, $11
- ld [hli], a
- ld a, $10
- ld c, $8
-.asm_897a6
- ld [hli], a
- dec c
- jr nz, .asm_897a6
- ld a, $f
- ld [hl], a
- pop bc
- ret
-; 897af
-
-Function897af: ; 897af
- push bc
- ld hl, $0010
- add hl, bc
- ld d, h
- ld e, l
- ld hl, $000c
- add hl, bc
- ld b, h
- ld c, l
- callba Function4e929
- ld a, c
- ld [TrainerClass], a
- xor a
- ld [CurPartySpecies], a
- ld de, VTiles2 tile $37
- callba GetTrainerPic
- pop bc
- ret
-; 897d5
-
-Function897d5: ; 897d5
- push bc
- call Function8934a
- jr nc, .asm_897f3
- hlcoord 12, 3, AttrMap
- xor a
- ld de, SCREEN_WIDTH
- lb bc, 7, 7
-.asm_897e5
- push hl
- ld c, $7
-.asm_897e8
- ld [hli], a
- dec c
- jr nz, .asm_897e8
- pop hl
- add hl, de
- dec b
- jr nz, .asm_897e5
- pop bc
- ret
-
-.asm_897f3
- ld a, $37
- ld [$ffad], a
- hlcoord 12, 3
- lb bc, 7, 7
- predef FillBox
- call Function8963d
- pop bc
- ret
-; 89807
-
-
-Function89807: ; 89807 (22:5807)
- ld hl, MobileAdapterGFX + $200
- ld a, [PlayerGender]
- bit 0, a
- jr z, .asm_89814
- ld hl, MobileAdapterGFX + $200 + $230
-.asm_89814
- call DisableLCD
- ld de, VTiles2 tile $37
- ld bc, $230
- ld a, BANK(MobileAdapterGFX)
- call FarCopyBytes
- call EnableLCD
- call DelayFrame
- ret
-
-Function89829: ; 89829 (22:5829)
- push bc
- ld bc, $705
- ld de, $14
- ld a, $37
-.asm_89832
- push bc
- push hl
-.asm_89834
- ld [hli], a
- inc a
- dec c
- jr nz, .asm_89834
- pop hl
- add hl, de
- pop bc
- dec b
- jr nz, .asm_89832
- call Function8963d
- pop bc
- ret
-
-Function89844: ; 89844
- call Function89481
- call Function894bb
- call Function897af
- push bc
- call Function3200
- call Function32f9
- pop bc
- ret
-; 89856
-
-Function89856: ; 89856
- push bc
- call Function891b8
- pop bc
- call Function895f2
- call Function8966c
- call Function899d3
- call Function898aa
- call Function898be
- call Function898dc
- call Function898f3
- push bc
- ld bc, wd008
- hlcoord 2, 10
- call Function89975
- pop bc
- call Function897d5
- ret
-; 8987f
-
-
-Function8987f: ; 8987f (22:587f)
- call Function891b8
- call Function895f2
- call Function8967a
- call Function899d3
- hlcoord 5, 1
- call Function8999c
- hlcoord 13, 3
- call Function89829
- call Function899b2
- hlcoord 5, 5
- call Function899c9
- ld bc, wd008
- hlcoord 2, 10
- call Function89975
- ret
-
-Function898aa: ; 898aa
- ld a, [MenuSelection]
- and a
- ret z
- push bc
- hlcoord 6, 1
- ld de, MenuSelection
- lb bc, PRINTNUM_LEADINGZEROS | 1, 2
- call PrintNum
- pop bc
- ret
-; 898be
-
-Function898be: ; 898be
- push bc
- ld de, DefaultFlypoint
- ld hl, DefaultFlypoint
- call Function89331
- jr nc, .asm_898cd
- ld de, String_89116
-
-.asm_898cd
- hlcoord 9, 1
- ld a, [MenuSelection]
- and a
- jr nz, .asm_898d7
- dec hl
-
-.asm_898d7
- call PlaceString
- pop bc
- ret
-; 898dc
-
-Function898dc: ; 898dc
- ld hl, $0006
- add hl, bc
- push bc
- ld d, h
- ld e, l
- call Function8934a
- jr nc, .asm_898eb
- ld de, String_89116
-
-.asm_898eb
- hlcoord 6, 4
- call PlaceString
- pop bc
- ret
-; 898f3
-
-Function898f3: ; 898f3
- push bc
- ld hl, $000c
- add hl, bc
- ld d, h
- ld e, l
- call Function8934a
- jr c, .asm_8990a
- hlcoord 5, 5
- lb bc, PRINTNUM_LEADINGZEROS | 2, 5
- call PrintNum
- jr .asm_89913
-
-.asm_8990a
- hlcoord 5, 5
- ld de, String_89116
- call PlaceString
-
-.asm_89913
- pop bc
- ret
-; 89915
-
-Function89915: ; 89915
- push bc
- push hl
- ld de, Unknown_89942
- ld c, $8
-.asm_8991c
- ld a, [de]
- ld [hl], a
- ld a, $4
- call Function89215
- inc hl
- inc de
- dec c
- jr nz, .asm_8991c
- pop hl
- ld b, $4
- ld c, $2b
- ld a, $8
- ld de, Unknown_8994a
-.asm_89932
- push af
- ld a, [de]
- cp [hl]
- jr nz, .asm_8993b
- call Function8994e
- inc de
-
-.asm_8993b
- inc hl
- pop af
- dec a
- jr nz, .asm_89932
- pop bc
- ret
-; 89942
-
-Unknown_89942: ; 89942
- db $24, $25, $26, " ", $27, $28, $29, $2a
-Unknown_8994a: ; 8994a
- db $24, $27, $29, $ff
-; 8994e
-
-Function8994e: ; 8994e
- push hl
- push de
- ld de, SCREEN_WIDTH
- ld a, l
- sub e
- ld l, a
- ld a, h
- sbc d
- ld h, a
- ld a, c
- ld [hl], a
- ld a, b
- call Function89215
- pop de
- pop hl
- ret
-; 89962
-
-Function89962: ; 89962
- push bc
- ld c, $4
- ld b, $20
-.asm_89967
- ld a, b
- ld [hl], a
- ld a, $4
- call Function89215
- inc hl
- inc b
- dec c
- jr nz, .asm_89967
- pop bc
- ret
-; 89975
-
-Function89975: ; 89975
- push bc
- ld e, $8
-.asm_89978
- ld a, [bc]
- ld d, a
- call Function8998b
- swap d
- inc hl
- ld a, d
- call Function8998b
- inc bc
- inc hl
- dec e
- jr nz, .asm_89978
- pop bc
- ret
-; 8998b
-
-Function8998b: ; 8998b
- push bc
- and $f
- cp $a
- jr nc, .asm_89997
- ld c, $f6
- add c
- jr .asm_89999
-
-.asm_89997
- ld a, $7f
-
-.asm_89999
- ld [hl], a
- pop bc
- ret
-; 8999c
-
-
-Function8999c: ; 8999c (22:599c)
- ld de, PlayerName
- call PlaceString
- inc bc
- ld h, b
- ld l, c
- ld de, String_899ac
- call PlaceString
- ret
-; 899ac (22:59ac)
-
-String_899ac: ; 899ac
- db "の めいし@"
-; 899b2
-
-Function899b2: ; 899b2 (22:59b2)
- ld bc, PlayerName
- call Function89346
- jr c, .asm_899bf
- ld de, PlayerName
- jr .asm_899c2
-.asm_899bf
- ld de, String_89116
-.asm_899c2
- hlcoord 6, 4
- call PlaceString
- ret
-
-Function899c9: ; 899c9 (22:59c9)
- ld de, PlayerID
- lb bc, PRINTNUM_LEADINGZEROS | 2, 5
- call PrintNum
- ret
-
-Function899d3: ; 899d3
- hlcoord 1, 4
- call Function89753
- hlcoord 2, 5
- call Function8975b
- hlcoord 1, 9
- call Function89771
- hlcoord 1, 11
- call Function8977a
- hlcoord 1, 5
- call Function89797
- hlcoord 2, 4
- call Function89962
- hlcoord 2, 9
- call Function89915
- ret
-; 899fe
-
-Function899fe: ; 899fe
- push bc
- push hl
- ld hl, $0019
- add hl, bc
- ld b, h
- ld c, l
- pop hl
- call Function89a0c
- pop bc
- ret
-; 89a0c
-
-Function89a0c: ; 89a0c
- push hl
- call Function89363
- pop hl
- jr c, .asm_89a1c
- ld d, h
- ld e, l
- callba Function11c08f
- ret
-
-.asm_89a1c
- ld de, String_89153
- call PlaceString
- ret
-; 89a23
-
-
-Function89a23: ; 89a23 (22:5a23)
- hlcoord 0, 11
- ld b, $4
- ld c, $12
- call Function8921f
- ret
-
-Function89a2e: ; 89a2e (22:5a2e)
- hlcoord 11, 12
- ld b, $2
- ld c, $6
- call TextBox
- hlcoord 13, 13
- ld de, String_89a4e
- call PlaceString
- hlcoord 13, 14
- ld de, String_89a53
- call PlaceString
- call Function89655
- ret
-; 89a4e (22:5a4e)
-
-String_89a4e: ; 89a4e
- db "けってい@"
-; 89a53
-
-String_89a53: ; 89a53
- db "やめる@"
-; 89a57
-
-Function89a57: ; 89a57
- call Function354b
- bit 6, c
- jr nz, .asm_89a78
- bit 7, c
- jr nz, .asm_89a81
- bit 0, c
- jr nz, .asm_89a70
- bit 1, c
- jr nz, .asm_89a70
- bit 3, c
- jr nz, .asm_89a74
- scf
- ret
-
-.asm_89a70
- ld a, $1
- and a
- ret
-
-.asm_89a74
- ld a, $2
- and a
- ret
-
-.asm_89a78
- call Function89a9b
- call nc, Function89a8a
- ld a, $0
- ret
-
-.asm_89a81
- call Function89a93
- call nc, Function89a8a
- ld a, $0
- ret
-; 89a8a
-
-Function89a8a: ; 89a8a
- push af
- ld de, SFX_UNKNOWN_62
- call PlaySFX
- pop af
- ret
-; 89a93
-
-Function89a93: ; 89a93
- ld d, $28
- ld e, $1
- call Function89aa3
- ret
-; 89a9b
-
-Function89a9b: ; 89a9b
- ld d, $1
- ld e, $ff
- call Function89aa3
- ret
-; 89aa3
-
-Function89aa3: ; 89aa3
- ld a, [MenuSelection]
- ld c, a
- push bc
-.asm_89aa8
- ld a, [MenuSelection]
- cp d
- jr z, .asm_89ac0
- add e
- jr nz, .asm_89ab2
- inc a
-
-.asm_89ab2
- ld [MenuSelection], a
- call Function89ac7
- jr nc, .asm_89aa8
- call Function89ae6
- pop bc
- and a
- ret
-
-.asm_89ac0
- pop bc
- ld a, c
- ld [MenuSelection], a
- scf
- ret
-; 89ac7
-
-Function89ac7: ; 89ac7
- call Function89160
- call Function8931b
- call Function89ad4
- call CloseSRAM
- ret
-; 89ad4
-
-Function89ad4: ; 89ad4
- push de
- call Function8932d
- jr c, .asm_89ae3
- ld hl, $0011
- add hl, bc
- call Function89b45
- jr c, .asm_89ae4
-
-.asm_89ae3
- and a
-
-.asm_89ae4
- pop de
- ret
-; 89ae6
-
-Function89ae6: ; 89ae6
- ld hl, wd031
- xor a
- ld [hl], a
- ld a, [MenuSelection]
-.asm_89aee
- cp $6
- jr c, .asm_89afc
- sub $5
- ld c, a
- ld a, [hl]
- add $5
- ld [hl], a
- ld a, c
- jr .asm_89aee
-
-.asm_89afc
- ld [wd030], a
- ret
-; 89b00
-
-
-Function89b00: ; 89b00 (22:5b00)
- callba Function49351
- ret
-; 89b07 (22:5b07)
-
-Function89b07: ; 89b07
- call Function8923c
- call DelayFrame
- callba Function4a3a7
- ret
-; 89b14
-
-Function89b14: ; 89b14
- call WhiteBGMap
- call Function89b07
- call Function89b00
- ret
-; 89b1e
-
-Function89b1e: ; 89b1e (22:5b1e)
- callba Function4a485
- call Function89b00
- ret
-
-Function89b28: ; 89b28 (22:5b28)
- call Function891de
- call WhiteBGMap
- call Function893e2
- call Function1d7d
- call Function891ab
- call Function32f9
- ret
-
-Function89b3b: ; 89b3b (22:5b3b)
- call Function8923c
- callba Function48cda
- ret
-
-Function89b45: ; 89b45
- push hl
- push bc
- ld c, $10
- ld e, $0
-.asm_89b4b
- ld a, [hli]
- ld b, a
- and $f
- cp $a
- jr c, .asm_89b5a
- ld a, c
- cp $b
- jr nc, .asm_89b74
- jr .asm_89b71
-
-.asm_89b5a
- dec c
- swap b
- inc e
- ld a, b
- and $f
- cp $a
- jr c, .asm_89b6c
- ld a, c
- cp $b
- jr nc, .asm_89b74
- jr .asm_89b71
-
-.asm_89b6c
- inc e
- dec c
- jr nz, .asm_89b4b
- dec e
-
-.asm_89b71
- scf
- jr .asm_89b75
-
-.asm_89b74
- and a
-
-.asm_89b75
- pop bc
- pop hl
- ret
-; 89b78
-
-
-Function89b78: ; 89b78 (22:5b78)
- push bc
- ld a, [wd010]
- cp $10
- jr c, .asm_89b8c
- ld a, e
- and a
- jr z, .asm_89b89
- ld c, e
-.asm_89b85
- inc hl
- dec c
- jr nz, .asm_89b85
-.asm_89b89
- ld a, $7f
- ld [hl], a
-.asm_89b8c
- ld a, [wd010]
- inc a
- and $1f
- ld [wd010], a
- pop bc
- ret
-
-Function89b97: ; 89b97 (22:5b97)
- call Function89c34
- jr c, .asm_89ba0
- call Function89448
- ret
-.asm_89ba0
- ld a, [wd011]
- ld hl, Unknown_89bd8
- and a
- jr z, .asm_89bae
-.asm_89ba9
-rept 2
- inc hl
-endr
- dec a
- jr nz, .asm_89ba9
-.asm_89bae
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, Sprites
-.asm_89bb4
- ld a, [hli]
- cp $ff
- ret z
- ld c, a
- ld b, $0
-.asm_89bbb
- push hl
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- add b
- ld [de], a
- inc de
- ld a, $8
- add b
- ld b, a
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- pop hl
- dec c
- jr nz, .asm_89bbb
- ld b, $0
- ld c, $4
- add hl, bc
- jr .asm_89bb4
-; 89bd8 (22:5bd8)
-
-Unknown_89bd8: ; 89bd8
- dw Unknown_89be0
- dw Unknown_89bf5
- dw Unknown_89c0a
- dw Unknown_89c1f
-; 89be0
-
-Unknown_89be0: ; 89be0
- db $01, $12, $4e, $01, $00
- db $01, $19, $4e, $01, $40
- db $01, $12, $72, $01, $20
- db $01, $19, $72, $01, $60
- db $ff
-
-Unknown_89bf5: ; 89bf5
- db $01, $60, $16, $01, $00
- db $01, $62, $16, $01, $40
- db $01, $60, $92, $01, $20
- db $01, $62, $92, $01, $60
- db $ff
-
-Unknown_89c0a: ; 89c0a
- db $01, $78, $66, $01, $00
- db $01, $78, $66, $01, $40
- db $01, $78, $92, $01, $20
- db $01, $78, $92, $01, $60
- db $ff
-
-Unknown_89c1f: ; 89c1f
- db $01, $80, $66, $01, $00
- db $01, $80, $66, $01, $40
- db $01, $80, $92, $01, $20
- db $01, $80, $92, $01, $60
- db $ff
-; 89c34
-
-Function89c34: ; 89c34 (22:5c34)
- push bc
- ld a, [wd012]
- ld c, a
- inc a
- and $f
- ld [wd012], a
- ld a, c
- cp $8
- pop bc
- ret
-
-Function89c44: ; 89c44 (22:5c44)
- call Function89c34
- jr c, .asm_89c4f
- push de
- call Function89448
- pop de
- ret
-.asm_89c4f
- ld hl, Sprites
- push de
- ld a, b
- ld [hli], a
- ld d, $8
- ld a, e
- and a
- ld a, c
- jr z, .asm_89c60
-.asm_89c5c
- add d
- dec e
- jr nz, .asm_89c5c
-.asm_89c60
- pop de
- ld [hli], a
- ld a, d
- ld [hli], a
- xor a
- ld [hli], a
- ret
-
-Function89c67: ; 89c67 (22:5c67)
- call Function354b
- ld b, $0
- bit 0, c
- jr z, .asm_89c74
- ld b, $1
- and a
- ret
-.asm_89c74
- bit 1, c
- jr z, .asm_89c7a
- scf
- ret
-.asm_89c7a
- xor a
- bit 6, c
- jr z, .asm_89c81
- ld a, $1
-.asm_89c81
- bit 7, c
- jr z, .asm_89c87
- ld a, $2
-.asm_89c87
- bit 5, c
- jr z, .asm_89c8d
- ld a, $3
-.asm_89c8d
- bit 4, c
- jr z, .asm_89c93
- ld a, $4
-.asm_89c93
- and a
- ret z
- dec a
- ld c, a
- ld d, $0
- ld hl, Unknown_89cbf
- ld a, [wd02f]
- and a
- jr z, .asm_89ca5
- ld hl, Unknown_89ccf
-.asm_89ca5
- ld a, [wd011]
- and a
- jr z, .asm_89cb1
- ld e, $4
-.asm_89cad
- add hl, de
- dec a
- jr nz, .asm_89cad
-.asm_89cb1
- ld e, c
- add hl, de
- ld a, [hl]
- and a
- ret z
- dec a
- ld [wd011], a
- xor a
- ld [wd012], a
- ret
-; 89cbf (22:5cbf)
-
-Unknown_89cbf: ; 89cbf
- db 0, 2, 0, 0
- db 1, 3, 0, 0
- db 2, 4, 0, 0
- db 3, 0, 0, 0
-
-Unknown_89ccf: ; 89ccf
- db 0, 0, 0, 0
- db 0, 3, 0, 0
- db 2, 4, 0, 0
- db 3, 0, 0, 0
-; 89cdf
-
-Function89cdf: ; 89cdf (22:5cdf)
- ld a, $10
- add b
- ld b, a
- ld a, $8
- add c
- ld c, a
- ld e, $2
- ld a, $2
- ld hl, Sprites
-.asm_89cee
- push af
- push bc
- ld d, $4
-.asm_89cf2
- ld a, b
- ld [hli], a
- ld a, c
- ld [hli], a
- ld a, e
- ld [hli], a
- ld a, $1
- ld [hli], a
- ld a, $8
- add c
- ld c, a
- inc e
- dec d
- jr nz, .asm_89cf2
- pop bc
- ld a, $8
- add b
- ld b, a
- pop af
- dec a
- jr nz, .asm_89cee
- ret
-
-Function89d0d: ; 89d0d (22:5d0d)
- call Function8923c
- ld a, [rSVBK] ; $ff00+$70
- push af
- ld a, $5
- ld [rSVBK], a ; $ff00+$70
- ld c, $8
- ld de, Unkn1Pals
-.asm_89d1c
- push bc
- ld hl, Palette_89d4e
- ld bc, $8
- call CopyBytes
- pop bc
- dec c
- jr nz, .asm_89d1c
- ld hl, Palette_89d56
- ld de, wd010
- ld bc, $8
- call CopyBytes
- pop af
- ld [rSVBK], a ; $ff00+$70
- call Function32f9
- callba Function845db
- call Function89240
- ld c, $18
- call DelayFrames
- call RestartMapMusic
- ret
-; 89d4e (22:5d4e)
-
-Palette_89d4e: ; 89d4e
- RGB 31, 31, 31
- RGB 19, 19, 19
- RGB 15, 15, 15
- RGB 00, 00, 00
-; 89d56
-
-Palette_89d56: ; 89d56
- RGB 31, 31, 31
- RGB 19, 19, 19
- RGB 19, 19, 19
- RGB 00, 00, 00
-; 89d5e
-
-Function89d5e: ; 89d5e (22:5d5e)
- push af
- call CopyMenuDataHeader
- pop af
- ld [wcf88], a
- call Function8923c
- call Function1c89
- call Function1c10
- ld hl, wcfa5
- set 7, [hl]
- ret
-
-Function89d75: ; 89d75 (22:5d75)
- push hl
- call Function8923c
- call _hl_
- callba Function104148
- pop hl
- jr asm_89d90
-
-Function89d85: ; 89d85 (22:5d85)
- push hl
- call Function8923c
- call _hl_
- call Function3238
- pop hl
-
-asm_89d90: ; 89d90 (22:5d90)
- call Function8923c
- push hl
- call _hl_
- call Function89dab
- ld a, [wcfa9]
- push af
- call Function891ab
- pop af
- pop hl
- jr c, .asm_89da9
- jr z, asm_89d90
- scf
- ret
-.asm_89da9
- and a
- ret
-
-Function89dab: ; 89dab (22:5dab)
- call Function8923c
- callba Function241ba
- call Function8923c
- ld a, c
- ld hl, wcfa8
- and [hl]
- ret z
- bit 0, a
- jr nz, .asm_89dc7
- bit 1, a
- jr nz, .asm_89dd9
- xor a
- ret
-.asm_89dc7
- call PlayClickSFX
- ld a, [wcfa3]
- ld c, a
- ld a, [wcfa9]
- cp c
- jr z, .asm_89dd9
- call Function1bee
- scf
- ret
-.asm_89dd9
- call PlayClickSFX
- ld a, $1
- and a
- ret
-
-Function89de0: ; 89de0 (22:5de0)
- call ClearSprites
- call Function89e0a
- jr c, .asm_89e00
- ld c, $1
-.asm_89dea
- call Function8a31c
- jr z, .asm_89dfd
- ld a, [wcfa9]
- ld c, a
- push bc
- ld hl, Jumptable_89e04
- ld a, e
- dec a
- rst JumpTable
- pop bc
- jr .asm_89dea
-.asm_89dfd
- call Function891fe
-.asm_89e00
- call Function8917a
- ret
-
-Jumptable_89e04: ; 89e04 (22:5e04)
- dw Function8a62c
- dw Function8a999
- dw Function8ab93
-
-
-Function89e0a: ; 89e0a (22:5e0a)
- call Function89160
- call Function8b3b0
- call CloseSRAM
- ld hl, Jumptable_89e18
- rst JumpTable
- ret
-
-Jumptable_89e18: ; 89e18 (22:5e18)
- dw Function89e1e
- dw Function8a116
- dw Function8a2aa
-
-
-Function89e1e: ; 89e1e (22:5e1e)
- call Function89160
- ld bc, $a037
- call Function8b36c
- call CloseSRAM
- xor a
- ld [wd02d], a
-
-asm_89e2e: ; 89e2e (22:5e2e)
- ld a, [wd02d]
- ld hl, Jumptable_89e3c
- rst JumpTable
- ret
-
-Function89e36: ; 89e36 (22:5e36)
- ld hl, wd02d
- inc [hl]
- jr asm_89e2e
-
-Jumptable_89e3c: ; 89e3c (22:5e3c)
- dw Function89e6f
- dw Function89fed
- dw Function89ff6
- dw Function8a03d
- dw Function89eb9
- dw Function89efd
- dw Function89fce
- dw Function8a04c
- dw Function8a055
- dw Function8a0e6
- dw Function8a0ec
- dw Function8a0f5
- dw Function89e58
- dw Function89e68
-
-
-Function89e58: ; 89e58 (22:5e58)
- ld a, $1
- call Function8a2fe
- call Function891fe
- call Function893e2
- call Function89168
- and a
- ret
-
-Function89e68: ; 89e68 (22:5e68)
- call Function891fe
- ld a, $1
- scf
- ret
-
-Function89e6f: ; 89e6f (22:5e6f)
- call Function891de
- call Function89245
- call Function89ee1
- call Function89e9a
- hlcoord 7, 4
- call Function8a58d
- ld a, $5
- hlcoord 7, 4, AttrMap
- call Function8a5a3
- ld a, $6
- hlcoord 10, 4, AttrMap
- call Function8a5a3
- call Function891ab
- call Function32f9
- jp Function89e36
-
-Function89e9a: ; 89e9a (22:5e9a)
- ld a, [rSVBK] ; $ff00+$70
- push af
- ld a, $5
- ld [rSVBK], a ; $ff00+$70
- ld hl, Palette_89eb1
- ld de, wd028
- ld bc, $8
- call CopyBytes
- pop af
- ld [rSVBK], a ; $ff00+$70
- ret
-; 89eb1 (22:5eb1)
-
-Palette_89eb1: ; 89eb1
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 27, 19, 00
- RGB 00, 00, 00
-; 89eb9
-
-Function89eb9: ; 89eb9 (22:5eb9)
- call Function891fe
- call Function89ee1
- call Function89e9a
- hlcoord 7, 4
- call Function8a58d
- ld a, $5
- hlcoord 7, 4, AttrMap
- call Function8a5a3
- ld a, $6
- hlcoord 10, 4, AttrMap
- call Function8a5a3
- call Function891ab
- call Function32f9
- jp Function89e36
-
-Function89ee1: ; 89ee1 (22:5ee1)
- call WhiteBGMap
- call Function893e2
- call Function8923c
- callba Function4a3a7
- callba Function49384
- hlcoord 1, 0
- call Function8a53d
- ret
-
-Function89efd: ; 89efd (22:5efd)
- ld hl, wd012
- ld a, $ff
- ld [hli], a
- xor a
-rept 4
- ld [hli], a
-endr
- ld [hl], a
-.asm_89f09
- ld hl, wd012
- inc [hl]
- ld a, [hli]
- and $3
- jr nz, .asm_89f2e
- ld a, [hl]
- cp $4
- jr nc, .asm_89f2e
- ld b, $32
- inc [hl]
- ld a, [hl]
- dec a
- jr z, .asm_89f26
- ld c, a
-.asm_89f1f
- ld a, $b
- add b
- ld b, a
- dec c
- jr nz, .asm_89f1f
-.asm_89f26
- ld c, $e8
- ld a, [wd013]
- call Function89fa5
-.asm_89f2e
- ld a, [wd013]
- and a
- jr z, .asm_89f58
-.asm_89f34
- call Function89f6a
- ld e, a
- ld a, c
- cp $a8
- jr nc, .asm_89f4d
- cp $46
- jr c, .asm_89f4d
- ld d, $0
- dec e
- ld hl, wd014
- add hl, de
- set 0, [hl]
- inc e
- jr .asm_89f51
-.asm_89f4d
- ld a, $2
- add c
- ld c, a
-.asm_89f51
- ld a, e
- call Function89f77
- dec a
- jr nz, .asm_89f34
-.asm_89f58
- call DelayFrame
- ld hl, wd014
- ld c, $4
-.asm_89f60
- ld a, [hli]
- and a
- jr z, .asm_89f09
- dec c
- jr nz, .asm_89f60
- jp Function89e36
-
-Function89f6a: ; 89f6a (22:5f6a)
- push af
- ld de, $10
- call Function89f9a
- ld a, [hli]
- ld b, a
- ld a, [hl]
- ld c, a
- pop af
- ret
-
-Function89f77: ; 89f77 (22:5f77)
- push af
- ld de, $10
- call Function89f9a
- ld d, $2
-.asm_89f80
- push bc
- ld e, $2
-.asm_89f83
- ld a, b
- ld [hli], a
- ld a, c
- ld [hli], a
-rept 2
- inc hl
-endr
- ld a, $8
- add c
- ld c, a
- dec e
- jr nz, .asm_89f83
- pop bc
- ld a, $8
- add b
- ld b, a
- dec d
- jr nz, .asm_89f80
- pop af
- ret
-
-Function89f9a: ; 89f9a (22:5f9a)
- dec a
- ld hl, Sprites
- and a
- ret z
-.asm_89fa0
- add hl, de
- dec a
- jr nz, .asm_89fa0
- ret
-
-Function89fa5: ; 89fa5 (22:5fa5)
- ld de, $10
- call Function89f9a
- ld e, $2
- ld d, $a
-.asm_89faf
- push bc
- ld a, $2
-.asm_89fb2
- push af
- ld a, b
- ld [hli], a
- ld a, c
- ld [hli], a
- ld a, d
- inc d
- ld [hli], a
- ld a, $1
- ld [hli], a
- ld a, $8
- add c
- ld c, a
- pop af
- dec a
- jr nz, .asm_89fb2
- pop bc
- ld a, $8
- add b
- ld b, a
- dec e
- jr nz, .asm_89faf
- ret
-
-Function89fce: ; 89fce (22:5fce)
- call Function8a5b6
- ld a, $5
- hlcoord 7, 4, AttrMap
- call Function8a5a3
- ld a, $6
- hlcoord 10, 4, AttrMap
- call Function8a5a3
- call Function89448
- call Function32f9
- call Function891ab
- jp Function89e36
-
-Function89fed: ; 89fed (22:5fed)
- ld hl, UnknownText_0x8a102
- call PrintText
- jp Function89e36
-
-Function89ff6: ; 89ff6 (22:5ff6)
- call Function891fe
- call WhiteBGMap
- call Function893cc
- call Function89807
- call Function89492
- call Function894ca
- call Function89160
- ld hl, $a603
- ld a, $ff
- ld bc, $8
- call ByteFill
- ld hl, $a603
- ld de, wd008
- call Function89381
- call CloseSRAM
- call Function8987f
- call Function89160
- hlcoord 1, 13
- ld bc, $a007
- call Function89a0c
- call CloseSRAM
- call Function891ab
- call Function89235
- jp Function89e36
-
-Function8a03d: ; 8a03d (22:603d)
- ld hl, UnknownText_0x8a107
- call Function89209
- call PrintText
- call Function8920f
- jp Function89e36
-
-Function8a04c: ; 8a04c (22:604c)
- ld hl, UnknownText_0x8a10c
- call PrintText
- jp Function89e36
-
-Function8a055: ; 8a055 (22:6055)
- ld c, $7
- ld b, $4
-.asm_8a059
- call Function8a0a1
- inc c
- call Function8a0c9
- push bc
- call Function8a58d
- pop bc
- call Function8a0de
- push bc
- push hl
- ld a, $5
- call Function8a5a3
- pop hl
-rept 3
- inc hl
-endr
- ld a, $6
- call Function8a5a3
- call Function3238
- pop bc
- ld a, c
- cp $b
- jr nz, .asm_8a059
- call Function8a0a1
- hlcoord 12, 4
- call Function8a58d
- ld a, $5
- hlcoord 12, 4, AttrMap
- call Function8a5a3
- pop hl
- ld a, $6
- hlcoord 15, 4, AttrMap
- call Function8a5a3
- call Function3238
- jp Function89e36
-
-Function8a0a1: ; 8a0a1 (22:60a1)
- call Function8923c
- push bc
- call Function8a0c9
- ld e, $6
-.asm_8a0aa
- push hl
- ld bc, $6
- add hl, bc
- ld d, [hl]
- call Function8a0c1
- pop hl
- ld [hl], d
- call Function89215
- ld bc, $14
- add hl, bc
- dec e
- jr nz, .asm_8a0aa
- pop bc
- ret
-
-Function8a0c1: ; 8a0c1 (22:60c1)
- push hl
- ld bc, AttrMap - TileMap
- add hl, bc
- ld a, [hl]
- pop hl
- ret
-
-Function8a0c9: ; 8a0c9 (22:60c9)
- push bc
- hlcoord 0, 0
- ld de, $14
- ld a, b
- and a
- jr z, .asm_8a0d8
-.asm_8a0d4
- add hl, de
- dec b
- jr nz, .asm_8a0d4
-.asm_8a0d8
- ld d, $0
- ld e, c
- add hl, de
- pop bc
- ret
-
-Function8a0de: ; 8a0de (22:60de)
- call Function8a0c9
- ld de, AttrMap - TileMap
- add hl, de
- ret
-
-Function8a0e6: ; 8a0e6 (22:60e6)
- call Function8b539
- jp Function89e36
-
-Function8a0ec: ; 8a0ec (22:60ec)
- ld hl, UnknownText_0x8a111
- call PrintText
- jp Function89e36
-
-Function8a0f5: ; 8a0f5 (22:60f5)
- call Function8b555
- jp nc, Function8a0ff
- ld hl, wd02d
- inc [hl]
-
-Function8a0ff: ; 8a0ff (22:60ff)
- jp Function89e36
-; 8a102 (22:6102)
-
-UnknownText_0x8a102: ; 0x8a102
- ; The CARD FOLDER stores your and your friends' CARDS. A CARD contains information like the person's name, phone number and profile.
- text_jump UnknownText_0x1c5238
- db "@"
-; 0x8a107
-
-UnknownText_0x8a107: ; 0x8a107
- ; This is your CARD. Once you've entered your phone number, you can trade CARDS with your friends.
- text_jump UnknownText_0x1c52bc
- db "@"
-; 0x8a10c
-
-UnknownText_0x8a10c: ; 0x8a10c
- ; If you have your friend's CARD, you can use it to make a call from a mobile phone on the 2nd floor of a #MON CENTER.
- text_jump UnknownText_0x1c531e
- db "@"
-; 0x8a111
-
-UnknownText_0x8a111: ; 0x8a111
- ; To safely store your collection of CARDS, you must set a PASSCODE for your CARD FOLDER.
- text_jump UnknownText_0x1c5394
- db "@"
-; 0x8a116
-
-Function8a116: ; 8a116 (22:6116)
- ld a, $1
- ld [wd030], a
- ld hl, MenuDataHeader_0x8a176
- call LoadMenuDataHeader
-.asm_8a121
- call Function8923c
- call Function8a17b
- jr c, .asm_8a16b
- ld a, [wcfa9]
- ld [wd030], a
- dec d
- jr z, .asm_8a140
- call Function8a20d
- jr c, .asm_8a121
- xor a
- call Function8a2fe
- call Function8916e
- jr .asm_8a16b
-.asm_8a140
- call Function89174
- jr nz, .asm_8a14c
- call Function8a241
- jr c, .asm_8a121
- jr .asm_8a15a
-.asm_8a14c
- call WaitSFX
- ld de, SFX_TWINKLE
- call PlaySFX
- ld c, $10
- call DelayFrames
-.asm_8a15a
- call ExitMenu
- call Function891de
- call Function893e2
- call Function89245
- call Function89168
- and a
- ret
-.asm_8a16b
- call Function89209
- call WriteBackup
- call Function8920f
- scf
- ret
-; 8a176 (22:6176)
-
-MenuDataHeader_0x8a176: ; 0x8a176
- db $40 ; flags
- db 00, 14 ; start coords
- db 06, 19 ; end coords
-; 8a17b
-
-Function8a17b: ; 8a17b (22:617b)
- decoord 14, 0
- ld b, $5
- ld c, $4
- call Function89b3b
- ld hl, MenuDataHeader_0x8a19a
- ld a, [wd030]
- call Function89d5e
- ld hl, Function8a1b0
- call Function89d75
- jr nc, .asm_8a198
- ld a, $0
-.asm_8a198
- ld d, a
- ret
-; 8a19a (22:619a)
-
-MenuDataHeader_0x8a19a: ; 0x8a19a
- db $40 ; flags
- db 00, 14 ; start coords
- db 06, 19 ; end coords
- dw MenuData2_0x8a1a2
- db 1 ; default option
-; 0x8a1a2
-
-MenuData2_0x8a1a2: ; 0x8a1a2
- db $e0 ; flags
- db 3 ; items
- db "ひらく@"
- db "すてる@"
- db "もどる@"
-; 0x8a1b0
-
-Function8a1b0: ; 8a1b0
- hlcoord 0, 12
- ld b, $4
- ld c, $12
- call TextBox
- hlcoord 1, 14
- ld a, [wcfa9]
- ld de, Strings_8a1cc
- dec a
- ld c, a
- call Function8919e
- call PlaceString
- ret
-; 8a1cc
-
-Strings_8a1cc: ; 8a1cc
- db "めいし", $25, "せいりと へんしゅうを"
- next "おこないます"
- db "@"
-
- db "めいしフ,ルダー", $25, "めいしと"
- next "あんしょうばんごう", $1f, "けします"
- db "@"
-
- db "まえ", $25, "がめん", $1d, "もどります"
- db "@"
-; 8a20d
-
-
-Function8a20d: ; 8a20d (22:620d)
- ld hl, UnknownText_0x8a232
- call PrintText
- ld a, $2
- call Function89259
- ret c
- ld hl, UnknownText_0x8a237
- call PrintText
- ld a, $2
- call Function89259
- ret c
- xor a
- call Function8a2fe
- ld hl, UnknownText_0x8a23c
- call PrintText
- xor a
- and a
- ret
-; 8a232 (22:6232)
-
-UnknownText_0x8a232: ; 0x8a232
- ; If the CARD FOLDER is deleted, all its CARDS and the PASSCODE will also be deleted. Beware--a deleted CARD FOLDER can't be restored. Want to delete your CARD FOLDER?
- text_jump UnknownText_0x1c53ee
- db "@"
-; 0x8a237
-
-UnknownText_0x8a237: ; 0x8a237
- ; Are you sure you want to delete it?
- text_jump UnknownText_0x1c5494
- db "@"
-; 0x8a23c
-
-UnknownText_0x8a23c: ; 0x8a23c
- ; The CARD FOLDER has been deleted.
- text_jump UnknownText_0x1c54b9
- db "@"
-; 0x8a241
-
-Function8a241: ; 8a241 (22:6241)
- call Function1d6e
- call Function891fe
- call Function8a262
- jr nc, .asm_8a254
- call Function891fe
- call Function89b28
- scf
- ret
-.asm_8a254
- call Function891de
- call WhiteBGMap
- call Function1d7d
- call Function891de
- and a
- ret
-
-Function8a262: ; 8a262 (22:6262)
- call WhiteBGMap
- call Function893e2
- call Function8923c
- callba Function4a3a7
- callba Function49384
- hlcoord 1, 0
- call Function8a53d
- hlcoord 12, 4
- call Function8a58d
- ld a, $5
- hlcoord 12, 4, AttrMap
- call Function8a5a3
- ld a, $6
- hlcoord 15, 4, AttrMap
- call Function8a5a3
- xor a
- ld [wd02e], a
- ld bc, wd013
- call Function8b36c
- call Function8b493
- call Function891ab
- call Function32f9
- call Function8b5e7
- ret
-
-Function8a2aa: ; 8a2aa (22:62aa)
- ld hl, MenuDataHeader_0x8a2ef
- call LoadMenuDataHeader
- ld hl, UnknownText_0x8a2f4
- call PrintText
- ld a, $1
- call Function89259
- jr nc, .asm_8a2cf
- ld hl, UnknownText_0x8a2f9
- call PrintText
- ld a, $2
- call Function89259
- jr c, .asm_8a2ea
- call Function8a20d
- jr .asm_8a2ea
-.asm_8a2cf
- call ExitMenu
- call Function8a241
- jr c, .asm_8a2ed
- ld a, $1
- call Function8a313
- call CloseSRAM
- call Function891de
- call Function89245
- call Function89168
- and a
- ret
-.asm_8a2ea
- call WriteBackup
-.asm_8a2ed
- scf
- ret
-; 8a2ef (22:62ef)
-
-MenuDataHeader_0x8a2ef: ; 0x8a2ef
- db $40 ; flags
- db 12, 00 ; start coords
- db 17, 19 ; end coords
-; 8a2f4
-
-UnknownText_0x8a2f4: ; 0x8a2f4
- ; There is an older CARD FOLDER from a previous journey. Do you want to open it?
- text_jump UnknownText_0x1c54dd
- db "@"
-; 0x8a2f9
-
-UnknownText_0x8a2f9: ; 0x8a2f9
- ; Delete the old CARD FOLDER?
- text_jump UnknownText_0x1c552d
- db "@"
-; 0x8a2fe
-
-Function8a2fe: ; 8a2fe (22:62fe)
- call Function8a313
- call Function89305
- ld hl, $a603
- ld bc, $8
- ld a, $ff
- call ByteFill
- call CloseSRAM
- ret
-
-Function8a313: ; 8a313 (22:6313)
- ld c, a
- call Function89160
- ld a, c
- ld [$a60b], a
- ret
-
-Function8a31c: ; 8a31c (22:631c)
- push bc
- call Function8923c
- callba Function4a3a7
- callba Function49384
- hlcoord 1, 0
- call Function8a53d
- hlcoord 12, 4
- call Function8a58d
- call Function8a3b2
- pop bc
- ld a, c
- ld [wcf88], a
- ld [MenuSelection], a
- call Function1c89
- call Function1c10
- ld hl, wcfa5
- set 7, [hl]
-.asm_8a34e
- call Function8a3a2
- call Function8923c
- call Function8a453
- call Function8a4d3
- call Function8a4fc
- call Function891ab
- call Function32f9
- call Function8a383
- jr c, .asm_8a370
- jr z, .asm_8a34e
-.asm_8a36a
- call Function89448
- xor a
- ld e, a
- ret
-.asm_8a370
- call Function89448
- call Function1bee
- call Function8a3a2
- ld a, [MenuSelection]
- cp $ff
- jr z, .asm_8a36a
- ld e, a
- and a
- ret
-
-Function8a383: ; 8a383 (22:6383)
- callba Function241ba
- ld a, c
- ld hl, wcfa8
- and [hl]
- ret z
- bit 0, a
- jr nz, .asm_8a399
- bit 1, a
- jr nz, .asm_8a39e
- xor a
- ret
-.asm_8a399
- call PlayClickSFX
- scf
- ret
-.asm_8a39e
- call PlayClickSFX
- ret
-
-Function8a3a2: ; 8a3a2 (22:63a2)
- ld a, [wcfa9]
- dec a
- ld hl, DefaultFlypoint
- ld e, a
- ld d, $0
- add hl, de
- ld a, [hl]
- ld [MenuSelection], a
- ret
-
-Function8a3b2: ; 8a3b2 (22:63b2)
- ld a, $1
- ld [MenuSelection], a
- call Function8a4fc
- call Function8a3df
- jr nc, .asm_8a3ce
- decoord 0, 2
- ld b, $6
- ld c, $9
- call Function89b3b
- ld hl, MenuDataHeader_0x8a435
- jr .asm_8a3db
-.asm_8a3ce
- decoord 0, 2
- ld b, $8
- ld c, $9
- call Function89b3b
- ld hl, MenuDataHeader_0x8a40f
-.asm_8a3db
- call CopyMenuDataHeader
- ret
-
-Function8a3df: ; 8a3df (22:63df)
- call Function89160
- ld hl, $a603
- call Function89b45
- call CloseSRAM
- ld hl, DefaultFlypoint
- jr c, .asm_8a3f8
- ld de, Unknown_8a408
- call Function8a400
- scf
- ret
-.asm_8a3f8
- ld de, Unknown_8a40b
- call Function8a400
- and a
- ret
-
-Function8a400: ; 8a400 (22:6400)
- ld a, [de]
- inc de
- ld [hli], a
- cp $ff
- jr nz, Function8a400
- ret
-; 8a408 (22:6408)
-
-Unknown_8a408: db 1, 2, -1
-Unknown_8a40b: db 1, 2, 3, -1
-
-MenuDataHeader_0x8a40f: ; 0x8a40f
- db $40 ; flags
- db 02, 00 ; start coords
- db 11, 10 ; end coords
- dw MenuData2_0x8a417
- db 1 ; default option
-; 0x8a417
-
-MenuData2_0x8a417: ; 0x8a417
- db $a0 ; flags
- db 4 ; items
- db "めいしりスト@"
- db "じぶんの めいし@"
- db "めいしこうかん@"
- db "やめる@"
-; 0x8a435
-
-MenuDataHeader_0x8a435: ; 0x8a435
- db $40 ; flags
- db 02, 00 ; start coords
- db 09, 10 ; end coords
- dw MenuData2_0x8a43d
- db 1 ; default option
-; 0x8a43d
-
-MenuData2_0x8a43d: ; 0x8a43d
- db $a0 ; flags
- db 3 ; items
- db "めいしりスト@"
- db "じぶんの めいし@"
- db "やめる@"
-; 0x8a453
-
-Function8a453: ; 8a453 (22:6453)
- hlcoord 0, 12
- ld b, $4
- ld c, $12
- call TextBox
- hlcoord 1, 14
- ld de, String_8a476
- ld a, [MenuSelection]
- cp $ff
- jr z, .asm_8a472
- ld de, Strings_8a483
- dec a
- ld c, a
- call Function8919e
-.asm_8a472
- call PlaceString
- ret
-; 8a476 (22:6476)
-
-String_8a476: ; 8a476
- db "まえ", $25, "がめん", $1d, "もどります@"
-; 8a483
-
-Strings_8a483: ; 8a483
- db "おともだち", $25, "めいしは"
- next "ここ", $1d, "いれておきます@"
-
- db "でんわばんごう", $1f, "いれると"
- next "めいしこうかん", $4a, "できます@"
-
- db "ともだちと じぶん", $25, "めいしを"
- next "せきがいせんで こうかん します@"
-; 8a4d3
-
-Function8a4d3: ; 8a4d3 (22:64d3)
- ld a, [MenuSelection]
- cp $1
- jr nz, .asm_8a4eb
- ld a, $5
- hlcoord 12, 4, AttrMap
- call Function8a5a3
- ld a, $7
- hlcoord 15, 4, AttrMap
- call Function8a5a3
- ret
-.asm_8a4eb
- ld a, $7
- hlcoord 12, 4, AttrMap
- call Function8a5a3
- ld a, $6
- hlcoord 15, 4, AttrMap
- call Function8a5a3
- ret
-
-Function8a4fc: ; 8a4fc (22:64fc)
- ld a, [MenuSelection]
- cp $3
- jr nz, asm_8a529
- ld hl, wd012
- ld a, [hli]
- ld b, a
- ld a, [hld]
- add b
- ld [hl], a
- ld b, a
- ld c, $80
- call Function89cdf
- call Function8a515
- ret
-
-Function8a515: ; 8a515 (22:6515)
- ld hl, wd012
- ld a, [hl]
- cp $38
- jr c, .asm_8a520
- cp $3c
- ret c
-.asm_8a520
- ld a, [wd013]
- cpl
- inc a
- ld [wd013], a
- ret
-
-asm_8a529: ; 8a529 (22:6529)
- ld hl, wd012
- ld a, $3c
- ld [hli], a
- ld a, $ff
- ld [hli], a
- ld hl, Sprites
- xor a
- ld bc, $20
- call ByteFill
- ret
-
-Function8a53d: ; 8a53d (22:653d)
- push hl
- ld a, $15
- ld c, $8
- ld de, $14
- call Function8a573
- ld a, $1d
- ld c, $9
- call Function8a57c
- inc a
- ld [hl], a
- call Function8a584
- pop hl
- add hl, de
- ld a, $1f
- ld c, $8
- call Function8a573
- dec hl
- ld a, $51
- ld [hli], a
- ld a, $26
- ld c, $1
- call Function8a57c
- ld a, $52
- ld c, $3
- call Function8a573
- ld a, $27
- ld c, $6
-
-Function8a573: ; 8a573 (22:6573)
- ld [hl], a
- call Function8a584
- inc a
- dec c
- jr nz, Function8a573
- ret
-
-Function8a57c: ; 8a57c (22:657c)
- ld [hl], a
- call Function8a584
- dec c
- jr nz, Function8a57c
- ret
-
-Function8a584: ; 8a584 (22:6584)
- push af
- ld a, $4
- call Function89215
- inc hl
- pop af
- ret
-
-Function8a58d: ; 8a58d (22:658d)
- ld a, $2d
- ld bc, $606
- ld de, $14
-.asm_8a595
- push bc
- push hl
-.asm_8a597
- ld [hli], a
- inc a
- dec c
- jr nz, .asm_8a597
- pop hl
- add hl, de
- pop bc
- dec b
- jr nz, .asm_8a595
- ret
-
-Function8a5a3: ; 8a5a3 (22:65a3)
- ld bc, $603
- ld de, $14
-.asm_8a5a9
- push bc
- push hl
-.asm_8a5ab
- ld [hli], a
- dec c
- jr nz, .asm_8a5ab
- pop hl
- add hl, de
- pop bc
- dec b
- jr nz, .asm_8a5a9
- ret
-
-Function8a5b6: ; 8a5b6 (22:65b6)
- ld a, [rSVBK] ; $ff00+$70
- push af
- ld a, $5
- ld [rSVBK], a ; $ff00+$70
- ld hl, Palette_8a5e5
- ld de, wd020
- ld bc, $18
- call CopyBytes
- ld hl, Palette_8a5fd
- ld de, Unkn2Pals
- ld bc, $8
- call CopyBytes
- ld hl, Palette_8a605
- ld de, wd048
- ld bc, $8
- call CopyBytes
- pop af
- ld [rSVBK], a ; $ff00+$70
- ret
-; 8a5e5 (22:65e5)
-
-Palette_8a5e5: ; 8a5e5
- RGB 31, 31, 31
- RGB 27, 19, 00
- RGB 07, 11, 22
- RGB 00, 00, 00
- RGB 31, 31, 31
- RGB 16, 16, 31
- RGB 27, 19, 00
- RGB 00, 00, 00
- RGB 31, 31, 31
- RGB 31, 00, 00
- RGB 27, 19, 00
- RGB 00, 00, 00
-; 8a5fd
-
-Palette_8a5fd: ; 8a5fd
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 31, 31, 31
-; 8a605
-
-Palette_8a605: ; 8a605
- RGB 00, 00, 00
- RGB 14, 18, 31
- RGB 16, 16, 31
- RGB 31, 31, 31
-; 8a60d
-
-Function8a60d: ; 8a60d
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_8a624
- ld de, Unkn2Pals
- ld bc, $0008
- call CopyBytes
- pop af
- ld [rSVBK], a
- ret
-; 8a624
-
-Palette_8a624: ; 8a624
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
-; 8a62c
-
-Function8a62c: ; 8a62c (22:662c)
- call Function1d6e
- call Function891fe
- xor a
- call Function8b94a
- call Function8b677
-.asm_8a639
- xor a
- ld [wd033], a
- ld [wd032], a
- ld [wd0e3], a
- call Function8b7bd
- ld a, c
- and a
- jr z, .asm_8a66a
- ld [MenuSelection], a
- ld b, a
- ld a, [wcf77]
- inc a
- ld [wd034], a
- push bc
- call Function8b960
- ld a, c
- pop bc
- jr z, .asm_8a639
- ld c, a
- ld hl, Jumptable_8a671
- ld a, b
- ld [MenuSelection], a
- ld a, c
- dec a
- rst JumpTable
- jr .asm_8a639
-.asm_8a66a
- call Function891fe
- call Function89b28
- ret
-
-Jumptable_8a671: ; 8a671 (22:6671)
- dw Function8a679
- dw Function8a6cd
- dw Function8a8c3
- dw Function8a930
-
-
-Function8a679: ; 8a679 (22:6679)
- call Function891de
- call WhiteBGMap
- call Function893cc
- call Function89160
- call Function8931b
- call Function89844
- call CloseSRAM
- call Function89160
- call Function8939a
- call Function89856
- hlcoord 1, 13
- call Function899fe
- call Function891ab
- call CloseSRAM
-.asm_8a6a3
- call Function89a57
- jr c, .asm_8a6a3
- and a
- jr z, Function8a679
- ld hl, Jumptable_8a6bc
- dec a
- rst JumpTable
- jr c, Function8a679
- call Function891fe
- call Function8b677
- call Function89448
- ret
-
-Jumptable_8a6bc: ; 8a6bc (22:66bc)
- dw Function8a6c0
- dw Function8a6c5
-
-
-Function8a6c0: ; 8a6c0 (22:66c0)
- call PlayClickSFX
- and a
- ret
-
-Function8a6c5: ; 8a6c5 (22:66c5)
- call PlayClickSFX
- call Function89d0d
- scf
- ret
-
-Function8a6cd: ; 8a6cd (22:66cd)
- call Function891de
- call WhiteBGMap
- call Function893cc
- call Function89160
- call Function8931b
- call Function89844
- call Function8a757
- call CloseSRAM
-.asm_8a6e5
- call Function89160
- call Function8931b
- call Function89856
- call Function89a2e
- call Function891ab
- xor a
- ld [wd02f], a
- call CloseSRAM
-.asm_8a6fb
- call Function89b97
- call Function89c67
- jr c, .asm_8a718
- ld a, b
- and a
- jr z, .asm_8a6fb
- call PlayClickSFX
- call Function89448
- ld a, [wd011]
- ld hl, Jumptable_8a74f
- rst JumpTable
- jr nc, .asm_8a6e5
- jr .asm_8a742
-.asm_8a718
- call Function89160
- call Function8a765
- call CloseSRAM
- jr nc, .asm_8a73f
- call Function8923c
- call Function89448
- call Function89a23
- hlcoord 1, 13
- ld de, String_89135
- call PlaceString
- call WaitBGMap
- ld a, $2
- call Function89254
- jr c, .asm_8a6e5
-.asm_8a73f
- call CloseSRAM
-.asm_8a742
- call WhiteBGMap
- call Function89448
- call Function891d3
- call Function8b677
- ret
-
-Jumptable_8a74f: ; 8a74f (22:674f)
- dw Function8a78c
- dw Function8a7cb
- dw Function8a818
- dw Function8a8a1
-
-
-Function8a757: ; 8a757 (22:6757)
- call Function8939a
- xor a
- ld [wd010], a
- ld [wd011], a
- ld [wd012], a
- ret
-
-Function8a765: ; 8a765 (22:6765)
- call Function8931b
- push bc
- ld hl, $0
- add hl, bc
- ld de, DefaultFlypoint
- ld c, $6
- call Function89185
- pop bc
- jr nz, .asm_8a78a
- push bc
- ld hl, $11
- add hl, bc
- ld de, wd008
- ld c, $8
- call Function89185
- pop bc
- jr nz, .asm_8a78a
- and a
- ret
-.asm_8a78a
- scf
- ret
-
-Function8a78c: ; 8a78c (22:678c)
- call Function891fe
- ld de, DefaultFlypoint
- ld b, $5
- callba Function116c1
- call Function89160
- call Function8931b
- push bc
- ld hl, $0
- add hl, bc
- ld d, h
- ld e, l
- ld hl, DefaultFlypoint
- call InitName
- call CloseSRAM
- call DelayFrame
- call Functiona57
- call Function891de
- call WhiteBGMap
- call Function893cc
- call Function89160
- pop bc
- call Function89844
- call CloseSRAM
- and a
- ret
-
-Function8a7cb: ; 8a7cb (22:67cb)
- ld a, [MenuSelection]
- push af
- call Function891de
- ld de, wd008
- ld c, $0
- callba Function17a68f
- jr c, .asm_8a7f4
- ld hl, wd008
- ld a, $ff
- ld bc, $8
- call ByteFill
- ld h, d
- ld l, e
- ld de, wd008
- ld c, $8
- call Function89193
-.asm_8a7f4
- pop af
- ld [MenuSelection], a
- call Function891de
- call WhiteBGMap
- call Function893cc
- call Function89160
- call Function8931b
- call Function89844
- call Function89856
- call Function89a2e
- call Function891ab
- call CloseSRAM
- and a
- ret
-
-Function8a818: ; 8a818 (22:6818)
- call Function89a23
- ld hl, DefaultFlypoint
- call Function89331
- jr c, .asm_8a875
- ld hl, wd008
- call Function89b45
- jr nc, .asm_8a87a
- call Function89160
- call Function8a765
- jr nc, .asm_8a863
- call Function8931b
- push bc
- ld hl, $0
- add hl, bc
- ld d, h
- ld e, l
- ld hl, DefaultFlypoint
- ld c, $6
- call Function89193
- pop bc
- ld hl, $11
- add hl, bc
- ld d, h
- ld e, l
- ld hl, wd008
- ld c, $8
- call Function89193
- hlcoord 1, 13
- ld de, .string_8a868
- call PlaceString
- call WaitBGMap
- call Functiona36
-.asm_8a863
- call CloseSRAM
- scf
- ret
-; 8a868 (22:6868)
-
-.string_8a868
- db "めいし", $1f, "かきかえ まし", $22, "@"
-
-.asm_8a875
- ld de, String_8a88b
- jr .asm_8a87d
-.asm_8a87a
- ld de, String_8911c
-.asm_8a87d
- hlcoord 1, 13
- call PlaceString
- call WaitBGMap
- call Functiona36
- and a
- ret
-; 8a88b (22:688b)
-
-String_8a88b: ; 8a88b
- db "おともだち", $25, "なまえが"
- next "かかれて いません!@"
-; 8a8a1
-
-Function8a8a1: ; 8a8a1 (22:68a1)
- call Function89160
- call Function8a765
- call CloseSRAM
- jr nc, .asm_8a8bf
- call Function89a23
- hlcoord 1, 13
- ld de, String_89135
- call PlaceString
- ld a, $2
- call Function89254
- jr c, .asm_8a8c1
-.asm_8a8bf
- scf
- ret
-.asm_8a8c1
- and a
- ret
-
-Function8a8c3: ; 8a8c3 (22:68c3)
- call Function891de
- call WhiteBGMap
- call Function893cc
- call Function89160
- call Function8931b
- call Function89844
- call Function8939a
- call Function89856
- call CloseSRAM
- call Function891ab
- hlcoord 1, 13
- ld de, String_8a919
- call PlaceString
- ld a, $2
- call Function89254
- jr c, .asm_8a90f
- call Function89160
- call Function892b4
- call CloseSRAM
- call Function89a23
- call Function8923c
- hlcoord 1, 13
- ld de, String_8a926
- call PlaceString
- call WaitBGMap
- call Functiona36
-.asm_8a90f
- call Function89448
- call Function891fe
- call Function8b677
- ret
-; 8a919 (22:6919)
-
-String_8a919: ; 8a919
- db "このデータ", $1f, "けしますか?@"
-; 8a926
-
-String_8a926: ; 8a926
- db "データ", $1f, "けしまし", $22, "@"
-; 8a930
-
-Function8a930: ; 8a930 (22:6930)
- ld a, [MenuSelection]
- push af
- xor a
- ld [wd032], a
- ld a, $1
- ld [wd033], a
- ld a, [wd034]
- ld [wd0e3], a
-.asm_8a943
- call Function8b7bd
- ld a, [wcf73]
- and $1
- jr nz, .asm_8a953
- ld a, c
- and a
- jr nz, .asm_8a943
- pop af
- ret
-.asm_8a953
- call Function89160
- pop af
- cp c
- jr z, .asm_8a995
- push bc
- ld [MenuSelection], a
- call Function8931b
- push bc
- ld h, b
- ld l, c
- ld de, DefaultFlypoint
- ld bc, $25
- call CopyBytes
- pop de
- pop bc
- ld a, c
- ld [MenuSelection], a
- call Function8931b
- push bc
- ld h, b
- ld l, c
- ld bc, $25
- call CopyBytes
- pop de
- ld hl, DefaultFlypoint
- ld bc, $25
- call CopyBytes
- ld de, SFX_SWITCH_POKEMON
- call WaitPlaySFX
- ld de, SFX_SWITCH_POKEMON
- call WaitPlaySFX
-.asm_8a995
- call CloseSRAM
- ret
-
-Function8a999: ; 8a999 (22:6999)
- ld hl, MenuDataHeader_0x8a9c9
- call LoadMenuDataHeader
- ld c, $1
-.asm_8a9a1
- call Function8a9ce
- jr c, .asm_8a9bb
- push bc
- push de
- call Function1d6e
- pop de
- dec e
- ld a, e
- ld hl, Jumptable_8a9c5
- rst JumpTable
- call Function891fe
- call Function89b28
- pop bc
- jr .asm_8a9a1
-.asm_8a9bb
- call Function89209
- call WriteBackup
- call Function8920f
- ret
-
-Jumptable_8a9c5: ; 8a9c5 (22:69c5)
- dw Function8aa0a
- dw Function8ab3b
-; 8a9c9 (22:69c9)
-
-MenuDataHeader_0x8a9c9: ; 0x8a9c9
- db $40 ; flags
- db 04, 11 ; start coords
- db 11, 18 ; end coords
-; 8a9ce
-
-Function8a9ce: ; 8a9ce (22:69ce)
- push bc
- decoord 11, 4
- ld b, $6
- ld c, $6
- call Function89b3b
- pop bc
- ld a, c
- ld hl, MenuDataHeader_0x8a9f2
- call Function89d5e
- ld hl, Function8aa09
- call Function89d85
- jr c, .asm_8a9ed
- ld c, a
- ld e, a
- and a
- ret
-.asm_8a9ed
- ld c, a
- ld e, $0
- scf
- ret
-; 8a9f2 (22:69f2)
-
-MenuDataHeader_0x8a9f2: ; 0x8a9f2
- db $40 ; flags
- db 04, 11 ; start coords
- db 11, 18 ; end coords
- dw MenuData2_0x8a9fa
- db 1 ; default option
-; 0x8a9fa
-
-MenuData2_0x8a9fa: ; 0x8a9fa
- db $a0 ; flags
- db 3 ; items
- db "へんしゅう@"
- db "みる@"
- db "やめる@"
-; 0x8aa09
-
-Function8aa09: ; 8aa09
- ret
-; 8aa0a
-
-Function8aa0a: ; 8aa0a (22:6a0a)
- ld a, $1
- ld [wd02f], a
- ld [wd011], a
- xor a
- ld [wd010], a
- ld [wd012], a
- call Function89160
- ld hl, $a603
- ld de, wd008
- call Function89381
- call CloseSRAM
- call Function891fe
- call WhiteBGMap
- call Function893cc
- call Function89807
- call Function89492
- call Function894ca
-.asm_8aa3a
- call Function8987f
- call Function89a2e
- call Function891ab
-.asm_8aa43
- call Function89b97
- call Function89c67
- jr c, .asm_8aa61
- ld a, b
- and a
- jr z, .asm_8aa43
- call PlayClickSFX
- call Function89448
- ld a, [wd011]
- dec a
- ld hl, Jumptable_8aa6d
- rst JumpTable
- jr nc, .asm_8aa3a
- jr .asm_8aa69
-.asm_8aa61
- call Function89448
- call Function8ab11
- jr nc, .asm_8aa3a
-.asm_8aa69
- call Function89448
- ret
-
-Jumptable_8aa6d: ; 8aa6d (22:6a6d)
- dw Function8aa73
- dw Function8aab6
- dw Function8ab11
-
-
-Function8aa73: ; 8aa73 (22:6a73)
- ld a, [MenuSelection]
- ld e, a
- push de
- call Function891de
- ld de, wd008
- ld c, $0
- callba Function17a68f
- jr c, .asm_8aa9d
- ld hl, wd008
- ld a, $ff
- ld bc, $8
- call ByteFill
- ld h, d
- ld l, e
- ld de, wd008
- ld c, $8
- call Function89193
-.asm_8aa9d
- call Function891fe
- call WhiteBGMap
- call Function893cc
- call Function89807
- call Function89492
- call Function894ca
- pop de
- ld a, e
- ld [MenuSelection], a
- and a
- ret
-
-Function8aab6: ; 8aab6 (22:6ab6)
- call Function89a23
- ld hl, wd008
- call Function89b45
- jr nc, Function8ab00
- call Function89160
- ld de, wd008
- ld hl, $a603
- ld c, $8
- call Function89185
- jr z, .asm_8aaeb
- ld hl, wd008
- ld de, $a603
- ld c, $8
- call Function89193
- hlcoord 1, 13
- ld de, String_8aaf0
- call PlaceString
- call WaitBGMap
- call Functiona36
-.asm_8aaeb
- call CloseSRAM
- scf
- ret
-; 8aaf0 (22:6af0)
-
-String_8aaf0: ; 8aaf0
- db "あたらしい めいし", $4a, "できまし", $22, "@"
-; 8ab00
-
-Function8ab00: ; 8ab00
- ld de, String_8911c
- hlcoord 1, 13
- call PlaceString
- call WaitBGMap
- call Function89235
- and a
- ret
-
-Function8ab11: ; 8ab11 (22:6b11)
- call Function89160
- ld hl, $a603
- ld de, wd008
- ld c, $8
- call Function89185
- call CloseSRAM
- jr z, .asm_8ab37
- call Function89a23
- hlcoord 1, 13
- ld de, String_89135
- call PlaceString
- ld a, $2
- call Function89254
- jr c, .asm_8ab39
-.asm_8ab37
- scf
- ret
-.asm_8ab39
- and a
- ret
-
-Function8ab3b: ; 8ab3b (22:6b3b)
- call Function891fe
- call WhiteBGMap
- call Function893cc
- call Function89807
- call Function89492
- call Function894ca
- call Function89160
- ld hl, $a603
- ld de, wd008
- call Function89381
- call CloseSRAM
- call Function8987f
- call Function89160
- hlcoord 1, 13
- ld bc, $a007
- call Function89a0c
- call CloseSRAM
- call Function891ab
- call Function8ab77
- jr c, Function8ab3b
- ret
-
-Function8ab77: ; 8ab77 (22:6b77)
- call Function354b
- bit 0, c
- jr nz, .asm_8ab8e
- bit 1, c
- jr nz, .asm_8ab8e
- bit 3, c
- jr z, Function8ab77
- call PlayClickSFX
- call Function89d0d
- scf
- ret
-.asm_8ab8e
- call PlayClickSFX
- and a
- ret
-
-Function8ab93: ; 8ab93 (22:6b93)
- call WhiteBGMap
- call Function1d6e
- callba Function105688
- call ClearSprites
- call Function891fe
- call Function89b28
- ret
-; 8aba9 (22:6ba9)
-
-Function8aba9: ; 8aba9
- ld a, $2
- call Function8b94a
- ld a, $1
- ld [wd032], a
-.asm_8abb3
- call Function891fe
- call Function8b677
-.asm_8abb9
- call Function8b7bd
- jr z, .asm_8abdf
- ld a, c
- ld [MenuSelection], a
- call Function89160
- call Function8931b
- ld hl, $0011
- add hl, bc
- call Function89b45
- call CloseSRAM
- jr c, .asm_8abe2
- ld de, SFX_WRONG
- call WaitPlaySFX
- call CloseSRAM
- jr .asm_8abb9
-
-.asm_8abdf
- xor a
- ld c, a
- ret
-
-.asm_8abe2
- call PlayClickSFX
-.asm_8abe5
- call Function891de
- call WhiteBGMap
- call Function893cc
- call Function89160
- call Function8931b
- call Function89844
- call CloseSRAM
- call Function89160
- call Function8939a
- call Function89856
- hlcoord 1, 13
- call Function899fe
- call CloseSRAM
- call Function891ab
-.asm_8ac0f
- call Function89a57
- jr c, .asm_8ac0f
- and a
- jr z, .asm_8abe5
- cp $2
- jr z, .asm_8ac0f
- hlcoord 0, 12
- ld b, $4
- ld c, $12
- call TextBox
- hlcoord 1, 14
- ld de, String_8ac3b
- call PlaceString
- ld a, $1
- call Function8925e
- jp c, .asm_8abb3
- ld a, [MenuSelection]
- ld c, a
- ret
-; 8ac3b
-
-String_8ac3b: ; 8ac3b
- db "こ", $25, "ともだち", $1d, "でんわを"
- next "かけますか?@"
-; 8ac4e
-
-Function8ac4e: ; 8ac4e
- xor a
- ld [MenuSelection], a
- push de
- call Function891de
- call WhiteBGMap
- call Function893cc
- pop bc
- call Function89844
- call Function8939a
- call Function89856
- hlcoord 1, 13
- call Function899fe
- call Function891ab
- ret
-; 8ac70
-
-Function8ac70: ; 8ac70
- push de
- ld a, $3
- call Function8b94a
-
-Function8ac76: ; 8ac76
- call Function891fe
- call Function8b677
-
-Function8ac7c: ; 8ac7c
- call Function8b7bd
- jr z, .asm_8acf0
- ld a, c
- ld [wd02f], a
- ld [MenuSelection], a
- call Function89160
- call Function8931b
- call Function8932d
- call CloseSRAM
- jr nc, .asm_8acb0
- call Function89160
- ld hl, $0011
- add hl, bc
- call Function89b45
- call CloseSRAM
- jr nc, .asm_8accc
- call Function89160
- call Function892b7
- call CloseSRAM
- jr .asm_8accc
-
-.asm_8acb0
- call Function8ad0b
- jr c, Function8ac76
- and a
- jr nz, .asm_8accc
- call Function89160
- ld h, b
- ld l, c
- ld d, $0
- ld e, $6
- add hl, de
- ld d, h
- ld e, l
- pop hl
- ld c, $1f
- call Function89193
- jr .asm_8ace4
-
-.asm_8accc
- pop hl
- call Function89160
- ld d, b
- ld e, c
- ld c, $6
- call Function89193
- ld a, $6
- add e
- ld e, a
- ld a, $0
- adc d
- ld d, a
- ld c, $1f
- call Function89193
-
-.asm_8ace4
- call CloseSRAM
- call Functione51
- ld a, [wd02f]
- ld c, a
- and a
- ret
-
-.asm_8acf0
- ld hl, UnknownText_0x8ad06
- call PrintText
- ld a, $2
- call Function89259
- jp c, Function8ac7c
- call Functione51
- pop de
- ld c, $0
- scf
- ret
-; 8ad06
-
-UnknownText_0x8ad06: ; 0x8ad06
- ; Finish registering CARDS?
- text_jump UnknownText_0x1c554a
- db "@"
-; 0x8ad0b
-
-Function8ad0b: ; 8ad0b
-.asm_8ad0b
- ld a, [MenuSelection]
- ld [wd02f], a
- call Function891de
- call WhiteBGMap
- call Function893cc
- call Function89160
- call Function8931b
- push bc
- call Function89844
- call Function8939a
- call Function89856
- hlcoord 1, 13
- call Function899fe
- call CloseSRAM
- call Function891ab
- pop bc
-.asm_8ad37
- push bc
- call Function89a57
- pop bc
- jr c, .asm_8ad37
- and a
- jr z, .asm_8ad0b
- cp $2
- jr z, .asm_8ad37
- call Function8923c
- push bc
- hlcoord 0, 12
- ld b, $4
- ld c, $12
- call TextBox
- ld de, String_8ad89
- hlcoord 1, 14
- call PlaceString
- ld a, $2
- call Function8925e
- jr c, .asm_8ad87
- call Function8923c
- hlcoord 0, 12
- ld b, $4
- ld c, $12
- call TextBox
- ld de, String_8ad9c
- hlcoord 1, 14
- call PlaceString
- ld a, $1
- call Function8925e
- jr c, .asm_8ad84
- ld a, $0
- jr .asm_8ad86
-
-.asm_8ad84
- ld a, $1
-
-.asm_8ad86
- and a
-
-.asm_8ad87
- pop bc
- ret
-; 8ad89
-
-String_8ad89: ; 8ad89
- db "こ", $25, "めいし", $1f, "けして"
- next "いれかえますか?@"
-; 8ad9c
-
-String_8ad9c: ; 8ad9c
- db "おともだち", $25, "なまえを"
- next "のこして おきますか?@"
-; 8adb3
-
-Function8adb3: ; 8adb3
- call Function891de
- call Function8a262
- push af
- call Function891de
- pop af
- ret
-; 8adbf
-
-Function8adbf: ; 8adbf
- call Function89160
- ld hl, $a603
- call Function89b45
- call CloseSRAM
- ret
-; 8adcc
-
-Function8adcc: ; 8adcc
- call Function89160
- call Function8b3b0
- call CloseSRAM
- ret nc
- cp $2
- ret z
- scf
- ret
-; 8addb
-
-
-SpecialHoOhChamber: ; 0x8addb
- ld hl, PartySpecies
- ld a, [hl]
- cp HO_OH ; is Ho-oh the first Pokémon in the party?
- jr nz, .done ; if not, we're done
- call GetSecondaryMapHeaderPointer
- ld de, EVENT_WALL_OPENED_IN_HO_OH_CHAMBER
- ld b, SET_FLAG
- call EventFlagAction
-.done
- ret
-; 0x8adef
-
-SpecialOmanyteChamber: ; 8adef
- call GetSecondaryMapHeaderPointer
- ld de, EVENT_WALL_OPENED_IN_OMANYTE_CHAMBER
- ld b, CHECK_FLAG
- call EventFlagAction
- ld a, c
- and a
- jr nz, .nope
-
- ld a, WATER_STONE
- ld [CurItem], a
- ld hl, NumItems
- call CheckItem
- jr c, .open
-
- ld a, [PartyCount]
- ld b, a
- inc b
-.loop
- dec b
- jr z, .nope
- ld a, b
- dec a
- ld [CurPartyMon], a
- push bc
- ld a, PartyMon1Item - PartyMon1
- call GetPartyParamLocation
- pop bc
- ld a, [hl]
- cp WATER_STONE
- jr nz, .loop
-
-.open
- call GetSecondaryMapHeaderPointer
- ld de, EVENT_WALL_OPENED_IN_OMANYTE_CHAMBER
- ld b, SET_FLAG
- call EventFlagAction
-
-.nope
- ret
-; 8ae30
-
-SpecialAerodactylChamber: ; 8ae30
- push de
- push bc
-
- call GetSecondaryMapHeaderPointer
- ld a, h
- cp RuinsofAlphAerodactylChamber_SecondMapHeader / $100
- jr nz, .nope
- ld a, l
- cp RuinsofAlphAerodactylChamber_SecondMapHeader % $100
- jr nz, .nope
-
- ld de, EVENT_WALL_OPENED_IN_AERODACTYL_CHAMBER
- ld b, SET_FLAG
- call EventFlagAction
-
- scf
- jr .done
-
-.nope
- and a
-
-.done
- pop bc
- pop de
- ret
-; 8ae4e
-
-SpecialKabutoChamber: ; 8ae4e
- push hl
- push de
-
- call GetSecondaryMapHeaderPointer
- ld a, h
- cp RuinsofAlphKabutoChamber_SecondMapHeader / $100
- jr nz, .done
- ld a, l
- cp RuinsofAlphKabutoChamber_SecondMapHeader % $100
- jr nz, .done
-
- ld de, EVENT_WALL_OPENED_IN_KABUTO_CHAMBER
- ld b, SET_FLAG
- call EventFlagAction
-
-.done
- pop de
- pop hl
- ret
-; 8ae68
-
-Special_DisplayUnownWords: ; 8ae68
- ld a, [ScriptVar]
- ld hl, MenuDataHeader_0x8aed5
- and a
- jr z, .asm_8ae79
-
- ld d, $0
- ld e, $5
-.asm_8ae75
- add hl, de
- dec a
- jr nz, .asm_8ae75
-
-.asm_8ae79
- call LoadMenuDataHeader
- xor a
- ld [hBGMapMode], a
- call Function1cbb
- call UpdateSprites
- call Function321c
- call Function1cfd
- inc hl
- ld d, $0
- ld e, $14
-rept 2
- add hl, de
-endr
- ld a, [ScriptVar]
- ld c, a
- ld de, Unknown_8aebc
- and a
- jr z, .asm_8aea5
-.asm_8ae9c
- ld a, [de]
- inc de
- cp $ff
- jr nz, .asm_8ae9c
- dec c
- jr nz, .asm_8ae9c
-
-.asm_8aea5
- call Function8af09
- ld bc, AttrMap - TileMap
- add hl, bc
- call Function8aee9
- call Function3200
- call Functiona36
- call PlayClickSFX
- call WriteBackup
- ret
-; 8aebc
-
-Unknown_8aebc: ; 8aebc
- db $08, $44, $04, $00, $2e, $08, $ff
- db $26, $20, $0c, $0e, $46, $ff
- db $4c, $00, $46, $08, $42, $ff
- db $0e, $2c, $64, $2c, $0e, $ff
-; 8aed5
-
-MenuDataHeader_0x8aed5: ; 0x8aed5
- db $40 ; flags
- db 04, 03 ; start coords
- db 09, 16 ; end coords
-
-MenuDataHeader_0x8aeda: ; 0x8aeda
- db $40 ; flags
- db 04, 04 ; start coords
- db 09, 15 ; end coords
-
-MenuDataHeader_0x8aedf: ; 0x8aedf
- db $40 ; flags
- db 04, 04 ; start coords
- db 09, 15 ; end coords
-
-MenuDataHeader_0x8aee4: ; 0x8aee4
- db $40 ; flags
- db 04, 04 ; start coords
- db 09, 15 ; end coords
-; 8aee9
-
-Function8aee9: ; 8aee9
-.asm_8aee9
- ld a, [de]
- cp $ff
- ret z
- cp $60
- ld a, $d
- jr c, .asm_8aef5
- ld a, $5
-
-.asm_8aef5
- call Function8aefd
-rept 2
- inc hl
-endr
- inc de
- jr .asm_8aee9
-; 8aefd
-
-Function8aefd: ; 8aefd
- push hl
- ld [hli], a
- ld [hld], a
- ld b, $0
- ld c, $14
- add hl, bc
- ld [hli], a
- ld [hl], a
- pop hl
- ret
-; 8af09
-
-Function8af09: ; 8af09
- push hl
- push de
-.asm_8af0b
- ld a, [de]
- cp $ff
- jr z, .asm_8af19
- ld c, a
- call Function8af1c
-rept 2
- inc hl
-endr
- inc de
- jr .asm_8af0b
-
-.asm_8af19
- pop de
- pop hl
- ret
-; 8af1c
-
-Function8af1c: ; 8af1c
- push hl
- ld a, c
- cp $60
- jr z, .asm_8af3b
- cp $62
- jr z, .asm_8af4b
- cp $64
- jr z, .asm_8af5b
- ld [hli], a
- inc a
- ld [hld], a
- dec a
- ld b, $0
- ld c, $14
- add hl, bc
- ld c, $10
- add c
- ld [hli], a
- inc a
- ld [hl], a
- pop hl
- ret
-
-.asm_8af3b
- ld [hl], $5b
- inc hl
- ld [hl], $5c
- ld bc, $0013
- add hl, bc
- ld [hl], $4d
- inc hl
- ld [hl], $5d
- pop hl
- ret
-
-.asm_8af4b
- ld [hl], $4e
- inc hl
- ld [hl], $4f
- ld bc, $0013
- add hl, bc
- ld [hl], $5e
- inc hl
- ld [hl], $5f
- pop hl
- ret
-
-.asm_8af5b
- ld [hl], $2
- inc hl
- ld [hl], $3
- ld bc, $0013
- add hl, bc
- ld [hl], $3
- inc hl
- ld [hl], $2
- pop hl
- ret
-; 8af6b
-
-SpecialBuenasPassword: ; 8af6b
- xor a
- ld [wcf76], a
- ld hl, MenuDataHeader_0x8afa9
- call CopyMenuDataHeader
- ld a, [wdc4a]
- ld c, a
- callba GetBuenasPassword
- ld a, [wcf83]
- add c
- add $2
- ld [wcf85], a
- call Function1c00
- call Function1e5d
- callba Function4ae5e
- ld b, $0
- ld a, [MenuSelection]
- ld c, a
- ld a, [wdc4a]
- and $3
- cp c
- jr nz, .asm_8afa4
- ld b, $1
-
-.asm_8afa4
- ld a, b
- ld [ScriptVar], a
- ret
-; 8afa9
-
-MenuDataHeader_0x8afa9: ; 0x8afa9
- db $40 ; flags
- db 00, 00 ; start coords
- db 07, 10 ; end coords
- dw MenuData2_0x8afb2
- db 1 ; default option
-; 0x8afb1
-
- db 0
-
-MenuData2_0x8afb2: ; 0x8afb2
- db $81 ; flags
- db 0 ; items
- dw Unknown_8afb8
- dw Function8afbd
-; 0x8afb4
-
-Unknown_8afb8: ; 8afb8
- db 3
- db 0, 1, 2
- db -1
-
-Function8afbd: ; 8afbd
- push de
- ld a, [wdc4a]
- and $f0
- ld c, a
- ld a, [MenuSelection]
- add c
- ld c, a
- callba GetBuenasPassword
- pop hl
- call PlaceString
- ret
-; 8afd4
-
-SpecialBuenaPrize: ; 8afd4
- xor a
- ld [wd0e4], a
- ld a, $1
- ld [MenuSelection], a
- call Function8b0d6
- call Function8b090
- ld hl, UnknownText_0x8b072
- call PrintText
- jr .asm_8aff1
-
-.asm_8afeb
- ld hl, UnknownText_0x8b072
- call Function105a
-
-.asm_8aff1
- call DelayFrame
- call UpdateSprites
- call Function8b097
- call Function8b0e2
- jr z, .asm_8b05f
- ld [wcf75], a
- call GetBuenaPrize
- ld a, [hl]
- ld [wd265], a
- call GetItemName
- ld hl, UnknownText_0x8b077
- call Function105a
- call YesNoBox
- jr c, .asm_8afeb
- ld a, [wcf75]
- call GetBuenaPrize
- inc hl
- ld a, [hld]
- ld c, a
- ld a, [wdc4b]
- cp c
- jr c, .asm_8b047
- ld a, [hli]
- push hl
- ld [CurItem], a
- ld a, $1
- ld [wd10c], a
- ld hl, NumItems
- call ReceiveItem
- pop hl
- jr nc, .asm_8b04c
- ld a, [hl]
- ld c, a
- ld a, [wdc4b]
- sub c
- ld [wdc4b], a
- call Function8b097
- jr .asm_8b051
-
-.asm_8b047
- ld hl, UnknownText_0x8b081
- jr .asm_8b05a
-
-.asm_8b04c
- ld hl, UnknownText_0x8b086
- jr .asm_8b05a
-
-.asm_8b051
- ld de, SFX_TRANSACTION
- call PlaySFX
- ld hl, UnknownText_0x8b07c
-
-.asm_8b05a
- call Function105a
- jr .asm_8afeb
-
-.asm_8b05f
- call WriteBackup
- call WriteBackup
- ld hl, UnknownText_0x8b08b
- call PrintText
- call Functiona36
- call PlayClickSFX
- ret
-; 8b072
-
-UnknownText_0x8b072: ; 0x8b072
- ; Which prize would you like?
- text_jump UnknownText_0x1c589f
- db "@"
-; 0x8b077
-
-UnknownText_0x8b077: ; 0x8b077
- ; ? Is that right?
- text_jump UnknownText_0x1c58bc
- db "@"
-; 0x8b07c
-
-UnknownText_0x8b07c: ; 0x8b07c
- ; Here you go!
- text_jump UnknownText_0x1c58d1
- db "@"
-; 0x8b081
-
-UnknownText_0x8b081: ; 0x8b081
- ; You don't have enough points.
- text_jump UnknownText_0x1c58e0
- db "@"
-; 0x8b086
-
-UnknownText_0x8b086: ; 0x8b086
- ; You have no room for it.
- text_jump UnknownText_0x1c58ff
- db "@"
-; 0x8b08b
-
-UnknownText_0x8b08b: ; 0x8b08b
- ; Oh. Please come back again!
- text_jump UnknownText_0x1c591a
- db "@"
-; 0x8b090
-
-Function8b090: ; 8b090
- ld hl, MenuDataHeader_0x8b0d1
- call LoadMenuDataHeader
- ret
-; 8b097
-
-Function8b097: ; 8b097
- ld de, wdc4b
- call Function8b09e
- ret
-; 8b09e
-
-Function8b09e: ; 8b09e
- push de
- xor a
- ld [hBGMapMode], a
- ld hl, MenuDataHeader_0x8b0d1
- call CopyMenuDataHeader
- call Function1cbb
- call UpdateSprites
- call Function1cfd
- ld bc, $0015
- add hl, bc
- ld de, String_8b0ca
- call PlaceString
- ld h, b
- ld l, c
- inc hl
- ld a, $7f
- ld [hli], a
- ld [hld], a
- pop de
- lb bc, 1, 2
- call PrintNum
- ret
-; 8b0ca
-
-String_8b0ca:
- db "Points@"
-; 8b0d1
-
-MenuDataHeader_0x8b0d1: ; 0x8b0d1
- db $40 ; flags
- db 11, 00 ; start coords
- db 13, 11 ; end coords
-; 8b0d6
-
-Function8b0d6: ; 8b0d6
- ld hl, MenuDataHeader_0x8b0dd
- call LoadMenuDataHeader
- ret
-; 8b0dd
-
-MenuDataHeader_0x8b0dd: ; 0x8b0dd
- db $40 ; flags
- db 00, 00 ; start coords
- db 11, 17 ; end coords
-; 8b0e2
-
-Function8b0e2: ; 8b0e2
- ld hl, MenuDataHeader_0x8b113
- call CopyMenuDataHeader
- ld a, [MenuSelection]
- ld [wcf88], a
- xor a
- ld [wcf76], a
- ld [hBGMapMode], a
- call Function352f
- call UpdateSprites
- call Function350c
- ld a, [MenuSelection]
- ld c, a
- ld a, [wcfa9]
- ld [MenuSelection], a
- ld a, [wcf73]
- cp $2
- jr z, .asm_8b111
- ld a, c
- and a
- ret nz
-
-.asm_8b111
- xor a
- ret
-; 8b113
-
-MenuDataHeader_0x8b113: ; 0x8b113
- db $40 ; flags
- db 01, 01 ; start coords
- db 09, 16 ; end coords
- dw MenuData2_0x8b11c
- db 1 ; default option
-; 0x8b11b
-
- db 0
-
-MenuData2_0x8b11c: ; 0x8b11c
- db $10 ; flags
- db 4 ; items
- db $d, $1
- dbw BANK(Unknown_8b129), Unknown_8b129
- dbw BANK(BuenaPrizeItem), BuenaPrizeItem
- dbw BANK(BuenaPrizePoints), BuenaPrizePoints
-; 8b129
-
-Unknown_8b129: ; 8b129
- db 9
- db 1, 2, 3, 4, 5, 6, 7, 8, 9, $ff
-; 8b134
-
-BuenaPrizeItem: ; 8b134
- ld a, [MenuSelection]
- call GetBuenaPrize
- ld a, [hl]
- push de
- ld [wd265], a
- call GetItemName
- pop hl
- call PlaceString
- ret
-; 8b147
-
-BuenaPrizePoints: ; 8b147
- ld a, [MenuSelection]
- call GetBuenaPrize
- inc hl
- ld a, [hl]
- ld c, "0"
- add c
- ld [de], a
- ret
-; 8b154
-
-GetBuenaPrize: ; 8b154
- dec a
- ld hl, BuenaPrizes
- ld b, 0
- ld c, a
-rept 2
- add hl, bc
-endr
- ret
-; 8b15e
-
-BuenaPrizes: ; 8b15e
- db ULTRA_BALL, 2
- db FULL_RESTORE, 2
- db NUGGET, 3
- db RARE_CANDY, 3
- db PROTEIN, 5
- db IRON, 5
- db CARBOS, 5
- db CALCIUM, 5
- db HP_UP, 5
-; 8b170
-
-
+INCLUDE "misc/mobile_22.asm"
+INCLUDE "event/unown.asm"
+INCLUDE "event/buena.asm"
INCLUDE "event/dratini.asm"
-
-
-Function8b1e1: ; 8b1e1
- ld de, Unknown_8b1ed
- call Function8b25b
- ret z
- call Function8b231
- scf
- ret
-; 8b1ed
-
-Unknown_8b1ed: ; 8b1ed
- db 2
- dw Unknown_8b1f2
- dw Unknown_8b1f6
-
-Unknown_8b1f2: ; 8b1f2
- dw Function8b2bb
- dw Function8b2c1
-; 8b1f6
-
-Unknown_8b1f6: ; 8b1f6
- dw UnknownText_0x8b1fc
- dw UnknownText_0x8b23d
- dw UnknownText_0x8b242
-; 8b1fc
-
-UnknownText_0x8b1fc: ; 0x8b1fc
- ; Excuse me!
- text_jump UnknownText_0x1c5937
- db "@"
-; 0x8b201
-
-CheckForBattleTowerRules: ; 8b201
- ld hl, StringBuffer2
- ld [hl], "3"
- inc hl
- ld [hl], "@"
- ld de, CheckForBattleTowerRules_FunctionsText
- call Function8b25b
- ret z
- call Function8b231
- scf
- ret
-; 8b215
-
-CheckForBattleTowerRules_FunctionsText: ; 8b215
- db 4
- dw CheckForBattleTowerRules_Functions
- dw CheckForBattleTowerRules_Text
-
-CheckForBattleTowerRules_Functions: ; 8b21a
- dw Function_PartyCountEq3
- dw Function8b2e2
- dw Function8b32a
- dw Function_HasPartyAnEgg
-; 8b222
-
-CheckForBattleTowerRules_Text: ; 8b222
- dw JumpText_ExcuseMeYoureNotReady
- dw JumbText_OnlyThreePkmnMayBeEntered
- dw JumpText_ThePkmnMustAllBeDifferentKinds
- dw JumpText_ThePkmnMustNotHoldTheSameItems
- dw JumpText_YouCantTakeAnEgg
-; 8b22c
-
-JumpText_ExcuseMeYoureNotReady: ; 0x8b22c
- ; Excuse me. You're not ready.
- text_jump Text_ExcuseMeYoureNotReady
- db "@"
-; 0x8b231
-
-Function8b231: ; 8b231
- ld hl, UnknownText_0x8b238
- call PrintText
- ret
-; 8b238
-
-UnknownText_0x8b238: ; 0x8b238
- ; Please return when you're ready.
- text_jump UnknownText_0x1c5962
- db "@"
-; 0x8b23d
-
-UnknownText_0x8b23d: ; 0x8b23d
- ; You need at least three #MON.
- text_jump UnknownText_0x1c5983
- db "@"
-; 0x8b242
-
-UnknownText_0x8b242: ; 0x8b242
- ; Sorry, an EGG doesn't qualify.
- text_jump UnknownText_0x1c59a3
- db "@"
-; 0x8b247
-
-JumbText_OnlyThreePkmnMayBeEntered: ; 0x8b247
- ; Only three #MON may be entered.
- text_jump Text_OnlyThreePkmnMayBeEntered
- db "@"
-; 0x8b24c
-
-JumpText_ThePkmnMustAllBeDifferentKinds: ; 0x8b24c
- ; The @ #MON must all be different kinds.
- text_jump Text_ThePkmnMustAllBeDifferentKinds
- db "@"
-; 0x8b251
-
-JumpText_ThePkmnMustNotHoldTheSameItems: ; 0x8b251
- ; The @ #MON must not hold the same items.
- text_jump Text_ThePkmnMustNotHoldTheSameItems
- db "@"
-; 0x8b256
-
-JumpText_YouCantTakeAnEgg: ; 0x8b256
- ; You can't take an EGG!
- text_jump Text_YouCantTakeAnEgg
- db "@"
-; 0x8b25b
-
-Function8b25b: ; 8b25b
- ld bc, $0000
-.asm_8b25e
- call Function8b26c
- call c, Function8b28e
- call Function8b276
- jr nz, .asm_8b25e
- ld a, b
- and a
- ret
-; 8b26c
-
-Function8b26c: ; 8b26c
- push de
- push bc
- call Function8b27a
- ld a, c
- rst JumpTable
- pop bc
- pop de
- ret
-; 8b276
-
-Function8b276: ; 8b276
- inc c
- ld a, [de]
- cp c
- ret
-; 8b27a
-
-Function8b27a: ; 8b27a
- inc de
- ld a, [de]
- ld l, a
- inc de
- ld a, [de]
- ld h, a
- ret
-; 8b281
-
-Function8b281: ; 8b281
-rept 3
- inc de
-endr
- ld a, [de]
- ld l, a
- inc de
- ld a, [de]
- ld h, a
- ret
-; 8b28a
-
-Function8b28a: ; 8b28a
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ret
-; 8b28e
-
-Function8b28e: ; 8b28e
- push de
- push bc
- ld a, b
- and a
- call z, Function8b29d
- pop bc
- call Function8b2a9
- ld b, $1
- pop de
- ret
-; 8b29d
-
-Function8b29d: ; 8b29d
- push de
- call Function8b281
- call Function8b28a
- call PrintText
- pop de
- ret
-; 8b2a9
-
-Function8b2a9: ; 8b2a9
- push bc
- call Function8b281
-rept 2
- inc hl
-endr
- ld b, $0
-rept 2
- add hl, bc
-endr
- call Function8b28a
- call PrintText
- pop bc
- ret
-; 8b2bb
-
-Function8b2bb: ; 8b2bb
- ld a, [PartyCount]
- cp 3
- ret
-; 8b2c1
-
-Function8b2c1: ; 8b2c1
- ld hl, PartyCount
- ld a, [hli]
- ld b, $0
- ld c, a
-.asm_8b2c8
- ld a, [hli]
- cp EGG
- jr z, .asm_8b2ce
- inc b
-
-.asm_8b2ce
- dec c
- jr nz, .asm_8b2c8
- ld a, [PartyCount]
- cp b
- ret z
- ld a, b
- cp 3
- ret
-; 8b2da
-
-Function_PartyCountEq3: ; 8b2da
- ld a, [PartyCount]
- cp 3
- ret z
- scf
- ret
-; 8b2e2
-
-Function8b2e2: ; 8b2e2
- ld hl, PartyMon1Species
- call Function8b2e9
- ret
-; 8b2e9
-
-Function8b2e9: ; 8b2e9
- ld de, PartyCount
- ld a, [de]
- inc de
- dec a
- jr z, .asm_8b314
- ld b, a
-.asm_8b2f2
- push hl
- push de
- ld c, b
- call Function8b322
- jr z, .asm_8b30c
- ld a, [hl]
- and a
- jr z, .asm_8b30c
-.asm_8b2fe
- call Function8b31a
- call Function8b322
- jr z, .asm_8b309
- cp [hl]
- jr z, .asm_8b316
-
-.asm_8b309
- dec c
- jr nz, .asm_8b2fe
-
-.asm_8b30c
- pop de
- pop hl
- call Function8b31a
- dec b
- jr nz, .asm_8b2f2
-
-.asm_8b314
- and a
- ret
-
-.asm_8b316
- pop de
- pop hl
- scf
- ret
-; 8b31a
-
-Function8b31a: ; 8b31a
- push bc
- ld bc, PartyMon2 - PartyMon1
- add hl, bc
- inc de
- pop bc
- ret
-; 8b322
-
-Function8b322: ; 8b322
- push bc
- ld b, a
- ld a, [de]
- cp EGG
- ld a, b
- pop bc
- ret
-; 8b32a
-
-Function8b32a: ; 8b32a
- ld hl, PartyMon1Item
- call Function8b2e9
- ret
-; 8b331
-
-Function_HasPartyAnEgg: ; 8b331
- ld hl, PartyCount
- ld a, [hli]
- ld c, a
-.asm_8b336
- ld a, [hli]
- cp EGG
- jr z, .asm_8b340
- dec c
- jr nz, .asm_8b336
- and a
- ret
-
-.asm_8b340
- scf
- ret
-; 8b342
-
-
-Function8b342:: ; 8b342
- call GetSecondaryMapHeaderPointer
- ld d, h
- ld e, l
- xor a
-.asm_8b348
- push af
- ld hl, Jumptable_8b354
- rst JumpTable
- pop af
- inc a
- cp 3
- jr nz, .asm_8b348
- ret
-; 8b354
-
-Jumptable_8b354: ; 8b354
- dw Function8b35a
- dw Function8b35b
- dw Function8b35c
-; 8b35a
-
-Function8b35a: ; 8b35a
- ret
-; 8b35b
-
-Function8b35b: ; 8b35b
- ret
-; 8b35c
-
-Function8b35c: ; 8b35c
- ret
-; 8b35d
-
-Function8b35d: ; 8b35d
- ld a, h
- cp d
- ret nz
- ld a, l
- cp e
- ret
-; 8b363
-
-Function8b363: ; 8b363
- push bc
- callba Function10632f
- pop bc
- ret
-; 8b36c
-
-Function8b36c: ; 8b36c (22:736c)
- push bc
- ld h, b
- ld l, c
- ld bc, $4
- ld a, $ff
- call ByteFill
- pop bc
- ret
-
-Function8b379: ; 8b379 (22:7379)
- push bc
- ld a, c
- add e
- ld c, a
- ld a, $0
- adc b
- ld b, a
- ld a, [bc]
- ld d, a
- pop bc
- ret
-
-Function8b385: ; 8b385 (22:7385)
- push bc
- ld a, c
- add e
- ld c, a
- ld a, $0
- adc b
- ld b, a
- ld a, d
- ld [bc], a
- pop bc
- ret
-
-Function8b391: ; 8b391 (22:7391)
- push bc
- ld e, $0
- ld d, $4
-.asm_8b396
- ld a, [bc]
- inc bc
- cp $ff
- jr z, .asm_8b3a2
- inc e
- dec d
- jr nz, .asm_8b396
- dec e
- scf
-.asm_8b3a2
- pop bc
- ret
-
-Function8b3a4: ; 8b3a4 (22:73a4)
- push de
- push bc
- ld d, b
- ld e, c
- ld c, $4
- call Function89185
- pop bc
- pop de
- ret
-
-Function8b3b0: ; 8b3b0 (22:73b0)
- ld bc, $a037
- ld a, [$a60b]
- and a
- jr z, .asm_8b3c2
- cp $3
- jr nc, .asm_8b3c2
- call Function8b391
- jr c, .asm_8b3c9
-.asm_8b3c2
- call Function8b36c
- xor a
- ld [$a60b], a
-.asm_8b3c9
- ld a, [$a60b]
- ret
-
-Function8b3cd: ; 8b3cd (22:73cd)
- push de
- push bc
- ld e, $4
-.asm_8b3d1
- ld a, [bc]
- inc bc
- call Function8998b
- inc hl
- dec e
- jr nz, .asm_8b3d1
- pop bc
- pop de
- ret
-
-Function8b3dd: ; 8b3dd (22:73dd)
- push de
- push bc
- call Function354b
- ld a, c
- pop bc
- pop de
- bit 0, a
- jr nz, .asm_8b3f7
- bit 1, a
- jr nz, .asm_8b40e
- bit 6, a
- jr nz, .asm_8b429
- bit 7, a
- jr nz, .asm_8b443
- and a
- ret
-.asm_8b3f7
- ld a, e
- cp $3
- jr z, .asm_8b407
- inc e
- ld d, $0
- call Function8b385
- xor a
- ld [wd010], a
- ret
-.asm_8b407
- call PlayClickSFX
- ld d, $0
- scf
- ret
-.asm_8b40e
- ld a, e
- and a
- jr nz, .asm_8b41e
- call PlayClickSFX
- ld d, $ff
- call Function8b385
- ld d, $1
- scf
- ret
-.asm_8b41e
- ld d, $ff
- call Function8b385
- dec e
- xor a
- ld [wd010], a
- ret
-.asm_8b429
- call Function8b379
- ld a, d
- cp $a
- jr c, .asm_8b433
- ld d, $9
-.asm_8b433
- inc d
- ld a, d
- cp $a
- jr c, .asm_8b43b
- ld d, $0
-.asm_8b43b
- call Function8b385
- xor a
- ld [wd010], a
- ret
-.asm_8b443
- call Function8b379
- ld a, d
- cp $a
- jr c, .asm_8b44d
- ld d, $0
-.asm_8b44d
- ld a, d
- dec d
- and a
- jr nz, .asm_8b454
- ld d, $9
-.asm_8b454
- call Function8b385
- xor a
- ld [wd010], a
- ret
-
-Function8b45c: ; 8b45c (22:745c)
- call Function8b36c
- xor a
- ld [wd010], a
- ld [wd012], a
- call Function8b391
- ld d, $0
- call Function8b385
-.asm_8b46e
- call Function8923c
- call Function8b493
- call Function8b4cc
- call Function8b518
- call Function89b78
- push bc
- call Function8b4fd
- call Function89c44
- ld a, $1
- ld [hBGMapMode], a ; $ff00+$d4
- pop bc
- call Function8b3dd
- jr nc, .asm_8b46e
- ld a, d
- and a
- ret z
- scf
- ret
-
-Function8b493: ; 8b493 (22:7493)
- push bc
- call Function8923c
- call Function8b521
- ld hl, Jumptable_8b4a0
- pop bc
- rst JumpTable
- ret
-
-Jumptable_8b4a0: ; 8b4a0 (22:74a0)
- dw Function8b4a4
- dw Function8b4b8
-
-
-Function8b4a4: ; 8b4a4 (22:74a4)
- push bc
- push de
- call Function8b4d8
- call TextBox
- pop de
- pop bc
- call Function8b4cc
- call Function8b518
- call Function8b3cd
- ret
-
-Function8b4b8: ; 8b4b8 (22:74b8)
- push bc
- push de
- call Function8b4ea
- call Function89b3b
- pop de
- pop bc
- call Function8b4cc
- call Function8b518
- call Function8b3cd
- ret
-
-Function8b4cc: ; 8b4cc (22:74cc)
- push bc
- ld hl, Unknown_8b529
- call Function8b50a
- ld a, [hli]
- ld h, [hl]
- ld l, a
- pop bc
- ret
-
-Function8b4d8: ; 8b4d8 (22:74d8)
- ld hl, Unknown_8b529
- call Function8b50a
- push hl
-rept 2
- inc hl
-endr
- ld a, [hli]
- ld b, a
- ld a, [hl]
- ld c, a
- pop hl
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ret
-
-Function8b4ea: ; 8b4ea (22:74ea)
- ld hl, Unknown_8b529
- call Function8b50a
- push hl
-rept 2
- inc hl
-endr
- ld a, [hli]
- ld b, a
- ld a, [hl]
- ld c, a
- pop hl
- ld a, [hli]
- ld e, a
- ld a, [hl]
- ld d, a
- ret
-
-Function8b4fd: ; 8b4fd (22:74fd)
- ld hl, Unknown_8b529 + 4
- call Function8b50a
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- ld a, [hli]
- ld d, a
- ret
-
-Function8b50a: ; 8b50a (22:750a)
- ld a, [wd02e]
- and a
- ret z
- ld b, $0
- ld c, $8
-.asm_8b513
- add hl, bc
- dec a
- jr nz, .asm_8b513
- ret
-
-Function8b518: ; 8b518 (22:7518)
- push de
- ld d, $0
- ld e, $14
- add hl, de
- inc hl
- pop de
- ret
-
-Function8b521: ; 8b521 (22:7521)
- ld hl, Unknown_8b529 + 7
- call Function8b50a
- ld a, [hl]
- ret
-; 8b529 (22:7529)
-
-Unknown_8b529: ; 8b529
- dwcoord 2, 5
- db 1, 4, $20, $49, 0, 1
- dwcoord 7, 4
- db 1, 4, $48, $41, 0, 0
-; 8b539
-
-Function8b539: ; 8b539 (22:7539)
- ld bc, wd017
- call Function8b36c
- xor a
- ld [wd012], a
- ld [wd02e], a
- call Function8b493
- call Function8b4fd
- ld e, $0
- call Function89c44
- call Function3238
- ret
-
-Function8b555: ; 8b555 (22:7555)
- ld hl, UnknownText_0x8b5ce
- call PrintText
- ld bc, wd017
- call Function8b45c
- jr c, .asm_8b5c8
- call Function89448
- ld bc, wd017
- call Function8b493
- ld bc, wd017
- call Function8b664
- jr nz, .asm_8b57c
- ld hl, UnknownText_0x8b5e2
- call PrintText
- jr Function8b555
-.asm_8b57c
- ld hl, UnknownText_0x8b5d3
- call PrintText
- ld bc, wd013
- call Function8b45c
- jr c, Function8b555
- ld bc, wd017
- ld hl, wd013
- call Function8b3a4
- jr z, .asm_8b5a6
- call Function89448
- ld bc, wd013
- call Function8b493
- ld hl, UnknownText_0x8b5d8
- call PrintText
- jr .asm_8b57c
-.asm_8b5a6
- call Function89160
- ld hl, wd013
- ld de, $a037
- ld bc, $4
- call CopyBytes
- call CloseSRAM
- call Function89448
- ld bc, wd013
- call Function8b493
- ld hl, UnknownText_0x8b5dd
- call PrintText
- and a
-.asm_8b5c8
- push af
- call Function89448
- pop af
- ret
-; 8b5ce (22:75ce)
-
-UnknownText_0x8b5ce: ; 0x8b5ce
- ; Please enter any four-digit number.
- text_jump UnknownText_0x1bc187
- db "@"
-; 0x8b5d3
-
-UnknownText_0x8b5d3: ; 0x8b5d3
- ; Enter the same number to confirm.
- text_jump UnknownText_0x1bc1ac
- db "@"
-; 0x8b5d8
-
-UnknownText_0x8b5d8: ; 0x8b5d8
- ; That's not the same number.
- text_jump UnknownText_0x1bc1cf
- db "@"
-; 0x8b5dd
-
-UnknownText_0x8b5dd: ; 0x8b5dd
- ; Your PASSCODE has been set. Enter this number next time to open the CARD FOLDER.
- text_jump UnknownText_0x1bc1eb
- db "@"
-; 0x8b5e2
-
-UnknownText_0x8b5e2: ; 0x8b5e2
- ; 0000 is invalid!
- text_jump UnknownText_0x1bc23e
- db "@"
-; 0x8b5e7
-
-Function8b5e7: ; 8b5e7 (22:75e7)
- ld bc, wd013
- call Function8b36c
- xor a
- ld [wd012], a
- ld [wd02e], a
- call Function8b493
- call Function891ab
- call Function8b4fd
- ld e, $0
- call Function89c44
-.asm_8b602
- ld hl, UnknownText_0x8b642
- call PrintText
- ld bc, wd013
- call Function8b45c
- jr c, .asm_8b63c
- call Function89448
- ld bc, wd013
- call Function8b493
- call Function89160
- ld hl, $a037
- call Function8b3a4
- call CloseSRAM
- jr z, .asm_8b635
- ld hl, UnknownText_0x8b647
- call PrintText
- ld bc, wd013
- call Function8b36c
- jr .asm_8b602
-.asm_8b635
- ld hl, UnknownText_0x8b64c
- call PrintText
- and a
-.asm_8b63c
- push af
- call Function89448
- pop af
- ret
-; 8b642 (22:7642)
-
-UnknownText_0x8b642: ; 0x8b642
- ; Enter the CARD FOLDER PASSCODE.
- text_jump UnknownText_0x1bc251
- db "@"
-; 0x8b647
-
-UnknownText_0x8b647: ; 0x8b647
- ; Incorrect PASSCODE!
- text_jump UnknownText_0x1bc272
- db "@"
-; 0x8b64c
-
-UnknownText_0x8b64c: ; 0x8b64c
- ; CARD FOLDER open.@ @
- text_jump UnknownText_0x1bc288
- start_asm
-; 0x8b651
-
-Function8b651: ; 8b651
- ld de, SFX_TWINKLE
- call PlaySFX
- call WaitSFX
- ld c, $8
- call DelayFrames
- ld hl, .string_8b663
- ret
-.string_8b663
- db "@"
-; 8b664
-
-Function8b664: ; 8b664 (22:7664)
- push bc
- ld de, $4
-.asm_8b668
- ld a, [bc]
- cp $0
- jr nz, .asm_8b66e
- inc d
-.asm_8b66e
- inc bc
- dec e
- jr nz, .asm_8b668
- pop bc
- ld a, d
- cp $4
- ret
-
-Function8b677: ; 8b677
- call WhiteBGMap
- call DisableLCD
- call Function8b690
- call Function8b6bb
- call Function8b6ed
- call EnableLCD
- call Function891ab
- call Function32f9
- ret
-; 8b690
-
-Function8b690: ; 8b690
- ld hl, GFX_17afa5 + $514
- ld de, VTiles2
- ld bc, $160
- ld a, BANK(GFX_17afa5)
- call FarCopyBytes
- ld hl, GFX_17afa5 + $514 + $160 - $10
- ld de, VTiles2 tile $61
- ld bc, $10
- ld a, BANK(GFX_17afa5)
- call FarCopyBytes
- ld hl, GFX_17afa5 + $514 + $160
- ld de, VTiles1 tile $6e
- ld bc, $10
- ld a, BANK(GFX_17afa5)
- call FarCopyBytes
- ret
-; 8b6bb
-
-Function8b6bb: ; 8b6bb
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_8b6d5
- ld de, Unkn1Pals
- ld bc, $0018
- call CopyBytes
- pop af
- ld [rSVBK], a
- call Function8949c
- ret
-; 8b6d5
-
-Palette_8b6d5: ; 8b6d5
- RGB 31, 31, 31
- RGB 31, 21, 00
- RGB 14, 07, 03
- RGB 00, 00, 00
- RGB 31, 31, 31
- RGB 31, 21, 00
- RGB 22, 09, 17
- RGB 00, 00, 00
- RGB 31, 31, 31
- RGB 31, 21, 00
- RGB 06, 24, 08
- RGB 00, 00, 00
-; 8b6ed
-
-Function8b6ed: ; 8b6ed
- hlcoord 0, 0, AttrMap
- ld bc, $012c
- xor a
- call ByteFill
- hlcoord 0, 14, AttrMap
- ld bc, $0050
- ld a, $7
- call ByteFill
- ret
-; 8b703
-
-Function8b703: ; 8b703
- call Function8923c
- push hl
- ld a, $c
- ld [hli], a
- inc a
- call Function8b73e
- inc a
- ld [hl], a
- pop hl
- push hl
- push bc
- ld de, SCREEN_WIDTH
- add hl, de
-.asm_8b717
- push hl
- ld a, $f
- ld [hli], a
- ld a, $7f
- call Function8b73e
- ld a, $11
- ld [hl], a
- pop hl
- ld de, SCREEN_WIDTH
- add hl, de
- dec b
- jr nz, .asm_8b717
- call Function8b732
- pop bc
- pop hl
- jr Function8b744
-; 8b732
-
-Function8b732: ; 8b732
- ld a, $12
- ld [hli], a
- ld a, $13
- call Function8b73e
- ld a, $14
- ld [hl], a
- ret
-; 8b73e
-
-Function8b73e: ; 8b73e
- ld d, c
-.asm_8b73f
- ld [hli], a
- dec d
- jr nz, .asm_8b73f
- ret
-; 8b744
-
-Function8b744: ; 8b744
- ld de, AttrMap - TileMap
- add hl, de
-rept 2
- inc b
-endr
-rept 2
- inc c
-endr
- xor a
-.asm_8b74d
- push bc
- push hl
-.asm_8b74f
- ld [hli], a
- dec c
- jr nz, .asm_8b74f
- pop hl
- ld de, SCREEN_WIDTH
- add hl, de
- pop bc
- dec b
- jr nz, .asm_8b74d
- ret
-; 8b75d
-
-Function8b75d: ; 8b75d
- call Function8923c
- hlcoord 0, 0
- ld a, $1
- ld bc, SCREEN_WIDTH
- call ByteFill
- hlcoord 0, 1
- ld a, $2
- ld [hl], a
- hlcoord 9, 1
- ld c, $b
- call Function8b788
- hlcoord 1, 1
- ld a, $4
- ld e, $8
-.asm_8b780
- ld [hli], a
- inc a
- dec e
- jr nz, .asm_8b780
- jr Function8b79e
-; 8b787
-
-Function8b787: ; 8b787
- ret
-; 8b788
-
-Function8b788: ; 8b788
-.asm_8b788
- ld a, $2
- ld [hli], a
- dec c
- ret z
- ld a, $1
- ld [hli], a
- dec c
- ret z
- ld a, $3
- ld [hli], a
- dec c
- ret z
- ld a, $1
- ld [hli], a
- dec c
- jr nz, .asm_8b788
- ret
-; 8b79e
-
-Function8b79e: ; 8b79e
- hlcoord 0, 1, AttrMap
- ld a, $1
- ld [hli], a
- hlcoord 9, 1, AttrMap
- ld e, $b
-.asm_8b7a9
- ld a, $2
- ld [hli], a
- dec e
- ret z
- xor a
- ld [hli], a
- dec e
- ret z
- ld a, $1
- ld [hli], a
- dec e
- ret z
- xor a
- ld [hli], a
- dec e
- jr nz, .asm_8b7a9
- ret
-; 8b7bd
-
-Function8b7bd: ; 8b7bd
- call Function8b855
- ld hl, MenuDataHeader_0x8b867
- call CopyMenuDataHeader
- ld a, [wd030]
- ld [wcf88], a
- ld a, [wd031]
- ld [wd0e4], a
- ld a, [wd032]
- and a
- jr z, .asm_8b7e0
- ld a, [wcf81]
- set 3, a
- ld [wcf81], a
-
-.asm_8b7e0
- ld a, [wd0e3]
- and a
- jr z, .asm_8b7ea
- dec a
- ld [wcf77], a
-
-.asm_8b7ea
- hlcoord 0, 2
- ld b, $b
- ld c, $12
- call Function8b703
- call Function8b75d
- call UpdateSprites
- call Function89209
- call Function350c
- call Function8920f
- ld a, [wcf73]
- cp $2
- jr z, .asm_8b823
- cp $20
- jr nz, .asm_8b813
- call Function8b832
- jr .asm_8b7ea
-
-.asm_8b813
- cp $10
- jr nz, .asm_8b81c
- call Function8b83e
- jr .asm_8b7ea
-
-.asm_8b81c
- ld a, [MenuSelection]
- cp $ff
- jr nz, .asm_8b824
-
-.asm_8b823
- xor a
-
-.asm_8b824
- ld c, a
- ld a, [wcfa9]
- ld [wd030], a
- ld a, [wd0e4]
- ld [wd031], a
- ret
-; 8b832
-
-Function8b832: ; 8b832
- ld a, [wd0e4]
- ld hl, wcf92
- sub [hl]
- jr nc, Function8b84b
- xor a
- jr Function8b84b
-; 8b83e
-
-Function8b83e: ; 8b83e
- ld a, [wd0e4]
- ld hl, wcf92
- add [hl]
- cp $24
- jr c, Function8b84b
- ld a, $24
-
-Function8b84b: ; 8b84b
- ld [wd0e4], a
- ld a, [wcfa9]
- ld [wcf88], a
- ret
-; 8b855
-
-Function8b855: ; 8b855
- ld a, $28
- ld hl, DefaultFlypoint
- ld [hli], a
- ld c, $28
- xor a
-.asm_8b85e
- inc a
- ld [hli], a
- dec c
- jr nz, .asm_8b85e
- ld a, $ff
- ld [hl], a
- ret
-; 8b867
-
-MenuDataHeader_0x8b867: ; 0x8b867
- db $40 ; flags
- db 03, 01 ; start coords
- db 13, 18 ; end coords
- dw MenuData2_0x8b870
- db 1 ; default option
-; 0x8b86f
-
- db 0
-
-MenuData2_0x8b870: ; 0x8b870
- db $3c ; flags
- db 5 ; items
- db 3, 1
- dbw 0, wd002
- dbw BANK(Function8b880), Function8b880
- dbw BANK(Function8b88c), Function8b88c
- dbw BANK(Function8b8c8), Function8b8c8
-; 8b880
-
-Function8b880: ; 8b880
- ld h, d
- ld l, e
- ld de, MenuSelection
- lb bc, PRINTNUM_LEADINGZEROS | 1, 2
- call PrintNum
- ret
-; 8b88c
-
-Function8b88c: ; 8b88c
- call Function89160
- ld h, d
- ld l, e
- push hl
- ld de, String_89116
- call Function8931b
- call Function8932d
- jr c, .asm_8b8a3
- ld hl, $0000
- add hl, bc
- ld d, h
- ld e, l
-
-.asm_8b8a3
- pop hl
- push hl
- call PlaceString
- pop hl
- ld d, $0
- ld e, $6
- add hl, de
- push hl
- ld de, String_89116
- call Function8931b
- call Function8934a
- jr c, .asm_8b8c0
- ld hl, $0006
- add hl, bc
- ld d, h
- ld e, l
-
-.asm_8b8c0
- pop hl
- call PlaceString
- call CloseSRAM
- ret
-; 8b8c8
-
-Function8b8c8: ; 8b8c8
- hlcoord 0, 14
- ld b, $2
- ld c, $12
- call TextBox
- ld a, [wd033]
- ld b, 0
- ld c, a
- ld hl, Unknown_8b903
-rept 2
- add hl, bc
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld d, h
- ld e, l
- hlcoord 1, 16
- call PlaceString
- hlcoord 0, 13
- ld a, $f
- ld [hl], a
- hlcoord 19, 13
- ld a, $11
- ld [hl], a
- ld a, [wd0e4]
- cp $24
- ret c
- hlcoord 0, 13
- ld c, $12
- call Function8b732
- ret
-; 8b903
-
-Unknown_8b903: ; 8b903
- dw String_8b90b
- dw String_8b919
- dw String_8b92a
- dw String_8b938
-
-String_8b90b: db "めいしを えらんでください@" ; Please select a noun.
-String_8b919: db "どの めいしと いれかえますか?@" ; OK to swap with any noun?
-String_8b92a: db "あいてを えらんでください@" ; Please select an opponent.
-String_8b938: db "いれる ところを えらんでください@" ; Please select a location.
-; 8b94a
-
-Function8b94a: ; 8b94a
- ld [wd033], a
- xor a
- ld [wd0e4], a
- ld [wd032], a
- ld [wd0e3], a
- ld [wd031], a
- ld a, $1
- ld [wd030], a
- ret
-; 8b960
-
-
-Function8b960: ; 8b960 (22:7960)
- ld hl, MenuDataHeader_0x8b9ac
- call LoadMenuDataHeader
- call Function8b9e9
- jr c, .asm_8b97a
- hlcoord 11, 0
- ld b, $6
- ld c, $7
- call Function8b703
- ld hl, MenuDataHeader_0x8b9b1
- jr .asm_8b987
-.asm_8b97a
- hlcoord 11, 0
- ld b, $a
- ld c, $7
- call Function8b703
- ld hl, MenuDataHeader_0x8b9ca
-.asm_8b987
- ld a, $1
- call Function89d5e
- ld hl, Function8b9ab
- call Function89d85
- call ExitMenu
- jr c, .asm_8b99c
- call Function8b99f
- jr nz, .asm_8b99d
-.asm_8b99c
- xor a
-.asm_8b99d
- ld c, a
- ret
-
-Function8b99f: ; 8b99f (22:799f)
- ld hl, DefaultFlypoint
- dec a
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [hl]
- cp $ff
- ret
-; 8b9ab (22:79ab)
-
-Function8b9ab: ; 8b9ab
- ret
-; 8b9ac
-
-MenuDataHeader_0x8b9ac: ; 0x8b9ac
- db $40 ; flags
- db 00, 11 ; start coords
- db 11, 19 ; end coords
-
-MenuDataHeader_0x8b9b1: ; 0x8b9b1
- db $40 ; flags
- db 00, 11 ; start coords
- db 07, 19 ; end coords
- dw MenuData2_0x8b9b9
- db 1 ; default option
-; 0x8b9b9
-
-MenuData2_0x8b9b9: ; 0x8b9b9
- db $a0 ; flags
- db 3 ; items
- db "へんしゅう@" ; EDIT
- db "いれかえ@" ; REPLACE
- db "やめる@" ; QUIT
-; 0x8b9ca
-
-MenuDataHeader_0x8b9ca: ; 0x8b9ca
- db $40 ; flags
- db 00, 11 ; start coords
- db 11, 19 ; end coords
- dw MenuData2_0x8b9d2
- db 1 ; default option
-; 0x8b9d2
-
-MenuData2_0x8b9d2: ; 0x8b9d2
- db $a0 ; flags
- db 5 ; items
- db "みる@" ; VIEW
- db "へんしゅう@" ; EDIT
- db "いれかえ@" ; REPLACE
- db "けす@" ; ERASE
- db "やめる@" ; QUIT
-; 0x8b9e9
-
-Function8b9e9: ; 8b9e9 (22:79e9)
- call Function89160
- call Function8931b
- call Function8932d
- jr nc, .asm_8b9f6
- jr .asm_8b9ff
-.asm_8b9f6
- ld hl, $11
- add hl, bc
- call Function89b45
- jr c, .asm_8ba08
-.asm_8b9ff
- call Function892b4
- and a
- ld de, Unknown_8ba1c
- jr .asm_8ba0c
-.asm_8ba08
- ld de, Unknown_8ba1f
- scf
-.asm_8ba0c
- push af
- ld hl, DefaultFlypoint
-.asm_8ba10
- ld a, [de]
- inc de
- ld [hli], a
- cp $ff
- jr nz, .asm_8ba10
- call CloseSRAM
- pop af
- ret
-; 8ba1c (22:7a1c)
-
-Unknown_8ba1c: ; 8b1ac
- db 2, 4, -1
-
-Unknown_8ba1f: ; 8ba1f
- db 1, 2, 4, 3, -1
-; 8ba24
+INCLUDE "event/battle_tower.asm"
+INCLUDE "misc/mobile_22_2.asm"
SECTION "bank23", ROMX, BANK[$23]
-Function8c000: ; 8c000
-Function8c000_2:
+Predef35: ; 8c000
+Predef36:
ret
; 8c001
@@ -61303,7 +54337,7 @@ _TimeOfDayPals:: ; 8c011
; restore bg palette 8
- ld hl, wd03f ; last byte in Unkn1Pals
+ ld hl, Unkn2Pals - 1 ; last byte in Unkn1Pals
; save wram bank
ld a, [rSVBK]
@@ -62185,7 +55219,7 @@ Function8c5dc: ; 8c5dc (23:45dc)
xor a
ld [hBGMapMode], a ; $ff00+$d4
hlcoord 0, 0, AttrMap
- ld bc, $168
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
inc b
inc c
jr .asm_8c5f4
@@ -66427,7 +59461,7 @@ Function8e862: ; 8e862 (23:6862)
Function8e86c: ; 8e86c (23:686c)
push bc
- ld a, [$ffb0]
+ ld a, [hConnectedMapWidth]
ld hl, PartyMon1Item
ld bc, PartyMon2 - PartyMon1
call AddNTimes
@@ -66499,7 +59533,7 @@ Function8e8d5: ; 8e8d5 (23:68d5)
Function8e8df: ; 8e8df (23:68df)
push bc
- ld a, [$ffb0]
+ ld a, [hConnectedMapWidth]
ld hl, PartyMon1Item
ld bc, $30
call AddNTimes
@@ -66527,7 +59561,7 @@ Function8e8df: ; 8e8df (23:68df)
Function8e908: ; 8e908 (23:6908)
ld a, [wc3b7]
push af
- ld a, [$ffb0]
+ ld a, [hConnectedMapWidth]
ld hl, PartySpecies
ld e, a
ld d, $0
@@ -66536,7 +59570,7 @@ Function8e908: ; 8e908 (23:6908)
call ReadMonMenuIcon
ld [CurIcon], a
call Function8e9db
- ld a, [$ffb0]
+ ld a, [hConnectedMapWidth]
rept 4
add a
endr
@@ -66553,7 +59587,7 @@ endr
Function8e936: ; 8e936 (23:6936)
push bc
- ld a, [$ffb0]
+ ld a, [hConnectedMapWidth]
ld b, a
call Function8e94c
ld a, b
@@ -67685,10 +60719,10 @@ UnknownText_0x9066d: ; 0x9066d
; 0x90672
Function90672: ; 90672 (24:4672)
- ld a, [$ffaa]
+ ld a, [hInMenu]
push af
ld a, $1
- ld [$ffaa], a
+ ld [hInMenu], a
ld a, $0
ld [wc2ce], a
ld a, $10
@@ -67791,14 +60825,14 @@ Function90672: ; 90672 (24:4672)
call PrintText
call Functiona80
pop af
- ld [$ffaa], a
+ ld [hInMenu], a
ret
Function90783: ; 90783 (24:4783)
xor a
ld [hBGMapMode], a ; $ff00+$d4
hlcoord 0, 0
- ld bc, $168
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
xor a
call ByteFill
ld a, $1
@@ -67810,7 +60844,7 @@ Function90795: ; 90795 (24:4795)
and A_BUTTON
jr nz, .asm_907dc
- ld hl, $ffa9
+ ld hl, hJoyLast
ld a, [hl]
and D_UP
jr nz, .up
@@ -67901,9 +60935,9 @@ endr
Function90810: ; 90810 (24:4810)
ld a, [hJoyPressed] ; $ff00+$a7
- and $1
+ and A_BUTTON
jr nz, .asm_90857
- ld hl, $ffa9
+ ld hl, hJoyLast
ld a, [hl]
and D_UP
jr nz, .asm_90835
@@ -68082,10 +61116,10 @@ INCBIN "gfx/unknown/09090b.2bpp"
; 90913
Special_SetDayOfWeek: ; 90913
- ld a, [$ffaa]
+ ld a, [hInMenu]
push af
ld a, $1
- ld [$ffaa], a
+ ld [hInMenu], a
ld de, GFX_90903
ld hl, VTiles1 tile $6f
lb bc, BANK(GFX_90903), 1
@@ -68131,7 +61165,7 @@ Special_SetDayOfWeek: ; 90913
call Function663
call Functione51
pop af
- ld [$ffaa], a
+ ld [hInMenu], a
ret
; 90993
@@ -68143,7 +61177,7 @@ Function90993: ; 90993
ret
.asm_9099b
- ld hl, $ffa9
+ ld hl, hJoyLast
ld a, [hl]
and D_UP
jr nz, .asm_909ba
@@ -68451,10 +61485,10 @@ Function90b8d: ; 90b8d (24:4b8d)
ld a, [hl]
push af
set NO_TEXT_SCROLL, [hl]
- ld a, [$ffaa]
+ ld a, [hInMenu]
push af
ld a, $1
- ld [$ffaa], a
+ ld [hInMenu], a
ld a, [VramState]
push af
xor a
@@ -68480,7 +61514,7 @@ Function90b8d: ; 90b8d (24:4b8d)
pop af
ld [VramState], a
pop af
- ld [$ffaa], a
+ ld [hInMenu], a
pop af
ld [Options], a
call WhiteBGMap
@@ -68915,7 +61949,7 @@ Function90f2d: ; 90f2d (24:4f2d)
Function90f3e: ; 90f3e (24:4f3e)
call Function90f7b
- ld hl, $ffa9
+ ld hl, hJoyLast
ld a, [hl]
and A_BUTTON + B_BUTTON + START + SELECT
@@ -69030,7 +62064,7 @@ Function90fee: ; 90fee (24:4fee)
ld d, $2e
ld e, $1
Function90ff2: ; 90ff2 (24:4ff2)
- ld hl, $ffa9
+ ld hl, hJoyLast
ld a, [hl]
and B_BUTTON
jr nz, .cancel
@@ -69071,7 +62105,7 @@ Function90ff2: ; 90ff2 (24:4ff2)
ret
Function9102f: ; 9102f (24:502f)
- ld hl, $ffa9
+ ld hl, hJoyLast
ld a, [hl]
and D_UP
jr nz, .up
@@ -69219,7 +62253,7 @@ Function910f9: ; 910f9 (24:50f9)
ret
Function91112: ; 91112 (24:5112)
- ld hl, $ffa9
+ ld hl, hJoyLast
ld a, [hl]
and B_BUTTON
jr nz, .cancel
@@ -69285,7 +62319,7 @@ Function91171: ; 91171 (24:5171)
ld a, [hl]
and A_BUTTON
jr nz, .a
- ld hl, $ffa9
+ ld hl, hJoyLast
ld a, [hl]
and D_LEFT
jr nz, .left
@@ -69361,7 +62395,7 @@ Function911eb: ; 911eb (24:51eb)
ld hl, Options
res NO_TEXT_SCROLL, [hl]
xor a
- ld [$ffaa], a
+ ld [hInMenu], a
ld de, SFX_CALL
call PlaySFX
ld hl, UnknownText_0x9124c
@@ -69380,7 +62414,7 @@ Function911eb: ; 911eb (24:51eb)
ld hl, Options
set NO_TEXT_SCROLL, [hl]
ld a, $1
- ld [$ffaa], a
+ ld [hInMenu], a
call Function912b7
ld hl, wcf63
inc [hl]
@@ -69410,7 +62444,7 @@ OutOfServiceAreaText: ; 0x91251
Function91256: ; 91256 (24:5256)
ld a, [hJoyPressed] ; $ff00+$a7
- and $3
+ and A_BUTTON | B_BUTTON
ret z
callba HangUp
ld a, $8
@@ -69420,7 +62454,7 @@ Function91256: ; 91256 (24:5256)
ret
Function9126d: ; 9126d (24:526d)
- ld hl, $ffa9
+ ld hl, hJoyLast
ld a, [hl]
and D_UP
jr nz, .up
@@ -69599,7 +62633,7 @@ Function91342: ; 91342 (24:5342)
ld h, a
inc de
push hl
- ld bc, $ffd7
+ ld bc, hBGMapAddress + 1
add hl, bc
ld a, [de]
inc de
@@ -69875,10 +62909,10 @@ Function9191c: ; 9191c
ld a, [hl]
push af
set 4, [hl]
- ld a, [$ffaa]
+ ld a, [hInMenu]
push af
ld a, $1
- ld [$ffaa], a
+ ld [hInMenu], a
ld a, [VramState]
push af
xor a
@@ -69935,7 +62969,7 @@ Function9191c: ; 9191c
pop af
ld [VramState], a
pop af
- ld [$ffaa], a
+ ld [hInMenu], a
pop af
ld [Options], a
call WhiteBGMap
@@ -69949,7 +62983,7 @@ Function919b0: ; 919b0
ld a, [hl]
and B_BUTTON
ret nz
- ld hl, $ffa9
+ ld hl, hJoyLast
ld a, [hl]
and D_UP
jr nz, .asm_919d4
@@ -70148,7 +63182,7 @@ _FlyMap: ; 91af3
call WhiteBGMap
call ClearTileMap
call ClearSprites
- ld hl, $ffaa
+ ld hl, hInMenu
ld a, [hl]
push af
ld [hl], $1
@@ -70196,14 +63230,14 @@ _FlyMap: ; 91af3
.exit
ld [DefaultFlypoint], a
pop af
- ld [$ffaa], a
+ ld [hInMenu], a
call WhiteBGMap
ld a, $90
ld [hWY], a
xor a
ld [hBGMapAddress], a
ld a, $98
- ld [$ffd7], a
+ ld [hBGMapAddress + 1], a
ld a, [DefaultFlypoint]
ld e, a
ret
@@ -70214,7 +63248,7 @@ FlyMapScroll: ; 91b73
ld e, a
ld a, [EndFlypoint]
ld d, a
- ld hl, $ffa9
+ ld hl, hJoyLast
ld a, [hl]
and D_UP
jr nz, .ScrollNext
@@ -70564,7 +63598,7 @@ Function91d11: ; 91d11
xor a
ld [hBGMapMode], a
ld a, $1
- ld [$ffaa], a
+ ld [hInMenu], a
ld de, GFX_922d1
ld hl, VTiles0 tile $7f
lb bc, BANK(GFX_922d1), 1
@@ -70595,10 +63629,10 @@ Function91d11: ; 91d11
call Functiona57
ld hl, hJoyPressed
ld a, [hl]
- and $3
+ and A_BUTTON | B_BUTTON
jr nz, .asm_91d8f
ld a, [hJoypadDown]
- and $4
+ and SELECT
jr nz, .asm_91d87
call Function91d9b
call Function91dcd
@@ -70847,7 +63881,7 @@ TownMapBGUpdate: ; 91ee4
ld a, l
ld [hBGMapAddress], a
ld a, h
- ld [$ffd7], a
+ ld [hBGMapAddress + 1], a
; Only update palettes on CGB
ld a, [hCGB]
@@ -71067,7 +64101,7 @@ Function92311: ; 92311
call WhiteBGMap
call ClearTileMap
call ClearSprites
- ld hl, $ffaa
+ ld hl, hInMenu
ld a, [hl]
push af
ld [hl], $1
@@ -71128,21 +64162,21 @@ Function92311: ; 92311
.asm_9239f
ld [DefaultFlypoint], a
pop af
- ld [$ffaa], a
+ ld [hInMenu], a
call WhiteBGMap
ld a, $90
ld [hWY], a
xor a
ld [hBGMapAddress], a
ld a, $98
- ld [$ffd7], a
+ ld [hBGMapAddress + 1], a
ld a, [DefaultFlypoint]
ld e, a
ret
; 923b8
Function923b8: ; 923b8
- ld hl, $ffa9
+ ld hl, hJoyLast
ld a, [hl]
and D_DOWN | D_RIGHT
jr nz, .asm_923c6
@@ -71188,7 +64222,7 @@ Function923b8: ; 923b8
.asm_923f3
ld [hWY], a
ld a, b
- ld [$ffd7], a
+ ld [hBGMapAddress + 1], a
call TownMapBubble
call WaitBGMap
xor a
@@ -75861,8 +68895,8 @@ endr
ld [wcf66], a
.loop
call Functiona57
- ld a, [$ffa9]
- and $1
+ ld a, [hJoyLast]
+ and A_BUTTON
jr nz, .next
ld de, SFX_KINESIS
call PlaySFX
@@ -75915,8 +68949,8 @@ endr
call Functione0489
.betloop
call Functiona57
- ld a, [$ffa9]
- and $1
+ ld a, [hJoyLast]
+ and A_BUTTON
jr nz, .betdone
call Functione089c
call Functione0960
@@ -76203,7 +69237,7 @@ Functione04c1: ; e04c1 (38:44c1)
xor a
ld [hBGMapMode], a ; $ff00+$d4
hlcoord 0, 0
- ld bc, $168
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
ld a, $29
call ByteFill
hlcoord 9, 0
@@ -76894,7 +69928,7 @@ Unknown_e0853: ; e0853
; e089c
Functione089c: ; e089c
- ld hl, $ffa9
+ ld hl, hJoyLast
ld a, [hl]
and D_LEFT
jp nz, Functione08b8
@@ -77270,7 +70304,7 @@ Functione0c37: ; e0c37 (38:4c37)
and a
ret z
hlcoord 0, 0, AttrMap
- ld bc, $168
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
xor a
call ByteFill
hlcoord 12, 1, AttrMap
@@ -77384,10 +70418,10 @@ Unknown_e110c: ; e110c
; e1190
Functione1190: ; e1190
- ld a, [$ffaa]
+ ld a, [hInMenu]
push af
ld a, $1
- ld [$ffaa], a
+ ld [hInMenu], a
call WhiteBGMap
call ClearTileMap
call ClearSprites
@@ -77463,7 +70497,7 @@ Functione1190: ; e1190
.asm_e123d
pop af
- ld [$ffaa], a
+ ld [hInMenu], a
call WhiteBGMap
call ClearTileMap
call ClearSprites
@@ -77566,23 +70600,23 @@ Jumptable_e12d9: ; e12d9
Functione12db: ; e12db
ld a, [hJoyPressed]
- and $8
+ and START
jp nz, Functione13de
ld a, [hJoyPressed]
and A_BUTTON
jp nz, Functione1376
- ld hl, $ffa9
+ ld hl, hJoyLast
ld a, [hl]
- and $40
+ and D_UP
jr nz, .asm_e1301
ld a, [hl]
- and $80
+ and D_DOWN
jr nz, .asm_e130d
ld a, [hl]
- and $20
+ and D_LEFT
jr nz, .asm_e1325
ld a, [hl]
- and $10
+ and D_RIGHT
jr nz, .asm_e1345
ret
@@ -78262,7 +71296,7 @@ Functione1e67: ; e1e67 (38:5e67)
ld [hli], a
ld [hl], $0
hlcoord 0, 0
- ld bc, $168
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
xor a
call ByteFill
xor a
@@ -78855,10 +71889,10 @@ Functione2391: ; e2391 (38:6391)
push af
xor a
ld [VramState], a
- ld a, [$ffaa]
+ ld a, [hInMenu]
push af
ld a, $1
- ld [$ffaa], a
+ ld [hInMenu], a
xor a
ld [$ffde], a
call Functione2963
@@ -78876,7 +71910,7 @@ Functione2391: ; e2391 (38:6391)
.asm_e23c6
call ClearSprites
pop af
- ld [$ffaa], a
+ ld [hInMenu], a
pop af
ld [VramState], a
pop af
@@ -79117,10 +72151,10 @@ Functione2583: ; e2583 (38:6583)
push af
xor a
ld [VramState], a
- ld a, [$ffaa]
+ ld a, [hInMenu]
push af
ld a, $1
- ld [$ffaa], a
+ ld [hInMenu], a
xor a
ld [$ffde], a
call Functione2963
@@ -79138,7 +72172,7 @@ Functione2583: ; e2583 (38:6583)
.asm_e25b9
call ClearSprites
pop af
- ld [$ffaa], a
+ ld [hInMenu], a
pop af
ld [VramState], a
pop af
@@ -79364,10 +72398,10 @@ Functione2759: ; e2759
push af
xor a
ld [VramState], a
- ld a, [$ffaa]
+ ld a, [hInMenu]
push af
ld a, $1
- ld [$ffaa], a
+ ld [hInMenu], a
xor a
ld [$ffde], a
call Functione2963
@@ -79388,7 +72422,7 @@ Functione2759: ; e2759
.asm_e2793
call ClearSprites
pop af
- ld [$ffaa], a
+ ld [hInMenu], a
pop af
ld [VramState], a
pop af
@@ -79698,7 +72732,7 @@ Functione2998: ; e2998 (38:6998)
jp Functione2a65
Functione29b5: ; e29b5 (38:69b5)
- ld hl, $ffa9
+ ld hl, hJoyLast
ld a, [wcb2d]
ld d, a
ld a, [wcb2c]
@@ -79716,7 +72750,7 @@ Functione29b5: ; e29b5 (38:69b5)
; e29d0 (38:69d0)
Functione29d0: ; e29d0
- ld hl, $ffa9
+ ld hl, hJoyLast
ld a, [wcb2d]
ld d, a
ld a, [wcb2c]
@@ -79740,7 +72774,7 @@ Functione29d0: ; e29d0
jr Functione2a65
Functione29f4: ; e29f4
- ld hl, $ffa9
+ ld hl, hJoyLast
ld a, [wcb2d]
ld d, a
ld a, [wcb2c]
@@ -81182,26 +74216,26 @@ PCString_NoReleasingEGGS: db "No releasing EGGS!@"
Functione35aa: ; e35aa (38:75aa)
call Function1d6e
call Functione35e2
-.asm_e35b0
+.loop
xor a
ld [hBGMapMode], a ; $ff00+$d4
call Functione36cf
call Functione379c
- ld hl, MenuDataHeader_0xe35f1
+ ld hl, Functione35aa_menudataheader
call CopyMenuDataHeader
xor a
ld [wd0e4], a
hlcoord 0, 4
- ld bc, $809
+ lb bc, 8, 9
call TextBox
call Function350c
ld a, [wcf73]
cp $2
- jr z, .asm_e35de
+ jr z, .done
call Functione37af
call Functione36f9
- jr .asm_e35b0
-.asm_e35de
+ jr .loop
+.done
call WriteBackup
ret
@@ -81209,37 +74243,37 @@ Functione35e2: ; e35e2 (38:75e2)
xor a
ld [hBGMapMode], a ; $ff00+$d4
hlcoord 0, 0
- ld bc, $168
- ld a, $7f
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ ld a, " "
call ByteFill
ret
; e35f1 (38:75f1)
-MenuDataHeader_0xe35f1: ; 0xe35f1
+Functione35aa_menudataheader: ; 0xe35f1
db $40 ; flags
db 05, 01 ; start coords
db 12, 09 ; end coords
- dw MenuData2_0xe35f9
+ dw .menudata2
db 1 ; default option
; 0xe35f9
-MenuData2_0xe35f9: ; 0xe35f9
+.menudata2: ; 0xe35f9
db $22 ; flags
db 4, 0
db 1
- dbw BANK(Unknown_e3609), Unknown_e3609
- dbw BANK(Functione3619), Functione3619
+ dbw BANK(.boxes), .boxes
+ dbw BANK(.boxnames), .boxnames
dbw BANK(NULL), NULL
dbw BANK(Functione3632), Functione3632
; e3609
-Unknown_e3609: ; e3609
+.boxes: ; e3609
db 14
db 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14
db -1
; e3619
-Functione3619: ; e3619
+.boxnames: ; e3619
push de
ld a, [MenuSelection]
dec a
@@ -81260,15 +74294,15 @@ Functione3626: ; e3626 (38:7626)
Functione3632: ; e3632
hlcoord 11, 7
- ld bc, $0507
+ lb bc, 5, 7
call TextBox
ld a, [MenuSelection]
- cp $ff
+ cp -1
ret z
hlcoord 12, 9
ld de, String_e3663
call PlaceString
- call Functione366c
+ call GetBoxCount
ld [wd265], a
hlcoord 13, 11
ld de, wd265
@@ -81285,21 +74319,21 @@ String_e3663: ; e3663
String_e3668: ; e3668
db "/"
- db "0" + MONS_PER_BOX / 10
- db "0" + MONS_PER_BOX % 10
+ db "0" + MONS_PER_BOX / 10 ; "2"
+ db "0" + MONS_PER_BOX % 10 ; "0"
db "@"
; e366c
-Functione366c: ; e366c (38:766c)
+GetBoxCount: ; e366c (38:766c)
ld a, [wCurBox]
ld c, a
ld a, [MenuSelection]
dec a
cp c
- jr z, .asm_e3697
+ jr z, .activebox
ld c, a
ld b, 0
- ld hl, Unknown_e36a5
+ ld hl, .boxbanks
rept 3
add hl, bc
endr
@@ -81312,15 +74346,17 @@ endr
ld a, [hl]
call CloseSRAM
ld c, a
- ld a, [wd4b4]
+ ld a, [wSavedAtLeastOnce]
and a
- jr z, .asm_e3695
+ jr z, .newfile
ld a, c
ret
-.asm_e3695
+
+.newfile
xor a
ret
-.asm_e3697
+
+.activebox
ld a, BANK(sBoxCount)
ld b, a
call GetSRAMBank
@@ -81330,7 +74366,7 @@ endr
ret
; e36a5 (38:76a5)
-Unknown_e36a5: ; e36a5
+.boxbanks: ; e36a5
dbw BANK(sBox1), sBox1
dbw BANK(sBox2), sBox2
dbw BANK(sBox3), sBox3
@@ -81384,7 +74420,7 @@ Functione36f9: ; e36f9 (38:76f9)
ret
.asm_e3717
- call Functione366c
+ call GetBoxCount
and a
jr z, .asm_e372f
ld e, l
@@ -81507,7 +74543,7 @@ INCBIN "gfx/misc/copyright.2bpp"
; e41d0
_OptionsMenu: ; e41d0
- ld hl, $ffaa
+ ld hl, hInMenu
ld a, [hl]
push af
ld [hl], $1
@@ -81525,7 +74561,7 @@ _OptionsMenu: ; e41d0
.asm_e41f3 ;this next will display the settings of each option when the menu is opened
push bc
xor a
- ld [$ffa9], a
+ ld [hJoyLast], a
call GetOptionPointer
pop bc
ld hl, wcf63
@@ -81544,7 +74580,7 @@ _OptionsMenu: ; e41d0
.asm_e4217
call Functiona57
ld a, [hJoyPressed]
- and $a
+ and START | B_BUTTON
jr nz, .ExitOptions
call OptionsControl
jr c, .asm_e422a
@@ -81562,7 +74598,7 @@ _OptionsMenu: ; e41d0
call PlaySFX
call WaitSFX
pop af
- ld [$ffaa], a
+ ld [hInMenu], a
ret
; e4241
@@ -82027,10 +75063,10 @@ Options_Cancel: ; e4520
OptionsControl: ; e452a
ld hl, wcf63
- ld a, [$ffa9]
- cp $80
+ ld a, [hJoyLast]
+ cp D_DOWN
jr z, .DownPressed
- cp $40
+ cp D_UP
jr z, .UpPressed
and a
ret
@@ -82096,7 +75132,7 @@ Functione4579: ; e4579
call WhiteBGMap
call ClearTileMap
ld a, $98
- ld [$ffd7], a
+ ld [hBGMapAddress + 1], a
xor a
ld [hBGMapAddress], a
ld [hJoyDown], a
@@ -82119,8 +75155,8 @@ Functione4579: ; e4579
call Functione45e8
.asm_e45c0
call Functiona57
- ld a, [$ffa9]
- and $f
+ ld a, [hJoyLast]
+ and BUTTONS
jr nz, .asm_e45de
ld a, [wcf63]
bit 7, a
@@ -82458,17 +75494,17 @@ INCBIN "gfx/splash/logo.1bpp"
CrystalIntro: ; e48ac
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, 5
ld [rSVBK], a
- ld a, [$ffaa]
+ ld a, [hInMenu]
push af
ld a, [hVBlank]
push af
call Functione4901
.loop: ; e48bc
call Functiona57
- ld a, [$ffa9]
- and $f
+ ld a, [hJoyLast]
+ and BUTTONS
jr nz, .ShutOffMusic
ld a, [wcf63]
bit 7, a
@@ -82496,7 +75532,7 @@ CrystalIntro: ; e48ac
pop af
ld [hVBlank], a
pop af
- ld [$ffaa], a
+ ld [hInMenu], a
pop af
ld [rSVBK], a
ret
@@ -82506,7 +75542,7 @@ Functione4901: ; e4901
xor a
ld [hVBlank], a
ld a, $1
- ld [$ffaa], a
+ ld [hInMenu], a
xor a
ld [$ffde], a
ld [wcf63], a
@@ -83991,7 +77027,7 @@ Functione5441: ; e5441 (39:5441)
Functione5451: ; e5451 (39:5451)
hlcoord 0, 0
- ld bc, $168
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
.asm_e5457
ld a, [hl]
and a
@@ -86691,7 +79727,7 @@ Function1040da: ; 1040da
ld a, $3
ld [rSVBK], a
ld de, $d800
- ld a, [$ffd7]
+ ld a, [hBGMapAddress + 1]
ld [rHDMA1], a
ld a, [hBGMapAddress]
ld [rHDMA2], a
@@ -86784,7 +79820,7 @@ Function104177: ; 104177
ld [$ffde], a
ld a, [rSVBK]
push af
- ld a, $6
+ ld a, 6
ld [rSVBK], a
ld a, [rVBK]
push af
@@ -86819,7 +79855,7 @@ Function1041a4: ; 104a14
ret
Function1041ad: ; 1041ad (41:41ad)
- ld a, [$ffd7]
+ ld a, [hBGMapAddress + 1]
ld d, a
ld a, [hBGMapAddress] ; $ff00+$d6
ld e, a
@@ -86827,7 +79863,7 @@ Function1041ad: ; 1041ad (41:41ad)
jr Function104209
Function1041b7: ; 1041b7 (41:41b7)
- ld a, [$ffd7]
+ ld a, [hBGMapAddress + 1]
ld d, a
ld a, [hBGMapAddress] ; $ff00+$d6
ld e, a
@@ -86836,7 +79872,7 @@ Function1041b7: ; 1041b7 (41:41b7)
; 1041c1 (41:41c1)
Function1041c1: ; 1041c1
- ld a, [$ffd7]
+ ld a, [hBGMapAddress + 1]
ld d, a
ld a, [hBGMapAddress]
ld e, a
@@ -86945,7 +79981,7 @@ Function10424e: ; 10424e (41:424e)
ld [rHDMA1], a ; $ff00+$51
ld a, l
ld [rHDMA2], a ; $ff00+$52
- ld a, [$ffd7]
+ ld a, [hBGMapAddress + 1]
and $1f
ld [rHDMA3], a ; $ff00+$53
ld a, [hBGMapAddress] ; $ff00+$d6
@@ -88824,7 +81860,7 @@ Function105153: ; 105153 (41:5153)
call FarCopyBytes
hlcoord 0, 0
ld a, $42
- ld bc, $168
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
call ByteFill
hlcoord 3, 7
ld bc, $90f
@@ -89093,7 +82129,7 @@ Function10578c: ; 10578c (41:578c)
ld hl, sPlayerData + PlayerID - wPlayerData
ld bc, 2
call CopyBytes
- ld hl, sPlayerData + wd84a - wPlayerData
+ ld hl, sPlayerData + wSecretID - wPlayerData
ld bc, 2
call CopyBytes
call CloseSRAM
@@ -89128,7 +82164,7 @@ Function1057d7: ; 1057d7 (41:57d7)
call FarCopyBytes
hlcoord 0, 0
ld a, $3f
- ld bc, $168
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
call ByteFill
hlcoord 3, 7
ld bc, $90f
@@ -91388,14 +84424,14 @@ String_1de23c: ; 1de23c
Function1de247: ; 1de247
ld a, [hBGMapAddress]
ld l, a
- ld a, [$ffd7]
+ ld a, [hBGMapAddress + 1]
ld h, a
push hl
inc hl
ld a, l
ld [hBGMapAddress], a
ld a, h
- ld [$ffd7], a
+ ld [hBGMapAddress + 1], a
hlcoord 19, 0
ld [hl], $66
hlcoord 19, 1
@@ -91414,7 +84450,7 @@ Function1de247: ; 1de247
ld a, l
ld [hBGMapAddress], a
ld a, h
- ld [$ffd7], a
+ ld [hBGMapAddress + 1], a
ret
; 1de27f
diff --git a/maps/BillsHouse.asm b/maps/BillsHouse.asm
index 5c3676070..94e94e877 100644
--- a/maps/BillsHouse.asm
+++ b/maps/BillsHouse.asm
@@ -34,7 +34,7 @@ UnknownScript_0x189553:
yesorno
iffalse UnknownScript_0x1896aa
scall UnknownScript_0x1896a5
- special Function73f7
+ special Special_BillsGrandfather
iffalse UnknownScript_0x1896aa
if_not_equal LICKITUNG, UnknownScript_0x1896c6
scall UnknownScript_0x1896b0
@@ -48,7 +48,7 @@ UnknownScript_0x189592:
yesorno
iffalse UnknownScript_0x1896aa
scall UnknownScript_0x1896a5
- special Function73f7
+ special Special_BillsGrandfather
iffalse UnknownScript_0x1896aa
if_not_equal ODDISH, UnknownScript_0x1896c6
scall UnknownScript_0x1896b0
@@ -62,7 +62,7 @@ UnknownScript_0x1895b3:
yesorno
iffalse UnknownScript_0x1896aa
scall UnknownScript_0x1896a5
- special Function73f7
+ special Special_BillsGrandfather
iffalse UnknownScript_0x1896aa
if_not_equal STARYU, UnknownScript_0x1896c6
scall UnknownScript_0x1896b0
@@ -78,7 +78,7 @@ UnknownScript_0x1895d4:
yesorno
iffalse UnknownScript_0x1896aa
scall UnknownScript_0x1896a5
- special Function73f7
+ special Special_BillsGrandfather
iffalse UnknownScript_0x1896aa
if_not_equal GROWLITHE, UnknownScript_0x1896c6
scall UnknownScript_0x1896b0
@@ -92,7 +92,7 @@ UnknownScript_0x1895f9:
yesorno
iffalse UnknownScript_0x1896aa
scall UnknownScript_0x1896a5
- special Function73f7
+ special Special_BillsGrandfather
iffalse UnknownScript_0x1896aa
if_not_equal VULPIX, UnknownScript_0x1896c6
scall UnknownScript_0x1896b0
@@ -106,7 +106,7 @@ UnknownScript_0x18961a:
yesorno
iffalse UnknownScript_0x1896aa
scall UnknownScript_0x1896a5
- special Function73f7
+ special Special_BillsGrandfather
iffalse UnknownScript_0x1896aa
if_not_equal PICHU, UnknownScript_0x1896c6
scall UnknownScript_0x1896b0
diff --git a/maps/CeladonGameCornerPrizeRoom.asm b/maps/CeladonGameCornerPrizeRoom.asm
index 2b8267f79..effdf3658 100644
--- a/maps/CeladonGameCornerPrizeRoom.asm
+++ b/maps/CeladonGameCornerPrizeRoom.asm
@@ -17,82 +17,82 @@ MapCeladonGameCornerPrizeRoomSignpost0Script:
writetext UnknownText_0x7293e
closetext
checkitem COIN_CASE
- iffalse UnknownScript_0x7278a
+ iffalse CeladonPrizeRoom_NoCoinCase
writetext UnknownText_0x72974
-UnknownScript_0x726fd:
- special Function24b25
+CeladonPrizeRoom_tmcounterloop:
+ special Special_DisplayCoinCaseBalance
loadmenudata MenuDataHeader_0x72790
interpretmenu2
writebackup
- if_equal $1, UnknownScript_0x72714
- if_equal $2, UnknownScript_0x72730
- if_equal $3, UnknownScript_0x7274c
- jump UnknownScript_0x72784
+ if_equal $1, .doubleteam
+ if_equal $2, .psychic
+ if_equal $3, .hyperbeam
+ jump CeladonPrizeRoom_cancel
-UnknownScript_0x72714:
+.doubleteam:
checkcoins 1500
- if_equal $2, UnknownScript_0x72778
+ if_equal $2, CeladonPrizeRoom_notenoughcoins
itemtotext TM_DOUBLE_TEAM, $0
- scall UnknownScript_0x72768
- iffalse UnknownScript_0x72784
- giveitem TM_DOUBLE_TEAM, $1
- iffalse UnknownScript_0x7277e
+ scall CeladonPrizeRoom_askbuy
+ iffalse CeladonPrizeRoom_cancel
+ giveitem TM_DOUBLE_TEAM, 1
+ iffalse CeladonPrizeRoom_notenoughroom
takecoins 1500
- jump UnknownScript_0x7276d
+ jump CeladonPrizeRoom_purchased
-UnknownScript_0x72730:
+.psychic:
checkcoins 3500
- if_equal $2, UnknownScript_0x72778
+ if_equal $2, CeladonPrizeRoom_notenoughcoins
itemtotext TM_PSYCHIC, $0
- scall UnknownScript_0x72768
- iffalse UnknownScript_0x72784
- giveitem TM_PSYCHIC, $1
- iffalse UnknownScript_0x7277e
+ scall CeladonPrizeRoom_askbuy
+ iffalse CeladonPrizeRoom_cancel
+ giveitem TM_PSYCHIC, 1
+ iffalse CeladonPrizeRoom_notenoughroom
takecoins 3500
- jump UnknownScript_0x7276d
+ jump CeladonPrizeRoom_purchased
-UnknownScript_0x7274c:
+.hyperbeam:
checkcoins 7500
- if_equal $2, UnknownScript_0x72778
+ if_equal $2, CeladonPrizeRoom_notenoughcoins
itemtotext TM_HYPER_BEAM, $0
- scall UnknownScript_0x72768
- iffalse UnknownScript_0x72784
- giveitem TM_HYPER_BEAM, $1
- iffalse UnknownScript_0x7277e
+ scall CeladonPrizeRoom_askbuy
+ iffalse CeladonPrizeRoom_cancel
+ giveitem TM_HYPER_BEAM, 1
+ iffalse CeladonPrizeRoom_notenoughroom
takecoins 7500
- jump UnknownScript_0x7276d
+ jump CeladonPrizeRoom_purchased
-UnknownScript_0x72768:
+CeladonPrizeRoom_askbuy:
writetext UnknownText_0x72991
yesorno
end
-UnknownScript_0x7276d:
+CeladonPrizeRoom_purchased:
waitbutton
playsound SFX_TRANSACTION
writetext UnknownText_0x729ad
closetext
- jump UnknownScript_0x726fd
+ jump CeladonPrizeRoom_tmcounterloop
-UnknownScript_0x72778:
+CeladonPrizeRoom_notenoughcoins:
writetext UnknownText_0x729bb
closetext
loadmovesprites
end
-UnknownScript_0x7277e:
+CeladonPrizeRoom_notenoughroom:
writetext UnknownText_0x729d8
closetext
loadmovesprites
end
-UnknownScript_0x72784:
+CeladonPrizeRoom_cancel:
writetext UnknownText_0x729f2
closetext
loadmovesprites
end
-UnknownScript_0x7278a:
+CeladonPrizeRoom_NoCoinCase:
writetext UnknownText_0x72a14
closetext
loadmovesprites
@@ -121,26 +121,26 @@ MapCeladonGameCornerPrizeRoomSignpost1Script:
writetext UnknownText_0x7293e
closetext
checkitem COIN_CASE
- iffalse UnknownScript_0x7278a
-UnknownScript_0x727d3:
+ iffalse CeladonPrizeRoom_NoCoinCase
+.loop:
writetext UnknownText_0x72974
- special Function24b25
+ special Special_DisplayCoinCaseBalance
loadmenudata MenuDataHeader_0x72877
interpretmenu2
writebackup
- if_equal $1, UnknownScript_0x727ed
- if_equal $2, UnknownScript_0x7281b
- if_equal $3, UnknownScript_0x72849
- jump UnknownScript_0x72784
+ if_equal $1, .pikachu
+ if_equal $2, .porygon
+ if_equal $3, .larvitar
+ jump CeladonPrizeRoom_cancel
-UnknownScript_0x727ed:
+.pikachu:
checkcoins 2222
- if_equal $2, UnknownScript_0x72778
+ if_equal $2, CeladonPrizeRoom_notenoughcoins
checkcode VAR_PARTYCOUNT
- if_equal $6, UnknownScript_0x7277e
+ if_equal $6, CeladonPrizeRoom_notenoughroom
pokenamemem PIKACHU, $0
- scall UnknownScript_0x72768
- iffalse UnknownScript_0x72784
+ scall CeladonPrizeRoom_askbuy
+ iffalse CeladonPrizeRoom_cancel
waitbutton
playsound SFX_TRANSACTION
writetext UnknownText_0x729ad
@@ -149,16 +149,16 @@ UnknownScript_0x727ed:
special Special_GameCornerPrizeMonCheckDex
givepoke PIKACHU, 25
takecoins 2222
- jump UnknownScript_0x727d3
+ jump .loop
-UnknownScript_0x7281b:
+.porygon:
checkcoins 5555
- if_equal $2, UnknownScript_0x72778
+ if_equal $2, CeladonPrizeRoom_notenoughcoins
checkcode VAR_PARTYCOUNT
- if_equal $6, UnknownScript_0x7277e
+ if_equal $6, CeladonPrizeRoom_notenoughroom
pokenamemem PORYGON, $0
- scall UnknownScript_0x72768
- iffalse UnknownScript_0x72784
+ scall CeladonPrizeRoom_askbuy
+ iffalse CeladonPrizeRoom_cancel
waitbutton
playsound SFX_TRANSACTION
writetext UnknownText_0x729ad
@@ -167,16 +167,16 @@ UnknownScript_0x7281b:
special Special_GameCornerPrizeMonCheckDex
givepoke PORYGON, 15
takecoins 5555
- jump UnknownScript_0x727d3
+ jump .loop
-UnknownScript_0x72849:
+.larvitar:
checkcoins 8888
- if_equal $2, UnknownScript_0x72778
+ if_equal $2, CeladonPrizeRoom_notenoughcoins
checkcode VAR_PARTYCOUNT
- if_equal $6, UnknownScript_0x7277e
+ if_equal $6, CeladonPrizeRoom_notenoughroom
pokenamemem LARVITAR, $0
- scall UnknownScript_0x72768
- iffalse UnknownScript_0x72784
+ scall CeladonPrizeRoom_askbuy
+ iffalse CeladonPrizeRoom_cancel
waitbutton
playsound SFX_TRANSACTION
writetext UnknownText_0x729ad
@@ -185,7 +185,7 @@ UnknownScript_0x72849:
special Special_GameCornerPrizeMonCheckDex
givepoke LARVITAR, 40
takecoins 8888
- jump UnknownScript_0x727d3
+ jump .loop
MenuDataHeader_0x72877:
diff --git a/maps/GoldenrodCity.asm b/maps/GoldenrodCity.asm
index 36c41f244..9bae61fc8 100644
--- a/maps/GoldenrodCity.asm
+++ b/maps/GoldenrodCity.asm
@@ -43,7 +43,7 @@ MoveTutor:
writetext UnknownText_0x199042
yesorno
iffalse .Refused
- special Function24b25
+ special Special_DisplayCoinCaseBalance
writetext UnknownText_0x199090
yesorno
iffalse .Refused2
@@ -114,7 +114,7 @@ MoveTutor:
takecoins 4000
waitbutton
playsound SFX_TRANSACTION
- special Function24b25
+ special Special_DisplayCoinCaseBalance
writetext UnknownText_0x19918b
closetext
loadmovesprites
diff --git a/maps/GoldenrodGameCorner.asm b/maps/GoldenrodGameCorner.asm
index 0d97236b5..95c366828 100644
--- a/maps/GoldenrodGameCorner.asm
+++ b/maps/GoldenrodGameCorner.asm
@@ -49,7 +49,7 @@ ReceptionistScript_0x56c28:
iffalse UnknownScript_0x56cc3
writetext UnknownText_0x56e8b
UnknownScript_0x56c36: ; 056c36
- special Function24b25
+ special Special_DisplayCoinCaseBalance
loadmenudata MenuDataHeader_0x56cc9
interpretmenu2
writebackup
@@ -153,7 +153,7 @@ ReceptionistScript_0x56d01:
iffalse UnknownScript_0x56cc3
UnknownScript_0x56d0c:
writetext UnknownText_0x56e8b
- special Function24b25
+ special Special_DisplayCoinCaseBalance
loadmenudata MenuDataHeader_0x56db0
interpretmenu2
writebackup
diff --git a/maps/KurtsHouse.asm b/maps/KurtsHouse.asm
index 7a77031c0..a2c73fb46 100644
--- a/maps/KurtsHouse.asm
+++ b/maps/KurtsHouse.asm
@@ -127,7 +127,7 @@ KurtScript_0x18e178:
writetext UnknownText_0x18e736
keeptextopen
setevent EVENT_DRAGON_SHRINE_QUESTION_2
- special Function88018
+ special Special_SelectApricornForKurt
if_equal $0, .Cancel
if_equal BLU_APRICORN, .Blu
if_equal YLW_APRICORN, .Ylw
diff --git a/maps/RadioTower1F.asm b/maps/RadioTower1F.asm
index 04a6cc907..de1167f9d 100644
--- a/maps/RadioTower1F.asm
+++ b/maps/RadioTower1F.asm
@@ -30,7 +30,7 @@ GentlemanScript_0x5cd3d:
iffalse .skip
special Special_ResetLuckyNumberShowFlag
.skip:
- special Function4d9d3
+ special Special_PrintTodaysLuckyNumber
checkflag ENGINE_LUCKY_NUMBER_SHOW
iftrue .GameOver
writetext UnknownText_0x5cf3a
diff --git a/maps/Route34.asm b/maps/Route34.asm
index c1706109d..1294920bb 100644
--- a/maps/Route34.asm
+++ b/maps/Route34.asm
@@ -65,13 +65,13 @@ UnknownScript_0x7805b:
DaycareMon1Script_0x78065:
loadfont
- special Function17421
+ special Special_DayCareMon1
loadmovesprites
end
DaycareMon2Script_0x7806b:
loadfont
- special Function17440
+ special Special_DayCareMon2
loadmovesprites
end
diff --git a/misc/crystal_misc.asm b/misc/crystal_misc.asm
index ac0800a85..4fe1476ff 100644
--- a/misc/crystal_misc.asm
+++ b/misc/crystal_misc.asm
@@ -151,13 +151,13 @@ Function17a770: ; 17a770 (5e:6770)
ret
Function17a781: ; 17a781 (5e:6781)
- ld a, [$ffaa]
+ ld a, [hInMenu]
push af
ld a, $1
- ld [$ffaa], a
+ ld [hInMenu], a
call Functiona57
pop af
- ld [$ffaa], a
+ ld [hInMenu], a
ret
Function17a78f: ; 17a78f (5e:678f)
@@ -261,7 +261,7 @@ Function17a81a: ; 17a81a (5e:681a)
ret
Function17a83c: ; 17a83c (5e:683c)
- ld a, [$ffa9]
+ ld a, [hJoyLast]
and $f0
ld c, a
ld a, [hJoyPressed] ; $ff00+$a7
diff --git a/misc/mobile_22.asm b/misc/mobile_22.asm
new file mode 100644
index 000000000..3dcb595f0
--- /dev/null
+++ b/misc/mobile_22.asm
@@ -0,0 +1,4435 @@
+
+String_8911c: ; 8911c
+ db "でんわばんごうが ただしく" ; Phone number is not
+ next "はいって いません!@" ; entered correctly!
+; 89135
+
+String_89135: ; 89135
+ db "データが かわって いますが" ; The data has changed.
+ next "かきかえないで やめますか?@" ; Quit anyway?
+; 89153
+
+String_89153: ; 89153
+ db "メッセージは ありません@" ; No message
+; 89160
+
+OpenSRAMBank4: ; 89160
+ push af
+ ld a, $4
+ call GetSRAMBank
+ pop af
+ ret
+; 89168
+
+
+Function89168: ; 89168 (22:5168)
+ ld hl, GameTimerPause
+ set 7, [hl]
+ ret
+
+Function8916e: ; 8916e (22:516e)
+ ld hl, GameTimerPause
+ res 7, [hl]
+ ret
+
+Function89174: ; 89174 (22:5174)
+ ld hl, GameTimerPause
+ bit 7, [hl]
+ ret
+
+Function8917a: ; 8917a (22:517a)
+ ld hl, DefaultFlypoint
+ ld bc, $32
+ xor a
+ call ByteFill
+ ret
+
+Function89185: ; 89185 (22:5185)
+; Compares c bytes starting at de and hl and incrementing together until a match is found.
+ push de
+ push hl
+.loop
+ ld a, [de]
+ inc de
+ cp [hl]
+ jr nz, .done
+ inc hl
+ dec c
+ jr nz, .loop
+.done
+ pop hl
+ pop de
+ ret
+
+Function89193: ; 89193
+; Copies c bytes from hl to de.
+ push de
+ push hl
+.loop
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .loop
+ pop hl
+ pop de
+ ret
+; 8919e
+
+
+Function8919e: ; 8919e (22:519e)
+; Searches for the c'th string starting at de. Returns the pointer in de.
+ ld a, c
+ and a
+ ret z
+.loop
+ ld a, [de]
+ inc de
+ cp "@"
+ jr nz, .loop
+ dec c
+ jr nz, .loop
+ ret
+
+Function891ab: ; 891ab
+ call Function89240
+ callba Function104061
+ call Function8923c
+ ret
+; 891b8
+
+Function891b8: ; 891b8
+ call Function8923c
+ hlcoord 0, 0
+ ld a, " "
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ call ByteFill
+ call DelayFrame
+ ret
+; 891ca
+
+
+Function891ca: ; 891ca (22:51ca)
+ push bc
+ call Function891b8
+ call WaitBGMap
+ pop bc
+ ret
+
+Function891d3: ; 891d3 (22:51d3)
+ push bc
+ call Function891ca
+ ld c, $10
+ call DelayFrames
+ pop bc
+ ret
+
+Function891de: ; 891de
+ call Function8923c
+ call ClearPalettes
+ hlcoord 0, 0, AttrMap
+ ld a, $7
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ call ByteFill
+ hlcoord 0, 0
+ ld a, " "
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ call ByteFill
+ call Function891ab
+ ret
+; 891fe
+
+Function891fe: ; 891fe
+ push bc
+ call Function891de
+ ld c, $10
+ call DelayFrames
+ pop bc
+ ret
+; 89209
+
+Function89209: ; 89209
+ ld a, 1
+ ld [wc2ce], a
+ ret
+; 8920f
+
+Function8920f: ; 8920f
+ ld a, 0
+ ld [wc2ce], a
+ ret
+; 89215
+
+Function89215: ; 89215
+ push hl
+ push bc
+ ld bc, AttrMap - TileMap
+ add hl, bc
+ ld [hl], a
+ pop bc
+ pop hl
+ ret
+; 8921f
+
+
+Function8921f: ; 8921f (22:521f)
+ push de
+ ld de, SCREEN_WIDTH
+ add hl, de
+ inc hl
+ ld a, $7f
+.loop
+ push bc
+ push hl
+.asm_89229
+ ld [hli], a
+ dec c
+ jr nz, .asm_89229
+ pop hl
+ add hl, de
+ pop bc
+ dec b
+ jr nz, .loop
+ pop de
+ ret
+
+Function89235: ; 89235 (22:5235)
+ call Functiona36
+ call PlayClickSFX
+ ret
+
+Function8923c: ; 8923c
+ xor a
+ ld [hBGMapMode], a
+ ret
+; 89240
+
+Function89240: ; 89240
+ ld a, $1
+ ld [hBGMapMode], a
+ ret
+; 89245
+
+
+Function89245: ; 89245 (22:5245)
+ callba TryLoadSaveFile
+ ret c
+ callba Function150b9
+ and a
+ ret
+
+Function89254: ; 89254 (22:5254)
+ ld bc, $d07
+ jr Function89261
+
+Function89259: ; 89259
+ ld bc, $0e07
+ jr Function89261
+
+Function8925e: ; 8925e
+ ld bc, $0e0c
+
+Function89261: ; 89261
+ push af
+ push bc
+ ld hl, MenuDataHeader_0x892a3
+ call CopyMenuDataHeader
+ pop bc
+ ld hl, wcf82
+ ld a, c
+ ld [hli], a
+ ld a, b
+ ld [hli], a
+ ld a, c
+ add $4
+ ld [hli], a
+ ld a, b
+ add $5
+ ld [hl], a
+ pop af
+ ld [wcf88], a
+ call Function1c00
+ call Function8923c
+ call Function89209
+ call InterpretMenu2
+ push af
+ ld c, $a
+ call DelayFrames
+ call WriteBackup
+ call Function8920f
+ pop af
+ jr c, .done
+ ld a, [wcfa9]
+ cp $2
+ jr z, .done
+ and a
+ ret
+
+.done
+ scf
+ ret
+; 892a3
+
+MenuDataHeader_0x892a3: ; 0x892a3
+ db $40 ; flags
+ db 05, 10 ; start coords
+ db 09, 15 ; end coords
+ dw MenuData2_0x892ab
+ db 1 ; default option
+; 0x892ab
+
+MenuData2_0x892ab: ; 0x892ab
+ db $c0 ; flags
+ db 2 ; items
+ db "はい@"
+ db "いいえ@"
+; 0x892b4
+
+Function892b4: ; 892b4 (22:52b4)
+ call Function8931b
+
+Function892b7: ; 892b7
+ ld d, b
+ ld e, c
+ ld hl, 0
+ add hl, bc
+ ld a, "@"
+ ld bc, 6
+ call ByteFill
+ ld b, d
+ ld c, e
+ ld hl, 6
+ add hl, bc
+ ld a, "@"
+ ld bc, 6
+ call ByteFill
+ ld b, d
+ ld c, e
+ ld hl, 12
+ add hl, bc
+ xor a
+ ld [hli], a
+ ld [hl], a
+ ld hl, 14
+ add hl, bc
+ ld [hli], a
+ ld [hl], a
+ ld hl, 16
+ add hl, bc
+ ld [hl], a
+ ld hl, 17
+ add hl, bc
+ ld a, -1
+ ld bc, 8
+ call ByteFill
+ ld b, d
+ ld c, e
+ ld e, 6
+ ld hl, 25
+ add hl, bc
+.loop
+ ld a, -1
+ ld [hli], a
+ ld a, -1
+ ld [hli], a
+ dec e
+ jr nz, .loop
+ ret
+; 89305
+
+
+Function89305: ; 89305 (22:5305)
+ xor a
+ ld [MenuSelection], a
+ ld c, 40
+.loop
+ ld a, [MenuSelection]
+ inc a
+ ld [MenuSelection], a
+ push bc
+ call Function892b4
+ pop bc
+ dec c
+ jr nz, .loop
+ ret
+
+Function8931b: ; 8931b
+ push hl
+ ld hl, $a03b
+ ld a, [MenuSelection]
+ dec a
+ ld bc, $0025
+ call AddNTimes
+ ld b, h
+ ld c, l
+ pop hl
+ ret
+; 8932d
+
+Function8932d: ; 8932d
+ ld hl, 0
+ add hl, bc
+
+Function89331: ; 89331
+; Scans up to 5 characters starting at hl, looking for a nonspace character up to the next terminator. Sets carry if it does not find a nonspace character. Returns the location of the following character in hl.
+ push bc
+ ld c, 5
+.loop
+ ld a, [hli]
+ cp "@"
+ jr z, .terminator
+ cp " "
+ jr nz, .nonspace
+ dec c
+ jr nz, .loop
+
+.terminator
+ scf
+ jr .done
+
+.nonspace
+ and a
+
+.done
+ pop bc
+ ret
+; 89346
+
+
+Function89346: ; 89346 (22:5346)
+ ld h, b
+ ld l, c
+ jr _incave
+
+Function8934a: ; 8934a
+ ld hl, 6
+ add hl, bc
+_incave:
+; Scans up to 5 characters starting at hl, looking for a nonspace character up to the next terminator. Sets carry if it does not find a nonspace character. Returns the location of the following character in hl.
+ push bc
+ ld c, 5
+.loop
+ ld a, [hli]
+ cp "@"
+ jr z, .terminator
+ cp " "
+ jr nz, .nonspace
+ dec c
+ jr nz, .loop
+
+.terminator
+ scf
+ jr .done
+
+.nonspace
+ and a
+
+.done
+ pop bc
+ ret
+; 89363
+
+Function89363: ; 89363
+; Scans six byte pairs starting at bc to find $ff. Sets carry if it does not find a $ff. Returns the location of the byte after the first $ff found in hl.
+ ld h, b
+ ld l, c
+ jr ._incave
+
+ ld hl, 25
+ add hl, bc
+
+._incave
+ push de
+ ld e, 6
+.loop
+ ld a, [hli]
+ cp -1
+ jr nz, .ok
+ ld a, [hli]
+ cp -1
+ jr nz, .ok
+ dec e
+ jr nz, .loop
+ scf
+ jr .done
+
+.ok
+ and a
+
+.done
+ pop de
+ ret
+; 89381
+
+Function89381: ; 89381
+ push bc
+ push de
+ call Function89b45
+ jr c, .ok
+ push hl
+ ld a, -1
+ ld bc, 8
+ call ByteFill
+ pop hl
+
+.ok
+ pop de
+ ld c, 8
+ call Function89193
+ pop bc
+ ret
+; 8939a
+
+Function8939a: ; 8939a
+ push bc
+ ld hl, 0
+ add hl, bc
+ ld de, DefaultFlypoint
+ ld c, 6
+ call Function89193
+ pop bc
+ ld hl, 17
+ add hl, bc
+ ld de, wd008
+ call Function89381
+ ret
+; 893b3
+
+
+Function893b3: ; 893b3 (22:53b3)
+ call DisableLCD
+ call ClearSprites
+ call Functione51
+ call Functione5f
+ call Function893ef
+ call Function8942b
+ call Function89455
+ call EnableLCD
+ ret
+
+Function893cc: ; 893cc
+ call DisableLCD
+ call ClearSprites
+ call Functione51
+ call Functione5f
+ call Function893ef
+ call Function89464
+ call EnableLCD
+ ret
+; 893e2
+
+
+Function893e2: ; 893e2 (22:53e2)
+ call Function89b1e
+ call Function893b3
+ call Function8a5b6
+ call Function8949c
+ ret
+
+Function893ef: ; 893ef
+ ld de, VTiles0
+ ld hl, GFX_8940b
+ ld bc, $20
+ ld a, BANK(GFX_8940b)
+ call FarCopyBytes
+ ret
+; 893fe
+
+Function893fe: ; 893fe
+ call DisableLCD
+ call Function893ef
+ call EnableLCD
+ call DelayFrame
+ ret
+; 8940b
+
+GFX_8940b: ; 8940b
+INCBIN "gfx/unknown/08940b.2bpp"
+; 8942b
+
+Function8942b: ; 8942b (22:542b)
+ ld de, VTiles0 tile $02
+ ld hl, MobileAdapterGFX + $7d0
+ ld bc, $80
+ ld a, BANK(MobileAdapterGFX)
+ call FarCopyBytes
+ ld de, VTiles0 tile $0a
+ ld hl, MobileAdapterGFX + $c60
+ ld bc, $40
+ ld a, BANK(MobileAdapterGFX)
+ call FarCopyBytes
+ ret
+
+Function89448: ; 89448 (22:5448)
+; Clears the Sprites array
+ push af
+ ld hl, Sprites
+ ld d, $10 * 6
+ xor a
+.loop
+ ld [hli], a
+ dec d
+ jr nz, .loop
+ pop af
+ ret
+
+Function89455: ; 89455 (22:5455)
+ ld hl, MobileAdapterGFX + $7d0
+ ld de, VTiles2 tile $0c
+ ld bc, $490
+ ld a, BANK(MobileAdapterGFX)
+ call FarCopyBytes
+ ret
+
+Function89464: ; 89464
+ ld hl, MobileAdapterGFX
+ ld de, VTiles2
+ ld bc, $200
+ ld a, BANK(MobileAdapterGFX)
+ call FarCopyBytes
+ ld hl, MobileAdapterGFX + $660
+ ld de, VTiles2 tile $20
+ ld bc, $170
+ ld a, BANK(MobileAdapterGFX)
+ call FarCopyBytes
+ ret
+; 89481
+
+Function89481: ; 89481
+ ld d, 2
+ call Function8934a
+ ret c
+ ld d, 0
+ ld hl, 16
+ add hl, bc
+ bit 0, [hl]
+ ret z
+ inc d
+ ret
+; 89492
+
+
+Function89492: ; 89492 (22:5492)
+ ld d, 0
+ ld a, [PlayerGender]
+ bit 0, a
+ ret z
+ inc d
+ ret
+
+Function8949c: ; 8949c
+ ld a, [rSVBK]
+ push af
+ ld a, 5
+ ld [rSVBK], a
+ ld hl, Palette_894b3
+ ld de, Unkn1Pals + 8 * 7
+ ld bc, 8
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ ret
+; 894b3
+
+Palette_894b3: ; 894b3
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+; 894bb
+
+Function894bb: ; 894bb
+ call Function894dc
+ push bc
+ call Function8956f
+ call Function8949c
+ call Function8a60d
+ pop bc
+ ret
+; 894ca
+
+
+Function894ca: ; 894ca (22:54ca)
+ push bc
+ call Function894dc
+ call Function895c7
+ call Function8949c
+ call Function8a60d
+ call Function32f9
+ pop bc
+ ret
+
+Function894dc: ; 894dc
+ push bc
+ ld a, [rSVBK]
+ push af
+ ld a, 5
+ ld [rSVBK], a
+ ld c, d
+ ld b, 0
+ ld hl, Unknown_89509
+rept 2
+ add hl, bc
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, Unkn1Pals
+ ld bc, 24
+ call CopyBytes
+ ld hl, Palette_89557
+ ld de, wd018
+ ld bc, 24
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ pop bc
+ ret
+; 89509
+
+Unknown_89509: ; 89509
+ dw Palette_8950f
+ dw Palette_89527
+ dw Palette_8953f
+; 8950f
+
+Palette_8950f: ; 8950f
+ RGB 31, 31, 31
+ RGB 10, 17, 13
+ RGB 10, 08, 22
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 16, 20, 31
+ RGB 10, 08, 22
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 16, 20, 31
+ RGB 10, 17, 13
+ RGB 00, 00, 00
+
+Palette_89527: ; 89527
+ RGB 31, 31, 31
+ RGB 30, 22, 11
+ RGB 31, 08, 15
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 16, 20, 31
+ RGB 31, 08, 15
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 16, 20, 31
+ RGB 30, 22, 11
+ RGB 00, 00, 00
+
+Palette_8953f: ; 8953f
+ RGB 31, 31, 31
+ RGB 15, 20, 26
+ RGB 25, 07, 20
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 16, 20, 31
+ RGB 25, 07, 20
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 16, 20, 31
+ RGB 15, 20, 26
+ RGB 00, 00, 00
+
+Palette_89557: ; 89557
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 13, 00
+ RGB 14, 08, 00
+
+ RGB 31, 31, 31
+ RGB 16, 16, 31
+ RGB 00, 00, 31
+ RGB 00, 00, 00
+
+ RGB 19, 31, 11
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+; 8956f
+
+Function8956f: ; 8956f
+ push bc
+ ld hl, 16
+ add hl, bc
+ ld d, h
+ ld e, l
+ ld hl, $000c
+ add hl, bc
+ ld b, h
+ ld c, l
+ callba Function4e929
+ ld a, c
+ ld [TrainerClass], a
+ ld a, [rSVBK]
+ push af
+ ld a, 5
+ ld [rSVBK], a
+ ld hl, wd030
+ ld a, -1
+ ld [hli], a
+ ld a, " "
+ ld [hl], a
+ pop af
+ ld [rSVBK], a
+ ld a, [TrainerClass]
+ ld h, 0
+ ld l, a
+rept 2
+ add hl, hl
+endr
+ ld de, TrainerPalettes
+ add hl, de
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld de, wd032
+ ld c, 4
+.loop
+ ld a, BANK(TrainerPalettes)
+ call GetFarByte
+ ld [de], a
+ inc de
+ inc hl
+ dec c
+ jr nz, .loop
+ ld hl, wd036
+ xor a
+ ld [hli], a
+ ld [hl], a
+ pop af
+ ld [rSVBK], a
+ pop bc
+ ret
+; 895c7
+
+
+Function895c7: ; 895c7 (22:55c7)
+ ld a, [rSVBK] ; $ff00+$70
+ push af
+ ld a, 5
+ ld [rSVBK], a ; $ff00+$70
+ ld hl, Palette_895de
+ ld de, wd030
+ ld bc, 8
+ call CopyBytes
+ pop af
+ ld [rSVBK], a ; $ff00+$70
+ ret
+; 895de (22:55de)
+
+Palette_895de: ; 895de
+ RGB 31, 31, 31
+ RGB 07, 07, 06
+ RGB 07, 07, 06
+ RGB 00, 00, 00
+; 895e6
+
+Function895e6: ; 895e6
+ ld a, 7
+ hlcoord 0, 0, AttrMap
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ call ByteFill
+ ret
+; 895f2
+
+Function895f2: ; 895f2
+ push bc
+ xor a
+ hlcoord 0, 0, AttrMap
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ call ByteFill
+ call Function89605
+ call Function89655
+ pop bc
+ ret
+; 89605
+
+Function89605: ; 89605
+ hlcoord 19, 2, AttrMap
+ ld a, 1
+ ld de, SCREEN_WIDTH
+ ld c, 14
+.loop
+ ld [hl], a
+ dec c
+ jr z, .done
+ add hl, de
+ inc a
+ ld [hl], a
+ dec a
+ add hl, de
+ dec c
+ jr nz, .loop
+
+.done
+ hlcoord 0, 16, AttrMap
+ ld c, 10
+ ld a, 2
+.loop2
+ ld [hli], a
+ dec a
+ ld [hli], a
+ inc a
+ dec c
+ jr nz, .loop2
+ hlcoord 1, 11, AttrMap
+ ld a, 4
+ ld bc, 4
+ call ByteFill
+ ld a, 5
+ ld bc, 14
+ call ByteFill
+ ret
+; 8963d
+
+Function8963d: ; 8963d
+ hlcoord 12, 3, AttrMap
+ ld a, 6
+ ld de, SCREEN_WIDTH
+ lb bc, 7, 7
+.loop
+ push hl
+ ld c, 7
+.next
+ ld [hli], a
+ dec c
+ jr nz, .next
+ pop hl
+ add hl, de
+ dec b
+ jr nz, .loop
+ ret
+; 89655
+
+Function89655: ; 89655
+ hlcoord 1, 12, AttrMap
+ ld de, SCREEN_WIDTH
+ ld a, 5
+ ld b, 4
+.loop
+ ld c, 18
+ push hl
+.next
+ ld [hli], a
+ dec c
+ jr nz, .next
+ pop hl
+ add hl, de
+ dec b
+ jr nz, .loop
+ ret
+; 8966c
+
+Function8966c: ; 8966c
+ push bc
+ call Function89688
+ hlcoord 4, 0
+ ld c, 8
+ call Function896f5
+ pop bc
+ ret
+; 8967a
+
+
+Function8967a: ; 8967a (22:567a)
+ push bc
+ call Function89688
+ hlcoord 2, 0
+ ld c, 12
+ call Function896f5
+ pop bc
+ ret
+
+Function89688: ; 89688
+ hlcoord 0, 0
+ ld a, 1
+ ld e, SCREEN_WIDTH
+ call Function896e1
+ ld a, 2
+ ld e, SCREEN_WIDTH
+ call Function896eb
+ ld a, 3
+ ld [hli], a
+ ld a, 4
+ ld e, SCREEN_HEIGHT
+ call Function896e1
+ ld a, 6
+ ld [hli], a
+ push bc
+ ld c, 13
+.loop
+ call Function896cb
+ dec c
+ jr z, .done
+ call Function896d6
+ dec c
+ jr nz, .loop
+
+.done
+ pop bc
+ ld a, 25
+ ld [hli], a
+ ld a, 26
+ ld e, SCREEN_HEIGHT
+ call Function896e1
+ ld a, 28
+ ld [hli], a
+ ld a, 2
+ ld e, SCREEN_WIDTH
+ call Function896eb
+ ret
+; 896cb
+
+Function896cb: ; 896cb
+ ld de, SCREEN_WIDTH - 1
+ ld a, 7
+ ld [hl], a
+ add hl, de
+ ld a, 9
+ ld [hli], a
+ ret
+; 896d6
+
+Function896d6: ; 896d6
+ ld de, SCREEN_WIDTH - 1
+ ld a, 10
+ ld [hl], a
+ add hl, de
+ ld a, 11
+ ld [hli], a
+ ret
+; 896e1
+
+Function896e1: ; 896e1
+.loop
+ ld [hli], a
+ inc a
+ dec e
+ ret z
+ ld [hli], a
+ dec a
+ dec e
+ jr nz, .loop
+ ret
+; 896eb
+
+Function896eb: ; 896eb
+.loop
+ ld [hli], a
+ dec a
+ dec e
+ ret z
+ ld [hli], a
+ inc a
+ dec e
+ jr nz, .loop
+ ret
+; 896f5
+
+Function896f5: ; 896f5
+ call Function8971f
+ call Function89736
+rept 2
+ inc hl
+endr
+ ld b, 2
+
+ClearScreenArea: ; 0x896ff
+; clears an area of the screen
+; INPUT:
+; hl = address of upper left corner of the area
+; b = height
+; c = width
+
+ ld a, " " ; blank tile
+ ld de, 20 ; screen width
+.loop
+ push bc
+ push hl
+.innerLoop
+ ld [hli], a
+ dec c
+ jr nz, .innerLoop
+ pop hl
+ pop bc
+ add hl, de
+ dec b
+ jr nz, .loop
+
+ dec hl
+rept 2
+ inc c
+endr
+.asm_89713
+ ld a, $36
+ ld [hli], a
+ dec c
+ ret z
+ ld a, $18
+ ld [hli], a
+ dec c
+ jr nz, .asm_89713 ; 0x8971c $f5
+ ret
+; 0x8971f
+
+Function8971f: ; 8971f
+ ld a, $2c
+ ld [hli], a
+ ld a, $2d
+ ld [hld], a
+ push hl
+ ld de, SCREEN_WIDTH
+ add hl, de
+ ld a, $31
+ ld [hli], a
+ ld a, $32
+ ld [hld], a
+ add hl, de
+ ld a, $35
+ ld [hl], a
+ pop hl
+ ret
+; 89736
+
+Function89736: ; 89736
+ push hl
+rept 2
+ inc hl
+endr
+ ld e, c
+ ld d, $0
+ add hl, de
+ ld a, $2f
+ ld [hli], a
+ ld a, $30
+ ld [hld], a
+ ld de, SCREEN_WIDTH
+ add hl, de
+ ld a, $33
+ ld [hli], a
+ ld a, $34
+ ld [hl], a
+ add hl, de
+ ld a, $1f
+ ld [hl], a
+ pop hl
+ ret
+; 89753
+
+Function89753: ; 89753
+ ld a, $c
+ ld [hl], a
+ xor a
+ call Function89215
+ ret
+; 8975b
+
+Function8975b: ; 8975b
+ ld a, $1d
+ ld [hli], a
+ inc a
+ ld [hli], a
+ ld a, $d
+ ld [hl], a
+rept 2
+ dec hl
+endr
+ ld a, $4
+ ld e, $3
+.asm_89769
+ call Function89215
+ inc hl
+ dec e
+ jr nz, .asm_89769
+ ret
+; 89771
+
+Function89771: ; 89771
+ ld a, $12
+ ld [hl], a
+ ld a, $3
+ call Function89215
+ ret
+; 8977a
+
+Function8977a: ; 8977a
+ ld e, $4
+ ld d, $13
+.asm_8977e
+ ld a, d
+ ld [hl], a
+ ld a, $4
+ call Function89215
+ inc hl
+ inc d
+ dec e
+ jr nz, .asm_8977e
+ ld e, $e
+.asm_8978c
+ ld a, d
+ ld [hl], a
+ xor a
+ call Function89215
+ inc hl
+ dec e
+ jr nz, .asm_8978c
+ ret
+; 89797
+
+Function89797: ; 89797
+ push bc
+ ld a, $e
+ ld [hl], a
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ ld a, $11
+ ld [hli], a
+ ld a, $10
+ ld c, $8
+.asm_897a6
+ ld [hli], a
+ dec c
+ jr nz, .asm_897a6
+ ld a, $f
+ ld [hl], a
+ pop bc
+ ret
+; 897af
+
+Function897af: ; 897af
+ push bc
+ ld hl, $0010
+ add hl, bc
+ ld d, h
+ ld e, l
+ ld hl, $000c
+ add hl, bc
+ ld b, h
+ ld c, l
+ callba Function4e929
+ ld a, c
+ ld [TrainerClass], a
+ xor a
+ ld [CurPartySpecies], a
+ ld de, VTiles2 tile $37
+ callba GetTrainerPic
+ pop bc
+ ret
+; 897d5
+
+Function897d5: ; 897d5
+ push bc
+ call Function8934a
+ jr nc, .asm_897f3
+ hlcoord 12, 3, AttrMap
+ xor a
+ ld de, SCREEN_WIDTH
+ lb bc, 7, 7
+.asm_897e5
+ push hl
+ ld c, $7
+.asm_897e8
+ ld [hli], a
+ dec c
+ jr nz, .asm_897e8
+ pop hl
+ add hl, de
+ dec b
+ jr nz, .asm_897e5
+ pop bc
+ ret
+
+.asm_897f3
+ ld a, $37
+ ld [$ffad], a
+ hlcoord 12, 3
+ lb bc, 7, 7
+ predef FillBox
+ call Function8963d
+ pop bc
+ ret
+; 89807
+
+
+Function89807: ; 89807 (22:5807)
+ ld hl, MobileAdapterGFX + $200
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .asm_89814
+ ld hl, MobileAdapterGFX + $200 + $230
+.asm_89814
+ call DisableLCD
+ ld de, VTiles2 tile $37
+ ld bc, $230
+ ld a, BANK(MobileAdapterGFX)
+ call FarCopyBytes
+ call EnableLCD
+ call DelayFrame
+ ret
+
+Function89829: ; 89829 (22:5829)
+ push bc
+ ld bc, $705
+ ld de, $14
+ ld a, $37
+.asm_89832
+ push bc
+ push hl
+.asm_89834
+ ld [hli], a
+ inc a
+ dec c
+ jr nz, .asm_89834
+ pop hl
+ add hl, de
+ pop bc
+ dec b
+ jr nz, .asm_89832
+ call Function8963d
+ pop bc
+ ret
+
+Function89844: ; 89844
+ call Function89481
+ call Function894bb
+ call Function897af
+ push bc
+ call Function3200
+ call Function32f9
+ pop bc
+ ret
+; 89856
+
+Function89856: ; 89856
+ push bc
+ call Function891b8
+ pop bc
+ call Function895f2
+ call Function8966c
+ call Function899d3
+ call Function898aa
+ call Function898be
+ call Function898dc
+ call Function898f3
+ push bc
+ ld bc, wd008
+ hlcoord 2, 10
+ call Function89975
+ pop bc
+ call Function897d5
+ ret
+; 8987f
+
+
+Function8987f: ; 8987f (22:587f)
+ call Function891b8
+ call Function895f2
+ call Function8967a
+ call Function899d3
+ hlcoord 5, 1
+ call Function8999c
+ hlcoord 13, 3
+ call Function89829
+ call Function899b2
+ hlcoord 5, 5
+ call Function899c9
+ ld bc, wd008
+ hlcoord 2, 10
+ call Function89975
+ ret
+
+Function898aa: ; 898aa
+ ld a, [MenuSelection]
+ and a
+ ret z
+ push bc
+ hlcoord 6, 1
+ ld de, MenuSelection
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 2
+ call PrintNum
+ pop bc
+ ret
+; 898be
+
+Function898be: ; 898be
+ push bc
+ ld de, DefaultFlypoint
+ ld hl, DefaultFlypoint
+ call Function89331
+ jr nc, .asm_898cd
+ ld de, String_89116
+
+.asm_898cd
+ hlcoord 9, 1
+ ld a, [MenuSelection]
+ and a
+ jr nz, .asm_898d7
+ dec hl
+
+.asm_898d7
+ call PlaceString
+ pop bc
+ ret
+; 898dc
+
+Function898dc: ; 898dc
+ ld hl, $0006
+ add hl, bc
+ push bc
+ ld d, h
+ ld e, l
+ call Function8934a
+ jr nc, .asm_898eb
+ ld de, String_89116
+
+.asm_898eb
+ hlcoord 6, 4
+ call PlaceString
+ pop bc
+ ret
+; 898f3
+
+Function898f3: ; 898f3
+ push bc
+ ld hl, $000c
+ add hl, bc
+ ld d, h
+ ld e, l
+ call Function8934a
+ jr c, .asm_8990a
+ hlcoord 5, 5
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 5
+ call PrintNum
+ jr .asm_89913
+
+.asm_8990a
+ hlcoord 5, 5
+ ld de, String_89116
+ call PlaceString
+
+.asm_89913
+ pop bc
+ ret
+; 89915
+
+Function89915: ; 89915
+ push bc
+ push hl
+ ld de, Unknown_89942
+ ld c, $8
+.asm_8991c
+ ld a, [de]
+ ld [hl], a
+ ld a, $4
+ call Function89215
+ inc hl
+ inc de
+ dec c
+ jr nz, .asm_8991c
+ pop hl
+ ld b, $4
+ ld c, $2b
+ ld a, $8
+ ld de, Unknown_8994a
+.asm_89932
+ push af
+ ld a, [de]
+ cp [hl]
+ jr nz, .asm_8993b
+ call Function8994e
+ inc de
+
+.asm_8993b
+ inc hl
+ pop af
+ dec a
+ jr nz, .asm_89932
+ pop bc
+ ret
+; 89942
+
+Unknown_89942: ; 89942
+ db $24, $25, $26, " ", $27, $28, $29, $2a
+Unknown_8994a: ; 8994a
+ db $24, $27, $29, $ff
+; 8994e
+
+Function8994e: ; 8994e
+ push hl
+ push de
+ ld de, SCREEN_WIDTH
+ ld a, l
+ sub e
+ ld l, a
+ ld a, h
+ sbc d
+ ld h, a
+ ld a, c
+ ld [hl], a
+ ld a, b
+ call Function89215
+ pop de
+ pop hl
+ ret
+; 89962
+
+Function89962: ; 89962
+ push bc
+ ld c, $4
+ ld b, $20
+.asm_89967
+ ld a, b
+ ld [hl], a
+ ld a, $4
+ call Function89215
+ inc hl
+ inc b
+ dec c
+ jr nz, .asm_89967
+ pop bc
+ ret
+; 89975
+
+Function89975: ; 89975
+ push bc
+ ld e, $8
+.asm_89978
+ ld a, [bc]
+ ld d, a
+ call Function8998b
+ swap d
+ inc hl
+ ld a, d
+ call Function8998b
+ inc bc
+ inc hl
+ dec e
+ jr nz, .asm_89978
+ pop bc
+ ret
+; 8998b
+
+Function8998b: ; 8998b
+ push bc
+ and $f
+ cp $a
+ jr nc, .asm_89997
+ ld c, $f6
+ add c
+ jr .asm_89999
+
+.asm_89997
+ ld a, $7f
+
+.asm_89999
+ ld [hl], a
+ pop bc
+ ret
+; 8999c
+
+
+Function8999c: ; 8999c (22:599c)
+ ld de, PlayerName
+ call PlaceString
+ inc bc
+ ld h, b
+ ld l, c
+ ld de, String_899ac
+ call PlaceString
+ ret
+; 899ac (22:59ac)
+
+String_899ac: ; 899ac
+ db "の めいし@"
+; 899b2
+
+Function899b2: ; 899b2 (22:59b2)
+ ld bc, PlayerName
+ call Function89346
+ jr c, .asm_899bf
+ ld de, PlayerName
+ jr .asm_899c2
+.asm_899bf
+ ld de, String_89116
+.asm_899c2
+ hlcoord 6, 4
+ call PlaceString
+ ret
+
+Function899c9: ; 899c9 (22:59c9)
+ ld de, PlayerID
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 5
+ call PrintNum
+ ret
+
+Function899d3: ; 899d3
+ hlcoord 1, 4
+ call Function89753
+ hlcoord 2, 5
+ call Function8975b
+ hlcoord 1, 9
+ call Function89771
+ hlcoord 1, 11
+ call Function8977a
+ hlcoord 1, 5
+ call Function89797
+ hlcoord 2, 4
+ call Function89962
+ hlcoord 2, 9
+ call Function89915
+ ret
+; 899fe
+
+Function899fe: ; 899fe
+ push bc
+ push hl
+ ld hl, $0019
+ add hl, bc
+ ld b, h
+ ld c, l
+ pop hl
+ call Function89a0c
+ pop bc
+ ret
+; 89a0c
+
+Function89a0c: ; 89a0c
+ push hl
+ call Function89363
+ pop hl
+ jr c, .asm_89a1c
+ ld d, h
+ ld e, l
+ callba Function11c08f
+ ret
+
+.asm_89a1c
+ ld de, String_89153
+ call PlaceString
+ ret
+; 89a23
+
+
+Function89a23: ; 89a23 (22:5a23)
+ hlcoord 0, 11
+ ld b, $4
+ ld c, $12
+ call Function8921f
+ ret
+
+Function89a2e: ; 89a2e (22:5a2e)
+ hlcoord 11, 12
+ ld b, $2
+ ld c, $6
+ call TextBox
+ hlcoord 13, 13
+ ld de, String_89a4e
+ call PlaceString
+ hlcoord 13, 14
+ ld de, String_89a53
+ call PlaceString
+ call Function89655
+ ret
+; 89a4e (22:5a4e)
+
+String_89a4e: ; 89a4e
+ db "けってい@"
+; 89a53
+
+String_89a53: ; 89a53
+ db "やめる@"
+; 89a57
+
+Function89a57: ; 89a57
+ call Function354b
+ bit 6, c
+ jr nz, .asm_89a78
+ bit 7, c
+ jr nz, .asm_89a81
+ bit 0, c
+ jr nz, .asm_89a70
+ bit 1, c
+ jr nz, .asm_89a70
+ bit 3, c
+ jr nz, .asm_89a74
+ scf
+ ret
+
+.asm_89a70
+ ld a, $1
+ and a
+ ret
+
+.asm_89a74
+ ld a, $2
+ and a
+ ret
+
+.asm_89a78
+ call Function89a9b
+ call nc, Function89a8a
+ ld a, $0
+ ret
+
+.asm_89a81
+ call Function89a93
+ call nc, Function89a8a
+ ld a, $0
+ ret
+; 89a8a
+
+Function89a8a: ; 89a8a
+ push af
+ ld de, SFX_UNKNOWN_62
+ call PlaySFX
+ pop af
+ ret
+; 89a93
+
+Function89a93: ; 89a93
+ ld d, $28
+ ld e, $1
+ call Function89aa3
+ ret
+; 89a9b
+
+Function89a9b: ; 89a9b
+ ld d, $1
+ ld e, $ff
+ call Function89aa3
+ ret
+; 89aa3
+
+Function89aa3: ; 89aa3
+ ld a, [MenuSelection]
+ ld c, a
+ push bc
+.asm_89aa8
+ ld a, [MenuSelection]
+ cp d
+ jr z, .asm_89ac0
+ add e
+ jr nz, .asm_89ab2
+ inc a
+
+.asm_89ab2
+ ld [MenuSelection], a
+ call Function89ac7
+ jr nc, .asm_89aa8
+ call Function89ae6
+ pop bc
+ and a
+ ret
+
+.asm_89ac0
+ pop bc
+ ld a, c
+ ld [MenuSelection], a
+ scf
+ ret
+; 89ac7
+
+Function89ac7: ; 89ac7
+ call OpenSRAMBank4
+ call Function8931b
+ call Function89ad4
+ call CloseSRAM
+ ret
+; 89ad4
+
+Function89ad4: ; 89ad4
+ push de
+ call Function8932d
+ jr c, .asm_89ae3
+ ld hl, $0011
+ add hl, bc
+ call Function89b45
+ jr c, .asm_89ae4
+
+.asm_89ae3
+ and a
+
+.asm_89ae4
+ pop de
+ ret
+; 89ae6
+
+Function89ae6: ; 89ae6
+ ld hl, wd031
+ xor a
+ ld [hl], a
+ ld a, [MenuSelection]
+.asm_89aee
+ cp $6
+ jr c, .asm_89afc
+ sub $5
+ ld c, a
+ ld a, [hl]
+ add $5
+ ld [hl], a
+ ld a, c
+ jr .asm_89aee
+
+.asm_89afc
+ ld [wd030], a
+ ret
+; 89b00
+
+
+Function89b00: ; 89b00 (22:5b00)
+ callba Function49351
+ ret
+; 89b07 (22:5b07)
+
+Function89b07: ; 89b07
+ call Function8923c
+ call DelayFrame
+ callba Function4a3a7
+ ret
+; 89b14
+
+Function89b14: ; 89b14
+ call WhiteBGMap
+ call Function89b07
+ call Function89b00
+ ret
+; 89b1e
+
+Function89b1e: ; 89b1e (22:5b1e)
+ callba Function4a485
+ call Function89b00
+ ret
+
+Function89b28: ; 89b28 (22:5b28)
+ call Function891de
+ call WhiteBGMap
+ call Function893e2
+ call Function1d7d
+ call Function891ab
+ call Function32f9
+ ret
+
+Function89b3b: ; 89b3b (22:5b3b)
+ call Function8923c
+ callba Function48cda
+ ret
+
+Function89b45: ; 89b45
+ push hl
+ push bc
+ ld c, $10
+ ld e, $0
+.asm_89b4b
+ ld a, [hli]
+ ld b, a
+ and $f
+ cp $a
+ jr c, .asm_89b5a
+ ld a, c
+ cp $b
+ jr nc, .asm_89b74
+ jr .asm_89b71
+
+.asm_89b5a
+ dec c
+ swap b
+ inc e
+ ld a, b
+ and $f
+ cp $a
+ jr c, .asm_89b6c
+ ld a, c
+ cp $b
+ jr nc, .asm_89b74
+ jr .asm_89b71
+
+.asm_89b6c
+ inc e
+ dec c
+ jr nz, .asm_89b4b
+ dec e
+
+.asm_89b71
+ scf
+ jr .asm_89b75
+
+.asm_89b74
+ and a
+
+.asm_89b75
+ pop bc
+ pop hl
+ ret
+; 89b78
+
+
+Function89b78: ; 89b78 (22:5b78)
+ push bc
+ ld a, [wd010]
+ cp $10
+ jr c, .asm_89b8c
+ ld a, e
+ and a
+ jr z, .asm_89b89
+ ld c, e
+.asm_89b85
+ inc hl
+ dec c
+ jr nz, .asm_89b85
+.asm_89b89
+ ld a, $7f
+ ld [hl], a
+.asm_89b8c
+ ld a, [wd010]
+ inc a
+ and $1f
+ ld [wd010], a
+ pop bc
+ ret
+
+Function89b97: ; 89b97 (22:5b97)
+ call Function89c34
+ jr c, .asm_89ba0
+ call Function89448
+ ret
+.asm_89ba0
+ ld a, [wd011]
+ ld hl, Unknown_89bd8
+ and a
+ jr z, .asm_89bae
+.asm_89ba9
+rept 2
+ inc hl
+endr
+ dec a
+ jr nz, .asm_89ba9
+.asm_89bae
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, Sprites
+.asm_89bb4
+ ld a, [hli]
+ cp $ff
+ ret z
+ ld c, a
+ ld b, $0
+.asm_89bbb
+ push hl
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ add b
+ ld [de], a
+ inc de
+ ld a, $8
+ add b
+ ld b, a
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ pop hl
+ dec c
+ jr nz, .asm_89bbb
+ ld b, $0
+ ld c, $4
+ add hl, bc
+ jr .asm_89bb4
+; 89bd8 (22:5bd8)
+
+Unknown_89bd8: ; 89bd8
+ dw Unknown_89be0
+ dw Unknown_89bf5
+ dw Unknown_89c0a
+ dw Unknown_89c1f
+; 89be0
+
+Unknown_89be0: ; 89be0
+ db $01, $12, $4e, $01, $00
+ db $01, $19, $4e, $01, $40
+ db $01, $12, $72, $01, $20
+ db $01, $19, $72, $01, $60
+ db $ff
+
+Unknown_89bf5: ; 89bf5
+ db $01, $60, $16, $01, $00
+ db $01, $62, $16, $01, $40
+ db $01, $60, $92, $01, $20
+ db $01, $62, $92, $01, $60
+ db $ff
+
+Unknown_89c0a: ; 89c0a
+ db $01, $78, $66, $01, $00
+ db $01, $78, $66, $01, $40
+ db $01, $78, $92, $01, $20
+ db $01, $78, $92, $01, $60
+ db $ff
+
+Unknown_89c1f: ; 89c1f
+ db $01, $80, $66, $01, $00
+ db $01, $80, $66, $01, $40
+ db $01, $80, $92, $01, $20
+ db $01, $80, $92, $01, $60
+ db $ff
+; 89c34
+
+Function89c34: ; 89c34 (22:5c34)
+ push bc
+ ld a, [wd012]
+ ld c, a
+ inc a
+ and $f
+ ld [wd012], a
+ ld a, c
+ cp $8
+ pop bc
+ ret
+
+Function89c44: ; 89c44 (22:5c44)
+ call Function89c34
+ jr c, .asm_89c4f
+ push de
+ call Function89448
+ pop de
+ ret
+.asm_89c4f
+ ld hl, Sprites
+ push de
+ ld a, b
+ ld [hli], a
+ ld d, $8
+ ld a, e
+ and a
+ ld a, c
+ jr z, .asm_89c60
+.asm_89c5c
+ add d
+ dec e
+ jr nz, .asm_89c5c
+.asm_89c60
+ pop de
+ ld [hli], a
+ ld a, d
+ ld [hli], a
+ xor a
+ ld [hli], a
+ ret
+
+Function89c67: ; 89c67 (22:5c67)
+ call Function354b
+ ld b, $0
+ bit 0, c
+ jr z, .asm_89c74
+ ld b, $1
+ and a
+ ret
+.asm_89c74
+ bit 1, c
+ jr z, .asm_89c7a
+ scf
+ ret
+.asm_89c7a
+ xor a
+ bit 6, c
+ jr z, .asm_89c81
+ ld a, $1
+.asm_89c81
+ bit 7, c
+ jr z, .asm_89c87
+ ld a, $2
+.asm_89c87
+ bit 5, c
+ jr z, .asm_89c8d
+ ld a, $3
+.asm_89c8d
+ bit 4, c
+ jr z, .asm_89c93
+ ld a, $4
+.asm_89c93
+ and a
+ ret z
+ dec a
+ ld c, a
+ ld d, $0
+ ld hl, Unknown_89cbf
+ ld a, [wd02f]
+ and a
+ jr z, .asm_89ca5
+ ld hl, Unknown_89ccf
+.asm_89ca5
+ ld a, [wd011]
+ and a
+ jr z, .asm_89cb1
+ ld e, $4
+.asm_89cad
+ add hl, de
+ dec a
+ jr nz, .asm_89cad
+.asm_89cb1
+ ld e, c
+ add hl, de
+ ld a, [hl]
+ and a
+ ret z
+ dec a
+ ld [wd011], a
+ xor a
+ ld [wd012], a
+ ret
+; 89cbf (22:5cbf)
+
+Unknown_89cbf: ; 89cbf
+ db 0, 2, 0, 0
+ db 1, 3, 0, 0
+ db 2, 4, 0, 0
+ db 3, 0, 0, 0
+
+Unknown_89ccf: ; 89ccf
+ db 0, 0, 0, 0
+ db 0, 3, 0, 0
+ db 2, 4, 0, 0
+ db 3, 0, 0, 0
+; 89cdf
+
+Function89cdf: ; 89cdf (22:5cdf)
+ ld a, $10
+ add b
+ ld b, a
+ ld a, $8
+ add c
+ ld c, a
+ ld e, $2
+ ld a, $2
+ ld hl, Sprites
+.asm_89cee
+ push af
+ push bc
+ ld d, $4
+.asm_89cf2
+ ld a, b
+ ld [hli], a
+ ld a, c
+ ld [hli], a
+ ld a, e
+ ld [hli], a
+ ld a, $1
+ ld [hli], a
+ ld a, $8
+ add c
+ ld c, a
+ inc e
+ dec d
+ jr nz, .asm_89cf2
+ pop bc
+ ld a, $8
+ add b
+ ld b, a
+ pop af
+ dec a
+ jr nz, .asm_89cee
+ ret
+
+Function89d0d: ; 89d0d (22:5d0d)
+ call Function8923c
+ ld a, [rSVBK] ; $ff00+$70
+ push af
+ ld a, $5
+ ld [rSVBK], a ; $ff00+$70
+ ld c, $8
+ ld de, Unkn1Pals
+.asm_89d1c
+ push bc
+ ld hl, Palette_89d4e
+ ld bc, $8
+ call CopyBytes
+ pop bc
+ dec c
+ jr nz, .asm_89d1c
+ ld hl, Palette_89d56
+ ld de, wd010
+ ld bc, $8
+ call CopyBytes
+ pop af
+ ld [rSVBK], a ; $ff00+$70
+ call Function32f9
+ callba Function845db
+ call Function89240
+ ld c, $18
+ call DelayFrames
+ call RestartMapMusic
+ ret
+; 89d4e (22:5d4e)
+
+Palette_89d4e: ; 89d4e
+ RGB 31, 31, 31
+ RGB 19, 19, 19
+ RGB 15, 15, 15
+ RGB 00, 00, 00
+; 89d56
+
+Palette_89d56: ; 89d56
+ RGB 31, 31, 31
+ RGB 19, 19, 19
+ RGB 19, 19, 19
+ RGB 00, 00, 00
+; 89d5e
+
+Function89d5e: ; 89d5e (22:5d5e)
+ push af
+ call CopyMenuDataHeader
+ pop af
+ ld [wcf88], a
+ call Function8923c
+ call Function1c89
+ call Function1c10
+ ld hl, wcfa5
+ set 7, [hl]
+ ret
+
+Function89d75: ; 89d75 (22:5d75)
+ push hl
+ call Function8923c
+ call _hl_
+ callba Function104148
+ pop hl
+ jr asm_89d90
+
+Function89d85: ; 89d85 (22:5d85)
+ push hl
+ call Function8923c
+ call _hl_
+ call Function3238
+ pop hl
+
+asm_89d90: ; 89d90 (22:5d90)
+ call Function8923c
+ push hl
+ call _hl_
+ call Function89dab
+ ld a, [wcfa9]
+ push af
+ call Function891ab
+ pop af
+ pop hl
+ jr c, .asm_89da9
+ jr z, asm_89d90
+ scf
+ ret
+.asm_89da9
+ and a
+ ret
+
+Function89dab: ; 89dab (22:5dab)
+ call Function8923c
+ callba Function241ba
+ call Function8923c
+ ld a, c
+ ld hl, wcfa8
+ and [hl]
+ ret z
+ bit 0, a
+ jr nz, .asm_89dc7
+ bit 1, a
+ jr nz, .asm_89dd9
+ xor a
+ ret
+.asm_89dc7
+ call PlayClickSFX
+ ld a, [wcfa3]
+ ld c, a
+ ld a, [wcfa9]
+ cp c
+ jr z, .asm_89dd9
+ call Function1bee
+ scf
+ ret
+.asm_89dd9
+ call PlayClickSFX
+ ld a, $1
+ and a
+ ret
+
+Function89de0: ; 89de0 (22:5de0)
+ call ClearSprites
+ call Function89e0a
+ jr c, .asm_89e00
+ ld c, $1
+.asm_89dea
+ call Function8a31c
+ jr z, .asm_89dfd
+ ld a, [wcfa9]
+ ld c, a
+ push bc
+ ld hl, Jumptable_89e04
+ ld a, e
+ dec a
+ rst JumpTable
+ pop bc
+ jr .asm_89dea
+.asm_89dfd
+ call Function891fe
+.asm_89e00
+ call Function8917a
+ ret
+
+Jumptable_89e04: ; 89e04 (22:5e04)
+ dw Function8a62c
+ dw Function8a999
+ dw Function8ab93
+
+
+Function89e0a: ; 89e0a (22:5e0a)
+ call OpenSRAMBank4
+ call Function8b3b0
+ call CloseSRAM
+ ld hl, Jumptable_89e18
+ rst JumpTable
+ ret
+
+Jumptable_89e18: ; 89e18 (22:5e18)
+ dw Function89e1e
+ dw Function8a116
+ dw Function8a2aa
+
+
+Function89e1e: ; 89e1e (22:5e1e)
+ call OpenSRAMBank4
+ ld bc, $a037
+ call Function8b36c
+ call CloseSRAM
+ xor a
+ ld [wd02d], a
+
+asm_89e2e: ; 89e2e (22:5e2e)
+ ld a, [wd02d]
+ ld hl, Jumptable_89e3c
+ rst JumpTable
+ ret
+
+Function89e36: ; 89e36 (22:5e36)
+ ld hl, wd02d
+ inc [hl]
+ jr asm_89e2e
+
+Jumptable_89e3c: ; 89e3c (22:5e3c)
+ dw Function89e6f
+ dw Function89fed
+ dw Function89ff6
+ dw Function8a03d
+ dw Function89eb9
+ dw Function89efd
+ dw Function89fce
+ dw Function8a04c
+ dw Function8a055
+ dw Function8a0e6
+ dw Function8a0ec
+ dw Function8a0f5
+ dw Function89e58
+ dw Function89e68
+
+
+Function89e58: ; 89e58 (22:5e58)
+ ld a, $1
+ call Function8a2fe
+ call Function891fe
+ call Function893e2
+ call Function89168
+ and a
+ ret
+
+Function89e68: ; 89e68 (22:5e68)
+ call Function891fe
+ ld a, $1
+ scf
+ ret
+
+Function89e6f: ; 89e6f (22:5e6f)
+ call Function891de
+ call Function89245
+ call Function89ee1
+ call Function89e9a
+ hlcoord 7, 4
+ call Function8a58d
+ ld a, $5
+ hlcoord 7, 4, AttrMap
+ call Function8a5a3
+ ld a, $6
+ hlcoord 10, 4, AttrMap
+ call Function8a5a3
+ call Function891ab
+ call Function32f9
+ jp Function89e36
+
+Function89e9a: ; 89e9a (22:5e9a)
+ ld a, [rSVBK] ; $ff00+$70
+ push af
+ ld a, $5
+ ld [rSVBK], a ; $ff00+$70
+ ld hl, Palette_89eb1
+ ld de, wd028
+ ld bc, $8
+ call CopyBytes
+ pop af
+ ld [rSVBK], a ; $ff00+$70
+ ret
+; 89eb1 (22:5eb1)
+
+Palette_89eb1: ; 89eb1
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 27, 19, 00
+ RGB 00, 00, 00
+; 89eb9
+
+Function89eb9: ; 89eb9 (22:5eb9)
+ call Function891fe
+ call Function89ee1
+ call Function89e9a
+ hlcoord 7, 4
+ call Function8a58d
+ ld a, $5
+ hlcoord 7, 4, AttrMap
+ call Function8a5a3
+ ld a, $6
+ hlcoord 10, 4, AttrMap
+ call Function8a5a3
+ call Function891ab
+ call Function32f9
+ jp Function89e36
+
+Function89ee1: ; 89ee1 (22:5ee1)
+ call WhiteBGMap
+ call Function893e2
+ call Function8923c
+ callba Function4a3a7
+ callba Function49384
+ hlcoord 1, 0
+ call Function8a53d
+ ret
+
+Function89efd: ; 89efd (22:5efd)
+ ld hl, wd012
+ ld a, $ff
+ ld [hli], a
+ xor a
+rept 4
+ ld [hli], a
+endr
+ ld [hl], a
+.asm_89f09
+ ld hl, wd012
+ inc [hl]
+ ld a, [hli]
+ and $3
+ jr nz, .asm_89f2e
+ ld a, [hl]
+ cp $4
+ jr nc, .asm_89f2e
+ ld b, $32
+ inc [hl]
+ ld a, [hl]
+ dec a
+ jr z, .asm_89f26
+ ld c, a
+.asm_89f1f
+ ld a, $b
+ add b
+ ld b, a
+ dec c
+ jr nz, .asm_89f1f
+.asm_89f26
+ ld c, $e8
+ ld a, [wd013]
+ call Function89fa5
+.asm_89f2e
+ ld a, [wd013]
+ and a
+ jr z, .asm_89f58
+.asm_89f34
+ call Function89f6a
+ ld e, a
+ ld a, c
+ cp $a8
+ jr nc, .asm_89f4d
+ cp $46
+ jr c, .asm_89f4d
+ ld d, $0
+ dec e
+ ld hl, wd014
+ add hl, de
+ set 0, [hl]
+ inc e
+ jr .asm_89f51
+.asm_89f4d
+ ld a, $2
+ add c
+ ld c, a
+.asm_89f51
+ ld a, e
+ call Function89f77
+ dec a
+ jr nz, .asm_89f34
+.asm_89f58
+ call DelayFrame
+ ld hl, wd014
+ ld c, $4
+.asm_89f60
+ ld a, [hli]
+ and a
+ jr z, .asm_89f09
+ dec c
+ jr nz, .asm_89f60
+ jp Function89e36
+
+Function89f6a: ; 89f6a (22:5f6a)
+ push af
+ ld de, $10
+ call Function89f9a
+ ld a, [hli]
+ ld b, a
+ ld a, [hl]
+ ld c, a
+ pop af
+ ret
+
+Function89f77: ; 89f77 (22:5f77)
+ push af
+ ld de, $10
+ call Function89f9a
+ ld d, $2
+.asm_89f80
+ push bc
+ ld e, $2
+.asm_89f83
+ ld a, b
+ ld [hli], a
+ ld a, c
+ ld [hli], a
+rept 2
+ inc hl
+endr
+ ld a, $8
+ add c
+ ld c, a
+ dec e
+ jr nz, .asm_89f83
+ pop bc
+ ld a, $8
+ add b
+ ld b, a
+ dec d
+ jr nz, .asm_89f80
+ pop af
+ ret
+
+Function89f9a: ; 89f9a (22:5f9a)
+ dec a
+ ld hl, Sprites
+ and a
+ ret z
+.asm_89fa0
+ add hl, de
+ dec a
+ jr nz, .asm_89fa0
+ ret
+
+Function89fa5: ; 89fa5 (22:5fa5)
+ ld de, $10
+ call Function89f9a
+ ld e, $2
+ ld d, $a
+.asm_89faf
+ push bc
+ ld a, $2
+.asm_89fb2
+ push af
+ ld a, b
+ ld [hli], a
+ ld a, c
+ ld [hli], a
+ ld a, d
+ inc d
+ ld [hli], a
+ ld a, $1
+ ld [hli], a
+ ld a, $8
+ add c
+ ld c, a
+ pop af
+ dec a
+ jr nz, .asm_89fb2
+ pop bc
+ ld a, $8
+ add b
+ ld b, a
+ dec e
+ jr nz, .asm_89faf
+ ret
+
+Function89fce: ; 89fce (22:5fce)
+ call Function8a5b6
+ ld a, $5
+ hlcoord 7, 4, AttrMap
+ call Function8a5a3
+ ld a, $6
+ hlcoord 10, 4, AttrMap
+ call Function8a5a3
+ call Function89448
+ call Function32f9
+ call Function891ab
+ jp Function89e36
+
+Function89fed: ; 89fed (22:5fed)
+ ld hl, UnknownText_0x8a102
+ call PrintText
+ jp Function89e36
+
+Function89ff6: ; 89ff6 (22:5ff6)
+ call Function891fe
+ call WhiteBGMap
+ call Function893cc
+ call Function89807
+ call Function89492
+ call Function894ca
+ call OpenSRAMBank4
+ ld hl, $a603
+ ld a, -1
+ ld bc, 8
+ call ByteFill
+ ld hl, $a603
+ ld de, wd008
+ call Function89381
+ call CloseSRAM
+ call Function8987f
+ call OpenSRAMBank4
+ hlcoord 1, 13
+ ld bc, $a007
+ call Function89a0c
+ call CloseSRAM
+ call Function891ab
+ call Function89235
+ jp Function89e36
+
+Function8a03d: ; 8a03d (22:603d)
+ ld hl, UnknownText_0x8a107
+ call Function89209
+ call PrintText
+ call Function8920f
+ jp Function89e36
+
+Function8a04c: ; 8a04c (22:604c)
+ ld hl, UnknownText_0x8a10c
+ call PrintText
+ jp Function89e36
+
+Function8a055: ; 8a055 (22:6055)
+ ld c, $7
+ ld b, $4
+.asm_8a059
+ call Function8a0a1
+ inc c
+ call Function8a0c9
+ push bc
+ call Function8a58d
+ pop bc
+ call Function8a0de
+ push bc
+ push hl
+ ld a, $5
+ call Function8a5a3
+ pop hl
+rept 3
+ inc hl
+endr
+ ld a, $6
+ call Function8a5a3
+ call Function3238
+ pop bc
+ ld a, c
+ cp $b
+ jr nz, .asm_8a059
+ call Function8a0a1
+ hlcoord 12, 4
+ call Function8a58d
+ ld a, $5
+ hlcoord 12, 4, AttrMap
+ call Function8a5a3
+ pop hl
+ ld a, $6
+ hlcoord 15, 4, AttrMap
+ call Function8a5a3
+ call Function3238
+ jp Function89e36
+
+Function8a0a1: ; 8a0a1 (22:60a1)
+ call Function8923c
+ push bc
+ call Function8a0c9
+ ld e, $6
+.asm_8a0aa
+ push hl
+ ld bc, $6
+ add hl, bc
+ ld d, [hl]
+ call Function8a0c1
+ pop hl
+ ld [hl], d
+ call Function89215
+ ld bc, $14
+ add hl, bc
+ dec e
+ jr nz, .asm_8a0aa
+ pop bc
+ ret
+
+Function8a0c1: ; 8a0c1 (22:60c1)
+ push hl
+ ld bc, AttrMap - TileMap
+ add hl, bc
+ ld a, [hl]
+ pop hl
+ ret
+
+Function8a0c9: ; 8a0c9 (22:60c9)
+ push bc
+ hlcoord 0, 0
+ ld de, $14
+ ld a, b
+ and a
+ jr z, .asm_8a0d8
+.asm_8a0d4
+ add hl, de
+ dec b
+ jr nz, .asm_8a0d4
+.asm_8a0d8
+ ld d, $0
+ ld e, c
+ add hl, de
+ pop bc
+ ret
+
+Function8a0de: ; 8a0de (22:60de)
+ call Function8a0c9
+ ld de, AttrMap - TileMap
+ add hl, de
+ ret
+
+Function8a0e6: ; 8a0e6 (22:60e6)
+ call Function8b539
+ jp Function89e36
+
+Function8a0ec: ; 8a0ec (22:60ec)
+ ld hl, UnknownText_0x8a111
+ call PrintText
+ jp Function89e36
+
+Function8a0f5: ; 8a0f5 (22:60f5)
+ call Function8b555
+ jp nc, Function8a0ff
+ ld hl, wd02d
+ inc [hl]
+
+Function8a0ff: ; 8a0ff (22:60ff)
+ jp Function89e36
+; 8a102 (22:6102)
+
+UnknownText_0x8a102: ; 0x8a102
+ ; The CARD FOLDER stores your and your friends' CARDS. A CARD contains information like the person's name, phone number and profile.
+ text_jump UnknownText_0x1c5238
+ db "@"
+; 0x8a107
+
+UnknownText_0x8a107: ; 0x8a107
+ ; This is your CARD. Once you've entered your phone number, you can trade CARDS with your friends.
+ text_jump UnknownText_0x1c52bc
+ db "@"
+; 0x8a10c
+
+UnknownText_0x8a10c: ; 0x8a10c
+ ; If you have your friend's CARD, you can use it to make a call from a mobile phone on the 2nd floor of a #MON CENTER.
+ text_jump UnknownText_0x1c531e
+ db "@"
+; 0x8a111
+
+UnknownText_0x8a111: ; 0x8a111
+ ; To safely store your collection of CARDS, you must set a PASSCODE for your CARD FOLDER.
+ text_jump UnknownText_0x1c5394
+ db "@"
+; 0x8a116
+
+Function8a116: ; 8a116 (22:6116)
+ ld a, $1
+ ld [wd030], a
+ ld hl, MenuDataHeader_0x8a176
+ call LoadMenuDataHeader
+.asm_8a121
+ call Function8923c
+ call Function8a17b
+ jr c, .asm_8a16b
+ ld a, [wcfa9]
+ ld [wd030], a
+ dec d
+ jr z, .asm_8a140
+ call Function8a20d
+ jr c, .asm_8a121
+ xor a
+ call Function8a2fe
+ call Function8916e
+ jr .asm_8a16b
+.asm_8a140
+ call Function89174
+ jr nz, .asm_8a14c
+ call Function8a241
+ jr c, .asm_8a121
+ jr .asm_8a15a
+.asm_8a14c
+ call WaitSFX
+ ld de, SFX_TWINKLE
+ call PlaySFX
+ ld c, $10
+ call DelayFrames
+.asm_8a15a
+ call ExitMenu
+ call Function891de
+ call Function893e2
+ call Function89245
+ call Function89168
+ and a
+ ret
+.asm_8a16b
+ call Function89209
+ call WriteBackup
+ call Function8920f
+ scf
+ ret
+; 8a176 (22:6176)
+
+MenuDataHeader_0x8a176: ; 0x8a176
+ db $40 ; flags
+ db 00, 14 ; start coords
+ db 06, 19 ; end coords
+; 8a17b
+
+Function8a17b: ; 8a17b (22:617b)
+ decoord 14, 0
+ ld b, $5
+ ld c, $4
+ call Function89b3b
+ ld hl, MenuDataHeader_0x8a19a
+ ld a, [wd030]
+ call Function89d5e
+ ld hl, Function8a1b0
+ call Function89d75
+ jr nc, .asm_8a198
+ ld a, $0
+.asm_8a198
+ ld d, a
+ ret
+; 8a19a (22:619a)
+
+MenuDataHeader_0x8a19a: ; 0x8a19a
+ db $40 ; flags
+ db 00, 14 ; start coords
+ db 06, 19 ; end coords
+ dw MenuData2_0x8a1a2
+ db 1 ; default option
+; 0x8a1a2
+
+MenuData2_0x8a1a2: ; 0x8a1a2
+ db $e0 ; flags
+ db 3 ; items
+ db "ひらく@"
+ db "すてる@"
+ db "もどる@"
+; 0x8a1b0
+
+Function8a1b0: ; 8a1b0
+ hlcoord 0, 12
+ ld b, $4
+ ld c, $12
+ call TextBox
+ hlcoord 1, 14
+ ld a, [wcfa9]
+ ld de, Strings_8a1cc
+ dec a
+ ld c, a
+ call Function8919e
+ call PlaceString
+ ret
+; 8a1cc
+
+Strings_8a1cc: ; 8a1cc
+ db "めいし", $25, "せいりと へんしゅうを"
+ next "おこないます"
+ db "@"
+
+ db "めいしフ,ルダー", $25, "めいしと"
+ next "あんしょうばんごう", $1f, "けします"
+ db "@"
+
+ db "まえ", $25, "がめん", $1d, "もどります"
+ db "@"
+; 8a20d
+
+
+Function8a20d: ; 8a20d (22:620d)
+ ld hl, UnknownText_0x8a232
+ call PrintText
+ ld a, $2
+ call Function89259
+ ret c
+ ld hl, UnknownText_0x8a237
+ call PrintText
+ ld a, $2
+ call Function89259
+ ret c
+ xor a
+ call Function8a2fe
+ ld hl, UnknownText_0x8a23c
+ call PrintText
+ xor a
+ and a
+ ret
+; 8a232 (22:6232)
+
+UnknownText_0x8a232: ; 0x8a232
+ ; If the CARD FOLDER is deleted, all its CARDS and the PASSCODE will also be deleted. Beware--a deleted CARD FOLDER can't be restored. Want to delete your CARD FOLDER?
+ text_jump UnknownText_0x1c53ee
+ db "@"
+; 0x8a237
+
+UnknownText_0x8a237: ; 0x8a237
+ ; Are you sure you want to delete it?
+ text_jump UnknownText_0x1c5494
+ db "@"
+; 0x8a23c
+
+UnknownText_0x8a23c: ; 0x8a23c
+ ; The CARD FOLDER has been deleted.
+ text_jump UnknownText_0x1c54b9
+ db "@"
+; 0x8a241
+
+Function8a241: ; 8a241 (22:6241)
+ call Function1d6e
+ call Function891fe
+ call Function8a262
+ jr nc, .asm_8a254
+ call Function891fe
+ call Function89b28
+ scf
+ ret
+.asm_8a254
+ call Function891de
+ call WhiteBGMap
+ call Function1d7d
+ call Function891de
+ and a
+ ret
+
+Function8a262: ; 8a262 (22:6262)
+ call WhiteBGMap
+ call Function893e2
+ call Function8923c
+ callba Function4a3a7
+ callba Function49384
+ hlcoord 1, 0
+ call Function8a53d
+ hlcoord 12, 4
+ call Function8a58d
+ ld a, $5
+ hlcoord 12, 4, AttrMap
+ call Function8a5a3
+ ld a, $6
+ hlcoord 15, 4, AttrMap
+ call Function8a5a3
+ xor a
+ ld [wd02e], a
+ ld bc, wd013
+ call Function8b36c
+ call Function8b493
+ call Function891ab
+ call Function32f9
+ call Function8b5e7
+ ret
+
+Function8a2aa: ; 8a2aa (22:62aa)
+ ld hl, MenuDataHeader_0x8a2ef
+ call LoadMenuDataHeader
+ ld hl, UnknownText_0x8a2f4
+ call PrintText
+ ld a, $1
+ call Function89259
+ jr nc, .asm_8a2cf
+ ld hl, UnknownText_0x8a2f9
+ call PrintText
+ ld a, $2
+ call Function89259
+ jr c, .asm_8a2ea
+ call Function8a20d
+ jr .asm_8a2ea
+.asm_8a2cf
+ call ExitMenu
+ call Function8a241
+ jr c, .asm_8a2ed
+ ld a, $1
+ call Function8a313
+ call CloseSRAM
+ call Function891de
+ call Function89245
+ call Function89168
+ and a
+ ret
+.asm_8a2ea
+ call WriteBackup
+.asm_8a2ed
+ scf
+ ret
+; 8a2ef (22:62ef)
+
+MenuDataHeader_0x8a2ef: ; 0x8a2ef
+ db $40 ; flags
+ db 12, 00 ; start coords
+ db 17, 19 ; end coords
+; 8a2f4
+
+UnknownText_0x8a2f4: ; 0x8a2f4
+ ; There is an older CARD FOLDER from a previous journey. Do you want to open it?
+ text_jump UnknownText_0x1c54dd
+ db "@"
+; 0x8a2f9
+
+UnknownText_0x8a2f9: ; 0x8a2f9
+ ; Delete the old CARD FOLDER?
+ text_jump UnknownText_0x1c552d
+ db "@"
+; 0x8a2fe
+
+Function8a2fe: ; 8a2fe (22:62fe)
+ call Function8a313
+ call Function89305
+ ld hl, $a603
+ ld bc, $8
+ ld a, -1
+ call ByteFill
+ call CloseSRAM
+ ret
+
+Function8a313: ; 8a313 (22:6313)
+ ld c, a
+ call OpenSRAMBank4
+ ld a, c
+ ld [$a60b], a
+ ret
+
+Function8a31c: ; 8a31c (22:631c)
+ push bc
+ call Function8923c
+ callba Function4a3a7
+ callba Function49384
+ hlcoord 1, 0
+ call Function8a53d
+ hlcoord 12, 4
+ call Function8a58d
+ call Function8a3b2
+ pop bc
+ ld a, c
+ ld [wcf88], a
+ ld [MenuSelection], a
+ call Function1c89
+ call Function1c10
+ ld hl, wcfa5
+ set 7, [hl]
+.asm_8a34e
+ call Function8a3a2
+ call Function8923c
+ call Function8a453
+ call Function8a4d3
+ call Function8a4fc
+ call Function891ab
+ call Function32f9
+ call Function8a383
+ jr c, .asm_8a370
+ jr z, .asm_8a34e
+.asm_8a36a
+ call Function89448
+ xor a
+ ld e, a
+ ret
+.asm_8a370
+ call Function89448
+ call Function1bee
+ call Function8a3a2
+ ld a, [MenuSelection]
+ cp $ff
+ jr z, .asm_8a36a
+ ld e, a
+ and a
+ ret
+
+Function8a383: ; 8a383 (22:6383)
+ callba Function241ba
+ ld a, c
+ ld hl, wcfa8
+ and [hl]
+ ret z
+ bit 0, a
+ jr nz, .asm_8a399
+ bit 1, a
+ jr nz, .asm_8a39e
+ xor a
+ ret
+.asm_8a399
+ call PlayClickSFX
+ scf
+ ret
+.asm_8a39e
+ call PlayClickSFX
+ ret
+
+Function8a3a2: ; 8a3a2 (22:63a2)
+ ld a, [wcfa9]
+ dec a
+ ld hl, DefaultFlypoint
+ ld e, a
+ ld d, $0
+ add hl, de
+ ld a, [hl]
+ ld [MenuSelection], a
+ ret
+
+Function8a3b2: ; 8a3b2 (22:63b2)
+ ld a, $1
+ ld [MenuSelection], a
+ call Function8a4fc
+ call Function8a3df
+ jr nc, .asm_8a3ce
+ decoord 0, 2
+ ld b, $6
+ ld c, $9
+ call Function89b3b
+ ld hl, MenuDataHeader_0x8a435
+ jr .asm_8a3db
+.asm_8a3ce
+ decoord 0, 2
+ ld b, $8
+ ld c, $9
+ call Function89b3b
+ ld hl, MenuDataHeader_0x8a40f
+.asm_8a3db
+ call CopyMenuDataHeader
+ ret
+
+Function8a3df: ; 8a3df (22:63df)
+ call OpenSRAMBank4
+ ld hl, $a603
+ call Function89b45
+ call CloseSRAM
+ ld hl, DefaultFlypoint
+ jr c, .asm_8a3f8
+ ld de, Unknown_8a408
+ call Function8a400
+ scf
+ ret
+.asm_8a3f8
+ ld de, Unknown_8a40b
+ call Function8a400
+ and a
+ ret
+
+Function8a400: ; 8a400 (22:6400)
+ ld a, [de]
+ inc de
+ ld [hli], a
+ cp $ff
+ jr nz, Function8a400
+ ret
+; 8a408 (22:6408)
+
+Unknown_8a408: db 1, 2, -1
+Unknown_8a40b: db 1, 2, 3, -1
+
+MenuDataHeader_0x8a40f: ; 0x8a40f
+ db $40 ; flags
+ db 02, 00 ; start coords
+ db 11, 10 ; end coords
+ dw MenuData2_0x8a417
+ db 1 ; default option
+; 0x8a417
+
+MenuData2_0x8a417: ; 0x8a417
+ db $a0 ; flags
+ db 4 ; items
+ db "めいしりスト@"
+ db "じぶんの めいし@"
+ db "めいしこうかん@"
+ db "やめる@"
+; 0x8a435
+
+MenuDataHeader_0x8a435: ; 0x8a435
+ db $40 ; flags
+ db 02, 00 ; start coords
+ db 09, 10 ; end coords
+ dw MenuData2_0x8a43d
+ db 1 ; default option
+; 0x8a43d
+
+MenuData2_0x8a43d: ; 0x8a43d
+ db $a0 ; flags
+ db 3 ; items
+ db "めいしりスト@"
+ db "じぶんの めいし@"
+ db "やめる@"
+; 0x8a453
+
+Function8a453: ; 8a453 (22:6453)
+ hlcoord 0, 12
+ ld b, $4
+ ld c, $12
+ call TextBox
+ hlcoord 1, 14
+ ld de, String_8a476
+ ld a, [MenuSelection]
+ cp $ff
+ jr z, .asm_8a472
+ ld de, Strings_8a483
+ dec a
+ ld c, a
+ call Function8919e
+.asm_8a472
+ call PlaceString
+ ret
+; 8a476 (22:6476)
+
+String_8a476: ; 8a476
+ db "まえ", $25, "がめん", $1d, "もどります@"
+; 8a483
+
+Strings_8a483: ; 8a483
+ db "おともだち", $25, "めいしは"
+ next "ここ", $1d, "いれておきます@"
+
+ db "でんわばんごう", $1f, "いれると"
+ next "めいしこうかん", $4a, "できます@"
+
+ db "ともだちと じぶん", $25, "めいしを"
+ next "せきがいせんで こうかん します@"
+; 8a4d3
+
+Function8a4d3: ; 8a4d3 (22:64d3)
+ ld a, [MenuSelection]
+ cp $1
+ jr nz, .asm_8a4eb
+ ld a, $5
+ hlcoord 12, 4, AttrMap
+ call Function8a5a3
+ ld a, $7
+ hlcoord 15, 4, AttrMap
+ call Function8a5a3
+ ret
+.asm_8a4eb
+ ld a, $7
+ hlcoord 12, 4, AttrMap
+ call Function8a5a3
+ ld a, $6
+ hlcoord 15, 4, AttrMap
+ call Function8a5a3
+ ret
+
+Function8a4fc: ; 8a4fc (22:64fc)
+ ld a, [MenuSelection]
+ cp $3
+ jr nz, asm_8a529
+ ld hl, wd012
+ ld a, [hli]
+ ld b, a
+ ld a, [hld]
+ add b
+ ld [hl], a
+ ld b, a
+ ld c, $80
+ call Function89cdf
+ call Function8a515
+ ret
+
+Function8a515: ; 8a515 (22:6515)
+ ld hl, wd012
+ ld a, [hl]
+ cp $38
+ jr c, .asm_8a520
+ cp $3c
+ ret c
+.asm_8a520
+ ld a, [wd013]
+ cpl
+ inc a
+ ld [wd013], a
+ ret
+
+asm_8a529: ; 8a529 (22:6529)
+ ld hl, wd012
+ ld a, $3c
+ ld [hli], a
+ ld a, $ff
+ ld [hli], a
+ ld hl, Sprites
+ xor a
+ ld bc, $20
+ call ByteFill
+ ret
+
+Function8a53d: ; 8a53d (22:653d)
+ push hl
+ ld a, $15
+ ld c, $8
+ ld de, $14
+ call Function8a573
+ ld a, $1d
+ ld c, $9
+ call Function8a57c
+ inc a
+ ld [hl], a
+ call Function8a584
+ pop hl
+ add hl, de
+ ld a, $1f
+ ld c, $8
+ call Function8a573
+ dec hl
+ ld a, $51
+ ld [hli], a
+ ld a, $26
+ ld c, $1
+ call Function8a57c
+ ld a, $52
+ ld c, $3
+ call Function8a573
+ ld a, $27
+ ld c, $6
+
+Function8a573: ; 8a573 (22:6573)
+ ld [hl], a
+ call Function8a584
+ inc a
+ dec c
+ jr nz, Function8a573
+ ret
+
+Function8a57c: ; 8a57c (22:657c)
+ ld [hl], a
+ call Function8a584
+ dec c
+ jr nz, Function8a57c
+ ret
+
+Function8a584: ; 8a584 (22:6584)
+ push af
+ ld a, $4
+ call Function89215
+ inc hl
+ pop af
+ ret
+
+Function8a58d: ; 8a58d (22:658d)
+ ld a, $2d
+ ld bc, $606
+ ld de, $14
+.asm_8a595
+ push bc
+ push hl
+.asm_8a597
+ ld [hli], a
+ inc a
+ dec c
+ jr nz, .asm_8a597
+ pop hl
+ add hl, de
+ pop bc
+ dec b
+ jr nz, .asm_8a595
+ ret
+
+Function8a5a3: ; 8a5a3 (22:65a3)
+ ld bc, $603
+ ld de, $14
+.asm_8a5a9
+ push bc
+ push hl
+.asm_8a5ab
+ ld [hli], a
+ dec c
+ jr nz, .asm_8a5ab
+ pop hl
+ add hl, de
+ pop bc
+ dec b
+ jr nz, .asm_8a5a9
+ ret
+
+Function8a5b6: ; 8a5b6 (22:65b6)
+ ld a, [rSVBK] ; $ff00+$70
+ push af
+ ld a, $5
+ ld [rSVBK], a ; $ff00+$70
+ ld hl, Palette_8a5e5
+ ld de, wd020
+ ld bc, $18
+ call CopyBytes
+ ld hl, Palette_8a5fd
+ ld de, Unkn2Pals
+ ld bc, $8
+ call CopyBytes
+ ld hl, Palette_8a605
+ ld de, wd048
+ ld bc, $8
+ call CopyBytes
+ pop af
+ ld [rSVBK], a ; $ff00+$70
+ ret
+; 8a5e5 (22:65e5)
+
+Palette_8a5e5: ; 8a5e5
+ RGB 31, 31, 31
+ RGB 27, 19, 00
+ RGB 07, 11, 22
+ RGB 00, 00, 00
+ RGB 31, 31, 31
+ RGB 16, 16, 31
+ RGB 27, 19, 00
+ RGB 00, 00, 00
+ RGB 31, 31, 31
+ RGB 31, 00, 00
+ RGB 27, 19, 00
+ RGB 00, 00, 00
+; 8a5fd
+
+Palette_8a5fd: ; 8a5fd
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 31, 31, 31
+; 8a605
+
+Palette_8a605: ; 8a605
+ RGB 00, 00, 00
+ RGB 14, 18, 31
+ RGB 16, 16, 31
+ RGB 31, 31, 31
+; 8a60d
+
+Function8a60d: ; 8a60d
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, Palette_8a624
+ ld de, Unkn2Pals
+ ld bc, $0008
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ ret
+; 8a624
+
+Palette_8a624: ; 8a624
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+; 8a62c
+
+Function8a62c: ; 8a62c (22:662c)
+ call Function1d6e
+ call Function891fe
+ xor a
+ call Function8b94a
+ call Function8b677
+.asm_8a639
+ xor a
+ ld [wd033], a
+ ld [wd032], a
+ ld [wd0e3], a
+ call Function8b7bd
+ ld a, c
+ and a
+ jr z, .asm_8a66a
+ ld [MenuSelection], a
+ ld b, a
+ ld a, [wcf77]
+ inc a
+ ld [wd034], a
+ push bc
+ call Function8b960
+ ld a, c
+ pop bc
+ jr z, .asm_8a639
+ ld c, a
+ ld hl, Jumptable_8a671
+ ld a, b
+ ld [MenuSelection], a
+ ld a, c
+ dec a
+ rst JumpTable
+ jr .asm_8a639
+.asm_8a66a
+ call Function891fe
+ call Function89b28
+ ret
+
+Jumptable_8a671: ; 8a671 (22:6671)
+ dw Function8a679
+ dw Function8a6cd
+ dw Function8a8c3
+ dw Function8a930
+
+
+Function8a679: ; 8a679 (22:6679)
+ call Function891de
+ call WhiteBGMap
+ call Function893cc
+ call OpenSRAMBank4
+ call Function8931b
+ call Function89844
+ call CloseSRAM
+ call OpenSRAMBank4
+ call Function8939a
+ call Function89856
+ hlcoord 1, 13
+ call Function899fe
+ call Function891ab
+ call CloseSRAM
+.asm_8a6a3
+ call Function89a57
+ jr c, .asm_8a6a3
+ and a
+ jr z, Function8a679
+ ld hl, Jumptable_8a6bc
+ dec a
+ rst JumpTable
+ jr c, Function8a679
+ call Function891fe
+ call Function8b677
+ call Function89448
+ ret
+
+Jumptable_8a6bc: ; 8a6bc (22:66bc)
+ dw Function8a6c0
+ dw Function8a6c5
+
+
+Function8a6c0: ; 8a6c0 (22:66c0)
+ call PlayClickSFX
+ and a
+ ret
+
+Function8a6c5: ; 8a6c5 (22:66c5)
+ call PlayClickSFX
+ call Function89d0d
+ scf
+ ret
+
+Function8a6cd: ; 8a6cd (22:66cd)
+ call Function891de
+ call WhiteBGMap
+ call Function893cc
+ call OpenSRAMBank4
+ call Function8931b
+ call Function89844
+ call Function8a757
+ call CloseSRAM
+.asm_8a6e5
+ call OpenSRAMBank4
+ call Function8931b
+ call Function89856
+ call Function89a2e
+ call Function891ab
+ xor a
+ ld [wd02f], a
+ call CloseSRAM
+.asm_8a6fb
+ call Function89b97
+ call Function89c67
+ jr c, .asm_8a718
+ ld a, b
+ and a
+ jr z, .asm_8a6fb
+ call PlayClickSFX
+ call Function89448
+ ld a, [wd011]
+ ld hl, Jumptable_8a74f
+ rst JumpTable
+ jr nc, .asm_8a6e5
+ jr .asm_8a742
+.asm_8a718
+ call OpenSRAMBank4
+ call Function8a765
+ call CloseSRAM
+ jr nc, .asm_8a73f
+ call Function8923c
+ call Function89448
+ call Function89a23
+ hlcoord 1, 13
+ ld de, String_89135
+ call PlaceString
+ call WaitBGMap
+ ld a, $2
+ call Function89254
+ jr c, .asm_8a6e5
+.asm_8a73f
+ call CloseSRAM
+.asm_8a742
+ call WhiteBGMap
+ call Function89448
+ call Function891d3
+ call Function8b677
+ ret
+
+Jumptable_8a74f: ; 8a74f (22:674f)
+ dw Function8a78c
+ dw Function8a7cb
+ dw Function8a818
+ dw Function8a8a1
+
+
+Function8a757: ; 8a757 (22:6757)
+ call Function8939a
+ xor a
+ ld [wd010], a
+ ld [wd011], a
+ ld [wd012], a
+ ret
+
+Function8a765: ; 8a765 (22:6765)
+ call Function8931b
+ push bc
+ ld hl, $0
+ add hl, bc
+ ld de, DefaultFlypoint
+ ld c, $6
+ call Function89185
+ pop bc
+ jr nz, .asm_8a78a
+ push bc
+ ld hl, $11
+ add hl, bc
+ ld de, wd008
+ ld c, $8
+ call Function89185
+ pop bc
+ jr nz, .asm_8a78a
+ and a
+ ret
+.asm_8a78a
+ scf
+ ret
+
+Function8a78c: ; 8a78c (22:678c)
+ call Function891fe
+ ld de, DefaultFlypoint
+ ld b, $5
+ callba Function116c1
+ call OpenSRAMBank4
+ call Function8931b
+ push bc
+ ld hl, $0
+ add hl, bc
+ ld d, h
+ ld e, l
+ ld hl, DefaultFlypoint
+ call InitName
+ call CloseSRAM
+ call DelayFrame
+ call Functiona57
+ call Function891de
+ call WhiteBGMap
+ call Function893cc
+ call OpenSRAMBank4
+ pop bc
+ call Function89844
+ call CloseSRAM
+ and a
+ ret
+
+Function8a7cb: ; 8a7cb (22:67cb)
+ ld a, [MenuSelection]
+ push af
+ call Function891de
+ ld de, wd008
+ ld c, $0
+ callba Function17a68f
+ jr c, .asm_8a7f4
+ ld hl, wd008
+ ld a, $ff
+ ld bc, $8
+ call ByteFill
+ ld h, d
+ ld l, e
+ ld de, wd008
+ ld c, $8
+ call Function89193
+.asm_8a7f4
+ pop af
+ ld [MenuSelection], a
+ call Function891de
+ call WhiteBGMap
+ call Function893cc
+ call OpenSRAMBank4
+ call Function8931b
+ call Function89844
+ call Function89856
+ call Function89a2e
+ call Function891ab
+ call CloseSRAM
+ and a
+ ret
+
+Function8a818: ; 8a818 (22:6818)
+ call Function89a23
+ ld hl, DefaultFlypoint
+ call Function89331
+ jr c, .asm_8a875
+ ld hl, wd008
+ call Function89b45
+ jr nc, .asm_8a87a
+ call OpenSRAMBank4
+ call Function8a765
+ jr nc, .asm_8a863
+ call Function8931b
+ push bc
+ ld hl, $0
+ add hl, bc
+ ld d, h
+ ld e, l
+ ld hl, DefaultFlypoint
+ ld c, $6
+ call Function89193
+ pop bc
+ ld hl, $11
+ add hl, bc
+ ld d, h
+ ld e, l
+ ld hl, wd008
+ ld c, $8
+ call Function89193
+ hlcoord 1, 13
+ ld de, .string_8a868
+ call PlaceString
+ call WaitBGMap
+ call Functiona36
+.asm_8a863
+ call CloseSRAM
+ scf
+ ret
+; 8a868 (22:6868)
+
+.string_8a868
+ db "めいし", $1f, "かきかえ まし", $22, "@"
+
+.asm_8a875
+ ld de, String_8a88b
+ jr .asm_8a87d
+.asm_8a87a
+ ld de, String_8911c
+.asm_8a87d
+ hlcoord 1, 13
+ call PlaceString
+ call WaitBGMap
+ call Functiona36
+ and a
+ ret
+; 8a88b (22:688b)
+
+String_8a88b: ; 8a88b
+ db "おともだち", $25, "なまえが"
+ next "かかれて いません!@"
+; 8a8a1
+
+Function8a8a1: ; 8a8a1 (22:68a1)
+ call OpenSRAMBank4
+ call Function8a765
+ call CloseSRAM
+ jr nc, .asm_8a8bf
+ call Function89a23
+ hlcoord 1, 13
+ ld de, String_89135
+ call PlaceString
+ ld a, $2
+ call Function89254
+ jr c, .asm_8a8c1
+.asm_8a8bf
+ scf
+ ret
+.asm_8a8c1
+ and a
+ ret
+
+Function8a8c3: ; 8a8c3 (22:68c3)
+ call Function891de
+ call WhiteBGMap
+ call Function893cc
+ call OpenSRAMBank4
+ call Function8931b
+ call Function89844
+ call Function8939a
+ call Function89856
+ call CloseSRAM
+ call Function891ab
+ hlcoord 1, 13
+ ld de, String_8a919
+ call PlaceString
+ ld a, $2
+ call Function89254
+ jr c, .asm_8a90f
+ call OpenSRAMBank4
+ call Function892b4
+ call CloseSRAM
+ call Function89a23
+ call Function8923c
+ hlcoord 1, 13
+ ld de, String_8a926
+ call PlaceString
+ call WaitBGMap
+ call Functiona36
+.asm_8a90f
+ call Function89448
+ call Function891fe
+ call Function8b677
+ ret
+; 8a919 (22:6919)
+
+String_8a919: ; 8a919
+ db "このデータ", $1f, "けしますか?@"
+; 8a926
+
+String_8a926: ; 8a926
+ db "データ", $1f, "けしまし", $22, "@"
+; 8a930
+
+Function8a930: ; 8a930 (22:6930)
+ ld a, [MenuSelection]
+ push af
+ xor a
+ ld [wd032], a
+ ld a, $1
+ ld [wd033], a
+ ld a, [wd034]
+ ld [wd0e3], a
+.asm_8a943
+ call Function8b7bd
+ ld a, [wcf73]
+ and $1
+ jr nz, .asm_8a953
+ ld a, c
+ and a
+ jr nz, .asm_8a943
+ pop af
+ ret
+.asm_8a953
+ call OpenSRAMBank4
+ pop af
+ cp c
+ jr z, .asm_8a995
+ push bc
+ ld [MenuSelection], a
+ call Function8931b
+ push bc
+ ld h, b
+ ld l, c
+ ld de, DefaultFlypoint
+ ld bc, $25
+ call CopyBytes
+ pop de
+ pop bc
+ ld a, c
+ ld [MenuSelection], a
+ call Function8931b
+ push bc
+ ld h, b
+ ld l, c
+ ld bc, $25
+ call CopyBytes
+ pop de
+ ld hl, DefaultFlypoint
+ ld bc, $25
+ call CopyBytes
+ ld de, SFX_SWITCH_POKEMON
+ call WaitPlaySFX
+ ld de, SFX_SWITCH_POKEMON
+ call WaitPlaySFX
+.asm_8a995
+ call CloseSRAM
+ ret
+
+Function8a999: ; 8a999 (22:6999)
+ ld hl, MenuDataHeader_0x8a9c9
+ call LoadMenuDataHeader
+ ld c, $1
+.asm_8a9a1
+ call Function8a9ce
+ jr c, .asm_8a9bb
+ push bc
+ push de
+ call Function1d6e
+ pop de
+ dec e
+ ld a, e
+ ld hl, Jumptable_8a9c5
+ rst JumpTable
+ call Function891fe
+ call Function89b28
+ pop bc
+ jr .asm_8a9a1
+.asm_8a9bb
+ call Function89209
+ call WriteBackup
+ call Function8920f
+ ret
+
+Jumptable_8a9c5: ; 8a9c5 (22:69c5)
+ dw Function8aa0a
+ dw Function8ab3b
+; 8a9c9 (22:69c9)
+
+MenuDataHeader_0x8a9c9: ; 0x8a9c9
+ db $40 ; flags
+ db 04, 11 ; start coords
+ db 11, 18 ; end coords
+; 8a9ce
+
+Function8a9ce: ; 8a9ce (22:69ce)
+ push bc
+ decoord 11, 4
+ ld b, $6
+ ld c, $6
+ call Function89b3b
+ pop bc
+ ld a, c
+ ld hl, MenuDataHeader_0x8a9f2
+ call Function89d5e
+ ld hl, Function8aa09
+ call Function89d85
+ jr c, .asm_8a9ed
+ ld c, a
+ ld e, a
+ and a
+ ret
+.asm_8a9ed
+ ld c, a
+ ld e, $0
+ scf
+ ret
+; 8a9f2 (22:69f2)
+
+MenuDataHeader_0x8a9f2: ; 0x8a9f2
+ db $40 ; flags
+ db 04, 11 ; start coords
+ db 11, 18 ; end coords
+ dw MenuData2_0x8a9fa
+ db 1 ; default option
+; 0x8a9fa
+
+MenuData2_0x8a9fa: ; 0x8a9fa
+ db $a0 ; flags
+ db 3 ; items
+ db "へんしゅう@"
+ db "みる@"
+ db "やめる@"
+; 0x8aa09
+
+Function8aa09: ; 8aa09
+ ret
+; 8aa0a
+
+Function8aa0a: ; 8aa0a (22:6a0a)
+ ld a, $1
+ ld [wd02f], a
+ ld [wd011], a
+ xor a
+ ld [wd010], a
+ ld [wd012], a
+ call OpenSRAMBank4
+ ld hl, $a603
+ ld de, wd008
+ call Function89381
+ call CloseSRAM
+ call Function891fe
+ call WhiteBGMap
+ call Function893cc
+ call Function89807
+ call Function89492
+ call Function894ca
+.asm_8aa3a
+ call Function8987f
+ call Function89a2e
+ call Function891ab
+.asm_8aa43
+ call Function89b97
+ call Function89c67
+ jr c, .asm_8aa61
+ ld a, b
+ and a
+ jr z, .asm_8aa43
+ call PlayClickSFX
+ call Function89448
+ ld a, [wd011]
+ dec a
+ ld hl, Jumptable_8aa6d
+ rst JumpTable
+ jr nc, .asm_8aa3a
+ jr .asm_8aa69
+.asm_8aa61
+ call Function89448
+ call Function8ab11
+ jr nc, .asm_8aa3a
+.asm_8aa69
+ call Function89448
+ ret
+
+Jumptable_8aa6d: ; 8aa6d (22:6a6d)
+ dw Function8aa73
+ dw Function8aab6
+ dw Function8ab11
+
+
+Function8aa73: ; 8aa73 (22:6a73)
+ ld a, [MenuSelection]
+ ld e, a
+ push de
+ call Function891de
+ ld de, wd008
+ ld c, $0
+ callba Function17a68f
+ jr c, .asm_8aa9d
+ ld hl, wd008
+ ld a, $ff
+ ld bc, $8
+ call ByteFill
+ ld h, d
+ ld l, e
+ ld de, wd008
+ ld c, $8
+ call Function89193
+.asm_8aa9d
+ call Function891fe
+ call WhiteBGMap
+ call Function893cc
+ call Function89807
+ call Function89492
+ call Function894ca
+ pop de
+ ld a, e
+ ld [MenuSelection], a
+ and a
+ ret
+
+Function8aab6: ; 8aab6 (22:6ab6)
+ call Function89a23
+ ld hl, wd008
+ call Function89b45
+ jr nc, Function8ab00
+ call OpenSRAMBank4
+ ld de, wd008
+ ld hl, $a603
+ ld c, $8
+ call Function89185
+ jr z, .asm_8aaeb
+ ld hl, wd008
+ ld de, $a603
+ ld c, $8
+ call Function89193
+ hlcoord 1, 13
+ ld de, String_8aaf0
+ call PlaceString
+ call WaitBGMap
+ call Functiona36
+.asm_8aaeb
+ call CloseSRAM
+ scf
+ ret
+; 8aaf0 (22:6af0)
+
+String_8aaf0: ; 8aaf0
+ db "あたらしい めいし", $4a, "できまし", $22, "@"
+; 8ab00
+
+Function8ab00: ; 8ab00
+ ld de, String_8911c
+ hlcoord 1, 13
+ call PlaceString
+ call WaitBGMap
+ call Function89235
+ and a
+ ret
+
+Function8ab11: ; 8ab11 (22:6b11)
+ call OpenSRAMBank4
+ ld hl, $a603
+ ld de, wd008
+ ld c, $8
+ call Function89185
+ call CloseSRAM
+ jr z, .asm_8ab37
+ call Function89a23
+ hlcoord 1, 13
+ ld de, String_89135
+ call PlaceString
+ ld a, $2
+ call Function89254
+ jr c, .asm_8ab39
+.asm_8ab37
+ scf
+ ret
+.asm_8ab39
+ and a
+ ret
+
+Function8ab3b: ; 8ab3b (22:6b3b)
+ call Function891fe
+ call WhiteBGMap
+ call Function893cc
+ call Function89807
+ call Function89492
+ call Function894ca
+ call OpenSRAMBank4
+ ld hl, $a603
+ ld de, wd008
+ call Function89381
+ call CloseSRAM
+ call Function8987f
+ call OpenSRAMBank4
+ hlcoord 1, 13
+ ld bc, $a007
+ call Function89a0c
+ call CloseSRAM
+ call Function891ab
+ call Function8ab77
+ jr c, Function8ab3b
+ ret
+
+Function8ab77: ; 8ab77 (22:6b77)
+ call Function354b
+ bit 0, c
+ jr nz, .asm_8ab8e
+ bit 1, c
+ jr nz, .asm_8ab8e
+ bit 3, c
+ jr z, Function8ab77
+ call PlayClickSFX
+ call Function89d0d
+ scf
+ ret
+.asm_8ab8e
+ call PlayClickSFX
+ and a
+ ret
+
+Function8ab93: ; 8ab93 (22:6b93)
+ call WhiteBGMap
+ call Function1d6e
+ callba Function105688
+ call ClearSprites
+ call Function891fe
+ call Function89b28
+ ret
+; 8aba9 (22:6ba9)
+
+Function8aba9: ; 8aba9
+ ld a, $2
+ call Function8b94a
+ ld a, $1
+ ld [wd032], a
+.asm_8abb3
+ call Function891fe
+ call Function8b677
+.asm_8abb9
+ call Function8b7bd
+ jr z, .asm_8abdf
+ ld a, c
+ ld [MenuSelection], a
+ call OpenSRAMBank4
+ call Function8931b
+ ld hl, $0011
+ add hl, bc
+ call Function89b45
+ call CloseSRAM
+ jr c, .asm_8abe2
+ ld de, SFX_WRONG
+ call WaitPlaySFX
+ call CloseSRAM
+ jr .asm_8abb9
+
+.asm_8abdf
+ xor a
+ ld c, a
+ ret
+
+.asm_8abe2
+ call PlayClickSFX
+.asm_8abe5
+ call Function891de
+ call WhiteBGMap
+ call Function893cc
+ call OpenSRAMBank4
+ call Function8931b
+ call Function89844
+ call CloseSRAM
+ call OpenSRAMBank4
+ call Function8939a
+ call Function89856
+ hlcoord 1, 13
+ call Function899fe
+ call CloseSRAM
+ call Function891ab
+.asm_8ac0f
+ call Function89a57
+ jr c, .asm_8ac0f
+ and a
+ jr z, .asm_8abe5
+ cp $2
+ jr z, .asm_8ac0f
+ hlcoord 0, 12
+ ld b, $4
+ ld c, $12
+ call TextBox
+ hlcoord 1, 14
+ ld de, String_8ac3b
+ call PlaceString
+ ld a, $1
+ call Function8925e
+ jp c, .asm_8abb3
+ ld a, [MenuSelection]
+ ld c, a
+ ret
+; 8ac3b
+
+String_8ac3b: ; 8ac3b
+ db "こ", $25, "ともだち", $1d, "でんわを"
+ next "かけますか?@"
+; 8ac4e
+
+Function8ac4e: ; 8ac4e
+ xor a
+ ld [MenuSelection], a
+ push de
+ call Function891de
+ call WhiteBGMap
+ call Function893cc
+ pop bc
+ call Function89844
+ call Function8939a
+ call Function89856
+ hlcoord 1, 13
+ call Function899fe
+ call Function891ab
+ ret
+; 8ac70
+
+Function8ac70: ; 8ac70
+ push de
+ ld a, $3
+ call Function8b94a
+
+Function8ac76: ; 8ac76
+ call Function891fe
+ call Function8b677
+
+Function8ac7c: ; 8ac7c
+ call Function8b7bd
+ jr z, .asm_8acf0
+ ld a, c
+ ld [wd02f], a
+ ld [MenuSelection], a
+ call OpenSRAMBank4
+ call Function8931b
+ call Function8932d
+ call CloseSRAM
+ jr nc, .asm_8acb0
+ call OpenSRAMBank4
+ ld hl, $0011
+ add hl, bc
+ call Function89b45
+ call CloseSRAM
+ jr nc, .asm_8accc
+ call OpenSRAMBank4
+ call Function892b7
+ call CloseSRAM
+ jr .asm_8accc
+
+.asm_8acb0
+ call Function8ad0b
+ jr c, Function8ac76
+ and a
+ jr nz, .asm_8accc
+ call OpenSRAMBank4
+ ld h, b
+ ld l, c
+ ld d, $0
+ ld e, $6
+ add hl, de
+ ld d, h
+ ld e, l
+ pop hl
+ ld c, $1f
+ call Function89193
+ jr .asm_8ace4
+
+.asm_8accc
+ pop hl
+ call OpenSRAMBank4
+ ld d, b
+ ld e, c
+ ld c, $6
+ call Function89193
+ ld a, $6
+ add e
+ ld e, a
+ ld a, $0
+ adc d
+ ld d, a
+ ld c, $1f
+ call Function89193
+
+.asm_8ace4
+ call CloseSRAM
+ call Functione51
+ ld a, [wd02f]
+ ld c, a
+ and a
+ ret
+
+.asm_8acf0
+ ld hl, UnknownText_0x8ad06
+ call PrintText
+ ld a, $2
+ call Function89259
+ jp c, Function8ac7c
+ call Functione51
+ pop de
+ ld c, $0
+ scf
+ ret
+; 8ad06
+
+UnknownText_0x8ad06: ; 0x8ad06
+ ; Finish registering CARDS?
+ text_jump UnknownText_0x1c554a
+ db "@"
+; 0x8ad0b
+
+Function8ad0b: ; 8ad0b
+.asm_8ad0b
+ ld a, [MenuSelection]
+ ld [wd02f], a
+ call Function891de
+ call WhiteBGMap
+ call Function893cc
+ call OpenSRAMBank4
+ call Function8931b
+ push bc
+ call Function89844
+ call Function8939a
+ call Function89856
+ hlcoord 1, 13
+ call Function899fe
+ call CloseSRAM
+ call Function891ab
+ pop bc
+.asm_8ad37
+ push bc
+ call Function89a57
+ pop bc
+ jr c, .asm_8ad37
+ and a
+ jr z, .asm_8ad0b
+ cp $2
+ jr z, .asm_8ad37
+ call Function8923c
+ push bc
+ hlcoord 0, 12
+ ld b, $4
+ ld c, $12
+ call TextBox
+ ld de, String_8ad89
+ hlcoord 1, 14
+ call PlaceString
+ ld a, $2
+ call Function8925e
+ jr c, .asm_8ad87
+ call Function8923c
+ hlcoord 0, 12
+ ld b, $4
+ ld c, $12
+ call TextBox
+ ld de, String_8ad9c
+ hlcoord 1, 14
+ call PlaceString
+ ld a, $1
+ call Function8925e
+ jr c, .asm_8ad84
+ ld a, $0
+ jr .asm_8ad86
+
+.asm_8ad84
+ ld a, $1
+
+.asm_8ad86
+ and a
+
+.asm_8ad87
+ pop bc
+ ret
+; 8ad89
+
+String_8ad89: ; 8ad89
+ db "こ", $25, "めいし", $1f, "けして"
+ next "いれかえますか?@"
+; 8ad9c
+
+String_8ad9c: ; 8ad9c
+ db "おともだち", $25, "なまえを"
+ next "のこして おきますか?@"
+; 8adb3
+
+Function8adb3: ; 8adb3
+ call Function891de
+ call Function8a262
+ push af
+ call Function891de
+ pop af
+ ret
+; 8adbf
+
+Function8adbf: ; 8adbf
+ call OpenSRAMBank4
+ ld hl, $a603
+ call Function89b45
+ call CloseSRAM
+ ret
+; 8adcc
+
+Function8adcc: ; 8adcc
+ call OpenSRAMBank4
+ call Function8b3b0
+ call CloseSRAM
+ ret nc
+ cp $2
+ ret z
+ scf
+ ret
+; 8addb
diff --git a/misc/mobile_22_2.asm b/misc/mobile_22_2.asm
new file mode 100644
index 000000000..a56fd0c76
--- /dev/null
+++ b/misc/mobile_22_2.asm
@@ -0,0 +1,1155 @@
+Function8b342:: ; 8b342
+; Loads the secondary map header pointer, then runs through a
+; jumptable with three dummy functions. Spends a lot of energy
+; doing pretty much nothing.
+ call GetSecondaryMapHeaderPointer
+ ld d, h
+ ld e, l
+
+; Everything between here and "ret" is useless.
+ xor a
+.loop
+ push af
+ ld hl, .jumptable
+ rst JumpTable
+ pop af
+ inc a
+ cp 3
+ jr nz, .loop
+ ret
+; 8b354
+
+.jumptable: ; 8b354
+ dw .zero
+ dw .one
+ dw .two
+; 8b35a
+
+.zero: ; 8b35a
+ mobile
+; 8b35b
+
+.one: ; 8b35b
+ mobile
+; 8b35c
+
+.two: ; 8b35c
+ mobile
+; 8b35d
+
+Function8b35d: ; 8b35d
+ ld a, h
+ cp d
+ ret nz
+ ld a, l
+ cp e
+ ret
+; 8b363
+
+Function8b363: ; 8b363
+ push bc
+ callba Function10632f
+ pop bc
+ ret
+; 8b36c
+
+Function8b36c: ; 8b36c (22:736c)
+ push bc
+ ld h, b
+ ld l, c
+ ld bc, $4
+ ld a, -1
+ call ByteFill
+ pop bc
+ ret
+
+Function8b379: ; 8b379 (22:7379)
+ push bc
+ ld a, c
+ add e
+ ld c, a
+ ld a, $0
+ adc b
+ ld b, a
+ ld a, [bc]
+ ld d, a
+ pop bc
+ ret
+
+Function8b385: ; 8b385 (22:7385)
+ push bc
+ ld a, c
+ add e
+ ld c, a
+ ld a, $0
+ adc b
+ ld b, a
+ ld a, d
+ ld [bc], a
+ pop bc
+ ret
+
+Function8b391: ; 8b391 (22:7391)
+ push bc
+ ld e, $0
+ ld d, $4
+.asm_8b396
+ ld a, [bc]
+ inc bc
+ cp $ff
+ jr z, .asm_8b3a2
+ inc e
+ dec d
+ jr nz, .asm_8b396
+ dec e
+ scf
+.asm_8b3a2
+ pop bc
+ ret
+
+Function8b3a4: ; 8b3a4 (22:73a4)
+ push de
+ push bc
+ ld d, b
+ ld e, c
+ ld c, $4
+ call Function89185
+ pop bc
+ pop de
+ ret
+
+Function8b3b0: ; 8b3b0 (22:73b0)
+ ld bc, $a037
+ ld a, [$a60b]
+ and a
+ jr z, .asm_8b3c2
+ cp $3
+ jr nc, .asm_8b3c2
+ call Function8b391
+ jr c, .asm_8b3c9
+.asm_8b3c2
+ call Function8b36c
+ xor a
+ ld [$a60b], a
+.asm_8b3c9
+ ld a, [$a60b]
+ ret
+
+Function8b3cd: ; 8b3cd (22:73cd)
+ push de
+ push bc
+ ld e, $4
+.asm_8b3d1
+ ld a, [bc]
+ inc bc
+ call Function8998b
+ inc hl
+ dec e
+ jr nz, .asm_8b3d1
+ pop bc
+ pop de
+ ret
+
+Function8b3dd: ; 8b3dd (22:73dd)
+ push de
+ push bc
+ call Function354b
+ ld a, c
+ pop bc
+ pop de
+ bit 0, a
+ jr nz, .asm_8b3f7
+ bit 1, a
+ jr nz, .asm_8b40e
+ bit 6, a
+ jr nz, .asm_8b429
+ bit 7, a
+ jr nz, .asm_8b443
+ and a
+ ret
+.asm_8b3f7
+ ld a, e
+ cp $3
+ jr z, .asm_8b407
+ inc e
+ ld d, $0
+ call Function8b385
+ xor a
+ ld [wd010], a
+ ret
+.asm_8b407
+ call PlayClickSFX
+ ld d, $0
+ scf
+ ret
+.asm_8b40e
+ ld a, e
+ and a
+ jr nz, .asm_8b41e
+ call PlayClickSFX
+ ld d, $ff
+ call Function8b385
+ ld d, $1
+ scf
+ ret
+.asm_8b41e
+ ld d, $ff
+ call Function8b385
+ dec e
+ xor a
+ ld [wd010], a
+ ret
+.asm_8b429
+ call Function8b379
+ ld a, d
+ cp $a
+ jr c, .asm_8b433
+ ld d, $9
+.asm_8b433
+ inc d
+ ld a, d
+ cp $a
+ jr c, .asm_8b43b
+ ld d, $0
+.asm_8b43b
+ call Function8b385
+ xor a
+ ld [wd010], a
+ ret
+.asm_8b443
+ call Function8b379
+ ld a, d
+ cp $a
+ jr c, .asm_8b44d
+ ld d, $0
+.asm_8b44d
+ ld a, d
+ dec d
+ and a
+ jr nz, .asm_8b454
+ ld d, $9
+.asm_8b454
+ call Function8b385
+ xor a
+ ld [wd010], a
+ ret
+
+Function8b45c: ; 8b45c (22:745c)
+ call Function8b36c
+ xor a
+ ld [wd010], a
+ ld [wd012], a
+ call Function8b391
+ ld d, $0
+ call Function8b385
+.asm_8b46e
+ call Function8923c
+ call Function8b493
+ call Function8b4cc
+ call Function8b518
+ call Function89b78
+ push bc
+ call Function8b4fd
+ call Function89c44
+ ld a, $1
+ ld [hBGMapMode], a ; $ff00+$d4
+ pop bc
+ call Function8b3dd
+ jr nc, .asm_8b46e
+ ld a, d
+ and a
+ ret z
+ scf
+ ret
+
+Function8b493: ; 8b493 (22:7493)
+ push bc
+ call Function8923c
+ call Function8b521
+ ld hl, Jumptable_8b4a0
+ pop bc
+ rst JumpTable
+ ret
+
+Jumptable_8b4a0: ; 8b4a0 (22:74a0)
+ dw Function8b4a4
+ dw Function8b4b8
+
+
+Function8b4a4: ; 8b4a4 (22:74a4)
+ push bc
+ push de
+ call Function8b4d8
+ call TextBox
+ pop de
+ pop bc
+ call Function8b4cc
+ call Function8b518
+ call Function8b3cd
+ ret
+
+Function8b4b8: ; 8b4b8 (22:74b8)
+ push bc
+ push de
+ call Function8b4ea
+ call Function89b3b
+ pop de
+ pop bc
+ call Function8b4cc
+ call Function8b518
+ call Function8b3cd
+ ret
+
+Function8b4cc: ; 8b4cc (22:74cc)
+ push bc
+ ld hl, Unknown_8b529
+ call Function8b50a
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ pop bc
+ ret
+
+Function8b4d8: ; 8b4d8 (22:74d8)
+ ld hl, Unknown_8b529
+ call Function8b50a
+ push hl
+rept 2
+ inc hl
+endr
+ ld a, [hli]
+ ld b, a
+ ld a, [hl]
+ ld c, a
+ pop hl
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ret
+
+Function8b4ea: ; 8b4ea (22:74ea)
+ ld hl, Unknown_8b529
+ call Function8b50a
+ push hl
+rept 2
+ inc hl
+endr
+ ld a, [hli]
+ ld b, a
+ ld a, [hl]
+ ld c, a
+ pop hl
+ ld a, [hli]
+ ld e, a
+ ld a, [hl]
+ ld d, a
+ ret
+
+Function8b4fd: ; 8b4fd (22:74fd)
+ ld hl, Unknown_8b529 + 4
+ call Function8b50a
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ ld a, [hli]
+ ld d, a
+ ret
+
+Function8b50a: ; 8b50a (22:750a)
+ ld a, [wd02e]
+ and a
+ ret z
+ ld b, $0
+ ld c, $8
+.asm_8b513
+ add hl, bc
+ dec a
+ jr nz, .asm_8b513
+ ret
+
+Function8b518: ; 8b518 (22:7518)
+ push de
+ ld d, $0
+ ld e, $14
+ add hl, de
+ inc hl
+ pop de
+ ret
+
+Function8b521: ; 8b521 (22:7521)
+ ld hl, Unknown_8b529 + 7
+ call Function8b50a
+ ld a, [hl]
+ ret
+; 8b529 (22:7529)
+
+Unknown_8b529: ; 8b529
+ dwcoord 2, 5
+ db 1, 4, $20, $49, 0, 1
+ dwcoord 7, 4
+ db 1, 4, $48, $41, 0, 0
+; 8b539
+
+Function8b539: ; 8b539 (22:7539)
+ ld bc, wd017
+ call Function8b36c
+ xor a
+ ld [wd012], a
+ ld [wd02e], a
+ call Function8b493
+ call Function8b4fd
+ ld e, $0
+ call Function89c44
+ call Function3238
+ ret
+
+Function8b555: ; 8b555 (22:7555)
+ ld hl, UnknownText_0x8b5ce
+ call PrintText
+ ld bc, wd017
+ call Function8b45c
+ jr c, .asm_8b5c8
+ call Function89448
+ ld bc, wd017
+ call Function8b493
+ ld bc, wd017
+ call Function8b664
+ jr nz, .asm_8b57c
+ ld hl, UnknownText_0x8b5e2
+ call PrintText
+ jr Function8b555
+.asm_8b57c
+ ld hl, UnknownText_0x8b5d3
+ call PrintText
+ ld bc, wd013
+ call Function8b45c
+ jr c, Function8b555
+ ld bc, wd017
+ ld hl, wd013
+ call Function8b3a4
+ jr z, .asm_8b5a6
+ call Function89448
+ ld bc, wd013
+ call Function8b493
+ ld hl, UnknownText_0x8b5d8
+ call PrintText
+ jr .asm_8b57c
+.asm_8b5a6
+ call OpenSRAMBank4
+ ld hl, wd013
+ ld de, $a037
+ ld bc, $4
+ call CopyBytes
+ call CloseSRAM
+ call Function89448
+ ld bc, wd013
+ call Function8b493
+ ld hl, UnknownText_0x8b5dd
+ call PrintText
+ and a
+.asm_8b5c8
+ push af
+ call Function89448
+ pop af
+ ret
+; 8b5ce (22:75ce)
+
+UnknownText_0x8b5ce: ; 0x8b5ce
+ ; Please enter any four-digit number.
+ text_jump UnknownText_0x1bc187
+ db "@"
+; 0x8b5d3
+
+UnknownText_0x8b5d3: ; 0x8b5d3
+ ; Enter the same number to confirm.
+ text_jump UnknownText_0x1bc1ac
+ db "@"
+; 0x8b5d8
+
+UnknownText_0x8b5d8: ; 0x8b5d8
+ ; That's not the same number.
+ text_jump UnknownText_0x1bc1cf
+ db "@"
+; 0x8b5dd
+
+UnknownText_0x8b5dd: ; 0x8b5dd
+ ; Your PASSCODE has been set. Enter this number next time to open the CARD FOLDER.
+ text_jump UnknownText_0x1bc1eb
+ db "@"
+; 0x8b5e2
+
+UnknownText_0x8b5e2: ; 0x8b5e2
+ ; 0000 is invalid!
+ text_jump UnknownText_0x1bc23e
+ db "@"
+; 0x8b5e7
+
+Function8b5e7: ; 8b5e7 (22:75e7)
+ ld bc, wd013
+ call Function8b36c
+ xor a
+ ld [wd012], a
+ ld [wd02e], a
+ call Function8b493
+ call Function891ab
+ call Function8b4fd
+ ld e, $0
+ call Function89c44
+.asm_8b602
+ ld hl, UnknownText_0x8b642
+ call PrintText
+ ld bc, wd013
+ call Function8b45c
+ jr c, .asm_8b63c
+ call Function89448
+ ld bc, wd013
+ call Function8b493
+ call OpenSRAMBank4
+ ld hl, $a037
+ call Function8b3a4
+ call CloseSRAM
+ jr z, .asm_8b635
+ ld hl, UnknownText_0x8b647
+ call PrintText
+ ld bc, wd013
+ call Function8b36c
+ jr .asm_8b602
+.asm_8b635
+ ld hl, UnknownText_0x8b64c
+ call PrintText
+ and a
+.asm_8b63c
+ push af
+ call Function89448
+ pop af
+ ret
+; 8b642 (22:7642)
+
+UnknownText_0x8b642: ; 0x8b642
+ ; Enter the CARD FOLDER PASSCODE.
+ text_jump UnknownText_0x1bc251
+ db "@"
+; 0x8b647
+
+UnknownText_0x8b647: ; 0x8b647
+ ; Incorrect PASSCODE!
+ text_jump UnknownText_0x1bc272
+ db "@"
+; 0x8b64c
+
+UnknownText_0x8b64c: ; 0x8b64c
+ ; CARD FOLDER open.@ @
+ text_jump UnknownText_0x1bc288
+ start_asm
+; 0x8b651
+
+Function8b651: ; 8b651
+ ld de, SFX_TWINKLE
+ call PlaySFX
+ call WaitSFX
+ ld c, $8
+ call DelayFrames
+ ld hl, .string_8b663
+ ret
+.string_8b663
+ db "@"
+; 8b664
+
+Function8b664: ; 8b664 (22:7664)
+ push bc
+ ld de, $4
+.asm_8b668
+ ld a, [bc]
+ cp $0
+ jr nz, .asm_8b66e
+ inc d
+.asm_8b66e
+ inc bc
+ dec e
+ jr nz, .asm_8b668
+ pop bc
+ ld a, d
+ cp $4
+ ret
+
+Function8b677: ; 8b677
+ call WhiteBGMap
+ call DisableLCD
+ call Function8b690
+ call Function8b6bb
+ call Function8b6ed
+ call EnableLCD
+ call Function891ab
+ call Function32f9
+ ret
+; 8b690
+
+Function8b690: ; 8b690
+ ld hl, GFX_17afa5 + $514
+ ld de, VTiles2
+ ld bc, $160
+ ld a, BANK(GFX_17afa5)
+ call FarCopyBytes
+ ld hl, GFX_17afa5 + $514 + $160 - $10
+ ld de, VTiles2 tile $61
+ ld bc, $10
+ ld a, BANK(GFX_17afa5)
+ call FarCopyBytes
+ ld hl, GFX_17afa5 + $514 + $160
+ ld de, VTiles1 tile $6e
+ ld bc, $10
+ ld a, BANK(GFX_17afa5)
+ call FarCopyBytes
+ ret
+; 8b6bb
+
+Function8b6bb: ; 8b6bb
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, Palette_8b6d5
+ ld de, Unkn1Pals
+ ld bc, $0018
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ call Function8949c
+ ret
+; 8b6d5
+
+Palette_8b6d5: ; 8b6d5
+ RGB 31, 31, 31
+ RGB 31, 21, 00
+ RGB 14, 07, 03
+ RGB 00, 00, 00
+ RGB 31, 31, 31
+ RGB 31, 21, 00
+ RGB 22, 09, 17
+ RGB 00, 00, 00
+ RGB 31, 31, 31
+ RGB 31, 21, 00
+ RGB 06, 24, 08
+ RGB 00, 00, 00
+; 8b6ed
+
+Function8b6ed: ; 8b6ed
+ hlcoord 0, 0, AttrMap
+ ld bc, $012c
+ xor a
+ call ByteFill
+ hlcoord 0, 14, AttrMap
+ ld bc, $0050
+ ld a, $7
+ call ByteFill
+ ret
+; 8b703
+
+Function8b703: ; 8b703
+ call Function8923c
+ push hl
+ ld a, $c
+ ld [hli], a
+ inc a
+ call Function8b73e
+ inc a
+ ld [hl], a
+ pop hl
+ push hl
+ push bc
+ ld de, SCREEN_WIDTH
+ add hl, de
+.asm_8b717
+ push hl
+ ld a, $f
+ ld [hli], a
+ ld a, $7f
+ call Function8b73e
+ ld a, $11
+ ld [hl], a
+ pop hl
+ ld de, SCREEN_WIDTH
+ add hl, de
+ dec b
+ jr nz, .asm_8b717
+ call Function8b732
+ pop bc
+ pop hl
+ jr Function8b744
+; 8b732
+
+Function8b732: ; 8b732
+ ld a, $12
+ ld [hli], a
+ ld a, $13
+ call Function8b73e
+ ld a, $14
+ ld [hl], a
+ ret
+; 8b73e
+
+Function8b73e: ; 8b73e
+ ld d, c
+.asm_8b73f
+ ld [hli], a
+ dec d
+ jr nz, .asm_8b73f
+ ret
+; 8b744
+
+Function8b744: ; 8b744
+ ld de, AttrMap - TileMap
+ add hl, de
+rept 2
+ inc b
+endr
+rept 2
+ inc c
+endr
+ xor a
+.asm_8b74d
+ push bc
+ push hl
+.asm_8b74f
+ ld [hli], a
+ dec c
+ jr nz, .asm_8b74f
+ pop hl
+ ld de, SCREEN_WIDTH
+ add hl, de
+ pop bc
+ dec b
+ jr nz, .asm_8b74d
+ ret
+; 8b75d
+
+Function8b75d: ; 8b75d
+ call Function8923c
+ hlcoord 0, 0
+ ld a, $1
+ ld bc, SCREEN_WIDTH
+ call ByteFill
+ hlcoord 0, 1
+ ld a, $2
+ ld [hl], a
+ hlcoord 9, 1
+ ld c, $b
+ call Function8b788
+ hlcoord 1, 1
+ ld a, $4
+ ld e, $8
+.asm_8b780
+ ld [hli], a
+ inc a
+ dec e
+ jr nz, .asm_8b780
+ jr Function8b79e
+; 8b787
+
+Function8b787: ; 8b787
+ ret
+; 8b788
+
+Function8b788: ; 8b788
+.asm_8b788
+ ld a, $2
+ ld [hli], a
+ dec c
+ ret z
+ ld a, $1
+ ld [hli], a
+ dec c
+ ret z
+ ld a, $3
+ ld [hli], a
+ dec c
+ ret z
+ ld a, $1
+ ld [hli], a
+ dec c
+ jr nz, .asm_8b788
+ ret
+; 8b79e
+
+Function8b79e: ; 8b79e
+ hlcoord 0, 1, AttrMap
+ ld a, $1
+ ld [hli], a
+ hlcoord 9, 1, AttrMap
+ ld e, $b
+.asm_8b7a9
+ ld a, $2
+ ld [hli], a
+ dec e
+ ret z
+ xor a
+ ld [hli], a
+ dec e
+ ret z
+ ld a, $1
+ ld [hli], a
+ dec e
+ ret z
+ xor a
+ ld [hli], a
+ dec e
+ jr nz, .asm_8b7a9
+ ret
+; 8b7bd
+
+Function8b7bd: ; 8b7bd
+ call Function8b855
+ ld hl, MenuDataHeader_0x8b867
+ call CopyMenuDataHeader
+ ld a, [wd030]
+ ld [wcf88], a
+ ld a, [wd031]
+ ld [wd0e4], a
+ ld a, [wd032]
+ and a
+ jr z, .asm_8b7e0
+ ld a, [wcf81]
+ set 3, a
+ ld [wcf81], a
+
+.asm_8b7e0
+ ld a, [wd0e3]
+ and a
+ jr z, .asm_8b7ea
+ dec a
+ ld [wcf77], a
+
+.asm_8b7ea
+ hlcoord 0, 2
+ ld b, $b
+ ld c, $12
+ call Function8b703
+ call Function8b75d
+ call UpdateSprites
+ call Function89209
+ call Function350c
+ call Function8920f
+ ld a, [wcf73]
+ cp $2
+ jr z, .asm_8b823
+ cp $20
+ jr nz, .asm_8b813
+ call Function8b832
+ jr .asm_8b7ea
+
+.asm_8b813
+ cp $10
+ jr nz, .asm_8b81c
+ call Function8b83e
+ jr .asm_8b7ea
+
+.asm_8b81c
+ ld a, [MenuSelection]
+ cp $ff
+ jr nz, .asm_8b824
+
+.asm_8b823
+ xor a
+
+.asm_8b824
+ ld c, a
+ ld a, [wcfa9]
+ ld [wd030], a
+ ld a, [wd0e4]
+ ld [wd031], a
+ ret
+; 8b832
+
+Function8b832: ; 8b832
+ ld a, [wd0e4]
+ ld hl, wcf92
+ sub [hl]
+ jr nc, Function8b84b
+ xor a
+ jr Function8b84b
+; 8b83e
+
+Function8b83e: ; 8b83e
+ ld a, [wd0e4]
+ ld hl, wcf92
+ add [hl]
+ cp $24
+ jr c, Function8b84b
+ ld a, $24
+
+Function8b84b: ; 8b84b
+ ld [wd0e4], a
+ ld a, [wcfa9]
+ ld [wcf88], a
+ ret
+; 8b855
+
+Function8b855: ; 8b855
+ ld a, $28
+ ld hl, DefaultFlypoint
+ ld [hli], a
+ ld c, $28
+ xor a
+.asm_8b85e
+ inc a
+ ld [hli], a
+ dec c
+ jr nz, .asm_8b85e
+ ld a, $ff
+ ld [hl], a
+ ret
+; 8b867
+
+MenuDataHeader_0x8b867: ; 0x8b867
+ db $40 ; flags
+ db 03, 01 ; start coords
+ db 13, 18 ; end coords
+ dw MenuData2_0x8b870
+ db 1 ; default option
+; 0x8b86f
+
+ db 0
+
+MenuData2_0x8b870: ; 0x8b870
+ db $3c ; flags
+ db 5 ; items
+ db 3, 1
+ dbw 0, wd002
+ dbw BANK(Function8b880), Function8b880
+ dbw BANK(Function8b88c), Function8b88c
+ dbw BANK(Function8b8c8), Function8b8c8
+; 8b880
+
+Function8b880: ; 8b880
+ ld h, d
+ ld l, e
+ ld de, MenuSelection
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 2
+ call PrintNum
+ ret
+; 8b88c
+
+Function8b88c: ; 8b88c
+ call OpenSRAMBank4
+ ld h, d
+ ld l, e
+ push hl
+ ld de, String_89116
+ call Function8931b
+ call Function8932d
+ jr c, .asm_8b8a3
+ ld hl, $0000
+ add hl, bc
+ ld d, h
+ ld e, l
+
+.asm_8b8a3
+ pop hl
+ push hl
+ call PlaceString
+ pop hl
+ ld d, $0
+ ld e, $6
+ add hl, de
+ push hl
+ ld de, String_89116
+ call Function8931b
+ call Function8934a
+ jr c, .asm_8b8c0
+ ld hl, $0006
+ add hl, bc
+ ld d, h
+ ld e, l
+
+.asm_8b8c0
+ pop hl
+ call PlaceString
+ call CloseSRAM
+ ret
+; 8b8c8
+
+Function8b8c8: ; 8b8c8
+ hlcoord 0, 14
+ ld b, $2
+ ld c, $12
+ call TextBox
+ ld a, [wd033]
+ ld b, 0
+ ld c, a
+ ld hl, Unknown_8b903
+rept 2
+ add hl, bc
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld d, h
+ ld e, l
+ hlcoord 1, 16
+ call PlaceString
+ hlcoord 0, 13
+ ld a, $f
+ ld [hl], a
+ hlcoord 19, 13
+ ld a, $11
+ ld [hl], a
+ ld a, [wd0e4]
+ cp $24
+ ret c
+ hlcoord 0, 13
+ ld c, $12
+ call Function8b732
+ ret
+; 8b903
+
+Unknown_8b903: ; 8b903
+ dw String_8b90b
+ dw String_8b919
+ dw String_8b92a
+ dw String_8b938
+
+String_8b90b: db "めいしを えらんでください@" ; Please select a noun.
+String_8b919: db "どの めいしと いれかえますか?@" ; OK to swap with any noun?
+String_8b92a: db "あいてを えらんでください@" ; Please select an opponent.
+String_8b938: db "いれる ところを えらんでください@" ; Please select a location.
+; 8b94a
+
+Function8b94a: ; 8b94a
+ ld [wd033], a
+ xor a
+ ld [wd0e4], a
+ ld [wd032], a
+ ld [wd0e3], a
+ ld [wd031], a
+ ld a, $1
+ ld [wd030], a
+ ret
+; 8b960
+
+
+Function8b960: ; 8b960 (22:7960)
+ ld hl, MenuDataHeader_0x8b9ac
+ call LoadMenuDataHeader
+ call Function8b9e9
+ jr c, .asm_8b97a
+ hlcoord 11, 0
+ ld b, $6
+ ld c, $7
+ call Function8b703
+ ld hl, MenuDataHeader_0x8b9b1
+ jr .asm_8b987
+.asm_8b97a
+ hlcoord 11, 0
+ ld b, $a
+ ld c, $7
+ call Function8b703
+ ld hl, MenuDataHeader_0x8b9ca
+.asm_8b987
+ ld a, $1
+ call Function89d5e
+ ld hl, Function8b9ab
+ call Function89d85
+ call ExitMenu
+ jr c, .asm_8b99c
+ call Function8b99f
+ jr nz, .asm_8b99d
+.asm_8b99c
+ xor a
+.asm_8b99d
+ ld c, a
+ ret
+
+Function8b99f: ; 8b99f (22:799f)
+ ld hl, DefaultFlypoint
+ dec a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ cp $ff
+ ret
+; 8b9ab (22:79ab)
+
+Function8b9ab: ; 8b9ab
+ ret
+; 8b9ac
+
+MenuDataHeader_0x8b9ac: ; 0x8b9ac
+ db $40 ; flags
+ db 00, 11 ; start coords
+ db 11, 19 ; end coords
+
+MenuDataHeader_0x8b9b1: ; 0x8b9b1
+ db $40 ; flags
+ db 00, 11 ; start coords
+ db 07, 19 ; end coords
+ dw MenuData2_0x8b9b9
+ db 1 ; default option
+; 0x8b9b9
+
+MenuData2_0x8b9b9: ; 0x8b9b9
+ db $a0 ; flags
+ db 3 ; items
+ db "へんしゅう@" ; EDIT
+ db "いれかえ@" ; REPLACE
+ db "やめる@" ; QUIT
+; 0x8b9ca
+
+MenuDataHeader_0x8b9ca: ; 0x8b9ca
+ db $40 ; flags
+ db 00, 11 ; start coords
+ db 11, 19 ; end coords
+ dw MenuData2_0x8b9d2
+ db 1 ; default option
+; 0x8b9d2
+
+MenuData2_0x8b9d2: ; 0x8b9d2
+ db $a0 ; flags
+ db 5 ; items
+ db "みる@" ; VIEW
+ db "へんしゅう@" ; EDIT
+ db "いれかえ@" ; REPLACE
+ db "けす@" ; ERASE
+ db "やめる@" ; QUIT
+; 0x8b9e9
+
+Function8b9e9: ; 8b9e9 (22:79e9)
+ call OpenSRAMBank4
+ call Function8931b
+ call Function8932d
+ jr nc, .asm_8b9f6
+ jr .asm_8b9ff
+.asm_8b9f6
+ ld hl, $11
+ add hl, bc
+ call Function89b45
+ jr c, .asm_8ba08
+.asm_8b9ff
+ call Function892b4
+ and a
+ ld de, Unknown_8ba1c
+ jr .asm_8ba0c
+.asm_8ba08
+ ld de, Unknown_8ba1f
+ scf
+.asm_8ba0c
+ push af
+ ld hl, DefaultFlypoint
+.asm_8ba10
+ ld a, [de]
+ inc de
+ ld [hli], a
+ cp $ff
+ jr nz, .asm_8ba10
+ call CloseSRAM
+ pop af
+ ret
+; 8ba1c (22:7a1c)
+
+Unknown_8ba1c: ; 8b1ac
+ db 2, 4, -1
+
+Unknown_8ba1f: ; 8ba1f
+ db 1, 2, 4, 3, -1
+; 8ba24
diff --git a/misc/mobile_40.asm b/misc/mobile_40.asm
index 64608d2a8..c3931c53e 100644
--- a/misc/mobile_40.asm
+++ b/misc/mobile_40.asm
@@ -2010,7 +2010,7 @@ Function100cb5: ; 100cb5
cp b
jr z, .asm_100d17
ld [wd0d8], a
- ld a, [$ffa9]
+ ld a, [hJoyLast]
ld b, a
bit 1, b
jr nz, .asm_100d17
@@ -2497,7 +2497,7 @@ Unknown_100ff3: ; 100ff3
dbwww $80, PlayerName, NAME_LENGTH, NULL
dbwww $80, PlayerName, NAME_LENGTH, NULL
dbwww $80, PlayerID, 2, NULL
- dbwww $80, wd84a, 2, NULL
+ dbwww $80, wSecretID, 2, NULL
dbwww $80, PlayerGender, 1, NULL
dbwww $04, $a603, 8, NULL
dbwww $04, $a007, $30, NULL
diff --git a/misc/mobile_45.asm b/misc/mobile_45.asm
index c4cfb88bd..533990cec 100644
--- a/misc/mobile_45.asm
+++ b/misc/mobile_45.asm
@@ -7656,13 +7656,13 @@ Function117656: ; 117656
; 11765d
Function11765d: ; 11765d (45:765d)
- ld a, [$ffaa]
+ ld a, [hInMenu]
push af
ld a, $1
- ld [$ffaa], a
+ ld [hInMenu], a
call Function11766b
pop af
- ld [$ffaa], a
+ ld [hInMenu], a
ret
Function11766b: ; 11766b (45:766b)
@@ -7798,7 +7798,7 @@ Function117764: ; 117764 (45:7764)
ld a, [hl]
and $2
jr nz, asm_1177d6
- ld hl, $ffa9
+ ld hl, hJoyLast
ld a, [hl]
and $40
jr nz, asm_1177f1
@@ -7973,11 +7973,11 @@ Function1178aa: ; 1178aa (45:78aa)
ld hl, MenuDataHeader_1179b5
call LoadMenuDataHeader
call Function1cbb
- call Function1cfd
+ call GetMemTileCoord
ld hl, MenuDataHeader_1179bd
call LoadMenuDataHeader
call Function1cbb
- call Function1cfd
+ call GetMemTileCoord
callba Function104061
hlcoord 16, 8
ld de, String_1179c5
@@ -8076,7 +8076,7 @@ Function117984: ; 117984 (45:7984)
ld hl, MenuDataHeader_1179b5
call LoadMenuDataHeader
call Function1cbb
- call Function1cfd
+ call GetMemTileCoord
callba Function104061
hlcoord 1, 14
ld de, String_1179e1
@@ -8150,13 +8150,13 @@ INCBIN "data/mobile/ascii-sym.txt"
; Mobile Stadium option from the continue/newgame menu.
; XXX better function names
MobileStudium: ; 0x117a7f
- ld a, [$ffaa]
+ ld a, [hInMenu]
push af
ld a, $1
- ld [$ffaa], a
+ ld [hInMenu], a
call Function117a8d
pop af
- ld [$ffaa], a
+ ld [hInMenu], a
ret
; 0x117a8d
@@ -8236,7 +8236,7 @@ Function117b14:
ld hl, Data117cbc
call LoadMenuDataHeader
call Function1cbb
- call Function1cfd
+ call GetMemTileCoord
jp Function117cdd
Function117b28:
@@ -8248,7 +8248,7 @@ Function117b31:
ld hl, Data117cc4
call LoadMenuDataHeader
call Function1cbb
- call Function1cfd
+ call GetMemTileCoord
hlcoord 16, 8
ld de, YesNo117ccc
call PlaceString
@@ -8386,7 +8386,7 @@ Function117c4a:
ld hl, Data117cbc
call LoadMenuDataHeader
call Function1cbb
- call Function1cfd
+ call GetMemTileCoord
callba Function104061
ld hl, MobileStadiumSuccessText
call PrintText
@@ -9756,7 +9756,7 @@ Function118936:
ld hl, MenuDataHeader_119cf7
call LoadMenuDataHeader
call Function1cbb
- call Function1cfd
+ call GetMemTileCoord
call Function321c
hlcoord 16, 8, AttrMap
ld a, $40
@@ -13211,7 +13211,7 @@ Function11a207: ; 11a207
ld hl, MenuDataHeader_11a2de
call LoadMenuDataHeader
call Function1cbb
- call Function1cfd
+ call GetMemTileCoord
call Function321c
hlcoord 16, 8
ld de, String_11a2cf
@@ -14328,10 +14328,10 @@ Function11ac51: ; 11ac51
push af
xor a
ld [VramState], a
- ld a, [$ffaa]
+ ld a, [hInMenu]
push af
ld a, $1
- ld [$ffaa], a
+ ld [hInMenu], a
xor a
ld [$ffde], a
ld [wcd49], a
@@ -14358,7 +14358,7 @@ Function11ac51: ; 11ac51
.asm_11aca8
call ClearSprites
pop af
- ld [$ffaa], a
+ ld [hInMenu], a
pop af
ld [VramState], a
pop af
@@ -14428,7 +14428,7 @@ Function11ad1b: ; 11ad1b
ld a, [wcfa9]
ld [wcd82], a
dec a
- ld [$ffb0], a
+ ld [hConnectedMapWidth], a
ld a, $10
ld [wc3b7], a
ld hl, Function8e83f
@@ -15099,7 +15099,7 @@ Function11b175: ; 11b175
ld d, a
ld a, [wc7d2]
ld e, a
- ld hl, $ffa9
+ ld hl, hJoyLast
ld a, [hl]
and $40
jr nz, .asm_11b19a
@@ -15780,11 +15780,11 @@ Function11b538: ; 11b538
ld [wcd2b], a
ld [bc], a
inc bc
- ld a, [wd84a]
+ ld a, [wSecretID]
ld [wcd2c], a
ld [bc], a
inc bc
- ld a, [wd84b]
+ ld a, [wSecretID + 1]
ld [wcd2d], a
ld [bc], a
inc bc
@@ -16832,13 +16832,13 @@ Function11c156: ; 11c156
; 11c1ab
Function11c1ab: ; 11c1ab
- ld a, [$ffaa]
+ ld a, [hInMenu]
push af
ld a, $1
- ld [$ffaa], a
+ ld [hInMenu], a
call Function11c1b9
pop af
- ld [$ffaa], a
+ ld [hInMenu], a
ret
; 11c1b9
@@ -17154,7 +17154,7 @@ Function11c3ed: ; 11c3ed (47:43ed)
ld a, [de]
and $1
jr nz, .asm_11c42c
- ld de, $ffa9
+ ld de, hJoyLast
ld a, [de]
and $40
jr nz, .asm_11c47c
@@ -17326,7 +17326,7 @@ Function11c53d: ; 11c53d (47:453d)
and A_BUTTON
jr nz, .a
- ld de, $ffa9
+ ld de, hJoyLast
ld a, [de]
and D_UP
@@ -17570,7 +17570,7 @@ Function11c675: ; 11c675 (47:4675)
ret
.select
- ld de, $ffa9
+ ld de, hJoyLast
ld a, [de]
and D_UP
jr nz, .asm_11c708
@@ -18644,7 +18644,7 @@ Function11ce2b: ; 11ce2b (47:4e2b)
and B_BUTTON
jr nz, .b
- ld de, $ffa9
+ ld de, hJoyLast
ld a, [de]
and D_UP
jr nz, .up
@@ -22362,7 +22362,7 @@ Function16d70c: ; 16d70c
Function16d713: ; 16d713
push bc
push af
- ld a, [$ffa9]
+ ld a, [hJoyLast]
and $f0
ld b, a
ld a, [hJoyPressed]
@@ -22701,9 +22701,9 @@ Function170139: ; 170139
ld [hli], a
ld a, [PlayerID + 1]
ld [hli], a
- ld a, [wd84a]
+ ld a, [wSecretID]
ld [hli], a
- ld a, [wd84b]
+ ld a, [wSecretID + 1]
ld [hli], a
ld e, l
ld d, h
@@ -24504,13 +24504,13 @@ GFX_171848:
INCBIN "gfx/unknown/171848.2bpp"
Function1719c8: ; 1719c8 (5c:59c8)
- ld a, [$ffaa]
+ ld a, [hInMenu]
push af
ld a, $1
- ld [$ffaa], a
+ ld [hInMenu], a
call Function1719d6
pop af
- ld [$ffaa], a
+ ld [hInMenu], a
ret
Function1719d6: ; 1719d6 (5c:59d6)
@@ -24801,7 +24801,7 @@ Function171beb: ; 171beb (5c:5beb)
ld hl, MenuDataHeader_171c6b
call LoadMenuDataHeader
call Function1cbb
- call Function1cfd
+ call GetMemTileCoord
callba Function104061
hlcoord 1, 14
ld de, String_171c73
diff --git a/misc/unused_title.asm b/misc/unused_title.asm
index 327eef45c..88c2331e2 100644
--- a/misc/unused_title.asm
+++ b/misc/unused_title.asm
@@ -547,7 +547,7 @@ Function10ed51: ; 10ed51
call _TitleScreen
.loop
call Functiona57
- ld a, [$ffa9]
+ ld a, [hJoyLast]
ld b, a
and 1
jr nz, .done
diff --git a/wram.asm b/wram.asm
index 874dc0a4e..dd97a450e 100644
--- a/wram.asm
+++ b/wram.asm
@@ -145,8 +145,10 @@ VBGMap1::
SECTION "Stack", WRAM0
wc000::
+StackBottom::
ds $ff
Stack::
+StackTop::
ds 1
@@ -1224,8 +1226,11 @@ wcf76:: ds 1
wcf77:: ds 1
wcf78:: ds 9
wcf81:: ds 1
+
+; dw related to tilemap
wcf82:: ds 1
wcf83:: ds 1
+
wcf84:: ds 1
wcf85:: ds 1
wcf86:: ds 1
@@ -1342,38 +1347,46 @@ OptionsEnd::
wcfd4:: ds 1
wcfd5:: ds 1
wcfd6:: ds 1
-wcfd7:: ds 1
+wcfd7:: ds 1 ; related to time
ds 40
SECTION "WRAM 1", WRAMX, BANK [1]
+MiscBuffer0::
wd000:: ds 1
+MiscBuffer1::
wd001:: ds 1
wd002::
+MiscBuffer2::
PhoneScriptBank::
DefaultFlypoint:: ; d002
LuckyNumberDigit1Buffer::
ds 1
wd003::
+MiscBuffer3::
LuckyNumberDigit2Buffer::
PhoneCallerLo::
ds 1
wd004::
+MiscBuffer4::
LuckyNumberDigit3Buffer::
PhoneCallerHi::
ds 1
wd005::
+MiscBuffer5::
LuckyNumberDigit4Buffer::
StartFlypoint:: ; d005
ds 1
wd006::
+MiscBuffer6::
LuckyNumberDigit5Buffer::
EndFlypoint:: ; d006
ds 1
wd007::
+MiscBuffer7::
MovementBuffer:: ; d007
ds 1
@@ -1447,6 +1460,7 @@ wd048:: ds 1
wLossTextPointer:: ds 2
wd04b:: ds 2
wd04d:: ds 1
+MenuItemsListEnd::
wd04e:: ds 2
wd050:: ds 10
wd05a:: ds 12
@@ -1521,6 +1535,7 @@ wd105:: ds 1
CurItem:: ; d106
ds 1
+ItemCountBuffer:: ; d107
wd107:: ds 1
CurPartySpecies:: ; d108
@@ -1716,7 +1731,6 @@ EvolvableFlags:: ; d1e8
flag_array PARTY_LENGTH
wd1e9:: ds 1
-wd1ea::
MagikarpLength::
Buffer1:: ; d1ea
ds 1
@@ -1967,7 +1981,7 @@ RivalName:: ds NAME_LENGTH ; d493
RedsName:: ds NAME_LENGTH ; d49e
GreensName:: ds NAME_LENGTH ; d4a9
-wd4b4:: ds 1
+wSavedAtLeastOnce:: ds 1
wSpawnAfterChampion:: ds 1
; init time set at newgame
@@ -2106,7 +2120,7 @@ CurTimeOfDay:: ; d848
ds 1
-wd84a:: ds 1
+wSecretID:: ds 1
wd84b:: ds 1
StatusFlags:: ; d84c
ds 1
@@ -2402,8 +2416,8 @@ wSpecialPhoneCallID:: ds 2
wdc33:: ds 2
wdc35:: ds 4
wdc39:: ds 1
-wdc3a:: ds 1
-wdc3b:: ds 5
+wdc3a:: ds 1 ; related to time
+wdc3b:: ds 5 ; related to time
wdc40:: ds 1
wdc41:: ds 1
wdc42:: ds 8
@@ -2562,7 +2576,7 @@ wContestMon:: party_struct wContestMon ; df9c
wdfcc:: ds 1
wdfcd:: ds 1
-wdfce:: ds 1
+wFishingSwarmFlag:: ds 1
roam_struct: MACRO
\1Species:: db
@@ -2728,7 +2742,8 @@ w5_d422:: ds $40
SECTION "WRAM 6", WRAMX, BANK [6]
-w6_d000:: ds $600
+w6_d000:: ds $400
+w6_d400:: ds $200
w6_d600:: ds $600
INCLUDE "sram.asm"