summaryrefslogtreecommitdiff
path: root/misc
diff options
context:
space:
mode:
Diffstat (limited to 'misc')
-rwxr-xr-xmisc/battle_tower_5c.asm562
-rw-r--r--misc/crystal_misc.asm2
-rwxr-xr-xmisc/fixed_words.asm32
-rwxr-xr-xmisc/gfx_41.asm600
-rwxr-xr-xmisc/mobile_12.asm55
-rwxr-xr-xmisc/mobile_12_2.asm937
-rw-r--r--misc/mobile_22.asm80
-rw-r--r--misc/mobile_22_2.asm10
-rw-r--r--misc/mobile_40.asm829
-rwxr-xr-xmisc/mobile_41.asm22
-rw-r--r--misc/mobile_42.asm1005
-rw-r--r--misc/mobile_45.asm48
-rwxr-xr-xmisc/mobile_46.asm745
-rwxr-xr-xmisc/mobile_5b.asm401
-rwxr-xr-xmisc/mobile_5c.asm110
-rw-r--r--misc/mobile_5f.asm48
-rwxr-xr-xmisc/mobile_menu.asm882
-rwxr-xr-xmisc/printer_77.asm356
18 files changed, 4685 insertions, 2039 deletions
diff --git a/misc/battle_tower_5c.asm b/misc/battle_tower_5c.asm
index 1c9c7436b..8f8114f95 100755
--- a/misc/battle_tower_5c.asm
+++ b/misc/battle_tower_5c.asm
@@ -1,11 +1,11 @@
Function1700b0: ; 1700b0
- call Function17021e
+ call InitBattleTowerChallengeRAM
callba Function118121
ret
; 1700ba
Function1700ba: ; 1700ba
- call Function17021e
+ call InitBattleTowerChallengeRAM
callba Function11811a
ret
; 1700c4
@@ -17,21 +17,22 @@ Function1700c4: ; 1700c4
ld [rSVBK], a
call Function17042c
+
ld a, $5
call GetSRAMBank
ld a, $1
ld [$be45], a
xor a
ld [$be46], a
- ld hl, $dffc
+ ld hl, w3_dffc
ld de, $aa41
ld bc, $0004
call CopyBytes
- ld hl, $d202
+ ld hl, w3_d202
ld de, $aa8e
- ld bc, $0594
+ ld bc, 7 * $cc ; length of battle tower struct from japanese games?
call CopyBytes
- ld hl, $aa5d
+ ld hl, $aa5d ; some sort of count
ld a, [hl]
inc [hl]
inc hl
@@ -42,7 +43,7 @@ Function1700c4: ; 1700c4
add hl, de
ld e, l
ld d, h
- ld hl, $dffc
+ ld hl, w3_dffc
ld bc, $0004
call CopyBytes
call CloseSRAM
@@ -52,7 +53,7 @@ Function1700c4: ; 1700c4
; 170114
Function170114: ; 170114
- call Function17021e
+ call InitBattleTowerChallengeRAM
call Function170121
callba Function11805f
ret
@@ -62,8 +63,8 @@ Function170121: ; 170121
ld a, $5
call GetSRAMBank
ld hl, $a948
- ld de, $c608
- ld bc, $00f6
+ ld de, wMisc
+ ld bc, $00f6 ; 246
call CopyBytes
call CloseSRAM
call Function170c8b
@@ -71,27 +72,29 @@ Function170121: ; 170121
; 170139
Function170139: ; 170139
+; Convert the 4-digit decimal number at 5:aa41 into binary
ld a, $5
call GetSRAMBank
ld de, $aa41
ld h, $0
ld l, h
- ld bc, $03e8
- call Function17020c
- ld bc, $0064
- call Function17020c
- ld bc, $000a
- call Function17020c
+ ld bc, 1000
+ call .DecToBin
+ ld bc, 100
+ call .DecToBin
+ ld bc, 10
+ call .DecToBin
ld a, [de]
ld c, a
ld b, $0
add hl, bc
call CloseSRAM
+; Store that number in wMisc
ld a, h
- ld [$c608], a
+ ld [wMisc], a
ld a, l
- ld [$c608 + 1], a
- ld hl, $c628
+ ld [wMisc + 1], a
+ ld hl, wBT_OTTempPkmn1DVs
ld a, [PlayerID]
ld [hli], a
ld a, [PlayerID + 1]
@@ -108,26 +111,26 @@ Function170139: ; 170139
ld bc, PlayerID
ld de, PlayerGender
callba Function4e929
- ld de, $c62c + 5
+ ld de, wBT_OTTempPkmn1CaughtGender
ld a, c
ld [de], a
inc de
- ld a, $df
+ ld a, PartyMons % $100
ld [wcd49], a
- ld a, $dc
+ ld a, PartyMons / $100
ld [wcd4a], a
- ld a, $41
+ ld a, PartyMonNicknames % $100
ld [wcd4b], a
- ld a, $de
+ ld a, PartyMonNicknames / $100
ld [wcd4c], a
- ld a, $3
-.asm_1701ac
+ ld a, 3
+.CopyLoop
push af
ld a, [wcd49]
ld l, a
ld a, [wcd4a]
ld h, a
- ld bc, $0030
+ ld bc, PARTYMON_STRUCT_LENGTH
call CopyBytes
ld a, l
ld [wcd49], a
@@ -145,7 +148,7 @@ Function170139: ; 170139
ld [wcd4c], a
pop af
dec a
- jr nz, .asm_1701ac
+ jr nz, .CopyLoop
ld a, $4
call GetSRAMBank
ld hl, $a013
@@ -157,7 +160,7 @@ Function170139: ; 170139
ld hl, $a894
ld bc, $0006
call CopyBytes
- ld hl, $c608
+ ld hl, wMisc
ld de, $a948
ld bc, $00f6
call CopyBytes
@@ -165,22 +168,22 @@ Function170139: ; 170139
ret
; 17020c
-Function17020c: ; 17020c
+.DecToBin: ; 17020c
ld a, [de]
inc de
and a
ret z
-.loop
+.digit_loop
add hl, bc
dec a
- jr nz, .loop
+ jr nz, .digit_loop
ret
; 170215
BattleTowerBattle: ; 170215
xor a
- ld [wcf63], a
+ ld [wBattleTowerBattleEnded], a
call _BattleTowerBattle
ret
; 17021d
@@ -189,10 +192,10 @@ EmptySpecial_17021d: ; 17021d
ret
; 17021e
-Function17021e: ; 17021e
+InitBattleTowerChallengeRAM: ; 17021e
xor a
- ld [wcf63], a
- ld [wcf64], a
+ ld [wBattleTowerBattleEnded], a
+ ld [wNrOfBeatenBattleTowerTrainers], a
ld [wcf65], a
ld [wcf66], a
ret
@@ -202,14 +205,14 @@ _BattleTowerBattle: ; 17022c
.loop
call .do_jumptable
call DelayFrame
- ld a, [wcf63]
+ ld a, [wBattleTowerBattleEnded]
cp $1
jr nz, .loop
ret
; 17023a
.do_jumptable: ; 17023a
- ld a, [wcf63]
+ ld a, [wBattleTowerBattleEnded]
ld e, a
ld d, 0
ld hl, .jumptable
@@ -256,10 +259,10 @@ RunBattleTowerTrainer: ; 17024d
ld a, BANK(sNrOfBeatenBattleTowerTrainers)
call GetSRAMBank
ld a, [sNrOfBeatenBattleTowerTrainers]
- ld [wNrOfBeatenBattleTowerTrainers], a ; wcf64
+ ld [wNrOfBeatenBattleTowerTrainers], a
call CloseSRAM
ld hl, StringBuffer3
- ld a, [wNrOfBeatenBattleTowerTrainers] ; wcf64
+ ld a, [wNrOfBeatenBattleTowerTrainers]
add "1"
ld [hli], a
ld a, "@"
@@ -271,7 +274,7 @@ RunBattleTowerTrainer: ; 17024d
pop af
ld [Options], a
ld a, $1
- ld [wcf63], a
+ ld [wBattleTowerBattleEnded], a
ret
@@ -479,7 +482,7 @@ endr
ld e, l
push hl
push de
- ld hl, MON_EXP + 2
+ ld hl, MON_STAT_EXP - 1
add hl, bc
ld b, $1
predef CalcPkmnStats
@@ -508,7 +511,7 @@ BT_ChrisName: ; 170426
Function17042c: ; 17042c
ld hl, w3_d202TrainerData
- ld a, 7
+ ld a, BATTLETOWER_NROFTRAINERS
.loop
push af
push hl
@@ -521,7 +524,7 @@ Function17042c: ; 17042c
ld a, [hli]
and a
jr z, .empty
- cp $f
+ cp 15
jr nc, .copy_data
push hl
@@ -615,7 +618,7 @@ CopyBTTrainer_FromBT_OT_TowBT_OTTemp: ; 1704a2
ld [rSVBK], a
ld hl, BT_OTTrainer ; $d100
- ld de, wBT_OTTemp ; $c608
+ ld de, wBT_OTTemp ; wMisc
ld bc, BATTLE_TOWER_STRUCT_LENGTH
call CopyBytes
@@ -624,7 +627,7 @@ CopyBTTrainer_FromBT_OT_TowBT_OTTemp: ; 1704a2
ld a, BANK(sBattleTowerChallengeState)
call GetSRAMBank
- ld a, $2
+ ld a, BATTLETOWER_CHALLENGE_IN_PROGESS
ld [sBattleTowerChallengeState], a
ld hl, sNrOfBeatenBattleTowerTrainers
inc [hl]
@@ -632,7 +635,9 @@ CopyBTTrainer_FromBT_OT_TowBT_OTTemp: ; 1704a2
SkipBattleTowerTrainer: ; 1704c9
ret
; 1704ca
+
Function1704ca: ; 1704ca
+; unreferenced mobile function
ld a, [$be46]
cp $7
jr c, .asm_1704d3
@@ -653,36 +658,37 @@ Function1704ca: ; 1704ca
; 1704e1
Function1704e1: ; 1704e1
+; unreferenced special
call SpeechTextBox
call FadeToMenu
- call Function17021e
- call Function1704f1
- call ReturnToCallingMenu
+ call InitBattleTowerChallengeRAM
+ call .JumptableLoop
+ call CloseSubmenu
ret
; 1704f1
-Function1704f1: ; 1704f1
+.JumptableLoop: ; 1704f1
call ClearBGPalettes
call ClearSprites
call ClearScreen
-.asm_1704fa
+.loop
call JoyTextDelay
ld a, [wJumptableIndex]
bit 7, a
- jr nz, .asm_17050f
- call Function170510
+ jr nz, .done
+ call .DoJumptable
callba ReloadMapPart
- jr .asm_1704fa
+ jr .loop
-.asm_17050f
+.done
ret
; 170510
-Function170510: ; 170510
+.DoJumptable: ; 170510
ld a, [wJumptableIndex]
ld e, a
ld d, 0
- ld hl, Jumptable_17051f
+ ld hl, .jumptable
rept 2
add hl, de
endr
@@ -692,13 +698,13 @@ endr
jp [hl]
; 17051f
-Jumptable_17051f: ; 17051f
- dw Function170525
- dw Function170571
- dw Function170577
+.jumptable: ; 17051f
+ dw .Jumptable_0
+ dw .Jumptable_1
+ dw .Jumptable_2
; 170525
-Function170525: ; 170525
+.Jumptable_0: ; 170525
ld a, $5
call GetSRAMBank
@@ -708,7 +714,7 @@ Function170525: ; 170525
call CopyBytes
ld hl, $a8b2
- ld de, $c608
+ ld de, wMisc
ld bc, $0096
call CopyBytes
@@ -717,118 +723,118 @@ Function170525: ; 170525
ld de, StringBuffer3
call PlaceString
hlcoord 1, 3
- ld de, String_170676
+ ld de, .String_Mail
call PlaceString
hlcoord 4, 3
ld de, StringBuffer4
call PlaceString
hlcoord 8, 3
- ld de, String_17067a
+ ld de, .String_PastReaders
call PlaceString
- call Function1705b7
- call Function1705f0
- jr Function1705b2
+ call .DrawBorder
+ call .PlaceTextItems
+ jr .NextJumptableFunction
-Function170571:
+.Jumptable_1:
call SetPalettes
- call Function1705b2
+ call .NextJumptableFunction
-Function170577:
+.Jumptable_2:
ld hl, hJoyPressed
ld a, [hl]
- and $1
- jr nz, .asm_1705ac
+ and A_BUTTON
+ jr nz, .pressed_a_or_b
ld a, [hl]
- and $2
- jr nz, .asm_1705ac
+ and B_BUTTON
+ jr nz, .pressed_a_or_b
ld a, [hl]
- and $40
- jr nz, .asm_17058f
+ and D_UP
+ jr nz, .pressed_up
ld a, [hl]
- and $80
- jr nz, .asm_17059d
+ and D_DOWN
+ jr nz, .pressed_down
ret
-.asm_17058f
- ld a, [wcf64]
+.pressed_up
+ ld a, [wNrOfBeatenBattleTowerTrainers]
and a
ret z
- sub $f
- ld [wcf64], a
- call Function1705f0
+ sub 15
+ ld [wNrOfBeatenBattleTowerTrainers], a
+ call .PlaceTextItems
ret
-.asm_17059d
- ld a, [wcf64]
- cp $3c
+.pressed_down
+ ld a, [wNrOfBeatenBattleTowerTrainers]
+ cp 60
ret z
- add $f
- ld [wcf64], a
- call Function1705f0
+ add 15
+ ld [wNrOfBeatenBattleTowerTrainers], a
+ call .PlaceTextItems
ret
-.asm_1705ac
+.pressed_a_or_b
ld hl, wJumptableIndex
set 7, [hl]
ret
-Function1705b2:
+.NextJumptableFunction:
ld hl, wJumptableIndex
inc [hl]
ret
; 1705b7
-Function1705b7: ; 1705b7
+.DrawBorder: ; 1705b7
hlcoord 0, 4
ld a, $79
ld [hli], a
- ld c, $12
-.asm_1705bf
+ ld c, SCREEN_WIDTH - 2
+.top_border_loop
ld a, $7a
ld [hli], a
dec c
- jr nz, .asm_1705bf
+ jr nz, .top_border_loop
ld a, $7b
ld [hli], a
- ld de, $0014
- ld c, $c
-.asm_1705cd
+ ld de, SCREEN_WIDTH
+ ld c, 12
+.left_border_loop
ld a, $7c
ld [hl], a
add hl, de
dec c
- jr nz, .asm_1705cd
+ jr nz, .left_border_loop
ld a, $7d
ld [hli], a
- ld c, $12
-.asm_1705d9
+ ld c, SCREEN_WIDTH - 2
+.bottom_border_loop
ld a, $7a
ld [hli], a
dec c
- jr nz, .asm_1705d9
+ jr nz, .bottom_border_loop
ld a, $7e
ld [hl], a
- ld de, $ffec
+ ld de, -SCREEN_WIDTH
add hl, de
- ld c, $c
-.asm_1705e8
+ ld c, 12
+.right_border_loop
ld a, $7c
ld [hl], a
add hl, de
dec c
- jr nz, .asm_1705e8
+ jr nz, .right_border_loop
ret
; 1705f0
-Function1705f0: ; 1705f0
- call Function17064b
- call Function17065d
+.PlaceTextItems: ; 1705f0
+ call .ClearBox
+ call .PlaceUpDownArrows
ld a, $50
ld [wcd4e], a
- ld hl, $c608
- ld a, [wcf64]
+ ld hl, wMisc
+ ld a, [wNrOfBeatenBattleTowerTrainers]
ld c, a
xor a
ld b, a
@@ -836,19 +842,20 @@ Function1705f0: ; 1705f0
push hl
pop bc
hlcoord 1, 6
- ld a, $6
-.asm_17060c
+ ld a, 6
+.loop1
push af
push hl
- ld a, $3
-.asm_170610
+ ld a, 3
+.loop2
push af
ld de, wcd49
ld a, [bc]
and a
- jr z, .asm_170625
- ld a, $5
-.asm_17061a
+ jr z, .fill_with_e3
+; .copy
+ ld a, 5
+.loop3a
push af
ld a, [bc]
ld [de], a
@@ -856,12 +863,12 @@ Function1705f0: ; 1705f0
inc de
pop af
dec a
- jr nz, .asm_17061a
- jr .asm_170631
+ jr nz, .loop3a
+ jr .rejoin
-.asm_170625
- ld a, $5
-.asm_170627
+.fill_with_e3
+ ld a, 5
+.loop3b
push af
ld a, $e3
ld [de], a
@@ -869,68 +876,68 @@ Function1705f0: ; 1705f0
inc bc
pop af
dec a
- jr nz, .asm_170627
+ jr nz, .loop3b
-.asm_170631
+.rejoin
ld de, wcd49
push bc
call PlaceString
- ld de, $0006
+ ld de, 6
add hl, de
pop bc
pop af
dec a
- jr nz, .asm_170610
+ jr nz, .loop2
pop hl
- ld de, $0028
+ ld de, $28
add hl, de
pop af
dec a
- jr nz, .asm_17060c
+ jr nz, .loop1
ret
; 17064b
-Function17064b: ; 17064b
+.ClearBox: ; 17064b
hlcoord 1, 5
xor a
- ld b, $c
-.asm_170651
- ld c, $12
-.asm_170653
+ ld b, 12
+.clearbox_row
+ ld c, SCREEN_WIDTH - 2
+.clearbox_column
ld [hli], a
dec c
- jr nz, .asm_170653
+ jr nz, .clearbox_column
rept 2
inc hl
endr
dec b
- jr nz, .asm_170651
+ jr nz, .clearbox_row
ret
; 17065d
-Function17065d: ; 17065d
- ld a, [wcf64]
+.PlaceUpDownArrows: ; 17065d
+ ld a, [wNrOfBeatenBattleTowerTrainers]
and a
- jr z, .asm_170669
+ jr z, .nope
hlcoord 18, 5
- ld a, $61
+ ld a, "▲"
ld [hl], a
-.asm_170669
- ld a, [wcf64]
- cp $3c
+.nope
+ ld a, [wNrOfBeatenBattleTowerTrainers]
+ cp 60
ret z
hlcoord 18, 16
- ld a, $ee
+ ld a, "▼"
ld [hl], a
ret
; 170676
-String_170676: ; 170676
+.String_Mail: ; 170676
db "ルーム@"
; 17067a
-String_17067a: ; 17067a
+.String_PastReaders: ; 17067a
db "れきだいりーダーいちらん@"
; 170687
@@ -953,13 +960,13 @@ endr
dw Function17075f ; 0x00
dw Function170788 ; 0x01
dw Function170778 ; 0x02
- dw Function170799 ; 0x03
- dw Function17079d ; 0x04
+ dw BattleTowerAction_SetByteToQuickSaveChallenge ; 0x03
+ dw BattleTowerAction_SetByteToCancelChallenge ; 0x04
dw Function1707ac ; 0x05
dw Function1707f4 ; 0x06
- dw Function170868 ; 0x07
- dw Function170881 ; 0x08
- dw Function17089a ; 0x09
+ dw SaveBattleTowerLevelGroup ; 0x07
+ dw LoadBattleTowerLevelGroup ; 0x08
+ dw BattleTower_CheckSaveFileExistsAndIsYours ; 0x09
dw Function1708b1 ; 0x0a
dw CheckMobileEventIndex ; 0x0b
dw Function1708c8 ; 0x0c
@@ -977,11 +984,11 @@ endr
dw Function170ae8 ; 0x18
dw Function170b16 ; 0x19
dw ResetBattleTowerTrainersSRAM ; 0x1a
- dw Function1706ee ; 0x1b
+ dw BattleTower_GiveReward ; 0x1b
dw Function17071b ; 0x1c
dw Function170729 ; 0x1d
- dw Function17073e ; 0x1e
- dw Function170737 ; 0x1f
+ dw BattleTower_RandomlyChooseReward ; 0x1e
+ dw BattleTower_SaveOptions ; 0x1f
; Reset the save memory for BattleTower-Trainers (Counter and all 7 TrainerBytes)
@@ -1001,7 +1008,7 @@ ResetBattleTowerTrainersSRAM: ; 1706d6 (5c:46d6) BattleTowerAction $1a
ret
-Function1706ee: ; 1706ee (5c:46ee) BattleTowerAction $1b
+BattleTower_GiveReward: ; 1706ee (5c:46ee) BattleTowerAction $1b
ld a, BANK(sBattleTowerReward)
call GetSRAMBank
@@ -1033,7 +1040,7 @@ Function1706ee: ; 1706ee (5c:46ee) BattleTowerAction $1b
Function17071b: ; 17071b (5c:471b) BattleTowerAction $1c
ld a, BANK(sBattleTowerChallengeState)
call GetSRAMBank
- ld a, $3
+ ld a, BATTLETOWER_WON_CHALLENGE
ld [sBattleTowerChallengeState], a
call CloseSRAM
ret
@@ -1041,16 +1048,16 @@ Function17071b: ; 17071b (5c:471b) BattleTowerAction $1c
Function170729: ; 170729 (5c:4729) BattleTowerAction $1d
ld a, BANK(sBattleTowerChallengeState)
call GetSRAMBank
- ld a, $4
+ ld a, BATTLETOWER_RECEIVED_REWARD
ld [sBattleTowerChallengeState], a
call CloseSRAM
ret
-Function170737: ; 170737 (5c:4737) BattleTowerAction $1e
+BattleTower_SaveOptions: ; 170737 (5c:4737) BattleTowerAction $1f
callba SaveOptions
ret
-Function17073e: ; 17073e (5c:473e) BattleTowerAction $1f
+BattleTower_RandomlyChooseReward: ; 17073e (5c:473e) BattleTowerAction $1e
; Generate a random stat boosting item.
.loop
call Random
@@ -1072,7 +1079,7 @@ Function17073e: ; 17073e (5c:473e) BattleTowerAction $1f
ret
Function17075f: ; 17075f (5c:475f) BattleTowerAction $00
- call Function17089a
+ call BattleTower_CheckSaveFileExistsAndIsYours
ld a, [ScriptVar]
and a
ret z
@@ -1103,12 +1110,12 @@ Function170788: ; 170788 (5c:4788) BattleTowerAction $01
call CloseSRAM
ret
-Function170799: ; 170799 (5c:4799) BattleTowerAction $03
- ld c, $1
+BattleTowerAction_SetByteToQuickSaveChallenge: ; 170799 (5c:4799) BattleTowerAction $03
+ ld c, BATTLETOWER_SAVED_AND_LEFT
jr asm_17079f
-Function17079d: ; 17079d (5c:479d) BattleTowerAction $04
- ld c, $0
+BattleTowerAction_SetByteToCancelChallenge: ; 17079d (5c:479d) BattleTowerAction $04
+ ld c, BATTLETOWER_NO_CHALLENGE
asm_17079f: ; 17079f (5c:479f)
ld a, BANK(sBattleTowerChallengeState)
call GetSRAMBank
@@ -1203,9 +1210,10 @@ Function17081d: ; 17081d (5c:481d) BattleTowerAction $17
and a
jr nz, .asm_170853
ret
+
.asm_170849
ld hl, CurDay
- ld a, $8c
+ ld a, 140
sub c
add [hl]
cp $b
@@ -1221,39 +1229,39 @@ Function17081d: ; 17081d (5c:481d) BattleTowerAction $17
call CloseSRAM
ret
-Function170868: ; 170868 (5c:4868) BattleTowerAction $07
- ld a, BANK(sbe47)
+SaveBattleTowerLevelGroup: ; 170868 (5c:4868) BattleTowerAction $07
+ ld a, BANK(sBTChoiceOfLevelGroup)
call GetSRAMBank
ld a, [rSVBK]
push af
ld a, $3
ld [rSVBK], a
- ld a, [wd000 + $800]
- ld [sbe47], a
+ ld a, [wBTChoiceOfLvlGroup]
+ ld [sBTChoiceOfLevelGroup], a
pop af
ld [rSVBK], a
call CloseSRAM
ret
-Function170881: ; 170881 (5c:4881) BattleTowerAction $08
- ld a, BANK(sbe47)
+LoadBattleTowerLevelGroup: ; 170881 (5c:4881) BattleTowerAction $08 ; Load level group choice
+ ld a, BANK(sBTChoiceOfLevelGroup)
call GetSRAMBank
ld a, [rSVBK]
push af
ld a, $3
ld [rSVBK], a
- ld a, [sbe47]
- ld [wd000 + $800], a
+ ld a, [sBTChoiceOfLevelGroup]
+ ld [wBTChoiceOfLvlGroup], a
pop af
ld [rSVBK], a
call CloseSRAM
ret
-Function17089a: ; 17089a BattleTowerAction $09
+BattleTower_CheckSaveFileExistsAndIsYours: ; 17089a BattleTowerAction $09
ld a, [wSaveFileExists]
and a
jr z, .nope
- callba Function14bcb
+ callba CompareLoadedAndSavedPlayerID
jr z, .yes
xor a
jr .nope
@@ -1359,7 +1367,7 @@ Function17093c: ; 17093c (5c:493c) BattleTowerAction $0e
jr nz, .not_egg
push hl
ld hl, PartyMonOT ; wddff (aliases: PartyMonOT)
- ld de, $6
+ ld de, $6 ; NAME_LENGTH
ld a, b
and a
jr z, .skip
@@ -1369,38 +1377,38 @@ Function17093c: ; 17093c (5c:493c) BattleTowerAction $0e
jr nz, .loop2
.skip
ld de, String_1709a4
- ld a, $6
-.asm_17096e
+ ld a, $6 ; NAME_LENGTH
+.compare_loop
push af
ld a, [de]
inc de
cp [hl]
inc hl
- jr nz, .asm_17099d
+ jr nz, .different
pop af
dec a
- jr nz, .asm_17096e
+ jr nz, .compare_loop
rept 4
dec hl
endr
- ld a, $50
+ ld a, "@"
rept 2
ld [hli], a
endr
pop hl
ld a, EGG_TICKET
ld [CurItem], a
- ld a, $1
+ ld a, 1
ld [wItemQuantityChangeBuffer], a
- ld a, $ff
- ld [wd107], a
+ ld a, -1
+ ld [CurItemQuantity], a
ld hl, NumItems
call TossItem
ld a, $1
ld [ScriptVar], a
ret
-.asm_17099d
+.different
pop af
pop hl
.not_egg
@@ -1454,30 +1462,30 @@ endr
; 1709e7 (5c:49e7)
Jumptable_1709e7: ; 1709e7
- dw Function170a00
- dw Function170a00
- dw Function1709f3
- dw Function1709f3
- dw Function170a01
- dw Function170a33
+ dw .NoAction
+ dw .NoAction
+ dw .DoAction1
+ dw .DoAction1
+ dw .Action4
+ dw .Action5
; 1709f3
-Function1709f3: ; 1709f3
+.DoAction1: ; 1709f3
ld a, $5
call GetSRAMBank
ld a, $1
ld [$a800], a
call CloseSRAM
-Function170a00: ; 170a00
+.NoAction: ; 170a00
ret
; 170a01
-Function170a01: ; 170a01
+.Action4: ; 170a01
ld a, $5
call GetSRAMBank
ld hl, $b023
- ld de, $c608
+ ld de, wMisc
ld bc, $0069
call CopyBytes
ld a, [$a825]
@@ -1492,27 +1500,27 @@ Function170a01: ; 170a01
ret
; 170a33
-Function170a33: ; 170a33
+.Action5: ; 170a33
ld a, $0
call GetSRAMBank
ld hl, wRTC
- ld de, $c608
+ ld de, wMisc
ld bc, $0004
call CopyBytes
call CloseSRAM
ld a, $5
call GetSRAMBank
ld hl, $b08c
- ld de, $c608
+ ld de, wMisc
ld c, $4
-.asm_170a54
+.compare_loop
ld a, [de]
inc de
cp [hl]
- jr nz, .asm_170a78
+ jr nz, .different
inc hl
dec c
- jr nz, .asm_170a54
+ jr nz, .compare_loop
call CloseSRAM
ld a, [MapGroup]
ld b, a
@@ -1521,17 +1529,17 @@ Function170a33: ; 170a33
call GetMapTrigger
ld a, d
or e
- jr z, .asm_170a72
+ jr z, .no_trigger
ld a, [de]
and a
ret nz
-.asm_170a72
+.no_trigger
ld a, $1
ld [ScriptVar], a
ret
-.asm_170a78
+.different
call CloseSRAM
ld a, $5
call GetSRAMBank
@@ -1546,11 +1554,11 @@ Function170a33: ; 170a33
call GetMapTrigger
ld a, d
or e
- jr z, .asm_170a9b
+ jr z, .no_trigger_2
xor a
ld [de], a
-.asm_170a9b
+.no_trigger_2
ret
; 170a9c
@@ -1577,10 +1585,11 @@ Function170aaf: ; 170aaf (5c:4aaf) BattleTowerAction $13
ret
Function170abe: ; 170abe (5c:4abe) BattleTowerAction $14
- call Function17089a
+ call BattleTower_CheckSaveFileExistsAndIsYours
ld a, [ScriptVar]
and a
ret z
+
ld a, BANK(sbe4f)
call GetSRAMBank
ld a, [sbe4f]
@@ -1603,13 +1612,13 @@ Function170ae8: ; 170ae8 (5c:4ae8) BattleTowerAction $18
call GetSRAMBank
ld a, [$b2fb]
call CloseSRAM
- ld c, $a
+ ld c, 10
call SimpleDivide
ld a, b
ld [wcd4f], a
xor a
ld [ScriptVar], a
- callba Function119d93
+ callba Function119d93 ; level check
ret nc
ld a, $5
call GetSRAMBank
@@ -1629,7 +1638,7 @@ Function170b16: ; 170b16 (5c:4b16) BattleTowerAction $19
ld [wcd4f], a
xor a
ld [ScriptVar], a
- callba Function119dd1
+ callba Function119dd1 ; ubers check
ret nc
ld a, $5
call GetSRAMBank
@@ -1637,3 +1646,134 @@ Function170b16: ; 170b16 (5c:4b16) BattleTowerAction $19
call CloseSRAM
ld [ScriptVar], a
ret
+
+Function_LoadOpponentTrainerAndPokemonsWithOTSprite: ; 0x170b44
+ callba Function_LoadOpponentTrainerAndPokemons
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+ ld hl, BT_OTTrainerClass
+ ld a, [hl]
+ dec a
+ ld c, a
+ ld b, $0
+ pop af
+ ld [rSVBK], a
+ ld hl, .Sprites
+ add hl, bc
+ ld a, [hl]
+ ld [wBTTempOTSprite], a
+
+; Load sprite of the opponent trainer
+; because s/he is chosen randomly and appears out of nowhere
+ ld a, [ScriptVar]
+ dec a
+ sla a
+ ld e, a
+ sla a
+ sla a
+ sla a
+ ld c, a
+ ld b, 0
+ ld d, 0
+ ld hl, MapObjects
+ add hl, bc
+ inc hl
+ ld a, [wBTTempOTSprite]
+ ld [hl], a
+ ld hl, UsedSprites
+ add hl, de
+ ld [hli], a
+ ld [hUsedSpriteIndex], a
+ ld a, [hl]
+ ld [hUsedSpriteTile], a
+ callba GetUsedSprite
+ ret
+; 170b90
+
+.Sprites:
+ db SPRITE_FALKNER
+ db SPRITE_WHITNEY
+ db SPRITE_BUGSY
+ db SPRITE_MORTY
+ db SPRITE_PRYCE
+ db SPRITE_JASMINE
+ db SPRITE_CHUCK
+ db SPRITE_CLAIR
+ db SPRITE_SILVER
+ db SPRITE_OAK
+ db SPRITE_WILL
+ db SPRITE_CHRIS
+ db SPRITE_BRUNO
+ db SPRITE_KAREN
+ db SPRITE_KOGA
+ db SPRITE_LANCE
+ db SPRITE_BROCK
+ db SPRITE_MISTY
+ db SPRITE_SURGE
+ db SPRITE_SCIENTIST
+ db SPRITE_ERIKA
+ db SPRITE_YOUNGSTER
+ db SPRITE_YOUNGSTER
+ db SPRITE_YOUNGSTER
+ db SPRITE_LASS
+ db SPRITE_JANINE
+ db SPRITE_COOLTRAINER_M
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_BUENA
+ db SPRITE_SUPER_NERD
+ db SPRITE_ROCKET
+ db SPRITE_GENTLEMAN
+ db SPRITE_BUENA
+ db SPRITE_TEACHER
+ db SPRITE_SABRINA
+ db SPRITE_BUG_CATCHER
+ db SPRITE_FISHER
+ db SPRITE_SUPER_NERD
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_SAILOR
+ db SPRITE_SUPER_NERD
+ db SPRITE_BLUE
+ db SPRITE_ROCKER
+ db SPRITE_POKEFAN_M
+ db SPRITE_BIKER
+ db SPRITE_BLAINE
+ db SPRITE_PHARMACIST
+ db SPRITE_FISHER
+ db SPRITE_SUPER_NERD
+ db SPRITE_BLACK_BELT
+ db SPRITE_ROCKET
+ db SPRITE_YOUNGSTER
+ db SPRITE_LASS
+ db SPRITE_YOUNGSTER
+ db SPRITE_ROCKET_GIRL
+ db SPRITE_SAGE
+ db SPRITE_GRANNY
+ db SPRITE_ROCKER
+ db SPRITE_POKEFAN_M
+ db SPRITE_KIMONO_GIRL
+ db SPRITE_TWIN
+ db SPRITE_POKEFAN_F
+ db SPRITE_RED
+ db SPRITE_BLUE
+ db SPRITE_OFFICER
+ db SPRITE_ROCKET_GIRL
+
+ret_170bd2: ; 170bd2
+ ret
+; 170bd3
+
+SpecialCheckForBattleTowerRules: ; 170bd3
+ callba CheckForBattleTowerRules
+ jr c, .asm_170bde
+ xor a
+ jr .asm_170be0
+
+.asm_170bde
+ ld a, $1
+
+.asm_170be0
+ ld [ScriptVar], a
+ ret
+; 170be4
diff --git a/misc/crystal_misc.asm b/misc/crystal_misc.asm
index 662c1788a..01538a3d6 100644
--- a/misc/crystal_misc.asm
+++ b/misc/crystal_misc.asm
@@ -49,7 +49,7 @@ Function17a6a8: ; 17a6a8 (5e:66a8)
call Function17ac0c
callba Function104000
call Function17abcf
- callba Function49409
+ callba LoadOW_BGPal7
callba Function49420
call SetPalettes
call DelayFrame
diff --git a/misc/fixed_words.asm b/misc/fixed_words.asm
index 708116689..4f56936a8 100755
--- a/misc/fixed_words.asm
+++ b/misc/fixed_words.asm
@@ -288,7 +288,7 @@ Function11c1ca: ; 11c1ca
ld [wcd2b], a
ld a, $ff
ld [wcd24], a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
call Function11c254
call ClearBGPalettes
@@ -306,9 +306,9 @@ Function11c1ca: ; 11c1ca
call Decompress
call EnableLCD
callba ReloadMapPart
- callba Function8cf53
+ callba ClearSpriteAnims
callba LoadPokemonData
- callba Function40c30
+ callba Pokedex_ABCMode
ld a, [rSVBK]
push af
ld a, $5
@@ -362,12 +362,12 @@ Function11c283: ; 11c283
bit 7, a
jr nz, .exit
call .DoJumptableFunction
- callba Function8cf69
+ callba PlaySpriteAnimations
callba ReloadMapPart
jr .loop
.exit
- callba Function8cf53
+ callba ClearSpriteAnims
call ClearSprites
ret
; 11c2ac
@@ -1733,7 +1733,7 @@ String_11cb31: ; 11cb31
Function11cb52: ; 11cb52 (47:4b52)
ld hl, Unknown_11cc01
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
.asm_11cb58
dec a
jr z, .asm_11cb5f
@@ -1771,7 +1771,7 @@ Function11cb66: ; 11cb66 (47:4b66)
ld a, $4
call GetSRAMBank
ld hl, $a007
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
sla a
sla a
@@ -1794,7 +1794,7 @@ Function11cb66: ; 11cb66 (47:4b66)
ld de, Unknown_11cfc6
call Function11cfce
ld hl, Unknown_11cc7e
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
.asm_11cbba
dec a
jr z, .asm_11cbc1
@@ -2478,7 +2478,7 @@ Function11d0f5: ; 11d0f5 (47:50f5)
ld d, $0
add hl, de
ld a, [hl]
- call Function3b3c
+ call ReinitSpriteAnimFrame
ld a, [CreditsTimer]
sla a
ld hl, Unknown_11d23e
@@ -2487,7 +2487,7 @@ Function11d0f5: ; 11d0f5 (47:50f5)
Function11d10f: ; 11d10f (47:510f)
ld a, $27
- call Function3b3c
+ call ReinitSpriteAnimFrame
ld a, [wcd25]
sla a
ld hl, Unknown_11d29e
@@ -2514,7 +2514,7 @@ asm_11d11e: ; 11d11e (47:511e)
Function11d134: ; 11d134 (47:5134)
ld a, $27
- call Function3b3c
+ call ReinitSpriteAnimFrame
ld a, [wcd2a]
sla a
ld hl, Unknown_11d2b6
@@ -2523,7 +2523,7 @@ Function11d134: ; 11d134 (47:5134)
Function11d145: ; 11d145 (47:5145)
ld a, $27
- call Function3b3c
+ call ReinitSpriteAnimFrame
ld a, [wcd2c]
sla a
ld hl, Unknown_11d2ba
@@ -2532,7 +2532,7 @@ Function11d145: ; 11d145 (47:5145)
Function11d156: ; 11d156 (47:5156)
ld a, $2a
- call Function3b3c
+ call ReinitSpriteAnimFrame
ld a, [wcd4a]
sla a
sla a
@@ -2557,7 +2557,7 @@ Function11d175: ; 11d175 (47:5175)
.asm_11d180
ld a, $26
.asm_11d182
- call Function3b3c
+ call ReinitSpriteAnimFrame
ld a, [wcd4d]
cp $4
jr z, .asm_11d1b1
@@ -2611,7 +2611,7 @@ Function11d1d7: ; 11d1d7 (47:51d7)
asm_11d1db: ; 11d1db (47:51db)
push de
- call Function3b3c
+ call ReinitSpriteAnimFrame
ld a, [wcd4a]
sla a
sla a
@@ -2632,7 +2632,7 @@ asm_11d1db: ; 11d1db (47:51db)
Function11d1fc: ; 11d1fc (47:51fc)
ld a, $26
- call Function3b3c
+ call ReinitSpriteAnimFrame
ld a, $8
ld e, a
call Function11d2ee
diff --git a/misc/gfx_41.asm b/misc/gfx_41.asm
new file mode 100755
index 000000000..7efdf41b8
--- /dev/null
+++ b/misc/gfx_41.asm
@@ -0,0 +1,600 @@
+Function104000:: ; 104000
+ ld hl, .Function
+ jp CallInSafeGFXMode
+
+.Function
+ decoord 0, 0, AttrMap
+ ld hl, wBackupAttrMap
+ call CutAndPasteAttrMap
+ decoord 0, 0
+ ld hl, wDecompressScratch
+ call CutAndPasteTilemap
+ ld a, $0
+ ld [rVBK], a
+ ld hl, wDecompressScratch
+ call Function10419d
+ ld a, $1
+ ld [rVBK], a
+ ld hl, wBackupAttrMap
+ call Function10419d
+ ret
+; 10402d
+
+Function10402d:: ; 10402d
+ ld hl, .Function
+ jp CallInSafeGFXMode
+
+.Function
+ decoord 0, 0
+ ld hl, wDecompressScratch
+ call CutAndPasteTilemap
+ ld a, $0
+ ld [rVBK], a
+ ld hl, wDecompressScratch
+ call Function10419d
+ ret
+; 104047
+
+Function104047: ; 104047
+ ld hl, .Function
+ jp CallInSafeGFXMode
+
+.Function
+ decoord 0, 0, AttrMap
+ ld hl, wBackupAttrMap
+ call CutAndPasteAttrMap
+ ld a, $1
+ ld [rVBK], a
+ ld hl, wBackupAttrMap
+ call Function10419d
+ ret
+; 104061
+
+ReloadMapPart:: ; 104061
+ ld hl, .Function
+ jp CallInSafeGFXMode
+
+.Function
+ decoord 0, 0, AttrMap
+ ld hl, wBackupAttrMap
+ call CutAndPasteAttrMap
+ decoord 0, 0
+ ld hl, wDecompressScratch
+ call CutAndPasteTilemap
+ call DelayFrame
+ di
+ ld a, [rVBK]
+ push af
+ ld a, $1
+ ld [rVBK], a
+ ld hl, wBackupAttrMap
+ call Function1041ad
+ ld a, $0
+ ld [rVBK], a
+ ld hl, wDecompressScratch
+ call Function1041ad
+ pop af
+ ld [rVBK], a
+ ei
+ ret
+
+Function104099: ; 104099
+ ld hl, ReloadMapPart ; useless
+ ld hl, .Function
+ jp CallInSafeGFXMode
+
+.Function
+ decoord 0, 0, AttrMap
+ ld hl, wBackupAttrMap
+ call CutAndPasteAttrMap
+ decoord 0, 0
+ ld hl, wDecompressScratch
+ call CutAndPasteTilemap
+ call DelayFrame
+ di
+ ld a, [rVBK]
+ push af
+ ld a, $1
+ ld [rVBK], a
+ ld hl, wBackupAttrMap
+ call Function1041c1
+ ld a, $0
+ ld [rVBK], a
+ ld hl, wDecompressScratch
+ call Function1041c1
+ pop af
+ ld [rVBK], a
+ ei
+ ret
+; 1040d4
+
+Function1040d4: ; 1040d4
+ ld hl, .Function
+ jp CallInSafeGFXMode
+
+.Function
+ ld a, $1
+ ld [rVBK], a
+ ld a, $3
+ ld [rSVBK], a
+ ld de, w3_d800
+ ld a, [hBGMapAddress + 1]
+ ld [rHDMA1], a
+ ld a, [hBGMapAddress]
+ ld [rHDMA2], a
+ ld a, d
+ ld [rHDMA3], a
+ ld a, e
+ ld [rHDMA4], a
+ ld a, $23
+ ld [hDMATransfer], a
+ call WaitDMATransfer
+ ret
+; 1040fb
+
+Function1040fb: ; 1040fb
+ ld hl, .Function
+ jp CallInSafeGFXMode
+
+.Function
+ ld a, $1
+ ld [rVBK], a
+ ld a, $3
+ ld [rSVBK], a
+ ld hl, w3_d800
+ call Function10419d
+ ret
+; 104110
+
+Function104110:: ; 104110
+; OpenText
+ ld hl, .Function
+ jp CallInSafeGFXMode
+
+.Function
+ decoord 0, 0, AttrMap
+ ld hl, wBackupAttrMap
+ call CutAndPasteAttrMap
+ decoord 0, 0
+ ld hl, wDecompressScratch
+ call CutAndPasteTilemap
+ call DelayFrame
+
+ di
+ ld a, [rVBK]
+ push af
+ ld a, $1
+ ld [rVBK], a
+ ld hl, wBackupAttrMap
+ call Function1041b7
+ ld a, $0
+ ld [rVBK], a
+ ld hl, wDecompressScratch
+ call Function1041b7
+ pop af
+ ld [rVBK], a
+ ei
+ ret
+; 104148
+
+Function104148: ; 104148 (41:4148)
+ ld hl, .Function
+ jp CallInSafeGFXMode
+
+.Function
+ decoord 0, 0, AttrMap
+ ld hl, wBackupAttrMap
+ call CutAndPasteAttrMap
+ ld c, $ff
+ decoord 0, 0
+ ld hl, wDecompressScratch
+ call CutAndPasteMap
+ ld a, $1
+ ld [rVBK], a
+ ld hl, wBackupAttrMap
+ call Function1041ad
+ ld a, $0
+ ld [rVBK], a
+ ld hl, wDecompressScratch
+ call Function1041ad
+ ret
+; 104177
+
+CallInSafeGFXMode: ; 104177
+ ld a, [hBGMapMode]
+ push af
+ ld a, [hMapAnims]
+ push af
+ xor a
+ ld [hBGMapMode], a
+ ld [hMapAnims], a
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+ ld a, [rVBK]
+ push af
+
+ call ._hl_
+
+ pop af
+ ld [rVBK], a
+ pop af
+ ld [rSVBK], a
+ pop af
+ ld [hMapAnims], a
+ pop af
+ ld [hBGMapMode], a
+ ret
+; 10419c
+
+._hl_: ; 10419c
+ jp [hl]
+; 10419d
+
+
+Function10419d: ; 10419d (41:419d)
+ call Function10424e
+ ld a, $23
+ ld [hDMATransfer], a
+
+WaitDMATransfer: ; 104a14
+.loop
+ call DelayFrame
+ ld a, [hDMATransfer]
+ and a
+ jr nz, .loop
+ ret
+
+Function1041ad: ; 1041ad (41:41ad)
+ ld a, [hBGMapAddress + 1]
+ ld d, a
+ ld a, [hBGMapAddress]
+ ld e, a
+ ld c, $24
+ jr Function104209
+
+Function1041b7: ; 1041b7 (41:41b7)
+; hBGMapAddress -> de
+; $24 -> c
+; $7b --> b
+ ld a, [hBGMapAddress + 1]
+ ld d, a
+ ld a, [hBGMapAddress]
+ ld e, a
+ ld c, $24
+ jr asm_104205
+; 1041c1 (41:41c1)
+
+Function1041c1: ; 1041c1
+ ld a, [hBGMapAddress + 1]
+ ld d, a
+ ld a, [hBGMapAddress]
+ ld e, a
+ ld c, $24
+ ld a, h
+ ld [rHDMA1], a
+ ld a, l
+ and $f0
+ ld [rHDMA2], a
+ ld a, d
+ and $1f
+ ld [rHDMA3], a
+ ld a, e
+ and $f0
+ ld [rHDMA4], a
+ ld a, c
+ dec c
+ or $80
+ ld b, a
+ ld a, $7f
+ sub c
+ ld d, a
+.loop1
+ ld a, [rLY]
+ cp d
+ jr nc, .loop1
+.loop2
+ ld a, [rSTAT]
+ and $3
+ jr z, .loop2
+ ld a, b
+ ld [rHDMA5], a
+ ld a, [rLY]
+ inc c
+ ld hl, rLY
+.loop3
+ cp [hl]
+ jr z, .loop3
+ ld a, [hl]
+ dec c
+ jr nz, .loop3
+ ld hl, rHDMA5
+ res 7, [hl]
+ ret
+; 104205
+
+asm_104205:
+ ld b, $7b
+ jr asm_10420b
+
+
+Function104209:
+; LY magic
+ ld b, $7f
+asm_10420b:
+ ld a, h
+ ld [rHDMA1], a
+ ld a, l
+ and $f0 ; high nybble
+ ld [rHDMA2], a
+ ld a, d
+ and $1f ; lower 5 bits
+ ld [rHDMA3], a
+ ld a, e
+ and $f0 ; high nybble
+ ld [rHDMA4], a
+ ld a, c
+ dec c
+ or $80 ; set 7, a
+ ld e, a
+ ld a, b
+ sub c
+ ld d, a
+.ly_loop
+ ld a, [rLY]
+ cp d
+ jr nc, .ly_loop
+
+ di
+.rstat_loop_1
+ ld a, [rSTAT]
+ and $3
+ jr nz, .rstat_loop_1
+.rstat_loop_2
+ ld a, [rSTAT]
+ and $3
+ jr z, .rstat_loop_2
+ ld a, e
+ ld [rHDMA5], a
+ ld a, [rLY]
+ inc c
+ ld hl, rLY
+.final_ly_loop
+ cp [hl]
+ jr z, .final_ly_loop
+ ld a, [hl]
+ dec c
+ jr nz, .final_ly_loop
+ ld hl, rHDMA5
+ res 7, [hl]
+ ei
+
+ ret
+; 10424e
+
+
+Function10424e: ; 10424e (41:424e)
+ ld a, h
+ ld [rHDMA1], a
+ ld a, l
+ ld [rHDMA2], a
+ ld a, [hBGMapAddress + 1]
+ and $1f
+ ld [rHDMA3], a
+ ld a, [hBGMapAddress]
+ ld [rHDMA4], a
+ ret
+
+CutAndPasteTilemap: ; 10425f (41:425f)
+ ld c, " "
+ jr CutAndPasteMap
+
+CutAndPasteAttrMap: ; 104263 (41:4263)
+ ld c, $0
+
+CutAndPasteMap: ; 104265 (41:4265)
+; back up the value of c to hMapObjectIndexBuffer
+ ld a, [hMapObjectIndexBuffer]
+ push af
+ ld a, c
+ ld [hMapObjectIndexBuffer], a
+
+; for each row on the screen
+ ld c, SCREEN_HEIGHT
+.loop1
+; for each tile in the row
+ ld b, SCREEN_WIDTH
+.loop2
+; copy from de to hl
+ ld a, [de]
+ inc de
+ ld [hli], a
+ dec b
+ jr nz, .loop2
+
+; load the original value of c into hl 12 times
+ ld a, [hMapObjectIndexBuffer]
+ ld b, 12
+.loop3
+ ld [hli], a
+ dec b
+ jr nz, .loop3
+
+ dec c
+ jr nz, .loop1
+
+; restore the original value of hMapObjectIndexBuffer
+ pop af
+ ld [hMapObjectIndexBuffer], a
+ ret
+
+
+_Get2bpp:: ; 104284
+ ; 2bpp when [rLCDC] & $80
+ ; switch to WRAM bank 6
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+
+ push bc
+ push hl
+
+ ; Copy c tiles of the 2bpp from b:de to wDecompressScratch
+ ld a, b ; bank
+ ld l, c ; number of tiles
+ ld h, $0
+rept 4
+ add hl, hl ; multiply by 16 (16 bytes of a 2bpp = 8 x 8 tile)
+endr
+ ld b, h
+ ld c, l
+ ld h, d ; address
+ ld l, e
+ ld de, wDecompressScratch
+ call FarCopyBytes
+
+ pop hl
+ pop bc
+
+ push bc
+ call DelayFrame
+ pop bc
+
+ ld d, h
+ ld e, l
+ ld hl, wDecompressScratch
+ call Function104209
+
+ ; restore the previous bank
+ pop af
+ ld [rSVBK], a
+ ret
+; 1042b2
+
+_Get1bpp:: ; 1042b2
+ ; 1bpp when [rLCDC] & $80
+.loop
+ ld a, c
+ cp $10
+ jp c, .bankswitch
+ jp z, .bankswitch
+ push bc
+ push hl
+ push de
+ ld c, $10
+ call .bankswitch
+ pop de
+ ld hl, $80
+ add hl, de
+ ld d, h
+ ld e, l
+ pop hl
+ lb bc, 1, 0
+ add hl, bc
+ pop bc
+ ld a, c
+ sub $10
+ ld c, a
+ jr .loop
+; 1042d6
+
+.bankswitch: ; 1042d6
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+
+ push bc
+ push hl
+
+ ld a, b
+ ld l, c
+ ld h, $0
+rept 3
+ add hl, hl ; multiply by 8
+endr
+ ld c, l
+ ld b, h
+ ld h, d
+ ld l, e
+ ld de, wDecompressScratch
+ call FarCopyBytesDouble_DoubleBankSwitch
+
+ pop hl
+ pop bc
+
+ push bc
+ call DelayFrame
+ pop bc
+
+ ld d, h
+ ld e, l
+ ld hl, wDecompressScratch
+ call Function104209
+
+ pop af
+ ld [rSVBK], a
+ ret
+; 104303
+
+Function104303: ; 104303
+ ld hl, Function104309
+ jp CallInSafeGFXMode
+; 104309
+
+Function104309:
+ ld hl, wDecompressScratch
+ decoord 0, 0
+ call Function10433a
+ ld hl, wDecompressScratch + $80
+ decoord 0, 0, AttrMap
+ call Function10433a
+ ld a, $1
+ ld [rVBK], a
+ ld c, $8
+ ld hl, wDecompressScratch + $80
+ debgcoord 0, 0, VBGMap1
+ call Function104209
+ ld a, $0
+ ld [rVBK], a
+ ld c, $8
+ ld hl, wDecompressScratch
+ debgcoord 0, 0, VBGMap1
+ call Function104209
+ ret
+
+Function10433a: ; 10433a (41:433a)
+ ld b, 4
+.outer_loop
+ ld c, SCREEN_WIDTH
+.inner_loop
+ ld a, [de]
+ ld [hli], a
+ inc de
+ dec c
+ jr nz, .inner_loop
+ ld a, l
+ add $20 - SCREEN_WIDTH
+ ld l, a
+ ld a, h
+ adc $0
+ ld h, a
+ dec b
+ jr nz, .outer_loop
+ ret
+; 104350
+
+ShockEmote: INCBIN "gfx/emotes/shock.2bpp"
+QuestionEmote: INCBIN "gfx/emotes/question.2bpp"
+HappyEmote: INCBIN "gfx/emotes/happy.2bpp"
+SadEmote: INCBIN "gfx/emotes/sad.2bpp"
+HeartEmote: INCBIN "gfx/emotes/heart.2bpp"
+BoltEmote: INCBIN "gfx/emotes/bolt.2bpp"
+SleepEmote: INCBIN "gfx/emotes/sleep.2bpp"
+FishEmote: INCBIN "gfx/emotes/fish.2bpp"
+JumpShadowGFX: INCBIN "gfx/misc/shadow.2bpp"
+FishingRodGFX2: INCBIN "gfx/misc/fishing2.2bpp"
+BoulderDustGFX: INCBIN "gfx/misc/boulderdust.2bpp"
+FishingRodGFX4: INCBIN "gfx/misc/fishing4.2bpp"
diff --git a/misc/mobile_12.asm b/misc/mobile_12.asm
index 185d19e89..7dca10581 100755
--- a/misc/mobile_12.asm
+++ b/misc/mobile_12.asm
@@ -6,7 +6,7 @@ InitMobileProfile: ; 4802f (12:402f)
set 0, [hl]
ld a, c
and a
- call z, Function48000
+ call z, InitCrystalData
call ClearBGPalettes
call Function48d3d
ld a, [wd479]
@@ -46,7 +46,7 @@ InitMobileProfile: ; 4802f (12:402f)
ld c, 20
call DelayFrames
ld b, $1
- call Function4930f
+ call GetMysteryGift_MobileAdapterLayout
call ClearBGPalettes
hlcoord 0, 0
ld b, $2
@@ -112,17 +112,17 @@ InitMobileProfile: ; 4802f (12:402f)
ld de, String_48275
call PlaceString
call Function48187
- call Function3200
+ call WaitBGMap2
call SetPalettes
- call Function1bc9
- ld hl, MenuSelection2
+ call StaticMenuJoypad
+ ld hl, wMenuCursorY
ld b, [hl]
push bc
jr asm_4815f
Function48157: ; 48157 (12:4157)
- call Function1bd3
- ld hl, MenuSelection2
+ call ScrollingMenuJoypad
+ ld hl, wMenuCursorY
ld b, [hl]
push bc
@@ -214,8 +214,8 @@ String_48202: ; 48202
; 4820d
Function4820d: ; 4820d (12:420d)
- call Function1bee
- ld hl, MenuSelection2
+ call PlaceHollowCursor
+ ld hl, wMenuCursorY
ld a, [hl]
push af
ld a, [wd002]
@@ -235,7 +235,7 @@ Function4820d: ; 4820d (12:420d)
cp $4
jp z, Function488d3
ld a, $2
- call Function1ff8
+ call MenuClickSound
ld a, [wd002]
bit 6, a
jr z, .asm_4825c
@@ -301,12 +301,12 @@ asm_4828d: ; 4828d (12:428d)
ld a, [PlayerGender]
inc a
ld [wMenuCursorBuffer], a
- call Function1bc9
+ call StaticMenuJoypad
call PlayClickSFX
call ExitMenu
bit 0, a
jp z, Function4840c
- ld hl, MenuSelection2
+ ld hl, wMenuCursorY
ld a, [hl]
ld hl, Strings_484fb
cp $1
@@ -361,7 +361,7 @@ Function48304: ; 48304 (12:4304)
ld [wMenuScrollPosition], a
callba Function104148
.asm_48348
- call HandleScrollingMenu
+ call ScrollingMenu
ld de, $629
call Function48383
jr c, .asm_48348
@@ -415,7 +415,7 @@ Function48383: ; 48383 (12:4383)
ld [wMenuScrollPosition], a
jr .asm_483af
.asm_483af
- ld hl, MenuSelection2
+ ld hl, wMenuCursorY
ld a, [hl]
ld [wMenuCursorBuffer], a
scf
@@ -426,7 +426,7 @@ Function48383: ; 48383 (12:4383)
ret
Function483bb: ; 483bb (12:43bb)
- ld hl, wcf77
+ ld hl, wScrollingMenuCursorPosition
ld a, [hl]
inc a
ld [wd474], a
@@ -493,7 +493,7 @@ Function4840c: ; 4840c (12:440c)
call PlaceString
call Function486bf
pop bc
- ld hl, MenuSelection2
+ ld hl, wMenuCursorY
ld [hl], b
ld a, [wd002]
bit 6, a
@@ -665,7 +665,7 @@ Function48689: ; 48689 (12:4689)
ld c, 7
call DelayFrames
ld b, $1
- call Function4930f
+ call GetMysteryGift_MobileAdapterLayout
call ClearBGPalettes
hlcoord 0, 0
ld b, $4
@@ -687,7 +687,7 @@ Function48689: ; 48689 (12:4689)
ret
Function486bf: ; 486bf (12:46bf)
- ld hl, wcfa1
+ ld hl, w2DMenuCursorInitY
ld a, [wd002]
bit 6, a
jr nz, .asm_486ce
@@ -772,7 +772,7 @@ Function48725: ; 48725 (12:4725)
ret
Function4873c: ; 4873c (12:473c)
- ld hl, wcfa1
+ ld hl, w2DMenuCursorInitY
ld a, $4
ld [hli], a
ld a, $c
@@ -853,7 +853,7 @@ Function4876f: ; 4876f (12:476f)
call Function4880e
jr nc, .asm_487c6
ld a, $1
- call Function1ff8
+ call MenuClickSound
pop bc
jr nz, .asm_487da
ld a, b
@@ -1154,7 +1154,7 @@ asm_48972: ; 48972 (12:4972)
push de
push hl
ld a, $1
- call Function1ff8
+ call MenuClickSound
pop hl
pop de
pop bc
@@ -1217,11 +1217,11 @@ Function48a3a: ; 48a3a (12:4a3a)
call LoadMenuDataHeader
call Function4873c
ld a, $a
- ld [wcfa1], a
+ ld [w2DMenuCursorInitY], a
ld a, $b
- ld [wcfa2], a
+ ld [w2DMenuCursorInitX], a
ld a, $1
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
hlcoord 10, 8
ld b, $4
ld c, $8
@@ -1229,14 +1229,14 @@ Function48a3a: ; 48a3a (12:4a3a)
hlcoord 12, 10
ld de, String_48aa1
call PlaceString
- call Function1bc9
+ call StaticMenuJoypad
push af
call PlayClickSFX
call ExitMenu
pop af
bit 1, a
jp nz, Function48a9a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp $1
jr z, .asm_48a98
ld a, [wd003]
@@ -1605,7 +1605,8 @@ Function48c63: ; 48c63
; 48c8e
Function48c8e: ; 48c8e
- ld hl, wd02a
+; unreferenced
+ ld hl, $d02a
ld d, h
ld e, l
callba Function48c63
diff --git a/misc/mobile_12_2.asm b/misc/mobile_12_2.asm
new file mode 100755
index 000000000..86583aa40
--- /dev/null
+++ b/misc/mobile_12_2.asm
@@ -0,0 +1,937 @@
+MobileCheckOwnMonAnywhere: ; 4a843
+; Like CheckOwnMonAnywhere, but only check for species.
+; OT/ID don't matter.
+
+ ld a, [PartyCount]
+ and a
+ ret z
+
+ ld d, a
+ ld e, 0
+ ld hl, PartyMon1Species
+ ld bc, PartyMonOT
+.asm_4a851
+ call .CheckMatch
+ ret c
+ push bc
+ ld bc, PARTYMON_STRUCT_LENGTH
+ add hl, bc
+ pop bc
+ call .CopyName
+ dec d
+ jr nz, .asm_4a851
+ ld a, BANK(sBoxCount)
+ call GetSRAMBank
+ ld a, [sBoxCount]
+ and a
+ jr z, .asm_4a888
+ ld d, a
+ ld hl, sBoxMon1Species
+ ld bc, sBoxMonOT
+.asm_4a873
+ call .CheckMatch
+ jr nc, .asm_4a87c
+ call CloseSRAM
+ ret
+
+.asm_4a87c
+ push bc
+ ld bc, BOXMON_STRUCT_LENGTH
+ add hl, bc
+ pop bc
+ call .CopyName
+ dec d
+ jr nz, .asm_4a873
+
+.asm_4a888
+ call CloseSRAM
+ ld c, 0
+.asm_4a88d
+ ld a, [wCurBox]
+ and $f
+ cp c
+ jr z, .asm_4a8d1
+ ld hl, .BoxAddrs
+ ld b, 0
+rept 3
+ add hl, bc
+endr
+ ld a, [hli]
+ call GetSRAMBank
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [hl]
+ and a
+ jr z, .asm_4a8d1
+ push bc
+ push hl
+ ld de, sBoxMons - sBoxCount
+ add hl, de
+ ld d, h
+ ld e, l
+ pop hl
+ push de
+ ld de, sBoxMonOT - sBoxCount
+ add hl, de
+ ld b, h
+ ld c, l
+ pop hl
+ ld d, a
+.asm_4a8ba
+ call .CheckMatch
+ jr nc, .asm_4a8c4
+ pop bc
+ call CloseSRAM
+ ret
+
+.asm_4a8c4
+ push bc
+ ld bc, BOXMON_STRUCT_LENGTH
+ add hl, bc
+ pop bc
+ call .CopyName
+ dec d
+ jr nz, .asm_4a8ba
+ pop bc
+
+.asm_4a8d1
+ inc c
+ ld a, c
+ cp NUM_BOXES
+ jr c, .asm_4a88d
+ call CloseSRAM
+ and a
+ ret
+; 4a8dc
+
+.CheckMatch: ; 4a8dc
+ push bc
+ push hl
+ push de
+ ld d, b
+ ld e, c
+ ld a, [ScriptVar]
+ ld b, [hl]
+ cp b
+ jr nz, .no_match
+ jr .match
+
+.no_match
+ pop de
+ pop hl
+ pop bc
+ and a
+ ret
+
+.match
+ pop de
+ pop hl
+ pop bc
+ scf
+ ret
+; 4a8f4
+
+.BoxAddrs: ; 4a8f4
+ dba sBox1
+ dba sBox2
+ dba sBox3
+ dba sBox4
+ dba sBox5
+ dba sBox6
+ dba sBox7
+ dba sBox8
+ dba sBox9
+ dba sBox10
+ dba sBox11
+ dba sBox12
+ dba sBox13
+ dba sBox14
+; 4a91e
+
+.CopyName: ; 4a91e
+ push hl
+ ld hl, NAME_LENGTH
+ add hl, bc
+ ld b, h
+ ld c, l
+ pop hl
+ ret
+; 4a927
+
+FindItemInPCOrBag: ; 4a927
+ ld a, [ScriptVar]
+ ld [CurItem], a
+ ld hl, PCItems
+ call CheckItem
+ jr c, .found
+
+ ld a, [ScriptVar]
+ ld [CurItem], a
+ ld hl, NumItems
+ call CheckItem
+ jr c, .found
+
+ xor a
+ ld [ScriptVar], a
+ ret
+
+.found
+ ld a, 1
+ ld [ScriptVar], a
+ ret
+; 4a94e
+
+Function4a94e: ; 4a94e
+ call FadeToMenu
+ ld a, -1
+ ld hl, wd002
+ ld bc, 3
+ call ByteFill
+ xor a
+ ld [wd018], a
+ ld [wd019], a
+ ld b, SCGB_PACKPALS
+ call GetSGBLayout
+ call SetPalettes
+ call Function4aa22
+ jr c, .asm_4a985
+ jr z, .asm_4a9a1
+ jr .asm_4a97b
+
+.asm_4a974
+ call Function4aa25
+ jr c, .asm_4a985
+ jr z, .asm_4a9a1
+
+.asm_4a97b
+ call Function4ac58
+ ld hl, wd019
+ res 1, [hl]
+ jr .asm_4a974
+
+.asm_4a985
+ ld a, [wd018]
+ and a
+ jr nz, .asm_4a990
+ call Function4aba8
+ jr c, .asm_4a974
+
+.asm_4a990
+ call CloseSubmenu
+ ld hl, wd002
+ ld a, -1
+ ld bc, 3
+ call ByteFill
+ scf
+ jr .asm_4a9af
+
+.asm_4a9a1
+ call Function4a9c3
+ jr c, .asm_4a9b0
+ call Function4a9d7
+ jr c, .asm_4a974
+ call CloseSubmenu
+ and a
+
+.asm_4a9af
+ ret
+
+.asm_4a9b0
+ ld de, SFX_WRONG
+ call PlaySFX
+ ld hl, UnknownText_0x4a9be
+ call PrintText
+ jr .asm_4a974
+; 4a9be
+
+UnknownText_0x4a9be: ; 0x4a9be
+ ; Pick three #MON for battle.
+ text_jump UnknownText_0x1c51d7
+ db "@"
+; 0x4a9c3
+
+Function4a9c3: ; 4a9c3
+ ld hl, wd002
+ ld a, $ff
+ cp [hl]
+ jr z, .asm_4a9d5
+ inc hl
+ cp [hl]
+ jr z, .asm_4a9d5
+ inc hl
+ cp [hl]
+ jr z, .asm_4a9d5
+ and a
+ ret
+
+.asm_4a9d5
+ scf
+ ret
+; 4a9d7
+
+Function4a9d7: ; 4a9d7
+ ld a, [wd002]
+ ld hl, PartyMonNicknames
+ call GetNick
+ ld h, d
+ ld l, e
+ ld de, EndFlypoint
+ ld bc, 6
+ call CopyBytes
+ ld a, [wd003]
+ ld hl, PartyMonNicknames
+ call GetNick
+ ld h, d
+ ld l, e
+ ld de, wd00c
+ ld bc, 6
+ call CopyBytes
+ ld a, [wd004]
+ ld hl, PartyMonNicknames
+ call GetNick
+ ld h, d
+ ld l, e
+ ld de, wd012
+ ld bc, 6
+ call CopyBytes
+ ld hl, UnknownText_0x4aa1d
+ call PrintText
+ call YesNoBox
+ ret
+; 4aa1d
+
+UnknownText_0x4aa1d: ; 0x4aa1d
+ ; , @ and @ . Use these three?
+ text_jump UnknownText_0x1c51f4
+ db "@"
+; 0x4aa22
+
+Function4aa22: ; 4aa22
+ call ClearBGPalettes
+
+Function4aa25: ; 4aa25
+ callba LoadPartyMenuGFX
+ callba InitPartyMenuWithCancel
+ call Function4aad3
+
+Function4aa34: ; 4aa34
+ ld a, $9
+ ld [PartyMenuActionText], a
+ callba WritePartyMenuTilemap
+ xor a
+ ld [PartyMenuActionText], a
+ callba PrintPartyMenuText
+ call Function4aab6
+ call WaitBGMap
+ call SetPalettes
+ call DelayFrame
+ call Function4ab1a
+ jr z, .asm_4aa66
+ push af
+ call Function4aafb
+ jr c, .asm_4aa67
+ call Function4ab06
+ jr c, .asm_4aa67
+ pop af
+
+.asm_4aa66
+ ret
+
+.asm_4aa67
+ ld hl, wd019
+ set 1, [hl]
+ pop af
+ ret
+; 4aa6e
+
+Function4aa6e: ; 4aa6e
+ pop af
+ ld de, SFX_WRONG
+ call PlaySFX
+ call WaitSFX
+ jr Function4aa34
+; 4aa7a
+
+Function4aa7a: ; 4aa7a
+ ld hl, wd002
+ ld d, $3
+.loop
+ ld e, PARTY_LENGTH
+ ld a, [hli]
+ push de
+ push hl
+ cp -1
+ jr z, .done
+ ld hl, wSpriteAnimationStructs
+ inc a
+ ld d, a
+.inner_loop
+ ld a, [hl]
+ and a
+ jr z, .next
+ cp d
+ jr z, .same_as_d
+ jr .next
+
+ ld a, $3
+ jr .proceed
+
+.same_as_d
+ ld a, $2
+
+.proceed
+ push hl
+ ld c, l
+ ld b, h
+ ld hl, $2
+ add hl, bc
+ ld [hl], a
+ pop hl
+
+.next
+ ld bc, $10
+ add hl, bc
+ dec e
+ jr nz, .inner_loop
+ pop hl
+ pop de
+ dec d
+ jr nz, .loop
+ jr .finished
+
+.done
+ pop hl
+ pop de
+
+.finished
+ ret
+; 4aab6
+
+Function4aab6: ; 4aab6
+ ld hl, wd002
+ ld d, $3
+.loop
+ ld a, [hli]
+ cp -1
+ jr z, .done
+ push de
+ push hl
+ hlcoord 0, 1
+ ld bc, $28
+ call AddNTimes
+ ld [hl], $ec
+ pop hl
+ pop de
+ dec d
+ jr nz, .loop
+
+.done
+ ret
+; 4aad3
+
+Function4aad3: ; 4aad3
+ ld hl, PartyCount
+ ld a, [hli]
+ and a
+ ret z ; Nothing in your party
+
+ ld c, a
+ xor a
+ ld [hObjectStructIndexBuffer], a
+.loop
+ push bc
+ push hl
+ ld e, 0
+ callba Function8e83f
+ ld a, [hObjectStructIndexBuffer]
+ inc a
+ ld [hObjectStructIndexBuffer], a
+ pop hl
+ pop bc
+ dec c
+ jr nz, .loop
+
+ call Function4aa7a
+ callba PlaySpriteAnimations
+ ret
+; 4aafb
+
+Function4aafb: ; 4aafb
+ ld a, [CurPartySpecies]
+ cp EGG
+ jr z, .egg
+ and a
+ ret
+
+.egg
+ scf
+ ret
+; 4ab06
+
+Function4ab06: ; 4ab06
+ ld a, [CurPartyMon]
+ ld bc, PARTYMON_STRUCT_LENGTH
+ ld hl, PartyMon1HP
+ call AddNTimes
+ ld a, [hli]
+ ld b, a
+ ld a, [hl]
+ or b
+ jr nz, .NotFainted
+ scf
+
+.NotFainted
+ ret
+; 4ab1a
+
+Function4ab1a: ; 4ab1a
+.asm_4ab1a
+ ld a, $fb
+ ld [wMenuJoypadFilter], a
+ ld a, $26
+ ld [w2DMenuCursorOffsets], a
+ ld a, $2
+ ld [w2DMenuNumCols], a
+ call Function4adf7
+ call StaticMenuJoypad
+ call Function4abc3
+ jr c, .asm_4ab1a
+ push af
+ call Function4ab99
+ call nc, PlaceHollowCursor
+ pop af
+ bit 1, a
+ jr nz, .asm_4ab6d
+ ld a, [PartyCount]
+ inc a
+ ld b, a
+ ld a, [wMenuCursorY]
+ ld [wPartyMenuCursor], a
+ cp b
+ jr z, .asm_4ab7e
+ ld a, [wMenuCursorY]
+ dec a
+ ld [CurPartyMon], a
+ ld c, a
+ ld b, $0
+ ld hl, PartySpecies
+ add hl, bc
+ ld a, [hl]
+ ld [CurPartySpecies], a
+ ld de, SFX_READ_TEXT_2
+ call PlaySFX
+ call WaitSFX
+ ld a, $1
+ and a
+ ret
+
+.asm_4ab6d
+ ld a, [wMenuCursorY]
+ ld [wPartyMenuCursor], a
+.asm_4ab73
+ ld de, SFX_READ_TEXT_2
+ call PlaySFX
+ call WaitSFX
+ scf
+ ret
+
+.asm_4ab7e
+ ld a, $1
+ ld [wd018], a
+ ld a, [wMenuCursorX]
+ cp $2
+ jr z, .asm_4ab73
+ ld de, SFX_READ_TEXT_2
+ call PlaySFX
+ call WaitSFX
+ xor a
+ ld [wd018], a
+ and a
+ ret
+; 4ab99
+
+Function4ab99: ; 4ab99
+ bit 1, a
+ jr z, .asm_4aba6
+ ld a, [wd002]
+ cp $ff
+ jr z, .asm_4aba6
+ scf
+ ret
+
+.asm_4aba6
+ and a
+ ret
+; 4aba8
+
+Function4aba8: ; 4aba8
+ ld hl, wd004
+ ld a, [hl]
+ cp $ff
+ jr nz, .asm_4abbe
+ dec hl
+ ld a, [hl]
+ cp $ff
+ jr nz, .asm_4abbe
+ dec hl
+ ld a, [hl]
+ cp $ff
+ jr nz, .asm_4abbe
+ and a
+ ret
+
+.asm_4abbe
+ ld a, $ff
+ ld [hl], a
+ scf
+ ret
+; 4abc3
+
+Function4abc3: ; 4abc3
+ bit 3, a
+ jr z, .asm_4abd5
+ ld a, [PartyCount]
+ inc a
+ ld [wMenuCursorY], a
+ ld a, $1
+ ld [wMenuCursorX], a
+ jr .asm_4ac29
+
+.asm_4abd5
+ bit 6, a
+ jr z, .asm_4abeb
+ ld a, [wMenuCursorY]
+ ld [wMenuCursorY], a
+ and a
+ jr nz, .asm_4ac29
+ ld a, [PartyCount]
+ inc a
+ ld [wMenuCursorY], a
+ jr .asm_4ac29
+
+.asm_4abeb
+ bit 7, a
+ jr z, .asm_4ac08
+ ld a, [wMenuCursorY]
+ ld [wMenuCursorY], a
+ ld a, [PartyCount]
+rept 2
+ inc a
+endr
+ ld b, a
+ ld a, [wMenuCursorY]
+ cp b
+ jr nz, .asm_4ac29
+ ld a, $1
+ ld [wMenuCursorY], a
+ jr .asm_4ac29
+
+.asm_4ac08
+ bit 4, a
+ jr nz, .asm_4ac10
+ bit 5, a
+ jr z, .asm_4ac56
+
+.asm_4ac10
+ ld a, [wMenuCursorY]
+ ld b, a
+ ld a, [PartyCount]
+ inc a
+ cp b
+ jr nz, .asm_4ac29
+ ld a, [wMenuCursorX]
+ cp $1
+ jr z, .asm_4ac26
+ ld a, $1
+ jr .asm_4ac29
+
+.asm_4ac26
+ ld [wMenuCursorX], a
+
+.asm_4ac29
+ hlcoord 0, 1
+ lb bc, 13, 1
+ call ClearBox
+ call Function4aab6
+ ld a, [PartyCount]
+ hlcoord 6, 1
+.asm_4ac3b
+ ld bc, $28
+ add hl, bc
+ dec a
+ jr nz, .asm_4ac3b
+ ld [hl], $7f
+ ld a, [wMenuCursorY]
+ ld b, a
+ ld a, [PartyCount]
+ inc a
+ cp b
+ jr z, .asm_4ac54
+ ld a, $1
+ ld [wMenuCursorX], a
+
+.asm_4ac54
+ scf
+ ret
+
+.asm_4ac56
+ and a
+ ret
+; 4ac58
+
+Function4ac58: ; 4ac58
+ lb bc, 2, 18
+ hlcoord 1, 15
+ call ClearBox
+ callba FreezeMonIcons
+ ld hl, MenuDataHeader_0x4aca2
+ call LoadMenuDataHeader
+ ld hl, wd019
+ bit 1, [hl]
+ jr z, .asm_4ac89
+ hlcoord 11, 13
+ ld b, $3
+ ld c, $7
+ call TextBox
+ hlcoord 13, 14
+ ld de, String_4ada7
+ call PlaceString
+ jr .asm_4ac96
+
+.asm_4ac89
+ hlcoord 11, 9
+ ld b, $7
+ ld c, $7
+ call TextBox
+ call Function4ad68
+
+.asm_4ac96
+ ld a, $1
+ ld [hBGMapMode], a
+ call Function4acaa
+ call ExitMenu
+ and a
+ ret
+; 4aca2
+
+MenuDataHeader_0x4aca2: ; 0x4aca2
+ db $40 ; flags
+ db 09, 11 ; start coords
+ db 17, 19 ; end coords
+ dw NULL
+ db 1 ; default option
+; 0x4acaa
+
+Function4acaa: ; 4acaa
+.asm_4acaa
+ ld a, $a0
+ ld [wMenuData2Flags], a
+ ld a, [wd019]
+ bit 1, a
+ jr z, .asm_4acc2
+ ld a, $2
+ ld [wMenuData2Items], a
+ ld a, $c
+ ld [wMenuBorderTopCoord], a
+ jr .asm_4accc
+
+.asm_4acc2
+ ld a, $4
+ ld [wMenuData2Items], a
+ ld a, $8
+ ld [wMenuBorderTopCoord], a
+
+.asm_4accc
+ ld a, $b
+ ld [wMenuBorderLeftCoord], a
+ ld a, $1
+ ld [wMenuCursorBuffer], a
+ call InitVerticalMenuCursor
+ ld hl, w2DMenuFlags1
+ set 6, [hl]
+ call StaticMenuJoypad
+ ld de, SFX_READ_TEXT_2
+ call PlaySFX
+ ld a, [hJoyPressed]
+ bit 0, a
+ jr nz, .asm_4acf4
+ bit 1, a
+ jr nz, .asm_4acf3
+ jr .asm_4acaa
+
+.asm_4acf3
+ ret
+
+.asm_4acf4
+ ld a, [wd019]
+ bit 1, a
+ jr nz, .asm_4ad0e
+ ld a, [wMenuCursorY]
+ cp $1
+ jr z, Function4ad17
+ cp $2
+ jp z, Function4ad56
+ cp $3
+ jp z, Function4ad60
+ jr .asm_4acf3
+
+.asm_4ad0e
+ ld a, [wMenuCursorY]
+ cp $1
+ jr z, Function4ad56
+ jr .asm_4acf3
+
+Function4ad17: ; 4ad17
+ call Function4adb2
+ jr z, .asm_4ad4a
+ ld hl, wd002
+ ld a, $ff
+ cp [hl]
+ jr z, .asm_4ad39
+ inc hl
+ cp [hl]
+ jr z, .asm_4ad39
+ inc hl
+ cp [hl]
+ jr z, .asm_4ad39
+ ld de, SFX_WRONG
+ call WaitPlaySFX
+ ld hl, UnknownText_0x4ad51
+ call PrintText
+ ret
+
+.asm_4ad39
+ ld a, [CurPartyMon]
+ ld [hl], a
+ call Function4a9c3
+ ret c
+ ld a, [wd019]
+ set 0, a
+ ld [wd019], a
+ ret
+
+.asm_4ad4a
+ ld a, $ff
+ ld [hl], a
+ call Function4adc2
+ ret
+
+UnknownText_0x4ad51: ; 0x4ad51
+ ; Only three #MON may enter.
+ text_jump UnknownText_0x1c521c
+ db "@"
+; 0x4ad56
+
+Function4ad56: ; 4ad56
+ callba OpenPartyStats
+ call WaitBGMap2
+ ret
+; 4ad60
+
+Function4ad60: ; 4ad60
+ callba ManagePokemonMoves
+ ret
+; 4ad67
+
+Function4ad67: ; 4ad67
+ ret
+; 4ad68
+
+Function4ad68: ; 4ad68
+ hlcoord 13, 12
+ ld de, String_4ad88
+ call PlaceString
+ call Function4adb2
+ jr c, .asm_4ad7e
+ hlcoord 13, 10
+ ld de, String_4ada0
+ jr .asm_4ad84
+
+.asm_4ad7e
+ hlcoord 13, 10
+ ld de, String_4ad9a
+
+.asm_4ad84
+ call PlaceString
+ ret
+; 4ad88
+
+String_4ad88: ; 4ad88
+ db "つよさをみる"
+ next "つかえるわざ"
+ next "もどる@"
+; 4ad9a
+
+String_4ad9a: ; 4ad9a
+ db "さんかする@"
+; 4ada0
+
+String_4ada0: ; 4ada0
+ db "さんかしない@"
+; 4ada7
+
+String_4ada7: ; 4ada7
+ db "つよさをみる"
+ next "もどる@" ; BACK
+; 4adb2
+
+Function4adb2: ; 4adb2
+ ld hl, wd002
+ ld a, [CurPartyMon]
+ cp [hl]
+ ret z
+ inc hl
+ cp [hl]
+ ret z
+ inc hl
+ cp [hl]
+ ret z
+ scf
+ ret
+; 4adc2
+
+Function4adc2: ; 4adc2
+ ld a, [wd002]
+ cp $ff
+ jr nz, .skip
+ ld a, [wd003]
+ cp $ff
+ jr nz, .skip2
+ ld a, [wd004]
+ ld [wd002], a
+ ld a, $ff
+ ld [wd004], a
+ jr .skip
+
+.skip2
+ ld [wd002], a
+ ld a, $ff
+ ld [wd003], a
+
+.skip
+ ld a, [wd003]
+ cp $ff
+ ret nz
+ ld b, a
+ ld a, [wd004]
+ ld [wd003], a
+ ld a, b
+ ld [wd004], a
+ ret
+; 4adf7
+
+Function4adf7: ; 4adf7
+ ld a, [wd019]
+ bit 0, a
+ ret z
+ ld a, [PartyCount]
+ inc a
+ ld [wMenuCursorY], a
+ ld a, $1
+ ld [wMenuCursorX], a
+ ld a, [wd019]
+ res 0, a
+ ld [wd019], a
+ ret
+; 4ae12
diff --git a/misc/mobile_22.asm b/misc/mobile_22.asm
index 061e67117..70b4e04e4 100644
--- a/misc/mobile_22.asm
+++ b/misc/mobile_22.asm
@@ -214,7 +214,7 @@ Function89240: ; 89240
Function89245: ; 89245 (22:5245)
callba TryLoadSaveFile
ret c
- callba Function150b9
+ callba _LoadData
and a
ret
@@ -248,10 +248,10 @@ Function89261: ; 89261
ld [hl], a
pop af
ld [wMenuCursorBuffer], a
- call BackUpTiles
+ call PushWindow
call Function8923c
call Function89209
- call InterpretMenu2
+ call VerticalMenu
push af
ld c, $a
call DelayFrames
@@ -259,7 +259,7 @@ Function89261: ; 89261
call Function8920f
pop af
jr c, .done
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp $2
jr z, .done
and a
@@ -1308,7 +1308,7 @@ Function89844: ; 89844
call Function894bb
call Function897af
push bc
- call Function3200
+ call WaitBGMap2
call SetPalettes
pop bc
ret
@@ -1694,7 +1694,7 @@ Function89a57: ; 89a57
Function89a8a: ; 89a8a
push af
- ld de, SFX_UNKNOWN_62
+ ld de, SFX_SWITCH_POCKETS
call PlaySFX
pop af
ret
@@ -1791,7 +1791,7 @@ Function89ae6: ; 89ae6
Function89b00: ; 89b00 (22:5b00)
- callba Function49351
+ callba MG_Mobile_Layout_LoadPals
ret
; 89b07 (22:5b07)
@@ -2198,9 +2198,9 @@ Function89d5e: ; 89d5e (22:5d5e)
pop af
ld [wMenuCursorBuffer], a
call Function8923c
- call Function1c89
- call Function1c10
- ld hl, wcfa5
+ call PlaceVerticalMenuItems
+ call InitVerticalMenuCursor
+ ld hl, w2DMenuFlags1
set 7, [hl]
ret
@@ -2224,7 +2224,7 @@ asm_89d90: ; 89d90 (22:5d90)
push hl
call _hl_
call Function89dab
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
push af
call Function891ab
pop af
@@ -2239,10 +2239,10 @@ asm_89d90: ; 89d90 (22:5d90)
Function89dab: ; 89dab (22:5dab)
call Function8923c
- callba Function241ba
+ callba MobileMenuJoypad
call Function8923c
ld a, c
- ld hl, wcfa8
+ ld hl, wMenuJoypadFilter
and [hl]
ret z
bit 0, a
@@ -2253,12 +2253,12 @@ Function89dab: ; 89dab (22:5dab)
ret
.asm_89dc7
call PlayClickSFX
- ld a, [wcfa3]
+ ld a, [w2DMenuNumRows]
ld c, a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp c
jr z, .asm_89dd9
- call Function1bee
+ call PlaceHollowCursor
scf
ret
.asm_89dd9
@@ -2275,7 +2275,7 @@ Function89de0: ; 89de0 (22:5de0)
.asm_89dea
call Function8a31c
jr z, .asm_89dfd
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld c, a
push bc
ld hl, Jumptable_89e04
@@ -2384,8 +2384,8 @@ Function89e9a: ; 89e9a (22:5e9a)
ld a, $5
ld [rSVBK], a
ld hl, Palette_89eb1
- ld de, wd028
- ld bc, $8
+ ld de, UnknBGPals + 5 palettes
+ ld bc, 1 palettes
call CopyBytes
pop af
ld [rSVBK], a
@@ -2420,7 +2420,7 @@ Function89ee1: ; 89ee1 (22:5ee1)
call Function893e2
call Function8923c
callba Function4a3a7
- callba Function49384
+ callba MG_Mobile_Layout_CreatePalBoxes
hlcoord 1, 0
call Function8a53d
ret
@@ -2784,7 +2784,7 @@ Function8a116: ; 8a116 (22:6116)
call Function8923c
call Function8a17b
jr c, .asm_8a16b
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld [wd030], a
dec d
jr z, .asm_8a140
@@ -2867,7 +2867,7 @@ Function8a1b0: ; 8a1b0
ld c, $12
call TextBox
hlcoord 1, 14
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld de, Strings_8a1cc
dec a
ld c, a
@@ -2950,7 +2950,7 @@ Function8a262: ; 8a262 (22:6262)
call Function893e2
call Function8923c
callba Function4a3a7
- callba Function49384
+ callba MG_Mobile_Layout_CreatePalBoxes
hlcoord 1, 0
call Function8a53d
hlcoord 12, 4
@@ -3044,7 +3044,7 @@ Function8a31c: ; 8a31c (22:631c)
push bc
call Function8923c
callba Function4a3a7
- callba Function49384
+ callba MG_Mobile_Layout_CreatePalBoxes
hlcoord 1, 0
call Function8a53d
hlcoord 12, 4
@@ -3054,9 +3054,9 @@ Function8a31c: ; 8a31c (22:631c)
ld a, c
ld [wMenuCursorBuffer], a
ld [MenuSelection], a
- call Function1c89
- call Function1c10
- ld hl, wcfa5
+ call PlaceVerticalMenuItems
+ call InitVerticalMenuCursor
+ ld hl, w2DMenuFlags1
set 7, [hl]
.asm_8a34e
call Function8a3a2
@@ -3076,7 +3076,7 @@ Function8a31c: ; 8a31c (22:631c)
ret
.asm_8a370
call Function89448
- call Function1bee
+ call PlaceHollowCursor
call Function8a3a2
ld a, [MenuSelection]
cp $ff
@@ -3086,9 +3086,9 @@ Function8a31c: ; 8a31c (22:631c)
ret
Function8a383: ; 8a383 (22:6383)
- callba Function241ba
+ callba MobileMenuJoypad
ld a, c
- ld hl, wcfa8
+ ld hl, wMenuJoypadFilter
and [hl]
ret z
bit 0, a
@@ -3106,7 +3106,7 @@ Function8a383: ; 8a383 (22:6383)
ret
Function8a3a2: ; 8a3a2 (22:63a2)
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
ld hl, wd002
ld e, a
@@ -3390,16 +3390,16 @@ Function8a5b6: ; 8a5b6 (22:65b6)
ld a, $5
ld [rSVBK], a
ld hl, Palette_8a5e5
- ld de, wd020
- ld bc, $18
+ ld de, UnknBGPals + 4 palettes
+ ld bc, 3 palettes
call CopyBytes
ld hl, Palette_8a5fd
ld de, UnknOBPals
- ld bc, $8
+ ld bc, 1 palettes
call CopyBytes
ld hl, Palette_8a605
- ld de, wd048
- ld bc, $8
+ ld de, UnknOBPals + 1 palettes
+ ld bc, 1 palettes
call CopyBytes
pop af
ld [rSVBK], a
@@ -3411,10 +3411,12 @@ Palette_8a5e5: ; 8a5e5
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
@@ -3442,7 +3444,7 @@ Function8a60d: ; 8a60d
ld [rSVBK], a
ld hl, Palette_8a624
ld de, UnknOBPals
- ld bc, $0008
+ ld bc, 1 palettes
call CopyBytes
pop af
ld [rSVBK], a
@@ -3473,7 +3475,7 @@ Function8a62c: ; 8a62c (22:662c)
jr z, .asm_8a66a
ld [MenuSelection], a
ld b, a
- ld a, [wcf77]
+ ld a, [wScrollingMenuCursorPosition]
inc a
ld [wd034], a
push bc
@@ -3834,7 +3836,7 @@ Function8a930: ; 8a930 (22:6930)
ld [wd0e3], a
.asm_8a943
call Function8b7bd
- ld a, [wcf73]
+ ld a, [wMenuJoypad]
and $1
jr nz, .asm_8a953
ld a, c
diff --git a/misc/mobile_22_2.asm b/misc/mobile_22_2.asm
index b794ba33a..080c21890 100644
--- a/misc/mobile_22_2.asm
+++ b/misc/mobile_22_2.asm
@@ -818,7 +818,7 @@ Function8b7bd: ; 8b7bd
and a
jr z, .asm_8b7ea
dec a
- ld [wcf77], a
+ ld [wScrollingMenuCursorPosition], a
.asm_8b7ea
hlcoord 0, 2
@@ -828,9 +828,9 @@ Function8b7bd: ; 8b7bd
call Function8b75d
call UpdateSprites
call Function89209
- call HandleScrollingMenu
+ call ScrollingMenu
call Function8920f
- ld a, [wcf73]
+ ld a, [wMenuJoypad]
cp $2
jr z, .asm_8b823
cp $20
@@ -854,7 +854,7 @@ Function8b7bd: ; 8b7bd
.asm_8b824
ld c, a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld [wd030], a
ld a, [wMenuScrollPosition]
ld [wd031], a
@@ -880,7 +880,7 @@ Function8b83e: ; 8b83e
Function8b84b: ; 8b84b
ld [wMenuScrollPosition], a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld [wMenuCursorBuffer], a
ret
; 8b855
diff --git a/misc/mobile_40.asm b/misc/mobile_40.asm
index 9b98046c0..9817f1afc 100644
--- a/misc/mobile_40.asm
+++ b/misc/mobile_40.asm
@@ -1,7 +1,7 @@
-
-SECTION "bank40", ROMX, BANK[$40]
-
Function100000: ; 100000
+; d: 1 or 2
+; e: bank
+; bc: addr
ld a, [rSVBK]
push af
ld a, $1
@@ -32,15 +32,15 @@ Function100022: ; 100022
ld a, d
ld [wcd21], a
ld a, e
- ld [CreditsTimer], a
+ ld [wcd22], a
ld a, c
ld [wcd23], a
ld a, b
ld [wcd24], a
callba Function10127e
- callba Function106462
- callba Function106464
- callba Function11615a
+ callba MobileFunc_106462
+ callba Function106464 ; load broken gfx
+ callba Function11615a ; init RAM
ld hl, VramState
set 1, [hl]
ret
@@ -57,7 +57,7 @@ Function100057: ; 100057
Function100063: ; 100063
xor a
ld hl, BGMapBuffer
- ld bc, $0065
+ ld bc, $65
call ByteFill
xor a
ld hl, wc300
@@ -86,7 +86,7 @@ Function100082: ; 100082
ld [hMapAnims], a
ld [hLCDStatCustom], a
ld a, $1
- ld [hFFC9], a
+ ld [hMobileReceive], a
ld [hMobile], a
ei
ret
@@ -95,7 +95,7 @@ Function100082: ; 100082
Function1000a4: ; 1000a4
di
xor a
- ld [hFFC9], a
+ ld [hMobileReceive], a
ld [hMobile], a
xor a
ld [hVBlank], a
@@ -109,28 +109,30 @@ Function1000a4: ; 1000a4
; 1000ba
Function1000ba: ; 1000ba
-.asm_1000ba
+.loop
+ ; call [wcd22]:([wcd23][wcd24] + [wcd25])
ld hl, wcd23
ld a, [hli]
ld h, [hl]
ld l, a
ld a, [wcd25]
ld e, a
- ld d, $0
+ ld d, 0
rept 2
add hl, de
endr
- ld a, [CreditsTimer]
+ ld a, [wcd22]
call GetFarHalfword
- ld a, [CreditsTimer]
+ ld a, [wcd22]
rst FarCall
+
call Function1000e8
call Function1000fa
call Function100144
call Function100163
ld a, [wcd2b]
and a
- jr z, .asm_1000ba
+ jr z, .loop
call DelayFrame
ret
; 1000e8
@@ -168,7 +170,7 @@ Function1000fa: ; 1000fa
and $13
ld [rIE], a
xor a
- ld [hFFC9], a
+ ld [hMobileReceive], a
ld [hMobile], a
ei
@@ -265,12 +267,12 @@ Function10016f: ; 10016f
.asm_1001c4
ld a, $d2
- ld de, $0002
+ ld de, 2
jr .asm_1001d7
.asm_1001cb
ld a, $d1
- ld de, $0001
+ ld de, 1
jr .asm_1001d7
.asm_1001d2
@@ -379,7 +381,7 @@ Function100276: ; 100276
.asm_10029f
call Function1002dc
- ld c, $0
+ ld c, 0
ret
.asm_1002a5
@@ -423,8 +425,8 @@ Function1002dc: ; 1002dc
; 1002ed
Function1002ed: ; 1002ed
- callba Function49409
- callba Function96a4
+ callba LoadOW_BGPal7
+ callba ApplyPals
ld a, $1
ld [hCGBPalUpdate], a
call DelayFrame
@@ -504,7 +506,7 @@ Function10034d: ; 10034d
ret
.asm_10036a
- ld a, $0
+ ld a, 0
call Function3e32
ld [wcd2c], a
ld a, h
@@ -545,7 +547,7 @@ Function100393: ; 100393
Function10039c: ; 10039c
ld hl, wcc60
ld de, w3_d000
- ld bc, $0054
+ ld bc, $54
ld a, $3
call FarCopyWRAM
ret
@@ -554,7 +556,7 @@ Function10039c: ; 10039c
Function1003ab: ; 1003ab
ld hl, w3_d000
ld de, wcc60
- ld bc, $0054
+ ld bc, $54
ld a, $3
call FarCopyWRAM
ret
@@ -563,7 +565,7 @@ Function1003ab: ; 1003ab
Function1003ba: ; 1003ba
ld hl, wccb4
ld de, w3_d080
- ld bc, $0054
+ ld bc, $54
ld a, $3
call FarCopyWRAM
ret
@@ -572,7 +574,7 @@ Function1003ba: ; 1003ba
Function1003c9: ; 1003c9
ld hl, w3_d080
ld de, wccb4
- ld bc, $0054
+ ld bc, $54
ld a, $3
call FarCopyWRAM
ret
@@ -582,7 +584,7 @@ Function1003d8: ; 1003d8
ld hl, wccb4
ld a, [hli]
ld c, a
- ld b, $0
+ ld b, 0
push hl
add hl, bc
ld a, [BGMapPalBuffer]
@@ -614,7 +616,7 @@ Function100406: ; 100406
ld a, [wcc60]
sub $2
ld c, a
- ld b, $0
+ ld b, 0
ld hl, wcc61
call Function10043a
add hl, bc
@@ -658,7 +660,7 @@ Function10043a: ; 10043a
add e
ld e, a
ld a, d
- adc $0
+ adc 0
ld d, a
dec bc
ld a, b
@@ -813,9 +815,9 @@ Function100504: ; 100504
Function100513: ; 100513
call Function3f7c
- call Function1c89
- call Function1c10
- ld hl, wcfa5
+ call PlaceVerticalMenuItems
+ call InitVerticalMenuCursor
+ ld hl, w2DMenuFlags1
set 7, [hl]
ret
; 100522
@@ -853,12 +855,12 @@ Function100545: ; 100545
; 10054d
Function10054d: ; 10054d
- callba Function241ba
+ callba MobileMenuJoypad
ld a, c
- ld hl, wcfa8
+ ld hl, wMenuJoypadFilter
and [hl]
ret z
- call Function1ff8
+ call MenuClickSound
bit 0, a
jr nz, .asm_100565
bit 1, a
@@ -895,7 +897,7 @@ Jumptable_100581: ; 100581
Function100585: ; 100585
ld hl, MenuDataHeader_1005b2
call LoadMenuDataHeader
- ld a, $0
+ ld a, 0
ld [wcd28], a
ld a, [wcd26]
inc a
@@ -908,7 +910,7 @@ Function100597: ; 100597
ret z
jr nc, .asm_1005a6
xor a
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
.asm_1005a6
call ExitMenu
@@ -947,7 +949,7 @@ Jumptable_1005cb: ; 1005cb
Function1005cf: ; 1005cf
ld hl, MenuDataHeader_1005fc
call LoadMenuDataHeader
- ld a, $0
+ ld a, 0
ld [wcd28], a
ld a, [wcd26]
inc a
@@ -960,7 +962,7 @@ Function1005e1: ; 1005e1
ret z
jr nc, .asm_1005f0
xor a
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
.asm_1005f0
call ExitMenu
ld a, [wcd26]
@@ -1374,7 +1376,7 @@ Function100846: ; 100846
jr nz, .asm_10087c
ld a, [wcd6e]
ld c, a
- ld a, $0
+ ld a, 0
sub c
jr nc, .asm_100858
add $3c
@@ -1429,7 +1431,7 @@ Function1008a6: ; 1008a6
call CloseSRAM
ld a, [StringBuffer2 + 2]
ld b, a
- ld a, $0
+ ld a, 0
sub b
jr nc, .asm_1008c8
add $3c
@@ -1449,7 +1451,7 @@ Function1008a6: ; 1008a6
.asm_1008da
call Function10070d
- ld c, $0
+ ld c, 0
ret
; 1008e0
@@ -1674,7 +1676,7 @@ Function100a53: ; 100a53
ld a, $ff
ld [wOtherPlayerLinkAction], a
.waiting
- call LinkCommunicationsSendReceive
+ call LinkTransfer
call DelayFrame
ld a, [wOtherPlayerLinkAction]
inc a
@@ -1683,14 +1685,14 @@ Function100a53: ; 100a53
ld b, 10
.receive
call DelayFrame
- call LinkCommunicationsSendReceive
+ call LinkTransfer
dec b
jr nz, .receive
ld b, 10
.acknowledge
call DelayFrame
- call LinkCommunicationsSignalDataReceived
+ call LinkDataReceived
dec b
jr nz, .acknowledge
@@ -1702,7 +1704,7 @@ Function100a53: ; 100a53
Function100a87: ; 100a87
call Function100acf
call Function100641
- ld a, $0
+ ld a, 0
ld [wcd27], a
.asm_100a92
call DelayFrame
@@ -1801,7 +1803,7 @@ Function100b12: ; 100b12
ld de, LoadMenuDataHeader
call FarCall_de
ld a, BANK(BattleMenuDataHeader)
- ld [wcf94], a
+ ld [wMenuData2_2DMenuItemStringsBank], a
ld a, [wd0d2]
ld [wMenuCursorBuffer], a
call Function100e72
@@ -1818,22 +1820,22 @@ Function100b45: ; 100b45
call Function100b7a
.asm_100b48
call Function100dd2
- callba Function241ba
+ callba MobileMenuJoypad
push bc
callba Function10402d
call Function100e2d
pop bc
jr c, .asm_100b6b
- ld a, [wcfa8]
+ ld a, [wMenuJoypadFilter]
and c
jr z, .asm_100b48
- callba Function24098
+ callba Mobile_GetMenuSelection
ret
.asm_100b6b
- ld a, [wcfa4]
+ ld a, [w2DMenuNumCols]
ld c, a
- ld a, [wcfa3]
+ ld a, [w2DMenuNumRows]
call SimpleMultiply
ld [wMenuCursorBuffer], a
and a
@@ -1842,21 +1844,21 @@ Function100b45: ; 100b45
Function100b7a: ; 100b7a
ld hl, CopyMenuData2
- ld a, [wcf94]
+ ld a, [wMenuData2_2DMenuItemStringsBank]
rst FarCall
- callba Function24085
+ callba Draw2DMenu
callba MobileTextBorder
call UpdateSprites
call ApplyTilemap
- callba Function2411a
- ld hl, wcfa5
+ callba Init2DMenuCursorPosition
+ ld hl, w2DMenuFlags1
set 7, [hl]
ret
; 100b9f
MobileMoveSelectionScreen: ; 100b9f
xor a
- ld [wd0e3], a
+ ld [wMoveSwapBuffer], a
callba CheckPlayerHasUsableMoves
ret z
call Function100dd8
@@ -1879,13 +1881,13 @@ Function100bc2: ; 100bc2
callba MoveInfoBox
.asm_100bd1
call Function100dd2
- callba Function241ba
+ callba MobileMenuJoypad
push bc
callba Function10402d
call Function100e2d
pop bc
jr c, .asm_100c25
- ld a, [wcfa8]
+ ld a, [wMenuJoypadFilter]
and c
bit 6, a
jp nz, .asm_100bff
@@ -1898,29 +1900,29 @@ Function100bc2: ; 100bc2
jr .asm_100bd1
.asm_100bff
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
and a
jp nz, .asm_100bcb
- ld a, [wd0eb]
+ ld a, [wNumMoves]
inc a
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
jp .asm_100bcb
.asm_100c10
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld b, a
- ld a, [wd0eb]
+ ld a, [wNumMoves]
rept 2
inc a
endr
cp b
jp nz, .asm_100bcb
ld a, $1
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
jp .asm_100bcb
.asm_100c25
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
ld [CurMoveNum], a
ld a, $1
@@ -1928,10 +1930,10 @@ endr
ret
.asm_100c30
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
ld [CurMoveNum], a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
ld c, a
ld b, 0
@@ -1946,7 +1948,7 @@ endr
dec a
cp c
jr z, .asm_100c63
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
ld c, a
ld b, 0
@@ -1987,55 +1989,59 @@ Function100c74: ; 100c74
; 100c98
Function100c98: ; 100c98
- ld de, Unknown_100cad
- call InitMenu3
- ld a, [wd0eb]
+ ld de, .attrs
+ call SetMenuAttributes
+ ld a, [wNumMoves]
inc a
- ld [wcfa3], a
+ ld [w2DMenuNumRows], a
ld a, [CurMoveNum]
inc a
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
ret
; 100cad
-Unknown_100cad: ; 100cad
- db $0a, $01, $ff, $01, $a0, $00, $20, $c3
+.attrs: ; 100cad
+ db 10, 1
+ db 255, 1
+ db $a0, $00
+ dn 2, 0
+ db D_UP | D_DOWN | A_BUTTON | B_BUTTON
Function100cb5: ; 100cb5
call Function100dd8
ret c
- ld hl, wcfa5
+ ld hl, w2DMenuFlags1
set 7, [hl]
res 6, [hl]
-.asm_100cc0
+.loop
call Function100dd2
- callba Function241ba
+ callba MobileMenuJoypad
push bc
- callba Function8cf69
+ callba PlaySpriteAnimations
callba Function10402d
call Function100dfd
pop bc
- jr c, .asm_100d17
- ld a, [wcfa8]
+ jr c, .done
+ ld a, [wMenuJoypadFilter]
and c
- jr z, .asm_100cc0
- call Function1bee
+ jr z, .loop
+ call PlaceHollowCursor
ld a, [PartyCount]
inc a
ld b, a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp b
- jr z, .asm_100d17
- ld [wd0d8], a
+ jr z, .done
+ ld [wPartyMenuCursor], a
ld a, [hJoyLast]
ld b, a
bit 1, b
- jr nz, .asm_100d17
- ld a, [MenuSelection2]
+ jr nz, .done
+ ld a, [wMenuCursorY]
dec a
ld [CurPartyMon], a
ld c, a
- ld b, $0
+ ld b, 0
ld hl, PartySpecies
add hl, bc
ld a, [hl]
@@ -2046,7 +2052,7 @@ Function100cb5: ; 100cb5
and a
ret
-.asm_100d17
+.done
ld de, SFX_READ_TEXT_2
call PlaySFX
call WaitSFX
@@ -2054,23 +2060,23 @@ Function100cb5: ; 100cb5
ret
; 100d22
-Function100d22: ; 100d22
+MobileBattleMonMenu: ; 100d22
call Function100dd8
ret c
call Function100d67
- ld hl, wcfa5
+ ld hl, w2DMenuFlags1
set 7, [hl]
res 6, [hl]
.asm_100d30
call Function100dd2
- callba Function241ba
+ callba MobileMenuJoypad
push bc
- callba Function8cf69
+ callba PlaySpriteAnimations
callba Function10402d
call Function100dfd
pop bc
jr c, .asm_100d54
- ld a, [wcfa8]
+ ld a, [wMenuJoypadFilter]
and c
jr nz, .asm_100d56
jr .asm_100d30
@@ -2102,11 +2108,11 @@ Function100d67: ; 100d67
ld [hBGMapMode], a
call MenuBox
call UpdateSprites
- call Function1c89
+ call PlaceVerticalMenuItems
call WaitBGMap
call CopyMenuData2
- call Function1c10
- ld hl, wcfa5
+ call InitVerticalMenuCursor
+ ld hl, w2DMenuFlags1
set 6, [hl]
ret
; 100d88
@@ -2320,7 +2326,7 @@ asm_100eb8
ld a, [hl]
cp $2
ret c
- ld [hl], $0
+ ld [hl], 0
jr Function100ec5
Function100ec4: ; 100ec4
@@ -2339,7 +2345,7 @@ Function100eca: ; 100eca
; 100ed4
Function100ed4: ; 100ed4
- callba Function96a4
+ callba ApplyPals
ld a, $1
ld [hCGBPalUpdate], a
ret
@@ -2406,7 +2412,7 @@ asm_100f02:
call Function100f3d
; next line
pop hl
- ld de, $0007
+ ld de, 7
add hl, de
jr .loop
@@ -2527,7 +2533,7 @@ Unknown_100fc0: ; 100fc0
db -1
Unknown_100feb: ; 100feb
- dbwww $00, sPartyMail, MAIL_STRUCT_LENGTH * PARTY_LENGTH, NULL
+ dbwww $0, sPartyMail, MAIL_STRUCT_LENGTH * PARTY_LENGTH, NULL
db -1
Unknown_100ff3: ; 100ff3
@@ -2537,8 +2543,8 @@ Unknown_100ff3: ; 100ff3
dbwww $80, PlayerID, 2, NULL
dbwww $80, wSecretID, 2, NULL
dbwww $80, PlayerGender, 1, NULL
- dbwww $04, $a603, 8, NULL
- dbwww $04, $a007, PARTYMON_STRUCT_LENGTH, NULL
+ dbwww $4, $a603, 8, NULL
+ dbwww $4, $a007, PARTYMON_STRUCT_LENGTH, NULL
db -1
Unknown_10102c: ; 10102c
@@ -2553,10 +2559,10 @@ Unknown_10102c: ; 10102c
Function101050: ; 101050
call Function10107d
ld a, [OTPartyCount]
-rept 2
+rept 2 ; ???
ld hl, wc608
endr
- ld bc, $01b3
+ ld bc, wc7bb - wc608
call Function1010de
ld hl, wc7bb
ld [hl], e
@@ -2566,7 +2572,7 @@ endr
call GetSRAMBank
ld hl, wc608
ld de, $a001
- ld bc, $01b5
+ ld bc, wc7bd - wc608
call CopyBytes
call CloseSRAM
ret
@@ -2575,11 +2581,11 @@ endr
Function10107d: ; 10107d
xor a
ld hl, wc608
- ld bc, $01b5
+ ld bc, wc7bd - wc608
call ByteFill
- ld hl, wd26b
+ ld hl, OTPlayerName
ld de, wc608
- ld bc, $000b
+ ld bc, NAME_LENGTH
call CopyBytes
ld hl, wd271
ld a, [hli]
@@ -2588,16 +2594,16 @@ Function10107d: ; 10107d
ld [wc608 + 12], a
ld hl, OTPartyMonNicknames
ld de, wc608 + 13
- ld bc, $000b
- call Function1010cd
+ ld bc, NAME_LENGTH
+ call .CopyAllFromOT
ld hl, OTPartyMonOT
ld de, wc656 + 1
- ld bc, $000b
- call Function1010cd
+ ld bc, NAME_LENGTH
+ call .CopyAllFromOT
ld hl, OTPartyMon1Species
ld de, wc68a + 15
- ld bc, $0030
- call Function1010cd
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call .CopyAllFromOT
ld a, $50
ld [wc7b9], a
ld a, $33
@@ -2605,7 +2611,7 @@ Function10107d: ; 10107d
ret
; 1010cd
-Function1010cd: ; 1010cd
+.CopyAllFromOT: ; 1010cd
push hl
ld hl, 0
ld a, [OTPartyCount]
@@ -2621,7 +2627,7 @@ Function1010de: ; 1010de
push hl
push bc
ld de, 0
-.asm_1010e3
+.loop
ld a, [hli]
add e
ld e, a
@@ -2631,7 +2637,7 @@ Function1010de: ; 1010de
dec bc
ld a, b
or c
- jr nz, .asm_1010e3
+ jr nz, .loop
pop bc
pop hl
ret
@@ -2640,7 +2646,7 @@ Function1010de: ; 1010de
Function1010f2: ; 1010f2
xor a
ld hl, StringBuffer2
- ld bc, $0009
+ ld bc, 9
call ByteFill
ld hl, wdc5c
ld de, PartyCount
@@ -2687,7 +2693,7 @@ Function101145: ; 101145
ld [de], a
inc de
ld hl, StringBuffer2 + 6
- ld bc, $0003
+ ld bc, 3
call CopyBytes
ld a, $ff
ld [de], a
@@ -2699,7 +2705,7 @@ Function101168: ; 101168
add l
ld l, a
ld a, h
- adc $0
+ adc 0
ld h, a
ld a, [hl]
pop hl
@@ -2708,7 +2714,7 @@ Function101168: ; 101168
add e
ld e, a
ld a, d
- adc $0
+ adc 0
ld d, a
ld a, [de]
pop de
@@ -2716,11 +2722,11 @@ Function101168: ; 101168
; 10117c
Function10117c: ; 10117c
- ld bc, $0030
+ ld bc, $30
jr asm_101184
Function101181: ; 101181
- ld bc, $000b
+ ld bc, 11
asm_101184:
ld a, wc608 % $100
@@ -2894,7 +2900,7 @@ Function10127e: ; 10127e
jr z, .asm_101292
.asm_101290
- ld c, $0
+ ld c, 0
.asm_101292
ld a, c
@@ -3029,7 +3035,7 @@ Jumptable_101297: ; 101297
Function10138b: ; 10138b
callba Function8adcc
- ld c, $0
+ ld c, 0
jr c, .asm_101396
inc c
@@ -3054,7 +3060,7 @@ Function10138b: ; 10138b
Function1013aa: ; 1013aa
call ClearBGPalettes
call Call_ExitMenu
- call Function2bae
+ call ReloadTilesetAndPalettes
callba Function106464
call UpdateSprites
call Function2b5c
@@ -3062,8 +3068,8 @@ Function1013aa: ; 1013aa
; 1013c0
Function1013c0: ; 1013c0
- callba Function8000
- callba Function106462
+ callba BlankScreen
+ callba MobileFunc_106462
callba Function106464
call Function2b5c
ret
@@ -3083,7 +3089,7 @@ Function1013e1: ; 1013e1 ; unreferenced
push de
inc de
ld b, a
- ld c, $0
+ ld c, 0
.asm_1013e6
inc c
ld a, [hli]
@@ -3125,7 +3131,7 @@ Function101400: ; 101400 ; unreferenced
Function101406: ; 101406
ld c, a
- ld b, $0
+ ld b, 0
.asm_101409
ld a, [de]
inc de
@@ -3176,7 +3182,7 @@ Function101438: ; 101438
ld a, [wcd26]
bit 7, a
ret z
- ld a, $0
+ ld a, 0
ld [wcd26], a
ld a, [wcd25]
inc a
@@ -3215,7 +3221,7 @@ Function101475: ; 101475
ld a, [wcd26]
bit 7, a
ret z
- ld a, $0
+ ld a, 0
ld [wcd26], a
ld a, [wcd25]
inc a
@@ -3274,7 +3280,7 @@ Function1014ce: ; 1014ce
Function1014e2: ; 1014e2
ld hl, wcd29
set 6, [hl]
- ld a, $0
+ ld a, 0
ld [wcd26], a
ld a, [wcd25]
inc a
@@ -3294,8 +3300,8 @@ Function1014f4: ; 1014f4
Function101507: ; 101507
ld de, wcd30
- ld hl, $0040
- ld bc, $0040
+ ld hl, $40
+ ld bc, $40
ld a, $2
call Function3e32
ld a, [wcd25]
@@ -3390,7 +3396,7 @@ Function10159d: ; 10159d
ld a, $5
ld hl, w5_d800
call Function10174c
- ld a, $0
+ ld a, 0
ld [wcd26], a
ld a, [wcd25]
inc a
@@ -3405,7 +3411,7 @@ Function1015be: ; 1015be
ld a, $5
ld hl, w5_d800
call Function10174c
- ld a, $0
+ ld a, 0
ld [wcd26], a
ld a, [wcd25]
inc a
@@ -3420,7 +3426,7 @@ Function1015df: ; 1015df
ld a, $5
ld hl, w5_d800
call Function10174c
- ld a, $0
+ ld a, 0
ld [wcd26], a
ld a, [wcd25]
inc a
@@ -3431,7 +3437,7 @@ Function1015df: ; 1015df
Function101600: ; 101600
ld hl, w5_d800
ld de, wc608
- ld bc, $01e0
+ ld bc, $1e0
ld a, $5
call FarCopyWRAM
ld de, wc608
@@ -3460,14 +3466,14 @@ Function10162a: ; 10162a
Function101635: ; 101635
ld de, wc608
- ld bc, $01e0
+ ld bc, $1e0
call FarCopyWRAM
ret
; 10163f
Function10163f: ; 10163f
ld hl, wc608
- ld bc, $01e0
+ ld bc, $1e0
call FarCopyWRAM
ret
; 101649
@@ -3507,7 +3513,7 @@ Function101674: ; 101674 ; unreferenced
; 10167d
Function10167d: ; 10167d
- ld a, $0
+ ld a, 0
ld [wcd26], a
ld a, [wcd25]
inc a
@@ -3520,7 +3526,7 @@ Function10168a: ; 10168a
ret c
Function10168e: ; 10168e
- ld b, $0
+ ld b, 0
ld c, $1
callba Function10079c
ret c
@@ -3536,7 +3542,7 @@ Function10168e: ; 10168e
ld a, [wcd26]
bit 7, a
ret z
- ld a, $0
+ ld a, 0
ld [wcd26], a
ld a, [wcd25]
inc a
@@ -3581,7 +3587,7 @@ Function1016de: ; 1016de
; 1016f8
Function1016f8: ; 1016f8
- ld a, $0
+ ld a, 0
ld [wcd27], a
ld a, [wcd26]
inc a
@@ -3612,7 +3618,7 @@ Function101724: ; 101724
ld a, [wcd39]
cp $ff
jr z, .asm_101731
- ld a, $0
+ ld a, 0
ld [wcd26], a
ret
@@ -3634,7 +3640,7 @@ Function10173b: ; 10173b
ld l, a
ld a, [Unknown_10173a]
ld c, a
- ld b, $0
+ ld b, 0
pop af
call AddNTimes
pop bc
@@ -3663,7 +3669,7 @@ Function10174c: ; 10174c
Function10176f: ; 10176f
ld hl, wccb4
- ld bc, $0054
+ ld bc, $54
ld a, $11
call ByteFill
ret
@@ -3672,7 +3678,7 @@ Function10176f: ; 10176f
Function10177b: ; 10177b
ld a, [Unknown_10173a]
ld c, a
- ld b, $0
+ ld b, 0
ld a, [wcd3a]
ld hl, 0
call AddNTimes
@@ -3725,7 +3731,7 @@ Function1017b0: ; 1017b0
Function1017c7: ; 1017c7
ld a, [wcc60]
ld c, a
- ld b, $0
+ ld b, 0
ld a, [wcd3a]
dec a
ld hl, wcd3e
@@ -3740,7 +3746,7 @@ Function1017c7: ; 1017c7
; 1017e4
Function1017e4: ; 1017e4
- ld a, $0
+ ld a, 0
ld [wcd27], a
ld a, [wcd25]
inc a
@@ -3753,7 +3759,7 @@ Function1017f1: ; 1017f1
ret c
Function1017f5: ; 1017f5
- ld b, $0
+ ld b, 0
ld c, $1
callba Function10079c
ret c
@@ -3825,17 +3831,17 @@ SECTION "ascii 10186f", ROMX, BANK[$40]
Unknown_10186f:
db .end - @
- db $19, $73, $09, $13, "trade_crystal"
+ db $19, $73, $9, $13, "trade_crystal"
.end db 0
Unknown_101882:
db .end - @
- db $19, $67, $10, $01, "free__crystal"
+ db $19, $67, $10, $1, "free__crystal"
.end db 0
Unknown_101895:
db .end - @
- db $19, $67, $10, $01, "limit_crystal"
+ db $19, $67, $10, $1, "limit_crystal"
.end db 0
; 1018a8
@@ -3910,7 +3916,7 @@ Function1018fb: ; 1018fb
.asm_101909
ld de, LinkBattleRNs
- ld bc, $000a
+ ld bc, 10
call CopyBytes
ret
; 101913
@@ -3967,7 +3973,7 @@ Function10194b: ; 10194b
; 10196d
Function10196d: ; 10196d
- callba Function8000
+ callba BlankScreen
callba Function10060d
ld hl, wcd29
set 5, [hl]
@@ -3977,7 +3983,7 @@ Function10196d: ; 10196d
ld [wccb4], a
ld hl, wdc5c
ld de, wccb5
- ld bc, $0003
+ ld bc, 3
call CopyBytes
ld hl, wcd6c
ld a, [hli]
@@ -3998,7 +4004,7 @@ Function1019ab: ; 1019ab
xor a
ld [wdc5f], a
ld [wdc60], a
- callba Function8000
+ callba BlankScreen
call SpeechTextBox
callba Function100846
ld c, $78
@@ -4034,8 +4040,8 @@ Function1019ee: ; 1019ee
ld a, c
ld [OtherTrainerClass], a
- ld hl, wd26b
- ld de, wc656
+ ld hl, OTPlayerName
+ ld de, OTName
ld bc, NAME_LENGTH
call CopyBytes
ld a, [wcd2f]
@@ -4059,7 +4065,7 @@ Function101a21: ; 101a21
ld a, $1
ld [wc2d7], a
callba BattleIntro
- callba SendOutFirstMons
+ callba DoBattle
callba ShowLinkBattleParticipantsAfterEnd
xor a
ld [wc2d7], a
@@ -4088,7 +4094,7 @@ Function101a4f: ; 101a4f
Function101a75: ; 101a75
ld hl, wcc61
ld de, wcd75
- ld bc, $0003
+ ld bc, 3
call CopyBytes
ld de, wcc64
callba Function100772
@@ -4157,7 +4163,7 @@ Function101aed: ; 101aed
; 101b0f
Function101b0f: ; 101b0f
- ld c, $0
+ ld c, 0
call Function10142c
ld e, $3
call Function101ee4
@@ -4166,7 +4172,7 @@ Function101b0f: ; 101b0f
ld a, [wcd25]
inc a
ld [wcd25], a
- ld a, $0
+ ld a, 0
ld [wcd26], a
ret
; 101b2b
@@ -4179,9 +4185,9 @@ Function101b2b: ; 101b2b
bit 7, a
ret z
call Function1013dd
- ld a, $0
+ ld a, 0
ld [wcd26], a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp $1
jr z, .asm_101b51
ld a, $2
@@ -4219,7 +4225,7 @@ Function101b70: ; 101b70
ld a, [wcd25]
inc a
ld [wcd25], a
- ld a, $0
+ ld a, 0
ld [wcd26], a
ret
; 101b8f
@@ -4232,9 +4238,9 @@ Function101b8f: ; 101b8f
bit 7, a
ret z
call Function1013dd
- ld a, $0
+ ld a, 0
ld [wcd26], a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp $1
jr z, .asm_101bbc
ld a, $1
@@ -4260,7 +4266,7 @@ Function101bc8: ; 101bc8
call Function101ee4
call Function102048
call Function1013dd
- ld a, $0
+ ld a, 0
ld [wcd26], a
ld a, [wcd25]
inc a
@@ -4276,9 +4282,9 @@ Function101be5: ; 101be5
bit 7, a
ret z
call Function1013dd
- ld a, $0
+ ld a, 0
ld [wcd26], a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp $1
jr nz, .asm_101c0b
ld a, $2a
@@ -4355,7 +4361,7 @@ Function101c62: ; 101c62
ld a, [wcd25]
inc a
ld [wcd25], a
- ld a, $0
+ ld a, 0
ld [wcd26], a
ret
; 101c92
@@ -4378,7 +4384,7 @@ Function101ca0: ; 101ca0
ld a, [wcd25]
inc a
ld [wcd25], a
- ld a, $0
+ ld a, 0
ld [wcd26], a
ret
; 101cbc
@@ -4465,7 +4471,7 @@ Function101d2a: ; 101d2a
ld a, [wcd26]
bit 7, a
ret z
- ld a, $0
+ ld a, 0
ld [wcd26], a
ld a, [wcd25]
inc a
@@ -4518,7 +4524,7 @@ Function101d7b: ; 101d7b
; 101d8d
Unknown_101d8d: ; 101d8d
- db $15, $15, $1f, $1f, $0c, $12, $3a, $3a
+ db $15, $15, $1f, $1f, $c, $12, $3a, $3a
; 101d95
Function101d95: ; 101d95
@@ -4531,7 +4537,7 @@ Function101d95: ; 101d95
ld a, [wcd25]
inc a
ld [wcd25], a
- ld a, $0
+ ld a, 0
ld [wcd26], a
ret
; 101db2
@@ -4646,7 +4652,7 @@ Function101e4f: ; 101e4f
ld a, [wcd25]
inc a
ld [wcd25], a
- ld a, $0
+ ld a, 0
ld [wcd26], a
ret
; 101e64
@@ -4890,7 +4896,7 @@ Function102080: ; 102080
ret
.asm_10208a
- ld [hl], $0
+ ld [hl], 0
scf
ret
; 10208e
@@ -4900,7 +4906,7 @@ Function10208e: ; 10208e
ld h, d
ld l, e
ld de, wdc42
- ld bc, $0008
+ ld bc, 8
call CopyBytes
pop de
ret
@@ -4909,7 +4915,7 @@ Function10208e: ; 10208e
Function10209c: ; 10209c
ld a, $ff
ld hl, wdc42
- ld bc, $0008
+ ld bc, 8
call ByteFill
ret
; 1020a8
@@ -4934,7 +4940,7 @@ Function1020bf: ; 1020bf
jr z, .asm_1020e8
dec a
ld hl, $a04c
- ld bc, $0025
+ ld bc, $25
call AddNTimes
ld d, h
ld e, l
@@ -4998,7 +5004,7 @@ Function102112: ; 102112
.asm_10212f
pop hl
- ld de, $0025
+ ld de, $25
add hl, de
dec c
jr nz, .asm_10211c
@@ -5043,7 +5049,7 @@ Function102142: ; 102142
Function102180: ; 102180
ld hl, wc608 + 1
ld de, StringBuffer2
- ld bc, $000b
+ ld bc, 11
call CopyBytes
ret
; 10218d
@@ -5051,7 +5057,7 @@ Function102180: ; 102180
Function10218d: ; 10218d
ld hl, wdc00
ld de, wc608
- ld bc, $0026
+ ld bc, $26
ld a, $5
call FarCopyWRAM
ld de, wc608 + 1
@@ -5117,7 +5123,7 @@ UnknownText_0x1021f4:
Function1021f9: ; 1021f9
call Function102233
- ld a, $0
+ ld a, 0
ld [wcd49], a
ld hl, wcd29
bit 3, [hl]
@@ -5151,7 +5157,7 @@ Function1021f9: ; 1021f9
Function102233: ; 102233
ld hl, wcd49
- ld bc, $000a
+ ld bc, 10
xor a
call ByteFill
call Function10304f
@@ -5197,7 +5203,7 @@ Function102274: ; 102274
bit 3, [hl]
ret z
res 3, [hl]
- ld de, $0008
+ ld de, 8
call PlaySFX
ret
; 102283
@@ -5370,7 +5376,7 @@ Function102387: ; 102387
call Function102d9a
call Function102dd3
ld a, $1
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
Function1023a1: ; 1023a1
call Function102283
@@ -5401,12 +5407,12 @@ Function1023c6: ; 1023c6
ld [CurPartyMon], a
xor a
ld [wd10b], a
- callba Functione039
+ callba RemoveMonFromPartyOrBox
ld hl, PartyCount
inc [hl]
ld a, [hli]
ld c, a
- ld b, $0
+ ld b, 0
add hl, bc
ld [hl], $ff
ld a, [PartyCount]
@@ -5419,9 +5425,9 @@ Function1023c6: ; 1023c6
set 1, [hl]
ld a, $14
ld [wcd4e], a
- ld a, $0
+ ld a, 0
ld [wcd4f], a
- ld a, $0
+ ld a, 0
ld [wcd4a], a
ld a, [wcd49]
inc a
@@ -5446,7 +5452,7 @@ Function102423: ; 102423
callba BackupMobileEventIndex
ld hl, wcd4b
set 1, [hl]
- ld a, $0
+ ld a, 0
ld [wcd4a], a
ld a, [wcd49]
inc a
@@ -5460,9 +5466,9 @@ Function10244b: ; 10244b
set 1, [hl]
ld a, $19
ld [wcd4e], a
- ld a, $0
+ ld a, 0
ld [wcd4f], a
- ld a, $0
+ ld a, 0
ld [wcd4a], a
ld a, [wcd49]
inc a
@@ -5502,7 +5508,7 @@ Function102496: ; 102496
ld hl, wcd4e
dec [hl]
ret nz
- ld a, $0
+ ld a, 0
ld [wcd4a], a
ld a, [wcd49]
inc a
@@ -5555,7 +5561,7 @@ Function1024de: ; 1024de
ret z
.asm_1024e9
- ld a, $0
+ ld a, 0
ld [wcd4a], a
ld a, [wcd49]
inc a
@@ -5564,7 +5570,7 @@ Function1024de: ; 1024de
; 1024f6
Function1024f6: ; 1024f6
- call Function1bee
+ call PlaceHollowCursor
ld hl, wcd4b
set 1, [hl]
ld a, [wcd4c]
@@ -5608,7 +5614,7 @@ Function10250c: ; 10250c
call Function103021
ld hl, wcd4b
set 1, [hl]
- ld a, $0
+ ld a, 0
ld [wcd4a], a
ld a, $1e
ld [wcd4e], a
@@ -5633,7 +5639,7 @@ Function10250c: ; 10250c
.asm_102577
ld hl, wcd4b
set 1, [hl]
- ld a, $0
+ ld a, 0
ld [wcd4a], a
ld a, $1e
ld [wcd4e], a
@@ -5648,7 +5654,7 @@ Function102591: ; 102591
call Function102ee7
ld hl, wcd4b
set 1, [hl]
- ld a, $0
+ ld a, 0
ld [wcd4a], a
ld a, $1e
ld [wcd4e], a
@@ -5716,8 +5722,8 @@ Function1025ff: ; 1025ff
set 2, [hl]
callba Function1009f3
ret c
- callba Function241ba
- ld a, [wcfa8]
+ callba MobileMenuJoypad
+ ld a, [wMenuJoypadFilter]
and c
ret z
bit 0, c
@@ -5736,20 +5742,20 @@ Function1025ff: ; 1025ff
ret
.asm_10262e
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld b, a
ld a, [OTPartyCount]
cp b
ret nz
- call Function1bf7
+ call HideCursor
ld a, [PartyCount]
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
ld a, $1d
ld [wcd49], a
ret
.asm_102646
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp $1
ret nz
ld a, $23
@@ -5778,8 +5784,8 @@ Function10266b: ; 10266b
set 2, [hl]
callba Function1009f3
ret c
- callba Function241ba
- ld a, [wcfa8]
+ callba MobileMenuJoypad
+ ld a, [wMenuJoypadFilter]
and c
ret z
bit 0, c
@@ -5798,16 +5804,16 @@ Function10266b: ; 10266b
ret
.asm_10269a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
ret nz
- call Function1bf7
+ call HideCursor
ld a, $1f
ld [wcd49], a
ret
.asm_1026a8
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld b, a
ld a, [PartyCount]
cp b
@@ -5823,7 +5829,7 @@ Function1026b7: ; 1026b7
ld a, [wcd49]
inc a
ld [wcd49], a
- ld a, $0
+ ld a, 0
ld [wcd4a], a
Function1026c8: ; 1026c8
@@ -5842,7 +5848,7 @@ Jumptable_1026da: ; 1026da
; 1026de
Function1026de: ; 1026de
- call Function1bf7
+ call HideCursor
hlcoord 9, 17
ld [hl], $ed
ld a, [wcd4a]
@@ -5867,7 +5873,7 @@ Function1026f3: ; 1026f3
hlcoord 9, 17
ld [hl], $7f
ld a, $1
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
ld a, $1d
ld [wcd49], a
ret
@@ -5876,7 +5882,7 @@ Function1026f3: ; 1026f3
hlcoord 9, 17
ld [hl], $7f
ld a, [OTPartyCount]
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
ld a, $1f
ld [wcd49], a
ret
@@ -5896,14 +5902,14 @@ Function1026f3: ; 1026f3
Function102738: ; 102738
ld hl, wcd4b
set 6, [hl]
- call Function1bee
+ call PlaceHollowCursor
call Function1027eb
ld hl, wcd4b
set 1, [hl]
ld a, [wcd49]
inc a
ld [wcd49], a
- ld a, $0
+ ld a, 0
ld [wcd4a], a
Function102754: ; 102754
@@ -5987,7 +5993,7 @@ asm_1027c6:
asm_1027d1:
ld hl, wcd4b
set 3, [hl]
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld [wcd4c], a
ld a, $7
ld [wcd49], a
@@ -6006,7 +6012,7 @@ Function1027eb: ; 1027eb
ld c, $12
ld d, h
ld e, l
- callba Function16d61d
+ callba _LinkTextbox
ld de, String_102804
hlcoord 2, 16
call PlaceString
@@ -6018,7 +6024,7 @@ String_102804: ; 102804
; 102814
Function102814: ; 102814
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld [wcd52], a
ld a, [wcd4c]
dec a
@@ -6030,7 +6036,7 @@ Function102814: ; 102814
ld a, [wcd49]
inc a
ld [wcd49], a
- ld a, $0
+ ld a, 0
ld [wcd4a], a
ld hl, wcd4b
set 1, [hl]
@@ -6070,7 +6076,7 @@ Function10286f: ; 10286f
call Function1028fc
ret nc
ld a, [wcd52]
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
ld a, [wcd51]
cp $8
jr nz, .asm_102886
@@ -6086,7 +6092,7 @@ Function10286f: ; 10286f
ld [wcd4e], a
ld a, $3c
ld [wcd4f], a
- ld a, $0
+ ld a, 0
ld [wcd4a], a
ld a, [wcd49]
inc a
@@ -6102,7 +6108,7 @@ Function1028a5: ; 1028a5
Function1028ab: ; 1028ab
ld a, [wcd52]
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
call Function102f15
ld hl, wcd4b
set 1, [hl]
@@ -6144,7 +6150,7 @@ Function1028e8: ; 1028e8
res 6, [hl]
ld [wcd50], a
callba Function100641
- ld a, $0
+ ld a, 0
ld [wcd4a], a
ret
; 1028fc
@@ -6161,7 +6167,7 @@ Function1028fc: ; 1028fc
ld hl, Jumptable_102917
rst JumpTable
ret nc
- ld a, $0
+ ld a, 0
ld [wcd4a], a
ret
; 102917
@@ -6179,7 +6185,7 @@ Function102921: ; 102921
ld hl, Jumptable_10292f
rst JumpTable
ret nc
- ld a, $0
+ ld a, 0
ld [wcd4a], a
ret
; 10292f
@@ -6217,7 +6223,7 @@ Function10294f: ; 10294f
Function10295d: ; 10295d
call Function10299e
- ld a, $0
+ ld a, 0
ld [wcd27], a
ld a, [wcd4a]
inc a
@@ -6298,18 +6304,18 @@ Jumptable_1029cb: ; 1029cb
Function1029cf: ; 1029cf
call LoadStandardMenuDataHeader
hlcoord 10, 7
- ld b, $3
- ld c, $8
+ ld b, 3
+ ld c, 8
ld d, h
ld e, l
- callba Function16d61d
+ callba _LinkTextbox
ld de, String_102a26
hlcoord 12, 8
call PlaceString
ld hl, wcd4b
set 1, [hl]
- ld de, Unknown_102a33
- call InitMenu3
+ ld de, MenuData3_102a33
+ call SetMenuAttributes
ld a, [wcd4a]
inc a
ld [wcd4a], a
@@ -6320,15 +6326,15 @@ Function1029cf: ; 1029cf
Function1029fe: ; 1029fe
callba Function1009f3
ret c
- callba Function241ba
+ callba MobileMenuJoypad
ld a, c
- ld hl, wcfa8
+ ld hl, wMenuJoypadFilter
and [hl]
ret z
push af
call ExitMenu
pop af
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp $1
jr nz, .asm_102a21
ld a, $1
@@ -6348,47 +6354,51 @@ String_102a26: ; 102a26
db "@"
; 102a33
-Unknown_102a33:
- db $08, $0b, $02, $01, $80, $00, $20, $01
+MenuData3_102a33:
+ db 8, 11
+ db 2, 1
+ db $80, $00
+ dn 2, 0
+ db A_BUTTON
Function102a3b: ; 102a3b
ld a, [wcd30]
ld [wc74e], a
ld hl, PlayerName
ld de, wc6e7
- ld bc, $000b
+ ld bc, NAME_LENGTH
call CopyBytes
ld a, [wcd4c]
dec a
ld c, a
- ld b, $0
+ ld b, 0
ld hl, PartySpecies
add hl, bc
ld a, [hl]
- ld [wc6d0], a
+ ld [wPlayerTrademonSpecies], a
ld a, [wcd4c]
dec a
ld hl, PartyMonOT
call SkipNames
- ld de, wc6f2
- ld bc, $000b
+ ld de, wPlayerTrademonOTName
+ ld bc, NAME_LENGTH
call CopyBytes
ld a, [wcd4c]
dec a
ld hl, PartyMon1ID
call GetPartyLocation
ld a, [hli]
- ld [wc6ff], a
+ ld [wPlayerTrademonID], a
ld a, [hl]
- ld [wc700], a
+ ld [wPlayerTrademonID + 1], a
ld a, [wcd4c]
dec a
ld hl, PartyMon1DVs
call GetPartyLocation
ld a, [hli]
- ld [wc6fd], a
+ ld [wPlayerTrademonDVs], a
ld a, [hl]
- ld [wc6fe], a
+ ld [wPlayerTrademonDVs + 1], a
ld a, [wcd4c]
dec a
ld hl, PartyMon1Species
@@ -6397,42 +6407,43 @@ Function102a3b: ; 102a3b
ld c, l
callba GetCaughtGender
ld a, c
- ld [wc701], a
- ld hl, wd26b
- ld de, wc719
- ld bc, $000b
+ ld [wPlayerTrademonCaughtData], a
+ ld hl, OTPlayerName
+ ld de, wOTTrademonSenderName
+ ld bc, NAME_LENGTH
call CopyBytes
+
ld a, [wcd4d]
dec a
ld c, a
- ld b, $0
+ ld b, 0
ld hl, OTPartySpecies
add hl, bc
ld a, [hl]
- ld [wc702], a
+ ld [wOTTrademonSpecies], a
ld a, [wcd4d]
dec a
ld hl, OTPartyMonOT
call SkipNames
- ld de, wc724
- ld bc, $000b
+ ld de, wOTTrademonOTName
+ ld bc, NAME_LENGTH
call CopyBytes
ld a, [wcd4d]
dec a
ld hl, OTPartyMon1ID
call GetPartyLocation
ld a, [hli]
- ld [wEnemyWrapCount], a
+ ld [wOTTrademonID], a
ld a, [hl]
- ld [wPlayerCharging], a
+ ld [wOTTrademonID + 1], a
ld a, [wcd4d]
dec a
ld hl, OTPartyMon1DVs
call GetPartyLocation
ld a, [hli]
- ld [wEnemyTrappingMove], a
+ ld [wOTTrademonDVs], a
ld a, [hl]
- ld [wPlayerWrapCount], a
+ ld [wOTTrademonDVs + 1], a
ld a, [wcd4d]
dec a
ld hl, OTPartyMon1Species
@@ -6441,12 +6452,12 @@ Function102a3b: ; 102a3b
ld c, l
callba GetCaughtGender
ld a, c
- ld [wEnemyCharging], a
+ ld [wOTTrademonCaughtData], a
ret
; 102b12
Function102b12: ; 102b12
- ld c, $64
+ ld c, 100
call DelayFrames
call Function102d9a
call LoadFontsBattleExtra
@@ -6468,7 +6479,7 @@ Function102b32: ; 102b32
dec a
ld [CurPartyMon], a
ld a, $1
- ld [wd1e9], a
+ ld [wForceEvolution], a
callba EvolvePokemon
call Function102d9a
call Function102dd3
@@ -6479,65 +6490,73 @@ Function102b32: ; 102b32
Function102b4e: ; 102b4e
ld a, $1
ld [MonType], a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
push af
ld de, Unknown_102b73
- call InitMenu3
+ call SetMenuAttributes
pop af
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
ld a, [OTPartyCount]
- ld [wcfa3], a
+ ld [w2DMenuNumRows], a
ret
; 102b68
Function102b68: ; 102b68 ; unreferenced
xor a
- ld hl, wcf71
- ld bc, $0010
+ ld hl, wWindowStackPointer
+ ld bc, $10
call ByteFill
ret
; 102b73
Unknown_102b73:
- db $09, $06, $ff, $01, $a0, $00, $10, $c1
+ db 9, 6
+ db 255, 1
+ db $a0, $00
+ dn 1, 0
+ db D_UP | D_DOWN | A_BUTTON
Function102b7b: ; 102b7b
xor a
ld [MonType], a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
push af
ld de, Unknown_102b94
- call InitMenu3
+ call SetMenuAttributes
pop af
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
ld a, [PartyCount]
- ld [wcfa3], a
+ ld [w2DMenuNumRows], a
ret
; 102b94
Unknown_102b94:
- db $01, $06, $ff, $01, $a0, $00, $10, $c1
+ db 1, 6
+ db 255, 1
+ db $a0, $00
+ dn 1, 0
+ db D_UP | D_DOWN | A_BUTTON
Function102b9c: ; 102b9c
ld a, [wcd4d]
dec a
hlcoord 6, 9
- ld bc, $0014
+ ld bc, $14
call AddNTimes
ld [hl], $ec
ret
; 102bac
Function102bac: ; 102bac
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
ld [CurPartyMon], a
call LowVolume
call ClearSprites
- callba Function4dc8f
+ callba _BattleStatsScreenInit
ld a, [CurPartyMon]
inc a
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
call Function102d9a
call ClearPalettes
call DelayFrame
@@ -6556,7 +6575,7 @@ Function102bdc: ; 102bdc
push hl
ld a, [wcd4d]
ld c, a
- ld b, $0
+ ld b, 0
ld hl, OTPartyCount
add hl, bc
ld a, [hl]
@@ -6591,7 +6610,7 @@ Function102c07: ; 102c07
Function102c14: ; 102c14
ld hl, PartySpecies
ld de, OTPartySpecies
- ld bc, $0001
+ ld bc, 1
call Function102c71
ret
; 102c21
@@ -6599,7 +6618,7 @@ Function102c14: ; 102c14
Function102c21: ; 102c21
ld hl, PartyMonNicknames
ld de, OTPartyMonNicknames
- ld bc, $000b
+ ld bc, 11
call Function102c71
ret
; 102c2e
@@ -6607,7 +6626,7 @@ Function102c21: ; 102c21
Function102c2e: ; 102c2e
ld hl, PartyMonOT
ld de, OTPartyMonOT
- ld bc, $000b
+ ld bc, 11
call Function102c71
ret
; 102c3b
@@ -6615,23 +6634,23 @@ Function102c2e: ; 102c2e
Function102c3b: ; 102c3b
ld hl, PartyMon1
ld de, OTPartyMon1
- ld bc, $0030
+ ld bc, $30
call Function102c71
ret
; 102c48
Function102c48: ; 102c48
callba Function10165a
- ld a, $0
+ ld a, 0
call GetSRAMBank
ld hl, $a600
ld de, wc608
- ld bc, $002f
+ ld bc, $2f
call Function102c71
call CloseSRAM
ld hl, wc608
ld de, wda00
- ld bc, $01e0
+ ld bc, $1e0
ld a, $5
call FarCopyWRAM
ret
@@ -6661,16 +6680,16 @@ Function102c87: ; 102c87
ld [wJumptableIndex], a
ld a, [PartyCount]
ld [wcf64], a
- ld a, $0
+ ld a, 0
ld hl, $a600
ld de, wc608
- ld bc, $011a
+ ld bc, $11a
call Function102d3e
call Function102cee
- ld a, $0
+ ld a, 0
ld hl, wc608
ld de, $a600
- ld bc, $011a
+ ld bc, $11a
call Function102d3e
ld a, [wcd4d]
ld [wJumptableIndex], a
@@ -6679,13 +6698,13 @@ Function102c87: ; 102c87
ld a, $5
ld hl, wda00
ld de, wc608
- ld bc, $011a
+ ld bc, $11a
call FarCopyWRAM
call Function102cee
ld a, $5
ld hl, wc608
ld de, wda00
- ld bc, $011a
+ ld bc, $11a
call FarCopyWRAM
pop af
ld [wcf64], a
@@ -6699,14 +6718,14 @@ Function102cee: ; 102cee
dec a
call Function102d34
ld de, wd002
- ld bc, $002f
+ ld bc, $2f
call CopyBytes
ld a, [wJumptableIndex]
ld c, a
ld a, $6
sub c
ret z
- ld bc, $002f
+ ld bc, $2f
ld hl, 0
call AddNTimes
push hl
@@ -6715,7 +6734,7 @@ Function102cee: ; 102cee
call Function102d34
ld d, h
ld e, l
- ld hl, $002f
+ ld hl, $2f
add hl, de
pop bc
call CopyBytes
@@ -6725,14 +6744,14 @@ Function102cee: ; 102cee
ld d, h
ld e, l
ld hl, wd002
- ld bc, $002f
+ ld bc, $2f
call CopyBytes
ret
; 102d34
Function102d34: ; 102d34
ld hl, wc608
- ld bc, $002f
+ ld bc, $2f
call AddNTimes
ret
; 102d3e
@@ -6774,11 +6793,11 @@ Function102d48: ; 102d48
call AddNTimes
predef GetUnownLetter
callba UpdateUnownDex
- ld a, [wdef4]
+ ld a, [wFirstUnownSeen]
and a
jr nz, .asm_102d98
ld a, [UnownLetter]
- ld [wdef4], a
+ ld [wFirstUnownSeen], a
.asm_102d98
and a
@@ -6812,7 +6831,7 @@ Function102dc3: ; 102dc3
ld c, $12
ld d, h
ld e, l
- callba Function16d61d
+ callba _LinkTextbox
ret
; 102dd3
@@ -6822,7 +6841,7 @@ Function102dd3: ; 102dd3
ld hl, VTiles0
lb bc, BANK(GFX_1032a2), 4
call Get2bpp
- callba Function16d421
+ callba __LoadTradeScreenBorder
call EnableLCD
ret
; 102dec
@@ -6830,7 +6849,7 @@ Function102dd3: ; 102dd3
Function102dec: ; 102dec
ld hl, Unknown_1032e2
ld de, UnknOBPals
- ld bc, $0020
+ ld bc, $20
ld a, $5
call FarCopyWRAM
callba Function49742
@@ -6855,7 +6874,7 @@ Function102e07: ; 102e07
ld c, $b
ld d, h
ld e, l
- callba Function16d61d
+ callba _LinkTextbox
.asm_102e28
ld de, String_102e32
@@ -6881,13 +6900,13 @@ String_102e48: ; 102e48
Function102e4f: ; 102e4f
callba Function16d42e
- callba Function49797
+ callba _InitMG_Mobile_LinkTradePalMap
ld de, PlayerName
hlcoord 4, 0
call PlaceString
ld a, $14
ld [bc], a
- ld de, wd26b
+ ld de, OTPlayerName
hlcoord 4, 8
call PlaceString
ld a, $14
@@ -6902,7 +6921,7 @@ Function102e4f: ; 102e4f
; 102e86
Function102e86: ; 102e86
- ld c, $0
+ ld c, 0
.asm_102e88
ld a, [de]
cp $ff
@@ -6920,7 +6939,7 @@ Function102e86: ; 102e86
pop de
inc de
pop hl
- ld bc, $0014
+ ld bc, $14
add hl, bc
pop bc
inc c
@@ -6932,7 +6951,7 @@ Function102ea8: ; 102ea8
ld a, [wcd4c]
dec a
ld c, a
- ld b, $0
+ ld b, 0
ld hl, PartySpecies
add hl, bc
ld a, [hl]
@@ -6940,12 +6959,12 @@ Function102ea8: ; 102ea8
call GetPokemonName
ld hl, StringBuffer1
ld de, StringBuffer2
- ld bc, $000b
+ ld bc, 11
call CopyBytes
ld a, [wcd4d]
dec a
ld c, a
- ld b, $0
+ ld b, 0
ld hl, OTPartySpecies
add hl, bc
ld a, [hl]
@@ -7025,7 +7044,7 @@ String_102f7a: ; 102f7a
Function102f85: ; 102f85
ld a, [wd003]
ld c, a
- ld b, $0
+ ld b, 0
ld hl, OTPartySpecies
add hl, bc
ld a, [hl]
@@ -7200,7 +7219,7 @@ endr
ld hl, wcd4b
bit 7, [hl]
pop hl
- ld a, $0
+ ld a, 0
jr z, .asm_1030eb
ld a, $5
.asm_1030eb
@@ -7245,77 +7264,77 @@ endr
; 103112
Unknown_103112: ; 103112
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $01, $00, $00, $00, $00, $00, $00, $00
- db $02, $01, $00, $00, $00, $00, $00, $00
- db $03, $02, $01, $00, $00, $00, $00, $00
- db $04, $03, $02, $01, $00, $00, $00, $00
- db $04, $04, $03, $02, $01, $00, $00, $00
- db $04, $04, $04, $03, $02, $01, $00, $00
- db $04, $04, $04, $04, $03, $02, $01, $00
- db $04, $04, $04, $04, $04, $03, $02, $01
- db $04, $04, $04, $04, $04, $04, $03, $02
- db $04, $04, $04, $04, $04, $04, $04, $03
- db $04, $04, $04, $04, $04, $04, $04, $04
- db $04, $04, $04, $04, $04, $04, $04, $04
- db $04, $04, $04, $04, $04, $04, $04, $04
- db $04, $04, $04, $04, $04, $04, $04, $04
- db $04, $04, $04, $04, $04, $04, $04, $04
- db $04, $04, $04, $04, $04, $04, $04, $04
- db $04, $04, $04, $04, $04, $04, $04, $04
- db $04, $04, $04, $04, $04, $04, $04, $04
- db $03, $04, $04, $04, $04, $04, $04, $04
- db $02, $03, $04, $04, $04, $04, $04, $04
- db $01, $02, $03, $04, $04, $04, $04, $04
- db $00, $01, $02, $03, $04, $04, $04, $04
- db $00, $00, $01, $02, $03, $04, $04, $04
- db $00, $00, $00, $01, $02, $03, $04, $04
- db $00, $00, $00, $00, $01, $02, $03, $04
- db $00, $00, $00, $00, $00, $01, $02, $03
- db $00, $00, $00, $00, $00, $00, $01, $02
- db $00, $00, $00, $00, $00, $00, $00, $01
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
+ db $0, $0, $0, $0, $0, $0, $0, $
+ db $0, $0, $0, $0, $0, $0, $0, $
+ db $0, $0, $0, $0, $0, $0, $0, $
+ db $0, $0, $0, $0, $0, $0, $0, $
+ db $0, $0, $0, $0, $0, $0, $0, $
+ db $0, $0, $0, $0, $0, $0, $0, $
+ db $0, $0, $0, $0, $0, $0, $0, $
+ db $0, $0, $0, $0, $0, $0, $0, $
+ db $1, $0, $0, $0, $0, $0, $0, $
+ db $2, $1, $0, $0, $0, $0, $0, $
+ db $3, $2, $1, $0, $0, $0, $0, $
+ db $4, $3, $2, $1, $0, $0, $0, $
+ db $4, $4, $3, $2, $1, $0, $0, $
+ db $4, $4, $4, $3, $2, $1, $0, $
+ db $4, $4, $4, $4, $3, $2, $1, $
+ db $4, $4, $4, $4, $4, $3, $2, $1
+ db $4, $4, $4, $4, $4, $4, $3, $2
+ db $4, $4, $4, $4, $4, $4, $4, $3
+ db $4, $4, $4, $4, $4, $4, $4, $4
+ db $4, $4, $4, $4, $4, $4, $4, $4
+ db $4, $4, $4, $4, $4, $4, $4, $4
+ db $4, $4, $4, $4, $4, $4, $4, $4
+ db $4, $4, $4, $4, $4, $4, $4, $4
+ db $4, $4, $4, $4, $4, $4, $4, $4
+ db $4, $4, $4, $4, $4, $4, $4, $4
+ db $4, $4, $4, $4, $4, $4, $4, $4
+ db $3, $4, $4, $4, $4, $4, $4, $4
+ db $2, $3, $4, $4, $4, $4, $4, $4
+ db $1, $2, $3, $4, $4, $4, $4, $4
+ db $0, $1, $2, $3, $4, $4, $4, $4
+ db $0, $0, $1, $2, $3, $4, $4, $4
+ db $0, $0, $0, $1, $2, $3, $4, $4
+ db $0, $0, $0, $0, $1, $2, $3, $4
+ db $0, $0, $0, $0, $0, $1, $2, $3
+ db $0, $0, $0, $0, $0, $0, $1, $2
+ db $0, $0, $0, $0, $0, $0, $0, $1
+ db $0, $0, $0, $0, $0, $0, $0, $
+ db $0, $0, $0, $0, $0, $0, $0, $
+ db $0, $0, $0, $0, $0, $0, $0, $
+ db $0, $0, $0, $0, $0, $0, $0, $
+ db $0, $0, $0, $0, $0, $0, $0, $
+ db $0, $0, $0, $0, $0, $0, $0, $
+ db $0, $0, $0, $0, $0, $0, $0, $
+ db $0, $0, $0, $0, $0, $0, $0, $
+ db $0, $0, $0, $0, $0, $0, $0, $
; 10327a
Unknown_10327a: ; 10327a
- db $00, $00, $00, $00
- db $00, $00, $01, $00
- db $00, $00, $02, $00
- db $00, $00, $03, $00
- db $00, $00, $01, $01
- db $00, $00, $00, $00
- db $00, $00, $01, $02
- db $00, $00, $02, $02
- db $00, $00, $03, $02
- db $00, $00, $01, $03
+ db $0, $0, $0, $
+ db $0, $0, $1, $
+ db $0, $0, $2, $
+ db $0, $0, $3, $
+ db $0, $0, $1, $1
+ db $0, $0, $0, $
+ db $0, $0, $1, $2
+ db $0, $0, $2, $2
+ db $0, $0, $3, $2
+ db $0, $0, $1, $3
GFX_1032a2:
INCBIN "gfx/unknown/1032a2.2bpp"
Unknown_1032e2:
- db $00, $00, $ff, $1f
+ db $0, $0, $ff, $1f
db $f4, $1b, $8d, $42
- db $00, $00, $67, $45
- db $00, $00, $00, $00
- db $00, $00, $1f, $13
- db $99, $01, $ff, $10
- db $00, $00, $19, $00
- db $00, $00, $00, $00
+ db $0, $0, $67, $45
+ db $0, $0, $0, $
+ db $0, $0, $1f, $13
+ db $99, $1, $ff, $10
+ db $0, $0, $19, $
+ db $0, $0, $0, $
; 103302
Function103302: ; 103302
@@ -7328,7 +7347,7 @@ Function103309: ; 103309
xor a
ld [hBGMapMode], a
ld hl, Buffer1
- ld bc, $000a
+ ld bc, 10
xor a
call ByteFill
ld a, $4
@@ -7402,7 +7421,7 @@ Function10339a: ; 10339a
ld a, [wd1f0]
ld [wd1f2], a
ld c, a
- ld b, $0
+ ld b, 0
ld hl, wd1ec
ld a, [hli]
ld h, [hl]
@@ -7478,7 +7497,7 @@ Function1033af: ; 1033af
ret z
ld de, SFX_PUSH_BUTTON
call PlaySFX
- ld bc, $0008
+ ld bc, 8
call Function10350f
ld a, [Buffer1]
xor e
@@ -7499,7 +7518,7 @@ Function10343c: ; 10343c
ld a, [wd1f3]
cp $2
jr nz, .asm_103452
- ld bc, $0001
+ ld bc, 1
call Function1034f7
ld c, $12
ld b, $1
@@ -7516,19 +7535,19 @@ Function10343c: ; 10343c
.asm_10345f
ld bc, 0
call Function10350f
- ld bc, $0001
+ ld bc, 1
call Function103487
- ld bc, $0008
+ ld bc, 8
call Function10350f
ld a, [Buffer1]
and e
- ld bc, $0002
+ ld bc, 2
jr z, .asm_10347d
- ld bc, $0004
+ ld bc, 4
.asm_10347d
call Function10350f
- ld bc, $000b
+ ld bc, 11
call Function103487
ret
; 103487
@@ -7546,7 +7565,7 @@ Function103490: ; 103490
ld c, $14
ld b, $3
call Function1034e0
- ld bc, $0006
+ ld bc, 6
call Function10350f
hlcoord 1, 16
call PlaceString
@@ -7556,10 +7575,10 @@ Function103490: ; 103490
Function1034a7: ; 1034a7
ld a, [wd1f1]
ld [wd1f2], a
- ld bc, $000a
+ ld bc, 10
call Function1034f7
ld [hl], $7f
- ld bc, $000a
+ ld bc, 10
call Function1034f1
ld [hl], $ed
ret
@@ -7623,7 +7642,7 @@ Function10350f: ; 10350f
ld a, [wd1f3]
push bc
ld hl, Unknown_103522
- ld bc, $0009
+ ld bc, 9
call AddNTimes
pop bc
add hl, bc
@@ -7696,28 +7715,28 @@ Unknown_1035d7: ; 1035d7
Unknown_1035e7: ; 1035e7
dwcoord 0, 6
- db $12, $07, $07
+ db $12, $7, $7
dw .this
.this
db 4, 2, 1, 0, 3
Unknown_1035f3: ; 1035f3
dwcoord 0, 7
- db $12, $06, $09
+ db $12, $6, $9
dw .this
.this
db 3, 2, 1, 3
Unknown_1035fe: ; 1035fe
dwcoord 0, 9
- db $12, $04, $0b
+ db $12, $4, $b
dw .this
.this
db 2, 0, 3
Unknown_103608: ; 103608
dwcoord 0, 9
- db $12, $04, $0b
+ db $12, $4, $b
dw .this
.this
db 2, 2, 3
@@ -7732,10 +7751,10 @@ AskMobileOrCable: ; 103612
ld [wMenuCursorBuffer], a
.skip_load
- call InterpretMenu2
+ call VerticalMenu
call WriteBackup
jr c, .pressed_b
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld [ScriptVar], a
ld c, a
ld a, [wdc40]
@@ -7788,7 +7807,7 @@ Mobile_SelectThreeMons: ; 10366e
call PrintText
call YesNoBox
jr c, .asm_103696
- callba Function8b1e1
+ callba CheckForMobileBattleRules
jr nc, .asm_103690
call JoyWaitAorB
jr .asm_103696
@@ -7820,10 +7839,10 @@ Mobile_SelectThreeMons: ; 10366e
jr c, .asm_1036f4
ld hl, MenuDataHeader_103747
call LoadMenuDataHeader
- call InterpretMenu2
+ call VerticalMenu
call ExitMenu
jr c, .asm_1036f4
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp $1
jr z, .asm_1036d9
cp $2
@@ -7833,7 +7852,7 @@ Mobile_SelectThreeMons: ; 10366e
jr .asm_1036b5
.asm_1036d9
- callba Function8b1e1
+ callba CheckForMobileBattleRules
jr nc, .asm_1036e6
call JoyWaitAorB
jr .asm_1036f4
@@ -7959,7 +7978,7 @@ Function103780: ; 103780
; 10378c
Function10378c: ; 10378c
- ld c, $0
+ ld c, 0
ld hl, SwarmFlags
bit 4, [hl]
jr nz, .already_set
@@ -8089,7 +8108,7 @@ endr
jr c, .asm_103870
ld hl, wd002
ld de, wdc5c
- ld bc, $0003
+ ld bc, 3
call CopyBytes
xor a
ld [ScriptVar], a
diff --git a/misc/mobile_41.asm b/misc/mobile_41.asm
index 69abe1cd2..d86146a0d 100755
--- a/misc/mobile_41.asm
+++ b/misc/mobile_41.asm
@@ -960,7 +960,7 @@ Function106442: ; 106442
call Function3e32
xor a
ld [hMobile], a
- ld [hFFC9], a
+ ld [hMobileReceive], a
ld a, [wcd25]
inc a
ld [wcd25], a
@@ -975,11 +975,7 @@ Function106453: ; 106453
ret
; 106462
-Function106462: ; 106462
- ret
-; 106463
-
-Function106463: ; 106463
+MobileFunc_106462: mobile
ret
; 106464
@@ -1058,7 +1054,7 @@ Function1064d8: ; 1064d8
jr asm_1064ed
asm_1064ed
- ld de, w6_d000
+ ld de, wDecompressScratch
ld b, $0
ld a, [rSVBK]
push af
@@ -1087,17 +1083,17 @@ GFX_106514:
INCBIN "gfx/unknown/106514.2bpp"
-Function106594:: ; 106594
- ld de, GFX_1065ad
+LoadOverworldFont:: ; 106594
+ ld de, .bgfont
ld hl, VTiles1
- lb bc, BANK(GFX_1065ad), $80
+ lb bc, BANK(.bgfont), $80
call Get2bpp
- ld de, GFX_1065ad + $800
+ ld de, .bgfont + $80 tiles
ld hl, VTiles2 tile $7f
- lb bc, BANK(GFX_1065ad), 1
+ lb bc, BANK(.bgfont), 1
call Get2bpp
ret
; 1065ad
-GFX_1065ad:
+.bgfont:
INCBIN "gfx/unknown/1065ad.2bpp"
diff --git a/misc/mobile_42.asm b/misc/mobile_42.asm
index 0e25021bf..41e31281c 100644
--- a/misc/mobile_42.asm
+++ b/misc/mobile_42.asm
@@ -1,15 +1,18 @@
-
-SECTION "bank42", ROMX, BANK[$42]
-
Function108000: ; 108000
ld a, $80
ld [wcf65], a
ld de, Unknown_10800b
- jp Function108089
+ jp RunMobileTradeAnim_NoFrontpics
; 10800b
Unknown_10800b:
- db $0d, $12, $10, $03, $06, $0f, $0c
+ mobiletradeanim_showwondertradegivemon
+ mobiletradeanim_12
+ mobiletradeanim_10
+ mobiletradeanim_sendmon
+ mobiletradeanim_06
+ mobiletradeanim_0f
+ mobiletradeanim_end
Function108012:
ld a, $80
@@ -20,11 +23,15 @@ Function108016: ; 108016
asm_108018:
ld [wcf65], a
ld de, Unknown_108021
- jp Function108089
+ jp RunMobileTradeAnim_NoFrontpics
; 108021
Unknown_108021:
- db $11, $07, $08, $0e, $0c
+ mobiletradeanim_11
+ mobiletradeanim_07
+ mobiletradeanim_receivemon
+ mobiletradeanim_showwondertradegetmon
+ mobiletradeanim_end
Function108026: ; 108026
ld a, $0
@@ -36,34 +43,47 @@ Function10802a: ; 10802a
asm_10802c:
ld [wcf65], a
ld de, Unknown_108035
- jp Function10805b
+ jp RunMobileTradeAnim_Frontpics
; 108035
-Unknown_108035:
- db $01, $12, $02, $03, $05, $08, $0b, $0c
+Unknown_108035: ; trade
+ mobiletradeanim_showgivemon
+ mobiletradeanim_12
+ mobiletradeanim_02
+ mobiletradeanim_sendmon
+ mobiletradeanim_05
+ mobiletradeanim_receivemon
+ mobiletradeanim_showgetmon
+ mobiletradeanim_end
Function10803d: ; 10803d
ld a, $0
ld [wcf65], a
ld de, Unknown_108048
- jp Function108089
+ jp RunMobileTradeAnim_NoFrontpics
; 108048
Unknown_108048:
- db $11, $07, $08, $13, $0c
+ mobiletradeanim_11
+ mobiletradeanim_07
+ mobiletradeanim_receivemon
+ mobiletradeanim_showoddegg
+ mobiletradeanim_end
Function10804d: ; 10804d
ld a, $0
ld [wcf65], a
ld de, Unknown_108058
- jp Function108089
+ jp RunMobileTradeAnim_NoFrontpics
; 108058
Unknown_108058:
- db $11, $0e, $0c
+ mobiletradeanim_11
+ mobiletradeanim_showwondertradegetmon
+ mobiletradeanim_end
-Function10805b: ; 10805b
- ld hl, wc734
+RunMobileTradeAnim_Frontpics: ; 10805b
+ ld hl, wTradeAnimPointer
ld [hl], e
inc hl
ld [hl], d
@@ -78,11 +98,11 @@ Function10805b: ; 10805b
ld hl, Options
ld a, [hl]
push af
- set 4, [hl]
+ set NO_TEXT_SCROLL, [hl]
call Function1080b7
-.asm_108078
- call Function10824b
- jr nc, .asm_108078
+.loop
+ call MobileTradeAnim_JumptableLoop
+ jr nc, .loop
pop af
ld [Options], a
pop af
@@ -92,8 +112,8 @@ Function10805b: ; 10805b
ret
; 108089
-Function108089: ; 108089
- ld hl, BattleEnded
+RunMobileTradeAnim_NoFrontpics: ; 108089
+ ld hl, wTradeAnimPointer
ld [hl], e
inc hl
ld [hl], d
@@ -108,11 +128,11 @@ Function108089: ; 108089
ld hl, Options
ld a, [hl]
push af
- set 4, [hl]
+ set NO_TEXT_SCROLL, [hl]
call Function108157
-.asm_1080a6
- call Function10824b
- jr nc, .asm_1080a6
+.loop
+ call MobileTradeAnim_JumptableLoop
+ jr nc, .loop
pop af
ld [Options], a
pop af
@@ -129,21 +149,25 @@ Function1080b7: ; 1080b7
call ClearSprites
call ClearTileMap
call DisableLCD
- call Function1081ad
- call Function1081ca
+ call MobileTradeAnim_ClearVTiles
+ call MobileTradeAnim_ClearBGMap
call LoadStandardFont
call LoadFontsBattleExtra
+
ld a, $1
ld [rVBK], a
ld hl, LZ_108da7
ld de, VTiles2
call Decompress
+
ld a, $0
ld [rVBK], a
ld hl, LZ_108d27
ld de, VTiles0 tile $20
call Decompress
+
call EnableLCD
+
xor a
ld [hSCX], a
ld [hSCY], a
@@ -151,34 +175,43 @@ Function1080b7: ; 1080b7
ld [hWX], a
ld a, $90
ld [hWY], a
- callba Function8cf53
+ callba ClearSpriteAnims
+
call DelayFrame
+
ld de, TradeBallGFX
ld hl, VTiles0
lb bc, BANK(TradeBallGFX), $06
call Request2bpp
+
ld de, TradePoofGFX
ld hl, VTiles0 tile $06
lb bc, BANK(TradePoofGFX), $0c
call Request2bpp
+
xor a
- ld hl, wc300
+ ld hl, wSpriteAnimDict
ld [hli], a
ld [hl], $0
- ld a, [$c6d0]
- ld hl, $c6fd
+
+ ld a, [wPlayerTrademonSpecies]
+ ld hl, wPlayerTrademonDVs
ld de, VTiles0 tile $30
- call Function1081e9
- ld a, [wc702]
- ld hl, wEnemyTrappingMove
+ call MobileTradeAnim_GetFrontpic
+
+ ld a, [wOTTrademonSpecies]
+ ld hl, wOTTrademonDVs
ld de, VTiles2 tile $31
- call Function1081e9
- ld a, [$c6d0]
- ld de, $c6d1
- call Function108239
- ld a, [wc702]
- ld de, wc703
- call Function108239
+ call MobileTradeAnim_GetFrontpic
+
+ ld a, [wPlayerTrademonSpecies]
+ ld de, wPlayerTrademonSpeciesName
+ call MobileTradeAnim_InitSpeciesName
+
+ ld a, [wOTTrademonSpecies]
+ ld de, wOTTrademonSpeciesName
+ call MobileTradeAnim_InitSpeciesName
+
xor a
call Function108b98
call Function108af4
@@ -192,8 +225,8 @@ Function108157: ; 108157
call ClearSprites
call ClearTileMap
call DisableLCD
- call Function1081ad
- call Function1081ca
+ call MobileTradeAnim_ClearVTiles
+ call MobileTradeAnim_ClearBGMap
call LoadStandardFont
call LoadFontsBattleExtra
call EnableLCD
@@ -204,57 +237,57 @@ Function108157: ; 108157
ld [hWX], a
ld a, $90
ld [hWY], a
- callba Function8cf53
+ callba ClearSpriteAnims
xor a
- ld hl, wc300
+ ld hl, wSpriteAnimDict
ld [hli], a
ld [hl], $0
call DelayFrame
- ld a, [$c6d0]
- ld de, $c6d1
- call Function108239
- ld a, [wc702]
- ld de, wc703
- call Function108239
+ ld a, [wPlayerTrademonSpecies]
+ ld de, wPlayerTrademonSpeciesName
+ call MobileTradeAnim_InitSpeciesName
+ ld a, [wOTTrademonSpecies]
+ ld de, wOTTrademonSpeciesName
+ call MobileTradeAnim_InitSpeciesName
xor a
call Function108b98
call Function108af4
ret
; 1081ad
-Function1081ad: ; 1081ad
+MobileTradeAnim_ClearVTiles: ; 1081ad
ld a, $1
ld [rVBK], a
ld hl, VTiles0
- ld bc, $1800
+ ld bc, 3 * $80 tiles
xor a
call ByteFill
ld a, $0
ld [rVBK], a
ld hl, VTiles0
- ld bc, $1800
+ ld bc, 3 * $80 tiles
xor a
call ByteFill
ret
; 1081ca
-Function1081ca: ; 1081ca
+MobileTradeAnim_ClearBGMap: ; 1081ca
ld a, $1
ld [rVBK], a
hlbgcoord 0, 0
- ld bc, $0800
+ ld bc, 2 * BG_MAP_HEIGHT * BG_MAP_WIDTH
ld a, $0
call ByteFill
ld a, $0
ld [rVBK], a
hlbgcoord 0, 0
- ld bc, $0800
+ ld bc, 2 * BG_MAP_HEIGHT * BG_MAP_WIDTH
ld a, $7f
call ByteFill
ret
; 1081e9
-Function1081e9: ; 1081e9
+MobileTradeAnim_GetFrontpic: ; 1081e9
push de
push af
predef GetUnownLetter
@@ -298,7 +331,7 @@ Function108229: ; 108229
ret
; 108239
-Function108239: ; 108239
+MobileTradeAnim_InitSpeciesName: ; 108239
push de
ld [wd265], a
call GetPokemonName
@@ -309,16 +342,16 @@ Function108239: ; 108239
ret
; 10824b
-Function10824b: ; 10824b
+MobileTradeAnim_JumptableLoop: ; 10824b
ld a, [wJumptableIndex]
bit 7, a
- jr nz, .asm_10825a
- call Function10827b
+ jr nz, .StopAnim
+ call .ExecuteMobileTradeAnimCommand
call DelayFrame
and a
ret
-.asm_10825a
+.StopAnim
xor a
ld [hSCX], a
ld [hSCY], a
@@ -328,17 +361,17 @@ Function10824b: ; 10824b
ld [hWY], a
call LoadStandardFont
call LoadFontsBattleExtra
- callba Function106462
+ callba MobileFunc_106462
callba Function106464
scf
ret
; 10827b
-Function10827b: ; 10827b
+.ExecuteMobileTradeAnimCommand: ; 10827b
ld a, [wJumptableIndex]
ld e, a
ld d, 0
- ld hl, Jumptable_10828a
+ ld hl, .Jumptable
rept 2
add hl, de
endr
@@ -348,37 +381,38 @@ endr
jp [hl]
; 10828a
-Jumptable_10828a: ; 10828a
- dw Function1082b7
- dw Function10830e
- dw Function108638
- dw Function108763
- dw Function1087cf
- dw Function108811
- dw Function108838
- dw Function10884c
- dw Function108863
- dw Function108894
- dw Function10890a
- dw Function10839b
- dw Function1082c6
- dw Function10842c
- dw Function1084d7
- dw Function108919
- dw Function108689
- dw Function1086f4
- dw Function10893d
- dw Function108589
+.Jumptable: ; 10828a
+ jumptable_start
+ jumptable GetMobileTradeAnimByte ; 00
+ jumptable MobileTradeAnim_ShowPlayerMonToBeSent ; 01
+ jumptable MobileTradeAnim_02 ; 02
+ jumptable MobileTradeAnim_GiveTrademon1 ; 03
+ jumptable MobileTradeAnim_GiveTrademon2 ; 04
+ jumptable MobileTradeAnim_05 ; 05
+ jumptable MobileTradeAnim_06 ; 06
+ jumptable MobileTradeAnim_07 ; 07
+ jumptable MobileTradeAnim_GetTrademon1 ; 08
+ jumptable MobileTradeAnim_GetTrademon2 ; 09
+ jumptable MobileTradeAnim_GetTrademon3 ; 0a
+ jumptable MobileTradeAnim_ShowOTMonFromTrade ; 0b
+ jumptable EndMobileTradeAnim ; 0c
+ jumptable MobileTradeAnim_ShowPlayerMonForWonderTrade ; 0d
+ jumptable MobileTradeAnim_ShowOTMonFromWonderTrade ; 0e
+ jumptable MobileTradeAnim_0f ; 0f
+ jumptable MobileTradeAnim_10 ; 10
+ jumptable MobileTradeAnim_11 ; 11
+ jumptable MobileTradeAnim_FadeToBlack ; 12
+ jumptable MobileTradeAnim_GetOddEgg ; 13 get odd egg
; 1082b2
-Function1082b2: ; 1082b2
+MobileTradeAnim_Next: ; 1082b2
ld hl, wJumptableIndex
inc [hl]
ret
; 1082b7
-Function1082b7: ; 1082b7
- ld hl, wc734
+GetMobileTradeAnimByte: ; 1082b7
+ ld hl, wTradeAnimPointer
ld e, [hl]
inc hl
ld d, [hl]
@@ -391,56 +425,56 @@ Function1082b7: ; 1082b7
ret
; 1082c6
-Function1082c6: ; 1082c6
+EndMobileTradeAnim: ; 1082c6
ld hl, wJumptableIndex
set 7, [hl]
ret
; 1082cc
-Function1082cc: ; 1082cc
-.asm_1082cc
+WaitMobileTradeSpriteAnims: ; 1082cc
+.loop
push bc
- callba Function8cf69
+ callba PlaySpriteAnimations
pop bc
call DelayFrame
dec c
- jr nz, .asm_1082cc
+ jr nz, .loop
ret
; 1082db
Function1082db: ; 1082db
-.asm_1082db
- callba Function8cf69
- callba Functiond00b4
+.loop
+ callba PlaySpriteAnimations
+ callba SetUpPokeAnim
callba Function10402d
- jr nc, .asm_1082db
+ jr nc, .loop
ret
; 1082f0
Function1082f0: ; 1082f0
-.asm_1082f0
+.loop
call Function108b78
call DelayFrame
dec c
- jr nz, .asm_1082f0
+ jr nz, .loop
ret
; 1082fa
Function1082fa: ; 1082fa
-.asm_1082fa
+.loop
call Function108b78
push hl
push bc
- callba Function8cf69
+ callba PlaySpriteAnimations
pop bc
pop hl
call DelayFrame
dec c
- jr nz, .asm_1082fa
+ jr nz, .loop
ret
; 10830e
-Function10830e: ; 10830e
+MobileTradeAnim_ShowPlayerMonToBeSent: ; 10830e
ld de, MUSIC_EVOLUTION
call PlayMusic2
ld a, $80
@@ -451,45 +485,45 @@ Function10830e: ; 10830e
ld [hWX], a
ld a, $50
ld [hWY], a
- call Function1089a8
- ld a, [$c6d0]
+ call MobileTradeAnim_DisplayMonToBeSent
+ ld a, [wPlayerTrademonSpecies]
ld [CurPartySpecies], a
call Function10895e
- ld a, [$c6fd]
+ ld a, [wPlayerTrademonDVs]
ld [TempMonDVs], a
- ld a, [$c6fe]
+ ld a, [wPlayerTrademonDVs + 1]
ld [TempMonDVs + 1], a
ld b, SCGB_1A
call GetSGBLayout
- ld a, $e4
+ ld a, %11100100 ; 3,2,1,0
call DmgToCgbBGPals
call WaitBGMap
-.asm_108348
+.loop
ld a, [hWX]
cp $7
- jr z, .asm_10835d
+ jr z, .okay
sub $4
ld [hWX], a
ld a, [hSCX]
sub $4
ld [hSCX], a
call DelayFrame
- jr .asm_108348
+ jr .loop
-.asm_10835d
+.okay
ld a, $7
ld [hWX], a
xor a
ld [hSCX], a
- ld a, [$c6d0]
+ ld a, [wPlayerTrademonSpecies]
call GetCryIndex
- jr c, .asm_108371
+ jr c, .skip_cry
ld e, c
ld d, b
call PlayCryHeader
-.asm_108371
- ld c, $50
+.skip_cry
+ ld c, 80
call DelayFrames
call Function108bec
depixel 10, 11, 4, 0
@@ -498,28 +532,28 @@ Function10830e: ; 10830e
ld de, SFX_BALL_POOF
call PlaySFX
hlcoord 0, 0
- ld bc, $00f0
+ ld bc, 12 * SCREEN_WIDTH
ld a, " "
call ByteFill
- ld c, $50
- call Function1082cc
- call Function1082b7
+ ld c, 80
+ call WaitMobileTradeSpriteAnims
+ call GetMobileTradeAnimByte
ret
; 10839b
-Function10839b: ; 10839b
+MobileTradeAnim_ShowOTMonFromTrade: ; 10839b
call ClearBGPalettes
call ClearSprites
call ClearTileMap
call DisableLCD
- call Function1081ca
- ld a, [wc702]
+ call MobileTradeAnim_ClearBGMap
+ ld a, [wOTTrademonSpecies]
ld [CurPartySpecies], a
- ld hl, wEnemyTrappingMove
+ ld hl, wOTTrademonDVs
ld de, VTiles2
call Function108201
call EnableLCD
- callba Function8d03d
+ callba DeinitializeAllSprites
xor a
ld [hSCX], a
ld [hSCY], a
@@ -534,11 +568,11 @@ Function10839b: ; 10839b
ld a, $1
call Function108b98
call Function108af4
- ld c, $30
- call Function1082cc
+ ld c, 48
+ call WaitMobileTradeSpriteAnims
ld de, SFX_BALL_POOF
call PlaySFX
- call Function1089d2
+ call MobileTradeAnim_DisplayReceivedMon
xor a
ld [hSCX], a
ld [hSCY], a
@@ -546,26 +580,26 @@ Function10839b: ; 10839b
ld [hWX], a
ld a, $50
ld [hWY], a
- ld a, [wc702]
+ ld a, [wOTTrademonSpecies]
ld [CurPartySpecies], a
- ld a, [wEnemyTrappingMove]
+ ld a, [wOTTrademonDVs]
ld [TempMonDVs], a
- ld a, [wPlayerWrapCount]
+ ld a, [wOTTrademonDVs + 1]
ld [TempMonDVs + 1], a
ld b, SCGB_1A
call GetSGBLayout
- ld a, $e4
+ ld a, %11100100 ; 3,2,1,0
call DmgToCgbBGPals
call Function108963
- ld a, [wc702]
+ ld a, [wOTTrademonSpecies]
call Function108229
call Function1082db
call Function108c16
- call Function1082b7
+ call GetMobileTradeAnimByte
ret
; 10842c
-Function10842c: ; 10842c
+MobileTradeAnim_ShowPlayerMonForWonderTrade: ; 10842c
ld de, MUSIC_EVOLUTION
call PlayMusic2
ld a, $80
@@ -576,10 +610,10 @@ Function10842c: ; 10842c
ld [hWX], a
ld a, $50
ld [hWY], a
- call Function1089a8
- ld a, [$c6d0]
+ call MobileTradeAnim_DisplayMonToBeSent
+ ld a, [wPlayerTrademonSpecies]
ld [CurPartySpecies], a
- ld hl, $c6fd
+ ld hl, wPlayerTrademonDVs
call Function10898a
call DelayFrame
ld de, TradeBallGFX
@@ -590,41 +624,41 @@ Function10842c: ; 10842c
ld hl, VTiles0 tile $06
lb bc, BANK(TradePoofGFX), $0c
call Request2bpp
- ld a, [$c6fd]
+ ld a, [wPlayerTrademonDVs]
ld [TempMonDVs], a
- ld a, [$c6fe]
+ ld a, [wPlayerTrademonDVs + 1]
ld [TempMonDVs + 1], a
ld b, SCGB_1A
call GetSGBLayout
- ld a, $e4
+ ld a, %11100100 ; 3,2,1,0
call DmgToCgbBGPals
call WaitBGMap
-.asm_108484
+.loop
ld a, [hWX]
cp $7
- jr z, .asm_108499
+ jr z, .done
sub $4
ld [hWX], a
ld a, [hSCX]
sub $4
ld [hSCX], a
call DelayFrame
- jr .asm_108484
+ jr .loop
-.asm_108499
+.done
ld a, $7
ld [hWX], a
xor a
ld [hSCX], a
- ld a, [$c6d0]
+ ld a, [wPlayerTrademonSpecies]
call GetCryIndex
- jr c, .asm_1084ad
+ jr c, .skip_cry
ld e, c
ld d, b
call PlayCryHeader
-.asm_1084ad
- ld c, $50
+.skip_cry
+ ld c, 80
call DelayFrames
call Function108c2b
depixel 10, 11, 4, 0
@@ -633,28 +667,28 @@ Function10842c: ; 10842c
ld de, SFX_BALL_POOF
call PlaySFX
hlcoord 0, 0
- ld bc, $00f0
+ ld bc, 12 * SCREEN_WIDTH
ld a, " "
call ByteFill
- ld c, $50
- call Function1082cc
- call Function1082b7
+ ld c, 80
+ call WaitMobileTradeSpriteAnims
+ call GetMobileTradeAnimByte
ret
; 1084d7
-Function1084d7: ; 1084d7
+MobileTradeAnim_ShowOTMonFromWonderTrade: ; 1084d7
call ClearBGPalettes
call ClearSprites
call ClearTileMap
call DisableLCD
- call Function1081ca
- ld a, [wc702]
+ call MobileTradeAnim_ClearBGMap
+ ld a, [wOTTrademonSpecies]
ld [CurPartySpecies], a
- ld hl, wEnemyTrappingMove
+ ld hl, wOTTrademonDVs
ld de, VTiles2
call Function108201
call EnableLCD
- callba Function8d03d
+ callba DeinitializeAllSprites
call DelayFrame
ld de, TradeBallGFX
ld hl, VTiles0
@@ -678,11 +712,11 @@ Function1084d7: ; 1084d7
ld a, $1
call Function108b98
call Function108af4
- ld c, $30
- call Function1082cc
+ ld c, 48
+ call WaitMobileTradeSpriteAnims
ld de, SFX_BALL_POOF
call PlaySFX
- call Function1089d2
+ call MobileTradeAnim_DisplayReceivedMon
xor a
ld [hSCX], a
ld [hSCY], a
@@ -690,40 +724,40 @@ Function1084d7: ; 1084d7
ld [hWX], a
ld a, $50
ld [hWY], a
- ld a, [wc702]
+ ld a, [wOTTrademonSpecies]
ld [CurPartySpecies], a
- ld a, [wEnemyTrappingMove]
+ ld a, [wOTTrademonDVs]
ld [TempMonDVs], a
- ld a, [wPlayerWrapCount]
+ ld a, [wOTTrademonDVs + 1]
ld [TempMonDVs + 1], a
ld b, SCGB_1A
call GetSGBLayout
- ld a, $e4
+ ld a, %11100100 ; 3,2,1,0
call DmgToCgbBGPals
- ld a, [wc702]
- ld hl, wEnemyTrappingMove
+ ld a, [wOTTrademonSpecies]
+ ld hl, wOTTrademonDVs
call Function10898a
- ld a, [wc702]
+ ld a, [wOTTrademonSpecies]
call Function108229
call Function1082db
call Function108c40
- call Function1082b7
+ call GetMobileTradeAnimByte
ret
; 108589
-Function108589: ; 108589
+MobileTradeAnim_GetOddEgg: ; 108589
call ClearBGPalettes
call ClearSprites
call ClearTileMap
call DisableLCD
- call Function1081ca
- ld a, [wc702]
+ call MobileTradeAnim_ClearBGMap
+ ld a, [wOTTrademonSpecies]
ld [CurPartySpecies], a
- ld hl, wEnemyTrappingMove
+ ld hl, wOTTrademonDVs
ld de, VTiles2
call Function108201
call EnableLCD
- callba Function8d03d
+ callba DeinitializeAllSprites
call DelayFrame
ld de, TradeBallGFX
ld hl, VTiles0
@@ -747,8 +781,8 @@ Function108589: ; 108589
ld a, $1
call Function108b98
call Function108af4
- ld c, $30
- call Function1082cc
+ ld c, 48
+ call WaitMobileTradeSpriteAnims
ld de, SFX_BALL_POOF
call PlaySFX
call Function108a33
@@ -759,35 +793,35 @@ Function108589: ; 108589
ld [hWX], a
ld a, $50
ld [hWY], a
- ld a, [wc702]
+ ld a, [wOTTrademonSpecies]
ld [CurPartySpecies], a
- ld a, [wEnemyTrappingMove]
+ ld a, [wOTTrademonDVs]
ld [TempMonDVs], a
- ld a, [wPlayerWrapCount]
+ ld a, [wOTTrademonDVs + 1]
ld [TempMonDVs + 1], a
ld b, SCGB_1A
call GetSGBLayout
- ld a, $e4
+ ld a, %11100100 ; 3,2,1,0
call DmgToCgbBGPals
- ld a, [wc702]
- ld hl, wEnemyTrappingMove
+ ld a, [wOTTrademonSpecies]
+ ld hl, wOTTrademonDVs
call Function10898a
- ld a, [wc702]
+ ld a, [wOTTrademonSpecies]
call Function108229
call Function1082db
- call Function1082b7
+ call GetMobileTradeAnimByte
ret
; 108638
-Function108638: ; 108638
- callba Function8d03d
+MobileTradeAnim_02: ; 108638
+ callba DeinitializeAllSprites
call ClearBGPalettes
call ClearSprites
call ClearTileMap
xor a
ld [hBGMapMode], a
call DisableLCD
- call Function1081ca
+ call MobileTradeAnim_ClearBGMap
call Function108c80
call Function108c6d
call EnableLCD
@@ -805,25 +839,25 @@ Function108638: ; 108638
ld [rSVBK], a
ld hl, Palette_109107
ld de, UnknBGPals
- ld bc, $0040
+ ld bc, 8 palettes
call CopyBytes
pop af
ld [rSVBK], a
call Function108d07
call Function108af4
- call Function1082b7
+ call GetMobileTradeAnimByte
ret
; 108689
-Function108689: ; 108689
- callba Function8d03d
+MobileTradeAnim_10: ; 108689
+ callba DeinitializeAllSprites
call ClearBGPalettes
call ClearSprites
call ClearTileMap
xor a
ld [hBGMapMode], a
call DisableLCD
- call Function1081ca
+ call MobileTradeAnim_ClearBGMap
ld a, $1
ld [rVBK], a
ld hl, LZ_108da7
@@ -851,17 +885,17 @@ Function108689: ; 108689
ld [rSVBK], a
ld hl, Palette_109107
ld de, UnknBGPals
- ld bc, $0040
+ ld bc, 8 palettes
call CopyBytes
pop af
ld [rSVBK], a
call Function108d07
call Function108af4
- call Function1082b7
+ call GetMobileTradeAnimByte
ret
; 1086f4
-Function1086f4: ; 1086f4
+MobileTradeAnim_11: ; 1086f4
call ClearBGPalettes
call ClearSprites
call ClearTileMap
@@ -895,7 +929,7 @@ Function1086f4: ; 1086f4
ld [rSVBK], a
ld hl, Palette_109107
ld de, UnknBGPals
- ld bc, $0040
+ ld bc, 8 palettes
call CopyBytes
pop af
ld [rSVBK], a
@@ -906,82 +940,81 @@ Function1086f4: ; 1086f4
ld [hSCX], a
ld de, MUSIC_EVOLUTION
call PlayMusic2
- call Function1082b7
+ call GetMobileTradeAnimByte
ret
; 108763
-Function108763: ; 108763
+MobileTradeAnim_GiveTrademon1: ; 108763
ld de, SFX_GIVE_TRADEMON
call PlaySFX
- ld c, $28
- ld hl, $d0b0
+ ld c, 40
+ ld hl, BGPals + 6 palettes
call Function1082f0
call Function108af4
-.asm_108774
+.loop
ld a, [hSCX]
cp $e0
- jr z, .asm_108791
+ jr z, .loop2
rept 2
dec a
endr
ld [hSCX], a
cp $f8
- jr nz, .asm_10878a
+ jr nz, .next
depixel 10, 11, 4, 0
ld a, SPRITE_ANIM_INDEX_22
call _InitSpriteAnimStruct
-.asm_10878a
- ld c, $1
- call Function1082cc
- jr .asm_108774
+.next
+ ld c, 1
+ call WaitMobileTradeSpriteAnims
+ jr .loop
-.asm_108791
+.loop2
ld a, [hSCY]
cp $f8
- jr z, .asm_1087cb
+ jr z, .done
rept 2
dec a
endr
ld [hSCY], a
cp $40
- jr z, .asm_1087a9
+ jr z, .init
cp $30
- jr z, .asm_1087b7
+ jr z, .delete
cp $68
- jr z, .asm_1087bc
- jr .asm_1087c4
+ jr z, .replace
+ jr .next2
-.asm_1087a9
+.init
depixel 10, 11, 4, 0
ld a, SPRITE_ANIM_INDEX_22
call _InitSpriteAnimStruct
xor a
call Function108ad4
- jr .asm_1087c4
+ jr .next2
-.asm_1087b7
- call Function108bbd
- jr .asm_1087c4
+.delete
+ call MobileTradeAnim_DeleteSprites
+ jr .next2
-.asm_1087bc
- call Function108bbd
+.replace
+ call MobileTradeAnim_DeleteSprites
ld a, $1
call Function108ad4
+.next2
+ ld c, 1
+ call WaitMobileTradeSpriteAnims
+ jr .loop2
-.asm_1087c4
- ld c, $1
- call Function1082cc
- jr .asm_108791
-
-.asm_1087cb
- call Function1082b2
+.done
+ call MobileTradeAnim_Next
ret
; 1087cf
-Function1087cf: ; 1087cf
- ld c, $28
- ld hl, StringBuffer2 + 2
+MobileTradeAnim_GiveTrademon2: ; 1087cf
+ ld c, 40
+ ld hl, BGPals + 1 palettes
call Function1082f0
call Function108af4
call Function108b5a
@@ -990,102 +1023,102 @@ Function1087cf: ; 1087cf
call _InitSpriteAnimStruct
ld de, SFX_FORESIGHT
call PlaySFX
- ld c, $a
- call Function1082cc
+ ld c, 10
+ call WaitMobileTradeSpriteAnims
xor a
ld [wcf64], a
depixel 9, 10, 2, 0
ld a, SPRITE_ANIM_INDEX_23
call _InitSpriteAnimStruct
-.asm_1087fc
+.loop
ld a, [hSCY]
cp $90
- jr z, .asm_10880d
+ jr z, .done
sub $8
ld [hSCY], a
- ld c, $1
- call Function1082cc
- jr .asm_1087fc
+ ld c, 1
+ call WaitMobileTradeSpriteAnims
+ jr .loop
-.asm_10880d
- call Function1082b7
+.done
+ call GetMobileTradeAnimByte
ret
; 108811
-Function108811: ; 108811
- ld c, $28
- call Function1082cc
+MobileTradeAnim_05: ; 108811
+ ld c, 40
+ call WaitMobileTradeSpriteAnims
ld a, $1
ld [wcf64], a
ld de, SFX_SHARPEN
call PlaySFX
- ld c, $3c
- call Function1082cc
+ ld c, 60
+ call WaitMobileTradeSpriteAnims
depixel 30, 10, 2, 0
ld a, SPRITE_ANIM_INDEX_24
call _InitSpriteAnimStruct
- call Function1082b7
+ call GetMobileTradeAnimByte
ld de, SFX_THROW_BALL
call PlaySFX
ret
; 108838
-Function108838: ; 108838
- ld c, $28
- call Function1082cc
+MobileTradeAnim_06: ; 108838
+ ld c, 40
+ call WaitMobileTradeSpriteAnims
ld a, $1
ld [wcf64], a
ld de, SFX_SHARPEN
call PlaySFX
- call Function1082b7
+ call GetMobileTradeAnimByte
ret
; 10884c
-Function10884c: ; 10884c
+MobileTradeAnim_07: ; 10884c
ld c, 80
call DelayFrames
depixel 30, 10, 2, 0
ld a, SPRITE_ANIM_INDEX_24
call _InitSpriteAnimStruct
- call Function1082b7
+ call GetMobileTradeAnimByte
ld de, SFX_THROW_BALL
call PlaySFX
ret
; 108863
-Function108863: ; 108863
- ld c, $28
- call Function1082cc
-.asm_108868
+MobileTradeAnim_GetTrademon1: ; 108863
+ ld c, 40
+ call WaitMobileTradeSpriteAnims
+.loop
ld a, [hSCY]
cp $f8
- jr z, .asm_108879
+ jr z, .done
add $8
ld [hSCY], a
- ld c, $1
- call Function1082cc
- jr .asm_108868
+ ld c, 1
+ call WaitMobileTradeSpriteAnims
+ jr .loop
-.asm_108879
- callba Function8d03d
+.done
+ callba DeinitializeAllSprites
depixel 9, 10, 2, 0
ld a, SPRITE_ANIM_INDEX_25
call _InitSpriteAnimStruct
ld de, SFX_GLASS_TING_2
call PlaySFX
call Function108af4
- call Function1082b2
+ call MobileTradeAnim_Next
ret
; 108894
-Function108894: ; 108894
- ld c, $14
- ld hl, StringBuffer2 + 2
+MobileTradeAnim_GetTrademon2: ; 108894
+ ld c, 20
+ ld hl, BGPals + 1 palettes
call Function1082fa
ld de, SFX_GIVE_TRADEMON
call PlaySFX
- ld c, $14
- ld hl, StringBuffer2 + 2
+ ld c, 20
+ ld hl, BGPals + 1 palettes
call Function1082fa
call Function108af4
.asm_1088ad
@@ -1119,14 +1152,14 @@ endr
jr .asm_1088e7
.asm_1088dd
- call Function108bbd
+ call MobileTradeAnim_DeleteSprites
ld a, $1
call Function108ad4
jr .asm_1088e7
.asm_1088e7
- ld c, $1
- call Function1082cc
+ ld c, 1
+ call WaitMobileTradeSpriteAnims
jr .asm_1088ad
.asm_1088ee
@@ -1137,60 +1170,60 @@ rept 2
inc a
endr
ld [hSCX], a
- cp $f8
+ cp -8
jr nz, .asm_1088e7
- call Function108bbd
- ld c, $1
- call Function1082cc
+ call MobileTradeAnim_DeleteSprites
+ ld c, 1
+ call WaitMobileTradeSpriteAnims
jr .asm_1088ee
.asm_108906
- call Function1082b2
+ call MobileTradeAnim_Next
ret
; 10890a
-Function10890a: ; 10890a
- ld c, $28
- ld hl, $d0b0
+MobileTradeAnim_GetTrademon3: ; 10890a
+ ld c, 40
+ ld hl, BGPals + 6 palettes
call Function1082f0
call Function108af4
- call Function1082b7
+ call GetMobileTradeAnimByte
ret
; 108919
-Function108919: ; 108919
- ld c, $28
- call Function1082cc
- callba Function8d03d
+MobileTradeAnim_0f: ; 108919
+ ld c, 40
+ call WaitMobileTradeSpriteAnims
+ callba DeinitializeAllSprites
call ClearBGPalettes
call ClearSprites
call ClearTileMap
call DisableLCD
- call Function1081ad
- call Function1081ca
+ call MobileTradeAnim_ClearVTiles
+ call MobileTradeAnim_ClearBGMap
call EnableLCD
- call Function1082b7
+ call GetMobileTradeAnimByte
ret
; 10893d
-Function10893d: ; 10893d
-.asm_10893d
+MobileTradeAnim_FadeToBlack: ; 10893d
+.loop
ld a, [rBGP]
and a
- jr z, .asm_108953
+ jr z, .blank
sla a
sla a
call DmgToCgbBGPals
- call Functioncf8
- ld c, $4
+ call DmgToCgbObjPal0
+ ld c, 4
call DelayFrames
- jr .asm_10893d
+ jr .loop
-.asm_108953
+.blank
xor a
call DmgToCgbBGPals
- call Functioncf8
- call Function1082b7
+ call DmgToCgbObjPal0
+ call GetMobileTradeAnimByte
ret
; 10895e
@@ -1200,18 +1233,17 @@ Function10895e: ; 10895e
Function108963:
ld de, VTiles2 tile $31
-
asm_108966
call DelayFrame
ld hl, VTiles2
- lb bc, $0a, $31
+ lb bc, $a, $31 ; $a is the bank of ?????
call Request2bpp
call WaitTop
- call Function108ac8
+ call MobileTradeAnim_ClearTilemap
hlcoord 7, 2
xor a
ld [hFillBox], a
- ld bc, $0707
+ lb bc, 7, 7
predef FillBox
call WaitBGMap
ret
@@ -1219,121 +1251,121 @@ asm_108966
Function10898a: ; 10898a
ld de, VTiles2
- call Function1081e9
+ call MobileTradeAnim_GetFrontpic
call WaitTop
- call Function108ac8
+ call MobileTradeAnim_ClearTilemap
hlcoord 7, 2
xor a
ld [hFillBox], a
- ld bc, $0707
+ lb bc, 7, 7
predef FillBox
call WaitBGMap
ret
; 1089a8
-Function1089a8: ; 1089a8
- ld de, $c6d0
+MobileTradeAnim_DisplayMonToBeSent: ; 1089a8
+ ld de, wPlayerTrademonSpecies
ld a, [de]
- cp $fd
- jr z, asm_1089fc
- call Function108a5b
- ld de, $c6d0
- call Function108a92
- ld de, $c6d1
- call Function108a9c
- ld a, [wc701]
- ld de, $c6f2
- call Function108aa3
- ld de, $c6ff
- call Function108abe
- call Function108a87
- ret
-
-Function1089d2:
- ld de, wc702
+ cp EGG
+ jr z, MobileTradeAnim_DisplayEggData
+ call MobileTradeAnim_LoadMonTemplate
+ ld de, wPlayerTrademonSpecies
+ call MobileTradeAnim_MonDisplay_PrintSpeciesNumber
+ ld de, wPlayerTrademonSpeciesName
+ call MobileTradeAnim_MonDisplay_PrintSpeciesName
+ ld a, [wPlayerTrademonCaughtData]
+ ld de, wPlayerTrademonOTName
+ call MobileTradeAnim_MonDisplay_PrintOTNameAndGender
+ ld de, wPlayerTrademonID
+ call MobileTradeAnim_MonDisplay_PrintIDNumber
+ call MobileTradeAnim_MonDisplay_UpdateBGMap
+ ret
+
+MobileTradeAnim_DisplayReceivedMon:
+ ld de, wOTTrademonSpecies
ld a, [de]
- cp $fd
- jr z, asm_1089fc
- call Function108a5b
- ld de, wc702
- call Function108a92
- ld de, wc703
- call Function108a9c
- ld a, [wEnemyCharging]
- ld de, wc724
- call Function108aa3
- ld de, wEnemyWrapCount
- call Function108abe
- call Function108a87
- ret
-
-asm_1089fc
+ cp EGG
+ jr z, MobileTradeAnim_DisplayEggData
+ call MobileTradeAnim_LoadMonTemplate
+ ld de, wOTTrademonSpecies
+ call MobileTradeAnim_MonDisplay_PrintSpeciesNumber
+ ld de, wOTTrademonSpeciesName
+ call MobileTradeAnim_MonDisplay_PrintSpeciesName
+ ld a, [wOTTrademonCaughtData]
+ ld de, wOTTrademonOTName
+ call MobileTradeAnim_MonDisplay_PrintOTNameAndGender
+ ld de, wOTTrademonID
+ call MobileTradeAnim_MonDisplay_PrintIDNumber
+ call MobileTradeAnim_MonDisplay_UpdateBGMap
+ ret
+
+MobileTradeAnim_DisplayEggData
call WaitTop
- call Function108ac8
+ call MobileTradeAnim_ClearTilemap
ld a, VBGMap1 / $100
ld [hBGMapAddress + 1], a
hlcoord 5, 0
- ld b, $6
- ld c, $9
+ ld b, 6
+ ld c, 9
call TextBox
hlcoord 6, 2
- ld de, String_108a1d
+ ld de, .EggTemplate
call PlaceString
- call Function108a87
+ call MobileTradeAnim_MonDisplay_UpdateBGMap
ret
; 108a1d
-String_108a1d: ; 108a1d
+.EggTemplate: ; 108a1d
db "タマゴ"
next "おや/?????"
- next $73, "№", $f2, "?????"
+ next "<ID>№·?????"
db "@"
; 108a33
Function108a33: ; 108a33
call WaitTop
- call Function108ac8
+ call MobileTradeAnim_ClearTilemap
ld a, VBGMap1 / $100
ld [hBGMapAddress + 1], a
hlcoord 5, 0
- ld b, $6
- ld c, $9
+ ld b, 6
+ ld c, 9
call TextBox
hlcoord 7, 4
- ld de, String_108a54
+ ld de, .OddEgg
call PlaceString
- call Function108a87
+ call MobileTradeAnim_MonDisplay_UpdateBGMap
ret
; 108a54
-String_108a54: ; 108a54
+.OddEgg: ; 108a54
db "なぞのタマゴ@"
; 108a5b
-Function108a5b: ; 108a5b
+MobileTradeAnim_LoadMonTemplate: ; 108a5b
call WaitTop
- call Function108ac8
+ call MobileTradeAnim_ClearTilemap
ld a, VBGMap1 / $100
ld [hBGMapAddress + 1], a
hlcoord 4, 0
- ld b, $6
- ld c, $a
+ ld b, 6
+ ld c, 10
call TextBox
hlcoord 5, 0
- ld de, String_108a79
+ ld de, .MonTemplate
call PlaceString
ret
; 108a79
-String_108a79: ; 108a79
- db "─ №", $f2
+.MonTemplate: ; 108a79
+ db "─ №·"
next ""
next "おや/"
- next $73, "№", $f2
+ next "<ID>№·"
db "@"
; 108a87
-Function108a87: ; 108a87
+MobileTradeAnim_MonDisplay_UpdateBGMap: ; 108a87
call WaitBGMap
call WaitTop
ld a, VBGMap0 / $100
@@ -1341,31 +1373,30 @@ Function108a87: ; 108a87
ret
; 108a92
-Function108a92: ; 108a92
+MobileTradeAnim_MonDisplay_PrintSpeciesNumber: ; 108a92
hlcoord 9, 0
lb bc, PRINTNUM_LEADINGZEROS | 1, 3
call PrintNum
ret
; 108a9c
-Function108a9c: ; 108a9c
+MobileTradeAnim_MonDisplay_PrintSpeciesName: ; 108a9c
hlcoord 5, 2
call PlaceString
ret
; 108aa3
-Function108aa3: ; 108aa3
+MobileTradeAnim_MonDisplay_PrintOTNameAndGender: ; 108aa3
cp $3
- jr c, .asm_108aa8
+ jr c, .got_gender
xor a
-
-.asm_108aa8
+.got_gender
push af
hlcoord 8, 4
call PlaceString
inc bc
pop af
- ld hl, Unknown_108abb
+ ld hl, .GenderChars
ld d, 0
ld e, a
add hl, de
@@ -1374,21 +1405,23 @@ Function108aa3: ; 108aa3
ret
; 108abb
-Unknown_108abb: ; 108abb
- db " ", "♂", "♀"
+.GenderChars: ; 108abb
+ db " "
+ db "♂"
+ db "♀"
; 108abe
-Function108abe: ; 108abe
+MobileTradeAnim_MonDisplay_PrintIDNumber: ; 108abe
hlcoord 8, 6
lb bc, PRINTNUM_LEADINGZEROS | 2, 5
call PrintNum
ret
; 108ac8
-Function108ac8: ; 108ac8
+MobileTradeAnim_ClearTilemap: ; 108ac8
hlcoord 0, 0
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, $7f
+ ld a, " "
call ByteFill
ret
; 108ad4
@@ -1401,12 +1434,11 @@ Function108ad4: ; 108ad4
.asm_108adc
ld de, GFX_1091c7
-
.asm_108adf
ld a, $1
ld [rVBK], a
ld hl, VTiles2 tile $4a
- lb bc, $42, $10
+ lb bc, BANK(GFX_1092c7), 16
call Get2bpp_2
call DelayFrame
ld a, $0
@@ -1421,33 +1453,33 @@ Function108af4: ; 108af4
ld [rSVBK], a
ld a, [wcf65]
and $1
- jr z, .asm_108b1c
+ jr z, .copy_palette_109147
ld hl, Palette_109187
ld de, UnknOBPals
- ld bc, $0040
+ ld bc, 8 palettes
call CopyBytes
ld hl, Palette_109187
ld de, OBPals
- ld bc, $0040
+ ld bc, 8 palettes
call CopyBytes
- jr .asm_108b34
+ jr .done_copy
-.asm_108b1c
+.copy_palette_109147
ld hl, Palette_109147
ld de, UnknOBPals
- ld bc, $0040
+ ld bc, 8 palettes
call CopyBytes
ld hl, Palette_109147
ld de, OBPals
- ld bc, $0040
+ ld bc, 8 palettes
call CopyBytes
-.asm_108b34
+.done_copy
pop af
ld [rSVBK], a
- ld a, $e4
- call Functioncf8
- ld a, $e4
+ ld a, %11100100 ; 3,2,1,0
+ call DmgToCgbObjPal0
+ ld a, %11100100 ; 3,2,1,0
call DmgToCgbBGPals
call DelayFrame
ret
@@ -1458,7 +1490,7 @@ Function108b45: ; 108b45
push af
ld a, $5
ld [rSVBK], a
- ld de, $7fff
+ ld de, (31 << 10) + (31 << 5) + 31 ; $7fff
ld hl, UnknBGPals
ld a, e
ld [hli], a
@@ -1474,16 +1506,16 @@ Function108b5a: ; 108b5a
push af
ld a, $5
ld [rSVBK], a
- ld de, $3ff2
- ld hl, $d0a0
+ ld de, (15 << 10) + (31 << 5) + 18 ; $3ff2
+ ld hl, BGPals + 4 palettes
ld c, $10
-.asm_108b69
+.loop
ld a, e
ld [hli], a
ld a, d
ld [hli], a
dec c
- jr nz, .asm_108b69
+ jr nz, .loop
pop af
ld [rSVBK], a
ld a, $1
@@ -1498,14 +1530,13 @@ Function108b78: ; 108b78
ld [rSVBK], a
ld a, c
and $2
- jr z, .asm_108b89
- ld de, $7fff
- jr .asm_108b8c
-
-.asm_108b89
- ld de, $05ff
+ jr z, .Orange
+ ld de, (31 << 10) + (31 << 5) + 31 ; $7fff
+ jr .load_pal
-.asm_108b8c
+.Orange
+ ld de, ( 1 << 10) + (15 << 5) + 31 ; $05ff
+.load_pal
ld a, e
ld [hli], a
ld a, d
@@ -1530,23 +1561,22 @@ Function108b98: ; 108b98
and $1
xor d
jr z, .asm_108bad
- ld hl, Palette_108b98 + 8
+ ld hl, Palette_108b98 + 1 palettes
jr .asm_108bb0
.asm_108bad
ld hl, Palette_108b98
-
.asm_108bb0
- ld de, UnknBGPals + 8 * 7
- ld bc, $0040
+ ld de, UnknBGPals + 7 palettes
+ ld bc, 8 palettes
call CopyBytes
pop af
ld [rSVBK], a
ret
; 108bbd
-Function108bbd: ; 108bbd
- callba Function8d03d
+MobileTradeAnim_DeleteSprites: ; 108bbd
+ callba DeinitializeAllSprites
call ClearSprites
ret
; 108bc7
@@ -1555,25 +1585,26 @@ Function108bc7: ; 108bc7 (42:4bc7)
ld a, [wcf64]
and a
ret z
- ld hl, $5
+ ld hl, SPRITEANIMSTRUCT_YCOORD
add hl, bc
ld a, [hl]
- cp $f2
- jr z, .asm_108bd9
- sub $8
+ cp -1 * 8 - 6
+ jr z, .delete
+ sub 1 * 8
ld [hl], a
ret
-.asm_108bd9
- callba Function8d036
+
+.delete
+ callba DeinitializeSprite
ret
Function108be0: ; 108be0 (42:4be0)
- ld hl, $5
+ ld hl, SPRITEANIMSTRUCT_YCOORD
add hl, bc
ld a, [hl]
- cp $4a
+ cp 9 * 8 + 2
ret z
- add $8
+ add 1 * 8
ld [hl], a
ret
; 108bec (42:4bec)
@@ -1581,28 +1612,28 @@ Function108be0: ; 108be0 (42:4be0)
Function108bec: ; 108bec
ld a, $90
ld [hWY], a
- ld hl, UnknownText_0x108c07
+ ld hl, .PlayerWillTradeMon
call PrintText
- ld c, $50
+ ld c, 80
call DelayFrames
- ld hl, UnknownText_0x108c0c
+ ld hl, .ForPartnersMon
call PrintText
- ld c, $50
+ ld c, 80
call DelayFrames
ret
; 108c07
-UnknownText_0x108c07: ; 0x108c07
+.PlayerWillTradeMon: ; 0x108c07
text_jump UnknownText_0x1bc787
db "@"
; 0x108c0c
-UnknownText_0x108c0c: ; 0x108c0c
+.ForPartnersMon: ; 0x108c0c
text_jump UnknownText_0x1bc79d
db "@"
; 0x108c11
-UnknownText_0x108c11: ; 0x108c11
+.UnusedTextPlayersMonTrade: ; 0x108c11
text_jump UnknownText_0x1bc7b0
db "@"
; 0x108c16
@@ -1610,14 +1641,14 @@ UnknownText_0x108c11: ; 0x108c11
Function108c16: ; 108c16
ld a, $90
ld [hWY], a
- ld hl, UnknownText_0x108c26
+ ld hl, .TakeGoodCareOfMon
call PrintText
- ld c, $50
+ ld c, 80
call DelayFrames
ret
; 108c26
-UnknownText_0x108c26: ; 0x108c26
+.TakeGoodCareOfMon: ; 0x108c26
text_jump UnknownText_0x1bc7c3
db "@"
; 0x108c2b
@@ -1625,16 +1656,16 @@ UnknownText_0x108c26: ; 0x108c26
Function108c2b: ; 108c2b
ld a, $90
ld [hWY], a
- ld hl, UnknownText_0x108c3b
+ ld hl, .PlayersMonTrade
call PrintText
- ld c, $50
+ ld c, 80
call DelayFrames
ret
; 108c3b
-UnknownText_0x108c3b: ; 0x108c3b
+.PlayersMonTrade: ; 0x108c3b
text_jump UnknownText_0x1bc7dd
- db $50
+ db "@"
; 0x108c40
Function108c40: ; 108c40
@@ -1643,26 +1674,26 @@ Function108c40: ; 108c40
ld a, [wcf65]
and $80
jr z, .asm_108c57
- ld hl, UnknownText_0x108c68
+ ld hl, .CameBack
call PrintText
- ld c, $50
+ ld c, 80
call DelayFrames
ret
.asm_108c57
- ld hl, UnknownText_0x108c63
+ ld hl, .TakeGoodCareOf
call PrintText
- ld c, $50
+ ld c, 80
call DelayFrames
ret
; 108c63
-UnknownText_0x108c63: ; 0x108c63
+.TakeGoodCareOf: ; 0x108c63
text_jump UnknownText_0x1bc7f0
db "@"
; 0x108c68
-UnknownText_0x108c68: ; 0x108c68
+.CameBack: ; 0x108c68
text_jump UnknownText_0x1bc80a
db "@"
; 0x108c6d
@@ -1691,81 +1722,81 @@ Function108c80: ; 108c80
ret
; 108c9b
-Function108c9b: ; 108c9b
-; localization error: $b should be 6 here
+DebugMobileTrade: ; 108c9b
+; localization error: NAME_LENGTH (11) should be 6 here
- ld hl, Unknown_108ce9
+ ld hl, .DebugTradeData
ld a, [hli]
- ld [$c6d0], a
+ ld [wPlayerTrademonSpecies], a
- ld de, $c6e7
- ld c, $b
-.asm_108ca7
+ ld de, wPlayerTrademonSenderName
+ ld c, NAME_LENGTH
+.your_name_loop
ld a, [hli]
ld [de], a
inc de
dec c
- jr nz, .asm_108ca7
+ jr nz, .your_name_loop
- ld de, $c6ff
- ld c, $2
-.asm_108cb2
+ ld de, wPlayerTrademonID
+ ld c, 2
+.your_id_loop
ld a, [hli]
ld [de], a
inc de
dec c
- jr nz, .asm_108cb2
+ jr nz, .your_id_loop
- ld de, $c6f2
- ld c, $b
-.asm_108cbd
+ ld de, wPlayerTrademonOTName
+ ld c, NAME_LENGTH
+.your_ot_loop
ld a, [hli]
ld [de], a
inc de
dec c
- jr nz, .asm_108cbd
+ jr nz, .your_ot_loop
ld a, [hli]
- ld [wc702], a
+ ld [wOTTrademonSpecies], a
- ld de, wc719
- ld c, $b
-.asm_108ccc
+ ld de, wOTTrademonSenderName
+ ld c, NAME_LENGTH
+.their_name_loop
ld a, [hli]
ld [de], a
inc de
dec c
- jr nz, .asm_108ccc
+ jr nz, .their_name_loop
- ld de, wEnemyWrapCount
- ld c, $2
-.asm_108cd7
+ ld de, wOTTrademonID
+ ld c, 2
+.their_id_loop
ld a, [hli]
ld [de], a
inc de
dec c
- jr nz, .asm_108cd7
+ jr nz, .their_id_loop
- ld de, wc724
- ld c, $b
-.asm_108ce2
+ ld de, wOTTrademonOTName
+ ld c, NAME_LENGTH
+.their_ot_loop
ld a, [hli]
ld [de], a
inc de
dec c
- jr nz, .asm_108ce2
+ jr nz, .their_ot_loop
ret
; 108ce9
-Unknown_108ce9:
- db 3
+.DebugTradeData:
+ db VENUSAUR
db "ゲーフり@@"
- db $23, $01
+ dw $0123
db "かびーん@@"
- db 6
+ db CHARIZARD
db "クりーチャ@"
- db $56, $04
+ dw $0456
db "マツミヤ@@"
; 108d07
@@ -1777,12 +1808,12 @@ Function108d07: ; 108d07
ld a, $7
.asm_108d12
- ld bc, $0008
+ ld bc, 1 palettes
ld hl, Palette_1093c7
call AddNTimes
ld a, $5
- ld de, wd020
- ld bc, $0008
+ ld de, UnknBGPals + 4 palettes
+ ld bc, 1 palettes
call FarCopyWRAM
ret
; 108d27
@@ -1800,12 +1831,16 @@ LZ_1090a7:
INCBIN "gfx/unknown/1090a7.tilemap.lz"
Palette_1090f7:
+; unreferenced
RGB 31, 31, 31
RGB 0, 0, 0
+
RGB 31, 0, 25
RGB 0, 0, 0
+
RGB 31, 31, 31
RGB 0, 0, 0
+
RGB 9, 19, 31
RGB 0, 0, 0
@@ -1814,30 +1849,37 @@ Palette_109107:
RGB 20, 20, 20
RGB 11, 11, 11
RGB 0, 0, 0
+
RGB 31, 15, 1
RGB 14, 14, 31
RGB 12, 9, 31
RGB 0, 0, 0
+
RGB 18, 31, 15
RGB 14, 14, 31
RGB 12, 9, 31
RGB 0, 0, 0
+
RGB 18, 31, 15
RGB 20, 20, 20
RGB 11, 11, 11
RGB 0, 0, 0
+
RGB 18, 31, 15
RGB 31, 7, 9
RGB 18, 0, 1
RGB 0, 0, 0
+
RGB 18, 31, 15
RGB 20, 20, 20
RGB 11, 11, 11
RGB 0, 0, 0
+
RGB 31, 15, 1
RGB 18, 0, 30
RGB 9, 0, 17
RGB 0, 0, 0
+
RGB 18, 31, 15
RGB 18, 0, 30
RGB 9, 0, 17
@@ -1848,30 +1890,37 @@ Palette_109147:
RGB 31, 31, 12
RGB 31, 13, 12
RGB 0, 0, 0
+
RGB 31, 31, 31
RGB 31, 23, 15
RGB 31, 18, 7
RGB 31, 15, 0
+
RGB 31, 31, 31
RGB 20, 20, 20
RGB 11, 11, 11
RGB 0, 0, 0
+
RGB 31, 31, 31
RGB 31, 0, 25
RGB 31, 0, 25
RGB 0, 0, 0
+
RGB 31, 31, 31
RGB 9, 19, 31
RGB 9, 19, 31
RGB 0, 0, 0
+
RGB 31, 31, 31
RGB 0, 0, 0
RGB 0, 0, 0
RGB 0, 0, 0
+
RGB 31, 31, 31
RGB 0, 0, 0
RGB 0, 0, 0
RGB 0, 0, 0
+
RGB 31, 31, 31
RGB 0, 0, 0
RGB 0, 0, 0
@@ -1882,30 +1931,37 @@ Palette_109187:
RGB 31, 31, 12
RGB 31, 13, 12
RGB 0, 0, 0
+
RGB 31, 31, 31
RGB 31, 23, 15
RGB 31, 18, 7
RGB 31, 15, 0
+
RGB 31, 31, 31
RGB 20, 20, 20
RGB 11, 11, 11
RGB 0, 0, 0
+
RGB 31, 31, 31
RGB 9, 19, 31
RGB 9, 19, 31
RGB 0, 0, 0
+
RGB 31, 31, 31
RGB 31, 0, 25
RGB 31, 0, 25
RGB 0, 0, 0
+
RGB 31, 31, 31
RGB 0, 0, 0
RGB 0, 0, 0
RGB 0, 0, 0
+
RGB 31, 31, 31
RGB 0, 0, 0
RGB 0, 0, 0
RGB 0, 0, 0
+
RGB 31, 31, 31
RGB 0, 0, 0
RGB 0, 0, 0
@@ -1921,30 +1977,37 @@ Palette_1093c7:
RGB 4, 13, 31
RGB 0, 0, 31
RGB 0, 0, 0
+
RGB 18, 31, 15
RGB 31, 31, 0
RGB 31, 15, 0
RGB 0, 0, 0
+
RGB 18, 31, 15
RGB 9, 24, 0
RGB 2, 16, 0
RGB 0, 0, 0
+
RGB 18, 31, 15
RGB 31, 7, 9
RGB 18, 0, 1
RGB 0, 0, 0
+
RGB 18, 31, 15
RGB 28, 5, 31
RGB 17, 0, 17
RGB 0, 0, 0
+
RGB 18, 31, 15
RGB 9, 9, 9
RGB 4, 4, 4
RGB 0, 0, 0
+
RGB 18, 31, 15
RGB 31, 13, 21
RGB 27, 7, 12
RGB 0, 0, 0
+
RGB 18, 31, 15
RGB 21, 20, 20
RGB 14, 14, 31
diff --git a/misc/mobile_45.asm b/misc/mobile_45.asm
index 006a135f1..de5cccb31 100644
--- a/misc/mobile_45.asm
+++ b/misc/mobile_45.asm
@@ -5662,7 +5662,7 @@ Function1161d5: ; 1161d5
ld [rSVBK], a
ld hl, Unknown_117356
- ld de, w6_d000
+ ld de, wDecompressScratch
ld bc, $0300
call CopyBytes
@@ -5755,9 +5755,9 @@ Function1161d5: ; 1161d5
ld [MusicFade], a
ld de, MUSIC_MOBILE_ADAPTER
ld a, e
- ld [wc2a9], a
+ ld [MusicFadeIDLo], a
ld a, d
- ld [wc2aa], a
+ ld [MusicFadeIDHi], a
ld a, [wc314 + 5]
inc a
ld [wc314 + 5], a
@@ -5781,13 +5781,13 @@ Function116294: ; 116294
push af
ld a, $5
ld [rSVBK], a
- ld hl, wd030
+ ld hl, UnknBGPals + 8 * 6
ld de, wc314 + 12
- ld bc, $0010
+ ld bc, 2 palettes
call CopyBytes
ld hl, Palette_11734e
ld de, UnknBGPals + 8 * 7
- ld bc, $0008
+ ld bc, 1 palettes
call CopyBytes
call SetPalettes
pop af
@@ -5807,8 +5807,8 @@ Function1162cb: ; 1162cb
ld a, $5
ld [rSVBK], a
ld hl, Palette_11730e
- ld de, wd050
- ld bc, $0030
+ ld de, UnknOBPals + 2 palettes
+ ld bc, 6 palettes
call CopyBytes
call SetPalettes
pop af
@@ -5821,7 +5821,7 @@ Function1162f2: ; 1162f2
call Function116758
call Function1167a6
ld a, [wc310]
- cp $fd
+ cp EGG
ret z
sla a
ld c, a
@@ -5934,10 +5934,10 @@ Function11636e: ; 11636e
callba ReloadMapPart
ld a, $8
ld [MusicFade], a
- ld a, [wc2c0]
- ld [wc2a9], a
+ ld a, [wMapMusic]
+ ld [MusicFadeIDLo], a
xor a
- ld [wc2aa], a
+ ld [MusicFadeIDHi], a
xor a
ld [wc314 + 5], a
ld [wc30d], a
@@ -5955,7 +5955,7 @@ Function1163c0: ; 1163c0
call ByteFill
call DelayFrame
callba Function14146
- ld b, SCGB_09
+ ld b, SCGB_MAPPALS
call GetSGBLayout
ld a, [rSVBK]
push af
@@ -5981,19 +5981,19 @@ Function1163c0: ; 1163c0
jr z, .asm_11642a
ld a, $8
ld [MusicFade], a
- ld a, [wc2c0]
- ld [wc2a9], a
+ ld a, [wMapMusic]
+ ld [MusicFadeIDLo], a
xor a
- ld [wc2aa], a
+ ld [MusicFadeIDHi], a
jr .asm_116439
.asm_11642a
ld a, $8
ld [MusicFade], a
ld a, $0
- ld [wc2a9], a
+ ld [MusicFadeIDLo], a
ld a, $0
- ld [wc2aa], a
+ ld [MusicFadeIDHi], a
.asm_116439
xor a
@@ -6009,10 +6009,10 @@ Function116441: ; 116441
callba ReloadMapPart
ld a, $8
ld [MusicFade], a
- ld a, [wc2c0]
- ld [wc2a9], a
+ ld a, [wMapMusic]
+ ld [MusicFadeIDLo], a
xor a
- ld [wc2aa], a
+ ld [MusicFadeIDHi], a
xor a
ld [wc314 + 5], a
ld [wc30d], a
@@ -7712,7 +7712,7 @@ Function117699: ; 117699 (45:7699)
call ClearSprites
callba Function171c87
callba ReloadMapPart
- callba Function8cf53
+ callba ClearSpriteAnims
ret
Function1176ee: ; 1176ee (45:76ee)
@@ -7721,11 +7721,11 @@ Function1176ee: ; 1176ee (45:76ee)
bit 7, a
jr nz, .asm_117709
call Function117719
- callba Function8cf69
+ callba PlaySpriteAnimations
callba ReloadMapPart
jr Function1176ee
.asm_117709
- callba Function8cf53
+ callba ClearSpriteAnims
call ClearBGPalettes
call ClearScreen
call ClearSprites
diff --git a/misc/mobile_46.asm b/misc/mobile_46.asm
index 836da4fa0..43810dc89 100755
--- a/misc/mobile_46.asm
+++ b/misc/mobile_46.asm
@@ -486,10 +486,10 @@ Function1183cb: ; 1183cb
ld a, $f
ld [rIE], a
ld a, $1
- ld [hFFC9], a
+ ld [hMobileReceive], a
ld [hMobile], a
ei
- callba Function106462
+ callba MobileFunc_106462
callba Function106464
callba Function115d99
callba Function11615a
@@ -516,7 +516,7 @@ Function118440: ; 118440
Function118452: ; 118452
di
xor a
- ld [hFFC9], a
+ ld [hMobileReceive], a
ld [hMobile], a
ld [hVBlank], a
call NormalSpeed
@@ -1071,7 +1071,7 @@ Function11878d: ; 11878d (46:478d)
set 0, [hl]
ld a, $6
ld [rSVBK], a
- ld de, UnknBGPals
+ ld de, w3_d000
ld bc, $1000
ld a, [hl]
sla a
@@ -1295,7 +1295,7 @@ Function118936:
ld a, $40
or [hl]
ld [hl], a
- call Function3200
+ call WaitBGMap2
ld a, $1
ld [wcd4f], a
ld a, $1
@@ -1466,7 +1466,7 @@ Function118a65: ; 118a65
ld de, wcc60
ld bc, $80
call CopyBytes
- ld de, UnknBGPals
+ ld de, w3_d000
ld bc, $1000
jp Function118b10
; 118a7a
@@ -1476,7 +1476,7 @@ Function118a7a: ; 118a7a
ld de, wcc60
ld bc, $80
call CopyBytes
- ld de, UnknBGPals
+ ld de, w3_d000
ld bc, $1000
jp Function118b10
; 118a8f
@@ -1486,7 +1486,7 @@ Function118a8f: ; 118a8f
ld de, wcc60
ld bc, $80
call CopyBytes
- ld de, UnknBGPals
+ ld de, w3_d000
ld bc, $1000
jp Function118b10
; 118aa4
@@ -1498,7 +1498,7 @@ Function118aa4: ; 118aa4
call CopyBytes
ld a, $5
ld [rSVBK], a
- ld de, LYOverrides
+ ld de, w3_d100
ld bc, $e00
jr Function118b10
; 118abc
@@ -1508,7 +1508,7 @@ Function118abc: ; 118abc (46:4abc)
ld de, wcc60
ld bc, $80
call CopyBytes
- ld de, UnknBGPals
+ ld de, w3_d000
ld bc, $1000
jr Function118b10
; 118ad0 (46:4ad0)
@@ -1518,7 +1518,7 @@ Function118ad0:
ld de, wcc60
ld bc, $80
call CopyBytes
- ld de, UnknBGPals
+ ld de, w3_d000
ld bc, $1000
jr Function118b10
@@ -1663,7 +1663,8 @@ IndexDownloadURL: ; 0x118ce5
Function118d35: ; 118d35
- ld hl, LYOverridesBackup
+; unreferenced
+ ld hl, $d200
ld a, [wcd38]
and a
jr nz, .asm_118d6e
@@ -1739,7 +1740,7 @@ asm_118d9f
ld [wcd3b], a
.asm_118db7
- ld hl, $d800
+ ld hl, w3_d800
ld a, $8
ld [hli], a
ld a, $c6
@@ -1760,7 +1761,7 @@ asm_118d9f
call Function119ec2
ld a, $40
ld [wcd89], a
- ld hl, $d800
+ ld hl, w3_d800
ld de, $de00
ld bc, $0200
ld a, $2c
@@ -1894,7 +1895,7 @@ Function118e92: ; 118e92
ld de, wcc60
call Function1191ad
ret c
- ld de, $d800
+ ld de, w3_d800
ld bc, $0800
jp Function118b10
; 118eb0
@@ -2105,7 +2106,7 @@ Function119009:
ld a, $40
ld [wcd89], a
ld hl, wc314 + 48 + 2
- ld de, UnknBGPals
+ ld de, w3_d000
ld bc, $1000
ld a, $2c
jp Function119e2b
@@ -2119,9 +2120,9 @@ Function119054: ; 119054
ld e, a
ld a, [wcd50]
ld d, a
- ld a, [UnknBGPals]
+ ld a, [w3_d000]
ld c, a
- ld a, [wd001]
+ ld a, [w3_d000 + 1]
ld b, a
call Function119192
ret c
@@ -2131,9 +2132,9 @@ Function119054: ; 119054
ld a, $6
ld [rSVBK], a
ld hl, wd002
- ld a, [UnknBGPals]
+ ld a, [w3_d000]
ld c, a
- ld a, [wd001]
+ ld a, [w3_d000 + 1]
ld b, a
call Function119192
ret c
@@ -2178,7 +2179,7 @@ Function1190d0: ; 1190d0
ld de, wcc60
call Function1191ad
ret c
- ld de, UnknBGPals
+ ld de, w3_d000
ld bc, $1000
jp Function118b10
; 1190ec
@@ -2198,9 +2199,9 @@ Function1190ec: ; 1190ec
call CloseSRAM
ld a, $6
call GetSRAMBank
- ld a, [UnknBGPals]
+ ld a, [w3_d000]
ld c, a
- ld a, [wd001]
+ ld a, [w3_d000 + 1]
ld b, a
ld hl, wd002
ld de, $a000
@@ -2211,9 +2212,9 @@ Function1190ec: ; 1190ec
jr z, .asm_11913e
ld a, $6
ld [rSVBK], a
- ld a, [UnknBGPals]
+ ld a, [w3_d000]
ld c, a
- ld a, [wd001]
+ ld a, [w3_d000 + 1]
ld b, a
ld hl, wd002
call Function119192
@@ -2330,7 +2331,7 @@ Function1191ad: ; 1191ad
; 1191d3
Function1191d3: ; 1191d3
- ld hl, wd102
+ ld hl, w3_d100 + 2
ld a, l
ld [wcd53], a
ld a, h
@@ -2678,7 +2679,7 @@ Function1193fb:
ld a, $8
ld [wcd3c], a
call Function119ed8
- ld de, UnknBGPals
+ ld de, w3_d000
ld bc, $1000
jp Function118b10
; 119413
@@ -2686,9 +2687,9 @@ Function1193fb:
Function119413: ; 119413
ld a, $6
call GetSRAMBank
- ld a, [UnknBGPals]
+ ld a, [w3_d000]
ld c, a
- ld a, [wd001]
+ ld a, [w3_d000 + 1]
ld b, a
rept 2
dec bc
@@ -2707,7 +2708,7 @@ endr
ld [rSVBK], a
ld a, [wd000]
ld c, a
- ld a, [wd001]
+ ld a, [w3_d000 + 1]
ld b, a
ld hl, wd002
call Function119192
@@ -3043,7 +3044,7 @@ Function119648: ; 119648 (46:5648)
ld [wcd3c], a
call Function119ed8
call Function118b24
- ld de, UnknBGPals
+ ld de, w3_d000
ld bc, $1000
ld a, $2a
jp Function119e2b
@@ -3338,7 +3339,7 @@ Function1197dc:
xor a
ld [de], a
call Function118b24
- ld de, UnknBGPals
+ ld de, w3_d000
ld bc, $1000
ld a, $2a
jp Function119e2b
@@ -3347,7 +3348,7 @@ Function1197dc:
Function119800: ; 119800
ld a, $fd
ld [$c6d0], a
- ld [wc702], a
+ ld [wOTTrademonSpecies], a
ld a, [wcd81]
ld [wc74e], a
ld a, [wJumptableIndex]
@@ -3459,7 +3460,7 @@ Function1198f7:
ret nz
ld hl, $c608 + 2
call Function119940
- ld hl, $d800
+ ld hl, w3_d800
ld a, $c608 % $100
ld [hli], a
ld a, $c608 / $100
@@ -3480,7 +3481,7 @@ Function1198f7:
call Function119ec2
ld a, $40
ld [wcd89], a
- ld hl, $d800
+ ld hl, w3_d800
ld de, $de00
ld bc, $0200
ld a, $2c
@@ -3536,15 +3537,15 @@ Function119973: ; 119973
ld [wcf64], a
xor a
ld [wcf65], a
- ld [StringBuffer2 + 10], a
- ld de, UnknBGPals
+ ld [w3_d090], a
+ ld de, w3_d000
ld a, $20
jp Function119e2b
; 119987
Function119987: ; 119987
- ld hl, wd001
- ld a, [UnknBGPals]
+ ld hl, w3_d000 + 1
+ ld a, [w3_d000]
or [hl]
jr z, .asm_1199a0
ld a, [wcf64]
@@ -3556,7 +3557,7 @@ Function119987: ; 119987
jp Function119e2b
.asm_1199a0
- ld a, [StringBuffer2 + 10]
+ ld a, [w3_d090]
and a
jr z, .asm_1199ae
ld a, $16
@@ -3590,7 +3591,7 @@ Function1199ca: ; 1199ca
ld l, a
ld a, [wcf65]
ld h, a
- ld de, LYOverrides
+ ld de, w3_d100
ld bc, $0700
ld a, $28
jp Function119e2b
@@ -3694,27 +3695,27 @@ Function1199e2: ; 1199e2
jp Function119b45
.asm_119aaf
- ld a, [StringBuffer2 + 10]
+ ld a, [w3_d090]
and a
jr nz, .asm_119aa7
- ld a, [wd000 + $895]
+ ld a, [w3_d895]
sub $30
- ld [StringBuffer2 + 10], a
+ ld [w3_d090], a
ld a, [wcf64]
- ld [StringBuffer2 + 11], a
+ ld [w3_d090 + 1], a
ld a, [wcf65]
- ld [StringBuffer2 + 12], a
+ ld [w3_d090 + 2], a
Function119ac9:
- ld a, [UnknBGPals]
+ ld a, [w3_d000]
ld l, a
- ld a, [wd001]
+ ld a, [w3_d000 + 1]
ld h, a
dec hl
ld a, l
- ld [UnknBGPals], a
+ ld [w3_d000], a
ld a, h
- ld [wd001], a
+ ld [w3_d000 + 1], a
ld a, [wcf64]
ld l, a
ld a, [wcf65]
@@ -3738,7 +3739,7 @@ Function119b0d: ; 119b0d
ld a, $8
ld [wcd3c], a
call Function119ed8
- ld a, [StringBuffer2 + 10]
+ ld a, [w3_d090]
cp $1
jr z, .asm_119b23
ld a, $19
@@ -3748,19 +3749,19 @@ Function119b0d: ; 119b0d
.asm_119b23
ld a, $10
ld [wcd89], a
- ld a, [StringBuffer2 + 11]
+ ld a, [w3_d090 + 1]
ld l, a
- ld a, [StringBuffer2 + 12]
+ ld a, [w3_d090 + 2]
ld h, a
- ld de, LYOverrides
+ ld de, w3_d100
ld bc, $0700
ld a, $24
jp Function119e2b
Function119b3b:
- ld a, [StringBuffer2 + 11]
+ ld a, [w3_d090 + 1]
ld l, a
- ld a, [StringBuffer2 + 12]
+ ld a, [w3_d090 + 2]
ld h, a
jr asm_119b4d
@@ -3776,7 +3777,7 @@ asm_119b4d
; 119b52
Function119b52: ; 119b52
- ld a, [StringBuffer2 + 10]
+ ld a, [w3_d090]
cp $1
jr nz, .asm_119b66
ld a, $5
@@ -3791,19 +3792,19 @@ Function119b52: ; 119b52
; 119b6b
Function119b6b: ; 119b6b
- ld a, [StringBuffer2 + 10]
+ ld a, [w3_d090]
cp $1
jr z, .asm_119b75
jp Function119e2e
.asm_119b75
- ld a, [LYOverrides]
+ ld a, [w3_d100]
ld b, a
- ld a, [wd101]
+ ld a, [w3_d100 + 1]
or b
jr z, .asm_119be3
- ld hl, $d800
- ld de, wd102
+ ld hl, w3_d800
+ ld de, w3_d100 + 2
.asm_119b85
ld a, [de]
inc de
@@ -3887,7 +3888,7 @@ endr
ld [$a800], a
call CloseSRAM
xor a
- ld [StringBuffer2 + 10], a
+ ld [w3_d090], a
ret
.asm_119bfa
@@ -3896,10 +3897,10 @@ endr
cp $d
jr nz, .asm_119b93
ld a, l
- cp (wd000 + $800 + $69) % $100
+ cp (w3_d869) % $100
jr nz, .asm_119be3
ld a, h
- cp (wd000 + $800 + $69) / $100
+ cp (w3_d869) / $100
jr nz, .asm_119be3
ld a, $5
call GetSRAMBank
@@ -3907,14 +3908,14 @@ endr
ld [$b090], a
ld a, [wcf65]
ld [$b091], a
- ld hl, $d800
+ ld hl, w3_d800
ld de, $b023
ld bc, $0069
call CopyBytes
ld a, $3
ld [$a800], a
call CloseSRAM
- ld hl, $d800
+ ld hl, w3_d800
ld de, $c608
ld bc, $0069
call CopyBytes
@@ -3953,7 +3954,7 @@ Function119c3e: ; 119c3e
ld [$a800], a
call CloseSRAM
xor a
- ld [StringBuffer2 + 10], a
+ ld [w3_d090], a
scf
ret
@@ -4108,7 +4109,7 @@ Function119d93: ; 119d93 (46:5d93)
ld bc, PARTYMON_STRUCT_LENGTH
ld de, PartyMon1Level
ld a, [PartyCount]
-.asm_119daf
+.party_loop
push af
ld a, [de]
push hl
@@ -4119,17 +4120,18 @@ Function119d93: ; 119d93 (46:5d93)
pop de
pop hl
cp [hl]
- jr z, .asm_119dbd
- jr nc, .asm_119dc6
-.asm_119dbd
+ jr z, .equal
+ jr nc, .exceeds
+.equal
pop af
dec a
- jr nz, .asm_119daf
+ jr nz, .party_loop
pop af
ld [rSVBK], a
and a
ret
-.asm_119dc6
+
+.exceeds
pop af
ld a, $4
ld [wcf66], a
@@ -4143,40 +4145,41 @@ Function119dd1: ; 119dd1 (46:5dd1)
push af
ld a, [wcd4f]
cp 70 / 10
- jr nc, .asm_119e08
+ jr nc, .level_70_or_more
ld a, $1
ld [rSVBK], a
ld hl, PartyMon1Level
ld bc, PARTYMON_STRUCT_LENGTH
ld de, PartySpecies
ld a, [PartyCount]
-.asm_119deb
+.loop
push af
ld a, [de]
cp MEWTWO
- jr z, .asm_119dfd
+ jr z, .uber
cp MEW
- jr z, .asm_119dfd
+ jr z, .uber
cp LUGIA
- jr c, .asm_119e02
+ jr c, .next
cp NUM_POKEMON + 1
- jr nc, .asm_119e02
-.asm_119dfd
+ jr nc, .next
+.uber
ld a, [hl]
cp 70
- jr c, .asm_119e0d
-.asm_119e02
+ jr c, .uber_under_70
+.next
add hl, bc
inc de
pop af
dec a
- jr nz, .asm_119deb
-.asm_119e08
+ jr nz, .loop
+.level_70_or_more
pop af
ld [rSVBK], a
and a
ret
-.asm_119e0d
+
+.uber_under_70
pop af
ld a, [de]
ld [wd265], a
@@ -4210,7 +4213,7 @@ Unknown_119e40:
Function119e4f: ; 119e4f
push bc
- ld hl, LYOverrides
+ ld hl, w3_d100
ld a, [hli]
ld c, a
ld a, [hli]
@@ -4529,7 +4532,7 @@ Function11a00e: ; 11a00e
ld a, $3
ld [rSVBK], a
ld hl, $c608
- ld de, $d800
+ ld de, w3_d800
ld bc, $00f6
call CopyBytes
ld a, $1
@@ -4539,7 +4542,7 @@ Function11a00e: ; 11a00e
call Function11a9ce
ld a, $3
ld [rSVBK], a
- ld hl, $d800
+ ld hl, w3_d800
ld de, $c608
ld bc, $00f6
call CopyBytes
@@ -4560,10 +4563,10 @@ Function11a00e: ; 11a00e
ld [wMenuBorderRightCoord], a
ld a, $5
ld [wMenuBorderBottomCoord], a
- call BackUpTiles
+ call PushWindow
callba Function11765d
callba Function117ab4
- callba Function106462
+ callba MobileFunc_106462
callba Function106464
call ExitMenu
callba ReloadMapPart
@@ -4583,10 +4586,10 @@ Function11a0ca: ; 11a0ca
ld [wMenuBorderRightCoord], a
ld a, $11
ld [wMenuBorderBottomCoord], a
- call BackUpTiles
+ call PushWindow
callba Function11765d
callba Function17d3f6
- callba Function106462
+ callba MobileFunc_106462
callba Function106464
call ExitMenu
callba ReloadMapPart
@@ -5267,7 +5270,7 @@ Function11a5b9: ; 11a5b9
ld [wMenuBorderRightCoord], a
ld a, $5
ld [wMenuBorderBottomCoord], a
- call BackUpTiles
+ call PushWindow
hlcoord 0, 0, AttrMap
ld b, $6
ld c, $14
@@ -5293,7 +5296,7 @@ Function11a5f5: ; 11a5f5
ld [wMenuBorderTopCoord], a
ld a, $a
ld [wMenuBorderBottomCoord], a
- call BackUpTiles
+ call PushWindow
hlcoord 14, 6, AttrMap
ld b, $5
ld c, $6
@@ -5687,11 +5690,11 @@ Function11a9c0: ; 11a9c0
Function11a9ce: ; 11a9ce
call ClearBGPalettes
- call Function2bae
+ call ReloadTilesetAndPalettes
call Call_ExitMenu
- callba Function106462
+ callba MobileFunc_106462
callba Function106464
- call Functiond90
+ call ret_d90
callba Function2b5c
call UpdateSprites
ret
@@ -5844,9 +5847,9 @@ UnknownText_0x11ac1f: ; 0x11ac1f
Function11ac3e: ; 11ac3e
call SpeechTextBox
call FadeToMenu
- callab ClearSpriteAnims
+ callab ClearSpriteAnims2
call Function11ac51
- call ReturnToCallingMenu
+ call CloseSubmenu
ret
; 11ac51
@@ -5882,9 +5885,9 @@ Function11ac51: ; 11ac51
call Function11b314
call Function11acb7
call Function11ad6e
- ld a, $78
- ld [wc3b5], a
- callba Function8cf7a
+ ld a, 30 * 4
+ ld [wCurrSpriteOAMAddr], a
+ callba DoNextFrameForAllSprites
callba ReloadMapPart
jr .asm_11ac82
@@ -5958,12 +5961,12 @@ Function11ad1b: ; 11ad1b
call ClearSprites
call ClearTileMap
callba Function17c000
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld [wcd82], a
dec a
ld [hObjectStructIndexBuffer], a
ld a, $10
- ld [wc3b7], a
+ ld [wCurIconTile], a
ld hl, Function8e83f
ld a, BANK(Function8e83f)
ld e, $4
@@ -5984,7 +5987,7 @@ Function11ad1b: ; 11ad1b
ld [wcd30], a
ld a, $2
ld [wc7d4], a
- callba Function40bdc
+ callba Pokedex_ChangeMode
ret
; 11ad6e
@@ -6027,12 +6030,12 @@ Function11ad95: ; 11ad95
ld de, String_11ae40
call PlaceString
hlcoord 10, 10, AttrMap
- ld bc, $0808
+ lb bc, 8, 8
call Function11afd6
callba ReloadMapPart
call Function11ad8a
ld a, $1
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
ld hl, Unknown_11afcc
call Function11afb7
@@ -6059,13 +6062,13 @@ Function11adc4:
jr .asm_11ae2e
.asm_11ade6
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
ret z
jr .asm_11adf4
.asm_11aded
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
inc a
cp $4
ret z
@@ -6075,21 +6078,21 @@ Function11adc4:
ld hl, Unknown_11afcc
call Function11afbb
pop af
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
ld hl, Unknown_11afcc
call Function11afb7
ret
.asm_11ae06
call PlayClickSFX
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
ld hl, wcd30
ld [hl], a
and a
jr z, .asm_11ae28
hlcoord 2, 14
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp $2
jr z, .asm_11ae23
call Function11b272
@@ -6149,7 +6152,7 @@ Function11ae4e: ; 11ae4e
callba ReloadMapPart
call Function11ad8a
ld a, $1
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
ld hl, Unknown_11afd2
call Function11afb7
@@ -6180,13 +6183,13 @@ Function11ae98:
jr .asm_11aef7
.asm_11aec1
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
ret z
jr .asm_11aecf
.asm_11aec8
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
inc a
cp $3
ret z
@@ -6196,14 +6199,14 @@ Function11ae98:
ld hl, Unknown_11afd2
call Function11afbb
pop af
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
ld hl, Unknown_11afd2
call Function11afb7
ret
.asm_11aee1
call PlayClickSFX
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp $2
jr z, .asm_11aeb4
ld a, [wcd4b]
@@ -6240,7 +6243,7 @@ Function11af04: ; 11af04
callba ReloadMapPart
call Function11ad8a
ld a, $2
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
ld hl, Unknown_11afd2
call Function11afb7
@@ -6271,13 +6274,13 @@ Function11af4e:
jr .asm_11afaa
.asm_11af77
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
ret z
jr .asm_11af85
.asm_11af7e
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
inc a
cp $3
ret z
@@ -6287,14 +6290,14 @@ Function11af4e:
ld hl, Unknown_11afd2
call Function11afbb
pop af
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
ld hl, Unknown_11afd2
call Function11afb7
ret
.asm_11af97
call PlayClickSFX
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp $2
jr z, .asm_11af6a
ld a, $6
@@ -6317,7 +6320,7 @@ Function11afbb:
ld e, $7f
asm_11afbd:
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
ld c, a
ld b, 0
@@ -6343,20 +6346,20 @@ Unknown_11afd2:
; 11afd6
Function11afd6: ; 11afd6
- ld de, $0014
+ ld de, SCREEN_WIDTH
ld a, $3
-.asm_11afdb
+.row
push bc
push hl
-.asm_11afdd
+.col
ld [hli], a
dec c
- jr nz, .asm_11afdd
+ jr nz, .col
pop hl
add hl, de
pop bc
dec b
- jr nz, .asm_11afdb
+ jr nz, .row
ret
; 11afe8
@@ -6413,55 +6416,55 @@ Function11b03d: ; 11b03d
push hl
push af
ld c, $1
-.asm_11b041
+.loop
ld a, [hli]
- cp $ef
- jr z, .asm_11b051
- cp $f5
- jr z, .asm_11b051
- cp $50
- jr z, .asm_11b055
+ cp "♂"
+ jr z, .gender
+ cp "♀"
+ jr z, .gender
+ cp "@"
+ jr z, .done
inc c
- jr .asm_11b041
+ jr .loop
-.asm_11b051
+.gender
dec hl
- ld a, $50
+ ld a, "@"
ld [hli], a
-.asm_11b055
+.done
dec hl
push hl
- ld e, $4
- ld d, $0
+ ld e, 4
+ ld d, 0
add hl, de
ld e, l
ld d, h
pop hl
-.asm_11b05f
+.loop2
ld a, [hld]
ld [de], a
dec de
dec c
- jr nz, .asm_11b05f
+ jr nz, .loop2
pop af
pop de
cp $1
- jr nz, .asm_11b070
- ld hl, String_11b07a
- jr .asm_11b073
+ jr nz, .female
+ ld hl, .MaleString
+ jr .got_string
-.asm_11b070
- ld hl, String_11b07e
+.female
+ ld hl, .FemaleString
-.asm_11b073
- ld bc, 4
+.got_string
+ ld bc, 4 ; string length
call CopyBytes
ret
; 11b07a
-String_11b07a: db "ォスの "
-String_11b07e: db "メスの "
+.MaleString: db "ォスの "
+.FemaleString: db "メスの "
Function11b082: ; 11b082
call Function11b242
@@ -6485,36 +6488,38 @@ Function11b099: ; 11b099
ld a, [wc7d0]
ld e, a
ld d, $0
- ld hl, $c6d0
+ ld hl, wc6d0
add hl, de
ld e, l
ld d, h
hlcoord 11, 2
ld a, [wc7d3]
-.asm_11b0b9
+.loop
push af
ld a, [de]
ld [wd265], a
push de
push hl
- call Function11b0cf
+ call .PlaceMonNameOrPlaceholderString
pop hl
- ld de, $0028
+ ld de, 2 * SCREEN_WIDTH
add hl, de
pop de
inc de
pop af
dec a
- jr nz, .asm_11b0b9
+ jr nz, .loop
ret
; 11b0cf
-Function11b0cf: ; 11b0cf
+.PlaceMonNameOrPlaceholderString: ; 11b0cf
and a
ret z
- call Function11b0ec
+
+ call .CheckSeenFlag
ret c
- call Function11b0e1
+
+ call .SetCaughtFlag
push hl
call GetPokemonName
pop hl
@@ -6522,29 +6527,30 @@ Function11b0cf: ; 11b0cf
ret
; 11b0e1
-Function11b0e1: ; 11b0e1
- call Function11b21e
- jr nz, .asm_11b0e8
+.SetCaughtFlag: ; 11b0e1
+ call CheckCaughtMemMon
+ jr nz, .okay
inc hl
ret
-.asm_11b0e8
+.okay
ld a, $1
ld [hli], a
ret
; 11b0ec
-Function11b0ec: ; 11b0ec
- call Function11b22a
+.CheckSeenFlag: ; 11b0ec
+ call CheckSeenMemMon
ret nz
+
inc hl
- ld de, String_11b0f9
+ ld de, .EmptySlot
call PlaceString
scf
ret
; 11b0f9
-String_11b0f9: ; 11b0f9
+.EmptySlot: ; 11b0f9
db "ーーーーー@"
; 11b0ff
@@ -6580,7 +6586,7 @@ Function11b0ff: ; 11b0ff
.asm_11b131
call Function11b20b
- call Function11b22a
+ call CheckSeenMemMon
jr z, .asm_11b13d
ld a, $1
jr .asm_11b148
@@ -6764,7 +6770,7 @@ Function11b20b: ; 11b20b
ret
; 11b21e
-Function11b21e: ; 11b21e
+CheckCaughtMemMon: ; 11b21e
push de
push hl
ld a, [wd265]
@@ -6775,7 +6781,7 @@ Function11b21e: ; 11b21e
ret
; 11b22a
-Function11b22a: ; 11b22a
+CheckSeenMemMon: ; 11b22a
push de
push hl
ld a, [wd265]
@@ -6846,7 +6852,7 @@ Function11b275: ; 11b275
Function11b279: ; 11b279
ld a, [wd265]
ld [CurSpecies], a
- call Function11b22a
+ call CheckSeenMemMon
jr z, .asm_11b28f
call GetBaseData
ld a, [BaseGender]
@@ -6869,7 +6875,7 @@ Function11b295: ; 11b295
ld de, String_11b308
call PlaceString
call Function11b20b
- call Function11b22a
+ call CheckSeenMemMon
jr z, .asm_11b2d1
ld a, [$c608]
ld c, a
@@ -6882,7 +6888,7 @@ Function11b295: ; 11b295
ld hl, $0003
add hl, bc
ld e, [hl]
- callba Function8e9bc
+ callba FlyFunction_GetMonIcon
hlcoord 4, 14
push hl
call GetPokemonName
@@ -6943,53 +6949,106 @@ Function11b314: ; 11b314
; 11b31b
Function11b31b: ; 11b31b
- ld hl, Unknown_11b350
+ ld hl, .Coords
ld a, [wJumptableIndex]
- cp $2
- jr c, .asm_11b349
+ cp 2
+ jr c, .tilemap_1
ld a, [wc7d1]
- cp $4
- jr nc, .asm_11b344
- cp $3
- jr c, .asm_11b349
+ cp 4
+ jr nc, .tilemap_3
+ cp 3
+ jr c, .tilemap_1
ld a, [wJumptableIndex]
- cp $2
- jr z, .asm_11b349
- cp $3
- jr z, .asm_11b349
- cp $6
- jr z, .asm_11b349
+ cp 2
+ jr z, .tilemap_1
+ cp 3
+ jr z, .tilemap_1
+ cp 6
+ jr z, .tilemap_1
- ld bc, Unknown_11b37b
- jr .asm_11b34c
+ ld bc, .Tilemap2
+ jr .load_sprites
-.asm_11b344
- ld bc, Unknown_11b389
- jr .asm_11b34c
+.tilemap_3
+ ld bc, .Tilemap3
+ jr .load_sprites
-.asm_11b349
- ld bc, Unknown_11b36d
+.tilemap_1
+ ld bc, .Tilemap1
-.asm_11b34c
+.load_sprites
call Function11b397
ret
; 11b350
-Unknown_11b350:
- db $1a, $5e, $1a, $66, $1a, $6e, $1a, $76, $1a, $7e, $1a, $86, $1a, $8e
- db $22, $5e, $22, $66, $22, $6e, $22, $76, $22, $7e, $22, $86, $22, $8e
- db $ff
-
-Unknown_11b36d:
- db $30, $31, $31, $31, $31, $31, $32, $40, $41, $41, $41, $41, $41, $42
-Unknown_11b37b:
- db $30, $31, $31, $39, $39, $39, $39, $40, $41, $41, $39, $39, $39, $39
-Unknown_11b389:
- db $39, $39, $39, $39, $39, $39, $39, $39, $39, $39, $39, $39, $39, $39
+.Coords:
+ dbpixel 3, 11, 2, 6 ; 0
+ dbpixel 3, 12, 2, 6 ; 1
+ dbpixel 3, 13, 2, 6 ; 2
+ dbpixel 3, 14, 2, 6 ; 3
+ dbpixel 3, 15, 2, 6 ; 4
+ dbpixel 3, 16, 2, 6 ; 5
+ dbpixel 3, 17, 2, 6 ; 6
+ dbpixel 4, 11, 2, 6 ; 7
+ dbpixel 4, 12, 2, 6 ; 8
+ dbpixel 4, 13, 2, 6 ; 9
+ dbpixel 4, 14, 2, 6 ; 10
+ dbpixel 4, 15, 2, 6 ; 11
+ dbpixel 4, 16, 2, 6 ; 12
+ dbpixel 4, 17, 2, 6 ; 13
+ db -1
+
+.Tilemap1: ; vtiles
+ db $30 ; 0
+ db $31 ; 1
+ db $31 ; 2
+ db $31 ; 3
+ db $31 ; 4
+ db $31 ; 5
+ db $32 ; 6
+ db $40 ; 7
+ db $41 ; 8
+ db $41 ; 9
+ db $41 ; 10
+ db $41 ; 11
+ db $41 ; 12
+ db $42 ; 13
+
+.Tilemap2: ; vtiles
+ db $30 ; 0
+ db $31 ; 1
+ db $31 ; 2
+ db $39 ; 3
+ db $39 ; 4
+ db $39 ; 5
+ db $39 ; 6
+ db $40 ; 7
+ db $41 ; 8
+ db $41 ; 9
+ db $39 ; 10
+ db $39 ; 11
+ db $39 ; 12
+ db $39 ; 13
+
+.Tilemap3: ; vtiles
+ db $39 ; 0
+ db $39 ; 1
+ db $39 ; 2
+ db $39 ; 3
+ db $39 ; 4
+ db $39 ; 5
+ db $39 ; 6
+ db $39 ; 7
+ db $39 ; 8
+ db $39 ; 9
+ db $39 ; 10
+ db $39 ; 11
+ db $39 ; 12
+ db $39 ; 13
Function11b397: ; 11b397
ld de, Sprites
-.asm_11b39a
+.loop
ld a, [hl]
cp $ff
ret z
@@ -6997,26 +7056,29 @@ Function11b397: ; 11b397
and $7
swap a
add [hl]
- inc hl
+ inc hl ; 1
ld [de], a
inc de
- ld a, [hli]
+
+ ld a, [hli] ; 2
ld [de], a
inc de
+
ld a, [bc]
inc bc
ld [de], a
inc de
- ld a, $5
+ ld a, $5 ; OBPal 5
ld [de], a
inc de
- jr .asm_11b39a
+ jr .loop
; 11b3b6
Function11b3b6: ; 11b3b6
-.asm_11b3b6
+; unreferenced
+.loop
ld a, [hl]
- cp $ff
+ cp -1
ret z
ld a, [wcd4d]
and $7
@@ -7040,11 +7102,11 @@ Function11b3b6: ; 11b3b6
ld a, $5
ld [de], a
inc de
- jr .asm_11b3b6
+ jr .loop
; 11b3d9
Function11b3d9: ; 11b3d9
- ld de, Sprites + $70
+ ld de, Sprites + 28 * 4
push de
ld a, [wc7d2]
dec a
@@ -7053,51 +7115,51 @@ Function11b3d9: ; 11b3d9
ld hl, wc7d0
add [hl]
cp e
- jr z, .asm_11b40d
+ jr z, .skip
ld hl, 0
- ld bc, $0070
+ ld bc, $70
call AddNTimes
ld e, l
ld d, h
- ld b, $0
+ ld b, 0
ld a, d
or e
- jr z, .asm_11b40f
+ jr z, .load_sprites
ld a, [wc7d2]
ld c, a
-.asm_11b401
+.loop1
ld a, e
sub c
ld e, a
ld a, d
sbc $0
ld d, a
- jr c, .asm_11b40f
+ jr c, .load_sprites
inc b
- jr .asm_11b401
+ jr .loop1
-.asm_11b40d
- ld b, $70
+.skip
+ ld b, 14 * 8
-.asm_11b40f
- ld a, $15
+.load_sprites
+ ld a, 2 * 8 + 5
add b
pop hl
ld [hli], a
cp $41
- jr c, .asm_11b42b
+ jr c, .version1
ld a, [wJumptableIndex]
- cp $4
- jr z, .asm_11b43b
- cp $5
- jr z, .asm_11b43b
- cp $7
- jr z, .asm_11b43b
- cp $8
- jr z, .asm_11b43b
-
-.asm_11b42b
- ld a, $9b
+ cp 4
+ jr z, .version2
+ cp 5
+ jr z, .version2
+ cp 7
+ jr z, .version2
+ cp 8
+ jr z, .version2
+
+.version1
+ ld a, 19 * 8 + 3
ld [hli], a
ld a, [wcd4c]
add $3c
@@ -7107,8 +7169,8 @@ Function11b3d9: ; 11b3d9
ld [hl], a
ret
-.asm_11b43b
- ld a, $9b
+.version2
+ ld a, 19 * 8 + 3
ld [hli], a
ld a, $39
ld [hli], a
@@ -7134,12 +7196,12 @@ Function11b44b: ; 11b44b
; 11b45c
Function11b45c: ; 11b45c
-.asm_11b45c
+.loop
call Function11b46a
call DelayFrame
ld a, [wJumptableIndex]
- cp $4
- jr nz, .asm_11b45c
+ cp 4
+ jr nz, .loop
ret
; 11b46a
@@ -7162,14 +7224,14 @@ Jumptable_11b479: ; 11b479
dw Function11b570
dw Function11b5c0
dw Function11b5e0
- dw Function11b5e7
+ dw Function11b5e7 ; unused
; 11b483
Function11b483: ; 11b483
call Function11b538
ld hl, PlayerName
- ld a, $5
-.asm_11b48b
+ ld a, $5 ; Japanese Name Length
+.loop1
push af
ld a, [hli]
ld [bc], a
@@ -7177,23 +7239,24 @@ Function11b483: ; 11b483
pop af
dec a
and a
- jr nz, .asm_11b48b
- ld de, $0030
+ jr nz, .loop1
+
+ ld de, PARTYMON_STRUCT_LENGTH
ld hl, PartyMon1Species
ld a, [wcd82]
dec a
push af
-.asm_11b49f
+.loop2
and a
- jr z, .asm_11b4a6
+ jr z, .okay
add hl, de
dec a
- jr .asm_11b49f
+ jr .loop2
-.asm_11b4a6
+.okay
push bc
- ld a, $30
-.asm_11b4a9
+ ld a, PARTYMON_STRUCT_LENGTH
+.loop3
push af
ld a, [hli]
ld [bc], a
@@ -7201,24 +7264,25 @@ Function11b483: ; 11b483
pop af
dec a
and a
- jr nz, .asm_11b4a9
+ jr nz, .loop3
+
pop de
push bc
ld a, [de]
ld [CurSpecies], a
call GetBaseData
- ld hl, $001f
+ ld hl, MON_LEVEL
add hl, de
ld a, [hl]
ld [CurPartyLevel], a
- ld hl, $0024
+ ld hl, MON_MAXHP
add hl, de
push hl
- ld hl, $000a
+ ld hl, MON_STAT_EXP - 1
add hl, de
pop de
push de
- ld b, $1
+ ld b, OTPARTYMON
predef CalcPkmnStats
pop de
ld h, d
@@ -7232,20 +7296,20 @@ endr
ld a, [de]
ld [hl], a
pop bc
- ld de, $000b
+ ld de, NAME_LENGTH
ld hl, PartyMonOT
pop af
push af
-.asm_11b4e8
+.loop4
and a
- jr z, .asm_11b4ef
+ jr z, .okay2
add hl, de
dec a
- jr .asm_11b4e8
+ jr .loop4
-.asm_11b4ef
- ld a, $a
-.asm_11b4f1
+.okay2
+ ld a, NAME_LENGTH - 1
+.loop5
push af
ld a, [hli]
ld [bc], a
@@ -7253,21 +7317,21 @@ endr
pop af
dec a
and a
- jr nz, .asm_11b4f1
- ld de, $000b
+ jr nz, .loop5
+ ld de, NAME_LENGTH
ld hl, PartyMonNicknames
pop af
push af
-.asm_11b502
+.loop6
and a
- jr z, .asm_11b509
+ jr z, .okay3
add hl, de
dec a
- jr .asm_11b502
+ jr .loop6
-.asm_11b509
- ld a, $a
-.asm_11b50b
+.okay3
+ ld a, NAME_LENGTH - 1
+.loop7
push af
ld a, [hli]
ld [bc], a
@@ -7275,22 +7339,22 @@ endr
pop af
dec a
and a
- jr nz, .asm_11b50b
- ld de, $002f
- ld hl, $a600
+ jr nz, .loop7
+ ld de, MAIL_STRUCT_LENGTH
+ ld hl, sPartyMail
pop af
-.asm_11b51b
+.loop8
and a
- jr z, .asm_11b522
+ jr z, .okay4
add hl, de
dec a
- jr .asm_11b51b
+ jr .loop8
-.asm_11b522
- ld a, $0
+.okay4
+ ld a, $0 ; BANK(sPartyMail)
call GetSRAMBank
- ld a, $2f
-.asm_11b529
+ ld a, MAIL_STRUCT_LENGTH
+.loop9
push af
ld a, [hli]
ld [bc], a
@@ -7298,38 +7362,45 @@ endr
pop af
dec a
and a
- jr nz, .asm_11b529
+ jr nz, .loop9
call CloseSRAM
jp Function11ad8a
; 11b538
Function11b538: ; 11b538
- ld bc, BattleMonNick + 5
+ ld bc, wc626
ld a, [PlayerID]
ld [wcd2a], a
ld [bc], a
inc bc
+
ld a, [PlayerID + 1]
ld [wcd2b], a
ld [bc], a
inc bc
+
ld a, [wSecretID]
ld [wcd2c], a
ld [bc], a
inc bc
+
ld a, [wSecretID + 1]
ld [wcd2d], a
ld [bc], a
inc bc
+
ld a, [wcd2e]
ld [bc], a
inc bc
+
ld a, [wcd2f]
ld [bc], a
inc bc
+
ld a, [wcd30]
ld [bc], a
inc bc
+
ld a, [wd265]
ld [bc], a
inc bc
@@ -7340,11 +7411,11 @@ Function11b570: ; 11b570
call Function118007
ld a, [ScriptVar]
and a
- jr nz, .asm_11b57f
+ jr nz, .exit
call Function11b585
jp Function11ad8a
-.asm_11b57f
+.exit
ld a, $4
ld [wJumptableIndex], a
ret
@@ -7353,9 +7424,9 @@ Function11b570: ; 11b570
Function11b585: ; 11b585
ld a, $3
ld [rSVBK], a
- ld hl, $d800
+ ld hl, w3_d800
ld de, $c608
- ld bc, $008f
+ ld bc, w3_d88f - w3_d800
call CopyBytes
ld a, $1
ld [rSVBK], a
@@ -7366,7 +7437,7 @@ Function11b585: ; 11b585
ld [de], a
inc de
ld hl, $c608
- ld bc, $008f
+ ld bc, w3_d88f - w3_d800
call CopyBytes
push de
pop hl
@@ -7387,8 +7458,8 @@ Function11b5c0: ; 11b5c0
dec a
ld [CurPartyMon], a
xor a
- ld [wd10b], a
- callba Functione039
+ ld [wPokemonWithdrawDepositParameter], a
+ callba RemoveMonFromPartyOrBox
callba Function170807
callba Function14a58
jp Function11ad8a
@@ -7480,7 +7551,7 @@ Function11b66d: ; 11b66d
push af
ld a, $3
ld [rSVBK], a
- ld a, [StringBuffer2 + 10]
+ ld a, [w3_d090]
ld b, a
pop af
ld [rSVBK], a
@@ -7504,7 +7575,7 @@ Function11b66d: ; 11b66d
ld a, $3
ld [rSVBK], a
ld a, $2
- ld [StringBuffer2 + 10], a
+ ld [w3_d090], a
pop af
ld [rSVBK], a
@@ -7523,26 +7594,32 @@ Function11b6b4: ; 11b6b4
ld [wc708], a
ld a, [wcd31]
ld [wc709], a
- ld a, $8
- ld [BGMapBuffer], a
- ld a, $c7
+
+ ld a, $c708 % $100
+ ld [wcd20], a
+ ld a, $c708 / $100
ld [wcd21], a
- ld a, $d
- ld [CreditsTimer], a
- ld a, $c6
+
+ ld a, $c60d % $100 ; Partymon Struct
+ ld [wcd22], a
+ ld a, $c60d / $100
ld [wcd23], a
- ld a, $3d
+
+ ld a, $c63d % $100 ; OT
ld [wcd24], a
- ld a, $c6
+ ld a, $c63d / $100
ld [wcd25], a
- ld a, $42
+
+ ld a, $c642 % $100 ; Nickname
ld [wcd26], a
- ld a, $c6
+ ld a, $c642 / $100
ld [wcd27], a
- ld a, $47
+
+ ld a, $c647 % $100 ; ???
ld [wcd28], a
- ld a, $c6
+ ld a, $c647 / $100
ld [wcd29], a
+
ld a, $46
ld [$c628], a
ld de, $c63d
@@ -7622,22 +7699,22 @@ Function11b6b4: ; 11b6b4
ld a, [hl]
cp MIN_LEVEL
ld a, MIN_LEVEL
- jr c, .asm_11b7c5
+ jr c, .replace_level
ld a, [hl]
cp MAX_LEVEL
- jr c, .asm_11b7c6
+ jr c, .done_level
ld a, MAX_LEVEL
-.asm_11b7c5
+.replace_level
ld [hl], a
-.asm_11b7c6
+.done_level
ld [CurPartyLevel], a
- ld hl, $c616 + 1
- ld de, $c62c + 5
+ ld hl, $c617
+ ld de, $c631
ld b, $1
predef CalcPkmnStats
- ld de, $c62c + 5
- ld hl, $c62c + 3
+ ld de, $c631
+ ld hl, $c62f
ld a, [de]
ld [hli], a
inc de
@@ -7648,36 +7725,36 @@ Function11b6b4: ; 11b6b4
; 11b7e5
Function11b7e5: ; 11b7e5
- ld a, [$c608 + 5]
- ld [wc702], a
+ ld a, [$c60d] ; species
+ ld [wOTTrademonSpecies], a
ld [CurPartySpecies], a
ld a, [wcd81]
ld [wc74e], a
- ld hl, $c63d
- ld de, wc724
- ld bc, $0005
+ ld hl, $c63d ; OT
+ ld de, wOTTrademonOTName
+ ld bc, $5
call CopyBytes
- ld a, $50
+ ld a, "@"
ld [de], a
- ld a, [$c608 + 11]
- ld [wEnemyWrapCount], a
- ld a, [$c608 + 12]
- ld [wPlayerCharging], a
- ld hl, $c608 + 26
+ ld a, [$c613] ; id
+ ld [wOTTrademonID], a
+ ld a, [$c613 + 1]
+ ld [wOTTrademonID + 1], a
+ ld hl, $c622 ; dvs
ld a, [hli]
- ld [wEnemyTrappingMove], a
+ ld [wOTTrademonDVs], a
ld a, [hl]
- ld [wPlayerWrapCount], a
- ld bc, $c608 + 5
+ ld [wOTTrademonDVs + 1], a
+ ld bc, $c60d ; pokemon_data_start
callba GetCaughtGender
ld a, c
- ld [wEnemyCharging], a
+ ld [wOTTrademonCaughtData], a
call SpeechTextBox
call FadeToMenu
callba Function108016
callba Function17d1f1
ld a, $1
- ld [wd1e9], a
+ ld [wForceEvolution], a
ld a, $2
ld [wLinkMode], a
callba EvolvePokemon
@@ -7701,13 +7778,13 @@ Function11b7e5: ; 11b7e5
ld [de], a
.asm_11b872
- call ReturnToCallingMenu
+ call CloseSubmenu
call RestartMapMusic
ret
; 11b879
Function11b879: ; 11b879
- callba Function17089a
+ callba BattleTower_CheckSaveFileExistsAndIsYours
ld a, [ScriptVar]
and a
ret z
diff --git a/misc/mobile_5b.asm b/misc/mobile_5b.asm
index 19d192aeb..735297e8b 100755
--- a/misc/mobile_5b.asm
+++ b/misc/mobile_5b.asm
@@ -184,7 +184,7 @@ Function16c130: ; 16c130
ld bc, 8
ld a, $5
call FarCopyWRAM
- callba Function96a4
+ callba ApplyPals
ret
; 16c145
@@ -362,7 +362,7 @@ endr
ld a, e
cp $8
jr nz, .asm_16c969
- callba Function96a4
+ callba ApplyPals
call SetPalettes
ld a, [rSVBK]
push af
@@ -392,7 +392,7 @@ Function16ca11: ; 16ca11
ld a, [wd003]
and a
jr nz, .asm_16ca1d
- callba Function96a4
+ callba ApplyPals
.asm_16ca1d
ld a, [rSVBK]
@@ -465,7 +465,7 @@ endr
ld a, e
cp $8
jr nz, .asm_16ca28
- callba Function96a4
+ callba ApplyPals
call SetPalettes
ld a, [rSVBK]
push af
@@ -711,14 +711,14 @@ Function16cbd1: ; 16cbd1
ld hl, Unknown_16cbfb
add hl, bc
ld a, [hl]
- ld bc, $0002
+ ld bc, 2
ld hl, Unknown_16cfa3
call AddNTimes
- ld de, wd00c
- ld bc, $0002
+ ld de, UnknBGPals + 1 palettes + 4
+ ld bc, 2
ld a, $5
call FarCopyWRAM
- callba Function96a4
+ callba ApplyPals
ld a, $1
ld [hCGBPalUpdate], a
ret
@@ -749,19 +749,19 @@ Function16cc18: ; 16cc18
Function16cc25: ; 16cc25
ld hl, Unknown_16cfa9
- ld de, wd008
- call Function16cc41
+ ld de, UnknBGPals + 1 palettes
+ call .CopyPal
ld hl, Unknown_16cfb1
ld de, UnknOBPals
- call Function16cc41
+ call .CopyPal
ld hl, Unknown_16cfb9
- ld de, wd048
- call Function16cc41
+ ld de, UnknOBPals + 1 palettes
+ call .CopyPal
ret
; 16cc41
-Function16cc41: ; 16cc41
- ld bc, $0008
+.CopyPal: ; 16cc41
+ ld bc, 1 palettes
ld a, $5
jp FarCopyWRAM
; 16cc49
@@ -863,374 +863,3 @@ Unknown_16cfb9:
RGB 07, 07, 07
; 16cfc1
-
-GFX_16cfc1:
-INCBIN "gfx/unknown/16cfc1.2bpp"
-
-Function16d421: ; 16d421
- ld de, GFX_16cfc1
- ld hl, VTiles2
- lb bc, BANK(GFX_16cfc1), $46
- call Get2bpp
- ret
-; 16d42e
-
-Function16d42e: ; 16d42e
- ld hl, Tilemap_16d465
- decoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- call CopyBytes
- ret
-; 16d43b
-
-Function16d43b: ; 16d43b
- call LoadStandardMenuDataHeader
- call ClearBGPalettes
- call ClearTileMap
- call ClearSprites
- callba Function16d421
- callba Function16d42e
- ld b, SCGB_08
- call GetSGBLayout
- call SetPalettes
- call WaitBGMap
- call JoyWaitAorB
- call Call_ExitMenu
- ret
-; 16d465
-
-Tilemap_16d465:
-INCBIN "gfx/unknown/16d465.tilemap"
-
-Tilemap_16d5cd:
-INCBIN "gfx/unknown/16d5cd.tilemap"
-
-Tilemap_16d5f5:
-INCBIN "gfx/unknown/16d5f5.tilemap"
-
-Function16d61d: ; 16d61d
- ld h, d
- ld l, e
- push bc
- push hl
- call Function16d640
- pop hl
- pop bc
- ld de, AttrMap - TileMap
- add hl, de
-rept 2
- inc b
-endr
-rept 2
- inc c
-endr
- ld a, $7
-.loop
- push bc
- push hl
-.loop2
- ld [hli], a
- dec c
- jr nz, .loop2
- pop hl
- ld de, SCREEN_WIDTH
- add hl, de
- pop bc
- dec b
- jr nz, .loop
- ret
-; 16d640
-
-Function16d640: ; 16d640
- push hl
- ld a, $30
- ld [hli], a
- inc a
- call Function16d66d
- inc a
- ld [hl], a
- pop hl
- ld de, SCREEN_WIDTH
- add hl, de
-.loop
- push hl
- ld a, $33
- ld [hli], a
- ld a, " "
- call Function16d66d
- ld [hl], $34
- pop hl
- ld de, SCREEN_WIDTH
- add hl, de
- dec b
- jr nz, .loop
- ld a, $35
- ld [hli], a
- ld a, $36
- call Function16d66d
- ld [hl], $37
- ret
-; 16d66d
-
-Function16d66d: ; 16d66d
- ld d, c
-.loop
- ld [hli], a
- dec d
- jr nz, .loop
- ret
-; 16d673
-
-Function16d673: ; 16d673
- call Function16d696
- call Function16d6ae
- callba Function49856
- callba Functionfb60d
- hlcoord 10, 17
- ld de, String_16d68f
- call PlaceString
- ret
-; 16d68f
-
-String_16d68f: ; 16d68f
- db "CANCEL@"
-; 16d696
-
-Function16d696: ; 16d696
- call Function16d421
- ret
-; 16d69a
-
-
-Function16d69a: ; 16d69a
- ld de, GFX_16cfc1 + $300
- ld hl, VTiles2 tile $76
- lb bc, BANK(GFX_16cfc1), 8
- call Get2bpp
- ret
-; 16d6a7
-
-Function16d6a7: ; 16d6a7
- callba Function49811
- ret
-; 16d6ae
-
-Function16d6ae: ; 16d6ae
- call Function16d42e
- ld hl, Tilemap_16d5cd
- decoord 0, 0
- ld bc, $0028
- call CopyBytes
- ld hl, Tilemap_16d5f5
- decoord 0, 16
- ld bc, $0028
- call CopyBytes
- ret
-; 16d6ca
-
-LinkTextbox: ; 16d6ca
- call Function16d61d
- ret
-; 16d6ce
-
-Function16d6ce: ; 16d6ce
- call LoadStandardMenuDataHeader
- call Function16d6e1
- callba Function87d
- call Call_ExitMenu
- call Function3200
- ret
-; 16d6e1
-
-Function16d6e1: ; 16d6e1
- hlcoord 4, 10
- ld b, 1
- ld c, 10
- predef Predef_LinkTextbox
- hlcoord 5, 11
- ld de, .Waiting
- call PlaceString
- call WaitBGMap
- call Function3200
- ld c, $32
- jp DelayFrames
-; 16d701
-
-.Waiting: ; 16d701
- db "WAITING..!@"
-; 16d70c
-
-Function16d70c: ; 16d70c
- call Function16d725
- call Function16d713
- ret
-; 16d713
-
-Function16d713: ; 16d713
- push bc
- push af
- ld a, [hJoyLast]
- and $f0
- ld b, a
- ld a, [hJoyPressed]
- and $f
- or b
- ld b, a
- pop af
- ld a, b
- pop bc
- ld d, a
- ret
-; 16d725
-
-Function16d725: ; 16d725
- ld hl, wcfa6
- res 7, [hl]
- ld a, [hBGMapMode]
- push af
- call Function16d734
- pop af
- ld [hBGMapMode], a
- ret
-; 16d734
-
-Function16d734: ; 16d734
-.asm_16d734
- call Function16d77a
- call Function16d759
- call Function16d76a
- jr nc, .asm_16d758
- callba Function24270
- jr c, .asm_16d758
- ld a, [wcfa5]
- bit 7, a
- jr nz, .asm_16d758
- call Function16d713
- ld b, a
- ld a, [wcfa8]
- and b
- jr z, .asm_16d734
-
-.asm_16d758
- ret
-; 16d759
-
-Function16d759: ; 16d759
- ld a, [hOAMUpdate]
- push af
- ld a, $1
- ld [hOAMUpdate], a
- call WaitBGMap
- pop af
- ld [hOAMUpdate], a
- xor a
- ld [hBGMapMode], a
- ret
-; 16d76a
-
-Function16d76a: ; 16d76a
-.asm_16d76a
- call RTC
- call Function16d7e7
- ret c
- ld a, [wcfa5]
- bit 7, a
- jr z, .asm_16d76a
- and a
- ret
-; 16d77a
-
-Function16d77a: ; 16d77a
- ld hl, wcfac
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [hl]
- cp $1f
- jr nz, .asm_16d792
- ld a, [wcfab]
- ld [hl], a
- push hl
- push bc
- ld bc, $000b
- add hl, bc
- ld [hl], a
- pop bc
- pop hl
-
-.asm_16d792
- ld a, [wcfa1]
- ld b, a
- ld a, [wcfa2]
- ld c, a
- call Coord2Tile
- ld a, [wcfa7]
- swap a
- and $f
- ld c, a
- ld a, [MenuSelection2]
- ld b, a
- xor a
- dec b
- jr z, .asm_16d7b1
-.asm_16d7ad
- add c
- dec b
- jr nz, .asm_16d7ad
-
-.asm_16d7b1
- ld c, $14
- call AddNTimes
- ld a, [wcfa7]
- and $f
- ld c, a
- ld a, [wcfaa]
- ld b, a
- xor a
- dec b
- jr z, .asm_16d7c8
-.asm_16d7c4
- add c
- dec b
- jr nz, .asm_16d7c4
-
-.asm_16d7c8
- ld c, a
- add hl, bc
- ld a, [hl]
- cp $1f
- jr z, .asm_16d7de
- ld [wcfab], a
- ld [hl], $1f
- push hl
- push bc
- ld bc, $000b
- add hl, bc
- ld [hl], $1f
- pop bc
- pop hl
-
-.asm_16d7de
- ld a, l
- ld [wcfac], a
- ld a, h
- ld [wcfad], a
- ret
-; 16d7e7
-
-Function16d7e7: ; 16d7e7
- ld a, [wcfa5]
- bit 6, a
- jr z, .asm_16d7f4
- callba Function8cf62
-
-.asm_16d7f4
- call JoyTextDelay
- call Function16d713
- and a
- ret z
- scf
- ret
-; 16d7fe
-
-
diff --git a/misc/mobile_5c.asm b/misc/mobile_5c.asm
index ebebb302c..321ea9382 100755
--- a/misc/mobile_5c.asm
+++ b/misc/mobile_5c.asm
@@ -34,6 +34,7 @@ Function170000: ; 170000
ld bc, $008f
call CopyBytes
ret
+
; 17005a
Function17005a: ; 17005a
@@ -71,85 +72,11 @@ Function17005a: ; 17005a
ld [wc74e], a
call CloseSRAM
ret
+
; 1700b0
INCLUDE "misc/battle_tower_5c.asm"
-Function_LoadOpponentTrainerAndPokemonsWithOTSprite: ; 0x170b44
- callba Function_LoadOpponentTrainerAndPokemons
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
- ld hl, wd10a
- ld a, [hl]
- dec a
- ld c, a
- ld b, $0
- pop af
- ld [rSVBK], a
- ld hl, Unknown_170b90
- add hl, bc
- ld a, [hl]
- ld [wcd49], a
-
-; Load sprite of the opponent trainer
-; because s/he is chosen randomly and appears out of nowhere
- ld a, [ScriptVar]
- dec a
- sla a
- ld e, a
- sla a
- sla a
- sla a
- ld c, a
- ld b, $0
- ld d, $0
- ld hl, MapObjects
- add hl, bc
- inc hl
- ld a, [wcd49]
- ld [hl], a
- ld hl, UsedSprites
- add hl, de
- ld [hli], a
- ld [hUsedSpriteIndex], a
- ld a, [hl]
- ld [hUsedSpriteTile], a
- callba GetUsedSprite
- ret
-; 170b90
-
-Unknown_170b90:
- db $12, $13, $14, $15, $18, $17
- db $16, $19, $04, $05, $11, $01
- db $1c, $1b, $21, $1e, $1a, $1d
- db $1f, $3c, $20, $27, $27, $27
- db $28, $0a, $23, $24, $2a, $2b
- db $35, $40, $2a, $29, $22, $25
- db $3a, $2b, $24, $49, $2b, $07
- db $2c, $2d, $4a, $0d, $4b, $3a
- db $2b, $41, $35, $27, $28, $27
- db $36, $3e, $30, $2c, $2d, $3d
- db $26, $2e, $06, $07, $43, $36
-
-Function170bd2: ; 170bd2
- ret
-; 170bd3
-
-SpecialCheckForBattleTowerRules: ; 170bd3
- callba CheckForBattleTowerRules
- jr c, .asm_170bde
- xor a
- jr .asm_170be0
-
-.asm_170bde
- ld a, $1
-
-.asm_170be0
- ld [ScriptVar], a
- ret
-; 170be4
Function170be4: ; 170be4
ld a, $5
call GetSRAMBank
@@ -159,6 +86,7 @@ Function170be4: ; 170be4
call ByteFill
call CloseSRAM
ret
+
; 170bf7
Clears5_a89a: ; 170bf7
@@ -170,6 +98,7 @@ Clears5_a89a: ; 170bf7
ld [hl], a
call CloseSRAM
ret
+
; 170c06
Function170c06: ; 170c06
@@ -275,6 +204,7 @@ endr
ld [hl], a
call CloseSRAM
ret
+
; 170c8b
Function170c8b: ; 170c8b
@@ -287,6 +217,7 @@ Function170c8b: ; 170c8b
dec b
jr nz, .asm_170c90
ret
+
; 170c98
CheckBTMonMovesForErrors: ; 170c98
@@ -330,6 +261,7 @@ CheckBTMonMovesForErrors: ; 170c98
dec c
jr nz, .loop
ret
+
; 170cc6
Function170cc6: ; 170cc6
@@ -338,7 +270,7 @@ Function170cc6: ; 170cc6
ld a, $6
ld [rSVBK], a
ld hl, LZ_170d16
- ld de, wd000
+ ld de, wDecompressScratch
call Decompress
ld a, $1
ld [rVBK], a
@@ -358,6 +290,7 @@ Function170cc6: ; 170cc6
pop af
ld [rSVBK], a
ret
+
; 170d02
Function170d02: ; 170d02
@@ -370,6 +303,7 @@ Function170d02: ; 170d02
xor a
ld [rVBK], a
ret
+
; 170d16
LZ_170d16:
@@ -413,20 +347,21 @@ Function1719ed: ; 1719ed (5c:59ed)
call ClearSprites
callba Function171d2b
callba ReloadMapPart
- callba Function8cf53
+ callba ClearSpriteAnims
ret
Function171a11: ; 171a11 (5c:5a11)
+.loop
call JoyTextDelay
ld a, [wcd49]
bit 7, a
- jr nz, .asm_171a2c
+ jr nz, .done
call Function171a36
- callba Function8cf69
+ callba PlaySpriteAnimations
callba ReloadMapPart
- jr Function171a11
-.asm_171a2c
- callba Function8cf53
+ jr .loop
+.done
+ callba ClearSpriteAnims
call ClearSprites
ret
@@ -465,6 +400,7 @@ Function171a5d: ; 171a5d (5c:5a5d)
bit 0, a
ret nz
jp Function171c66
+
.asm_171a6a
ld a, $0
call Function3e32
@@ -492,6 +428,7 @@ Function171a95: ; 171a95 (5c:5a95)
ld de, String_171aa7
call PlaceString
jp Function171c66
+
; 171aa7 (5c:5aa7)
String_171aa7: ; 171aa7
@@ -626,6 +563,7 @@ Function171b9f: ; 171b9f (5c:5b9f)
ld a, $80
ld [wcd49], a
ret
+
asm_171ba5: ; 171ba5 (5c:5ba5)
ld a, [wcd4a]
and a
@@ -633,6 +571,7 @@ asm_171ba5: ; 171ba5 (5c:5ba5)
dec a
ld [wcd4a], a
ret
+
asm_171baf: ; 171baf (5c:5baf)
ld a, [wcd4b]
ld c, a
@@ -715,7 +654,7 @@ Function171c41: ; 171c41 (5c:5c41)
dec [hl]
ret nz
call ClearBGPalettes
- callba Function106462
+ callba MobileFunc_106462
callba Function106464
ld a, $2
ld [wc303], a
@@ -729,6 +668,7 @@ Function171c66: ; 171c66 (5c:5c66)
ld hl, wcd49
inc [hl]
ret
+
; 171c6b (5c:5c6b)
MenuDataHeader_171c6b: ; 171c6b
@@ -807,6 +747,7 @@ endr
hlcoord 3, 16
ld de, String_172e3f
jp PlaceString
+
.asm_171d16
ld hl, Tilemap_1725f9
decoord 0, 7
@@ -841,6 +782,7 @@ Function171d2b: ; 171d2b (5c:5d2b)
ld de, String_172e58
call PlaceString
ret
+
; 171d71 (5c:5d71)
Palette_171d71:
@@ -931,6 +873,7 @@ Function172e78: ; 172e78 (5c:6e78)
ld bc, $168
call CopyBytes
ret
+
; 172eb9 (5c:6eb9)
Function172eb9:
@@ -950,6 +893,7 @@ Function172eb9:
pop af
ld [rSVBK], a
ret
+
; 172edf (5c:6edf)
Palette_172edf:
diff --git a/misc/mobile_5f.asm b/misc/mobile_5f.asm
index 19c3748e8..2c1972c1a 100644
--- a/misc/mobile_5f.asm
+++ b/misc/mobile_5f.asm
@@ -274,35 +274,35 @@ CheckStringForErrors_IgnoreTerminator: ; 17d0b3
Function17d0f3: ; 17d0f3
ld a, [$c608 + 5]
- ld [wc702], a
+ ld [wOTTrademonSpecies], a
ld [CurPartySpecies], a
ld a, [wcd81]
ld [wc74e], a
ld hl, $c63d
- ld de, wc724
- ld bc, $0005
+ ld de, wOTTrademonOTName
+ ld bc, 5
call CopyBytes
- ld a, $50
+ ld a, "@"
ld [de], a
ld a, [$c608 + 11]
- ld [wEnemyWrapCount], a
+ ld [wOTTrademonID], a
ld a, [$c608 + 12]
- ld [wPlayerCharging], a
+ ld [wOTTrademonID + 1], a
ld hl, $c608 + 26
ld a, [hli]
- ld [wEnemyTrappingMove], a
+ ld [wOTTrademonDVs], a
ld a, [hl]
- ld [wPlayerWrapCount], a
+ ld [wOTTrademonDVs + 1], a
ld bc, $c608 + 5
callba GetCaughtGender
ld a, c
- ld [wEnemyCharging], a
+ ld [wOTTrademonCaughtData], a
call SpeechTextBox
call FadeToMenu
callba Function10804d
callba Function17d1f1
ld a, $1
- ld [wd1e9], a
+ ld [wForceEvolution], a
ld a, $2
ld [wLinkMode], a
callba EvolvePokemon
@@ -326,7 +326,7 @@ Function17d0f3: ; 17d0f3
ld [de], a
.asm_17d180
- call ReturnToCallingMenu
+ call CloseSubmenu
call RestartMapMusic
ret
; 17d187
@@ -418,12 +418,12 @@ Function17d1f1: ; 17d1f1
call AddNTimes
predef GetUnownLetter
callab UpdateUnownDex
- ld a, [wdef4]
+ ld a, [wFirstUnownSeen]
and a
jr nz, .asm_17d223
ld a, [UnownLetter]
- ld [wdef4], a
+ ld [wFirstUnownSeen], a
.asm_17d223
ret
@@ -461,20 +461,20 @@ Special_Menu_ChallengeExplanationCancel: ; 17d224
; 17d246
Function17d246: ; 17d246
- call InterpretMenu2
+ call VerticalMenu
jr c, .Exit
ld a, [ScriptVar]
cp $5
- jr nz, .UseMenuSelection2
- ld a, [MenuSelection2]
+ jr nz, .UsewMenuCursorY
+ ld a, [wMenuCursorY]
cp $3
ret z
- jr c, .UseMenuSelection2
+ jr c, .UsewMenuCursorY
dec a
jr .LoadToScriptVar
-.UseMenuSelection2
- ld a, [MenuSelection2]
+.UsewMenuCursorY
+ ld a, [wMenuCursorY]
.LoadToScriptVar
ld [ScriptVar], a
@@ -564,7 +564,7 @@ Function17d2ce: ; 17d2ce
ld [MusicFadeIDHi], a
call PlayMusic
call ReturnToMapFromSubmenu
- call ReturnToCallingMenu
+ call CloseSubmenu
ret
; 17d314
@@ -802,7 +802,7 @@ Function17d48d: ; 17d48d
jr z, .asm_17d4e0
ld a, e
ld [wcd6c], a
- ld [wc2c0], a
+ ld [wMapMusic], a
ld d, $0
call PlayMusic2
@@ -1933,16 +1933,16 @@ Function17dc1f: ; 17dc1f
ld [wEnemyGoesFirst], a
ld hl, wc708
call LoadMenuDataHeader
- call InterpretMenu2
+ call VerticalMenu
jr nc, .asm_17dc6e
ld a, $2
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
.asm_17dc6e
call WriteBackup
pop af
ld [rSVBK], a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp $1
jr nz, .asm_17dc85
ld a, [$c68a]
diff --git a/misc/mobile_menu.asm b/misc/mobile_menu.asm
new file mode 100755
index 000000000..0286921c2
--- /dev/null
+++ b/misc/mobile_menu.asm
@@ -0,0 +1,882 @@
+MainMenu_Mobile: ; 49efc
+ call ClearBGPalettes
+ ld a, MUSIC_MOBILE_ADAPTER_MENU
+ ld [wMapMusic], a
+ ld de, MUSIC_MOBILE_ADAPTER_MENU
+ call Function4a6c5
+Function49f0a: ; 49f0a
+ call ClearBGPalettes
+ call Function4a3a7
+ call Function4a492
+ call ClearBGPalettes
+Function49f16: ; 49f16
+ call MobileMenu_InitMenuBuffers
+ ld c, 12
+ call DelayFrames
+ hlcoord 4, 0
+ ld b, 10
+ ld c, 10
+ call Function48cdc
+ hlcoord 6, 2
+ ld de, MobileString1
+ call PlaceString
+ hlcoord 0, 12
+ ld b, 4
+ ld c, SCREEN_HEIGHT
+ call TextBox
+ xor a
+ ld de, String_0x49fe9
+ hlcoord 1, 14
+ call PlaceString
+ call WaitBGMap2
+ call SetPalettes
+ call StaticMenuJoypad
+ ld hl, wMenuCursorY
+ ld b, [hl]
+ push bc
+ jr .check_buttons
+
+.joy_loop
+ call ScrollingMenuJoypad
+ ld hl, wMenuCursorY
+ ld b, [hl]
+ push bc
+
+.check_buttons
+ bit A_BUTTON_F, a
+ jr nz, .a_button
+ bit B_BUTTON_F, a
+ jr nz, .b_button
+ jr .next
+
+.a_button
+ ld hl, wMenuCursorY
+ ld a, [hl]
+ cp 1
+ jp z, Function4a098
+ cp 2
+ jp z, Function4a0b9
+ cp 3
+ jp z, Function4a0c2
+ cp 4
+ jp z, Function4a100
+ ld a, 1
+ call MenuClickSound
+.b_button
+ pop bc
+ call ClearBGPalettes
+ call ClearTileMap
+ ld a, MUSIC_MAIN_MENU
+ ld [wMapMusic], a
+ ld de, MUSIC_MAIN_MENU
+ call Function4a6c5
+ ret
+
+.next
+ ld hl, wMenuCursorY
+ ld a, [hl]
+ dec a
+ ld hl, MobileStrings2
+ call GetNthString
+ ld d, h
+ ld e, l
+ hlcoord 1, 13
+ ld b, 4
+ ld c, SCREEN_HEIGHT
+ call ClearBox
+ hlcoord 1, 14
+ call PlaceString
+ jp .useless_jump
+
+.useless_jump
+ call MobileMenu_InitMenuBuffers
+ pop bc
+ ld hl, wMenuCursorY
+ ld [hl], b
+ ld b, $a
+ ld c, $1
+ hlcoord 5, 1
+ call ClearBox
+ jp .joy_loop
+; 49fcc
+
+
+MobileString1: ; 49fcc
+ db "めいしフ,ルダー"
+ next "あいさつ"
+ next "プロフィール"
+ next "せ", $1e, "い"
+ next "もどる"
+ db "@"
+; 49fe9
+
+
+MobileStrings2:
+
+String_0x49fe9: ; 49fe9
+ db "めいし¯つくったり"
+ next "ほぞんしておける フ,ルダーです@"
+; 4a004
+
+String_0x4a004: ; 4a004
+ db "モバイルたいせんや じぶんのめいしで"
+ next "つかう あいさつ¯つくります@"
+; 4a026
+
+String_0x4a026: ; 4a026
+ db "あなた%じゅうしょや ねんれいの"
+ next "せ", $1e, "い¯かえられます@"
+; 4a042
+
+String_0x4a042: ; 4a042
+ db "モバイルセンター", $1d, "せつぞくするとき"
+ next "ひつような こと¯きめます@"
+; 4a062
+
+String_0x4a062: ; 4a062
+ db "まえ%がめん ", $1d, "もどります"
+ next "@"
+; 4a071
+
+MobileMenu_InitMenuBuffers: ; 4a071 (12:6071)
+ ld hl, w2DMenuCursorInitY
+ ld a, 2
+ ld [hli], a
+ ld a, 5 ; w2DMenuCursorInitX
+ ld [hli], a
+ ld a, 5 ; w2DMenuNumRows
+ ld [hli], a
+ ld a, 1 ; w2DMenuNumCols
+ ld [hli], a
+ ld [hl], $0 ; w2DMenuFlags1
+ set 5, [hl]
+ inc hl
+ xor a ; w2DMenuFlags2
+ ld [hli], a
+ ld a, $20 ; w2DMenuCursorOffsets
+ ld [hli], a
+ ; this is a stupid way to load $c3
+ ld a, A_BUTTON
+ add D_UP
+ add D_DOWN
+ add B_BUTTON
+ ld [hli], a ; wMenuJoypadFilter
+ ld a, 1
+rept 2
+ ld [hli], a ; wMenuCursorY, wMenuCursorX
+endr
+ ret
+
+Function4a098: ; 4a098 (12:6098)
+ ld a, 2
+ call MenuClickSound
+ call PlaceHollowCursor
+ call WaitBGMap
+ call LoadStandardMenuDataHeader
+ callba Function89de0
+ call Call_ExitMenu
+ call MG_Mobile_Layout_LoadPals
+ call Function4a485
+ pop bc
+ jp Function49f16
+
+Function4a0b9: ; 4a0b9 (12:60b9)
+ ld a, 2
+ call MenuClickSound
+ pop bc
+ jp Function4a4c4
+
+Function4a0c2: ; 4a0c2 (12:60c2)
+ ld a, 2
+ call MenuClickSound
+ ld a, BANK(sPlayerData)
+ call GetSRAMBank
+ ld hl, sPlayerData + PlayerName - wPlayerData
+ ld de, PlayerName
+ ld bc, 6 ; japanese name length
+ call CopyBytes
+ call CloseSRAM
+ callba _LoadData
+ ld c, 2
+ call DelayFrames
+ ld c, $1
+ call InitMobileProfile
+ push af
+ call ClearBGPalettes
+ pop af
+ and a
+ jr nz, .skip_save
+ callba _SaveData
+.skip_save
+ ld c, 5
+ call DelayFrames
+ jr asm_4a111
+
+Function4a100: ; 4a100 (12:6100)
+ ld a, 2
+ call MenuClickSound
+ call ClearBGPalettes
+ call Function4a13b
+ call ClearBGPalettes
+ call ClearTileMap
+
+asm_4a111: ; 4a111 (12:6111)
+ pop bc
+ call LoadFontsExtra
+ jp Function49f0a
+
+Function4a118: ; 4a118 (12:6118)
+ ld hl, w2DMenuCursorInitY
+ ld a, $1
+ ld [hli], a
+ ld a, $d
+ ld [hli], a
+ ld a, $3
+ ld [hli], a
+ ld a, $1
+ ld [hli], a
+ ld [hl], $0
+ set 5, [hl]
+ inc hl
+ xor a
+ ld [hli], a
+ ld a, $20
+ ld [hli], a
+ ld a, $1
+ add $2
+ ld [hli], a
+ ld a, $1
+rept 2
+ ld [hli], a
+endr
+ ret
+
+Function4a13b: ; 4a13b (12:613b)
+ call Function4a3a7
+ call Function4a492
+ call Function4a373
+ ld c, 10
+ call DelayFrames
+
+Function4a149: ; 4a149 (12:6149)
+ hlcoord 1, 2
+ ld b, $6
+ ld c, $10
+ call Function48cdc
+ hlcoord 3, 4
+ ld de, String_4a1ef
+ call PlaceString
+ hlcoord 0, 12
+ ld b, $4
+ ld c, $12
+ call TextBox
+ ld a, [wMenuCursorY]
+ dec a
+ ld hl, Strings_4a23d
+ call GetNthString
+ ld d, h
+ ld e, l
+ hlcoord 1, 13
+ ld b, $4
+ ld c, $12
+ call ClearBox
+ hlcoord 1, 14
+ call PlaceString
+ callba Function104148
+ call SetPalettes
+ call StaticMenuJoypad
+ ld hl, wMenuCursorY
+ ld b, [hl]
+ push bc
+ jr asm_4a19d
+
+Function4a195: ; 4a195 (12:6195)
+ call ScrollingMenuJoypad
+ ld hl, wMenuCursorY
+ ld b, [hl]
+ push bc
+
+asm_4a19d: ; 4a19d (12:619d)
+ bit 0, a
+ jr nz, .asm_4a1a7
+ bit 1, a
+ jr nz, .asm_4a1ba
+ jr .asm_4a1bc
+.asm_4a1a7
+ ld hl, wMenuCursorY
+ ld a, [hl]
+ cp $1
+ jp z, Function4a20e
+ cp $2
+ jp z, Function4a221
+ ld a, $1
+ call MenuClickSound
+.asm_4a1ba
+ pop bc
+ ret
+.asm_4a1bc
+ ld hl, wMenuCursorY
+ ld a, [hl]
+ dec a
+ ld hl, Strings_4a23d
+ call GetNthString
+ ld d, h
+ ld e, l
+ hlcoord 1, 13
+ ld b, $4
+ ld c, $12
+ call ClearBox
+ hlcoord 1, 14
+ call PlaceString
+ jr .asm_4a1db
+.asm_4a1db
+ call Function4a373
+ pop bc
+ ld hl, wMenuCursorY
+ ld [hl], b
+ lb bc, 6, 1
+ hlcoord 2, 3
+ call ClearBox
+ jp Function4a195
+; 4a1ef (12:61ef)
+
+String_4a1ef: ; 4a1ef
+ db "モバイルセンター¯えらぶ"
+ next "ログインパスワード¯いれる"
+ next "もどる@"
+; 4a20e
+
+Function4a20e: ; 4a20e (12:620e)
+ ld a, $1
+ call MenuClickSound
+ callba Function1719c8
+ call ClearBGPalettes
+ call DelayFrame
+ jr Function4a239
+
+Function4a221: ; 4a221 (12:6221)
+ ld a, $1
+ call MenuClickSound
+ call Function4a28a
+ jr c, Function4a239
+ call Function4a373
+ ld a, $2
+ ld [wMenuCursorY], a
+ jr .asm_4a235
+.asm_4a235
+ pop bc
+ jp Function4a149
+
+Function4a239: ; 4a239 (12:6239)
+ pop bc
+ jp Function4a13b
+; 4a23d (12:623d)
+
+Strings_4a23d: ; 4a23d
+ db "いつも せつぞく¯する"
+ next "モバイルセンター¯えらびます@"
+
+ db "モバイルセンター", $1d, "せつぞくするとき"
+ next "つかうパスワード¯ほぞんできます@"
+
+ db "まえ%がめん ", $1d, "もどります@"
+
+ db "@"
+; 4a28a
+
+Function4a28a: ; 4a28a (12:628a)
+ hlcoord 2, 3
+ lb bc, 6, 1
+ ld a, " "
+ call Function4a6d8
+ call PlaceHollowCursor
+ call WaitBGMap
+ call LoadStandardMenuDataHeader
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$aa4b]
+ call CloseSRAM
+ and a
+ jr z, .asm_4a2df
+ hlcoord 12, 0
+ ld b, $5
+ ld c, $6
+ call Function48cdc
+ hlcoord 14, 1
+ ld de, String_4a34b
+ call PlaceString
+ callba Function104148
+ call Function4a118
+ call ScrollingMenuJoypad
+ push af
+ call PlayClickSFX
+ pop af
+ bit 1, a
+ jr nz, .asm_4a33b
+ ld a, [wMenuCursorY]
+ cp $2
+ jr z, .asm_4a2f0
+ cp $3
+ jr z, .asm_4a33b
+.asm_4a2df
+ callba Function11765d
+ call ClearBGPalettes
+ call Call_ExitMenu
+ call LoadFontsExtra
+ scf
+ ret
+.asm_4a2f0
+ call PlaceHollowCursor
+ ld hl, UnknownText_0x4a358
+ call PrintText
+ hlcoord 14, 7
+ ld b, $3
+ ld c, $4
+ call TextBox
+ callba Function104148
+ ld hl, MenuDataHeader_0x4a362
+ call LoadMenuDataHeader
+ call VerticalMenu
+ bit 1, a
+ jr nz, .asm_4a338
+ ld a, [wMenuCursorY]
+ cp $2
+ jr z, .asm_4a338
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $aa4b
+ xor a
+ ld bc, $11
+ call ByteFill
+ call CloseSRAM
+ ld hl, UnknownText_0x4a35d
+ call PrintText
+ call JoyWaitAorB
+.asm_4a338
+ call ExitMenu
+.asm_4a33b
+ call Call_ExitMenu
+ callba Function104148
+ xor a
+ ret
+; 4a346 (12:6346)
+
+MenuDataHeader_0x4a346: ; 0x4a346
+ db $40 ; flags
+ db 00, 12 ; start coords
+ db 06, 19 ; end coords
+
+String_4a34b: ; 4a34b
+ db "いれなおす"
+ next "けす"
+ next "もどる@"
+; 4a358
+
+UnknownText_0x4a358: ; 0x4a358
+ ; Delete the saved LOG-IN PASSWORD?
+ text_jump UnknownText_0x1c5196
+ db "@"
+; 0x4a35d
+
+UnknownText_0x4a35d: ; 0x4a35d
+ ; Deleted the LOG-IN PASSWORD.
+ text_jump UnknownText_0x1c51b9
+ db "@"
+; 0x4a362
+
+MenuDataHeader_0x4a362: ; 0x4a362
+ db $40 ; flags
+ db 07, 14 ; start coords
+ db 11, 19 ; end coords
+ dw MenuData2_0x4a36a
+ db 2 ; default option
+; 0x4a36a
+
+MenuData2_0x4a36a: ; 0x4a36a
+ db $e0 ; flags
+ db 2 ; items
+ db "はい@"
+ db "いいえ@"
+; 0x4a373
+
+Function4a373: ; 4a373 (12:6373)
+ ld hl, w2DMenuCursorInitY
+ ld a, $4
+ ld [hli], a
+ ld a, $2
+ ld [hli], a
+ ld a, $3
+ ld [hli], a
+ ld a, $1
+ ld [hli], a
+ ld [hl], $0
+ set 5, [hl]
+ inc hl
+ xor a
+ ld [hli], a
+ ld a, $20
+ ld [hli], a
+ ld a, $1
+ add $40
+ add $80
+ add $2
+ ld [hli], a
+ ld a, $1
+rept 2
+ ld [hli], a
+endr
+ ret
+; 4a39a (12:639a)
+
+Function4a39a: ; 4a39a
+ call Function4a485
+ call Function4a492
+ call Function4a3aa
+ call SetPalettes
+ ret
+; 4a3a7
+
+Function4a3a7: ; 4a3a7 (12:63a7)
+ call Function4a485
+Function4a3aa: ; 4a3aa
+ hlcoord 0, 0
+ lb bc, 3, 1
+ xor a
+ call Function4a6d8
+ lb bc, 1, 1
+ ld a, $1
+ call Function4a6d8
+ lb bc, 1, 1
+ xor a
+ call Function4a6d8
+ lb bc, 1, 1
+ ld a, $1
+ call Function4a6d8
+ lb bc, 4, 1
+ ld a, $2
+ call Function4a6d8
+ lb bc, 1, 1
+ ld a, $3
+ call Function4a6d8
+ lb bc, 1, 1
+ ld a, " "
+ call Function4a6d8
+ hlcoord 1, 0
+ ld a, $1
+ lb bc, 3, 18
+ call Function4a6d8
+ lb bc, 1, 18
+ ld a, $0
+ call Function4a6d8
+ lb bc, 1, 18
+ ld a, $1
+ call Function4a6d8
+ lb bc, 1, 18
+ ld a, $2
+ call Function4a6d8
+ lb bc, 11, 18
+ ld a, " "
+ call Function4a6d8
+ hlcoord 19, 0
+ lb bc, 3, 1
+ ld a, $0
+ call Function4a6d8
+ lb bc, 1, 1
+ ld a, $1
+ call Function4a6d8
+ lb bc, 1, 1
+ xor a
+ call Function4a6d8
+ lb bc, 1, 1
+ ld a, $1
+ call Function4a6d8
+ lb bc, 4, 1
+ ld a, $2
+ call Function4a6d8
+ lb bc, 1, 1
+ ld a, $3
+ call Function4a6d8
+ lb bc, 1, 1
+ ld a, " "
+ call Function4a6d8
+ ret
+; 4a449 (12:6449)
+
+Function4a449: ; 4a449
+ ld bc, 3 * SCREEN_WIDTH
+ ld a, $0
+ hlcoord 0, 0
+ call ByteFill
+ ld bc, 2 * SCREEN_WIDTH
+ ld a, $1
+ call ByteFill
+ ld bc, 2 * SCREEN_WIDTH
+ ld a, $0
+ call ByteFill
+ ld bc, 2 * SCREEN_WIDTH
+ ld a, $1
+ call ByteFill
+ ld bc, SCREEN_WIDTH
+ ld a, $2
+ call ByteFill
+ ld bc, SCREEN_WIDTH
+ ld a, $3
+ call ByteFill
+ ld bc, SCREEN_WIDTH
+ ld a, " "
+ call ByteFill
+ ret
+; 4a485
+
+Function4a485: ; 4a485 (12:6485)
+ ld de, GFX_49c0c
+ ld hl, VTiles2 tile $00
+ lb bc, BANK(GFX_49c0c), 13
+ call Get2bpp
+ ret
+
+Function4a492: ; 4a492 (12:6492)
+ call MG_Mobile_Layout00
+ ret
+
+
+MainMenu_MobileStudium: ; 4a496
+ ld a, [StartDay]
+ ld b, a
+ ld a, [StartHour]
+ ld c, a
+ ld a, [StartMinute]
+ ld d, a
+ ld a, [StartSecond]
+ ld e, a
+ push bc
+ push de
+ callba MobileStudium
+ call ClearBGPalettes
+ pop de
+ pop bc
+ ld a, b
+ ld [StartDay], a
+ ld a, c
+ ld [StartHour], a
+ ld a, d
+ ld [StartMinute], a
+ ld a, e
+ ld [StartSecond], a
+ ret
+; 4a4c4
+
+
+Function4a4c4: ; 4a4c4 (12:64c4)
+ call ClearBGPalettes
+ call Function4a3a7
+ call Function4a492
+ call Function4a680
+ call ClearBGPalettes
+ ld c, 20
+ call DelayFrames
+ hlcoord 2, 0
+ ld b, $a
+ ld c, $e
+ call Function48cdc
+ hlcoord 4, 2
+ ld de, String_4a5c5
+ call PlaceString
+ hlcoord 4, 4
+ ld de, String_4a5cd
+ call PlaceString
+ hlcoord 4, 6
+ ld de, String_4a5da
+ call PlaceString
+ hlcoord 4, 8
+ ld de, String_4a5e6
+ call PlaceString
+ hlcoord 4, 10
+ ld de, String_4a5f2
+ call PlaceString
+ hlcoord 0, 12
+ ld b, $4
+ ld c, $12
+ call TextBox
+ xor a
+ ld hl, Strings_4a5f6
+ ld d, h
+ ld e, l
+ hlcoord 1, 14
+ call PlaceString
+ ld a, $1
+ ld hl, Strings_4a5f6
+ call GetNthString
+ ld d, h
+ ld e, l
+ hlcoord 1, 16
+ call PlaceString
+ call WaitBGMap2
+ call SetPalettes
+ call StaticMenuJoypad
+ ld hl, wMenuCursorY
+ ld b, [hl]
+ push bc
+ jr asm_4a54d
+
+Function4a545: ; 4a545 (12:6545)
+ call ScrollingMenuJoypad
+ ld hl, wMenuCursorY
+ ld b, [hl]
+ push bc
+
+asm_4a54d: ; 4a54d (12:654d)
+ bit 0, a
+ jr nz, .asm_4a557
+ bit 1, a
+ jr nz, .asm_4a574
+ jr .asm_4a57e
+.asm_4a557
+ ld hl, wMenuCursorY
+ ld a, [hl]
+ cp $1
+ jp z, Function4a6ab
+ cp $2
+ jp z, Function4a6ab
+ cp $3
+ jp z, Function4a6ab
+ cp $4
+ jp z, Function4a6ab
+ ld a, $1
+ call MenuClickSound
+.asm_4a574
+ pop bc
+ call ClearBGPalettes
+ call ClearTileMap
+ jp Function49f0a
+.asm_4a57e
+ ld hl, wMenuCursorY
+ ld a, [hl]
+ dec a
+ add a
+ push af
+ ld hl, Strings_4a5f6
+ call GetNthString
+ ld d, h
+ ld e, l
+ hlcoord 1, 13
+ ld b, $4
+ ld c, $12
+ call ClearBox
+ hlcoord 1, 14
+ call PlaceString
+ pop af
+ inc a
+ ld hl, Strings_4a5f6
+ call GetNthString
+ ld d, h
+ ld e, l
+ hlcoord 1, 16
+ call PlaceString
+ jp Function4a5b0
+
+Function4a5b0: ; 4a5b0 (12:65b0)
+ call Function4a680
+ pop bc
+ ld hl, wMenuCursorY
+ ld [hl], b
+ ld b, $a
+ ld c, $1
+ hlcoord 3, 1
+ call ClearBox
+ jp Function4a545
+; 4a5c5 (12:65c5)
+
+String_4a5c5: ; 4a5c5
+ db "じこしょうかい@"
+String_4a5cd: ; 4a5cd
+ db "たいせん ", $4a, "はじまるとき@"
+String_4a5da: ; 4a5da
+ db "たいせん ", $1d, "かったとき@"
+String_4a5e6: ; 4a5e6
+ db "たいせん ", $1d, "まけたとき@"
+String_4a5f2: ; 4a5f2
+ db "もどる@"
+; 4a5f6
+
+Strings_4a5f6: ; 4a5f6
+ db "めいし や ニュース ", $1d, "のせる@"
+ db "あなた%あいさつです@"
+ db "モバイル たいせん", $4a, "はじまるとき@"
+ db "あいて", $1d, "みえる あいさつです@"
+ db "モバイル たいせんで かったとき@"
+ db "あいて", $1d, "みえる あいさつです@"
+ db "モバイル たいせんで まけたとき@"
+ db "あいて", $1d, "みえる あいさつです@"
+ db "まえ%がめん ", $1d, "もどります@"
+ db "@"
+; 4a680
+
+Function4a680: ; 4a680 (12:6680)
+ ld hl, w2DMenuCursorInitY
+ ld a, $2
+ ld [hli], a
+ ld a, $3
+ ld [hli], a
+ ld a, $5
+ ld [hli], a
+ ld a, $1
+ ld [hli], a
+ ld [hl], $0
+ set 5, [hl]
+ inc hl
+ xor a
+ ld [hli], a
+ ld a, $20
+ ld [hli], a
+ ld a, $1
+ add $40
+ add $80
+ add $2
+ ld [hli], a
+ ld a, $1
+rept 2
+ ld [hli], a
+endr
+ xor a
+rept 3
+ ld [hli], a
+endr
+ ret
+
+Function4a6ab: ; 4a6ab (12:66ab)
+ ld a, $2
+ call MenuClickSound
+ call ClearBGPalettes
+ ld b, SCGB_08
+ call GetSGBLayout
+ callba Function11c1ab
+ pop bc
+ call LoadFontsExtra
+ jp Function4a4c4
+
+Function4a6c5: ; 4a6c5 (12:66c5)
+ ld a, $5
+ ld [MusicFade], a
+ ld a, e
+ ld [MusicFadeIDLo], a
+ ld a, d
+ ld [MusicFadeIDHi], a
+ ld c, 22
+ call DelayFrames
+ ret
+
+Function4a6d8: ; 4a6d8 (12:66d8)
+ push bc
+ push hl
+.asm_4a6da
+ ld [hli], a
+ dec c
+ jr nz, .asm_4a6da
+ pop hl
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, Function4a6d8
+ ret
diff --git a/misc/printer_77.asm b/misc/printer_77.asm
new file mode 100755
index 000000000..32f5c734f
--- /dev/null
+++ b/misc/printer_77.asm
@@ -0,0 +1,356 @@
+PrintPage1: ; 1dc1b0
+ hlcoord 0, 0
+ ld de, wca90
+ ld bc, 17 * SCREEN_WIDTH
+ call CopyBytes
+ ld hl, wcab5
+ ld a, $62
+ ld [hli], a
+ inc a
+ ld [hl], a
+ ld hl, wcac9
+ ld a, $64
+ ld [hli], a
+ inc a
+ ld [hl], a
+ ld hl, wcb45
+ ld a, " "
+ ld [hli], a
+ ld [hl], a
+ ld hl, wcb59
+ ld a, $61
+ ld [hli], a
+ ld [hl], a
+ ld hl, wcb6e
+ lb bc, 5, 18
+ call ClearBox
+ ld a, [wd265]
+ dec a
+ call CheckCaughtMon
+ push af
+ ld a, [wd265]
+ ld b, a
+ ld c, 1 ; get page 1
+ callba GetDexEntryPagePointer
+ pop af
+ ld a, b
+ ld hl, wcb6d
+ call nz, FarString
+ ld hl, wcaa3
+ ld [hl], $35
+ ld de, SCREEN_WIDTH
+ add hl, de
+ ld b, $f
+.column_loop
+ ld [hl], $37
+ add hl, de
+ dec b
+ jr nz, .column_loop
+ ld [hl], $3a
+ ret
+; 1dc213
+
+PrintPage2: ; 1dc213
+ ld hl, wca90
+ ld bc, $a0
+ ld a, " "
+ call ByteFill
+ ld hl, wca90
+ ld a, $36
+ ld b, $6
+ call .FillColumn
+ ld hl, wcaa3
+ ld a, $37
+ ld b, $6
+ call .FillColumn
+ ld hl, wcb08
+ ld [hl], $38
+ inc hl
+ ld a, $39
+ ld bc, SCREEN_HEIGHT
+ call ByteFill
+ ld [hl], $3a
+ ld hl, wcb1c
+ ld bc, SCREEN_WIDTH
+ ld a, $32
+ call ByteFill
+ ld a, [wd265]
+ dec a
+ call CheckCaughtMon
+ push af
+ ld a, [wd265]
+ ld b, a
+ ld c, 2 ; get page 2
+ callba GetDexEntryPagePointer
+ pop af
+ ld hl, wcaa5
+ ld a, b
+ call nz, FarString
+ ret
+; 1dc26a
+
+.FillColumn: ; 1dc26a
+ push de
+ ld de, SCREEN_WIDTH
+.column_loop
+ ld [hl], a
+ add hl, de
+ dec b
+ jr nz, .column_loop
+ pop de
+ ret
+; 1dc275
+
+GBPrinterStrings:
+String_1dc275: db "@"
+String_1dc276: next " CHECKING LINK...@"
+String_1dc289: next " TRANSMITTING...@"
+String_1dc29c: next " PRINTING...@"
+String_1dc2ad:
+ db " Printer Error 1"
+ next ""
+ next "Check the Game Boy"
+ next "Printer Manual."
+ db "@"
+String_1dc2e2:
+ db " Printer Error 2"
+ next ""
+ next "Check the Game Boy"
+ next "Printer Manual."
+ db "@"
+String_1dc317:
+ db " Printer Error 3"
+ next ""
+ next "Check the Game Boy"
+ next "Printer Manual."
+ db "@"
+String_1dc34c:
+ db " Printer Error 4"
+ next ""
+ next "Check the Game Boy"
+ next "Printer Manual."
+ db "@"
+; 1dc381
+
+Function1dc381: ; 1dc381
+ call ClearBGPalettes
+ call ClearTileMap
+ call ClearSprites
+ xor a
+ ld [hBGMapMode], a
+ call LoadFontsBattleExtra
+
+ ld de, MobileHPIcon
+ ld hl, VTiles2 tile $71
+ lb bc, BANK(MobileHPIcon), 1
+ call Request1bpp
+
+ ld de, MobileLvIcon
+ ld hl, VTiles2 tile $6e
+ lb bc, BANK(MobileLvIcon), 1
+ call Request1bpp
+
+ ld de, ShinyIcon
+ ld hl, VTiles2 tile $3f
+ lb bc, BANK(ShinyIcon), 1
+ call Get2bpp
+
+ xor a
+ ld [MonType], a
+ callba CopyPkmnToTempMon
+ hlcoord 0, 7
+ ld b, 9
+ ld c, 18
+ call TextBox
+ hlcoord 8, 2
+ ld a, [TempMonLevel]
+ call Function383d
+ hlcoord 12, 2
+ ld [hl], "◀" ; Filled left triangle
+ inc hl
+ ld de, TempMonMaxHP
+ lb bc, 2, 3
+ call PrintNum
+ ld a, [CurPartySpecies]
+ ld [wd265], a
+ ld [CurSpecies], a
+ ld hl, PartyMonNicknames
+ call Function1dc50e
+ hlcoord 8, 4
+ call PlaceString
+ hlcoord 9, 6
+ ld [hl], "/"
+ call GetPokemonName
+ hlcoord 10, 6
+ call PlaceString
+ hlcoord 8, 0
+ ld [hl], "№"
+ inc hl
+ ld [hl], "."
+ inc hl
+ ld de, wd265
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 3
+ call PrintNum
+ hlcoord 1, 9
+ ld de, String1dc550
+ call PlaceString
+ ld hl, PartyMonOT
+ call Function1dc50e
+ hlcoord 4, 9
+ call PlaceString
+ hlcoord 1, 11
+ ld de, String1dc559
+ call PlaceString
+ hlcoord 4, 11
+ ld de, TempMonID
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 5
+ call PrintNum
+ hlcoord 1, 14
+ ld de, String1dc554
+ call PlaceString
+ hlcoord 7, 14
+ ld a, [TempMonMoves + 0]
+ call Function1dc51a
+ call Function1dc52c
+ ld hl, TempMonDVs
+ predef GetUnownLetter
+ ld hl, wBoxAlignment
+ xor a
+ ld [hl], a
+ ld a, [CurPartySpecies]
+ cp UNOWN
+ jr z, .asm_1dc469
+ inc [hl]
+
+.asm_1dc469
+ hlcoord 0, 0
+ call _PrepMonFrontpic
+ call WaitBGMap
+ ld b, SCGB_STATS_SCREEN_HP_PALS
+ call GetSGBLayout
+ call SetPalettes
+ ret
+; 1dc47b
+
+Function1dc47b: ; 1dc47b
+ call ClearBGPalettes
+ call ClearTileMap
+ call ClearSprites
+ xor a
+ ld [hBGMapMode], a
+ call LoadFontsBattleExtra
+ xor a
+ ld [MonType], a
+ callba CopyPkmnToTempMon
+ hlcoord 0, 0
+ ld b, 15
+ ld c, 18
+ call TextBox
+ ld bc, SCREEN_WIDTH
+ decoord 0, 0
+ hlcoord 0, 1
+ call CopyBytes
+ hlcoord 7, 0
+ ld a, [TempMonMoves + 1]
+ call Function1dc51a
+ hlcoord 7, 2
+ ld a, [TempMonMoves + 2]
+ call Function1dc51a
+ hlcoord 7, 4
+ ld a, [TempMonMoves + 3]
+ call Function1dc51a
+ hlcoord 7, 7
+ ld de, String1dc55d
+ call PlaceString
+ hlcoord 16, 7
+ ld de, TempMonAttack
+ call .PrintTempMonStats
+ hlcoord 16, 9
+ ld de, TempMonDefense
+ call .PrintTempMonStats
+ hlcoord 16, 11
+ ld de, TempMonSpclAtk
+ call .PrintTempMonStats
+ hlcoord 16, 13
+ ld de, TempMonSpclDef
+ call .PrintTempMonStats
+ hlcoord 16, 15
+ ld de, TempMonSpeed
+ call .PrintTempMonStats
+ call WaitBGMap
+ ld b, SCGB_STATS_SCREEN_HP_PALS
+ call GetSGBLayout
+ call SetPalettes
+ ret
+; 1dc507
+
+.PrintTempMonStats: ; 1dc507
+ lb bc, 2, 3
+ call PrintNum
+ ret
+; 1dc50e
+
+Function1dc50e: ; 1dc50e
+ ld bc, NAME_LENGTH
+ ld a, [CurPartyMon]
+ call AddNTimes
+ ld e, l
+ ld d, h
+ ret
+; 1dc51a
+
+Function1dc51a: ; 1dc51a
+ and a
+ jr z, .no_move
+
+ ld [wd265], a
+ call GetMoveName
+ jr .got_string
+
+.no_move
+ ld de, String1dc584
+
+.got_string
+ call PlaceString
+ ret
+; 1dc52c
+
+Function1dc52c: ; 1dc52c
+ callba GetGender
+ ld a, " "
+ jr c, .got_gender
+ ld a, "♂"
+ jr nz, .got_gender
+ ld a, "♀"
+
+.got_gender
+ hlcoord 17, 2
+ ld [hl], a
+ ld bc, TempMonDVs
+ callba CheckShininess
+ ret nc
+ hlcoord 18, 2
+ ld [hl], "<SHINY>"
+ ret
+; 1dc550
+
+String1dc550: ; 1dc550
+ db "OT/@"
+
+String1dc554: ; 1dc554
+ db "MOVE@"
+
+String1dc559: ; 1dc559
+ db "<ID>№.@"
+
+String1dc55d: ; 1dc55d
+ db "ATTACK"
+ next "DEFENSE"
+ next "SPCL.ATK"
+ next "SPCL.DEF"
+ next "SPEED"
+ db "@"
+
+String1dc584: ; 1dc584
+ db "------------@"
+; 1dc591