summaryrefslogtreecommitdiff
path: root/misc
diff options
context:
space:
mode:
Diffstat (limited to 'misc')
-rwxr-xr-xmisc/battle_tower_47.asm8
-rwxr-xr-xmisc/battle_tower_5c.asm28
-rw-r--r--misc/crystal_misc.asm18
-rwxr-xr-xmisc/fixed_words.asm993
-rwxr-xr-xmisc/gfx_41.asm224
-rwxr-xr-xmisc/mobile_12.asm191
-rwxr-xr-xmisc/mobile_12_2.asm7
-rw-r--r--misc/mobile_22.asm373
-rw-r--r--misc/mobile_22_2.asm128
-rw-r--r--misc/mobile_40.asm899
-rwxr-xr-xmisc/mobile_41.asm502
-rw-r--r--misc/mobile_42.asm27
-rw-r--r--misc/mobile_45.asm67
-rwxr-xr-xmisc/mobile_45_sprite_engine.asm3
-rwxr-xr-xmisc/mobile_46.asm162
-rwxr-xr-xmisc/mobile_5b.asm120
-rwxr-xr-xmisc/mobile_5c.asm25
-rw-r--r--misc/mobile_5f.asm220
-rwxr-xr-xmisc/mobile_menu.asm14
-rwxr-xr-xmisc/printer_77.asm56
-rw-r--r--misc/unused_title.asm4
21 files changed, 2096 insertions, 1973 deletions
diff --git a/misc/battle_tower_47.asm b/misc/battle_tower_47.asm
index a11f61064..f9e2ac0ea 100755
--- a/misc/battle_tower_47.asm
+++ b/misc/battle_tower_47.asm
@@ -61,9 +61,8 @@ ENDC
.okay2
push af
-rept 2
add hl, bc
-endr
+ add hl, bc
ld a, [hli]
ld c, a
ld a, [hl]
@@ -72,9 +71,8 @@ endr
pop af
ld c, a
ld b, 0
-rept 2
add hl, bc
-endr
+ add hl, bc
ld a, [hli]
ld c, a
ld a, [hl]
@@ -83,7 +81,7 @@ endr
bccoord 1, 14
pop af
ld [rSVBK], a
- call PlaceWholeStringInBoxAtOnce
+ call PlaceHLTextAtBC
ret
; 11c05d
diff --git a/misc/battle_tower_5c.asm b/misc/battle_tower_5c.asm
index fb441a3f8..09c827146 100755
--- a/misc/battle_tower_5c.asm
+++ b/misc/battle_tower_5c.asm
@@ -111,7 +111,7 @@ Function170139: ; 170139
call CopyBytes
ld bc, PlayerID
ld de, PlayerGender
- callba Function4e929
+ callba GetMobileOTTrainerClass
ld de, wBT_OTTempPkmn1CaughtGender
ld a, c
ld [de], a
@@ -217,9 +217,8 @@ _BattleTowerBattle: ; 17022c
ld e, a
ld d, 0
ld hl, .dw
-rept 2
add hl, de
-endr
+ add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
@@ -244,7 +243,7 @@ RunBattleTowerTrainer: ; 17024d
xor a
ld [wLinkMode], a
- callba Mobile_HealParty
+ callba TrainerRankings_Healings
callba HealParty
call ReadBTTrainerParty
call Clears5_a89a
@@ -459,9 +458,8 @@ endr
ld a, POUND
ld [hli], a
xor a
-rept 2
ld [hli], a
-endr
+ ld [hli], a
ld [hl], a
jr .done_moves
@@ -489,9 +487,8 @@ endr
predef CalcPkmnStats
pop de
pop hl
-rept 2
dec de
-endr
+ dec de
ld a, [hli]
ld [de], a
inc de
@@ -690,9 +687,8 @@ Function1704e1: ; 1704e1
ld e, a
ld d, 0
ld hl, .dw
-rept 2
add hl, de
-endr
+ add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
@@ -908,9 +904,8 @@ endr
ld [hli], a
dec c
jr nz, .clearbox_column
-rept 2
inc hl
-endr
+ inc hl
dec b
jr nz, .clearbox_row
ret
@@ -947,9 +942,8 @@ BattleTowerAction: ; 170687
ld e, a
ld d, 0
ld hl, .dw
-rept 2
add hl, de
-endr
+ add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
@@ -1393,9 +1387,8 @@ rept 4
dec hl
endr
ld a, "@"
-rept 2
ld [hli], a
-endr
+ ld [hli], a
pop hl
ld a, EGG_TICKET
ld [CurItem], a
@@ -1445,9 +1438,8 @@ Function1709bb: ; 1709bb (5c:49bb) BattleTowerAction $10
ld e, a
ld d, 0
ld hl, Jumptable_1709e7
-rept 2
add hl, de
-endr
+ add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
diff --git a/misc/crystal_misc.asm b/misc/crystal_misc.asm
index 01538a3d6..66f0a92ae 100644
--- a/misc/crystal_misc.asm
+++ b/misc/crystal_misc.asm
@@ -47,7 +47,7 @@ Function17a6a8: ; 17a6a8 (5e:66a8)
call Function17aba0
callba Function106464
call Function17ac0c
- callba Function104000
+ callba HDMATransferAttrMapAndTileMapToWRAMBank3
call Function17abcf
callba LoadOW_BGPal7
callba Function49420
@@ -169,7 +169,7 @@ Function17a78f: ; 17a78f (5e:678f)
bit 7, [hl]
res 7, [hl]
jr nz, .asm_17a79f
- callba Function10402d
+ callba HDMATransferTileMapToWRAMBank3
ret
.asm_17a79f
@@ -576,16 +576,16 @@ Function17aa22: ; 17aa22 (5e:6a22)
push de
ld a, $3
call Function17aae0
-rept 3
add a
-endr
+ add a
+ add a
add $0
push af
ld a, $4
call Function17aae0
-rept 3
add a
-endr
+ add a
+ add a
add $8
ld c, a
pop af
@@ -682,15 +682,13 @@ Function17aaa9: ; 17aaa9 (5e:6aa9)
Function17aac3: ; 17aac3 (5e:6ac3)
ld a, $b
push hl
-rept 2
ld [hli], a
-endr
+ ld [hli], a
pop hl
ld de, SCREEN_WIDTH
add hl, de
-rept 2
ld [hli], a
-endr
+ ld [hli], a
ret
Function17aad0: ; 17aad0 (5e:6ad0)
diff --git a/misc/fixed_words.asm b/misc/fixed_words.asm
index ed4160351..14ef91e9d 100755
--- a/misc/fixed_words.asm
+++ b/misc/fixed_words.asm
@@ -4,24 +4,23 @@
Function11c05d: ; 11c05d
ld a, e
or d
- jr z, .asm_11c071
+ jr z, .error
ld a, e
and d
cp $ff
- jr z, .asm_11c071
+ jr z, .error
push hl
- call Function11c156
+ call CopyMobileEZChatToC608
pop hl
call PlaceString
and a
ret
-.asm_11c071
+.error
ld c, l
ld b, h
scf
ret
-
; 11c075
Function11c075: ; 11c075
@@ -32,26 +31,25 @@ Function11c075: ; 11c075
ld bc, wcd36
call Function11c08f
ret
-
; 11c082
Function11c082: ; 11c082
+; XXX
push de
ld a, c
call Function11c254
pop de
ld bc, wcd36
- call Function11c0c6
+ call PrintEZChatBattleMessage
ret
-
; 11c08f
Function11c08f: ; 11c08f
ld l, e
ld h, d
push hl
- ld a, $3
-.asm_11c094
+ ld a, 3
+.loop
push af
ld a, [bc]
ld e, a
@@ -61,21 +59,21 @@ Function11c08f: ; 11c08f
inc bc
push bc
call Function11c05d
- jr c, .asm_11c0a2
+ jr c, .okay
inc bc
-.asm_11c0a2
+.okay
ld l, c
ld h, b
pop bc
pop af
dec a
- jr nz, .asm_11c094
+ jr nz, .loop
pop hl
- ld de, $0028
+ ld de, 2 * SCREEN_WIDTH
add hl, de
ld a, $3
-.asm_11c0b0
+.loop2
push af
ld a, [bc]
ld e, a
@@ -85,139 +83,160 @@ Function11c08f: ; 11c08f
inc bc
push bc
call Function11c05d
- jr c, .asm_11c0be
+ jr c, .okay2
inc bc
-.asm_11c0be
+.okay2
ld l, c
ld h, b
pop bc
pop af
dec a
- jr nz, .asm_11c0b0
+ jr nz, .loop2
ret
-
; 11c0c6
-
-Function11c0c6: ; 11c0c6
+PrintEZChatBattleMessage: ; 11c0c6
+; Use up to 6 words from bc to print text starting at de.
+ ; Preserve $cf63, $cf64
ld a, [wJumptableIndex]
ld l, a
ld a, [wcf64]
ld h, a
push hl
- ld hl, $c608 + 16
+ ; reset value at c618 (not preserved)
+ ld hl, $c618
ld a, $0
ld [hli], a
+ ; preserve de
push de
+ ; $cf63 keeps track of which line we're on (0, 1, or 2)
+ ; $cf64 keeps track of how much room we have left in the current line
xor a
ld [wJumptableIndex], a
- ld a, $12
+ ld a, 18
ld [wcf64], a
- ld a, $6
-.asm_11c0e1
+ ld a, $6 ; up to 6 times
+.loop
push af
+ ; load the 2-byte word data pointed to by bc
ld a, [bc]
ld e, a
inc bc
ld a, [bc]
ld d, a
inc bc
+ ; if $0000, we're done
or e
- jr z, .asm_11c133
+ jr z, .done
+ ; preserving hl and bc, get the length of the word
push hl
push bc
- call Function11c156
- call Function11c14a
+ call CopyMobileEZChatToC608
+ call GetLengthOfWordAtC608
ld e, c
pop bc
pop hl
+ ; if the functions return 0, we're done
ld a, e
or a
- jr z, .asm_11c133
-.asm_11c0fa
+ jr z, .done
+.loop2
+ ; e contains the length of the word
+ ; add 1 for the space, unless we're at the start of the line
ld a, [wcf64]
- cp $12
- jr z, .asm_11c102
+ cp 18
+ jr z, .skip_inc
inc e
-.asm_11c102
+.skip_inc
+ ; if the word fits, put it on the same line
cp e
- jr nc, .asm_11c11c
+ jr nc, .same_line
+ ; otherwise, go to the next line
ld a, [wJumptableIndex]
inc a
ld [wJumptableIndex], a
- ld [hl], $4e
+ ; if we're on line 2, insert "<NEXT>"
+ ld [hl], "<NEXT>"
rra
- jr c, .asm_11c113
- ld [hl], $55
+ jr c, .got_line_terminator
+ ; else, insert "<CONT>"
+ ld [hl], "<CONT>"
-.asm_11c113
+.got_line_terminator
inc hl
- ld a, $12
+ ; init the next line, holding on to the same word
+ ld a, 18
ld [wcf64], a
dec e
- jr .asm_11c0fa
+ jr .loop2
-.asm_11c11c
- cp $12
- jr z, .asm_11c123
- ld [hl], $7f
+.same_line
+ ; add the space, unless we're at the start of the line
+ cp 18
+ jr z, .skip_space
+ ld [hl], " "
inc hl
-.asm_11c123
+.skip_space
+ ; deduct the length of the word
sub e
ld [wcf64], a
ld de, $c608
-.asm_11c12a
+.place_string_loop
+ ; load the string from de to hl
ld a, [de]
- cp $50
- jr z, .asm_11c133
+ cp "@"
+ jr z, .done
inc de
ld [hli], a
- jr .asm_11c12a
+ jr .place_string_loop
-.asm_11c133
+.done
+ ; next word?
pop af
dec a
- jr nz, .asm_11c0e1
- ld [hl], $57
+ jr nz, .loop
+ ; we're finished, place "<DONE>"
+ ld [hl], "<DONE>"
+ ; now, let's place the string from c618 to bc
pop bc
- ld hl, $c608 + 16
- call PlaceWholeStringInBoxAtOnce
+ ld hl, $c618
+ call PlaceHLTextAtBC
+ ; restore the original values of $cf63 and $cf64
pop hl
ld a, l
ld [wJumptableIndex], a
ld a, h
ld [wcf64], a
ret
-
; 11c14a
-Function11c14a: ; 11c14a
+GetLengthOfWordAtC608: ; 11c14a
ld c, $0
ld hl, $c608
-.asm_11c14f
+.loop
ld a, [hli]
- cp $50
+ cp "@"
ret z
inc c
- jr .asm_11c14f
+ jr .loop
; 11c156
-Function11c156: ; 11c156
+CopyMobileEZChatToC608: ; 11c156
ld a, [rSVBK]
push af
ld a, $1
ld [rSVBK], a
- ld a, $50
+ ld a, "@"
ld hl, $c608
- ld bc, $000b
+ ld bc, NAME_LENGTH
call ByteFill
ld a, d
and a
jr z, .get_name
- ld hl, MobileFixedWordCategoryPointers
+ ld hl, MobileEZChatCategoryPointers
dec d
sla d
ld c, d
@@ -239,7 +258,7 @@ Function11c156: ; 11c156
rl b
add hl, bc
ld bc, 5 ; length of a string
-.loop
+.copy_string
ld de, $c608
call CopyBytes
ld de, $c608
@@ -253,7 +272,7 @@ Function11c156: ; 11c156
call GetPokemonName
ld hl, StringBuffer1
ld bc, PKMN_NAME_LENGTH - 1
- jr .loop
+ jr .copy_string
; 11c1ab
Function11c1ab: ; 11c1ab
@@ -265,23 +284,21 @@ Function11c1ab: ; 11c1ab
pop af
ld [hInMenu], a
ret
-
; 11c1b9
Function11c1b9: ; 11c1b9
- call Function11c1ca
+ call .InitKanaMode
ld a, [rSVBK]
push af
ld a, $5
ld [rSVBK], a
- call Function11c283
+ call EZChat_MasterLoop
pop af
ld [rSVBK], a
ret
-
; 11c1ca
-Function11c1ca: ; 11c1ca
+.InitKanaMode: ; 11c1ca
xor a
ld [wJumptableIndex], a
ld [wcf64], a
@@ -326,10 +343,9 @@ Function11c1ca: ; 11c1ca
call CopyBytes
pop af
ld [rSVBK], a
- call Function11d4aa
- call Function11d3ba
+ call EZChat_GetCategoryWordsByKana
+ call EZChat_GetSeenPokemonByKana
ret
-
; 11c254
Function11c254: ; 11c254
@@ -347,22 +363,20 @@ Function11c254: ; 11c254
ld b, $0
add hl, bc
ld de, wcd36
- ld bc, $000c
+ ld bc, 12
call CopyBytes
call CloseSRAM
ret
-
; 11c277
-
-Function11c277: ; 11c277 (47:4277)
+EZChat_ClearBottom12Rows: ; 11c277 (47:4277)
ld a, " "
hlcoord 0, 6
ld bc, (SCREEN_HEIGHT - 6) * SCREEN_WIDTH
call ByteFill
ret
-Function11c283: ; 11c283
+EZChat_MasterLoop: ; 11c283
.loop
call JoyTextDelay
ld a, [hJoyPressed]
@@ -379,17 +393,15 @@ Function11c283: ; 11c283
callba ClearSpriteAnims
call ClearSprites
ret
-
; 11c2ac
.DoJumptableFunction: ; 11c2ac
jumptable .Jumptable, wJumptableIndex
; 11c2bb
-
.Jumptable: ; 11c2bb (47:42bb)
- dw Function11c2e9 ; 00
- dw Function11c346 ; 01
+ dw .SpawnObjects ; 00
+ dw .InitRAM ; 01
dw Function11c35f ; 02
dw Function11c373 ; 03
dw Function11c3c2 ; 04
@@ -412,52 +424,57 @@ Function11c283: ; 11c283
dw Function11ce0b ; 15
dw Function11ce2b ; 16
-
-Function11c2e9: ; 11c2e9 (47:42e9)
+.SpawnObjects: ; 11c2e9 (47:42e9)
depixel 3, 1, 2, 5
ld a, SPRITE_ANIM_INDEX_1D
call _InitSpriteAnimStruct
depixel 8, 1, 2, 5
+
ld a, SPRITE_ANIM_INDEX_1D
call _InitSpriteAnimStruct
- ld hl, $c
+ ld hl, SPRITEANIMSTRUCT_0C
add hl, bc
ld a, $1
ld [hl], a
+
depixel 9, 2, 2, 0
ld a, SPRITE_ANIM_INDEX_1D
call _InitSpriteAnimStruct
- ld hl, $c
+ ld hl, SPRITEANIMSTRUCT_0C
add hl, bc
ld a, $3
ld [hl], a
+
depixel 10, 16
ld a, SPRITE_ANIM_INDEX_1D
call _InitSpriteAnimStruct
- ld hl, $c
+ ld hl, SPRITEANIMSTRUCT_0C
add hl, bc
ld a, $4
ld [hl], a
+
depixel 10, 4
ld a, SPRITE_ANIM_INDEX_1D
call _InitSpriteAnimStruct
- ld hl, $c
+ ld hl, SPRITEANIMSTRUCT_0C
add hl, bc
ld a, $5
ld [hl], a
+
depixel 10, 2
ld a, SPRITE_ANIM_INDEX_1D
call _InitSpriteAnimStruct
- ld hl, $c
+ ld hl, SPRITEANIMSTRUCT_0C
add hl, bc
ld a, $2
ld [hl], a
+
ld hl, wcd23
set 1, [hl]
set 2, [hl]
jp Function11cfb5
-Function11c346: ; 11c346 (47:4346)
+.InitRAM: ; 11c346 (47:4346)
ld a, $9
ld [wcd2d], a
ld a, $2
@@ -535,7 +552,6 @@ Function11c38a: ; 11c38a (47:438a)
dec a
jr nz, .asm_11c392
ret
-
; 11c3bc (47:43bc)
String_11c3bc: ; 11c3bc
@@ -543,7 +559,7 @@ String_11c3bc: ; 11c3bc
; 11c3c2
Function11c3c2: ; 11c3c2 (47:43c2)
- call Function11c277
+ call EZChat_ClearBottom12Rows
ld de, Unknown_11cfbe
call Function11d035
hlcoord 1, 7
@@ -560,7 +576,7 @@ Function11c3c2: ; 11c3c2 (47:43c2)
call Function11cfb5
Function11c3ed: ; 11c3ed (47:43ed)
- ld hl, wcd20 ; wcd20 (aliases: CreditsPos)
+ ld hl, wcd20 ; wcd20
ld de, hJoypadPressed ; $ffa3
ld a, [de]
and $8
@@ -595,11 +611,11 @@ Function11c3ed: ; 11c3ed (47:43ed)
jr .asm_11c475
.asm_11c426
ld a, $8
- ld [wcd20], a ; wcd20 (aliases: CreditsPos)
+ ld [wcd20], a ; wcd20
ret
.asm_11c42c
- ld a, [wcd20] ; wcd20 (aliases: CreditsPos)
+ ld a, [wcd20] ; wcd20
cp $6
jr c, .asm_11c472
sub $6
@@ -705,7 +721,6 @@ Function11c4be: ; 11c4be (47:44be)
call ByteFill
callba ReloadMapPart
ret
-
; 11c4db (47:44db)
String_11c4db: ; 11c4db
@@ -721,8 +736,8 @@ String_11c51b: ; 11c51b
; 11c52c
Function11c52c: ; 11c52c (47:452c)
- call Function11c277
- call Function11c5f0
+ call EZChat_ClearBottom12Rows
+ call EZChat_PlaceCategoryNames
call Function11c618
ld hl, wcd24
res 1, [hl]
@@ -770,47 +785,47 @@ Function11c53d: ; 11c53d (47:453d)
.a
ld a, [wcd21]
- cp $f
- jr c, .asm_11c59d
+ cp 15
+ jr c, .got_category
sub $f
- jr z, .asm_11c5ab
+ jr z, .done
dec a
- jr z, .asm_11c599
+ jr z, .mode
jr .b
.start
ld hl, wcd24
set 0, [hl]
ld a, $8
- ld [wcd20], a ; wcd20 (aliases: CreditsPos)
+ ld [wcd20], a ; wcd20
.b
ld a, $4
- jr .asm_11c59f
+ jr .go_to_function
.select
ld a, [wcd2b]
xor $1
ld [wcd2b], a
ld a, $15
- jr .asm_11c59f
+ jr .go_to_function
-.asm_11c599
+.mode
ld a, $13
- jr .asm_11c59f
+ jr .go_to_function
-.asm_11c59d
+.got_category
ld a, $8
-.asm_11c59f
+.go_to_function
ld hl, wcd24
set 1, [hl]
ld [wJumptableIndex], a
call PlayClickSFX
ret
-.asm_11c5ab
- ld a, [wcd20] ; wcd20 (aliases: CreditsPos)
+.done
+ ld a, [wcd20] ; wcd20
call Function11ca6a
call PlayClickSFX
ret
@@ -820,14 +835,14 @@ Function11c53d: ; 11c53d (47:453d)
cp $3
ret c
sub $3
- jr .asm_11c5ee
+ jr .finish_dpad
.down
ld a, [hl]
cp $f
ret nc
add $3
- jr .asm_11c5ee
+ jr .finish_dpad
.left
ld a, [hl]
@@ -844,7 +859,7 @@ Function11c53d: ; 11c53d (47:453d)
cp $f
ret z
dec a
- jr .asm_11c5ee
+ jr .finish_dpad
.right
ld a, [hl]
@@ -862,17 +877,16 @@ Function11c53d: ; 11c53d (47:453d)
ret z
inc a
-.asm_11c5ee
+.finish_dpad
ld [hl], a
ret
-
; 11c5f0
-Function11c5f0: ; 11c5f0 (47:45f0)
- ld de, MobileFixedWordCategoryNames
- ld bc, Unknown_11c63a
- ld a, $f
-.asm_11c5f8
+EZChat_PlaceCategoryNames: ; 11c5f0 (47:45f0)
+ ld de, MobileEZChatCategoryNames
+ ld bc, Coords_11c63a
+ ld a, 15
+.loop
push af
ld a, [bc]
inc bc
@@ -882,17 +896,20 @@ Function11c5f0: ; 11c5f0 (47:45f0)
ld h, a
push bc
call PlaceString
-.asm_11c603
+ ; The category names are padded with "@".
+ ; To find the next category, the system must
+ ; find the first character at de that is not "@".
+.find_next_string_loop
inc de
ld a, [de]
- cp $50
- jr z, .asm_11c603
+ cp "@"
+ jr z, .find_next_string_loop
pop bc
pop af
dec a
- jr nz, .asm_11c5f8
+ jr nz, .loop
hlcoord 1, 17
- ld de, String_11c62a
+ ld de, EZChatString_Stop_Mode_Cancel
call PlaceString
ret
@@ -903,14 +920,13 @@ Function11c618: ; 11c618 (47:4618)
call ByteFill
callba ReloadMapPart
ret
-
; 11c62a (47:462a)
-String_11c62a: ; 11c62a
+EZChatString_Stop_Mode_Cancel: ; 11c62a
db "けす モード やめる@"
; 11c63a
-Unknown_11c63a: ; 11c63a
+Coords_11c63a: ; 11c63a
dwcoord 1, 7
dwcoord 7, 7
dwcoord 13, 7
@@ -929,7 +945,7 @@ Unknown_11c63a: ; 11c63a
; 11c658
Function11c658: ; 11c658 (47:4658)
- call Function11c277
+ call EZChat_ClearBottom12Rows
call Function11c770
ld de, Unknown_11cfc2
call Function11d035
@@ -941,7 +957,7 @@ Function11c658: ; 11c658 (47:4658)
call Function11cfb5
Function11c675: ; 11c675 (47:4675)
- ld hl, wcd25
+ ld hl, wMobileCommsJumptableIndex
ld de, hJoypadPressed ; $ffa3
ld a, [de]
and A_BUTTON
@@ -975,7 +991,7 @@ Function11c675: ; 11c675 (47:4675)
ld [wcd26], a
ld a, [hl]
ld b, a
- ld hl, wcd25
+ ld hl, wMobileCommsJumptableIndex
ld a, [wcd26]
add [hl]
jr c, .asm_11c6b9
@@ -986,7 +1002,7 @@ Function11c675: ; 11c675 (47:4675)
ld hl, wcd26
sub [hl]
dec a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
.asm_11c6c4
call Function11c992
call Function11c7bc
@@ -1101,42 +1117,46 @@ Function11c675: ; 11c675 (47:4675)
Function11c770: ; 11c770 (47:4770)
xor a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ld [wcd26], a
ld [wcd27], a
ld a, [wcd2b]
and a
- jr nz, .asm_11c7ab
+ jr nz, .cd2b_is_nonzero
ld a, [wcd21]
and a
- jr z, .asm_11c799
+ jr z, .cd21_is_zero
+ ; load from data array
dec a
sla a
- ld hl, Unknown_11f220
+ ld hl, MobileEZChatData_WordAndPageCounts
ld c, a
ld b, 0
add hl, bc
ld a, [hli]
ld [wcd28], a
ld a, [hl]
-.asm_11c795
+.load
ld [wcd29], a
ret
-.asm_11c799
+.cd21_is_zero
+ ; compute from [wc7d2]
ld a, [wc7d2]
ld [wcd28], a
-.asm_11c79f
- ld c, $c
+.div_12
+ ld c, 12
call SimpleDivide
and a
- jr nz, .asm_11c7a8
+ jr nz, .no_need_to_floor
dec b
-.asm_11c7a8
+.no_need_to_floor
ld a, b
- jr .asm_11c795
-.asm_11c7ab
- ld hl, $c68a + 30
+ jr .load
+
+.cd2b_is_nonzero
+ ; compute from [c6a8 + 2 * [cd22]]
+ ld hl, $c6a8 ; $c68a + 30
ld a, [wcd22]
ld c, a
ld b, 0
@@ -1144,7 +1164,7 @@ Function11c770: ; 11c770 (47:4770)
add hl, bc
ld a, [hl]
ld [wcd28], a
- jr .asm_11c79f
+ jr .div_12
Function11c7bc: ; 11c7bc (47:47bc)
ld bc, Unknown_11c854
@@ -1179,7 +1199,7 @@ Function11c7bc: ; 11c7bc (47:47bc)
ret
.asm_11c7e9
- ld hl, wd100
+ ld hl, wListPointer
ld a, [wcd26]
ld e, a
add hl, de
@@ -1265,7 +1285,6 @@ Function11c7bc: ; 11c7bc (47:47bc)
pop hl
pop de
ret
-
; 11c854 (47:4854)
Unknown_11c854: ; 11c854
@@ -1339,7 +1358,6 @@ Function11c86e: ; 11c86e (47:486e)
dec c
jr nz, .asm_11c8c2
ret
-
; 11c8c7 (47:48c7)
BCD2String: ; 11c8c7
@@ -1363,7 +1381,6 @@ BCD2String: ; 11c8c7
add "0"
ld [hli], a
ret
-
; 11c8ec
MobileString_Page: ; 11c8ec
@@ -1379,7 +1396,7 @@ MobileString_Next: ; 11c8f3
; 11c8f6
Function11c8f6: ; 11c8f6 (47:48f6)
- ld a, [wcd20] ; wcd20 (aliases: CreditsPos)
+ ld a, [wcd20] ; wcd20
call Function11c95d
push hl
ld a, [wcd2b]
@@ -1390,7 +1407,7 @@ Function11c8f6: ; 11c8f6 (47:48f6)
and a
jr z, .asm_11c927
ld hl, wcd26
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
add [hl]
.asm_11c911
ld e, a
@@ -1399,7 +1416,7 @@ Function11c8f6: ; 11c8f6 (47:48f6)
push de
call Function11c05d
pop de
- ld a, [wcd20] ; wcd20 (aliases: CreditsPos)
+ ld a, [wcd20] ; wcd20
ld c, a
ld b, $0
ld hl, wcd36
@@ -1412,11 +1429,11 @@ Function11c8f6: ; 11c8f6 (47:48f6)
.asm_11c927
ld hl, wcd26
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
add [hl]
ld c, a
ld b, $0
- ld hl, wd100
+ ld hl, wListPointer
add hl, bc
ld a, [hl]
jr .asm_11c911
@@ -1438,7 +1455,7 @@ Function11c8f6: ; 11c8f6 (47:48f6)
ld d, $0
add hl, de
add hl, de
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
ld e, a
add hl, de
add hl, de
@@ -1480,7 +1497,6 @@ Function11c95d: ; 11c95d (47:495d)
jr nz, .asm_11c980
pop hl
ret
-
; 11c986 (47:4986)
Unknown_11c986:
@@ -1544,7 +1560,7 @@ Function11c9c3: ; 11c9c3 (47:49c3)
jr nz, .asm_11c9e9
call Function11ca5e
xor a
- ld [wcd20], a ; wcd20 (aliases: CreditsPos)
+ ld [wcd20], a ; wcd20
.asm_11c9e9
ld hl, wcd24
set 4, [hl]
@@ -1606,7 +1622,6 @@ Function11ca19: ; 11ca19 (47:4a19)
jr nz, .asm_11ca22
callba ReloadMapPart
ret
-
; 11ca38 (47:4a38)
String_11ca38: ; 11ca38
@@ -1621,13 +1636,13 @@ String_11ca57: ; 11ca57
Function11ca5e: ; 11ca5e (47:4a5e)
xor a
-.asm_11ca5f
+.loop
push af
call Function11ca6a
pop af
inc a
cp $6
- jr nz, .asm_11ca5f
+ jr nz, .loop
ret
Function11ca6a: ; 11ca6a (47:4a6a)
@@ -1736,7 +1751,6 @@ Function11cab3: ; 11cab3 (47:4ab3)
ret nz
inc [hl]
ret
-
; 11cb1c (47:4b1c)
String_11cb1c: ; 11cb1c
@@ -1867,7 +1881,6 @@ Function11cbf5: ; 11cbf5 (47:4bf5)
dec hl
set 7, [hl]
ret
-
; 11cc01 (47:4c01)
Unknown_11cc01: ; 11cc01
@@ -1933,7 +1946,6 @@ Function11cd04: ; 11cd04 (47:4d04)
ld a, $4
ld [wJumptableIndex], a
ret
-
; 11cd10 (47:4d10)
String_11cd10: ; 11cd10
@@ -1941,7 +1953,7 @@ String_11cd10: ; 11cd10
; 11cd20
Function11cd20: ; 11cd20 (47:4d20)
- call Function11c277
+ call EZChat_ClearBottom12Rows
ld de, Unknown_11cfc6
call Function11cfce
hlcoord 1, 14
@@ -2033,7 +2045,6 @@ Function11cdaa: ; 11cdaa (47:4daa)
call ByteFill
callba ReloadMapPart
ret
-
; 11cdc7 (47:4dc7)
String_11cdc7: ; 11cdc7
@@ -2054,12 +2065,12 @@ String_11cdf5: ; 11cdf5
; 11ce0b
Function11ce0b: ; 11ce0b (47:4e0b)
- call Function11c277
+ call EZChat_ClearBottom12Rows
hlcoord 1, 7
ld de, String_11cf79
call PlaceString
hlcoord 1, 17
- ld de, String_11c62a
+ ld de, EZChatString_Stop_Mode_Cancel
call PlaceString
call Function11c618
ld hl, wcd24
@@ -2110,16 +2121,16 @@ Function11ce2b: ; 11ce2b (47:4e2b)
cp NUM_KANA
jr c, .place
sub NUM_KANA
- jr z, .asm_11cea4
+ jr z, .done
dec a
- jr z, .asm_11ce96
+ jr z, .mode
jr .b
.start
ld hl, wcd24
set 0, [hl]
ld a, $8
- ld [wcd20], a ; wcd20 (aliases: CreditsPos)
+ ld [wcd20], a ; wcd20
.b
ld a, $4
jr .load
@@ -2135,7 +2146,7 @@ Function11ce2b: ; 11ce2b (47:4e2b)
ld a, $8
jr .load
-.asm_11ce96
+.mode
ld a, $13
.load
ld [wJumptableIndex], a
@@ -2144,8 +2155,8 @@ Function11ce2b: ; 11ce2b (47:4e2b)
call PlayClickSFX
ret
-.asm_11cea4
- ld a, [wcd20] ; wcd20 (aliases: CreditsPos)
+.done
+ ld a, [wcd20] ; wcd20
call Function11ca6a
call PlayClickSFX
ret
@@ -2162,7 +2173,6 @@ Function11ce2b: ; 11ce2b (47:4e2b)
ret z
ld [wcd22], a
ret
-
; 11ceb9 (47:4eb9)
Unknown_11ceb9: ; 11ceb9
@@ -2278,7 +2288,6 @@ Function11cfb5: ; 11cfb5 (47:4fb5)
ld hl, wJumptableIndex
inc [hl]
ret
-
; 11cfba (47:4fba)
Unknown_11cfba:
@@ -2304,19 +2313,19 @@ Unknown_11cfca:
Function11cfce: ; 11cfce (47:4fce)
hlcoord 0, 0
- ld bc, $14
+ ld bc, SCREEN_WIDTH
ld a, [de]
inc de
push af
ld a, [de]
inc de
and a
-.asm_11cfda
- jr z, .asm_11cfe0
+.add_n_times
+ jr z, .done_add_n_times
add hl, bc
dec a
- jr .asm_11cfda
-.asm_11cfe0
+ jr .add_n_times
+.done_add_n_times
pop af
ld c, a
ld b, 0
@@ -2328,82 +2337,82 @@ Function11cfce: ; 11cfce (47:4fce)
inc de
dec a
dec a
- jr z, .asm_11cff6
+ jr z, .skip_fill
ld c, a
ld a, $7a
-.asm_11cff2
+.fill_loop
ld [hli], a
dec c
- jr nz, .asm_11cff2
-.asm_11cff6
+ jr nz, .fill_loop
+.skip_fill
ld a, $7b
ld [hl], a
pop hl
- ld bc, $14
+ ld bc, SCREEN_WIDTH
add hl, bc
ld a, [de]
dec de
dec a
dec a
- jr z, .asm_11d022
+ jr z, .skip_section
ld b, a
-.asm_11d005
+.loop
push hl
ld a, $7c
ld [hli], a
ld a, [de]
dec a
dec a
- jr z, .asm_11d015
+ jr z, .skip_row
ld c, a
ld a, $7f
-.asm_11d011
+.row_loop
ld [hli], a
dec c
- jr nz, .asm_11d011
-.asm_11d015
+ jr nz, .row_loop
+.skip_row
ld a, $7c
ld [hl], a
pop hl
push bc
- ld bc, $14
+ ld bc, SCREEN_WIDTH
add hl, bc
pop bc
dec b
- jr nz, .asm_11d005
-.asm_11d022
+ jr nz, .loop
+.skip_section
ld a, $7d
ld [hli], a
ld a, [de]
dec a
dec a
- jr z, .asm_11d031
+ jr z, .skip_remainder
ld c, a
ld a, $7a
-.asm_11d02d
+.final_loop
ld [hli], a
dec c
- jr nz, .asm_11d02d
-.asm_11d031
+ jr nz, .final_loop
+.skip_remainder
ld a, $7e
ld [hl], a
ret
Function11d035: ; 11d035 (47:5035)
hlcoord 0, 0
- ld bc, $14
+ ld bc, SCREEN_WIDTH
ld a, [de]
inc de
push af
ld a, [de]
inc de
and a
-.asm_11d041
- jr z, .asm_11d047
+.add_n_times
+ jr z, .done_add_n_times
add hl, bc
dec a
- jr .asm_11d041
-.asm_11d047
+ jr .add_n_times
+.done_add_n_times
pop af
ld c, a
ld b, $0
@@ -2420,27 +2429,27 @@ Function11d035: ; 11d035 (47:5035)
add hl, bc
ld a, $7b
ld [hl], a
- call Function11d0ac
+ call .AddNMinusOneTimes
ld a, $7e
ld [hl], a
pop hl
push hl
- call Function11d0ac
+ call .AddNMinusOneTimes
ld a, $7d
ld [hl], a
pop hl
push hl
inc hl
push hl
- call Function11d0ac
+ call .AddNMinusOneTimes
pop bc
dec de
ld a, [de]
cp $2
- jr z, .asm_11d082
+ jr z, .skip
dec a
dec a
-.asm_11d078
+.loop
push af
ld a, $7a
ld [hli], a
@@ -2448,8 +2457,8 @@ Function11d035: ; 11d035 (47:5035)
inc bc
pop af
dec a
- jr nz, .asm_11d078
-.asm_11d082
+ jr nz, .loop
+.skip
pop hl
ld bc, $14
add hl, bc
@@ -2470,32 +2479,32 @@ Function11d035: ; 11d035 (47:5035)
ld c, a
ld b, a
ld de, $14
-.asm_11d09c
+.loop2
ld a, $7c
ld [hl], a
add hl, de
dec c
- jr nz, .asm_11d09c
+ jr nz, .loop2
pop hl
-.asm_11d0a4
+.loop3
ld a, $7c
ld [hl], a
add hl, de
dec b
- jr nz, .asm_11d0a4
+ jr nz, .loop3
ret
-Function11d0ac: ; 11d0ac (47:50ac)
+.AddNMinusOneTimes: ; 11d0ac (47:50ac)
ld a, [de]
dec a
- ld bc, $14
-.asm_11d0b1
+ ld bc, SCREEN_WIDTH
+.add_n_minus_one_times
add hl, bc
dec a
- jr nz, .asm_11d0b1
+ jr nz, .add_n_minus_one_times
ret
-Function11d0b6: ; 11d0b6 (47:50b6)
+AnimateEZChatCursor: ; 11d0b6 (47:50b6)
ld hl, SPRITEANIMSTRUCT_0C
add hl, bc
ld a, [hl]
@@ -2522,41 +2531,41 @@ Function11d0b6: ; 11d0b6 (47:50b6)
dw .nine
dw .ten
-
.zero ; 11d0dd (47:50dd)
- ld a, [wcd20] ; wcd20 (aliases: CreditsPos)
+ ld a, [wcd20] ; wcd20
sla a
- ld hl, Unknown_11d208
+ ld hl, .Coords_Zero
ld e, $1
jr .load
.one ; 11d0e9 (47:50e9)
ld a, [wcd21]
sla a
- ld hl, Unknown_11d21a
+ ld hl, .Coords_One
ld e, $2
jr .load
.two ; 11d0f5 (47:50f5)
- ld hl, Unknown_11d2be
+ ld hl, .FramesetsIDs_Two
ld a, [wcd22]
ld e, a
ld d, $0
add hl, de
ld a, [hl]
call ReinitSpriteAnimFrame
+
ld a, [wcd22]
sla a
- ld hl, Unknown_11d23e
+ ld hl, .Coords_Two
ld e, $4
jr .load
.three ; 11d10f (47:510f)
ld a, SPRITE_ANIM_FRAMESET_27
call ReinitSpriteAnimFrame
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
sla a
- ld hl, Unknown_11d29e
+ ld hl, .Coords_Three
ld e, $8
.load ; 11d11e (47:511e)
push de
@@ -2574,7 +2583,7 @@ Function11d0b6: ; 11d0b6 (47:50b6)
ld [hl], a
pop de
ld a, e
- call Function11d2ee
+ call .UpdateObjectFlags
ret
.four ; 11d134 (47:5134)
@@ -2582,7 +2591,7 @@ Function11d0b6: ; 11d0b6 (47:50b6)
call ReinitSpriteAnimFrame
ld a, [wcd2a]
sla a
- ld hl, Unknown_11d2b6
+ ld hl, .Coords_Four
ld e, $10
jr .load
@@ -2591,42 +2600,47 @@ Function11d0b6: ; 11d0b6 (47:50b6)
call ReinitSpriteAnimFrame
ld a, [wcd2c]
sla a
- ld hl, Unknown_11d2ba
+ ld hl, .Coords_Five
ld e, $20
jr .load
.six ; 11d156 (47:5156)
ld a, SPRITE_ANIM_FRAMESET_2A
call ReinitSpriteAnimFrame
+ ; X = [wcd4a] * 8 + 24
ld a, [wcd4a]
sla a
sla a
sla a
add $18
- ld hl, $4
+ ld hl, SPRITEANIMSTRUCT_XCOORD
add hl, bc
ld [hli], a
+ ; Y = 48
ld a, $30
ld [hl], a
+
ld a, $1
ld e, a
- call Function11d2ee
+ call .UpdateObjectFlags
ret
.seven ; 11d175 (47:5175)
- ld a, [wcd4d]
+ ld a, [wEZChatCursorYCoord]
cp $4
- jr z, .asm_11d180
+ jr z, .frameset_26
ld a, SPRITE_ANIM_FRAMESET_28
- jr .asm_11d182
-.asm_11d180
+ jr .got_frameset
+
+.frameset_26
ld a, SPRITE_ANIM_FRAMESET_26
-.asm_11d182
+.got_frameset
call ReinitSpriteAnimFrame
- ld a, [wcd4d]
+ ld a, [wEZChatCursorYCoord]
cp $4
jr z, .asm_11d1b1
- ld a, [wcd4c]
+ ; X = [wEZChatCursorXCoord] * 8 + 32
+ ld a, [wEZChatCursorXCoord]
sla a
sla a
sla a
@@ -2634,7 +2648,8 @@ Function11d0b6: ; 11d0b6 (47:50b6)
ld hl, SPRITEANIMSTRUCT_XCOORD
add hl, bc
ld [hli], a
- ld a, [wcd4d]
+ ; Y = [wEZChatCursorYCoord] * 16 + 72
+ ld a, [wEZChatCursorYCoord]
sla a
sla a
sla a
@@ -2643,11 +2658,12 @@ Function11d0b6: ; 11d0b6 (47:50b6)
ld [hl], a
ld a, $2
ld e, a
- call Function11d2ee
+ call .UpdateObjectFlags
ret
.asm_11d1b1
- ld a, [wcd4c]
+ ; X = [wEZChatCursorXCoord] * 40 + 24
+ ld a, [wEZChatCursorXCoord]
sla a
sla a
sla a
@@ -2659,11 +2675,12 @@ Function11d0b6: ; 11d0b6 (47:50b6)
ld hl, SPRITEANIMSTRUCT_XCOORD
add hl, bc
ld [hli], a
+ ; Y = 138
ld a, $8a
ld [hl], a
ld a, $2
ld e, a
- call Function11d2ee
+ call .UpdateObjectFlags
ret
.nine ; 11d1d1 (47:51d1)
@@ -2692,7 +2709,7 @@ Function11d0b6: ; 11d0b6 (47:50b6)
ld [hl], a
ld a, $4
ld e, a
- call Function11d2ee
+ call .UpdateObjectFlags
ret
.ten ; 11d1fc (47:51fc)
@@ -2700,141 +2717,164 @@ Function11d0b6: ; 11d0b6 (47:50b6)
call ReinitSpriteAnimFrame
ld a, $8
ld e, a
- call Function11d2ee
+ call .UpdateObjectFlags
ret
-
; 11d208 (47:5208)
-Unknown_11d208: ; 11d208
- db $0d, $1a
- db $3d, $1a
- db $6d, $1a
- db $0d, $2a
- db $3d, $2a
- db $6d, $2a
- db $0d, $8a
- db $3d, $8a
- db $6d, $8a
-
-Unknown_11d21a: ; 11d21a
- db $0d, $42
- db $3d, $42
- db $6d, $42
- db $0d, $52
- db $3d, $52
- db $6d, $52
- db $0d, $62
- db $3d, $62
- db $6d, $62
- db $0d, $72
- db $3d, $72
- db $6d, $72
- db $0d, $82
- db $3d, $82
- db $6d, $82
- db $0d, $92
- db $3d, $92
- db $6d, $92
-
-Unknown_11d23e: ; 11d23e
- db $10, $48
- db $18, $48
- db $20, $48
- db $28, $48
- db $30, $48
- db $10, $58
- db $18, $58
- db $20, $58
- db $28, $58
- db $30, $58
- db $10, $68
- db $18, $68
- db $20, $68
- db $28, $68
- db $30, $68
- db $10, $78
- db $18, $78
- db $20, $78
- db $28, $78
- db $30, $78
- db $40, $48
- db $48, $48
- db $50, $48
- db $58, $48
- db $60, $48
- db $40, $58
- db $48, $58
- db $50, $58
- db $58, $58
- db $60, $58
- db $40, $68
- db $48, $68
- db $50, $68
- db $58, $68
- db $60, $68
- db $70, $48
- db $80, $48
- db $90, $48
- db $40, $78
- db $48, $78
- db $50, $78
- db $58, $78
- db $60, $78
- db $70, $58
- db $70, $68
- db $0d, $92
- db $3d, $92
- db $6d, $92
-
-Unknown_11d29e: ; 11d29e
- db $10, $50
- db $40, $50
- db $70, $50
- db $10, $60
- db $40, $60
- db $70, $60
- db $10, $70
- db $40, $70
- db $70, $70
- db $10, $80
- db $40, $80
- db $70, $80
-
-Unknown_11d2b6: ; 11d2b6
- db $80, $50
- db $80, $60
-
-Unknown_11d2ba: ; 11d2ba
- db $20, $50
- db $20, $60
-
-Unknown_11d2be: ; 11d2be
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $29, $26
- db $26, $26
-
-Function11d2ee: ; 11d2ee (47:52ee)
+.Coords_Zero: ; 11d208
+ dbpixel 1, 3, 5, 2
+ dbpixel 7, 3, 5, 2
+ dbpixel 13, 3, 5, 2
+ dbpixel 1, 5, 5, 2
+ dbpixel 7, 5, 5, 2
+ dbpixel 13, 5, 5, 2
+ dbpixel 1, 17, 5, 2
+ dbpixel 7, 17, 5, 2
+ dbpixel 13, 17, 5, 2
+
+.Coords_One: ; 11d21a
+ dbpixel 1, 8, 5, 2
+ dbpixel 7, 8, 5, 2
+ dbpixel 13, 8, 5, 2
+ dbpixel 1, 10, 5, 2
+ dbpixel 7, 10, 5, 2
+ dbpixel 13, 10, 5, 2
+ dbpixel 1, 12, 5, 2
+ dbpixel 7, 12, 5, 2
+ dbpixel 13, 12, 5, 2
+ dbpixel 1, 14, 5, 2
+ dbpixel 7, 14, 5, 2
+ dbpixel 13, 14, 5, 2
+ dbpixel 1, 16, 5, 2
+ dbpixel 7, 16, 5, 2
+ dbpixel 13, 16, 5, 2
+ dbpixel 1, 18, 5, 2
+ dbpixel 7, 18, 5, 2
+ dbpixel 13, 18, 5, 2
+
+.Coords_Two: ; 11d23e
+ dbpixel 2, 9 ; 00
+ dbpixel 3, 9 ; 01
+ dbpixel 4, 9 ; 02
+ dbpixel 5, 9 ; 03
+ dbpixel 6, 9 ; 04
+ dbpixel 2, 11 ; 05
+ dbpixel 3, 11 ; 06
+ dbpixel 4, 11 ; 07
+ dbpixel 5, 11 ; 08
+ dbpixel 6, 11 ; 09
+ dbpixel 2, 13 ; 0a
+ dbpixel 3, 13 ; 0b
+ dbpixel 4, 13 ; 0c
+ dbpixel 5, 13 ; 0d
+ dbpixel 6, 13 ; 0e
+ dbpixel 2, 15 ; 0f
+ dbpixel 3, 15 ; 10
+ dbpixel 4, 15 ; 11
+ dbpixel 5, 15 ; 12
+ dbpixel 6, 15 ; 13
+ dbpixel 8, 9 ; 14
+ dbpixel 9, 9 ; 15
+ dbpixel 10, 9 ; 16
+ dbpixel 11, 9 ; 17
+ dbpixel 12, 9 ; 18
+ dbpixel 8, 11 ; 19
+ dbpixel 9, 11 ; 1a
+ dbpixel 10, 11 ; 1b
+ dbpixel 11, 11 ; 1c
+ dbpixel 12, 11 ; 1d
+ dbpixel 8, 13 ; 1e
+ dbpixel 9, 13 ; 1f
+ dbpixel 10, 13 ; 20
+ dbpixel 11, 13 ; 21
+ dbpixel 12, 13 ; 22
+ dbpixel 14, 9 ; 23
+ dbpixel 16, 9 ; 24
+ dbpixel 18, 9 ; 25
+ dbpixel 8, 15 ; 26
+ dbpixel 9, 15 ; 27
+ dbpixel 10, 15 ; 28
+ dbpixel 11, 15 ; 29
+ dbpixel 12, 15 ; 2a
+ dbpixel 14, 11 ; 2b
+ dbpixel 14, 13 ; 2c
+ dbpixel 1, 18, 5, 2 ; 2d
+ dbpixel 7, 18, 5, 2 ; 2e
+ dbpixel 13, 18, 5, 2 ; 2f
+
+.Coords_Three: ; 11d29e
+ dbpixel 2, 10
+ dbpixel 8, 10
+ dbpixel 14, 10
+ dbpixel 2, 12
+ dbpixel 8, 12
+ dbpixel 14, 12
+ dbpixel 2, 14
+ dbpixel 8, 14
+ dbpixel 14, 14
+ dbpixel 2, 16
+ dbpixel 8, 16
+ dbpixel 14, 16
+
+.Coords_Four: ; 11d2b6
+ dbpixel 16, 10
+ dbpixel 16, 12
+
+.Coords_Five: ; 11d2ba
+ dbpixel 4, 10
+ dbpixel 4, 12
+
+.FramesetsIDs_Two: ; 11d2be
+ db SPRITE_ANIM_FRAMESET_28 ; 00
+ db SPRITE_ANIM_FRAMESET_28 ; 01
+ db SPRITE_ANIM_FRAMESET_28 ; 02
+ db SPRITE_ANIM_FRAMESET_28 ; 03
+ db SPRITE_ANIM_FRAMESET_28 ; 04
+ db SPRITE_ANIM_FRAMESET_28 ; 05
+ db SPRITE_ANIM_FRAMESET_28 ; 06
+ db SPRITE_ANIM_FRAMESET_28 ; 07
+ db SPRITE_ANIM_FRAMESET_28 ; 08
+ db SPRITE_ANIM_FRAMESET_28 ; 09
+ db SPRITE_ANIM_FRAMESET_28 ; 0a
+ db SPRITE_ANIM_FRAMESET_28 ; 0b
+ db SPRITE_ANIM_FRAMESET_28 ; 0c
+ db SPRITE_ANIM_FRAMESET_28 ; 0d
+ db SPRITE_ANIM_FRAMESET_28 ; 0e
+ db SPRITE_ANIM_FRAMESET_28 ; 0f
+ db SPRITE_ANIM_FRAMESET_28 ; 10
+ db SPRITE_ANIM_FRAMESET_28 ; 11
+ db SPRITE_ANIM_FRAMESET_28 ; 12
+ db SPRITE_ANIM_FRAMESET_28 ; 13
+ db SPRITE_ANIM_FRAMESET_28 ; 14
+ db SPRITE_ANIM_FRAMESET_28 ; 15
+ db SPRITE_ANIM_FRAMESET_28 ; 16
+ db SPRITE_ANIM_FRAMESET_28 ; 17
+ db SPRITE_ANIM_FRAMESET_28 ; 18
+ db SPRITE_ANIM_FRAMESET_28 ; 19
+ db SPRITE_ANIM_FRAMESET_28 ; 1a
+ db SPRITE_ANIM_FRAMESET_28 ; 1b
+ db SPRITE_ANIM_FRAMESET_28 ; 1c
+ db SPRITE_ANIM_FRAMESET_28 ; 1d
+ db SPRITE_ANIM_FRAMESET_28 ; 1e
+ db SPRITE_ANIM_FRAMESET_28 ; 1f
+ db SPRITE_ANIM_FRAMESET_28 ; 20
+ db SPRITE_ANIM_FRAMESET_28 ; 21
+ db SPRITE_ANIM_FRAMESET_28 ; 22
+ db SPRITE_ANIM_FRAMESET_28 ; 23
+ db SPRITE_ANIM_FRAMESET_28 ; 24
+ db SPRITE_ANIM_FRAMESET_28 ; 25
+ db SPRITE_ANIM_FRAMESET_28 ; 26
+ db SPRITE_ANIM_FRAMESET_28 ; 27
+ db SPRITE_ANIM_FRAMESET_28 ; 28
+ db SPRITE_ANIM_FRAMESET_28 ; 29
+ db SPRITE_ANIM_FRAMESET_28 ; 2a
+ db SPRITE_ANIM_FRAMESET_28 ; 2b
+ db SPRITE_ANIM_FRAMESET_29 ; 2c
+ db SPRITE_ANIM_FRAMESET_26 ; 2d
+ db SPRITE_ANIM_FRAMESET_26 ; 2e
+ db SPRITE_ANIM_FRAMESET_26 ; 2f
+
+.UpdateObjectFlags: ; 11d2ee (47:52ee)
ld hl, wcd24
and [hl]
jr nz, .update_y_offset
@@ -2887,7 +2927,6 @@ Function11d323: ; 11d323
pop af
ld [rSVBK], a
ret
-
; 11d33a
Palette_11d33a:
@@ -2970,10 +3009,9 @@ Palette_11d33a:
RGB 00, 00, 00
RGB 00, 00, 00
RGB 00, 00, 00
-
; 11d3ba
-Function11d3ba: ; 11d3ba
+EZChat_GetSeenPokemonByKana: ; 11d3ba
ld a, [rSVBK]
push af
ld hl, $c648
@@ -2999,23 +3037,25 @@ Function11d3ba: ; 11d3ba
ld a, $c64a / $100
ld [wcd34], a
- ld hl, Unknown_11f23c
- ld a, (Unknown_11f23cEnd - Unknown_11f23c) / 4
+ ld hl, EZChat_SortedWords
+ ld a, (EZChat_SortedWordsEnd - EZChat_SortedWords) / 4
.MasterLoop: ; 11d3ef
push af
; read row
+; offset
ld a, [hli]
ld e, a
ld a, [hli]
ld d, a
+; size
ld a, [hli]
ld c, a
ld a, [hli]
ld b, a
; save the pointer to the next row
push hl
-; add de to hl
+; add de to w3_d000
ld hl, w3_d000
add hl, de
; recover de from wcd2d (default: w5_d800)
@@ -3052,6 +3092,7 @@ Function11d3ba: ; 11d3ba
ld a, c
or b
jr nz, .loop1
+
; recover the pointer from wcd2f (default: SortedPokemon)
ld a, [wcd2f]
ld l, a
@@ -3146,7 +3187,6 @@ Function11d3ba: ; 11d3ba
pop af
ld [rSVBK], a
ret
-
; 11d493
.CheckSeenMon: ; 11d493
@@ -3165,55 +3205,79 @@ Function11d3ba: ; 11d3ba
pop bc
pop hl
ret
-
; 11d4aa
-Function11d4aa: ; 11d4aa
+EZChat_GetCategoryWordsByKana: ; 11d4aa
ld a, [rSVBK]
push af
ld a, $3
ld [rSVBK], a
- ld hl, MobileFixedWordCategoryPointers
- ld bc, Unknown_11f220
+
+ ; load pointers
+ ld hl, MobileEZChatCategoryPointers
+ ld bc, MobileEZChatData_WordAndPageCounts
+
+ ; init WRAM registers
xor a
ld [wcd2d], a
inc a
ld [wcd2e], a
- ld a, $e
+
+ ; enter the first loop
+ ld a, 14
.loop1
push af
+
+ ; load the pointer to the category
ld a, [hli]
ld e, a
ld a, [hli]
ld d, a
push hl
+
+ ; skip to the attributes
ld hl, 5 ; length of a string
add hl, de
- ld a, [bc]
+
+ ; get the number of words in the category
+ ld a, [bc] ; number of entries to copy
inc bc
inc bc
push bc
+
.loop2
push af
push hl
+
+ ; load offset at [hl]
ld a, [hli]
ld e, a
ld a, [hl]
ld d, a
+
+ ; add to w3_d000
ld hl, w3_d000
add hl, de
+
+ ; copy from wcd2d and increment [wcd2d] in place
ld a, [wcd2d]
ld [hli], a
inc a
ld [wcd2d], a
+
+ ; copy from wcd2e
ld a, [wcd2e]
ld [hl], a
+
+ ; next entry
pop hl
ld de, 8
add hl, de
pop af
dec a
jr nz, .loop2
+
+ ; reset and go to next category
ld hl, wcd2d
xor a
ld [hli], a
@@ -3226,10 +3290,8 @@ Function11d4aa: ; 11d4aa
pop af
ld [rSVBK], a
ret
-
; 11d4fe
-
SortedPokemon:
; Pokemon sorted by kana.
; Notably, Rhydon is missing.
@@ -3377,7 +3439,7 @@ LZ_11d6de:
INCBIN "gfx/pokedex/slowpoke.2bpp.lz"
; 11da52
-MobileFixedWordCategoryNames: ; 11da52
+MobileEZChatCategoryNames: ; 11da52
; Fixed message categories
db "ポケモン@@" ; 00
db "タイプ@@@" ; 01
@@ -3396,7 +3458,7 @@ MobileFixedWordCategoryNames: ; 11da52
db "あれこれ@@" ; 0e
; 11daac
-MobileFixedWordCategoryPointers: ; 11daac
+MobileEZChatCategoryPointers: ; 11daac
dw .Types ; 01
dw .Greetings ; 02
dw .People ; 03
@@ -4188,72 +4250,87 @@ MobileFixedWordCategoryPointers: ; 11daac
db "なんの@@", $2, $4, $0
; 11f220
-Unknown_11f220:
- db $12, $01 ; 01
- db $24, $02 ; 02
- db $45, $05 ; 03
- db $45, $05 ; 04
- db $42, $05 ; 05
- db $42, $05 ; 06
- db $45, $05 ; 07
- db $42, $05 ; 08
- db $27, $03 ; 09
- db $27, $03 ; 0a
- db $45, $05 ; 0b
- db $27, $03 ; 0c
- db $42, $05 ; 0d
- db $24, $02 ; 0e
-
-Unknown_11f23c:
+MobileEZChatData_WordAndPageCounts:
+macro_11f220: macro
+; parameter: number of words
+ db \1
+; 12 words per page (0-based indexing)
+x = \1 / 12
+if \1 % 12 == 0
+x = x +- 1
+endc
+ db x
+endm
+ macro_11f220 18 ; 01: Types
+ macro_11f220 36 ; 02: Greetings
+ macro_11f220 69 ; 03: People
+ macro_11f220 69 ; 04: Battle
+ macro_11f220 66 ; 05: Exclamations
+ macro_11f220 66 ; 06: Conversation
+ macro_11f220 69 ; 07: Feelings
+ macro_11f220 66 ; 08: Conditions
+ macro_11f220 39 ; 09: Life
+ macro_11f220 39 ; 0a: Hobbies
+ macro_11f220 69 ; 0b: Actions
+ macro_11f220 39 ; 0c: Time
+ macro_11f220 66 ; 0d: Farewells
+ macro_11f220 36 ; 0e: ThisAndThat
+
+EZChat_SortedWords:
+; Addresses in WRAM bank 3 where EZChat words beginning
+; with the given kana are sorted in memory, and the pre-
+; allocated size for each.
+; These arrays are expanded dynamically to accomodate
+; any Pokemon you've seen that starts with each kana.\
macro_11f23c: macro
dw x - w3_d000, \1
x = x + 2 * \1
endm
x = $d012
- macro_11f23c $2f
- macro_11f23c $1e
- macro_11f23c $11
- macro_11f23c $09
- macro_11f23c $2e
- macro_11f23c $24
- macro_11f23c $1b
- macro_11f23c $09
- macro_11f23c $07
- macro_11f23c $1c
- macro_11f23c $12
- macro_11f23c $2b
- macro_11f23c $10
- macro_11f23c $08
- macro_11f23c $0c
- macro_11f23c $2c
- macro_11f23c $09
- macro_11f23c $12
- macro_11f23c $1b
- macro_11f23c $1a
- macro_11f23c $1c
- macro_11f23c $05
- macro_11f23c $02
- macro_11f23c $05
- macro_11f23c $07
- macro_11f23c $16
- macro_11f23c $0e
- macro_11f23c $0c
- macro_11f23c $05
- macro_11f23c $16
- macro_11f23c $19
- macro_11f23c $0e
- macro_11f23c $08
- macro_11f23c $07
- macro_11f23c $09
- macro_11f23c $0d
- macro_11f23c $04
- macro_11f23c $14
- macro_11f23c $0b
- macro_11f23c $01
- macro_11f23c $02
- macro_11f23c $02
- macro_11f23c $02
- macro_11f23c $15
+ macro_11f23c $2f ; a
+ macro_11f23c $1e ; i
+ macro_11f23c $11 ; u
+ macro_11f23c $09 ; e
+ macro_11f23c $2e ; o
+ macro_11f23c $24 ; ka_ga
+ macro_11f23c $1b ; ki_gi
+ macro_11f23c $09 ; ku_gu
+ macro_11f23c $07 ; ke_ge
+ macro_11f23c $1c ; ko_go
+ macro_11f23c $12 ; sa_za
+ macro_11f23c $2b ; shi_ji
+ macro_11f23c $10 ; su_zu
+ macro_11f23c $08 ; se_ze
+ macro_11f23c $0c ; so_zo
+ macro_11f23c $2c ; ta_da
+ macro_11f23c $09 ; chi_dhi
+ macro_11f23c $12 ; tsu_du
+ macro_11f23c $1b ; te_de
+ macro_11f23c $1a ; to_do
+ macro_11f23c $1c ; na
+ macro_11f23c $05 ; ni
+ macro_11f23c $02 ; nu
+ macro_11f23c $05 ; ne
+ macro_11f23c $07 ; no
+ macro_11f23c $16 ; ha_ba_pa
+ macro_11f23c $0e ; hi_bi_pi
+ macro_11f23c $0c ; fu_bu_pu
+ macro_11f23c $05 ; he_be_pe
+ macro_11f23c $16 ; ho_bo_po
+ macro_11f23c $19 ; ma
+ macro_11f23c $0e ; mi
+ macro_11f23c $08 ; mu
+ macro_11f23c $07 ; me
+ macro_11f23c $09 ; mo
+ macro_11f23c $0d ; ya
+ macro_11f23c $04 ; yu
+ macro_11f23c $14 ; yo
+ macro_11f23c $0b ; ra
+ macro_11f23c $01 ; ri
+ macro_11f23c $02 ; ru
+ macro_11f23c $02 ; re
+ macro_11f23c $02 ; ro
+ macro_11f23c $15 ; wa
x = $d000
- macro_11f23c $09
-Unknown_11f23cEnd:
+ macro_11f23c $09 ; end
+EZChat_SortedWordsEnd:
diff --git a/misc/gfx_41.asm b/misc/gfx_41.asm
index dc5110e2e..e3a1a0375 100755
--- a/misc/gfx_41.asm
+++ b/misc/gfx_41.asm
@@ -1,52 +1,52 @@
-Function104000:: ; 104000
+HDMATransferAttrMapAndTileMapToWRAMBank3:: ; 104000
ld hl, .Function
jp CallInSafeGFXMode
.Function:
decoord 0, 0, AttrMap
- ld hl, wBackupAttrMap
+ ld hl, wScratchAttrMap
call CutAndPasteAttrMap
decoord 0, 0
- ld hl, wDecompressScratch
+ ld hl, wScratchTileMap
call CutAndPasteTilemap
ld a, $0
ld [rVBK], a
- ld hl, wDecompressScratch
- call Function10419d
+ ld hl, wScratchTileMap
+ call HDMATransferToWRAMBank3
ld a, $1
ld [rVBK], a
- ld hl, wBackupAttrMap
- call Function10419d
+ ld hl, wScratchAttrMap
+ call HDMATransferToWRAMBank3
ret
; 10402d
-Function10402d:: ; 10402d
+HDMATransferTileMapToWRAMBank3:: ; 10402d
ld hl, .Function
jp CallInSafeGFXMode
.Function:
decoord 0, 0
- ld hl, wDecompressScratch
+ ld hl, wScratchTileMap
call CutAndPasteTilemap
ld a, $0
ld [rVBK], a
- ld hl, wDecompressScratch
- call Function10419d
+ ld hl, wScratchTileMap
+ call HDMATransferToWRAMBank3
ret
; 104047
-Function104047: ; 104047
+HDMATransferAttrMapToWRAMBank3: ; 104047
ld hl, .Function
jp CallInSafeGFXMode
.Function:
decoord 0, 0, AttrMap
- ld hl, wBackupAttrMap
+ ld hl, wScratchAttrMap
call CutAndPasteAttrMap
ld a, $1
ld [rVBK], a
- ld hl, wBackupAttrMap
- call Function10419d
+ ld hl, wScratchAttrMap
+ call HDMATransferToWRAMBank3
ret
; 104061
@@ -56,63 +56,67 @@ ReloadMapPart:: ; 104061
.Function:
decoord 0, 0, AttrMap
- ld hl, wBackupAttrMap
+ ld hl, wScratchAttrMap
call CutAndPasteAttrMap
decoord 0, 0
- ld hl, wDecompressScratch
+ ld hl, wScratchTileMap
call CutAndPasteTilemap
call DelayFrame
+
di
ld a, [rVBK]
push af
ld a, $1
ld [rVBK], a
- ld hl, wBackupAttrMap
- call Function1041ad
+ ld hl, wScratchAttrMap
+ call HDMATransfer_Wait127Scanlines_toBGMap
ld a, $0
ld [rVBK], a
- ld hl, wDecompressScratch
- call Function1041ad
+ ld hl, wScratchTileMap
+ call HDMATransfer_Wait127Scanlines_toBGMap
pop af
ld [rVBK], a
ei
+
ret
-Function104099: ; 104099
+Mobile_ReloadMapPart: ; 104099
ld hl, ReloadMapPart ; useless
ld hl, .Function
jp CallInSafeGFXMode
.Function:
decoord 0, 0, AttrMap
- ld hl, wBackupAttrMap
+ ld hl, wScratchAttrMap
call CutAndPasteAttrMap
decoord 0, 0
- ld hl, wDecompressScratch
+ ld hl, wScratchTileMap
call CutAndPasteTilemap
call DelayFrame
+
di
ld a, [rVBK]
push af
ld a, $1
ld [rVBK], a
- ld hl, wBackupAttrMap
- call Function1041c1
+ ld hl, wScratchAttrMap
+ call HDMATransfer_NoDI
ld a, $0
ld [rVBK], a
- ld hl, wDecompressScratch
- call Function1041c1
+ ld hl, wScratchTileMap
+ call HDMATransfer_NoDI
pop af
ld [rVBK], a
ei
+
ret
; 1040d4
-Function1040d4: ; 1040d4
- ld hl, .Function
+; XXX
+ ld hl, .unreferenced_1040da
jp CallInSafeGFXMode
-.Function:
+.unreferenced_1040da
ld a, $1
ld [rVBK], a
ld a, $3
@@ -132,31 +136,34 @@ Function1040d4: ; 1040d4
ret
; 1040fb
-Function1040fb: ; 1040fb
- ld hl, .Function
+; XXX
+ ld hl, .unreferenced_104101
jp CallInSafeGFXMode
-.Function:
+.unreferenced_104101
ld a, $1
ld [rVBK], a
ld a, $3
ld [rSVBK], a
ld hl, w3_d800
- call Function10419d
+ call HDMATransferToWRAMBank3
ret
; 104110
-Function104110:: ; 104110
+OpenAndCloseMenu_HDMATransferTileMapAndAttrMap:: ; 104110
; OpenText
ld hl, .Function
jp CallInSafeGFXMode
.Function:
+ ; Transfer AttrMap and Tilemap to BGMap
+ ; Fill vBGAttrs with $00
+ ; Fill vBGTiles with " "
decoord 0, 0, AttrMap
- ld hl, wBackupAttrMap
+ ld hl, wScratchAttrMap
call CutAndPasteAttrMap
decoord 0, 0
- ld hl, wDecompressScratch
+ ld hl, wScratchTileMap
call CutAndPasteTilemap
call DelayFrame
@@ -165,38 +172,42 @@ Function104110:: ; 104110
push af
ld a, $1
ld [rVBK], a
- ld hl, wBackupAttrMap
- call Function1041b7
+ ld hl, wScratchAttrMap
+ call HDMATransfer_Wait123Scanlines_toBGMap
ld a, $0
ld [rVBK], a
- ld hl, wDecompressScratch
- call Function1041b7
+ ld hl, wScratchTileMap
+ call HDMATransfer_Wait123Scanlines_toBGMap
pop af
ld [rVBK], a
ei
ret
; 104148
-Function104148: ; 104148 (41:4148)
+Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap: ; 104148 (41:4148)
ld hl, .Function
jp CallInSafeGFXMode
.Function:
+ ; Transfer AttrMap and Tilemap to BGMap
+ ; Fill vBGAttrs with $00
+ ; Fill vBGTiles with $ff
decoord 0, 0, AttrMap
- ld hl, wBackupAttrMap
+ ld hl, wScratchAttrMap
call CutAndPasteAttrMap
ld c, $ff
decoord 0, 0
- ld hl, wDecompressScratch
+ ld hl, wScratchTileMap
call CutAndPasteMap
+
ld a, $1
ld [rVBK], a
- ld hl, wBackupAttrMap
- call Function1041ad
+ ld hl, wScratchAttrMap
+ call HDMATransfer_Wait127Scanlines_toBGMap
ld a, $0
ld [rVBK], a
- ld hl, wDecompressScratch
- call Function1041ad
+ ld hl, wScratchTileMap
+ call HDMATransfer_Wait127Scanlines_toBGMap
ret
; 104177
@@ -233,8 +244,8 @@ CallInSafeGFXMode: ; 104177
; 10419d
-Function10419d: ; 10419d (41:419d)
- call Function10424e
+HDMATransferToWRAMBank3: ; 10419d (41:419d)
+ call _LoadHDMAParameters
ld a, $23
ld [hDMATransfer], a
@@ -246,60 +257,76 @@ WaitDMATransfer: ; 104a14
jr nz, .loop
ret
-Function1041ad: ; 1041ad (41:41ad)
+HDMATransfer_Wait127Scanlines_toBGMap: ; 1041ad (41:41ad)
+; HDMA transfer from hl to [hBGMapAddress]
+; hBGMapAddress -> de
+; 2 * SCREEN_HEIGHT -> c
ld a, [hBGMapAddress + 1]
ld d, a
ld a, [hBGMapAddress]
ld e, a
- ld c, $24
- jr Function104209
+ ld c, 2 * SCREEN_HEIGHT
+ jr HDMATransfer_Wait127Scanlines
-Function1041b7: ; 1041b7 (41:41b7)
+HDMATransfer_Wait123Scanlines_toBGMap: ; 1041b7 (41:41b7)
+; HDMA transfer from hl to [hBGMapAddress]
; hBGMapAddress -> de
-; $24 -> c
+; 2 * SCREEN_HEIGHT -> c
; $7b --> b
ld a, [hBGMapAddress + 1]
ld d, a
ld a, [hBGMapAddress]
ld e, a
- ld c, $24
- jr asm_104205
+ ld c, 2 * SCREEN_HEIGHT
+ jr HDMATransfer_Wait123Scanlines
; 1041c1 (41:41c1)
-Function1041c1: ; 1041c1
+HDMATransfer_NoDI: ; 1041c1
+; HDMA transfer from hl to [hBGMapAddress]
+; [hBGMapAddress] --> de
+; 2 * SCREEN_HEIGHT --> c
ld a, [hBGMapAddress + 1]
ld d, a
ld a, [hBGMapAddress]
ld e, a
- ld c, $24
+ ld c, 2 * SCREEN_HEIGHT
+
+ ; [rHDMA1, rHDMA2] = hl & $fff0
ld a, h
ld [rHDMA1], a
ld a, l
and $f0
ld [rHDMA2], a
+ ; [rHDMA3, rHDMA4] = de & $1ff0
ld a, d
and $1f
ld [rHDMA3], a
ld a, e
and $f0
ld [rHDMA4], a
+ ; b = c | %10000000
ld a, c
dec c
or $80
ld b, a
+ ; d = $7f - c + 1
ld a, $7f
sub c
ld d, a
+ ; while [rLY] >= d: pass
.loop1
ld a, [rLY]
cp d
jr nc, .loop1
+ ; while not [rSTAT] & 3: pass
.loop2
ld a, [rSTAT]
and $3
jr z, .loop2
+ ; load the 5th byte of HDMA
ld a, b
ld [rHDMA5], a
+ ; wait until rLY advances (c + 1) times
ld a, [rLY]
inc c
ld hl, rLY
@@ -314,49 +341,58 @@ Function1041c1: ; 1041c1
ret
; 104205
-asm_104205:
+HDMATransfer_Wait123Scanlines:
ld b, $7b
- jr asm_10420b
+ jr _continue_HDMATransfer
-Function104209:
-; LY magic
+HDMATransfer_Wait127Scanlines:
ld b, $7f
-asm_10420b:
+_continue_HDMATransfer:
+; a lot of waiting around for hardware registers
+ ; [rHDMA1, rHDMA2] = hl & $fff0
ld a, h
ld [rHDMA1], a
ld a, l
and $f0 ; high nybble
ld [rHDMA2], a
+ ; [rHDMA3, rHDMA4] = de & $1ff0
ld a, d
and $1f ; lower 5 bits
ld [rHDMA3], a
ld a, e
and $f0 ; high nybble
ld [rHDMA4], a
+ ; e = c | %10000000
ld a, c
dec c
- or $80 ; set 7, a
+ or $80
ld e, a
+ ; d = b - c + 1
ld a, b
sub c
ld d, a
+ ; while [rLY] >= d: pass
.ly_loop
ld a, [rLY]
cp d
jr nc, .ly_loop
di
+ ; while [rSTAT] & 3: pass
.rstat_loop_1
ld a, [rSTAT]
and $3
jr nz, .rstat_loop_1
+ ; while not [rSTAT] & 3: pass
.rstat_loop_2
ld a, [rSTAT]
and $3
jr z, .rstat_loop_2
+ ; load the 5th byte of HDMA
ld a, e
ld [rHDMA5], a
+ ; wait until rLY advances (c + 1) times
ld a, [rLY]
inc c
ld hl, rLY
@@ -374,7 +410,7 @@ asm_10420b:
; 10424e
-Function10424e: ; 10424e (41:424e)
+_LoadHDMAParameters: ; 10424e (41:424e)
ld a, h
ld [rHDMA1], a
ld a, l
@@ -415,7 +451,7 @@ CutAndPasteMap: ; 104265 (41:4265)
; load the original value of c into hl 12 times
ld a, [hMapObjectIndexBuffer]
- ld b, 12
+ ld b, BG_MAP_WIDTH - SCREEN_WIDTH
.loop3
ld [hli], a
dec b
@@ -441,18 +477,20 @@ _Get2bpp:: ; 104284
push bc
push hl
- ; Copy c tiles of the 2bpp from b:de to wDecompressScratch
+ ; Copy c tiles of the 2bpp from b:de to wScratchTileMap
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
+ ; multiply by 16 (16 bytes of a 2bpp = 8 x 8 tile)
+ add hl, hl
+ add hl, hl
+ add hl, hl
+ add hl, hl
ld b, h
ld c, l
ld h, d ; address
ld l, e
- ld de, wDecompressScratch
+ ld de, wScratchTileMap
call FarCopyBytes
pop hl
@@ -464,8 +502,8 @@ endr
ld d, h
ld e, l
- ld hl, wDecompressScratch
- call Function104209
+ ld hl, wScratchTileMap
+ call HDMATransfer_Wait127Scanlines
; restore the previous bank
pop af
@@ -512,14 +550,14 @@ _Get1bpp:: ; 1042b2
ld a, b
ld l, c
ld h, $0
-rept 3
add hl, hl ; multiply by 8
-endr
+ add hl, hl ; multiply by 8
+ add hl, hl ; multiply by 8
ld c, l
ld b, h
ld h, d
ld l, e
- ld de, wDecompressScratch
+ ld de, wScratchTileMap
call FarCopyBytesDouble_DoubleBankSwitch
pop hl
@@ -531,41 +569,41 @@ endr
ld d, h
ld e, l
- ld hl, wDecompressScratch
- call Function104209
+ ld hl, wScratchTileMap
+ call HDMATransfer_Wait127Scanlines
pop af
ld [rSVBK], a
ret
; 104303
-Function104303: ; 104303
- ld hl, Function104309
+HDMATransfer_OnlyTopFourRows: ; 104303
+ ld hl, .Function
jp CallInSafeGFXMode
; 104309
-Function104309:
- ld hl, wDecompressScratch
+.Function:
+ ld hl, wScratchTileMap
decoord 0, 0
- call Function10433a
- ld hl, wDecompressScratch + $80
+ call .Copy
+ ld hl, wScratchTileMap + $80
decoord 0, 0, AttrMap
- call Function10433a
+ call .Copy
ld a, $1
ld [rVBK], a
ld c, $8
- ld hl, wDecompressScratch + $80
+ ld hl, wScratchTileMap + $80
debgcoord 0, 0, VBGMap1
- call Function104209
+ call HDMATransfer_Wait127Scanlines
ld a, $0
ld [rVBK], a
ld c, $8
- ld hl, wDecompressScratch
+ ld hl, wScratchTileMap
debgcoord 0, 0, VBGMap1
- call Function104209
+ call HDMATransfer_Wait127Scanlines
ret
-Function10433a: ; 10433a (41:433a)
+.Copy: ; 10433a (41:433a)
ld b, 4
.outer_loop
ld c, SCREEN_WIDTH
@@ -576,7 +614,7 @@ Function10433a: ; 10433a (41:433a)
dec c
jr nz, .inner_loop
ld a, l
- add $20 - SCREEN_WIDTH
+ add BG_MAP_WIDTH - SCREEN_WIDTH
ld l, a
ld a, h
adc $0
diff --git a/misc/mobile_12.asm b/misc/mobile_12.asm
index dd0f63135..69a5551a7 100755
--- a/misc/mobile_12.asm
+++ b/misc/mobile_12.asm
@@ -11,14 +11,14 @@ InitMobileProfile: ; 4802f (12:402f)
call Function48d3d
ld a, [wd479]
bit 1, a
- jr z, .asm_4805a
+ jr z, .not_yet_initialized
ld a, [wd003]
set 0, a
set 1, a
set 2, a
set 3, a
ld [wd003], a
-.asm_4805a
+.not_yet_initialized
call Function486bf
call LoadFontsExtra
ld de, GFX_488c3
@@ -125,22 +125,22 @@ Function48157: ; 48157 (12:4157)
ld hl, wMenuCursorY
ld b, [hl]
push bc
-
asm_4815f: ; 4815f (12:415f)
- bit 0, a
+ bit A_BUTTON_F, a
jp nz, Function4820d
ld b, a
ld a, [wd002]
bit 6, a
- jr z, .asm_48177
+ jr z, .dont_check_b_button
ld hl, wd479
bit 1, [hl]
- jr z, .asm_48177
- bit 1, b
- jr nz, .asm_4817a
-.asm_48177
+ jr z, .dont_check_b_button
+ bit B_BUTTON_F, b
+ jr nz, .b_button
+.dont_check_b_button
jp Function48272
-.asm_4817a
+
+.b_button
call ClearBGPalettes
call Function48d30
pop bc
@@ -258,7 +258,7 @@ Function4820d: ; 4820d (12:420d)
call Function48d30
pop bc
call ClearTileMap
- ld b, SCGB_08
+ ld b, SCGB_DIPLOMA
call GetSGBLayout
ld hl, wd479
set 1, [hl]
@@ -359,7 +359,7 @@ Function48304: ; 48304 (12:4304)
ld a, $29
.asm_4833f
ld [wMenuScrollPosition], a
- callba Function104148
+ callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
.asm_48348
call ScrollingMenu
ld de, $629
@@ -385,7 +385,7 @@ Function48304: ; 48304 (12:4304)
ld [wd003], a
.asm_48377
call Function48187
- callba Function104148
+ callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
jp Function4840c
Function48383: ; 48383 (12:4383)
@@ -497,13 +497,14 @@ Function4840c: ; 4840c (12:440c)
ld [hl], b
ld a, [wd002]
bit 6, a
- jr nz, .asm_48437
+ jr nz, .narrower_box
ld b, 9
ld c, 1
hlcoord 1, 4
call ClearBox
jp Function48157
-.asm_48437
+
+.narrower_box
ld b, 7
ld c, 1
hlcoord 1, 6
@@ -667,13 +668,13 @@ Function48689: ; 48689 (12:4689)
call GetMysteryGift_MobileAdapterLayout
call ClearBGPalettes
hlcoord 0, 0
- ld b, $4
- ld c, $14
+ ld b, 4
+ ld c, SCREEN_WIDTH
call ClearBox
hlcoord 0, 2
ld a, $c
ld [hl], a
- ld bc, $13
+ ld bc, SCREEN_WIDTH - 1
add hl, bc
ld [hl], a
ld de, MobileProfileString
@@ -689,121 +690,139 @@ Function486bf: ; 486bf (12:46bf)
ld hl, w2DMenuCursorInitY
ld a, [wd002]
bit 6, a
- jr nz, .asm_486ce
- ld a, $4
- ld [hli], a
- jr .asm_486d1
-.asm_486ce
- ld a, $6
+ jr nz, .start_at_6
+ ld a, 4
ld [hli], a
-.asm_486d1
- ld a, $1
+ jr .got_init_y
+
+.start_at_6
+ ld a, 6
ld [hli], a
+.got_init_y
+ ld a, 1
+ ld [hli], a ; init x
ld a, [wd002]
bit 6, a
- jr nz, .asm_486e7
+ jr nz, .check_wd479
call Function48725
- ld a, $4
- jr nc, .asm_486e4
- ld a, $5
-.asm_486e4
+ ld a, 4
+ jr nc, .got_num_rows_1
+ ld a, 5
+.got_num_rows_1
ld [hli], a
- jr .asm_486fb
-.asm_486e7
+ jr .got_num_rows_2
+
+.check_wd479
ld a, [wd479]
bit 1, a
- jr nz, .asm_486f8
+ jr nz, .four_rows
call Function48725
- jr c, .asm_486f8
- ld a, $3
- ld [hli], a
- jr .asm_486fb
-.asm_486f8
- ld a, $4
+ jr c, .four_rows
+ ld a, 3
ld [hli], a
-.asm_486fb
- ld a, $1
+ jr .got_num_rows_2
+
+.four_rows
+ ld a, 4
ld [hli], a
- ld [hl], $0
+.got_num_rows_2
+ ld a, 1
+ ld [hli], a ; num cols
+ ld [hl], $0 ; flags 1
set 5, [hl]
inc hl
xor a
- ld [hli], a
+ ld [hli], a ; flags 2
ld a, $20
- ld [hli], a
- ld a, $1
- add $40
- add $80
+ ld [hli], a ; cursor offsets
+ ld a, A_BUTTON
+ add D_UP
+ add D_DOWN
push af
ld a, [wd002]
bit 6, a
- jr z, .asm_4871a
+ jr z, .got_joypad_mask
pop af
- add $2
+ add B_BUTTON
push af
-.asm_4871a
+.got_joypad_mask
pop af
ld [hli], a
ld a, $1
- ld [hli], a
- ld [hli], a
+ ld [hli], a ; cursor y
+ ld [hli], a ; cursor x
xor a
-rept 3
- ld [hli], a
-endr
+ ld [hli], a ; off char
+ ld [hli], a ; cursor tile
+ ld [hli], a ; cursor tile + 1
ret
Function48725: ; 48725 (12:4725)
+; ld a, [wd003]
+; and $f
+; cp $f
+; jr nz, .clear_carry
+; scf
+; ret
+; .clear_carry
+; and a
+; ret
+
ld a, [wd003]
bit 0, a
- jr z, .asm_4873a
+ jr z, .clear_carry
bit 1, a
- jr z, .asm_4873a
+ jr z, .clear_carry
bit 2, a
- jr z, .asm_4873a
+ jr z, .clear_carry
bit 3, a
- jr z, .asm_4873a
+ jr z, .clear_carry
scf
ret
-.asm_4873a
+
+.clear_carry
and a
ret
Function4873c: ; 4873c (12:473c)
ld hl, w2DMenuCursorInitY
- ld a, $4
- ld [hli], a
- ld a, $c
- ld [hli], a
- ld a, $2
- ld [hli], a
- ld a, $1
+ ld a, 4
ld [hli], a
- ld [hl], $0
+ ld a, 12
+ ld [hli], a ; init x
+ ld a, 2
+ ld [hli], a ; num rows
+ ld a, 1
+ ld [hli], a ; num cols
+ ld [hl], $0 ; flags 1
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 [hli], a ; flags 2
+ ln a, 2, 0
+ ld [hli], a ; cursor offsets
+ ld a, A_BUTTON
+ add B_BUTTON
+ ld [hli], a ; joypad filter
+ ; ld a, [PlayerGender]
+ ; xor 1
+ ; inc a
ld a, [PlayerGender]
and a
- jr z, .asm_48764
- ld a, $2
- jr .asm_48766
-.asm_48764
+ jr z, .male
+ ld a, 2
+ jr .okay_gender
+
+.male
+ ld a, 1
+.okay_gender
+ ld [hli], a ; cursor y
ld a, $1
-.asm_48766
- ld [hli], a
- ld a, $1
- ld [hli], a
+ ld [hli], a ; cursor x
xor a
-rept 3
- ld [hli], a
-endr
+ ld [hli], a ; off char
+ ld [hli], a ; cursor tile
+ ld [hli], a ; cursor tile + 1
ret
Function4876f: ; 4876f (12:476f)
diff --git a/misc/mobile_12_2.asm b/misc/mobile_12_2.asm
index 05e92cd55..2bdd6ddc3 100755
--- a/misc/mobile_12_2.asm
+++ b/misc/mobile_12_2.asm
@@ -53,9 +53,9 @@ MobileCheckOwnMonAnywhere: ; 4a843
jr z, .asm_4a8d1
ld hl, .BoxAddrs
ld b, 0
-rept 3
add hl, bc
-endr
+ add hl, bc
+ add hl, bc
ld a, [hli]
call GetSRAMBank
ld a, [hli]
@@ -616,9 +616,8 @@ Function4abc3: ; 4abc3
ld a, [wMenuCursorY]
ld [wMenuCursorY], a
ld a, [PartyCount]
-rept 2
inc a
-endr
+ inc a
ld b, a
ld a, [wMenuCursorY]
cp b
diff --git a/misc/mobile_22.asm b/misc/mobile_22.asm
index c9a844b42..17b526586 100644
--- a/misc/mobile_22.asm
+++ b/misc/mobile_22.asm
@@ -45,7 +45,9 @@ Function8917a: ; 8917a (22:517a)
ret
Function89185: ; 89185 (22:5185)
-; Compares c bytes starting at de and hl and incrementing together until a match is found.
+; strcmp(hl, de, c)
+; Compares c bytes starting at de and hl and incrementing together until a mismatch is found.
+; Preserves hl and de.
push de
push hl
.loop
@@ -62,7 +64,9 @@ Function89185: ; 89185 (22:5185)
ret
Function89193: ; 89193
+; copy(hl, de, 4)
; Copies c bytes from hl to de.
+; Preserves hl and de.
push de
push hl
.loop
@@ -92,14 +96,14 @@ Function8919e: ; 8919e (22:519e)
ret
Function891ab: ; 891ab
- call Function89240
+ call Mobile22_SetBGMapMode1
callba ReloadMapPart
- call Function8923c
+ call Mobile22_SetBGMapMode0
ret
; 891b8
Function891b8: ; 891b8
- call Function8923c
+ call Mobile22_SetBGMapMode0
hlcoord 0, 0
ld a, " "
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
@@ -125,7 +129,7 @@ Function891d3: ; 891d3 (22:51d3)
ret
Function891de: ; 891de
- call Function8923c
+ call Mobile22_SetBGMapMode0
call ClearPalettes
hlcoord 0, 0, AttrMap
ld a, $7
@@ -193,18 +197,18 @@ Function8921f: ; 8921f (22:521f)
pop de
ret
-Function89235: ; 89235 (22:5235)
+Mobile22_ButtonSound: ; 89235 (22:5235)
call JoyWaitAorB
call PlayClickSFX
ret
-Function8923c: ; 8923c
+Mobile22_SetBGMapMode0: ; 8923c
xor a
ld [hBGMapMode], a
ret
; 89240
-Function89240: ; 89240
+Mobile22_SetBGMapMode1: ; 89240
ld a, $1
ld [hBGMapMode], a
ret
@@ -249,7 +253,7 @@ Function89261: ; 89261
pop af
ld [wMenuCursorBuffer], a
call PushWindow
- call Function8923c
+ call Mobile22_SetBGMapMode0
call Function89209
call VerticalMenu
push af
@@ -355,10 +359,10 @@ Function89305: ; 89305 (22:5305)
Function8931b: ; 8931b
push hl
- ld hl, $a03b
+ ld hl, $a03b ; 4:a03b
ld a, [MenuSelection]
dec a
- ld bc, $0025
+ ld bc, 37
call AddNTimes
ld b, h
ld c, l
@@ -371,7 +375,9 @@ Function8932d: ; 8932d
add hl, bc
Function89331: ; 89331
-; Scans up to 5 characters starting at hl, looking for a nonspace character up to the next terminator. Sets carry if it does not find a nonspace character. Returns the location of the following character in hl.
+; Scans up to 5 characters starting at hl, looking for a nonspace character up to the next terminator.
+; Sets carry if it does not find a nonspace character.
+; Returns the location of the following character in hl.
push bc
ld c, 5
.loop
@@ -669,9 +675,8 @@ Function894dc: ; 894dc
ld c, d
ld b, 0
ld hl, .PalettePointers
-rept 2
add hl, bc
-endr
+ add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
@@ -770,7 +775,7 @@ Function8956f: ; 8956f
add hl, bc
ld b, h
ld c, l
- callba Function4e929
+ callba GetMobileOTTrainerClass
ld a, c
ld [TrainerClass], a
ld a, [rSVBK]
@@ -787,9 +792,8 @@ Function8956f: ; 8956f
ld a, [TrainerClass]
ld h, 0
ld l, a
-rept 2
add hl, hl
-endr
+ add hl, hl
ld de, TrainerPalettes
add hl, de
ld a, [rSVBK]
@@ -1043,9 +1047,8 @@ Function896eb: ; 896eb
Function896f5: ; 896f5
call Function8971f
call Function89736
-rept 2
inc hl
-endr
+ inc hl
ld b, 2
ClearScreenArea: ; 0x896ff
@@ -1071,9 +1074,8 @@ ClearScreenArea: ; 0x896ff
jr nz, .loop
dec hl
-rept 2
inc c
-endr
+ inc c
.asm_89713
ld a, $36
ld [hli], a
@@ -1107,9 +1109,8 @@ Function8971f: ; 8971f
Function89736: ; 89736
push hl
-rept 2
inc hl
-endr
+ inc hl
ld e, c
ld d, $0
add hl, de
@@ -1145,9 +1146,8 @@ Function8975b: ; 8975b
ld [hli], a
ld a, $d
ld [hl], a
-rept 2
dec hl
-endr
+ dec hl
ld a, $4
ld e, $3
.asm_89769
@@ -1220,7 +1220,7 @@ Function897af: ; 897af
add hl, bc
ld b, h
ld c, l
- callba Function4e929
+ callba GetMobileOTTrainerClass
ld a, c
ld [TrainerClass], a
xor a
@@ -1655,44 +1655,44 @@ String_89a53: ; 89a53
; 89a57
Function89a57: ; 89a57
- call Function354b
- bit 6, c
- jr nz, .asm_89a78
- bit 7, c
- jr nz, .asm_89a81
- bit 0, c
- jr nz, .asm_89a70
- bit 1, c
- jr nz, .asm_89a70
- bit 3, c
- jr nz, .asm_89a74
+ call JoyTextDelay_ForcehJoyDown ; joypad
+ bit D_UP_F, c
+ jr nz, .d_up
+ bit D_DOWN_F, c
+ jr nz, .d_down
+ bit A_BUTTON_F, c
+ jr nz, .a_b_button
+ bit B_BUTTON_F, c
+ jr nz, .a_b_button
+ bit START_F, c
+ jr nz, .start_button
scf
ret
-.asm_89a70
+.a_b_button
ld a, $1
and a
ret
-.asm_89a74
+.start_button
ld a, $2
and a
ret
-.asm_89a78
- call Function89a9b
- call nc, Function89a8a
+.d_up
+ call .MoveCursorUp
+ call nc, .PlayPocketSwitchSFX
ld a, $0
ret
-.asm_89a81
- call Function89a93
- call nc, Function89a8a
+.d_down
+ call .MoveCursorDown
+ call nc, .PlayPocketSwitchSFX
ld a, $0
ret
; 89a8a
-Function89a8a: ; 89a8a
+.PlayPocketSwitchSFX: ; 89a8a
push af
ld de, SFX_SWITCH_POCKETS
call PlaySFX
@@ -1700,42 +1700,42 @@ Function89a8a: ; 89a8a
ret
; 89a93
-Function89a93: ; 89a93
- ld d, $28
- ld e, $1
- call Function89aa3
+.MoveCursorDown: ; 89a93
+ ld d, 40
+ ld e, 1
+ call .ApplyCursorMovement
ret
; 89a9b
-Function89a9b: ; 89a9b
- ld d, $1
- ld e, $ff
- call Function89aa3
+.MoveCursorUp: ; 89a9b
+ ld d, 1
+ ld e, -1
+ call .ApplyCursorMovement
ret
; 89aa3
-Function89aa3: ; 89aa3
+.ApplyCursorMovement: ; 89aa3
ld a, [MenuSelection]
ld c, a
push bc
-.asm_89aa8
+.loop
ld a, [MenuSelection]
cp d
- jr z, .asm_89ac0
+ jr z, .equal_to_d
add e
- jr nz, .asm_89ab2
+ jr nz, .not_zero
inc a
-.asm_89ab2
+.not_zero
ld [MenuSelection], a
- call Function89ac7
- jr nc, .asm_89aa8
- call Function89ae6
+ call .Function89ac7 ; BCD conversion of data in SRAM?
+ jr nc, .loop
+ call .Function89ae6 ; split [MenuSelection] into [wd030] + [wd031] where [wd030] <= 5
pop bc
and a
ret
-.asm_89ac0
+.equal_to_d
pop bc
ld a, c
ld [MenuSelection], a
@@ -1743,48 +1743,48 @@ Function89aa3: ; 89aa3
ret
; 89ac7
-Function89ac7: ; 89ac7
+.Function89ac7: ; 89ac7
call OpenSRAMBank4
call Function8931b
- call Function89ad4
+ call .Function89ad4
call CloseSRAM
ret
; 89ad4
-Function89ad4: ; 89ad4
+.Function89ad4: ; 89ad4
push de
- call Function8932d
- jr c, .asm_89ae3
- ld hl, $0011
+ call Function8932d ; find a non-space character within 5 bytes of bc
+ jr c, .no_nonspace_character
+ ld hl, 17
add hl, bc
call Function89b45
- jr c, .asm_89ae4
+ jr c, .finish_decode
-.asm_89ae3
+.no_nonspace_character
and a
-.asm_89ae4
+.finish_decode
pop de
ret
; 89ae6
-Function89ae6: ; 89ae6
+.Function89ae6: ; 89ae6
ld hl, wd031
xor a
ld [hl], a
ld a, [MenuSelection]
-.asm_89aee
- cp $6
- jr c, .asm_89afc
- sub $5
+.loop2
+ cp 6
+ jr c, .load_and_ret
+ sub 5
ld c, a
ld a, [hl]
- add $5
+ add 5
ld [hl], a
ld a, c
- jr .asm_89aee
+ jr .loop2
-.asm_89afc
+.load_and_ret
ld [wd030], a
ret
; 89b00
@@ -1796,7 +1796,7 @@ Function89b00: ; 89b00 (22:5b00)
; 89b07 (22:5b07)
Function89b07: ; 89b07
- call Function8923c
+ call Mobile22_SetBGMapMode0
call DelayFrame
callba Function4a3a7
ret
@@ -1824,53 +1824,55 @@ Function89b28: ; 89b28 (22:5b28)
ret
Function89b3b: ; 89b3b (22:5b3b)
- call Function8923c
+ call Mobile22_SetBGMapMode0
callba Function48cda
ret
Function89b45: ; 89b45
+ ; some sort of decoder?
+ ; BCD?
push hl
push bc
ld c, $10
ld e, $0
-.asm_89b4b
+.loop
ld a, [hli]
ld b, a
and $f
- cp $a
- jr c, .asm_89b5a
+ cp 10
+ jr c, .low_nybble_less_than_10
ld a, c
cp $b
- jr nc, .asm_89b74
- jr .asm_89b71
+ jr nc, .clear_carry
+ jr .set_carry
-.asm_89b5a
+.low_nybble_less_than_10
dec c
swap b
inc e
ld a, b
and $f
- cp $a
- jr c, .asm_89b6c
+ cp 10
+ jr c, .high_nybble_less_than_10
ld a, c
cp $b
- jr nc, .asm_89b74
- jr .asm_89b71
+ jr nc, .clear_carry
+ jr .set_carry
-.asm_89b6c
+.high_nybble_less_than_10
inc e
dec c
- jr nz, .asm_89b4b
+ jr nz, .loop
dec e
-.asm_89b71
+.set_carry
scf
- jr .asm_89b75
+ jr .finish
-.asm_89b74
+.clear_carry
and a
-.asm_89b75
+.finish
pop bc
pop hl
ret
@@ -1912,9 +1914,8 @@ Function89b97: ; 89b97 (22:5b97)
and a
jr z, .asm_89bae
.asm_89ba9
-rept 2
inc hl
-endr
+ inc hl
dec a
jr nz, .asm_89ba9
.asm_89bae
@@ -2034,56 +2035,59 @@ Function89c44: ; 89c44 (22:5c44)
ret
Function89c67: ; 89c67 (22:5c67)
- call Function354b
+; menu scrolling?
+ call JoyTextDelay_ForcehJoyDown ; joypad
ld b, $0
- bit 0, c
- jr z, .asm_89c74
+ bit A_BUTTON_F, c
+ jr z, .not_a_button
ld b, $1
and a
ret
-.asm_89c74
- bit 1, c
- jr z, .asm_89c7a
+
+.not_a_button
+ bit B_BUTTON_F, c
+ jr z, .not_b_button
scf
ret
-.asm_89c7a
+
+.not_b_button
xor a
- bit 6, c
- jr z, .asm_89c81
+ bit D_UP_F, c
+ jr z, .not_d_up
ld a, $1
-.asm_89c81
- bit 7, c
- jr z, .asm_89c87
+.not_d_up
+ bit D_DOWN_F, c
+ jr z, .not_d_down
ld a, $2
-.asm_89c87
- bit 5, c
- jr z, .asm_89c8d
+.not_d_down
+ bit D_LEFT_F, c
+ jr z, .not_d_left
ld a, $3
-.asm_89c8d
- bit 4, c
- jr z, .asm_89c93
+.not_d_left
+ bit D_RIGHT_F, c
+ jr z, .not_d_right
ld a, $4
-.asm_89c93
+.not_d_right
and a
- ret z
+ ret z ; no dpad pressed
dec a
ld c, a
ld d, $0
- ld hl, Unknown_89cbf
+ ld hl, .ScrollData0
ld a, [wd02f]
and a
- jr z, .asm_89ca5
- ld hl, Unknown_89ccf
-.asm_89ca5
+ jr z, .got_data
+ ld hl, .ScrollData1
+.got_data
ld a, [wd011]
and a
- jr z, .asm_89cb1
+ jr z, .got_row
ld e, $4
-.asm_89cad
+.add_n_times
add hl, de
dec a
- jr nz, .asm_89cad
-.asm_89cb1
+ jr nz, .add_n_times
+.got_row
ld e, c
add hl, de
ld a, [hl]
@@ -2096,13 +2100,13 @@ Function89c67: ; 89c67 (22:5c67)
ret
; 89cbf (22:5cbf)
-Unknown_89cbf: ; 89cbf
+.ScrollData0: ; 89cbf
db 0, 2, 0, 0
db 1, 3, 0, 0
db 2, 4, 0, 0
db 3, 0, 0, 0
-Unknown_89ccf: ; 89ccf
+.ScrollData1: ; 89ccf
db 0, 0, 0, 0
db 0, 3, 0, 0
db 2, 4, 0, 0
@@ -2148,44 +2152,48 @@ Function89cdf: ; 89cdf (22:5cdf)
ret
Function89d0d: ; 89d0d (22:5d0d)
- call Function8923c
+ call Mobile22_SetBGMapMode0
ld a, [rSVBK]
push af
ld a, $5
ld [rSVBK], a
- ld c, $8
+
+ ld c, 8
ld de, UnknBGPals
-.asm_89d1c
+.loop
push bc
- ld hl, Palette_89d4e
- ld bc, $8
+ ld hl, .Palette1
+ ld bc, 1 palettes
call CopyBytes
pop bc
dec c
- jr nz, .asm_89d1c
- ld hl, Palette_89d56
- ld de, wd010
- ld bc, $8
+ jr nz, .loop
+
+ ld hl, .Palette2
+ ld de, UnknBGPals + 2 palettes
+ ld bc, 1 palettes
call CopyBytes
+
pop af
ld [rSVBK], a
+
call SetPalettes
- callba Function845db
- call Function89240
- ld c, $18
+ callba PrintMail_
+ call Mobile22_SetBGMapMode1
+ ld c, 24
call DelayFrames
call RestartMapMusic
ret
; 89d4e (22:5d4e)
-Palette_89d4e: ; 89d4e
+.Palette1: ; 89d4e
RGB 31, 31, 31
RGB 19, 19, 19
RGB 15, 15, 15
RGB 00, 00, 00
; 89d56
-Palette_89d56: ; 89d56
+.Palette2: ; 89d56
RGB 31, 31, 31
RGB 19, 19, 19
RGB 19, 19, 19
@@ -2197,7 +2205,7 @@ Function89d5e: ; 89d5e (22:5d5e)
call CopyMenuDataHeader
pop af
ld [wMenuCursorBuffer], a
- call Function8923c
+ call Mobile22_SetBGMapMode0
call PlaceVerticalMenuItems
call InitVerticalMenuCursor
ld hl, w2DMenuFlags1
@@ -2206,21 +2214,21 @@ Function89d5e: ; 89d5e (22:5d5e)
Function89d75: ; 89d75 (22:5d75)
push hl
- call Function8923c
+ call Mobile22_SetBGMapMode0
call _hl_
- callba Function104148
+ callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
pop hl
jr asm_89d90
Function89d85: ; 89d85 (22:5d85)
push hl
- call Function8923c
+ call Mobile22_SetBGMapMode0
call _hl_
call CGBOnly_LoadEDTile
pop hl
asm_89d90: ; 89d90 (22:5d90)
- call Function8923c
+ call Mobile22_SetBGMapMode0
push hl
call _hl_
call Function89dab
@@ -2238,9 +2246,9 @@ asm_89d90: ; 89d90 (22:5d90)
ret
Function89dab: ; 89dab (22:5dab)
- call Function8923c
+ call Mobile22_SetBGMapMode0
callba MobileMenuJoypad
- call Function8923c
+ call Mobile22_SetBGMapMode0
ld a, c
ld hl, wMenuJoypadFilter
and [hl]
@@ -2312,7 +2320,7 @@ Jumptable_89e18: ; 89e18 (22:5e18)
Function89e1e: ; 89e1e (22:5e1e)
call OpenSRAMBank4
- ld bc, $a037
+ ld bc, $a037 ; 4:a037
call Function8b36c
call CloseSRAM
xor a
@@ -2418,7 +2426,7 @@ Function89eb9: ; 89eb9 (22:5eb9)
Function89ee1: ; 89ee1 (22:5ee1)
call ClearBGPalettes
call Function893e2
- call Function8923c
+ call Mobile22_SetBGMapMode0
callba Function4a3a7
callba MG_Mobile_Layout_CreatePalBoxes
hlcoord 1, 0
@@ -2523,9 +2531,8 @@ Function89f77: ; 89f77 (22:5f77)
ld [hli], a
ld a, c
ld [hli], a
-rept 2
inc hl
-endr
+ inc hl
ld a, $8
add c
ld c, a
@@ -2625,7 +2632,7 @@ Function89ff6: ; 89ff6 (22:5ff6)
call Function89a0c
call CloseSRAM
call Function891ab
- call Function89235
+ call Mobile22_ButtonSound
jp Function89e36
Function8a03d: ; 8a03d (22:603d)
@@ -2656,9 +2663,9 @@ Function8a055: ; 8a055 (22:6055)
ld a, $5
call Function8a5a3
pop hl
-rept 3
inc hl
-endr
+ inc hl
+ inc hl
ld a, $6
call Function8a5a3
call CGBOnly_LoadEDTile
@@ -2680,7 +2687,7 @@ endr
jp Function89e36
Function8a0a1: ; 8a0a1 (22:60a1)
- call Function8923c
+ call Mobile22_SetBGMapMode0
push bc
call Function8a0c9
ld e, $6
@@ -2781,7 +2788,7 @@ Function8a116: ; 8a116 (22:6116)
ld hl, MenuDataHeader_0x8a176
call LoadMenuDataHeader
.asm_8a121
- call Function8923c
+ call Mobile22_SetBGMapMode0
call Function8a17b
jr c, .asm_8a16b
ld a, [wMenuCursorY]
@@ -2948,7 +2955,7 @@ Function8a241: ; 8a241 (22:6241)
Function8a262: ; 8a262 (22:6262)
call ClearBGPalettes
call Function893e2
- call Function8923c
+ call Mobile22_SetBGMapMode0
callba Function4a3a7
callba MG_Mobile_Layout_CreatePalBoxes
hlcoord 1, 0
@@ -3042,7 +3049,7 @@ Function8a313: ; 8a313 (22:6313)
Function8a31c: ; 8a31c (22:631c)
push bc
- call Function8923c
+ call Mobile22_SetBGMapMode0
callba Function4a3a7
callba MG_Mobile_Layout_CreatePalBoxes
hlcoord 1, 0
@@ -3060,7 +3067,7 @@ Function8a31c: ; 8a31c (22:631c)
set 7, [hl]
.asm_8a34e
call Function8a3a2
- call Function8923c
+ call Mobile22_SetBGMapMode0
call Function8a453
call Function8a4d3
call Function8a4fc
@@ -3585,7 +3592,7 @@ Function8a6cd: ; 8a6cd (22:66cd)
call Function8a765
call CloseSRAM
jr nc, .asm_8a73f
- call Function8923c
+ call Mobile22_SetBGMapMode0
call Function89448
call Function89a23
hlcoord 1, 13
@@ -3804,7 +3811,7 @@ Function8a8c3: ; 8a8c3 (22:68c3)
call Function892b4
call CloseSRAM
call Function89a23
- call Function8923c
+ call Mobile22_SetBGMapMode0
hlcoord 1, 13
ld de, String_8a926
call PlaceString
@@ -4069,7 +4076,7 @@ Function8aab6: ; 8aab6 (22:6ab6)
; 8aaf0 (22:6af0)
String_8aaf0: ; 8aaf0
- db "あたらしい めいし", $4a, "できまし", $22, "@"
+ db "あたらしい めいし<PKMN>できまし<LNBRK>@"
; 8ab00
Function8ab00: ; 8ab00
@@ -4077,7 +4084,7 @@ Function8ab00: ; 8ab00
hlcoord 1, 13
call PlaceString
call WaitBGMap
- call Function89235
+ call Mobile22_ButtonSound
and a
ret
@@ -4104,6 +4111,7 @@ Function8ab11: ; 8ab11 (22:6b11)
ret
Function8ab3b: ; 8ab3b (22:6b3b)
+.pressed_start
call Function891fe
call ClearBGPalettes
call Function893cc
@@ -4122,23 +4130,24 @@ Function8ab3b: ; 8ab3b (22:6b3b)
call Function89a0c
call CloseSRAM
call Function891ab
- call Function8ab77
- jr c, Function8ab3b
- ret
-
-Function8ab77: ; 8ab77 (22:6b77)
- call Function354b
- bit 0, c
- jr nz, .asm_8ab8e
- bit 1, c
- jr nz, .asm_8ab8e
- bit 3, c
- jr z, Function8ab77
+ call .JoypadLoop
+ jr c, .pressed_start
+ ret
+
+.JoypadLoop: ; 8ab77 (22:6b77)
+ call JoyTextDelay_ForcehJoyDown
+ bit A_BUTTON_F, c
+ jr nz, .a_b_button
+ bit B_BUTTON_F, c
+ jr nz, .a_b_button
+ bit START_F, c
+ jr z, .JoypadLoop
call PlayClickSFX
call Function89d0d
scf
ret
-.asm_8ab8e
+
+.a_b_button
call PlayClickSFX
and a
ret
@@ -4363,7 +4372,7 @@ Function8ad0b: ; 8ad0b
jr z, .asm_8ad0b
cp $2
jr z, .asm_8ad37
- call Function8923c
+ call Mobile22_SetBGMapMode0
push bc
hlcoord 0, 12
ld b, $4
@@ -4375,7 +4384,7 @@ Function8ad0b: ; 8ad0b
ld a, $2
call Function8925e
jr c, .asm_8ad87
- call Function8923c
+ call Mobile22_SetBGMapMode0
hlcoord 0, 12
ld b, $4
ld c, $12
diff --git a/misc/mobile_22_2.asm b/misc/mobile_22_2.asm
index 880ae460a..321998dc7 100644
--- a/misc/mobile_22_2.asm
+++ b/misc/mobile_22_2.asm
@@ -54,16 +54,18 @@ Function8b363: ; 8b363
; 8b36c
Function8b36c: ; 8b36c (22:736c)
+ ; [bc + (0:4)] = -1
push bc
ld h, b
ld l, c
- ld bc, $4
+ ld bc, 4
ld a, -1
call ByteFill
pop bc
ret
Function8b379: ; 8b379 (22:7379)
+ ; d = [bc + e]
push bc
ld a, c
add e
@@ -77,6 +79,7 @@ Function8b379: ; 8b379 (22:7379)
ret
Function8b385: ; 8b385 (22:7385)
+ ; [bc + e] = d
push bc
ld a, c
add e
@@ -90,36 +93,39 @@ Function8b385: ; 8b385 (22:7385)
ret
Function8b391: ; 8b391 (22:7391)
+ ; find first e in range(4) such that [bc + e] == -1
+ ; if none exist, return carry
push bc
- ld e, $0
- ld d, $4
-.asm_8b396
+ ld e, 0
+ ld d, 4
+.loop
ld a, [bc]
inc bc
- cp $ff
- jr z, .asm_8b3a2
+ cp -1
+ jr z, .done
inc e
dec d
- jr nz, .asm_8b396
+ jr nz, .loop
dec e
scf
-.asm_8b3a2
+.done
pop bc
ret
Function8b3a4: ; 8b3a4 (22:73a4)
+ ; strcmp(hl, bc, 4)
push de
push bc
ld d, b
ld e, c
- ld c, $4
+ ld c, 4
call Function89185
pop bc
pop de
ret
Function8b3b0: ; 8b3b0 (22:73b0)
- ld bc, $a037
+ ld bc, $a037 ; 4:a037
ld a, [$a60b]
and a
jr z, .asm_8b3c2
@@ -153,82 +159,88 @@ Function8b3cd: ; 8b3cd (22:73cd)
Function8b3dd: ; 8b3dd (22:73dd)
push de
push bc
- call Function354b
+ call JoyTextDelay_ForcehJoyDown ; joypad
ld a, c
pop bc
pop de
- bit 0, a
- jr nz, .asm_8b3f7
- bit 1, a
- jr nz, .asm_8b40e
- bit 6, a
- jr nz, .asm_8b429
- bit 7, a
- jr nz, .asm_8b443
+ bit A_BUTTON_F, a
+ jr nz, .a_button
+ bit B_BUTTON_F, a
+ jr nz, .b_button
+ bit D_UP_F, a
+ jr nz, .d_up
+ bit D_DOWN_F, a
+ jr nz, .d_down
and a
ret
-.asm_8b3f7
+
+.a_button
ld a, e
cp $3
- jr z, .asm_8b407
+ jr z, .e_is_zero
inc e
- ld d, $0
+ ld d, 0
call Function8b385
xor a
ld [wd010], a
ret
-.asm_8b407
+
+.e_is_zero
call PlayClickSFX
ld d, $0
scf
ret
-.asm_8b40e
+
+.b_button
ld a, e
and a
- jr nz, .asm_8b41e
+ jr nz, .e_is_not_zero
call PlayClickSFX
- ld d, $ff
+ ld d, -1
call Function8b385
- ld d, $1
+ ld d, 1
scf
ret
-.asm_8b41e
- ld d, $ff
+
+.e_is_not_zero
+ ld d, -1
call Function8b385
dec e
xor a
ld [wd010], a
ret
-.asm_8b429
+
+.d_up
call Function8b379
ld a, d
cp $a
- jr c, .asm_8b433
+ jr c, .less_than_10_up_1
ld d, $9
-.asm_8b433
+.less_than_10_up_1
inc d
ld a, d
cp $a
- jr c, .asm_8b43b
+ jr c, .less_than_10_up_2
ld d, $0
-.asm_8b43b
+.less_than_10_up_2
call Function8b385
xor a
ld [wd010], a
ret
-.asm_8b443
+
+.d_down
call Function8b379
ld a, d
cp $a
- jr c, .asm_8b44d
+ jr c, .less_than_10_down
ld d, $0
-.asm_8b44d
+.less_than_10_down
ld a, d
dec d
and a
- jr nz, .asm_8b454
+ jr nz, .nonzero_down
ld d, $9
-.asm_8b454
+.nonzero_down
call Function8b385
xor a
ld [wd010], a
@@ -243,7 +255,7 @@ Function8b45c: ; 8b45c (22:745c)
ld d, $0
call Function8b385
.asm_8b46e
- call Function8923c
+ call Mobile22_SetBGMapMode0
call Function8b493
call Function8b4cc
call Function8b518
@@ -264,7 +276,7 @@ Function8b45c: ; 8b45c (22:745c)
Function8b493: ; 8b493 (22:7493)
push bc
- call Function8923c
+ call Mobile22_SetBGMapMode0
call Function8b521
ld hl, Jumptable_8b4a0
pop bc
@@ -314,9 +326,8 @@ Function8b4d8: ; 8b4d8 (22:74d8)
ld hl, Unknown_8b529
call Function8b50a
push hl
-rept 2
inc hl
-endr
+ inc hl
ld a, [hli]
ld b, a
ld a, [hl]
@@ -331,9 +342,8 @@ Function8b4ea: ; 8b4ea (22:74ea)
ld hl, Unknown_8b529
call Function8b50a
push hl
-rept 2
inc hl
-endr
+ inc hl
ld a, [hli]
ld b, a
ld a, [hl]
@@ -405,6 +415,7 @@ Function8b539: ; 8b539 (22:7539)
ret
Function8b555: ; 8b555 (22:7555)
+.loop
ld hl, UnknownText_0x8b5ce
call PrintText
ld bc, wd017
@@ -418,27 +429,29 @@ Function8b555: ; 8b555 (22:7555)
jr nz, .asm_8b57c
ld hl, UnknownText_0x8b5e2
call PrintText
- jr Function8b555
+ jr .loop
+
.asm_8b57c
ld hl, UnknownText_0x8b5d3
call PrintText
ld bc, wd013
call Function8b45c
- jr c, Function8b555
+ jr c, .loop
ld bc, wd017
ld hl, wd013
call Function8b3a4
- jr z, .asm_8b5a6
+ jr z, .strings_equal
call Function89448
ld bc, wd013
call Function8b493
ld hl, UnknownText_0x8b5d8
call PrintText
jr .asm_8b57c
-.asm_8b5a6
+
+.strings_equal
call OpenSRAMBank4
ld hl, wd013
- ld de, $a037
+ ld de, $a037 ; 4:a037
ld bc, $4
call CopyBytes
call CloseSRAM
@@ -506,7 +519,7 @@ Function8b5e7: ; 8b5e7 (22:75e7)
ld bc, wd013
call Function8b493
call OpenSRAMBank4
- ld hl, $a037
+ ld hl, $a037 ; 4:a037
call Function8b3a4
call CloseSRAM
jr z, .asm_8b635
@@ -644,7 +657,7 @@ Function8b6ed: ; 8b6ed
; 8b703
Function8b703: ; 8b703
- call Function8923c
+ call Mobile22_SetBGMapMode0
push hl
ld a, $c
ld [hli], a
@@ -698,12 +711,10 @@ Function8b73e: ; 8b73e
Function8b744: ; 8b744
ld de, AttrMap - TileMap
add hl, de
-rept 2
inc b
-endr
-rept 2
+ inc b
+ inc c
inc c
-endr
xor a
.asm_8b74d
push bc
@@ -722,7 +733,7 @@ endr
; 8b75d
Function8b75d: ; 8b75d
- call Function8923c
+ call Mobile22_SetBGMapMode0
hlcoord 0, 0
ld a, $1
ld bc, SCREEN_WIDTH
@@ -975,9 +986,8 @@ Function8b8c8: ; 8b8c8
ld b, 0
ld c, a
ld hl, Unknown_8b903
-rept 2
add hl, bc
-endr
+ add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
diff --git a/misc/mobile_40.asm b/misc/mobile_40.asm
index c2a6c20b9..3c7a34710 100644
--- a/misc/mobile_40.asm
+++ b/misc/mobile_40.asm
@@ -4,7 +4,7 @@ Function100000: ; 100000
; bc: addr
ld a, [rSVBK]
push af
- ld a, $01
+ ld a, 1
ld [rSVBK], a
call Function100022
@@ -26,7 +26,7 @@ Function100000: ; 100000
Function100022: ; 100022
push de
push bc
- call Function100063
+ call SetRAMStateForMobile
pop bc
pop de
ld a, d
@@ -47,14 +47,14 @@ Function100022: ; 100022
; 100057
Function100057: ; 100057
- call Function1000a4
+ call DisableMobile
call ReturnToMapFromSubmenu
ld hl, VramState
res 1, [hl]
ret
; 100063
-Function100063: ; 100063
+SetRAMStateForMobile: ; 100063
xor a
ld hl, BGMapBuffer
ld bc, $65
@@ -67,15 +67,16 @@ Function100063: ; 100063
ld [BGMapBuffer], a
xor a
ld [hMapAnims], a
- ld [hFFC6], a
+ ld [hLCDCPointer], a
ret
; 100082
-Function100082: ; 100082
+EnableMobile: ; 100082
xor a
ld hl, OverworldMap
ld bc, OverworldMapEnd - OverworldMap
call ByteFill
+
di
call DoubleSpeed
xor a
@@ -84,15 +85,16 @@ Function100082: ; 100082
ld [rIE], a
xor a
ld [hMapAnims], a
- ld [hFFC6], a
+ ld [hLCDCPointer], a
ld a, $01
ld [hMobileReceive], a
ld [hMobile], a
ei
+
ret
; 0x1000a4
-Function1000a4: ; 1000a4
+DisableMobile: ; 1000a4
di
xor a
ld [hMobileReceive], a
@@ -110,12 +112,12 @@ Function1000a4: ; 1000a4
Function1000ba: ; 1000ba
.loop
- ; call [wcd22]:([wcd23][wcd24] + [wcd25])
+ ; call [wcd22]:([wcd23][wcd24] + [wMobileCommsJumptableIndex])
ld hl, wcd23
ld a, [hli]
ld h, [hl]
ld l, a
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
ld e, a
ld d, 0
add hl, de
@@ -202,7 +204,7 @@ Function100144: ; 100144
ret z
res 2, [hl]
res 6, [hl]
- callba Function10402d
+ callba HDMATransferTileMapToWRAMBank3
ret
; 100163
@@ -445,12 +447,12 @@ Function100301: ; 100301
; 100320
Function100320: ; 100320
- callba Function104099
+ callba Mobile_ReloadMapPart
ret
; 100327
Function100327: ; 100327
- callba Function10402d
+ callba HDMATransferTileMapToWRAMBank3
ret
; 100327
@@ -984,67 +986,66 @@ MenuData2_100604: ; 100604
db "まつ@"
; 10060d
-Function10060d: ; 10060d
+Mobile_CommunicationStandby: ; 10060d
hlcoord 3, 10
- ld b, $01
- ld c, $0b
+ ld b, 1
+ ld c, 11
call Function3eea
- ld de, String_100621
+ ld de, .String
hlcoord 4, 11
call PlaceString
ret
; 100621
-String_100621: ; 100621
+.String: ; 100621
db "つうしんたいきちゅう!@"
; 10062d
-Function10062d: ; 10062d
+AdvanceMobileInactivityTimerAndCheckExpired: ; 10062d
push bc
- call Function10064e
+ call IncrementMobileInactivityTimerByCFrames
pop bc
- ld a, [wcd44]
+ ld a, [wMobileInactivityTimerMinutes]
cp b
- jr nc, .asm_10063a
+ jr nc, .timed_out
and a
ret
-.asm_10063a
+.timed_out
ld a, $fa
ld [wcd2b], a
scf
ret
; 100641
-Function100641: ; 100641
+StartMobileInactivityTimer: ; 100641
xor a
- ld [wcd44], a
- ld [wcd45], a
- ld [wcd46], a
+ ld [wMobileInactivityTimerMinutes], a
+ ld [wMobileInactivityTimerSeconds], a
+ ld [wMobileInactivityTimerFrames], a
ret
; 10064c
-Function10064c: ; 10064c
+IncrementMobileInactivityTimerBy1Frame: ; 10064c
ld c, 1
-
-Function10064e: ; 10064e
- ld hl, wcd46
+IncrementMobileInactivityTimerByCFrames: ; 10064e
+ ld hl, wMobileInactivityTimerFrames ; timer?
ld a, [hl]
add c
- cp $3c
- jr c, .asm_100658
+ cp 60
+ jr c, .seconds
xor a
-.asm_100658
+.seconds
ld [hld], a
ret c
ld a, [hl]
inc a
- cp $3c
- jr c, .asm_100661
+ cp 60
+ jr c, .minutes
xor a
-.asm_100661
+.minutes
ld [hld], a
ret c
inc [hl]
@@ -1166,9 +1167,9 @@ Function1006fd: ; 1006fd
ld hl, $a800
call GetSRAMBank
xor a
-rept 3
ld [hli], a
-endr
+ ld [hli], a
+ ld [hli], a
call CloseSRAM
ret
; 10070d
@@ -1266,35 +1267,35 @@ Function100772: ; 100772
Function10079c: ; 10079c
ld a, [wcd21]
cp $01
- jr nz, .asm_1007f4
+ jr nz, .dont_quit
ld hl, wcd2a
bit 5, [hl]
- jr nz, .asm_1007f4
+ jr nz, .dont_quit
ld hl, wcd2a
bit 6, [hl]
- jr nz, .asm_1007f4
+ jr nz, .dont_quit
ld a, [wcd6a]
add c
- cp $3c
- jr nc, .asm_1007be
+ cp 60
+ jr nc, .overflow
ld [wcd6a], a
and a
ret
-.asm_1007be
- sub $3c
+.overflow
+ sub 60
ld [wcd6a], a
ld d, b
push de
call Function1007f6
pop de
- jr c, .asm_1007e5
+ jr c, .quit
ld a, c
and a
- jr nz, .asm_1007e5
+ jr nz, .quit
ld a, b
- cp $0a
- jr nc, .asm_1007e5
+ cp 10
+ jr nc, .quit
ld a, d
and a
ret z
@@ -1307,7 +1308,7 @@ Function10079c: ; 10079c
and a
ret
-.asm_1007e5
+.quit
call Function1008e0
ld hl, wcd2a
set 4, [hl]
@@ -1316,7 +1317,7 @@ Function10079c: ; 10079c
scf
ret
-.asm_1007f4
+.dont_quit
and a
ret
; 1007f6
@@ -1702,7 +1703,7 @@ _LinkBattleSendReceiveAction: ; 100a09
.MobileBattle_SendReceiveAction: ; 100a87
call Function100acf
- call Function100641
+ call StartMobileInactivityTimer
ld a, 0
ld [wcd27], a
.asm_100a92
@@ -1712,7 +1713,7 @@ _LinkBattleSendReceiveAction: ; 100a09
ld c, $01
ld b, $03
push bc
- call Function10062d
+ call AdvanceMobileInactivityTimerAndCheckExpired
pop bc
jr c, .asm_100ac7
ld b, $01
@@ -1821,7 +1822,7 @@ Function100b45: ; 100b45
call Mobile_SetOverworldDelay
callba MobileMenuJoypad
push bc
- callba Function10402d
+ callba HDMATransferTileMapToWRAMBank3
call Function100e2d
pop bc
jr c, .asm_100b6b
@@ -1882,7 +1883,7 @@ MobileMoveSelectionScreen: ; 100b9f
call Mobile_SetOverworldDelay
callba MobileMenuJoypad
push bc
- callba Function10402d
+ callba HDMATransferTileMapToWRAMBank3
call Function100e2d
pop bc
jr c, .b_button
@@ -2016,8 +2017,8 @@ Mobile_PartyMenuSelect: ; 100cb5
callba MobileMenuJoypad
push bc
callba PlaySpriteAnimations
- callba Function10402d
- call Function100dfd
+ callba HDMATransferTileMapToWRAMBank3
+ call MobileComms_CheckInactivityTimer
pop bc
jr c, .done
ld a, [wMenuJoypadFilter]
@@ -2070,8 +2071,8 @@ MobileBattleMonMenu: ; 100d22
callba MobileMenuJoypad
push bc
callba PlaySpriteAnimations
- callba Function10402d
- call Function100dfd
+ callba HDMATransferTileMapToWRAMBank3
+ call MobileComms_CheckInactivityTimer
pop bc
jr c, .asm_100d54
ld a, [wMenuJoypadFilter]
@@ -2178,7 +2179,7 @@ Mobile_SetOverworldDelay: ; 100dd2
Function100dd8: ; 100dd8
ld c, $01
ld b, $03
- callba Function10062d
+ callba AdvanceMobileInactivityTimerAndCheckExpired
jr c, .asm_100dfb
ld c, $3c
ld b, $01
@@ -2196,7 +2197,7 @@ Function100dd8: ; 100dd8
ret
; 100dfd
-Function100dfd: ; 100dfd
+MobileComms_CheckInactivityTimer: ; 100dfd
ld a, [OverworldDelay]
ld c, a
ld a, 30
@@ -2204,22 +2205,22 @@ Function100dfd: ; 100dfd
ld c, a
ld b, 3
push bc
- callba Function10062d
+ callba AdvanceMobileInactivityTimerAndCheckExpired ; useless to farcall
pop bc
- jr c, .asm_100e2b
+ jr c, .quit
ld b, 1
call Function10079c
- jr c, .asm_100e2b
+ jr c, .quit
call Function1009f3
- jr c, .asm_100e2b
- callba Function10032e
+ jr c, .quit
+ callba Function10032e ; useless to farcall
ld a, [wcd2b]
and a
- jr nz, .asm_100e2b
+ jr nz, .quit
xor a
ret
-.asm_100e2b
+.quit
scf
ret
; 100e2d
@@ -2232,7 +2233,7 @@ Function100e2d: ; 100e2d
ld c, a
ld b, 3
push bc
- callba Function10062d
+ callba AdvanceMobileInactivityTimerAndCheckExpired
pop bc
jr c, .asm_100e61
ld b, 1
@@ -2641,53 +2642,55 @@ Function1010de: ; 1010de
ret
; 1010f2
-Function1010f2: ; 1010f2
+LoadSelectedPartiesForColosseum: ; 1010f2
xor a
ld hl, StringBuffer2
ld bc, 9
call ByteFill
- ld hl, wdc5c
+ ld hl, wPlayerMonSelection
ld de, PartyCount
- call Function101145
- ld hl, wdc5c
+ call .CopyThreeSpecies
+ ld hl, wPlayerMonSelection
ld de, PartyMon1Species
- call Function10117c
- ld hl, wdc5c
+ call .CopyPartyStruct
+ ld hl, wPlayerMonSelection
ld de, PartyMonOT
- call Function101181
- ld hl, wdc5c
+ call .CopyName
+ ld hl, wPlayerMonSelection
ld de, PartyMonNicknames
- call Function101181
- ld hl, wcd75
+ call .CopyName
+ ld hl, wOTMonSelection
ld de, OTPartyCount
- call Function101145
- ld hl, wcd75
+ call .CopyThreeSpecies
+ ld hl, wOTMonSelection
ld de, OTPartyMon1Species
- call Function10117c
- ld hl, wcd75
+ call .CopyPartyStruct
+ ld hl, wOTMonSelection
ld de, OTPartyMonOT
- call Function101181
- ld hl, wcd75
+ call .CopyName
+ ld hl, wOTMonSelection
ld de, OTPartyMonNicknames
- call Function101181
+ call .CopyName
ret
; 101145
-Function101145: ; 101145
+.CopyThreeSpecies: ; 101145
+; Load the 3 choices to the buffer
push de
ld bc, StringBuffer2 + 6
xor a
-.asm_10114a
+.party_loop
push af
- call Function101168
+ call .GetNthSpecies
ld [bc], a
inc bc
pop af
inc a
- cp $03
- jr nz, .asm_10114a
+ cp 3
+ jr nz, .party_loop
pop de
- ld a, $03
+; Copy the 3 choices to the party
+ ld a, 3
ld [de], a
inc de
ld hl, StringBuffer2 + 6
@@ -2698,7 +2701,9 @@ Function101145: ; 101145
ret
; 101168
-Function101168: ; 101168
+.GetNthSpecies: ; 101168
+; Preserves hl and de
+; Get the index of the Nth selection
push hl
add l
ld l, a
@@ -2707,6 +2712,7 @@ Function101168: ; 101168
ld h, a
ld a, [hl]
pop hl
+; Get the corresponding species
push de
inc de
add e
@@ -2719,34 +2725,38 @@ Function101168: ; 101168
ret
; 10117c
-Function10117c: ; 10117c
- ld bc, $30
- jr asm_101184
+.CopyPartyStruct: ; 10117c
+ ld bc, PARTYMON_STRUCT_LENGTH
+ jr .ContinueCopy
-Function101181: ; 101181
- ld bc, 11
+.CopyName: ; 101181
+ ld bc, NAME_LENGTH
-asm_101184:
+.ContinueCopy:
+ ; Copy, via wc608...
ld a, wc608 % $100
ld [StringBuffer2], a
ld a, wc608 / $100
ld [StringBuffer2 + 1], a
+ ; ... bc bytes...
ld a, c
ld [StringBuffer2 + 2], a
ld a, b
ld [StringBuffer2 + 3], a
+ ; ... to de...
ld a, e
ld [StringBuffer2 + 4], a
ld a, d
ld [StringBuffer2 + 5], a
- ld a, $03
-.asm_1011a0
+ ; ... 3 times.
+ ld a, 3
+.big_copy_loop
push af
ld a, [hli]
push hl
push af
- call Function1011df
- call Function1011e8
+ call .GetDestinationAddress
+ call .GetCopySize
pop af
call AddNTimes
ld a, [StringBuffer2]
@@ -2761,14 +2771,14 @@ asm_101184:
pop hl
pop af
dec a
- jr nz, .asm_1011a0
- call Function1011e8
+ jr nz, .big_copy_loop
+ call .GetCopySize
ld a, 3
ld hl, 0
call AddNTimes
ld b, h
ld c, l
- call Function1011df
+ call .GetDestinationAddress
ld d, h
ld e, l
ld hl, wc608
@@ -2776,7 +2786,7 @@ asm_101184:
ret
; 1011df
-Function1011df: ; 1011df
+.GetDestinationAddress: ; 1011df
ld a, [StringBuffer2 + 4]
ld l, a
ld a, [StringBuffer2 + 5]
@@ -2784,7 +2794,7 @@ Function1011df: ; 1011df
ret
; 1011e8
-Function1011e8: ; 1011e8
+.GetCopySize: ; 1011e8
ld a, [StringBuffer2 + 2]
ld c, a
ld a, [StringBuffer2 + 3]
@@ -2889,146 +2899,144 @@ Function10127d: ; 10127d
Function10127e: ; 10127e
ld a, [wdc5f]
and a
- jr z, .asm_101290
- cp $01
+ jr z, .zero
+ cp 1
ld c, $27
- jr z, .asm_101292
- cp $02
+ jr z, .load
+ cp 2
ld c, $37
- jr z, .asm_101292
-
-.asm_101290
+ jr z, .load
+.zero
ld c, 0
-
-.asm_101292
+.load
ld a, c
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 101297
Jumptable_101297: ; 101297
- dw Function101a97
- dw Function101ab4
- dw Function101475
- dw Function101b0f
- dw Function101438
- dw Function101b2b
- dw Function101b59
- dw Function101475
- dw Function101b70
- dw Function101438
- dw Function101b8f
- dw Function101d7b
- dw Function101d95
- dw Function101475
- dw Function101db2
- dw Function101e4f
- dw Function101475
- dw Function101e64
- dw Function101e4f
- dw Function101475
- dw Function101e64
- dw Function101d95
- dw Function101475
- dw Function101db2
- dw Function101dd0
- dw Function101de3
- dw Function101e39
- dw Function101e09
- dw Function101e4f
- dw Function101475
- dw Function101e64
- dw Function101d95
- dw Function101475
- dw Function101db2
- dw Function101e09
- dw Function101e31
- dw Function101bc8
- dw Function101438
- dw Function101be5
- dw Function101ac6
- dw Function101ab4
- dw Function101475
- dw Function101c11
- dw Function1014f4
- dw Function101cc8
- dw Function1014e2
- dw Function1014e2
- dw Function101d10
- dw Function101d2a
- dw Function101d2a
- dw Function101507
- dw Function10156d
- dw Function101557
- dw Function10158a
- dw Function101c42
- dw Function101aed
- dw Function101ab4
- dw Function101475
- dw Function101c2b
- dw Function1014f4
- dw Function101cdf
- dw Function1014e2
- dw Function1014e2
- dw Function101d1e
- dw Function101d2a
- dw Function101d2a
- dw Function101507
- dw Function10156d
- dw Function101544
- dw Function10158a
- dw Function101c42
- dw Function101c50
- dw Function1014ce
- dw Function101cf6
- dw Function101826
- dw Function1017e4
- dw Function1017f1
- dw Function1018a8
- dw Function1018d6
- dw Function1017e4
- dw Function1017f1
- dw Function1018e1
- dw Function1015df
- dw Function10167d
- dw Function10168a
- dw Function10162a
- dw Function1015be
- dw Function10167d
- dw Function10168a
- dw Function10161f
- dw Function10159d
- dw Function10167d
- dw Function10168a
- dw Function101600
- dw Function101d03
- dw Function101d6b
- dw Function10159d
- dw Function1014ce
- dw Function10168e
- dw Function101600
- dw Function101913
- dw Function10194b
- dw Function10196d
- dw Function1017e4
- dw Function1017f5
- dw Function1019ab
- dw Function101537
- dw Function101571
- dw Function101c92
- dw Function10152a
- dw Function101571
- dw Function101a4f
- dw Function101cbc
- dw Function101c62
- dw Function101537
- dw Function101571
- dw Function101c92
- dw Function10152a
- dw Function101571
- dw Function101ca0
- dw Function101475
- dw Function101cbc
+ dw Function101a97 ; 00
+ dw Function101ab4 ; 01
+ dw Function101475 ; 02
+ dw Function101b0f ; 03
+ dw Function101438 ; 04
+ dw Function101b2b ; 05
+ dw Function101b59 ; 06
+ dw Function101475 ; 07
+ dw Function101b70 ; 08
+ dw Function101438 ; 09
+ dw Function101b8f ; 0a
+ dw Function101d7b ; 0b
+ dw Function101d95 ; 0c
+ dw Function101475 ; 0d
+ dw Function101db2 ; 0e
+ dw Function101e4f ; 0f
+ dw Function101475 ; 10
+ dw Function101e64 ; 11
+ dw Function101e4f ; 12
+ dw Function101475 ; 13
+ dw Function101e64 ; 14
+ dw Function101d95 ; 15
+ dw Function101475 ; 16
+ dw Function101db2 ; 17
+ dw Function101dd0 ; 18
+ dw Function101de3 ; 19
+ dw Function101e39 ; 1a
+ dw Function101e09 ; 1b
+ dw Function101e4f ; 1c
+ dw Function101475 ; 1d
+ dw Function101e64 ; 1e
+ dw Function101d95 ; 1f
+ dw Function101475 ; 20
+ dw Function101db2 ; 21
+ dw Function101e09 ; 22
+ dw Function101e31 ; 23
+ dw Function101bc8 ; 24
+ dw Function101438 ; 25
+ dw Function101be5 ; 26
+ dw Function101ac6 ; 27
+ dw Function101ab4 ; 28
+ dw Function101475 ; 29
+ dw Function101c11 ; 2a
+ dw Function1014f4 ; 2b
+ dw Function101cc8 ; 2c
+ dw Function1014e2 ; 2d
+ dw Function1014e2 ; 2e
+ dw Function101d10 ; 2f
+ dw Function101d2a ; 30
+ dw Function101d2a ; 31
+ dw Function101507 ; 32
+ dw Function10156d ; 33
+ dw Function101557 ; 34
+ dw Function10158a ; 35
+ dw Function101c42 ; 36
+ dw Function101aed ; 37
+ dw Function101ab4 ; 38
+ dw Function101475 ; 39
+ dw Function101c2b ; 3a
+ dw Function1014f4 ; 3b
+ dw Function101cdf ; 3c
+ dw Function1014e2 ; 3d
+ dw Function1014e2 ; 3e
+ dw Function101d1e ; 3f
+ dw Function101d2a ; 40
+ dw Function101d2a ; 41
+ dw Function101507 ; 42
+ dw Function10156d ; 43
+ dw Function101544 ; 44
+ dw Function10158a ; 45
+ dw Function101c42 ; 46
+ dw Function101c50 ; 47
+ dw Function1014ce ; 48
+ dw Function101cf6 ; 49
+ dw Function101826 ; 4a
+ dw Function1017e4 ; 4b
+ dw Function1017f1 ; 4c
+ dw Function1018a8 ; 4d
+ dw Function1018d6 ; 4e
+ dw Function1017e4 ; 4f
+ dw Function1017f1 ; 50
+ dw Function1018e1 ; 51
+ dw Function1015df ; 52
+ dw Function10167d ; 53
+ dw Function10168a ; 54
+ dw Function10162a ; 55
+ dw Function1015be ; 56
+ dw Function10167d ; 57
+ dw Function10168a ; 58
+ dw Function10161f ; 59
+ dw Function10159d ; 5a
+ dw Function10167d ; 5b
+ dw Function10168a ; 5c
+ dw Function101600 ; 5d
+ dw Function101d03 ; 5e
+ dw Function101d6b ; 5f
+ dw Function10159d ; 60
+ dw Function1014ce ; 61
+ dw Function10168e ; 62
+ dw Function101600 ; 63
+ dw Function101913 ; 64
+ dw Function10194b ; 65
+ dw _SelectMonsForMobileBattle ; 66
+ dw Function1017e4 ; 67
+ dw Function1017f5 ; 68
+ dw _StartMobileBattle ; 69
+ dw Function101537 ; 6a
+ dw Function101571 ; 6b
+ dw Function101c92 ; 6c
+ dw Function10152a ; 6d
+ dw Function101571 ; 6e
+ dw Function101a4f ; 6f
+ dw Function101cbc ; 70
+ dw Function101c62 ; 71
+ dw Function101537 ; 72
+ dw Function101571 ; 73
+ dw Function101c92 ; 74
+ dw Function10152a ; 75
+ dw Function101571 ; 76
+ dw Function101ca0 ; 77
+ dw Function101475 ; 78
+ dw Function101cbc ; 79
; 10138b
Function10138b: ; 10138b
@@ -3074,7 +3082,7 @@ Function1013c0: ; 1013c0
; 1013d6
Function1013d6: ; 1013d6
- callba Function104000
+ callba HDMATransferAttrMapAndTileMapToWRAMBank3
ret
; 1013dd
@@ -3182,9 +3190,9 @@ Function101438: ; 101438
ret z
ld a, 0
ld [wcd26], a
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 101457
@@ -3221,9 +3229,9 @@ Function101475: ; 101475
ret z
ld a, 0
ld [wcd26], a
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 101494
@@ -3268,10 +3276,10 @@ Function1014b7: ; 1014b7
Function1014ce: ; 1014ce
callba Function100720
- callba Function100641
- ld a, [wcd25]
+ callba StartMobileInactivityTimer
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 1014e2
@@ -3280,19 +3288,19 @@ Function1014e2: ; 1014e2
set 6, [hl]
ld a, 0
ld [wcd26], a
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 1014f4
Function1014f4: ; 1014f4
- callba Function100082
+ callba EnableMobile
ld hl, wcd29
set 6, [hl]
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 101507
@@ -3302,57 +3310,57 @@ Function101507: ; 101507
ld bc, $40
ld a, $02
call Function3e32
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 10151d
Function10151d: ; 10151d ; unreferenced
ld a, $34
call Function3e32
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 10152a
Function10152a: ; 10152a
ld a, $36
call Function3e32
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 101537
Function101537: ; 101537
ld a, $0a
call Function3e32
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 101544
Function101544: ; 101544
- callba Function100641
+ callba StartMobileInactivityTimer
ld a, $12
call Function3e32
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 101557
Function101557: ; 101557
- callba Function100641
+ callba StartMobileInactivityTimer
ld hl, wcd53
ld a, $08
call Function3e32
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 10156d
@@ -3371,15 +3379,15 @@ Function101571: ; 101571
ret
.asm_101582
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 10158a
Function10158a: ; 10158a
- callba Function10064c
- ld a, [wcd44]
+ callba IncrementMobileInactivityTimerBy1Frame
+ ld a, [wMobileInactivityTimerMinutes]
cp $0a
jr c, Function10156d
ld a, $fb
@@ -3396,9 +3404,9 @@ Function10159d: ; 10159d
call Function10174c
ld a, 0
ld [wcd26], a
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 1015be
@@ -3411,9 +3419,9 @@ Function1015be: ; 1015be
call Function10174c
ld a, 0
ld [wcd26], a
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 1015df
@@ -3426,9 +3434,9 @@ Function1015df: ; 1015df
call Function10174c
ld a, 0
ld [wcd26], a
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 101600
@@ -3440,25 +3448,25 @@ Function101600: ; 101600
call FarCopyWRAM
ld de, wc608
callba Function100ee6
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 10161f
Function10161f: ; 10161f
call Function101649
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 10162a
Function10162a: ; 10162a
call Function101663
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 101635
@@ -3513,9 +3521,9 @@ Function101674: ; 101674 ; unreferenced
Function10167d: ; 10167d
ld a, 0
ld [wcd26], a
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 10168a
@@ -3530,7 +3538,7 @@ Function10168e: ; 10168e
ret c
ld c, $01
ld b, $03
- callba Function10062d
+ callba AdvanceMobileInactivityTimerAndCheckExpired
ret c
ld a, [wcd26]
ld hl, Jumptable_1016c3
@@ -3542,9 +3550,9 @@ Function10168e: ; 10168e
ret z
ld a, 0
ld [wcd26], a
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 1016c3
@@ -3746,9 +3754,9 @@ Function1017c7: ; 1017c7
Function1017e4: ; 1017e4
ld a, 0
ld [wcd27], a
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 1017f1
@@ -3763,20 +3771,20 @@ Function1017f5: ; 1017f5
ret c
ld c, $01
ld b, $03
- callba Function10062d
+ callba AdvanceMobileInactivityTimerAndCheckExpired
ret c
callba Function100382
ld a, [wcd27]
bit 7, a
- jr nz, .asm_10181e
+ jr nz, .next
ld hl, wcd29
set 6, [hl]
ret
-.asm_10181e
- ld a, [wcd25]
+.next
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 101826
@@ -3792,9 +3800,9 @@ Function101826: ; 101826
ld hl, Unknown_10186f
ld de, wccb4
call Function1013f5
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
.asm_101844
@@ -3811,9 +3819,9 @@ Function101826: ; 101826
.asm_10185b
ld de, wccb4
call Function1013f5
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
.asm_101869
@@ -3857,9 +3865,9 @@ Function1018a8: ; 1018a8
ld a, $06
call Function101406
jr c, .asm_1018ca
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
.asm_1018ca
@@ -3875,17 +3883,17 @@ Function1018a8: ; 1018a8
Function1018d6: ; 1018d6
call Function1018ec
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 1018e1
Function1018e1: ; 1018e1
call Function1018fb
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 1018ec
@@ -3938,17 +3946,17 @@ Function101913: ; 101913
cp $02
jr z, .asm_101945
ld a, $71
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
.asm_10193f
ld a, $66
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
.asm_101945
ld a, $65
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 10194b
@@ -3961,25 +3969,25 @@ Function10194b: ; 10194b
jr nz, .asm_101967
call Function1013c0
ld a, $71
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
.asm_101967
ld a, $60
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 10196d
-Function10196d: ; 10196d
+_SelectMonsForMobileBattle: ; 10196d
callba BlankScreen
- callba Function10060d
+ callba Mobile_CommunicationStandby
ld hl, wcd29
set 5, [hl]
ld hl, wcd2a
set 6, [hl]
ld a, $06
ld [wccb4], a
- ld hl, wdc5c
+ ld hl, wPlayerMonSelection
ld de, wccb5
ld bc, 3
call CopyBytes
@@ -3990,14 +3998,14 @@ Function10196d: ; 10196d
ld [wccb9], a
ld a, [hl]
ld [wccba], a
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 1019ab
-Function1019ab: ; 1019ab
- call Function101a75
+_StartMobileBattle: ; 1019ab
+ call CopyOtherPlayersBattleMonSelection
callba Function100754
xor a
ld [wdc5f], a
@@ -4005,33 +4013,32 @@ Function1019ab: ; 1019ab
callba BlankScreen
call SpeechTextBox
callba Function100846
- ld c, $78
+ ld c, 120
call DelayFrames
callba ClearTileMap
- call Function1019ee
- call Function101a21
+ call .CopyOTDetails
+ call StartMobileBattle
ld a, [wcd2b]
cp $fc
jr nz, .asm_1019e6
xor a
ld [wcd2b], a
-
.asm_1019e6
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 1019ee
-Function1019ee: ; 1019ee
+.CopyOTDetails: ; 1019ee
ld a, [rSVBK]
push af
- ld a, $05
+ ld a, 5
ld [rSVBK], a
ld bc, w5_dc0d
ld de, w5_dc11
- callba Function4e929
+ callba GetMobileOTTrainerClass
pop af
ld [rSVBK], a
@@ -4044,29 +4051,29 @@ Function1019ee: ; 1019ee
call CopyBytes
ld a, [wcd2f]
and a
- ld a, $02
- jr z, .asm_101a1e
- ld a, $01
-
-.asm_101a1e
+ ld a, 2
+ jr z, .got_link_player_number
+ ld a, 1
+.got_link_player_number
ld [hLinkPlayerNumber], a
ret
; 101a21
-Function101a21: ; 101a21
+StartMobileBattle: ; 101a21
+ ; force stereo and fast text speed
ld hl, Options
ld a, [hl]
push af
- and $20
- or $01
+ and (1 << STEREO)
+ or 1 ; 1 frame per character i.e. fast text
ld [hl], a
- ld a, $01
- ld [wc2d7], a
+ ld a, 1
+ ld [wDisableTextAcceleration], a
callba BattleIntro
callba DoBattle
callba ShowLinkBattleParticipantsAfterEnd
xor a
- ld [wc2d7], a
+ ld [wDisableTextAcceleration], a
ld a, $ff
ld [hLinkPlayerNumber], a
pop af
@@ -4075,29 +4082,29 @@ Function101a21: ; 101a21
; 101a4f
Function101a4f: ; 101a4f
- ld a, $01
- ld [wc2d7], a
+ ld a, 1
+ ld [wDisableTextAcceleration], a
callba DetermineMobileBattleResult
xor a
- ld [wc2d7], a
+ ld [wDisableTextAcceleration], a
callba CleanUpBattleRAM
callba LoadPokemonData
call Function1013c0
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 101a75
-Function101a75: ; 101a75
+CopyOtherPlayersBattleMonSelection: ; 101a75
ld hl, wcc61
- ld de, wcd75
+ ld de, wOTMonSelection
ld bc, 3
call CopyBytes
ld de, wcc64
callba Function100772
callba Function101050
- callba Function1010f2
+ callba LoadSelectedPartiesForColosseum
ret
; 101a97
@@ -4109,9 +4116,9 @@ Function101a97: ; 101a97
call Function10142c
ld hl, wcd29
set 6, [hl]
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 101ab4
@@ -4120,9 +4127,9 @@ Function101ab4: ; 101ab4
call Function101ee4
ld hl, wcd29
set 5, [hl]
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 101ac6
@@ -4138,9 +4145,9 @@ Function101ac6: ; 101ac6
ld [wcd2f], a
ld de, wdc42
call Function102068
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 101aed
@@ -4154,9 +4161,9 @@ Function101aed: ; 101aed
set 6, [hl]
ld a, $01
ld [wcd2f], a
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 101b0f
@@ -4167,9 +4174,9 @@ Function101b0f: ; 101b0f
call Function101ee4
ld hl, wcd29
set 5, [hl]
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ld a, 0
ld [wcd26], a
ret
@@ -4193,9 +4200,9 @@ Function101b2b: ; 101b2b
ret
.asm_101b51
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 101b59
@@ -4206,9 +4213,9 @@ Function101b59: ; 101b59
call Function101ee4
ld hl, wcd29
set 5, [hl]
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 101b70
@@ -4220,9 +4227,9 @@ Function101b70: ; 101b70
ld hl, wcd29
set 5, [hl]
call UpdateSprites
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ld a, 0
ld [wcd26], a
ret
@@ -4243,17 +4250,17 @@ Function101b8f: ; 101b8f
jr z, .asm_101bbc
ld a, $01
ld [wcd2f], a
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
.asm_101bbc
xor a
ld [wcd2f], a
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 101bc8
@@ -4266,9 +4273,9 @@ Function101bc8: ; 101bc8
call Function1013dd
ld a, 0
ld [wcd26], a
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 101be5
@@ -4286,7 +4293,7 @@ Function101be5: ; 101be5
cp $01
jr nz, .asm_101c0b
ld a, $2a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
.asm_101c0b
@@ -4303,9 +4310,9 @@ Function101c11: ; 101c11
call Function102048
ld hl, wcd29
set 5, [hl]
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 101c2b
@@ -4316,9 +4323,9 @@ Function101c2b: ; 101c2b
call Function101ee4
ld hl, wcd29
set 5, [hl]
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 101c42
@@ -4327,7 +4334,7 @@ Function101c42: ; 101c42
set 1, [hl]
call Function100665
ld a, $47
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 101c50
@@ -4336,9 +4343,9 @@ Function101c50: ; 101c50
call Function101ee4
ld hl, wcd29
set 2, [hl]
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 101c62
@@ -4356,9 +4363,9 @@ Function101c62: ; 101c62
call Function101ee4
ld hl, wcd29
set 5, [hl]
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ld a, 0
ld [wcd26], a
ret
@@ -4366,9 +4373,9 @@ Function101c62: ; 101c62
Function101c92: ; 101c92
callba Function100675
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 101ca0
@@ -4379,9 +4386,9 @@ Function101ca0: ; 101ca0
call Function101ee4
ld hl, wcd29
set 5, [hl]
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ld a, 0
ld [wcd26], a
ret
@@ -4406,9 +4413,9 @@ Function101cc8: ; 101cc8
ld [wc30d], a
ld hl, wcd29
set 4, [hl]
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 101cdf
@@ -4419,44 +4426,44 @@ Function101cdf: ; 101cdf
ld [wc30d], a
ld hl, wcd29
set 4, [hl]
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 101cf6
Function101cf6: ; 101cf6
ld a, $0b
ld [wc314 + 1], a
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 101d03
Function101d03: ; 101d03
ld a, $0e
ld [wc314 + 1], a
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 101d10
Function101d10: ; 101d10
ld c, $01
call Function10142c
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
jr Function101d2a
Function101d1e: ; 101d1e
ld c, $03
call Function10142c
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
Function101d2a: ; 101d2a
call Function101418
@@ -4471,9 +4478,9 @@ Function101d2a: ; 101d2a
ret z
ld a, 0
ld [wcd26], a
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 101d4d
@@ -4506,7 +4513,7 @@ Function101d6b: ; 101d6b
ld hl, wcd29
res 4, [hl]
ld a, $64
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 101d7b
@@ -4517,7 +4524,7 @@ Function101d7b: ; 101d7b
add hl, bc
ld c, [hl]
ld a, c
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 101d8d
@@ -4532,9 +4539,9 @@ Function101d95: ; 101d95
call Function101ee4
ld hl, wcd29
set 5, [hl]
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ld a, 0
ld [wcd26], a
ret
@@ -4546,9 +4553,9 @@ Function101db2: ; 101db2
ld hl, wcd29
set 5, [hl]
jr c, .asm_101dca
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
.asm_101dca
@@ -4562,12 +4569,12 @@ Function101dd0: ; 101dd0
bit 1, [hl]
jr nz, .asm_101ddd
ld a, $19
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
.asm_101ddd
ld a, $1b
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 101de3
@@ -4575,17 +4582,17 @@ Function101de3: ; 101de3
call Function101ecc
call Function101ead
jr c, .asm_101df3
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
.asm_101df3
call Function101e98
jr c, .asm_101e00
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
.asm_101e00
@@ -4598,9 +4605,9 @@ Function101de3: ; 101de3
Function101e09: ; 101e09
call Function101ead
jr c, .asm_101e16
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
.asm_101e16
@@ -4610,9 +4617,9 @@ Function101e09: ; 101e09
call Function101ed3
pop af
jr c, .asm_101e2b
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
.asm_101e2b
@@ -4623,7 +4630,7 @@ Function101e09: ; 101e09
Function101e31: ; 101e31
ld a, $3a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
jp Function101c2b
; 101e39
@@ -4634,7 +4641,7 @@ Function101e39: ; 101e39
pop af
jr c, .asm_101e49
ld a, $2a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
.asm_101e49
@@ -4647,9 +4654,9 @@ Function101e4f: ; 101e4f
ld e, $06
call Function101ee4
call Function1013d6
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ld a, 0
ld [wcd26], a
ret
@@ -4663,7 +4670,7 @@ Function101e64: ; 101e64
pop af
jr c, .asm_101e77
ld a, $24
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
.asm_101e77
@@ -4676,17 +4683,17 @@ Function101e64: ; 101e64
Function101e82: ; 101e82 ; unreferenced
call Function101ecc
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 101e8d
Function101e8d: ; 101e8d ; unreferenced
call Function101ed3
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 101e98
@@ -5182,7 +5189,7 @@ Function10224b: ; 10224b
.asm_10225e
res 1, [hl]
res 2, [hl]
- callba Function104099
+ callba Mobile_ReloadMapPart
scf
ret
; 10226a
@@ -5269,7 +5276,7 @@ Function1022d0: ; 1022d0
sub c
ld c, a
ld b, $03
- callba Function10062d
+ callba AdvanceMobileInactivityTimerAndCheckExpired
jr c, .asm_1022f3
xor a
ret
@@ -5444,8 +5451,8 @@ Function102416: ; 102416
Function102423: ; 102423
call Function102921
ret nc
- callba Function14a58
- callba MobileFn_1060af
+ callba SaveAfterLinkTrade
+ callba TrainerRankings_Trades
callba BackupMobileEventIndex
ld hl, wcd4b
set 1, [hl]
@@ -6145,7 +6152,7 @@ Function1028e8: ; 1028e8
ld hl, wcd4b
res 6, [hl]
ld [wcd50], a
- callba Function100641
+ callba StartMobileInactivityTimer
ld a, 0
ld [wcd4a], a
ret
@@ -6549,7 +6556,7 @@ Function102bac: ; 102bac
ld [CurPartyMon], a
call LowVolume
call ClearSprites
- callba _BattleStatsScreenInit
+ callba _MobileStatsScreenInit
ld a, [CurPartyMon]
inc a
ld [wMenuCursorY], a
@@ -6809,7 +6816,7 @@ Function102d9a: ; 102d9a
hlcoord 0, 0, AttrMap
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
call ByteFill
- callba Function104000
+ callba HDMATransferAttrMapAndTileMapToWRAMBank3
ret
; 102db7
@@ -7204,9 +7211,9 @@ Function1030cd: ; 1030cd
ld a, [wcf44]
ld l, a
ld h, 0
-rept 3
add hl, hl
-endr
+ add hl, hl
+ add hl, hl
ld bc, Unknown_103112
add hl, bc
ld b, $30
@@ -7390,7 +7397,7 @@ Function103309: ; 103309
ld [wd1ee], a
call Function1034be
call UpdateSprites
- callba Function104000
+ callba HDMATransferAttrMapAndTileMapToWRAMBank3
ld a, $01
ld [wd1f0], a
call Function10339a
@@ -7404,7 +7411,7 @@ Function103362: ; 103362
call Function1033af
call Function10339a
call Function10342c
- callba Function10402d
+ callba HDMATransferTileMapToWRAMBank3
ld a, [Buffer2]
bit 7, a
jr z, .asm_103362
@@ -7443,17 +7450,17 @@ Function10339a: ; 10339a
Function1033af: ; 1033af
call GetJoypad
ld a, [hJoyPressed]
- bit 5, a
+ bit D_LEFT_F, a
jr nz, .left
- bit 4, a
+ bit D_RIGHT_F, a
jr nz, .right
- bit 1, a
+ bit B_BUTTON_F, a
jr nz, .b
- bit 0, a
+ bit A_BUTTON_F, a
jr nz, .a
- bit 6, a
+ bit D_UP_F, a
jr nz, .up
- bit 7, a
+ bit D_DOWN_F, a
jr nz, .down
ret
@@ -7461,7 +7468,7 @@ Function1033af: ; 1033af
ld a, [wd1f0]
dec a
ld [wd1f0], a
- cp $01
+ cp 1
ret nc
ld a, [wd1ee]
ld [wd1f0], a
@@ -7475,7 +7482,7 @@ Function1033af: ; 1033af
ld a, [wd1ee]
cp c
ret nc
- ld a, $01
+ ld a, 1
ld [wd1f0], a
ret
@@ -7487,8 +7494,8 @@ Function1033af: ; 1033af
.a
ld a, [wd1f3]
- cp $03
- jr nz, .asm_103412
+ cp 3
+ jr nz, .a_return
ld de, SFX_TRANSACTION
call PlaySFX
ld hl, Buffer2
@@ -7499,9 +7506,9 @@ Function1033af: ; 1033af
.left
.right
-.asm_103412
+.a_return
ld a, [wd1f3]
- cp $03
+ cp 3
ret z
ld de, SFX_PUSH_BUTTON
call PlaySFX
@@ -8101,7 +8108,7 @@ Function10383c: ; 10383c
ld a, $01
ld [wdc60], a
xor a
- ld hl, wdc5c
+ ld hl, wPlayerMonSelection
ld [hli], a
ld [hli], a
ld [hl], a
@@ -8112,7 +8119,7 @@ Function10383c: ; 10383c
callba Function4a94e
jr c, .asm_103870
ld hl, wd002
- ld de, wdc5c
+ ld de, wPlayerMonSelection
ld bc, 3
call CopyBytes
xor a
diff --git a/misc/mobile_41.asm b/misc/mobile_41.asm
index 44db58602..331242d88 100755
--- a/misc/mobile_41.asm
+++ b/misc/mobile_41.asm
@@ -1,50 +1,63 @@
SECTION "bank41_2", ROMX, BANK[$41]
-Mobile_HallOfFame2:: mobile ; 0x105ef6
+; These functions deal with miscellaneous statistics
+; which were used for Trainer Rankings in Pokémon News.
+
+; Copies certain values at the time the player enters the Hall of Fame.
+TrainerRankings_HallOfFame2:: mobile ; 0x105ef6
ld a, $5
call GetSRAMBank
+
ld hl, GameTimeHours
- ld de, $a001
+ ld de, sTrainerRankingGameTimeHOF
ld bc, 4
call CopyBytes
- ld hl, $a010
- ld de, $a005
+
+ ld hl, sTrainerRankingStepCount
+ ld de, sTrainerRankingStepCountHOF
ld bc, 4
call CopyBytes
- ld hl, $a039
- ld de, $a009
+
+ ; sTrainerRankingHealings is only a 3-byte value.
+ ; One extraneous byte is copied from sTrainerRankingMysteryGift.
+ ld hl, sTrainerRankingHealings
+ ld de, sTrainerRankingHealingsHOF
ld bc, 4
call CopyBytes
- ld hl, $a01b
- ld de, $a00d
+
+ ld hl, sTrainerRankingBattles
+ ld de, sTrainerRankingBattlesHOF
ld bc, 3
call CopyBytes
- call Function106162
+
+ call UpdateTrainerRankingsChecksum
call CloseSRAM
ret
; 105f33
-MagikarpLength_Mobile: mobile ; 105f33
+TrainerRankings_MagikarpLength: mobile ; 105f33
ld a, $5
call GetSRAMBank
ld de, Buffer1
- ld hl, $a07b
+ ld hl, sTrainerRankingLongestMagikarp
+
+ ; Is this Magikarp the longest measured?
ld a, [de]
cp [hl]
- jr z, .asm_105f47
- jr nc, .asm_105f4f
- jr .asm_105f55
+ jr z, .isLowByteHigher
+ jr nc, .newRecordLongest
+ jr .checkShortest
-.asm_105f47
+.isLowByteHigher
inc hl
inc de
ld a, [de]
cp [hl]
dec hl
dec de
- jr c, .asm_105f55
+ jr c, .checkShortest
-.asm_105f4f
+.newRecordLongest
ld a, [de]
inc de
ld [hli], a
@@ -52,150 +65,157 @@ MagikarpLength_Mobile: mobile ; 105f33
dec de
ld [hl], a
-.asm_105f55
- ld hl, $a07d
+.checkShortest
+ ; First, check if the record for shortest Magikarp is 0.
+ ; This seems unnecessary, because the value is initialized to 100.0 cm.
+ ld hl, sTrainerRankingShortestMagikarp
ld a, [hli]
or [hl]
dec hl
- jr z, .asm_105f6d
+ jr z, .newRecordShortest
+
+ ; Now check if this Magikarp is the shortest
ld a, [de]
cp [hl]
- jr z, .asm_105f65
- jr c, .asm_105f6d
- jr .asm_105f72
+ jr z, .isLowByteLower
+ jr c, .newRecordShortest
+ jr .done
-.asm_105f65
+.isLowByteLower
inc hl
inc de
ld a, [de]
cp [hl]
- jr nc, .asm_105f72
+ jr nc, .done
dec hl
dec de
-.asm_105f6d
+.newRecordShortest
ld a, [de]
inc de
ld [hli], a
ld a, [de]
ld [hl], a
-.asm_105f72
- call Function106162
+.done
+ call UpdateTrainerRankingsChecksum
call CloseSRAM
ret
; 105f79
-MobileFn_105f79: mobile ; 105f79
+TrainerRankings_BugContestScore: mobile ; 105f79
ld a, $5
call GetSRAMBank
ld a, [hProduct]
- ld hl, $a07f
+ ld hl, sTrainerRankingBugContestScore
cp [hl]
- jr z, .asm_105f8b
- jr nc, .asm_105f92
- jr .asm_105f98
+ jr z, .isLowByteHigher
+ jr nc, .newHighScore
+ jr .done
-.asm_105f8b
+.isLowByteHigher
inc hl
ld a, [hMultiplicand]
cp [hl]
- jr c, .asm_105f98
+ jr c, .done
dec hl
-.asm_105f92
+.newHighScore
ld a, [hProduct]
ld [hli], a
ld a, [hMultiplicand]
ld [hl], a
-.asm_105f98
- call Function106162
+.done
+ call UpdateTrainerRankingsChecksum
call CloseSRAM
ret
; 105f9f
-MobileFn_105f9f: mobile ; 105f9f
+TrainerRankings_AddToSlotsWinStreak: mobile ; 105f9f
ld a, $5
call GetSRAMBank
- ld hl, $a070
+
+ ; Increment the current streak
+ ld hl, sTrainerRankingCurrentSlotsStreak + 1
inc [hl]
- jr nz, .asm_105fae
+ jr nz, .noCarry
dec hl
inc [hl]
inc hl
-.asm_105fae
+.noCarry
dec hl
- ld a, [$a071]
+ ; Now check if this is a new record for longest streak
+ ld a, [sTrainerRankingLongestSlotsStreak]
cp [hl]
- jr z, .asm_105fb9
- jr c, .asm_105fc1
- jr .asm_105fc9
+ jr z, .isLowByteHigher
+ jr c, .newRecordStreak
+ jr .done
-.asm_105fb9
+.isLowByteHigher
inc hl
- ld a, [$a072]
+ ld a, [sTrainerRankingLongestSlotsStreak + 1]
cp [hl]
- jr nc, .asm_105fc9
+ jr nc, .done
dec hl
-.asm_105fc1
+.newRecordStreak
ld a, [hli]
- ld [$a071], a
+ ld [sTrainerRankingLongestSlotsStreak], a
ld a, [hl]
- ld [$a072], a
+ ld [sTrainerRankingLongestSlotsStreak + 1], a
-.asm_105fc9
- call Function106162
+.done
+ call UpdateTrainerRankingsChecksum
call CloseSRAM
ret
; 105fd0
-MobileFn_105fd0: mobile ; 105fd0
+TrainerRankings_EndSlotsWinStreak: mobile ; 105fd0
ld a, $5
call GetSRAMBank
- ld hl, $a06f
+ ld hl, sTrainerRankingCurrentSlotsStreak
xor a
ld [hli], a
ld [hl], a
- call Function106162
+ call UpdateTrainerRankingsChecksum
call CloseSRAM
ret
; 105fe3
-MobileFn_105fe3: mobile ; 105fe3
+TrainerRankings_AddToSlotsPayouts: mobile ; 105fe3
ld a, $5
call GetSRAMBank
- ld hl, $a076
+ ld hl, sTrainerRankingTotalSlotsPayouts + 3
ld a, e
add [hl]
ld [hld], a
ld a, d
adc [hl]
ld [hld], a
- jr nc, .asm_106001
+ jr nc, .done
inc [hl]
- jr nz, .asm_106001
+ jr nz, .done
dec hl
inc [hl]
- jr nz, .asm_106001
+ jr nz, .done
ld a, $ff
-rept 3
ld [hli], a
-endr
+ ld [hli], a
+ ld [hli], a
ld [hl], a
-.asm_106001
- call Function106162
+.done
+ call UpdateTrainerRankingsChecksum
call CloseSRAM
ret
; 106008
-MobileFn_106008: mobile ; 106008
+TrainerRankings_AddToBattlePayouts: mobile ; 106008
ld a, $5
call GetSRAMBank
- ld hl, $a07a
+ ld hl, sTrainerRankingTotalBattlePayouts + 3
ld a, [bc]
dec bc
add [hl]
@@ -207,189 +227,195 @@ MobileFn_106008: mobile ; 106008
ld a, [bc]
adc [hl]
ld [hld], a
- jr nc, .asm_106027
+ jr nc, .done
inc [hl]
- jr nz, .asm_106027
+ jr nz, .done
ld a, $ff
-rept 3
ld [hli], a
-endr
+ ld [hli], a
+ ld [hli], a
ld [hl], a
-.asm_106027
- call Function106162
+.done
+ call UpdateTrainerRankingsChecksum
call CloseSRAM
ret
; 10602e
-MobileFn_10602e: mobile ; 10602e (41:602e)
- ld hl, $a010
- jp MobileFn_106117
+TrainerRankings_StepCount: mobile ; 10602e (41:602e)
+ ld hl, sTrainerRankingStepCount
+ jp TrainerRankings_Increment4Byte
-MobileFn_106035: mobile ; 106035
+; Unreferenced in English version.
+TrainerRankings_BattleTowerWins: mobile ; 106035
ld a, $5
call GetSRAMBank
ld a, [$aa8d]
and a
call CloseSRAM
ret nz
- ld hl, $a014
- jp Function106123
+ ld hl, sTrainerRankingBattleTowerWins
+ jp TrainerRankings_Increment2Byte
-MobileFn_106049: mobile ; 106049
- ld hl, $a018
- jp Function10611d
+TrainerRankings_TMsHMsTaught: mobile ; 106049
+ ld hl, sTrainerRankingTMsHMsTaught
+ jp TrainerRankings_Increment3Byte
-MobileFn_106050: mobile ; 106050
+TrainerRankings_Battles: mobile ; 106050
ld a, [BattleType]
- cp BATTLETYPE_TUTORIAL
+ cp BATTLETYPE_TUTORIAL ; Exclude the Dude’s tutorial battle
ret z
- ld hl, $a01b
- jp Function10611d
+ ld hl, sTrainerRankingBattles
+ jp TrainerRankings_Increment3Byte
-MobileFn_10605d: mobile ; 10605d
+TrainerRankings_WildBattles: mobile ; 10605d
ld a, [BattleType]
- cp BATTLETYPE_TUTORIAL
+ cp BATTLETYPE_TUTORIAL ; Exclude the Dude’s tutorial battle
ret z
- ld hl, $a01e
- jp Function10611d
+ ld hl, sTrainerRankingWildBattles
+ jp TrainerRankings_Increment3Byte
-MobileFn_10606a: mobile ; 10606a
- ld hl, $a021
- jp Function10611d
+TrainerRankings_TrainerBattles: mobile ; 10606a
+ ld hl, sTrainerRankingTrainerBattles
+ jp TrainerRankings_Increment3Byte
-MobileFn_106071: mobile ; 106071
- ld hl, $a024
- jp Function10611d
+TrainerRankings_Unused1: mobile ; 106071
+ ld hl, sTrainerRankingUnused1
+ jp TrainerRankings_Increment3Byte
-Mobile_HallOfFame:: mobile ; 0x106078
- ld hl, $a027
- jp Function10611d
+TrainerRankings_HallOfFame:: mobile ; 0x106078
+ ld hl, sTrainerRankingHOFEntries
+ jp TrainerRankings_Increment3Byte
-MobileFn_10607f: mobile ; 10607f (41:607f)
- ld hl, $a02a
- jp Function10611d
+TrainerRankings_WildMonsCaught: mobile ; 10607f (41:607f)
+ ld hl, sTrainerRankingWildMonsCaught
+ jp TrainerRankings_Increment3Byte
-MobileFn_106086: mobile ; 106086
- ld hl, $a02d
- jp Function10611d
+TrainerRankings_HookedEncounters: mobile ; 106086
+ ld hl, sTrainerRankingHookedEncounters
+ jp TrainerRankings_Increment3Byte
-MobileFn_10608d: mobile ; 10608d (41:608d)
- ld hl, $a030
- jp Function10611d
+TrainerRankings_EggsHatched: mobile ; 10608d (41:608d)
+ ld hl, sTrainerRankingEggsHatched
+ jp TrainerRankings_Increment3Byte
-MobileFn_106094: mobile ; 106094
- ld hl, $a033
- jp Function10611d
+TrainerRankings_MonsEvolved: mobile ; 106094
+ ld hl, sTrainerRankingMonsEvolved
+ jp TrainerRankings_Increment3Byte
-MobileFn_10609b: mobile ; 10609b
- ld hl, $a036
- jp Function10611d
+TrainerRankings_FruitPicked: mobile ; 10609b
+ ld hl, sTrainerRankingFruitPicked
+ jp TrainerRankings_Increment3Byte
-Mobile_HealParty: mobile ; 1060a2
- ld hl, $a039
- jp Function10611d
+TrainerRankings_Healings: mobile ; 1060a2
+ ld hl, sTrainerRankingHealings
+ jp TrainerRankings_Increment3Byte
-MobileFn_1060a9: mobile ; 1060a9 (41:60a9)
- ld hl, $a03c
- jr Function10611d
+TrainerRankings_MysteryGift: mobile ; 1060a9 (41:60a9)
+ ld hl, sTrainerRankingMysteryGift
+ jr TrainerRankings_Increment3Byte
-MobileFn_1060af: mobile ; 1060af
- ld hl, $a03f
- jr Function10611d
+TrainerRankings_Trades: mobile ; 1060af
+ ld hl, sTrainerRankingTrades
+ jr TrainerRankings_Increment3Byte
-MobileFn_1060b5: mobile ; 1060b5
- ld hl, $a042
- jr Function10611d
+TrainerRankings_Fly: mobile ; 1060b5
+ ld hl, sTrainerRankingFly
+ jr TrainerRankings_Increment3Byte
-MobileFn_1060bb: mobile ; 1060bb
- ld hl, $a045
- jr Function10611d
+TrainerRankings_Surf: mobile ; 1060bb
+ ld hl, sTrainerRankingSurf
+ jr TrainerRankings_Increment3Byte
-MobileFn_1060c1: mobile ; 1060c1
- ld hl, $a048
- jr Function10611d
+TrainerRankings_Waterfall: mobile ; 1060c1
+ ld hl, sTrainerRankingWaterfall
+ jr TrainerRankings_Increment3Byte
-MobileFn_1060c7: mobile ; 1060c7
- ld hl, $a04b
- jr Function10611d
+TrainerRankings_WhiteOuts: mobile ; 1060c7
+ ld hl, sTrainerRankingWhiteOuts
+ jr TrainerRankings_Increment3Byte
-MobileFn_1060cd: mobile ; 1060cd
- ld hl, $a04e
- jr Function106123
+TrainerRankings_LuckyNumberShow: mobile ; 1060cd
+ ld hl, sTrainerRankingLuckyNumberShow
+ jr TrainerRankings_Increment2Byte
-MobileFn_1060d3: mobile ; 1060d3
- ld hl, $a051
- jr Function10611d
+TrainerRankings_PhoneCalls: mobile ; 1060d3
+ ld hl, sTrainerRankingPhoneCalls
+ jr TrainerRankings_Increment3Byte
-MobileFn_1060d9: mobile ; 1060df
- ld hl, $a054
- jr Function10611d
+TrainerRankings_Unused2: mobile ; 1060df
+ ld hl, sTrainerRankingUnused2
+ jr TrainerRankings_Increment3Byte
-MobileFn_1060df: mobile ; 1060df
- ld hl, $a057
- jr Function10611d
+TrainerRankings_LinkBattles: mobile ; 1060df
+ ld hl, sTrainerRankingLinkBattles
+ jr TrainerRankings_Increment3Byte
-MobileFn_1060e5: mobile ; 1060e5
+TrainerRankings_Splash: mobile ; 1060e5
+ ; Only counts if it’s the player’s turn
ld a, [hBattleTurn]
and a
ret nz
- ld hl, $a05a
- jr Function10611d
+ ld hl, sTrainerRankingSplash
+ jr TrainerRankings_Increment3Byte
-MobileFn_1060ef: mobile ; 1060ef
- ld hl, $a05d
- jr Function10611d
+TrainerRankings_TreeEncounters: mobile ; 1060ef
+ ld hl, sTrainerRankingTreeEncounters
+ jr TrainerRankings_Increment3Byte
-MobileFn_1060f5: mobile ; 1060f5
- ld hl, $a060
- jr Function10611d
+TrainerRankings_Unused3: mobile ; 1060f5
+ ld hl, sTrainerRankingUnused3
+ jr TrainerRankings_Increment3Byte
-MobileFn_SaveBattleResult_Win: mobile ; win
- ld hl, $a063
- jr Function10611d
+TrainerRankings_ColosseumWins: mobile ; win
+ ld hl, sTrainerRankingColosseumWins
+ jr TrainerRankings_Increment3Byte
-MobileFn_SaveBattleResult_Lose: mobile ; lose
- ld hl, $a066
- jr Function10611d
+TrainerRankings_ColosseumLosses: mobile ; lose
+ ld hl, sTrainerRankingColosseumLosses
+ jr TrainerRankings_Increment3Byte
; 106107
-MobileFn_SaveBattleResult_Draw: mobile ; draw
- ld hl, $a069
- jr Function10611d
+TrainerRankings_ColosseumDraws: mobile ; draw
+ ld hl, sTrainerRankingColosseumDraws
+ jr TrainerRankings_Increment3Byte
; 10610d
-MobileFn_10610d: mobile ; 10610d
+; Counts uses of both SelfDestruct and Explosion.
+TrainerRankings_SelfDestruct: mobile ; 10610d
+ ; Only counts if it’s the player’s turn
ld a, [hBattleTurn]
and a
ret nz
- ld hl, $a06c
- jr Function10611d
+ ld hl, sTrainerRankingSelfDestruct
+ jr TrainerRankings_Increment3Byte
; 106117
-MobileFn_106117: ; 106117
+TrainerRankings_Increment4Byte: ; 106117
push bc
ld bc, 3
- jr Function10612d
+ jr TrainerRankings_Increment
; 10611d
-Function10611d: ; 10611d
+TrainerRankings_Increment3Byte: ; 10611d
push bc
ld bc, 2
- jr Function10612d
+ jr TrainerRankings_Increment
; 106123
-Function106123: ; 106123
+TrainerRankings_Increment2Byte: ; 106123
push bc
ld bc, 1
- jr Function10612d
+ jr TrainerRankings_Increment
; 106129
-Function106129: ; 106129
+; unused
+TrainerRankings_Increment1Byte: ; 106129
push bc
ld bc, 0
-Function10612d: ; 10612d
+; Increments a big-endian value of bc + 1 bytes at hl
+TrainerRankings_Increment: ; 10612d
ld a, $5
call GetSRAMBank
push hl
@@ -419,24 +445,25 @@ Function10612d: ; 10612d
jr .asm_106142
.asm_10614d
- call Function106162
+ call UpdateTrainerRankingsChecksum
call CloseSRAM
pop bc
ret
; 106155
-MobileFn_106155: mobile ; 106155
+; Used when SRAM bank 5 isn’t already loaded — what’s the point of this?
+UpdateTrainerRankingsChecksum2: mobile ; 106155
ld a, $5
call GetSRAMBank
- call Function106162
+ call UpdateTrainerRankingsChecksum
call CloseSRAM
ret
; 106162
-Function106162: ; 106162
+UpdateTrainerRankingsChecksum: ; 106162
push de
- call Function10616e
- ld hl, $a081 ; s5_a081
+ call CalculateTrainerRankingsChecksum
+ ld hl, sTrainerRankingsChecksum
ld [hl], d
inc hl
ld [hl], e
@@ -444,10 +471,10 @@ Function106162: ; 106162
ret
; 10616e
-Function10616e: ; 10616e
+CalculateTrainerRankingsChecksum: ; 10616e
push bc
- ld hl, $a001 ; s5_a001
- ld bc, $80
+ ld hl, sTrainerRankings
+ ld bc, sTrainerRankingsChecksum - sTrainerRankings
xor a
ld de, 0
.asm_106179
@@ -495,9 +522,10 @@ RestoreMobileEventIndex: ; 10619d (41:619d)
ret
; 1061b3 (41:61b3)
-Function1061b3: ; 1061b3
- call Function10616e
- ld hl, $a081 ; s5_a081
+; Unreferenced in English version.
+VerifyTrainerRankingsChecksum: ; 1061b3
+ call CalculateTrainerRankingsChecksum
+ ld hl, sTrainerRankingsChecksum
ld a, d
cp [hl]
ret nz
@@ -516,19 +544,24 @@ DeleteMobileEventIndex: ; 1061c0 (41:61c0)
ret
; 1061cd (41:61cd)
-Function1061cd: ; unreferenced
- ld hl, $a001
- ld bc, $82
+; Used in the Japanese version to initialize Trainer Rankings data
+; for a new save file. Unreferenced in the English version.
+InitializeTrainerRankings:
+ ld hl, sTrainerRankings
+ ld bc, sTrainerRankingsEnd - sTrainerRankings
xor a
call ByteFill
- ld hl, $a07d
+
+ ; Initialize the shortest Magikarp to 100.0 cm
+ ld hl, sTrainerRankingShortestMagikarp
ld a, $3
ld [hli], a
ld [hl], $e8
- call Function106162
- ld hl, $a001
- ld de, $a084
- ld bc, $82
+
+ call UpdateTrainerRankingsChecksum
+ ld hl, sTrainerRankings
+ ld de, sTrainerRankingsBackup
+ ld bc, sTrainerRankingsEnd - sTrainerRankings
call CopyBytes
ret
; 1061ef
@@ -606,12 +639,11 @@ _MobilePrintNum:: ; 1061ef
ld de, ._9
.three_to_nine_digits
-rept 3
inc de
-endr
-rept 2
+ inc de
+ inc de
+ dec a
dec a
-endr
.digit_loop
push af
@@ -690,9 +722,9 @@ endr
sbc b
ld [hPrintNum6], a
ld a, [de]
-rept 3
inc de
-endr
+ inc de
+ inc de
ld b, a
ld a, [hPrintNum1]
sbc b
@@ -807,17 +839,17 @@ Function106331: ; 106331 - called by Mobile_DummyReturnFalse in Crystal-J
; 10635c
Function10635c: ; 10635c
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
bit 7, a
ret nz
- ld a, [wcd25]
- ld hl, Jumptable_10636a
+ ld a, [wMobileCommsJumptableIndex]
+ ld hl, .Jumptable
rst JumpTable
ret
; 10636a
-Jumptable_10636a: ; 10636a
- dw Function10637c
+.Jumptable: ; 10636a
+ dw .init
dw Function106392
dw Function1063cc
dw Function1063d8
@@ -828,15 +860,15 @@ Jumptable_10636a: ; 10636a
dw Function106453
; 10637c
-Function10637c: ; 10637c
+.init: ; 10637c
ld de, wcd30
ld hl, $41
ld bc, $41
ld a, $40
call Function3e32
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 106392
@@ -858,39 +890,39 @@ Function106392: ; 106392
ld a, $b
ld [wcf64], a
ld a, $7
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
.asm_1063b4
ld a, $7
ld [wcf64], a
ld a, $7
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
.asm_1063bf
ld a, $1
ld [wcf64], a
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 1063cc
Function1063cc: ; 1063cc
ld a, $78
ld [wcd42], a
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
Function1063d8: ; 1063d8
ld hl, wcd42
dec [hl]
ret nz
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 1063e5
@@ -898,9 +930,9 @@ Function1063e5: ; 1063e5
ld a, [wcf64]
cp $3
ret nz
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 1063f3
@@ -908,9 +940,9 @@ Function1063f3: ; 1063f3
ld de, wcd31
ld a, $32
call Function3e32
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 106403
@@ -931,9 +963,9 @@ Function106403: ; 106403
inc a
ld c, a
call MobileFn_106314
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
.asm_106426
@@ -941,17 +973,17 @@ Function106403: ; 106403
ld a, c
and a
jr z, .asm_106435
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
.asm_106435
ld c, $0
call MobileFn_106314
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
ret
; 106442
@@ -961,14 +993,14 @@ Function106442: ; 106442
xor a
ld [hMobile], a
ld [hMobileReceive], a
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
inc a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
Function106453: ; 106453
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
set 7, a
- ld [wcd25], a
+ ld [wMobileCommsJumptableIndex], a
nop
ld a, $4
ld [wcf64], a
@@ -984,9 +1016,9 @@ Function106464:: ; 106464
ld hl, VTiles2 tile $60
lb bc, BANK(MobilePhoneTilesGFX), 1
call Get2bpp
- ld de, GFX_f9424
+ ld de, FontsExtra2_UpArrowGFX
ld hl, VTiles2 tile $61
- lb bc, BANK(GFX_f9424), 1
+ lb bc, BANK(FontsExtra2_UpArrowGFX), 1
call Get2bpp
ld de, GFX_106514
ld hl, VTiles2 tile $62
diff --git a/misc/mobile_42.asm b/misc/mobile_42.asm
index a24efd10c..60f9e6d66 100644
--- a/misc/mobile_42.asm
+++ b/misc/mobile_42.asm
@@ -372,9 +372,8 @@ MobileTradeAnim_JumptableLoop: ; 10824b
ld e, a
ld d, 0
ld hl, .Jumptable
-rept 2
add hl, de
-endr
+ add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
@@ -446,7 +445,7 @@ Function1082db: ; 1082db
.loop
callba PlaySpriteAnimations
callba SetUpPokeAnim
- callba Function10402d
+ callba HDMATransferTileMapToWRAMBank3
jr nc, .loop
ret
; 1082f0
@@ -493,7 +492,7 @@ MobileTradeAnim_ShowPlayerMonToBeSent: ; 10830e
ld [TempMonDVs], a
ld a, [wPlayerTrademonDVs + 1]
ld [TempMonDVs + 1], a
- ld b, SCGB_1A
+ ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
call GetSGBLayout
ld a, %11100100 ; 3,2,1,0
call DmgToCgbBGPals
@@ -586,7 +585,7 @@ MobileTradeAnim_ShowOTMonFromTrade: ; 10839b
ld [TempMonDVs], a
ld a, [wOTTrademonDVs + 1]
ld [TempMonDVs + 1], a
- ld b, SCGB_1A
+ ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
call GetSGBLayout
ld a, %11100100 ; 3,2,1,0
call DmgToCgbBGPals
@@ -628,7 +627,7 @@ MobileTradeAnim_ShowPlayerMonForGTS: ; 10842c
ld [TempMonDVs], a
ld a, [wPlayerTrademonDVs + 1]
ld [TempMonDVs + 1], a
- ld b, SCGB_1A
+ ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
call GetSGBLayout
ld a, %11100100 ; 3,2,1,0
call DmgToCgbBGPals
@@ -730,7 +729,7 @@ MobileTradeAnim_ShowOTMonFromGTS: ; 1084d7
ld [TempMonDVs], a
ld a, [wOTTrademonDVs + 1]
ld [TempMonDVs + 1], a
- ld b, SCGB_1A
+ ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
call GetSGBLayout
ld a, %11100100 ; 3,2,1,0
call DmgToCgbBGPals
@@ -799,7 +798,7 @@ MobileTradeAnim_GetOddEgg: ; 108589
ld [TempMonDVs], a
ld a, [wOTTrademonDVs + 1]
ld [TempMonDVs + 1], a
- ld b, SCGB_1A
+ ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
call GetSGBLayout
ld a, %11100100 ; 3,2,1,0
call DmgToCgbBGPals
@@ -955,9 +954,8 @@ MobileTradeAnim_GiveTrademon1: ; 108763
ld a, [hSCX]
cp $e0
jr z, .loop2
-rept 2
dec a
-endr
+ dec a
ld [hSCX], a
cp $f8
jr nz, .next
@@ -974,9 +972,8 @@ endr
ld a, [hSCY]
cp $f8
jr z, .done
-rept 2
dec a
-endr
+ dec a
ld [hSCY], a
cp $40
jr z, .init
@@ -1125,9 +1122,8 @@ MobileTradeAnim_GetTrademon2: ; 108894
ld a, [hSCY]
cp $78
jr z, .asm_1088ee
-rept 2
inc a
-endr
+ inc a
ld [hSCY], a
cp $30
jr z, .asm_1088c5
@@ -1166,9 +1162,8 @@ endr
ld a, [hSCX]
cp $c
jr z, .asm_108906
-rept 2
inc a
-endr
+ inc a
ld [hSCX], a
cp -8
jr nz, .asm_1088e7
diff --git a/misc/mobile_45.asm b/misc/mobile_45.asm
index 39d1f46ed..10242b77e 100644
--- a/misc/mobile_45.asm
+++ b/misc/mobile_45.asm
@@ -153,9 +153,8 @@ Function114243:: ; 114243
Function11425c: ; 11425c
ld [$dc02], a
pop af
-rept 2
ld [hFF8C], a
-endr
+ ld [hFF8C], a
ld [MBC3SRamBank], a
ret
@@ -632,13 +631,12 @@ Function1144c8: ; 1144c8
Function1144d1: ; 1144d1
call Function114561
-rept 2
dec de
-endr
+ dec de
push de
-rept 3
inc de
-endr
+ inc de
+ inc de
inc hl
ld a, [de]
ld [hli], a
@@ -1006,9 +1004,8 @@ Function1146a4: ; 1146a4
and a
jr nz, .asm_1146e8
.asm_1146da
-rept 2
dec bc
-endr
+ dec bc
call Function1149cc
and a
jr nz, .asm_1146e4
@@ -1095,9 +1092,8 @@ Function1146fa: ; 1146fa
ld a, [$dc0e]
cp $3
jr nz, .asm_114773
-rept 2
dec bc
-endr
+ dec bc
.asm_114773
call Function1149cc
@@ -2069,9 +2065,8 @@ Function114c5e: ; 114c5e
inc de
cp $3f
jr nz, .asm_114c62
-rept 2
dec de
-endr
+ dec de
.asm_114c75
ld a, [hli]
cp $3f
@@ -2091,9 +2086,8 @@ endr
ld a, [hli]
cp $3d
jr nz, .asm_114c84
-rept 2
dec bc
-endr
+ dec bc
ld a, l
ld [$dc03], a
ld a, h
@@ -2360,9 +2354,8 @@ Function114d99: ; 114d99
add hl, de
ld b, h
ld c, l
-rept 2
inc bc
-endr
+ inc bc
xor a
ret
@@ -2563,9 +2556,8 @@ Function114ee9: ; 114ee9
ld a, b
ld [hli], a
ld a, c
-rept 2
ld [hli], a
-endr
+ ld [hli], a
ld a, [de]
ld [hli], a
inc de
@@ -2970,9 +2962,8 @@ Function1150b3: ; 1150b3
.asm_11510b
pop hl
-rept 2
dec hl
-endr
+ dec hl
push de
call Function1158c2
pop de
@@ -3499,9 +3490,8 @@ Function1153b5: ; 1153b5
ld e, [hl]
inc hl
ld d, [hl]
-rept 2
inc hl
-endr
+ inc hl
ld a, [de]
ld [hli], a
inc de
@@ -4470,9 +4460,9 @@ Function1158c2: ; 1158c2
ld bc, $0003
.asm_115914
-rept 3
dec bc
-endr
+ dec bc
+ dec bc
ld a, c
ld [$dc19], a
ld a, b
@@ -4523,9 +4513,8 @@ endr
ld a, $3f
and c
ld [hld], a
-rept 2
dec hl
-endr
+ dec hl
pop de
ld b, h
ld c, l
@@ -4581,9 +4570,8 @@ endr
ld a, [hli]
ld c, a
ld b, [hl]
-rept 2
inc bc
-endr
+ inc bc
ld a, b
ld [hld], a
ld [hl], c
@@ -4864,9 +4852,8 @@ Function115b00: ; 115b00
ld a, [wStartDay]
cp $4
jr z, .asm_115b43
-rept 2
inc hl
-endr
+ inc hl
jr .asm_115b43
.asm_115b36
@@ -5048,9 +5035,8 @@ Function115bc8: ; 115bc8
ret
.asm_115c33
-rept 2
dec hl
-endr
+ dec hl
xor a
ld [hl], a
ld a, $1
@@ -5153,9 +5139,9 @@ endr
ld e, [hl]
inc hl
ld d, [hl]
-rept 3
inc de
-endr
+ inc de
+ inc de
ld [hl], d
dec hl
ld [hl], e
@@ -5406,9 +5392,8 @@ Function11659d: ; 11659d
ld e, a
ld d, 0
ld hl, Jumptable_1165af
-rept 2
add hl, de
-endr
+ add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
@@ -6941,9 +6926,8 @@ Function117719: ; 117719 (45:7719)
ld e, a
ld d, 0
ld hl, Jumptable_117728
-rept 2
add hl, de
-endr
+ add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
@@ -7396,7 +7380,7 @@ Function117a94: ; 0x117a94
call ClearBGPalettes
call ClearSprites
callba Function172e78
- callba Function104000
+ callba HDMATransferAttrMapAndTileMapToWRAMBank3
ret
; 0x117ab4
@@ -7417,7 +7401,7 @@ Function117acd: ; 0x117acd
bit 7, a
jr nz, .asm_117ae2
call Function117ae9
- callba Function104000
+ callba HDMATransferAttrMapAndTileMapToWRAMBank3
jr Function117acd
.asm_117ae2
@@ -7430,9 +7414,8 @@ Function117ae9: ; 0x117ae9
ld e, a
ld d, $0
ld hl, .Jumptable
-rept 2
add hl, de
-endr
+ add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
diff --git a/misc/mobile_45_sprite_engine.asm b/misc/mobile_45_sprite_engine.asm
index ab31a9bb9..d0183b2ca 100755
--- a/misc/mobile_45_sprite_engine.asm
+++ b/misc/mobile_45_sprite_engine.asm
@@ -375,9 +375,8 @@ Function1161b8: ; 1161b8
ld e, a
ld d, 0
ld hl, .Jumptable
-rept 2
add hl, de
-endr
+ add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
diff --git a/misc/mobile_46.asm b/misc/mobile_46.asm
index a7feeea28..644989872 100755
--- a/misc/mobile_46.asm
+++ b/misc/mobile_46.asm
@@ -1067,7 +1067,7 @@ asm_11886f
ld [wcd3c], a
call Function119e2e
ld a, [wcd33]
- ld [wcd45], a
+ ld [wMobileInactivityTimerSeconds], a
Function118880: ; 118880 (46:4880)
call Function119ed8
@@ -1344,7 +1344,7 @@ Function118982:
ld a, $7
ld [wcf66], a
ld a, $0
- ld [wcd46], a
+ ld [wMobileInactivityTimerFrames], a
ret
@@ -1615,7 +1615,7 @@ Function118d80: ; 118d80
ld a, $9
ld [wcd3c], a
ld a, $12
- ld [wcd45], a
+ ld [wMobileInactivityTimerSeconds], a
call Function119e2e
Function118d9b:
@@ -1830,9 +1830,9 @@ Function118ec6: ; 118ec6
ld a, $1d
ld [wcd3c], a
ld a, $24
- ld [wcd45], a
+ ld [wMobileInactivityTimerSeconds], a
ld a, $11
- ld [wcd46], a
+ ld [wMobileInactivityTimerFrames], a
ld a, $1c
ld [wcd47], a
jp Function119e2e
@@ -1871,9 +1871,9 @@ Function118f14:
ld a, $9
ld [wcd3c], a
ld a, $24
- ld [wcd45], a
+ ld [wMobileInactivityTimerSeconds], a
ld a, $13
- ld [wcd46], a
+ ld [wMobileInactivityTimerFrames], a
ld a, $1c
ld [wcd47], a
jp Function119e2e
@@ -2518,7 +2518,7 @@ Function119388: ; 119388
ld a, $9
ld [wcd3c], a
ld a, $10
- ld [wcd45], a
+ ld [wMobileInactivityTimerSeconds], a
call Function119e2e
Function1193a0:
@@ -2565,7 +2565,7 @@ Function1193e3: ; 1193e3
ld a, $9
ld [wcd3c], a
ld a, $11
- ld [wcd45], a
+ ld [wMobileInactivityTimerSeconds], a
call Function119e2e
Function1193fb:
@@ -2895,9 +2895,9 @@ Function1195f8: ; 1195f8 (46:55f8)
ld a, $11
ld [wcd3c], a
ld a, $1c
- ld [wcd45], a
+ ld [wMobileInactivityTimerSeconds], a
ld a, $f
- ld [wcd46], a
+ ld [wMobileInactivityTimerFrames], a
ld a, $14
ld [wcd47], a
call Function119e2e
@@ -2907,9 +2907,9 @@ Function119612: ; 119612 (46:5612)
ld a, $14
ld [wcd3c], a
ld a, $1c
- ld [wcd45], a
+ ld [wMobileInactivityTimerSeconds], a
ld a, $10
- ld [wcd46], a
+ ld [wMobileInactivityTimerFrames], a
ld a, $14
ld [wcd47], a
jp Function119e2e
@@ -2925,7 +2925,7 @@ Function119629: ; 119629 (46:5629)
ld a, $9
ld [wcd3c], a
ld a, $1c
- ld [wcd45], a
+ ld [wMobileInactivityTimerSeconds], a
ld a, $14
ld [wcd47], a
call Function119e2e
@@ -3219,7 +3219,7 @@ Function1197c9: ; 1197c9
ld a, $9
ld [wcd3c], a
ld a, $12
- ld [wcd45], a
+ ld [wMobileInactivityTimerSeconds], a
call Function119e2e
Function1197dc:
@@ -3767,9 +3767,9 @@ Function119b6b: ; 119b6b
ld [hld], a
dec hl
pop de
-rept 3
inc hl
-endr
+ inc hl
+ inc hl
ld a, h
cp $e0
jr c, .asm_119b93
@@ -3943,7 +3943,7 @@ Function119cdf:
Function119cec:
call Function119ed8
ret c
- ld a, [wcd46]
+ ld a, [wMobileInactivityTimerFrames]
ld [wcf66], a
ret
; 119cf7
@@ -4301,16 +4301,16 @@ Function119f45: ; 119f45
ld de, String_11a661
call PlaceString
ld a, $80
- ld [wcd44], a
+ ld [wMobileInactivityTimerMinutes], a
jp Function11a5b0
; 119f56
Function119f56: ; 119f56
- ld a, [wcd44]
+ ld a, [wMobileInactivityTimerMinutes]
and a
jr z, .asm_119f62
dec a
- ld [wcd44], a
+ ld [wMobileInactivityTimerMinutes], a
scf
ret
@@ -4320,16 +4320,16 @@ Function119f56: ; 119f56
ld de, String_11a6aa
call PlaceString
ld a, $80
- ld [wcd44], a
+ ld [wMobileInactivityTimerMinutes], a
jp Function11a5b0
; 119f76
Function119f76: ; 119f76
- ld a, [wcd44]
+ ld a, [wMobileInactivityTimerMinutes]
and a
jr z, .asm_119f82
dec a
- ld [wcd44], a
+ ld [wMobileInactivityTimerMinutes], a
scf
ret
@@ -4340,7 +4340,7 @@ Function119f76: ; 119f76
call PlaceString
call Function11a5f5
xor a
- ld [wcd44], a
+ ld [wMobileInactivityTimerMinutes], a
jp Function11a5b0
; 119f98
@@ -4348,7 +4348,7 @@ Function119f98: ; 119f98
call Function11a536
ret c
call PlayClickSFX
- ld a, [wcd44]
+ ld a, [wMobileInactivityTimerMinutes]
and a
jr nz, .asm_119fef
call ExitMenu
@@ -4385,7 +4385,7 @@ Function119f98: ; 119f98
call ExitMenu
call ExitMenu
callba ReloadMapPart
- ld a, [wcd45]
+ ld a, [wMobileInactivityTimerSeconds]
ld [wcf66], a
callba Function115dc3
ld a, $a
@@ -4504,12 +4504,12 @@ Function11a113: ; 11a113
Function11a129: ; 11a129
ld a, $80
- ld [wcd44], a
+ ld [wMobileInactivityTimerMinutes], a
jp Function11a5b0
; 11a131
Function11a131: ; 11a131
- ld hl, wcd44
+ ld hl, wMobileInactivityTimerMinutes
dec [hl]
ret nz
ld a, [wcd3c]
@@ -4541,16 +4541,16 @@ Function11a14b: ; 11a14b
ld de, String_11a6f1
call PlaceString
ld a, $80
- ld [wcd44], a
+ ld [wMobileInactivityTimerMinutes], a
jp Function11a5b0
; 11a16d
Function11a16d: ; 11a16d
- ld a, [wcd44]
+ ld a, [wMobileInactivityTimerMinutes]
and a
jr z, .asm_11a179
dec a
- ld [wcd44], a
+ ld [wMobileInactivityTimerMinutes], a
scf
ret
@@ -4562,7 +4562,7 @@ Function11a16d: ; 11a16d
call PlaceString
call Function11a5f5
xor a
- ld [wcd44], a
+ ld [wMobileInactivityTimerMinutes], a
jp Function11a5b0
; 11a192
@@ -4570,7 +4570,7 @@ Function11a192: ; 11a192
call Function11a536
ret c
call PlayClickSFX
- ld a, [wcd44]
+ ld a, [wMobileInactivityTimerMinutes]
and a
jr nz, .asm_11a1b6
call ExitMenu
@@ -4585,7 +4585,7 @@ Function11a192: ; 11a192
.asm_11a1b6
call ExitMenu
callba ReloadMapPart
- ld a, [wcd45]
+ ld a, [wMobileInactivityTimerSeconds]
ld [wcf66], a
ld [wcd80], a
call Function11a63c
@@ -4649,7 +4649,7 @@ Function11a207: ; 11a207
ld a, $ed
ld [hl], a
xor a
- ld [wcd44], a
+ ld [wMobileInactivityTimerMinutes], a
jp Function11a5b0
; 11a235
@@ -4676,11 +4676,11 @@ Function11a235: ; 11a235
xor a
ld [wcd8a], a
ld [wcd8b], a
- ld a, [wcd44]
+ ld a, [wMobileInactivityTimerMinutes]
and a
jr z, .asm_11a24c
xor a
- ld [wcd44], a
+ ld [wMobileInactivityTimerMinutes], a
hlcoord 15, 8
ld a, $ed
ld [hl], a
@@ -4693,11 +4693,11 @@ Function11a235: ; 11a235
xor a
ld [wcd8a], a
ld [wcd8b], a
- ld a, [wcd44]
+ ld a, [wMobileInactivityTimerMinutes]
and a
jr nz, .asm_11a24c
inc a
- ld [wcd44], a
+ ld [wMobileInactivityTimerMinutes], a
hlcoord 15, 8
ld a, $7f
ld [hl], a
@@ -4711,12 +4711,12 @@ Function11a235: ; 11a235
ld [wcd8a], a
ld [wcd8b], a
call PlayClickSFX
- ld a, [wcd44]
+ ld a, [wMobileInactivityTimerMinutes]
and a
jr nz, .asm_11a2c4
call ExitMenu
callba ReloadMapPart
- ld a, [wcd46]
+ ld a, [wMobileInactivityTimerFrames]
cp $0
jr z, .asm_11a2b4
ld a, [wcd47]
@@ -4774,16 +4774,16 @@ Function11a2e6: ; 11a2e6
ld de, String_11a71e
call PlaceString
ld a, $80
- ld [wcd44], a
+ ld [wMobileInactivityTimerMinutes], a
jp Function11a5b0
; 11a302
Function11a302: ; 11a302
- ld a, [wcd44]
+ ld a, [wMobileInactivityTimerMinutes]
and a
jr z, .asm_11a30e
dec a
- ld [wcd44], a
+ ld [wMobileInactivityTimerMinutes], a
scf
ret
@@ -4801,16 +4801,16 @@ Function11a302: ; 11a302
lb bc, PRINTNUM_LEADINGZEROS | 1, 2
call PrintNum
ld a, $80
- ld [wcd44], a
+ ld [wMobileInactivityTimerMinutes], a
jp Function11a5b0
; 11a33a
Function11a33a: ; 11a33a
- ld a, [wcd44]
+ ld a, [wMobileInactivityTimerMinutes]
and a
jr z, .asm_11a346
dec a
- ld [wcd44], a
+ ld [wMobileInactivityTimerMinutes], a
scf
ret
@@ -4828,16 +4828,16 @@ Function11a357: ; 11a357
ld de, String_11a743
call PlaceString
ld a, $80
- ld [wcd44], a
+ ld [wMobileInactivityTimerMinutes], a
jp Function11a5b0
; 11a36b
Function11a36b: ; 11a36b
- ld a, [wcd44]
+ ld a, [wMobileInactivityTimerMinutes]
and a
jr z, .asm_11a377
dec a
- ld [wcd44], a
+ ld [wMobileInactivityTimerMinutes], a
scf
ret
@@ -4848,7 +4848,7 @@ Function11a36b: ; 11a36b
call PlaceString
call Function11a5f5
xor a
- ld [wcd44], a
+ ld [wMobileInactivityTimerMinutes], a
jp Function11a5b0
; 11a38d
@@ -4856,7 +4856,7 @@ Function11a38d: ; 11a38d
call Function11a536
ret c
call PlayClickSFX
- ld a, [wcd44]
+ ld a, [wMobileInactivityTimerMinutes]
and a
jr nz, .asm_11a3b1
call ExitMenu
@@ -4871,7 +4871,7 @@ Function11a38d: ; 11a38d
.asm_11a3b1
call ExitMenu
callba ReloadMapPart
- ld a, [wcd45]
+ ld a, [wMobileInactivityTimerSeconds]
ld [wcf66], a
ld [wcd80], a
scf
@@ -4884,16 +4884,16 @@ Function11a3c5: ; 11a3c5
ld de, String_11a762
call PlaceString
ld a, $80
- ld [wcd44], a
+ ld [wMobileInactivityTimerMinutes], a
jp Function11a5b0
; 11a3d9
Function11a3d9: ; 11a3d9
- ld a, [wcd44]
+ ld a, [wMobileInactivityTimerMinutes]
and a
jr z, .asm_11a3e5
dec a
- ld [wcd44], a
+ ld [wMobileInactivityTimerMinutes], a
scf
ret
@@ -4903,16 +4903,16 @@ Function11a3d9: ; 11a3d9
ld de, String_11a779
call PlaceString
ld a, $80
- ld [wcd44], a
+ ld [wMobileInactivityTimerMinutes], a
jp Function11a5b0
; 11a3f9
Function11a3f9: ; 11a3f9
- ld a, [wcd44]
+ ld a, [wMobileInactivityTimerMinutes]
and a
jr z, .asm_11a405
dec a
- ld [wcd44], a
+ ld [wMobileInactivityTimerMinutes], a
scf
ret
@@ -4923,7 +4923,7 @@ Function11a3f9: ; 11a3f9
call PlaceString
call Function11a5f5
xor a
- ld [wcd44], a
+ ld [wMobileInactivityTimerMinutes], a
jp Function11a5b0
; 11a41b
@@ -4931,7 +4931,7 @@ Function11a41b: ; 11a41b
call Function11a536
ret c
call PlayClickSFX
- ld a, [wcd44]
+ ld a, [wMobileInactivityTimerMinutes]
and a
jr nz, .asm_11a43f
call ExitMenu
@@ -4959,7 +4959,7 @@ Function11a452: ; 11a452
ld de, String_11a791
call PlaceString
ld a, $80
- ld [wcd44], a
+ ld [wMobileInactivityTimerMinutes], a
jp Function11a5b0
; 11a466
@@ -4969,16 +4969,16 @@ Function11a466: ; 11a466
ld de, String_11a7c1
call PlaceString
ld a, $80
- ld [wcd44], a
+ ld [wMobileInactivityTimerMinutes], a
jp Function11a5b0
; 11a47a
Function11a47a: ; 11a47a
- ld a, [wcd44]
+ ld a, [wMobileInactivityTimerMinutes]
and a
jr z, .asm_11a486
dec a
- ld [wcd44], a
+ ld [wMobileInactivityTimerMinutes], a
scf
ret
@@ -4994,7 +4994,7 @@ Function11a488: ; 11a488
call PlaceString
call Function11a5f5
xor a
- ld [wcd44], a
+ ld [wMobileInactivityTimerMinutes], a
jp Function11a5b0
; 11a49e
@@ -5002,7 +5002,7 @@ Function11a49e: ; 11a49e
call Function11a536
ret c
call PlayClickSFX
- ld a, [wcd44]
+ ld a, [wMobileInactivityTimerMinutes]
and a
jr nz, .asm_11a4c7
call ExitMenu
@@ -5019,7 +5019,7 @@ Function11a49e: ; 11a49e
.asm_11a4c7
call ExitMenu
callba ReloadMapPart
- ld a, [wcd46]
+ ld a, [wMobileInactivityTimerFrames]
ld [wcf66], a
ld [wcd80], a
scf
@@ -5041,7 +5041,7 @@ Function11a4e8: ; 11a4e8
call PlaceString
call Function11a5f5
xor a
- ld [wcd44], a
+ ld [wMobileInactivityTimerMinutes], a
jp Function11a5b0
; 11a4fe
@@ -5049,7 +5049,7 @@ Function11a4fe: ; 11a4fe
call Function11a536
ret c
call PlayClickSFX
- ld a, [wcd44]
+ ld a, [wMobileInactivityTimerMinutes]
and a
jr nz, .asm_11a522
call ExitMenu
@@ -5064,7 +5064,7 @@ Function11a4fe: ; 11a4fe
.asm_11a522
call ExitMenu
callba ReloadMapPart
- ld a, [wcd45]
+ ld a, [wMobileInactivityTimerSeconds]
ld [wcf66], a
ld [wcd80], a
scf
@@ -5102,11 +5102,11 @@ Function11a536: ; 11a536
xor a
ld [wcd8a], a
ld [wcd8b], a
- ld a, [wcd44]
+ ld a, [wMobileInactivityTimerMinutes]
and a
jr z, .asm_11a54d
xor a
- ld [wcd44], a
+ ld [wMobileInactivityTimerMinutes], a
hlcoord 15, 7
ld a, $ed
ld [hl], a
@@ -5119,11 +5119,11 @@ Function11a536: ; 11a536
xor a
ld [wcd8a], a
ld [wcd8b], a
- ld a, [wcd44]
+ ld a, [wMobileInactivityTimerMinutes]
and a
jr nz, .asm_11a54d
inc a
- ld [wcd44], a
+ ld [wMobileInactivityTimerMinutes], a
hlcoord 15, 7
ld a, $7f
ld [hl], a
@@ -5134,7 +5134,7 @@ Function11a536: ; 11a536
.asm_11a5a2
ld a, $1
- ld [wcd44], a
+ ld [wMobileInactivityTimerMinutes], a
.asm_11a5a7
xor a
@@ -5308,7 +5308,7 @@ String_11a7ac: ; 11a7ac
next "ちゅうし しますか?@"
; 11a7c1
-String_11a7c1: ; 11a7c1
+String_11a7c1: ; 11a7c1 ; new news?
db "あたらしい ニュースは"
next "ありません でした@"
; 11a7d7
@@ -7331,7 +7331,7 @@ Function11b5c0: ; 11b5c0
ld [wPokemonWithdrawDepositParameter], a
callba RemoveMonFromPartyOrBox
callba Function170807
- callba Function14a58
+ callba SaveAfterLinkTrade
jp Function11ad8a
; 11b5e0
@@ -7616,7 +7616,7 @@ Function11b7e5: ; 11b7e5
callba EvolvePokemon
xor a
ld [wLinkMode], a
- callba Function14a58
+ callba SaveAfterLinkTrade
ld a, $5
call GetSRAMBank
ld a, $5
@@ -7781,7 +7781,7 @@ Function11b93b: ; 11b93b
ld a, $c64b / $100
ld [wMobileMonMailPointerBuffer + 1], a
call AddMobileMonToParty
- callba Function14a58
+ callba SaveAfterLinkTrade
ret
; 11b98f
diff --git a/misc/mobile_5b.asm b/misc/mobile_5b.asm
index 24f2f9189..d317f2af3 100755
--- a/misc/mobile_5b.asm
+++ b/misc/mobile_5b.asm
@@ -1,48 +1,56 @@
Function16c000: ; 16c000
+; unreferenced
+ ; Only for CGB
ld a, [hCGB]
and a
ret z
+ ; Only do this once per boot cycle
ld a, [hFFEA]
and a
ret z
+ ; Set some flag, preserving the old state
ld a, [wcfbe]
push af
set 7, a
ld [wcfbe], a
- call Function16c108
- callba Function100063
- callba Function100082
- call Function16c031
- callba Function1000a4
+ ; Do stuff
+ call MobileSystemSplashScreen_InitGFX ; Load GFX
+ callba SetRAMStateForMobile
+ callba EnableMobile
+ call .RunJumptable
+ callba DisableMobile
+ ; Prevent this routine from running again
+ ; until the next time the syatem is turned on
xor a
ld [hFFEA], a
+ ; Restore the flag state
pop af
ld [wcfbe], a
ret
; 16c031
-Function16c031: ; 16c031
+.RunJumptable: ; 16c031
xor a
ld [wJumptableIndex], a
ld [wcf64], a
ld [wd002], a
ld [wd003], a
-.asm_16c03e
+.loop
call DelayFrame
callba Function10635c
ld a, [wd002]
- ld hl, Jumptable_16c05c
+ ld hl, .Jumptable
rst JumpTable
call Function16cb2e
call Function16cbae
ld a, [wd002]
cp $ff
- jr nz, .asm_16c03e
+ jr nz, .loop
ret
; 16c05c
-Jumptable_16c05c: ; 16c05c
- dw Function16c074
+.Jumptable: ; 16c05c
+ dw .init
dw Function16c0ba
dw Function16c089
dw Function16c09e
@@ -53,10 +61,10 @@ Jumptable_16c05c: ; 16c05c
dw Function16c0ca
dw Function16c0dc
dw Function16c0ec
- dw Function16c081
+ dw .quit
; 16c074
-Function16c074: ; 16c074
+.init ; 16c074
ld a, [wcf64]
and a
ret z
@@ -66,7 +74,7 @@ Function16c074: ; 16c074
ret
; 16c081
-Function16c081: ; 16c081
+.quit ; 16c081
push af
ld a, $ff
ld [wd002], a
@@ -160,15 +168,15 @@ Function16c0fa: ; 16c0fa
ret
; 16c108
-Function16c108: ; 16c108
+MobileSystemSplashScreen_InitGFX: ; 16c108
call DisableLCD
ld hl, VTiles2
- ld de, GFX_16c173
- lb bc, BANK(GFX_16c173), $68
+ ld de, .Tiles
+ lb bc, BANK(.Tiles), $68
call Get2bpp
- call Function16c130
- call Function16c145
- call Function16c15c
+ call .LoadPals
+ call .LoadTileMap
+ call .LoadAttrMap
hlbgcoord 0, 0
call Function16cc73
call Function16cc02
@@ -178,9 +186,9 @@ Function16c108: ; 16c108
ret
; 16c130
-Function16c130: ; 16c130
+.LoadPals: ; 16c130
ld de, UnknBGPals
- ld hl, Unknown_16c903
+ ld hl, UnknownMobilePalettes_16c903
ld bc, 8
ld a, $5
call FarCopyWRAM
@@ -188,79 +196,41 @@ Function16c130: ; 16c130
ret
; 16c145
-Function16c145: ; 16c145
+.LoadTileMap: ; 16c145
hlcoord 0, 0
ld bc, 20
xor a
call ByteFill
- ld hl, Tilemap_16c633
+ ld hl, .TileMap
decoord 0, 1
ld bc, $0154
call CopyBytes
ret
; 16c15c
-Function16c15c: ; 16c15c
+.LoadAttrMap: ; 16c15c
hlcoord 0, 0, AttrMap
ld bc, SCREEN_WIDTH
xor a
call ByteFill
- ld hl, Tilemap_16c79b
+ ld hl, .AttrMap
decoord 0, 1, AttrMap
ld bc, 17 * SCREEN_WIDTH
call CopyBytes
ret
; 16c173
-GFX_16c173:
+.Tiles:
INCBIN "gfx/unknown/16c173.2bpp"
-Tilemap_16c633:
+.TileMap:
INCBIN "gfx/unknown/16c633.tilemap"
-Tilemap_16c79b:
+.AttrMap:
INCBIN "gfx/unknown/16c79b.tilemap"
-Unknown_16c903:
- RGB 31, 31, 31
- RGB 04, 10, 20
- RGB 16, 19, 25
- RGB 25, 27, 29
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
+UnknownMobilePalettes_16c903: ; 16c903
+INCLUDE "gfx/unknown/16c903.pal"
; 16c943
@@ -287,7 +257,7 @@ Function16c943: ; 16c943
ld e, $0
ld a, $0
.asm_16c969
- ld hl, Unknown_16c903
+ ld hl, UnknownMobilePalettes_16c903
call Function16cab6
call Function16cabb
ld d, a
@@ -310,7 +280,7 @@ Function16c943: ; 16c943
call Function16cadc
.asm_16c991
- ld hl, Unknown_16c903
+ ld hl, UnknownMobilePalettes_16c903
call Function16cab6
call Function16cad8
ld d, a
@@ -333,7 +303,7 @@ Function16c943: ; 16c943
call Function16cb08
.asm_16c9b9
- ld hl, Unknown_16c903
+ ld hl, UnknownMobilePalettes_16c903
call Function16cab6
call Function16cac4
ld d, a
@@ -356,9 +326,8 @@ Function16c943: ; 16c943
call Function16cae8
.asm_16c9e1
-rept 2
inc e
-endr
+ inc e
ld a, e
cp $8
jr nz, .asm_16c969
@@ -459,9 +428,8 @@ Function16ca11: ; 16ca11
call Function16cae8
.asm_16ca88
-rept 2
inc e
-endr
+ inc e
ld a, e
cp $8
jr nz, .asm_16ca28
diff --git a/misc/mobile_5c.asm b/misc/mobile_5c.asm
index 8ecd35edf..5f72f32c7 100755
--- a/misc/mobile_5c.asm
+++ b/misc/mobile_5c.asm
@@ -111,9 +111,8 @@ Function170c06: ; 170c06
inc [hl]
.asm_170c15
-rept 2
inc hl
-endr
+ inc hl
ld a, [$a89b]
add [hl]
ld [hld], a
@@ -138,9 +137,8 @@ endr
ld a, [hli]
ld b, a
ld c, [hl]
-rept 2
inc hl
-endr
+ inc hl
ld a, [hld]
sub c
ld c, a
@@ -370,9 +368,8 @@ Function171a36: ; 171a36 (5c:5a36)
ld e, a
ld d, 0
ld hl, Jumptable_171a45
-rept 2
add hl, de
-endr
+ add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
@@ -498,9 +495,9 @@ Function171aec: ; 171aec (5c:5aec)
.asm_171b34
pop hl
ld bc, $14
-rept 3
add hl, bc
-endr
+ add hl, bc
+ add hl, bc
pop af
dec a
jr nz, .asm_171b1b
@@ -519,24 +516,27 @@ Function171b4b: ; 171b4b (5c:5b4b)
depixel 8, 2
ld a, SPRITE_ANIM_INDEX_1D
call _InitSpriteAnimStruct
- ld hl, $c
+ ld hl, SPRITEANIMSTRUCT_0C
add hl, bc
ld a, $8
ld [hl], a
+
depixel 8, 19
ld a, SPRITE_ANIM_INDEX_1D
call _InitSpriteAnimStruct
- ld hl, $c
+ ld hl, SPRITEANIMSTRUCT_0C
add hl, bc
ld a, $9
ld [hl], a
+
depixel 17, 14, 2, 0
ld a, SPRITE_ANIM_INDEX_1D
call _InitSpriteAnimStruct
- ld hl, $c
+ ld hl, SPRITEANIMSTRUCT_0C
add hl, bc
ld a, $a
ld [hl], a
+
ld a, $4
ld [wcd23], a
ld a, $8
@@ -732,9 +732,8 @@ Function171ccd: ; 171ccd (5c:5ccd)
Function171cf0: ; 171cf0 (5c:5cf0)
xor a
hlcoord 4, 15
-rept 2
ld [hli], a
-endr
+ ld [hli], a
ld a, [wcd4b]
xor $1
ld [wcd4b], a
diff --git a/misc/mobile_5f.asm b/misc/mobile_5f.asm
index 415ff7e38..2ce71049f 100644
--- a/misc/mobile_5f.asm
+++ b/misc/mobile_5f.asm
@@ -180,7 +180,7 @@ HaveWantPals: ; 17cff3
CheckStringForErrors: ; 17d073
; Valid character ranges:
-; $00, $05 - $13, $19 - $1c, $26 - $34, $3a - $3e, $40 - $48, $60 - $ff
+; $0, $5 - $13, $19 - $1c, $26 - $34, $3a - $3e, $40 - $48, $60 - $ff
.loop
ld a, [de]
inc de
@@ -308,7 +308,7 @@ Function17d0f3: ; 17d0f3
callba EvolvePokemon
xor a
ld [wLinkMode], a
- callba Function14a58
+ callba SaveAfterLinkTrade
ld a, $5
call GetSRAMBank
ld a, $5
@@ -612,7 +612,7 @@ Function17d314: ; 17d314
call GetSRAMBank
xor a
ld hl, $aa73
- ld bc, $000c
+ ld bc, $c
call ByteFill
call CloseSRAM
ld a, $2
@@ -747,7 +747,7 @@ Jumptable_17d483: ; 17d483
Function17d48d: ; 17d48d
ld hl, Palette_17eff6
ld de, $c608
- ld bc, $0040
+ ld bc, $40
call CopyBytes
ld hl, TileAttrmap_17eb8e
decoord 0, 0
@@ -775,7 +775,7 @@ Function17d48d: ; 17d48d
jr nz, .asm_17d4a8
pop hl
push bc
- ld bc, $0040
+ ld bc, $40
add hl, bc
pop bc
pop af
@@ -876,7 +876,7 @@ Function17d48d: ; 17d48d
dec a
jr nz, .asm_17d53a
ld de, CreditsTimer
- ld bc, $000c
+ ld bc, $c
call CopyBytes
xor a
ld [wcd2e], a
@@ -885,18 +885,18 @@ Function17d48d: ; 17d48d
ld [wcd30], a
ld [wcd31], a
ld de, wcd32
- ld bc, $0010
+ ld bc, $10
call CopyBytes
ld a, [hli]
ld [wcd42], a
ld a, [hli]
ld [wcd43], a
ld a, [hli]
- ld [wcd44], a
+ ld [wMobileInactivityTimerMinutes], a
ld a, [hli]
- ld [wcd45], a
+ ld [wMobileInactivityTimerSeconds], a
ld a, [hli]
- ld [wcd46], a
+ ld [wMobileInactivityTimerFrames], a
ld a, [hli]
and a
jr z, .asm_17d58a
@@ -987,7 +987,7 @@ Function17d60b: ; 17d60b
call GetSRAMBank
ld hl, $b1d3
ld de, $c608
- ld bc, $0020
+ ld bc, $20
call CopyBytes
ld a, [$b1b1]
ld c, a
@@ -1012,7 +1012,7 @@ Function17d60b: ; 17d60b
ld a, h
ld [de], a
inc de
- ld bc, $000a
+ ld bc, $a
add hl, bc
pop bc
ld a, [hli]
@@ -1102,12 +1102,12 @@ Function17d6a1: ; 17d6a1
ld a, h
ld [wcd5f], a
ld de, wcd60
- ld bc, $0004
+ ld bc, $4
call CopyBytes
inc hl
inc hl
ld de, wcd64
- ld bc, $0004
+ ld bc, $4
call CopyBytes
ld a, [hli]
ld [wcd69], a
@@ -1478,7 +1478,7 @@ Function17d902: ; 17d902
Function17d93a: ; 17d93a
call Function17e415
ld de, $c708
- ld bc, $0005
+ ld bc, $5
call CopyBytes
call Function17e41e
call Function17e32b
@@ -1492,7 +1492,7 @@ Function17d93a: ; 17d93a
ld [CurPartySpecies], a
ld a, [$c70c]
ld e, a
- callba Function8bc6
+ callba LoadMonPaletteAsNthBGPal
call SetPalettes
ld a, [$c708]
ld l, a
@@ -1514,7 +1514,7 @@ Function17d93a: ; 17d93a
Function17d98b: ; 17d98b
call Function17e415
ld de, $c708
- ld bc, $0004
+ ld bc, $4
call CopyBytes
call Function17e41e
call Function17e32b
@@ -1528,7 +1528,7 @@ Function17d98b: ; 17d98b
ld [TrainerClass], a
ld a, [$c70b]
ld e, a
- callba Function8bbd
+ callba LoadTrainerClassPaletteAsNthBGPal
call SetPalettes
ld a, [$c708]
ld e, a
@@ -1540,7 +1540,7 @@ Function17d98b: ; 17d98b
pop hl
decoord 0, 0
add hl, de
- ld bc, $0707
+ ld bc, $707
predef PlaceGraphic
pop af
ld [rSVBK], a
@@ -1551,7 +1551,7 @@ Function17d98b: ; 17d98b
Function17d9e3: ; 17d9e3
call Function17e415
ld de, $c708
- ld bc, $0007
+ ld bc, $7
call CopyBytes
call Function17e41e
ld a, [$c70b]
@@ -1597,7 +1597,7 @@ Function17d9e3: ; 17d9e3
Function17da31: ; 17da31
call Function17e415
ld de, $c708
- ld bc, $0004
+ ld bc, $4
call CopyBytes
call Function17e41e
ld a, [$c709]
@@ -1888,7 +1888,7 @@ Function17dbe9: ; 17dbe9
Function17dc1f: ; 17dc1f
call Function17e415
ld de, $c688
- ld bc, $0006
+ ld bc, $6
call CopyBytes
call Function17e32b
ld a, [rSVBK]
@@ -1968,7 +1968,7 @@ Function17dcaf:
ld a, $5
ld [rSVBK], a
ld hl, UnknBGPals
- ld de, $0008
+ ld de, $8
ld c, $8
.asm_17dcbb
push hl
@@ -2050,7 +2050,7 @@ Function17dd13: ; 17dd13
push hl
pop bc
pop hl
- call PlaceWholeStringInBoxAtOnce
+ call PlaceHLTextAtBC
ret
; 17dd30
@@ -2076,7 +2076,7 @@ Function17dd30: ; 17dd30
Function17dd49: ; 17dd49
call Function17e415
ld de, $c708
- ld bc, $000a
+ ld bc, $a
call CopyBytes
ld a, [$c711]
ld c, a
@@ -2157,7 +2157,7 @@ Function17dd49: ; 17dd49
Function17ddcd: ; 17ddcd
call Function17e415
ld de, $c708
- ld bc, $0008
+ ld bc, $8
call CopyBytes
ld a, [$c70a]
cp $c0
@@ -2219,7 +2219,7 @@ Function17ddcd: ; 17ddcd
Function17de32: ; 17de32
call Function17e415
ld de, $c708
- ld bc, $0009
+ ld bc, $9
call CopyBytes
ld a, [$c710]
ld c, a
@@ -2278,7 +2278,7 @@ Function17de32: ; 17de32
Function17de91: ; 17de91
call Function17e415
ld de, $c708
- ld bc, $0007
+ ld bc, $7
call CopyBytes
ld a, $6
call GetSRAMBank
@@ -2321,7 +2321,7 @@ Function17de91: ; 17de91
Function17ded9: ; 17ded9
call Function17e415
ld de, $c708
- ld bc, $001f
+ ld bc, $1f
call CopyBytes
call Function17e32b
ld a, [rSVBK]
@@ -2363,7 +2363,7 @@ Function17ded9: ; 17ded9
jr .asm_17df37
.asm_17df33
- ld de, $0006
+ ld de, $6
add hl, de
.asm_17df37
@@ -2388,7 +2388,7 @@ Function17ded9: ; 17ded9
jr .asm_17df5e
.asm_17df5a
- ld de, $0007
+ ld de, $7
add hl, de
.asm_17df5e
@@ -2502,7 +2502,7 @@ Function17ded9: ; 17ded9
ld e, l
pop hl
push de
- ld bc, $0004
+ ld bc, $4
call CopyBytes
pop de
push hl
@@ -2520,7 +2520,7 @@ Function17ded9: ; 17ded9
jp asm_17e0ee
.asm_17e01f
- ld de, $0004
+ ld de, $4
add hl, de
jp asm_17e0ee
; 17e026
@@ -2546,21 +2546,21 @@ Function17e026: ; 17e026
bit 1, b
jr z, .asm_17e067
push bc
- ld bc, $000b
+ ld bc, $b
ld de, sBoxMonNicknames
call CopyBytes
pop bc
jr .asm_17e06b
.asm_17e067
- ld de, $0006
+ ld de, $6
add hl, de
.asm_17e06b
bit 2, b
jr z, .asm_17e08e
push bc
- ld bc, $0006
+ ld bc, $6
ld de, sBoxMonOT
call CopyBytes
ld a, [hli]
@@ -2575,7 +2575,7 @@ Function17e026: ; 17e026
jr .asm_17e092
.asm_17e08e
- ld de, $0007
+ ld de, $7
add hl, de
.asm_17e092
@@ -2623,7 +2623,7 @@ Function17e026: ; 17e026
jr z, .asm_17e0e1
push bc
ld de, sBoxMon1Moves
- ld bc, $0004
+ ld bc, $4
call CopyBytes
push hl
ld hl, sBoxMon1Moves
@@ -2638,12 +2638,12 @@ Function17e026: ; 17e026
.asm_17e0e1
call CloseSRAM
- ld de, $0006
+ ld de, $6
add hl, de
jr asm_17e0ee
.asm_17e0ea
- ld bc, $001a
+ ld bc, $1a
add hl, bc
asm_17e0ee
@@ -2662,7 +2662,7 @@ asm_17e0ee
Function17e0fd: ; 17e0fd
call Function17e415
ld de, $c708
- ld bc, $0006
+ ld bc, $6
call CopyBytes
ld a, [rSVBK]
push af
@@ -2696,7 +2696,7 @@ Function17e0fd: ; 17e0fd
Function17e133: ; 17e133
call Function17e415
ld de, $c708
- ld bc, $0005
+ ld bc, $5
call CopyBytes
ld a, [rSVBK]
push af
@@ -2727,7 +2727,7 @@ Function17e133: ; 17e133
Function17e165: ; 17e165
call Function17e415
ld de, $c708
- ld bc, $0005
+ ld bc, $5
call CopyBytes
ld a, [rSVBK]
push af
@@ -2764,7 +2764,7 @@ Function17e165: ; 17e165
Function17e1a1: ; 17e1a1
call Function17e415
ld de, $c708
- ld bc, $000d
+ ld bc, $d
call CopyBytes
ld a, [$c70a]
cp $c0
@@ -2978,7 +2978,7 @@ Function17e2a7: ; 17e2a7
call GetSRAMBank
ld hl, $aa73
ld de, $aa7f
- ld bc, $000c
+ ld bc, $c
call CopyBytes
call CloseSRAM
ret
@@ -3016,10 +3016,10 @@ Function17e32b: ; 17e32b
call GetSRAMBank
ld hl, $c608
ld de, $b0b1
- ld bc, $0040
+ ld bc, $40
call CopyBytes
ld hl, BGMapBuffer
- ld bc, $005b
+ ld bc, $5b
call CopyBytes
call CloseSRAM
ret
@@ -3030,10 +3030,10 @@ Function17e349: ; 17e349
call GetSRAMBank
ld hl, $b0b1
ld de, $c608
- ld bc, $0040
+ ld bc, $40
call CopyBytes
ld de, BGMapBuffer
- ld bc, $005b
+ ld bc, $5b
call CopyBytes
call CloseSRAM
ret
@@ -3059,7 +3059,7 @@ Function17e37e: ; 17e37e
push af
ld a, $1
ld [rSVBK], a
- callba Function14a58
+ callba SaveAfterLinkTrade
pop af
ld [rSVBK], a
ret
@@ -3098,7 +3098,7 @@ Function17e3c3: ; 17e3c3
push af
ld a, $1
ld [rSVBK], a
- callba MobileFn_106155
+ callba UpdateTrainerRankingsChecksum2
callba BackupMobileEventIndex
pop af
ld [rSVBK], a
@@ -3216,7 +3216,7 @@ Function17e451: ; 17e451
add hl, bc
push hl
hlcoord 0, 0
- ld bc, $0014
+ ld bc, $14
ld a, [wcd23]
call AddNTimes
ld a, [CreditsTimer]
@@ -3224,7 +3224,7 @@ Function17e451: ; 17e451
ld b, $0
add hl, bc
pop bc
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
.asm_17e48b
push af
push hl
@@ -3267,7 +3267,7 @@ Function17e451: ; 17e451
jr nz, .asm_17e490
pop hl
ld a, [wcd27]
- ld de, $0014
+ ld de, $14
.asm_17e4cb
add hl, de
dec a
@@ -3294,7 +3294,7 @@ Function17e4dd: ; 17e4dd
ret z
ld a, [wcd29]
hlcoord 0, 0
- ld bc, $0014
+ ld bc, $14
call AddNTimes
ld a, [wcd28]
ld c, a
@@ -3308,7 +3308,7 @@ Function17e4dd: ; 17e4dd
.asm_17e4ff
ld a, [wcd2a]
- ld bc, $0014
+ ld bc, $14
call AddNTimes
ld a, [wcd42]
ld c, a
@@ -3331,7 +3331,7 @@ Function17e51b: ; 17e51b
inc a
ld [wcd4f], a
hlcoord 0, 0
- ld bc, $0014
+ ld bc, $14
ld a, [wcd23]
dec a
call AddNTimes
@@ -3339,7 +3339,7 @@ Function17e51b: ; 17e51b
ld c, a
ld b, $0
add hl, bc
- ld a, [wcd25]
+ ld a, [wMobileCommsJumptableIndex]
ld c, a
ld a, [wcd27]
call SimpleMultiply
@@ -3352,7 +3352,7 @@ Function17e51b: ; 17e51b
ld a, $7f
call ByteFill
pop hl
- ld bc, $0014
+ ld bc, $14
add hl, bc
pop af
dec a
@@ -3381,7 +3381,7 @@ Function17e566: ; 17e566
Function17e571: ; 17e571
push af
hlcoord 0, 0
- ld bc, $0014
+ ld bc, $14
ld a, [wcd23]
call AddNTimes
ld a, [CreditsTimer]
@@ -3397,7 +3397,7 @@ Function17e571: ; 17e571
call SimpleMultiply
ld l, $0
ld h, l
- ld bc, $0014
+ ld bc, $14
call AddNTimes
ld a, [wcd30]
dec a
@@ -3420,16 +3420,16 @@ Function17e5af: ; 17e5af
ret z
ld a, [wcd43]
ld l, a
- ld a, [wcd44]
+ ld a, [wMobileInactivityTimerMinutes]
ld h, a
bccoord 0, 0
add hl, bc
ld bc, $ffec
add hl, bc
- ld a, [wcd45]
+ ld a, [wMobileInactivityTimerSeconds]
ld c, a
ld b, $0
- ld a, [wcd46]
+ ld a, [wMobileInactivityTimerFrames]
call Function17e600
ld a, [wcd2e]
ld c, a
@@ -3453,7 +3453,7 @@ Function17e5af: ; 17e5af
pop de
ld a, [wcd43]
ld l, a
- ld a, [wcd44]
+ ld a, [wMobileInactivityTimerMinutes]
ld h, a
bccoord 0, 0
add hl, bc
@@ -3470,7 +3470,7 @@ Function17e600: ; 17e600
call ByteFill
pop bc
pop hl
- ld de, $0014
+ ld de, $14
add hl, de
pop af
dec a
@@ -3481,7 +3481,7 @@ Function17e600: ; 17e600
Function17e613: ; 17e613
push hl
hlcoord 0, 0
- ld bc, $0014
+ ld bc, $14
ld a, [de]
inc de
push af
@@ -3520,7 +3520,7 @@ Function17e613: ; 17e613
add $2
ld [hl], a
pop hl
- ld bc, $0014
+ ld bc, $14
add hl, bc
ld a, [de]
dec de
@@ -3550,7 +3550,7 @@ Function17e613: ; 17e613
ld [hl], a
pop hl
push bc
- ld bc, $0014
+ ld bc, $14
add hl, bc
pop bc
dec b
@@ -3583,7 +3583,7 @@ Function17e613: ; 17e613
Function17e691: ; 17e691
push hl
ld hl, NULL
- ld bc, $0014
+ ld bc, $14
ld a, [de]
inc de
push af
@@ -3636,7 +3636,7 @@ Function17e691: ; 17e691
dec a
jr nz, .asm_17e6af
pop hl
- ld bc, $0014
+ ld bc, $14
add hl, bc
pop af
dec a
@@ -3663,7 +3663,7 @@ Function17e6de: ; 17e6de
dec c
jr nz, .asm_17e6f1
pop hl
- ld de, $0014
+ ld de, $14
add hl, de
dec b
jr nz, .asm_17e6ee
@@ -3733,14 +3733,14 @@ Function17f047: ; 17f047
ld a, [de]
inc de
cp $50
- jr z, .asm_17f05f
+ jr z, .finished
cp $10
- jr nc, .asm_17f05f
+ jr nc, .finished
dec a
push de
ld e, a
ld d, 0
- ld hl, Jumptable_17f061
+ ld hl, .Jumptable
add hl, de
add hl, de
ld a, [hli]
@@ -3748,35 +3748,35 @@ Function17f047: ; 17f047
ld l, a
jp [hl]
-.asm_17f05f
+.finished
scf
ret
; 17f061
-Jumptable_17f061: ; 17f061
- dw Function17f081
- dw Function17f0f8
- dw Function17f154
- dw Function17f181
- dw Function17f1d0
- dw Function17f220
- dw Function17f27b
- dw Function17f2cb
- dw Function17f2ff
- dw Function17f334
- dw Function17f382
- dw Function17f3c9
- dw Function17f3f0
- dw Function17f41d
- dw Function17f44f
- dw Function17f44f
+.Jumptable: ; 17f061
+ dw Function17f081 ; 0
+ dw Function17f0f8 ; 1
+ dw Function17f154 ; 2
+ dw Function17f181 ; 3
+ dw Function17f1d0 ; 4
+ dw Function17f220 ; 5
+ dw Function17f27b ; 6
+ dw Function17f2cb ; 7
+ dw Function17f2ff ; 8
+ dw Function17f334 ; 9
+ dw Function17f382 ; a
+ dw Function17f3c9 ; b
+ dw Function17f3f0 ; c
+ dw Function17f41d ; d
+ dw Function17f44f ; e
+ dw Function17f44f ; f
; 17f081
Function17f081: ; 17f081
pop hl
call Function17f524
jr c, .asm_17f09f
- ld de, $0004
+ ld de, 4
add hl, de
ld a, [hli]
inc hl
@@ -3801,7 +3801,7 @@ Function17f081: ; 17f081
.asm_17f09f
push bc
ld de, wcd54
- ld bc, $0007
+ ld bc, 7
call CopyBytes
pop bc
push hl
@@ -3864,7 +3864,7 @@ Function17f0f8: ; 17f0f8
pop hl
call Function17f524
jr c, .asm_17f114
- ld de, $0003
+ ld de, $3
add hl, de
ld a, [hli]
ld e, l
@@ -3887,7 +3887,7 @@ Function17f0f8: ; 17f0f8
.asm_17f114
push bc
ld de, wcd54
- ld bc, $0004
+ ld bc, $4
call CopyBytes
pop bc
push hl
@@ -3963,7 +3963,7 @@ Function17f181: ; 17f181
pop hl
call Function17f524
jr c, .asm_17f19d
- ld de, $0002
+ ld de, $2
add hl, de
ld a, [hli]
ld e, l
@@ -4018,7 +4018,7 @@ Function17f1d0: ; 17f1d0
pop hl
call Function17f524
jr c, .asm_17f1ec
- ld de, $0002
+ ld de, $2
add hl, de
ld a, [hli]
ld e, l
@@ -4075,7 +4075,7 @@ Function17f220: ; 17f220
pop hl
call Function17f524
jr c, .asm_17f23c
- ld de, $0002
+ ld de, $2
add hl, de
ld a, [hli]
ld e, l
@@ -4139,7 +4139,7 @@ Function17f27b: ; 17f27b
pop hl
call Function17f524
jr c, .asm_17f297
- ld de, $0002
+ ld de, $2
add hl, de
ld a, [hli]
ld e, l
@@ -4236,7 +4236,7 @@ Function17f2ff: ; 17f2ff
ld [rSVBK], a
ld hl, PlayerName
ld de, $c608
- ld bc, $0006
+ ld bc, $6
call CopyBytes
ld a, $4
ld [rSVBK], a
@@ -4346,7 +4346,7 @@ Function17f3c9: ; 17f3c9
push bc
ld hl, wcd36
ld de, $c708
- ld bc, $000c
+ ld bc, 12
call CopyBytes
pop de
ld c, $0
@@ -4354,7 +4354,7 @@ Function17f3c9: ; 17f3c9
push hl
ld hl, $c708
ld de, wcd36
- ld bc, $000c
+ ld bc, $c
call CopyBytes
pop bc
pop de
@@ -4393,9 +4393,9 @@ Function17f3f0: ; 17f3f0
pop hl
add hl, de
add hl, de
-rept 3
inc hl
-endr
+ inc hl
+ inc hl
ld e, l
ld d, h
ld l, c
@@ -4453,7 +4453,7 @@ Function17f44f: ; 17f44f
pop hl
call Function17f524
jr c, .asm_17f46d
- ld de, $0005
+ ld de, $5
add hl, de
ld a, [hli]
inc hl
@@ -4478,7 +4478,7 @@ Function17f44f: ; 17f44f
.asm_17f46d
push bc
ld de, wcd54
- ld bc, $0008
+ ld bc, $8
call CopyBytes
pop bc
push hl
@@ -4647,7 +4647,7 @@ Function17f555: ; 17f555
ld a, [wc303]
bit 7, a
jr nz, .quit
- callba Function104000
+ callba HDMATransferAttrMapAndTileMapToWRAMBank3
jr .loop
.quit
@@ -4716,7 +4716,7 @@ Function17f5c3: ; 17f5c3
Function17f5d2: ; 17f5d2
call Function17f5e4
- callba Function104000
+ callba HDMATransferAttrMapAndTileMapToWRAMBank3
call SetPalettes
ld a, $1
ld [wc303], a
diff --git a/misc/mobile_menu.asm b/misc/mobile_menu.asm
index d9fd3dd34..84e592fcc 100755
--- a/misc/mobile_menu.asm
+++ b/misc/mobile_menu.asm
@@ -280,7 +280,7 @@ Function4a149: ; 4a149 (12:6149)
call ClearBox
hlcoord 1, 14
call PlaceString
- callba Function104148
+ callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
call SetPalettes
call StaticMenuJoypad
ld hl, wMenuCursorY
@@ -403,7 +403,7 @@ Function4a28a: ; 4a28a (12:628a)
hlcoord 14, 1
ld de, String_4a34b
call PlaceString
- callba Function104148
+ callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
call Function4a118
call ScrollingMenuJoypad
push af
@@ -432,7 +432,7 @@ Function4a28a: ; 4a28a (12:628a)
ld b, 3
ld c, 4
call TextBox
- callba Function104148
+ callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
ld hl, DeletePassword_YesNo_MenuDataHeader
call LoadMenuDataHeader
call VerticalMenu
@@ -455,7 +455,7 @@ Function4a28a: ; 4a28a (12:628a)
call ExitMenu
.quit
call Call_ExitMenu
- callba Function104148
+ callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
xor a
ret
; 4a346 (12:6346)
@@ -836,16 +836,16 @@ Function4a680: ; 4a680 (12:6680)
ld [hli], a
ld [hli], a
xor a
-rept 3
ld [hli], a
-endr
+ ld [hli], a
+ ld [hli], a
ret
Function4a6ab: ; 4a6ab (12:66ab)
ld a, $2
call MenuClickSound
call ClearBGPalettes
- ld b, SCGB_08
+ ld b, SCGB_DIPLOMA
call GetSGBLayout
callba Function11c1ab
pop bc
diff --git a/misc/printer_77.asm b/misc/printer_77.asm
index 32f5c734f..c36c21463 100755
--- a/misc/printer_77.asm
+++ b/misc/printer_77.asm
@@ -1,27 +1,27 @@
PrintPage1: ; 1dc1b0
hlcoord 0, 0
- ld de, wca90
+ decoord 0, 0, wPrinterTileMapBuffer
ld bc, 17 * SCREEN_WIDTH
call CopyBytes
- ld hl, wcab5
+ hlcoord 17, 1, wPrinterTileMapBuffer
ld a, $62
ld [hli], a
inc a
ld [hl], a
- ld hl, wcac9
+ hlcoord 17, 2, wPrinterTileMapBuffer
ld a, $64
ld [hli], a
inc a
ld [hl], a
- ld hl, wcb45
+ hlcoord 1, 9, wPrinterTileMapBuffer
ld a, " "
ld [hli], a
ld [hl], a
- ld hl, wcb59
+ hlcoord 1, 10, wPrinterTileMapBuffer
ld a, $61
ld [hli], a
ld [hl], a
- ld hl, wcb6e
+ hlcoord 2, 11, wPrinterTileMapBuffer
lb bc, 5, 18
call ClearBox
ld a, [wd265]
@@ -34,9 +34,9 @@ PrintPage1: ; 1dc1b0
callba GetDexEntryPagePointer
pop af
ld a, b
- ld hl, wcb6d
+ hlcoord 1, 11, wPrinterTileMapBuffer
call nz, FarString
- ld hl, wcaa3
+ hlcoord 19, 0, wPrinterTileMapBuffer
ld [hl], $35
ld de, SCREEN_WIDTH
add hl, de
@@ -51,26 +51,26 @@ PrintPage1: ; 1dc1b0
; 1dc213
PrintPage2: ; 1dc213
- ld hl, wca90
- ld bc, $a0
+ hlcoord 0, 0, wPrinterTileMapBuffer
+ ld bc, 8 * SCREEN_WIDTH
ld a, " "
call ByteFill
- ld hl, wca90
+ hlcoord 0, 0, wPrinterTileMapBuffer
ld a, $36
- ld b, $6
+ ld b, 6
call .FillColumn
- ld hl, wcaa3
+ hlcoord 19, 0, wPrinterTileMapBuffer
ld a, $37
- ld b, $6
+ ld b, 6
call .FillColumn
- ld hl, wcb08
+ hlcoord 0, 6, wPrinterTileMapBuffer
ld [hl], $38
inc hl
ld a, $39
ld bc, SCREEN_HEIGHT
call ByteFill
ld [hl], $3a
- ld hl, wcb1c
+ hlcoord 0, 7, wPrinterTileMapBuffer
ld bc, SCREEN_WIDTH
ld a, $32
call ByteFill
@@ -83,7 +83,7 @@ PrintPage2: ; 1dc213
ld c, 2 ; get page 2
callba GetDexEntryPagePointer
pop af
- ld hl, wcaa5
+ hlcoord 1, 1, wPrinterTileMapBuffer
ld a, b
call nz, FarString
ret
@@ -102,29 +102,29 @@ PrintPage2: ; 1dc213
; 1dc275
GBPrinterStrings:
-String_1dc275: db "@"
-String_1dc276: next " CHECKING LINK...@"
-String_1dc289: next " TRANSMITTING...@"
-String_1dc29c: next " PRINTING...@"
-String_1dc2ad:
+GBPrinterString_Null: db "@"
+GBPrinterString_CheckingLink: next " CHECKING LINK...@"
+GBPrinterString_Transmitting: next " TRANSMITTING...@"
+GBPrinterString_Printing: next " PRINTING...@"
+GBPrinterString_PrinterError1:
db " Printer Error 1"
next ""
next "Check the Game Boy"
next "Printer Manual."
db "@"
-String_1dc2e2:
+GBPrinterString_PrinterError2:
db " Printer Error 2"
next ""
next "Check the Game Boy"
next "Printer Manual."
db "@"
-String_1dc317:
+GBPrinterString_PrinterError3:
db " Printer Error 3"
next ""
next "Check the Game Boy"
next "Printer Manual."
db "@"
-String_1dc34c:
+GBPrinterString_PrinterError4:
db " Printer Error 4"
next ""
next "Check the Game Boy"
@@ -132,7 +132,7 @@ String_1dc34c:
db "@"
; 1dc381
-Function1dc381: ; 1dc381
+PrintPartyMonPage1: ; 1dc381
call ClearBGPalettes
call ClearTileMap
call ClearSprites
@@ -164,7 +164,7 @@ Function1dc381: ; 1dc381
call TextBox
hlcoord 8, 2
ld a, [TempMonLevel]
- call Function383d
+ call PrintLevel_Force3Digits
hlcoord 12, 2
ld [hl], "◀" ; Filled left triangle
inc hl
@@ -232,7 +232,7 @@ Function1dc381: ; 1dc381
ret
; 1dc47b
-Function1dc47b: ; 1dc47b
+PrintPartyMonPage2: ; 1dc47b
call ClearBGPalettes
call ClearTileMap
call ClearSprites
diff --git a/misc/unused_title.asm b/misc/unused_title.asm
index a74a376a3..0f25e8a52 100644
--- a/misc/unused_title.asm
+++ b/misc/unused_title.asm
@@ -10,9 +10,9 @@ UnusedTitleScreen: ; 10c000
ld [hBGMapMode], a
ld hl, wJumptableIndex
-rept 3
ld [hli], a
-endr
+ ld [hli], a
+ ld [hli], a
ld [hl], a
ld hl, UnusedTitleBG_GFX