diff options
Diffstat (limited to 'misc/fixed_words.asm')
-rwxr-xr-x | misc/fixed_words.asm | 993 |
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: |