summaryrefslogtreecommitdiff
path: root/misc/fixed_words.asm
diff options
context:
space:
mode:
Diffstat (limited to 'misc/fixed_words.asm')
-rwxr-xr-xmisc/fixed_words.asm993
1 files changed, 535 insertions, 458 deletions
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: