diff options
-rw-r--r-- | asm/easy_chat_2.s | 1559 | ||||
-rw-r--r-- | data/easy_chat_2.s | 85 | ||||
-rw-r--r-- | include/easy_chat.h | 23 | ||||
-rw-r--r-- | include/graphics.h | 4 | ||||
-rw-r--r-- | ld_script.txt | 2 | ||||
-rw-r--r-- | src/easy_chat_2.c | 14 | ||||
-rw-r--r-- | src/easy_chat_3.c | 983 | ||||
-rw-r--r-- | src/graphics.c | 4 | ||||
-rw-r--r-- | sym_ewram.txt | 11 |
9 files changed, 1026 insertions, 1659 deletions
diff --git a/asm/easy_chat_2.s b/asm/easy_chat_2.s index 1f742ebd6..1c5bb0fdc 100644 --- a/asm/easy_chat_2.s +++ b/asm/easy_chat_2.s @@ -5,1547 +5,6 @@ .text - thumb_func_start sub_80FFF98 -sub_80FFF98: @ 80FFF98 - push {r4,lr} - sub sp, 0x8 - ldr r0, _080FFFB4 @ =gUnknown_203ACEC - ldr r0, [r0] - ldrh r0, [r0] - cmp r0, 0x5 - bls _080FFFA8 - b _08100100 -_080FFFA8: - lsls r0, 2 - ldr r1, _080FFFB8 @ =_080FFFBC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080FFFB4: .4byte gUnknown_203ACEC -_080FFFB8: .4byte _080FFFBC - .align 2, 0 -_080FFFBC: - .4byte _080FFFD4 - .4byte _08100038 - .4byte _0810006C - .4byte _0810009C - .4byte _081000AE - .4byte _081000B8 -_080FFFD4: - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _08100028 @ =gUnknown_843F8A0 - movs r0, 0 - movs r2, 0x4 - bl InitBgsFromTemplates - ldr r4, _0810002C @ =gUnknown_203ACEC - ldr r1, [r4] - movs r0, 0xB0 - lsls r0, 4 - adds r1, r0 - movs r0, 0x3 - bl SetBgTilemapBuffer - ldr r1, [r4] - movs r0, 0xC0 - lsls r0, 2 - adds r1, r0 - movs r0, 0x1 - bl SetBgTilemapBuffer - ldr r0, _08100030 @ =gUnknown_843F8B0 - bl InitWindows - bl DeactivateAllTextPrinters - bl sub_8100CBC - bl sub_8100C5C - movs r0, 0 - str r0, [sp, 0x4] - movs r1, 0xE0 - lsls r1, 19 - ldr r2, _08100034 @ =0x01000100 - add r0, sp, 0x4 - bl CpuFastSet - b _08100104 - .align 2, 0 -_08100028: .4byte gUnknown_843F8A0 -_0810002C: .4byte gUnknown_203ACEC -_08100030: .4byte gUnknown_843F8B0 -_08100034: .4byte 0x01000100 -_08100038: - ldr r1, _08100064 @ =gUnknown_8E99DAC - movs r0, 0 - str r0, [sp] - movs r0, 0x3 - movs r2, 0 - movs r3, 0 - bl DecompressAndLoadBgGfxUsingHeap - ldr r1, _08100068 @ =gUnknown_8E99E74 - movs r0, 0x3 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer - bl sub_8100F44 - bl sub_8102428 - movs r0, 0x3 - bl CopyBgTilemapBufferToVram - b _08100104 - .align 2, 0 -_08100064: .4byte gUnknown_8E99DAC -_08100068: .4byte gUnknown_8E99E74 -_0810006C: - ldr r0, _08100094 @ =gUnknown_203ACEC - ldr r0, [r0] - movs r1, 0xC0 - lsls r1, 2 - adds r0, r1 - bl sub_8101100 - ldr r1, _08100098 @ =gUnknown_843F7AC - movs r0, 0 - str r0, [sp] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl DecompressAndLoadBgGfxUsingHeap - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - b _08100104 - .align 2, 0 -_08100094: .4byte gUnknown_203ACEC -_08100098: .4byte gUnknown_843F7AC -_0810009C: - bl sub_8100D24 - bl sub_8100E34 - bl sub_8100FDC - bl sub_81012CC - b _08100104 -_081000AE: - bl sub_8101A90 - bl sub_8101AC4 - b _08100104 -_081000B8: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _0810010E - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_8101A5C - movs r0, 0x48 - movs r1, 0x3F - bl SetGpuReg - movs r0, 0x4A - movs r1, 0x3B - bl SetGpuReg - movs r0, 0x3 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - movs r0, 0 - bl ShowBg - bl sub_81021D4 - bl sub_8102320 - b _08100104 -_08100100: - movs r0, 0 - b _08100110 -_08100104: - ldr r0, _08100118 @ =gUnknown_203ACEC - ldr r1, [r0] - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_0810010E: - movs r0, 0x1 -_08100110: - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08100118: .4byte gUnknown_203ACEC - thumb_func_end sub_80FFF98 - - thumb_func_start sub_810011C -sub_810011C: @ 810011C - push {lr} - ldr r0, _08100130 @ =gUnknown_203ACEC - ldr r0, [r0] - cmp r0, 0 - beq _0810012A - bl Free -_0810012A: - pop {r0} - bx r0 - .align 2, 0 -_08100130: .4byte gUnknown_203ACEC - thumb_func_end sub_810011C - - thumb_func_start sub_8100134 -sub_8100134: @ 8100134 - push {lr} - ldr r1, _08100148 @ =gUnknown_203ACEC - ldr r1, [r1] - movs r2, 0 - strh r0, [r1, 0x4] - strh r2, [r1] - bl sub_810014C - pop {r0} - bx r0 - .align 2, 0 -_08100148: .4byte gUnknown_203ACEC - thumb_func_end sub_8100134 - - thumb_func_start sub_810014C -sub_810014C: @ 810014C - push {lr} - ldr r0, _08100164 @ =gUnknown_203ACEC - ldr r0, [r0] - ldrh r0, [r0, 0x4] - cmp r0, 0x16 - bhi _08100250 - lsls r0, 2 - ldr r1, _08100168 @ =_0810016C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08100164: .4byte gUnknown_203ACEC -_08100168: .4byte _0810016C - .align 2, 0 -_0810016C: - .4byte _08100250 - .4byte _081001C8 - .4byte _081001CE - .4byte _081001D4 - .4byte _081001DA - .4byte _081001E0 - .4byte _081001E6 - .4byte _081001EC - .4byte _081001F2 - .4byte _081001F8 - .4byte _081001FE - .4byte _08100204 - .4byte _0810020A - .4byte _08100210 - .4byte _08100216 - .4byte _0810021C - .4byte _08100222 - .4byte _08100228 - .4byte _0810022E - .4byte _08100234 - .4byte _0810023A - .4byte _08100240 - .4byte _08100246 -_081001C8: - bl sub_8100258 - b _0810024A -_081001CE: - bl sub_8100290 - b _0810024A -_081001D4: - bl sub_8100374 - b _0810024A -_081001DA: - bl sub_8100430 - b _0810024A -_081001E0: - bl sub_81003A8 - b _0810024A -_081001E6: - bl sub_81003EC - b _0810024A -_081001EC: - bl sub_8100474 - b _0810024A -_081001F2: - bl sub_81004B8 - b _0810024A -_081001F8: - bl sub_81004F4 - b _0810024A -_081001FE: - bl sub_81005C0 - b _0810024A -_08100204: - bl sub_81007D0 - b _0810024A -_0810020A: - bl sub_8100890 - b _0810024A -_08100210: - bl sub_810093C - b _0810024A -_08100216: - bl sub_8100720 - b _0810024A -_0810021C: - bl sub_810072C - b _0810024A -_08100222: - bl sub_8100774 - b _0810024A -_08100228: - bl sub_81009F8 - b _0810024A -_0810022E: - bl sub_8100A78 - b _0810024A -_08100234: - bl sub_8100A04 - b _0810024A -_0810023A: - bl sub_8100B70 - b _0810024A -_08100240: - bl sub_8100AE8 - b _0810024A -_08100246: - bl sub_8100660 -_0810024A: - lsls r0, 24 - lsrs r0, 24 - b _08100252 -_08100250: - movs r0, 0 -_08100252: - pop {r1} - bx r1 - thumb_func_end sub_810014C - - thumb_func_start sub_8100258 -sub_8100258: @ 8100258 - push {r4,lr} - ldr r4, _0810026C @ =gUnknown_203ACEC - ldr r0, [r4] - ldrh r0, [r0] - cmp r0, 0 - beq _08100270 - cmp r0, 0x1 - beq _0810027E - b _08100288 - .align 2, 0 -_0810026C: .4byte gUnknown_203ACEC -_08100270: - bl sub_8100FDC - ldr r1, [r4] - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _08100288 -_0810027E: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - lsrs r0, 24 - b _0810028A -_08100288: - movs r0, 0x1 -_0810028A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8100258 - - thumb_func_start sub_8100290 -sub_8100290: @ 8100290 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x40 - bl GetEasyChatWordBuffer - adds r4, r0, 0 - bl GetEasyChatScreenFrameId - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - bl GetMainCursorColumn - lsls r0, 24 - lsrs r7, r0, 24 - bl GetMainCursorRow - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - bl GetNumColumns - lsls r0, 24 - lsrs r0, 24 - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - lsls r0, 1 - adds r4, r0 - ldr r1, _08100304 @ =gUnknown_843F888 - mov r2, r9 - lsls r0, r2, 2 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 19 - movs r1, 0xD0 - lsls r1, 12 - adds r0, r1 - lsrs r6, r0, 16 - movs r5, 0 - cmp r5, r7 - bcs _0810033A - ldr r2, _08100308 @ =0x0000ffff - mov r10, r2 -_081002EE: - ldrh r0, [r4] - cmp r0, r10 - bne _08100310 - movs r0, 0x1 - ldr r1, _0810030C @ =gUnknown_843F8D8 - movs r2, 0 - bl GetStringWidth - lsls r1, r0, 3 - subs r0, r1, r0 - b _08100322 - .align 2, 0 -_08100304: .4byte gUnknown_843F888 -_08100308: .4byte 0x0000ffff -_0810030C: .4byte gUnknown_843F8D8 -_08100310: - ldrh r1, [r4] - mov r0, sp - bl CopyEasyChatWord - movs r0, 0x1 - mov r1, sp - movs r2, 0 - bl GetStringWidth -_08100322: - adds r0, 0x11 - lsls r1, r6, 16 - asrs r1, 16 - adds r1, r0 - lsls r1, 16 - lsrs r6, r1, 16 - adds r4, 0x2 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, r7 - bcc _081002EE -_0810033A: - ldr r1, _08100370 @ =gUnknown_843F888 - mov r2, r9 - lsls r0, r2, 2 - adds r0, r1 - mov r2, r8 - lsls r1, r2, 1 - ldrb r0, [r0, 0x1] - adds r1, r0 - adds r1, 0x1 - lsls r1, 3 - adds r1, 0x1 - lsls r0, r6, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - bl sub_8101B58 - movs r0, 0 - add sp, 0x40 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08100370: .4byte gUnknown_843F888 - thumb_func_end sub_8100290 - - thumb_func_start sub_8100374 -sub_8100374: @ 8100374 - push {lr} - bl GetMainCursorColumn - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08100396 - cmp r0, 0x1 - bgt _0810038C - cmp r0, 0 - beq _08100392 - b _081003A2 -_0810038C: - cmp r0, 0x2 - beq _0810039A - b _081003A2 -_08100392: - movs r0, 0x1C - b _0810039C -_08100396: - movs r0, 0x73 - b _0810039C -_0810039A: - movs r0, 0xBF -_0810039C: - movs r1, 0x61 - bl sub_8101B58 -_081003A2: - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_8100374 - - thumb_func_start sub_81003A8 -sub_81003A8: @ 81003A8 - push {r4,lr} - ldr r4, _081003BC @ =gUnknown_203ACEC - ldr r0, [r4] - ldrh r0, [r0] - cmp r0, 0 - beq _081003C0 - cmp r0, 0x1 - beq _081003DA - b _081003E4 - .align 2, 0 -_081003BC: .4byte gUnknown_203ACEC -_081003C0: - bl sub_8101B88 - movs r0, 0x2 - bl sub_8100E7C - movs r0, 0x1 - bl sub_8100F18 - ldr r1, [r4] - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _081003E4 -_081003DA: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - lsrs r0, 24 - b _081003E6 -_081003E4: - movs r0, 0x1 -_081003E6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81003A8 - - thumb_func_start sub_81003EC -sub_81003EC: @ 81003EC - push {r4,lr} - ldr r4, _08100400 @ =gUnknown_203ACEC - ldr r0, [r4] - ldrh r0, [r0] - cmp r0, 0 - beq _08100404 - cmp r0, 0x1 - beq _0810041E - b _08100428 - .align 2, 0 -_08100400: .4byte gUnknown_203ACEC -_08100404: - bl sub_8101B88 - movs r0, 0x3 - bl sub_8100E7C - movs r0, 0 - bl sub_8100F18 - ldr r1, [r4] - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _08100428 -_0810041E: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - lsrs r0, 24 - b _0810042A -_08100428: - movs r0, 0x1 -_0810042A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81003EC - - thumb_func_start sub_8100430 -sub_8100430: @ 8100430 - push {r4,lr} - ldr r4, _08100444 @ =gUnknown_203ACEC - ldr r0, [r4] - ldrh r0, [r0] - cmp r0, 0 - beq _08100448 - cmp r0, 0x1 - beq _08100462 - b _0810046C - .align 2, 0 -_08100444: .4byte gUnknown_203ACEC -_08100448: - bl sub_8101B88 - movs r0, 0x1 - bl sub_8100E7C - movs r0, 0x1 - bl sub_8100F18 - ldr r1, [r4] - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _0810046C -_08100462: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - lsrs r0, 24 - b _0810046E -_0810046C: - movs r0, 0x1 -_0810046E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8100430 - - thumb_func_start sub_8100474 -sub_8100474: @ 8100474 - push {r4,lr} - ldr r4, _08100488 @ =gUnknown_203ACEC - ldr r0, [r4] - ldrh r0, [r0] - cmp r0, 0 - beq _0810048C - cmp r0, 0x1 - beq _081004A6 - b _081004B0 - .align 2, 0 -_08100488: .4byte gUnknown_203ACEC -_0810048C: - bl sub_8101BA8 - movs r0, 0 - bl sub_8100E7C - movs r0, 0 - bl ShowBg - ldr r1, [r4] - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _081004B0 -_081004A6: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - lsrs r0, 24 - b _081004B2 -_081004B0: - movs r0, 0x1 -_081004B2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8100474 - - thumb_func_start sub_81004B8 -sub_81004B8: @ 81004B8 - push {r4,lr} - ldr r4, _081004CC @ =gUnknown_203ACEC - ldr r0, [r4] - ldrh r0, [r0] - cmp r0, 0 - beq _081004D0 - cmp r0, 0x1 - beq _081004E6 - movs r0, 0x1 - b _081004EE - .align 2, 0 -_081004CC: .4byte gUnknown_203ACEC -_081004D0: - bl sub_8101BA8 - movs r0, 0 - bl sub_8100E7C - bl sub_8100FDC - ldr r1, [r4] - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_081004E6: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - lsrs r0, 24 -_081004EE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81004B8 - - thumb_func_start sub_81004F4 -sub_81004F4: @ 81004F4 - push {lr} - ldr r0, _0810050C @ =gUnknown_203ACEC - ldr r0, [r0] - ldrh r0, [r0] - cmp r0, 0x4 - bhi _081005AE - lsls r0, 2 - ldr r1, _08100510 @ =_08100514 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0810050C: .4byte gUnknown_203ACEC -_08100510: .4byte _08100514 - .align 2, 0 -_08100514: - .4byte _08100528 - .4byte _08100544 - .4byte _08100556 - .4byte _0810056C - .4byte _0810058C -_08100528: - bl sub_8101B88 - movs r0, 0 - bl HideBg - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_8101A5C - bl sub_810131C - b _0810057A -_08100544: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _081005B8 - movs r0, 0 - bl sub_81015D4 - b _0810057A -_08100556: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _081005B8 - bl sub_81016AC - lsls r0, 24 - cmp r0, 0 - bne _081005B8 - b _0810057A -_0810056C: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _081005B8 - bl sub_8101FAC -_0810057A: - ldr r0, _08100588 @ =gUnknown_203ACEC - ldr r1, [r0] - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _081005B8 - .align 2, 0 -_08100588: .4byte gUnknown_203ACEC -_0810058C: - bl sub_8102018 - lsls r0, 24 - cmp r0, 0 - bne _081005B8 - bl sub_8101BC0 - movs r0, 0 - bl sub_81022E0 - bl sub_810224C - ldr r0, _081005B4 @ =gUnknown_203ACEC - ldr r1, [r0] - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_081005AE: - movs r0, 0 - b _081005BA - .align 2, 0 -_081005B4: .4byte gUnknown_203ACEC -_081005B8: - movs r0, 0x1 -_081005BA: - pop {r1} - bx r1 - thumb_func_end sub_81004F4 - - thumb_func_start sub_81005C0 -sub_81005C0: @ 81005C0 - push {lr} - ldr r0, _081005D8 @ =gUnknown_203ACEC - ldr r0, [r0] - ldrh r0, [r0] - cmp r0, 0x4 - bhi _08100658 - lsls r0, 2 - ldr r1, _081005DC @ =_081005E0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081005D8: .4byte gUnknown_203ACEC -_081005DC: .4byte _081005E0 - .align 2, 0 -_081005E0: - .4byte _081005F4 - .4byte _08100602 - .4byte _0810061E - .4byte _08100630 - .4byte _08100654 -_081005F4: - bl sub_8101C48 - bl sub_81020AC - bl sub_81022B0 - b _08100644 -_08100602: - bl sub_81020D0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08100658 - movs r0, 0x1 - bl sub_81015D4 - ldr r0, _0810062C @ =gUnknown_203ACEC - ldr r1, [r0] - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_0810061E: - bl sub_81016AC - lsls r0, 24 - cmp r0, 0 - bne _08100658 - b _08100644 - .align 2, 0 -_0810062C: .4byte gUnknown_203ACEC -_08100630: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _08100658 - bl sub_8101BA8 - movs r0, 0 - bl ShowBg -_08100644: - ldr r0, _08100650 @ =gUnknown_203ACEC - ldr r1, [r0] - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _08100658 - .align 2, 0 -_08100650: .4byte gUnknown_203ACEC -_08100654: - movs r0, 0 - b _0810065A -_08100658: - movs r0, 0x1 -_0810065A: - pop {r1} - bx r1 - thumb_func_end sub_81005C0 - - thumb_func_start sub_8100660 -sub_8100660: @ 8100660 - push {lr} - ldr r0, _08100678 @ =gUnknown_203ACEC - ldr r0, [r0] - ldrh r0, [r0] - cmp r0, 0x4 - bhi _08100718 - lsls r0, 2 - ldr r1, _0810067C @ =_08100680 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08100678: .4byte gUnknown_203ACEC -_0810067C: .4byte _08100680 - .align 2, 0 -_08100680: - .4byte _08100694 - .4byte _081006A8 - .4byte _081006C2 - .4byte _081006E8 - .4byte _0810070E -_08100694: - bl sub_8101C48 - bl sub_81022B0 - bl sub_810215C - movs r0, 0x5 - bl sub_81015D4 - b _081006D6 -_081006A8: - bl sub_81016AC - lsls r0, 24 - cmp r0, 0 - bne _08100718 - bl sub_81021B8 - lsls r0, 24 - cmp r0, 0 - bne _08100718 - bl sub_810131C - b _081006D6 -_081006C2: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _08100718 - movs r0, 0x6 - bl sub_81015D4 - bl sub_8102178 -_081006D6: - ldr r0, _081006E4 @ =gUnknown_203ACEC - ldr r1, [r0] - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _08100718 - .align 2, 0 -_081006E4: .4byte gUnknown_203ACEC -_081006E8: - bl sub_81016AC - lsls r0, 24 - cmp r0, 0 - bne _08100718 - bl sub_81021B8 - lsls r0, 24 - cmp r0, 0 - bne _08100718 - bl sub_810224C - bl sub_8101BC0 - ldr r0, _08100714 @ =gUnknown_203ACEC - ldr r1, [r0] - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_0810070E: - movs r0, 0 - b _0810071A - .align 2, 0 -_08100714: .4byte gUnknown_203ACEC -_08100718: - movs r0, 0x1 -_0810071A: - pop {r1} - bx r1 - thumb_func_end sub_8100660 - - thumb_func_start sub_8100720 -sub_8100720: @ 8100720 - push {lr} - bl sub_8101C80 - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_8100720 - - thumb_func_start sub_810072C -sub_810072C: @ 810072C - push {r4,lr} - ldr r4, _08100740 @ =gUnknown_203ACEC - ldr r0, [r4] - ldrh r0, [r0] - cmp r0, 0 - beq _08100744 - cmp r0, 0x1 - beq _08100754 - b _0810076A - .align 2, 0 -_08100740: .4byte gUnknown_203ACEC -_08100744: - movs r0, 0x1 - movs r1, 0x2 - bl sub_81019B0 - ldr r1, [r4] - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_08100754: - bl sub_8101A10 - lsls r0, 24 - cmp r0, 0 - bne _0810076A - bl sub_8101C80 - bl sub_810224C - movs r0, 0 - b _0810076C -_0810076A: - movs r0, 0x1 -_0810076C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_810072C - - thumb_func_start sub_8100774 -sub_8100774: @ 8100774 - push {r4,lr} - ldr r4, _0810078C @ =gUnknown_203ACEC - ldr r0, [r4] - ldrh r0, [r0] - cmp r0, 0x1 - beq _081007A8 - cmp r0, 0x1 - bgt _08100790 - cmp r0, 0 - beq _08100796 - b _081007C8 - .align 2, 0 -_0810078C: .4byte gUnknown_203ACEC -_08100790: - cmp r0, 0x2 - beq _081007C0 - b _081007C8 -_08100796: - movs r0, 0x1 - negs r0, r0 - movs r1, 0x2 - bl sub_81019B0 - ldr r1, [r4] - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_081007A8: - bl sub_8101A10 - lsls r0, 24 - cmp r0, 0 - bne _081007C8 - bl sub_810224C - ldr r0, _081007C4 @ =gUnknown_203ACEC - ldr r1, [r0] - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_081007C0: - movs r0, 0 - b _081007CA - .align 2, 0 -_081007C4: .4byte gUnknown_203ACEC -_081007C8: - movs r0, 0x1 -_081007CA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8100774 - - thumb_func_start sub_81007D0 -sub_81007D0: @ 81007D0 - push {lr} - ldr r0, _081007E8 @ =gUnknown_203ACEC - ldr r0, [r0] - ldrh r0, [r0] - cmp r0, 0x5 - bhi _08100888 - lsls r0, 2 - ldr r1, _081007EC @ =_081007F0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081007E8: .4byte gUnknown_203ACEC -_081007EC: .4byte _081007F0 - .align 2, 0 -_081007F0: - .4byte _08100808 - .4byte _08100816 - .4byte _08100826 - .4byte _08100838 - .4byte _08100858 - .4byte _0810087E -_08100808: - bl sub_8101C48 - bl sub_81020AC - bl sub_81022B0 - b _08100848 -_08100816: - bl sub_81020D0 - lsls r0, 24 - cmp r0, 0 - bne _08100888 - bl sub_81015BC - b _08100848 -_08100826: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _08100888 - movs r0, 0x2 - bl sub_81015D4 - b _08100848 -_08100838: - bl sub_81016AC - lsls r0, 24 - cmp r0, 0 - bne _08100888 - movs r0, 0x2 - bl sub_81012E0 -_08100848: - ldr r0, _08100854 @ =gUnknown_203ACEC - ldr r1, [r0] - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _08100888 - .align 2, 0 -_08100854: .4byte gUnknown_203ACEC -_08100858: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _08100888 - bl sub_8101E80 - movs r0, 0x1 - bl sub_81022E0 - bl sub_810224C - bl sub_8102394 - ldr r0, _08100884 @ =gUnknown_203ACEC - ldr r1, [r0] - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_0810087E: - movs r0, 0 - b _0810088A - .align 2, 0 -_08100884: .4byte gUnknown_203ACEC -_08100888: - movs r0, 0x1 -_0810088A: - pop {r1} - bx r1 - thumb_func_end sub_81007D0 - - thumb_func_start sub_8100890 -sub_8100890: @ 8100890 - push {lr} - ldr r0, _081008A8 @ =gUnknown_203ACEC - ldr r0, [r0] - ldrh r0, [r0] - cmp r0, 0x5 - bhi _08100934 - lsls r0, 2 - ldr r1, _081008AC @ =_081008B0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081008A8: .4byte gUnknown_203ACEC -_081008AC: .4byte _081008B0 - .align 2, 0 -_081008B0: - .4byte _081008C8 - .4byte _081008CE - .4byte _081008E0 - .4byte _081008F2 - .4byte _08100914 - .4byte _0810092C -_081008C8: - bl sub_8100FDC - b _08100902 -_081008CE: - bl sub_8101F80 - bl sub_81022B0 - bl sub_81023F8 - bl sub_81015BC - b _08100902 -_081008E0: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _08100934 - movs r0, 0x3 - bl sub_81015D4 - b _08100902 -_081008F2: - bl sub_81016AC - lsls r0, 24 - cmp r0, 0 - bne _08100934 - movs r0, 0 - bl ShowBg -_08100902: - ldr r0, _08100910 @ =gUnknown_203ACEC - ldr r1, [r0] - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _08100934 - .align 2, 0 -_08100910: .4byte gUnknown_203ACEC -_08100914: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _08100934 - bl sub_8101BA8 - ldr r0, _08100930 @ =gUnknown_203ACEC - ldr r1, [r0] - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_0810092C: - movs r0, 0 - b _08100936 - .align 2, 0 -_08100930: .4byte gUnknown_203ACEC -_08100934: - movs r0, 0x1 -_08100936: - pop {r1} - bx r1 - thumb_func_end sub_8100890 - - thumb_func_start sub_810093C -sub_810093C: @ 810093C - push {lr} - ldr r0, _08100954 @ =gUnknown_203ACEC - ldr r0, [r0] - ldrh r0, [r0] - cmp r0, 0x4 - bhi _081009F0 - lsls r0, 2 - ldr r1, _08100958 @ =_0810095C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08100954: .4byte gUnknown_203ACEC -_08100958: .4byte _0810095C - .align 2, 0 -_0810095C: - .4byte _08100970 - .4byte _08100982 - .4byte _08100994 - .4byte _081009A4 - .4byte _081009C4 -_08100970: - bl sub_8101F80 - bl sub_81022B0 - bl sub_81023F8 - bl sub_81015BC - b _081009B2 -_08100982: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _081009F0 - movs r0, 0x4 - bl sub_81015D4 - b _081009B2 -_08100994: - bl sub_81016AC - lsls r0, 24 - cmp r0, 0 - bne _081009F0 - bl sub_810131C - b _081009B2 -_081009A4: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _081009F0 - bl sub_8101FAC -_081009B2: - ldr r0, _081009C0 @ =gUnknown_203ACEC - ldr r1, [r0] - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _081009F0 - .align 2, 0 -_081009C0: .4byte gUnknown_203ACEC -_081009C4: - bl sub_8102018 - lsls r0, 24 - cmp r0, 0 - bne _081009F0 - bl sub_8101BC0 - movs r0, 0 - bl sub_81022E0 - bl sub_810224C - ldr r0, _081009EC @ =gUnknown_203ACEC - ldr r1, [r0] - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - movs r0, 0 - b _081009F2 - .align 2, 0 -_081009EC: .4byte gUnknown_203ACEC -_081009F0: - movs r0, 0x1 -_081009F2: - pop {r1} - bx r1 - thumb_func_end sub_810093C - - thumb_func_start sub_81009F8 -sub_81009F8: @ 81009F8 - push {lr} - bl sub_8101F04 - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_81009F8 - - thumb_func_start sub_8100A04 -sub_8100A04: @ 8100A04 - push {r4,lr} - ldr r4, _08100A1C @ =gUnknown_203ACEC - ldr r0, [r4] - ldrh r0, [r0] - cmp r0, 0x1 - beq _08100A30 - cmp r0, 0x1 - bgt _08100A20 - cmp r0, 0 - beq _08100A2A - b _08100A6E - .align 2, 0 -_08100A1C: .4byte gUnknown_203ACEC -_08100A20: - cmp r0, 0x2 - beq _08100A4C - cmp r0, 0x3 - beq _08100A6A - b _08100A6E -_08100A2A: - bl sub_81013EC - b _08100A42 -_08100A30: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _08100A6E - movs r0, 0x1 - movs r1, 0x2 - bl sub_81019B0 -_08100A42: - ldr r1, [r4] - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _08100A6E -_08100A4C: - bl sub_8101A10 - lsls r0, 24 - cmp r0, 0 - bne _08100A6E - bl sub_8101F04 - bl sub_810224C - bl sub_8102394 - ldr r1, [r4] - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_08100A6A: - movs r0, 0 - b _08100A70 -_08100A6E: - movs r0, 0x1 -_08100A70: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8100A04 - - thumb_func_start sub_8100A78 -sub_8100A78: @ 8100A78 - push {r4,lr} - ldr r4, _08100A90 @ =gUnknown_203ACEC - ldr r0, [r4] - ldrh r0, [r0] - cmp r0, 0x1 - beq _08100AA4 - cmp r0, 0x1 - bgt _08100A94 - cmp r0, 0 - beq _08100A9E - b _08100AE0 - .align 2, 0 -_08100A90: .4byte gUnknown_203ACEC -_08100A94: - cmp r0, 0x2 - beq _08100AC2 - cmp r0, 0x3 - beq _08100ADC - b _08100AE0 -_08100A9E: - bl sub_8101410 - b _08100AB8 -_08100AA4: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _08100AE0 - movs r0, 0x1 - negs r0, r0 - movs r1, 0x2 - bl sub_81019B0 -_08100AB8: - ldr r1, [r4] - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _08100AE0 -_08100AC2: - bl sub_8101A10 - lsls r0, 24 - cmp r0, 0 - bne _08100AE0 - bl sub_810224C - bl sub_8102394 - ldr r1, [r4] - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_08100ADC: - movs r0, 0 - b _08100AE2 -_08100AE0: - movs r0, 0x1 -_08100AE2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8100A78 - - thumb_func_start sub_8100AE8 -sub_8100AE8: @ 8100AE8 - push {r4,r5,lr} - ldr r5, _08100B00 @ =gUnknown_203ACEC - ldr r0, [r5] - ldrh r0, [r0] - cmp r0, 0x1 - beq _08100B14 - cmp r0, 0x1 - bgt _08100B04 - cmp r0, 0 - beq _08100B0E - b _08100B66 - .align 2, 0 -_08100B00: .4byte gUnknown_203ACEC -_08100B04: - cmp r0, 0x2 - beq _08100B44 - cmp r0, 0x3 - beq _08100B62 - b _08100B66 -_08100B0E: - bl sub_8101434 - b _08100B3A -_08100B14: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _08100B66 - bl sub_80FFE48 - adds r4, r0, 0 - bl sub_8101A48 - lsls r4, 24 - lsrs r4, 24 - subs r4, r0 - lsls r4, 16 - asrs r4, 16 - adds r0, r4, 0 - movs r1, 0x4 - bl sub_81019B0 -_08100B3A: - ldr r1, [r5] - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _08100B66 -_08100B44: - bl sub_8101A10 - lsls r0, 24 - cmp r0, 0 - bne _08100B66 - bl sub_8101F04 - bl sub_810224C - bl sub_8102394 - ldr r1, [r5] - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_08100B62: - movs r0, 0 - b _08100B68 -_08100B66: - movs r0, 0x1 -_08100B68: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8100AE8 - - thumb_func_start sub_8100B70 -sub_8100B70: @ 8100B70 - push {r4,r5,lr} - ldr r5, _08100B88 @ =gUnknown_203ACEC - ldr r0, [r5] - ldrh r0, [r0] - cmp r0, 0x1 - beq _08100B9C - cmp r0, 0x1 - bgt _08100B8C - cmp r0, 0 - beq _08100B96 - b _08100BEA - .align 2, 0 -_08100B88: .4byte gUnknown_203ACEC -_08100B8C: - cmp r0, 0x2 - beq _08100BCC - cmp r0, 0x3 - beq _08100BE6 - b _08100BEA -_08100B96: - bl sub_8101478 - b _08100BC2 -_08100B9C: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _08100BEA - bl sub_80FFE48 - adds r4, r0, 0 - bl sub_8101A48 - lsls r4, 24 - lsrs r4, 24 - subs r4, r0 - lsls r4, 16 - asrs r4, 16 - adds r0, r4, 0 - movs r1, 0x4 - bl sub_81019B0 -_08100BC2: - ldr r1, [r5] - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _08100BEA -_08100BCC: - bl sub_8101A10 - lsls r0, 24 - cmp r0, 0 - bne _08100BEA - bl sub_810224C - bl sub_8102394 - ldr r1, [r5] - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_08100BE6: - movs r0, 0 - b _08100BEC -_08100BEA: - movs r0, 0x1 -_08100BEC: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8100B70 - thumb_func_start sub_8100BF4 sub_8100BF4: @ 8100BF4 push {r4,lr} @@ -1982,7 +441,7 @@ sub_8100F44: @ 8100F44 movs r1, 0x3 orrs r3, r1 str r3, [sp] - ldr r1, _08100FC4 @ =gUnknown_843F888 + ldr r1, _08100FC4 @ =sPhraseFrameDimensions lsrs r0, 22 adds r0, r1 ldrb r2, [r0] @@ -2032,7 +491,7 @@ sub_8100F44: @ 8100F44 bx r0 .align 2, 0 _08100FC0: .4byte 0xffffff00 -_08100FC4: .4byte gUnknown_843F888 +_08100FC4: .4byte sPhraseFrameDimensions _08100FC8: .4byte 0xffff00ff _08100FCC: .4byte 0xff00ffff _08100FD0: .4byte 0x00ffffff @@ -2202,7 +661,7 @@ sub_8101100: @ 8101100 bl CpuFastSet cmp r5, 0x2 bne _081011A4 - ldr r0, _08101198 @ =gUnknown_843F888 + ldr r0, _08101198 @ =sPhraseFrameDimensions adds r1, r0, 0 adds r1, 0x8 ldrb r5, [r0, 0x8] @@ -2261,11 +720,11 @@ _0810117E: b _08101296 .align 2, 0 _08101194: .4byte 0x01000200 -_08101198: .4byte gUnknown_843F888 +_08101198: .4byte sPhraseFrameDimensions _0810119C: .4byte 0x00001005 _081011A0: .4byte 0x00001007 _081011A4: - ldr r6, _081012A8 @ =gUnknown_843F888 + ldr r6, _081012A8 @ =sPhraseFrameDimensions mov r9, r6 lsls r5, 2 adds r1, r5, r6 @@ -2315,7 +774,7 @@ _081011F0: adds r7, 0x1 cmp r7, r12 bge _08101252 - ldr r0, _081012A8 @ =gUnknown_843F888 + ldr r0, _081012A8 @ =sPhraseFrameDimensions add r0, r9 ldrb r3, [r0] lsls r5, r3, 1 @@ -2404,7 +863,7 @@ _08101296: pop {r0} bx r0 .align 2, 0 -_081012A8: .4byte gUnknown_843F888 +_081012A8: .4byte sPhraseFrameDimensions _081012AC: .4byte 0x00001001 _081012B0: .4byte 0x00001002 _081012B4: .4byte 0x00001003 @@ -3482,7 +1941,7 @@ sub_8101AC4: @ 8101AC4 push {lr} bl GetEasyChatScreenFrameId lsls r0, 24 - ldr r1, _08101B10 @ =gUnknown_843F888 + ldr r1, _08101B10 @ =sPhraseFrameDimensions lsrs r0, 22 adds r0, r1 ldrb r1, [r0] @@ -3516,7 +1975,7 @@ sub_8101AC4: @ 8101AC4 pop {r0} bx r0 .align 2, 0 -_08101B10: .4byte gUnknown_843F888 +_08101B10: .4byte sPhraseFrameDimensions _08101B14: .4byte gUnknown_843F968 _08101B18: .4byte gUnknown_203ACEC _08101B1C: .4byte gSprites diff --git a/data/easy_chat_2.s b/data/easy_chat_2.s index 4cf0bcfb3..04270adac 100644 --- a/data/easy_chat_2.s +++ b/data/easy_chat_2.s @@ -7,91 +7,6 @@ .section .rodata .align 2 -gUnknown_843F3B8:: @ 843F3B8 gbapal - .incbin "graphics/link_rfu/unk_843F3F8.gbapal" - -gUnknown_843F3D8:: @ 843F3D8 gbapal - .incbin "graphics/link_rfu/unk_8E9BD28.gbapal" - -gUnknown_843F3F8:: @ 843F3F8 4bpp - .incbin "graphics/link_rfu/unk_843F3F8.4bpp" - -gUnknown_843F418:: @ 843F418 4bpp - .incbin "graphics/link_rfu/unk_843F418.4bpp" - -gUnknown_843F518:: @ 843F518 4bpp - .incbin "graphics/link_rfu/unk_843F518.4bpp" - -gUnknown_843F618:: @ 843F618 gbapal - .incbin "graphics/link_rfu/unk_843F638.gbapal" - -gUnknown_843F638:: @ 843F638 4bpp.lz - .incbin "graphics/link_rfu/unk_843F638.4bpp.lz" - -gUnknown_843F76C:: @ 843F76C gbapal - .incbin "graphics/link_rfu/unk_843F76C.gbapal" - -gUnknown_843F78C:: @ 843F78C gbapal - .incbin "graphics/link_rfu/unk_843F78C.gbapal" - -gUnknown_843F7AC:: @ 843F7AC 4bpp.lz - .incbin "graphics/link_rfu/unk_843F7AC.4bpp.lz" - -gUnknown_843F874:: @ 843F874 gbapal - .2byte RGB(0, 0, 0) - .2byte RGB(0, 0, 0) - .2byte RGB(7, 25, 31) - .2byte RGB(21, 21, 29) - -gUnknown_843F87C:: @ 843F87C gbapal - .2byte RGB(0, 0, 0) - .2byte RGB(31, 31, 31) - .2byte RGB(12, 12, 12) - .2byte RGB(27, 26, 27) - .2byte RGB(8, 17, 9) - - .align 2 -gUnknown_843F888:: @ 843F888 data8 6x4 - .byte 0x03, 0x04, 0x18, 0x04 - .byte 0x01, 0x04, 0x1b, 0x04 - .byte 0x03, 0x00, 0x18, 0x0a - .byte 0x06, 0x06, 0x12, 0x04 - .byte 0x10, 0x04, 0x09, 0x02 - .byte 0x0e, 0x04, 0x12, 0x04 - -gUnknown_843F8A0:: @ 843F8A0 bg_template - .4byte 0x000001c0, 0x000011dd, 0x002021e2, 0x000031fb - -gUnknown_843F8B0:: @ 843F8B0 window_template - .align 2 - .byte 0x01, 0x07, 0x00, 0x10, 0x02, 0x0a - .2byte 0x0010 - @ {0x01, 0x07, 0x00, 0x10, 0x02, 0x0a, 0x0010} - .align 2 - .byte 0x00, 0x04, 0x0f, 0x16, 0x04, 0x0f - .2byte 0x000a - @ {0x00, 0x04, 0x0f, 0x16, 0x04, 0x0f, 0x000a} - .align 2 - .byte 0x02, 0x01, 0x00, 0x1c, 0x20, 0x03 - .2byte 0x0000 - @ {0x02, 0x01, 0x00, 0x1c, 0x20, 0x03, 0x0000} - .align 2 - .byte 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 - .2byte 0x0000 - @ {0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000} - -gUnknown_843F8D0:: @ 843F8D0 window_template - .align 2 - .byte 0x00, 0x16, 0x09, 0x05, 0x04, 0x0f - .2byte 0x0062 - @ {0x00, 0x16, 0x09, 0x05, 0x04, 0x0f, 0x0062} - -gUnknown_843F8D8:: @ 843F8D8 text - .string "{UNDERSCORE}$" - -gUnknown_843F8DB:: @ 843F8DB text - .string "{CLEAR 17}$" - .align 2 gUnknown_843F8E0:: @ 843F8E0 .4byte gUnknown_847A8D8 diff --git a/include/easy_chat.h b/include/easy_chat.h index 67d14290c..12c096136 100644 --- a/include/easy_chat.h +++ b/include/easy_chat.h @@ -47,5 +47,28 @@ const u8 *GetEasyChatWordGroupName(u8); u8 *CopyEasyChatWordPadded(u8 *, u16, u16); void DoEasyChatScreen(u8 type, u16 *words, MainCallback callback); u8 GetNumDisplayableGroups(void); +bool8 sub_80FFF80(void); +bool8 sub_80FFF98(void); +void sub_810011C(void); +void sub_8100134(u16 v0); +bool8 sub_810014C(void); +u8 GetEasyChatScreenFrameId(void); +const u8 *GetTitleText(void); +u16 *GetEasyChatWordBuffer(void); +u8 GetNumRows(void); +u8 GetNumColumns(void); +u8 GetMainCursorColumn(void); +u8 GetMainCursorRow(void); +void GetEasyChatInstructionsText(const u8 **str1, const u8 **str2); +void GetEasyChatConfirmText(const u8 **str1, const u8 **str2); +void sub_80FFDC8(const u8 **str1, const u8 **str2); +void GetEasyChatConfirmDeletionText(const u8 **str1, const u8 **str2); +void sub_80FFE08(u8 *arg0, u8 *arg1); +u8 sub_80FFE1C(void); +u8 sub_80FFE28(void); +void sub_80FFE34(u8 *arg0, u8 *arg1); +u8 sub_80FFE48(void); +u8 sub_80FFE54(void); +u8 unref_sub_80FFE60(void); #endif // GUARD_EASY_CHAT_H diff --git a/include/graphics.h b/include/graphics.h index 2c3aa7c4b..5bac692a4 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -4886,4 +4886,8 @@ extern const u16 gUnknown_8EAFEA0[]; extern const u32 gUnknown_8EAFFC0[]; extern const u32 gUnknown_8EB0ADC[]; +// easy_chat_3 +extern const u32 gEasyChatWindow_Gfx[]; +extern const u32 gEasyChatWindow_Tilemap[]; + #endif //GUARD_GRAPHICS_H diff --git a/ld_script.txt b/ld_script.txt index 0de8b654e..9bd1be612 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -227,6 +227,7 @@ SECTIONS { src/link_rfu_3.o(.text); src/AgbRfu_LinkManager.o(.text); src/easy_chat_2.o(.text); + src/easy_chat_3.o(.text); asm/easy_chat_2.o(.text); src/pokedex_screen.o(.text); asm/pokedex_screen.o(.text); @@ -519,6 +520,7 @@ SECTIONS { src/link_rfu_2.o(.rodata); src/link_rfu_3.o(.rodata); src/easy_chat_2.o(.rodata); + src/easy_chat_3.o(.rodata); data/easy_chat_2.o(.rodata); src/pokedex_screen.o(.rodata); data/pokedex_screen.o(.rodata); diff --git a/src/easy_chat_2.c b/src/easy_chat_2.c index 9e018feaf..28c091dc6 100644 --- a/src/easy_chat_2.c +++ b/src/easy_chat_2.c @@ -107,12 +107,6 @@ bool8 GetEasyChatScreenFrameId(void); bool8 IsPhraseDifferentThanPlayerInput(const u16 *wordsToCompare, u8 numWords); u8 GetEasyChatScreenTemplateId(u8 type); bool32 IsEcWordBufferUninitialized(void); -bool8 sub_80FFF80(void); -bool8 sub_80FFF98(void); -void sub_810011C(void); -void sub_8100134(u16 v0); -bool8 sub_810014C(void); -bool8 sub_8100BF4(void); void DoEasyChatScreen(u8 type, u16 *words, MainCallback callback) { @@ -1370,11 +1364,3 @@ bool32 IsEcWordBufferUninitialized(void) return TRUE; } - -bool8 sub_80FFF80(void) -{ - if (!sub_8100BF4()) - return FALSE; - else - return TRUE; -} diff --git a/src/easy_chat_3.c b/src/easy_chat_3.c new file mode 100644 index 000000000..d01203dcc --- /dev/null +++ b/src/easy_chat_3.c @@ -0,0 +1,983 @@ +#include "global.h" +#include "gflib.h" +#include "easy_chat.h" +#include "graphics.h" +#include "new_menu_helpers.h" + +struct Unk203A11C +{ + u16 unk0; + u16 windowId; + u16 unk4; + u8 unk6; + u8 unk7; + s8 unk8; + u8 unk9; + u8 unkA; + u8 unkB[0xC1]; + u8 unkCC[0x202]; + u16 unk2CE; + int unk2D0; + int unk2D4; + struct Sprite *unk2D8; + struct Sprite *unk2DC; + struct Sprite *unk2E0; + struct Sprite *unk2E4; + struct Sprite *unk2E8; + struct Sprite *unk2EC; + struct Sprite *unk2F0; + struct Sprite *unk2F4; + struct Sprite *unk2F8; + struct Sprite *unk2FC; + u16 unk300[BG_SCREEN_SIZE / 2]; + u16 unkB00[BG_SCREEN_SIZE / 2]; +}; + +struct EasyChatPhraseFrameDimensions +{ + u8 left; + u8 top; + u8 width; + u8 height; +}; + +EWRAM_DATA struct Unk203A11C *gUnknown_203ACEC = NULL; + +bool8 sub_8100258(void); +bool8 sub_8100290(void); +bool8 sub_8100374(void); +bool8 sub_81003A8(void); +bool8 sub_81003EC(void); +bool8 sub_8100430(void); +bool8 sub_8100474(void); +bool8 sub_81004B8(void); +bool8 sub_81004F4(void); +bool8 sub_81005C0(void); +bool8 sub_8100660(void); +bool8 sub_8100720(void); +bool8 sub_810072C(void); +bool8 sub_8100774(void); +bool8 sub_81007D0(void); +bool8 sub_8100890(void); +bool8 sub_810093C(void); +bool8 sub_81009F8(void); +bool8 sub_8100A04(void); +bool8 sub_8100A78(void); +bool8 sub_8100AE8(void); +bool8 sub_8100B70(void); +bool8 sub_8100BF4(void); +void sub_8100C5C(void); +void sub_8100CBC(void); +void sub_8100D24(void); +void sub_8100E34(void); +void sub_8100E7C(u8 a0); +void sub_8100F18(u8 initialCursorPos); +void sub_8100F44(void); +void sub_8100FDC(void); +void sub_8101100(u16 *buffer); +void sub_81012CC(void); +void sub_81012E0(u8 a0); +void sub_810131C(void); +void sub_81013EC(void); +void sub_8101410(void); +void sub_8101434(void); +void sub_8101478(void); +void sub_81015BC(void); +void sub_81015D4(u8 a0); +bool8 sub_81016AC(void); +void sub_81019B0(s16 a0, u8 a1); +bool8 sub_8101A10(void); +s32 sub_8101A48(void); +void sub_8101A5C(u8 left, u8 top, u8 right, u8 bottom); +void sub_8101A90(void); +void sub_8101AC4(void); +void sub_8101B58(u8 a0, u8 a1); +void sub_8101B88(void); +void sub_8101BA8(void); +void sub_8101BC0(void); +void sub_8101C48(void); +void sub_8101C80(void); +void sub_8101E80(void); +void sub_8101F04(void); +void sub_8101F80(void); +void sub_8101FAC(void); +bool8 sub_8102018(void); +void sub_81020AC(void); +bool8 sub_81020D0(void); +void sub_810215C(void); +void sub_8102178(void); +bool8 sub_81021B8(void); +void sub_81021D4(void); +void sub_810224C(void); +void sub_81022B0(void); +void sub_81022E0(u8 a0); +void sub_8102320(void); +void sub_8102394(void); +void sub_81023F8(void); +void sub_8102428(void); + +const u16 gUnknown_843F3B8[] = INCBIN_U16("graphics/link_rfu/unk_843F3F8.gbapal"); +const u16 gUnknown_843F3D8[] = INCBIN_U16("graphics/link_rfu/unk_8E9BD28.gbapal"); +const u16 gUnknown_843F3F8[] = INCBIN_U16("graphics/link_rfu/unk_843F3F8.4bpp"); +const u16 gUnknown_843F418[] = INCBIN_U16("graphics/link_rfu/unk_843F418.4bpp"); +const u16 gUnknown_843F518[] = INCBIN_U16("graphics/link_rfu/unk_843F518.4bpp"); +const u16 gUnknown_843F618[] = INCBIN_U16("graphics/link_rfu/unk_843F638.gbapal"); +const u32 gUnknown_843F638[] = INCBIN_U32("graphics/link_rfu/unk_843F638.4bpp.lz"); +const u16 gUnknown_843F76C[] = INCBIN_U16("graphics/link_rfu/unk_843F76C.gbapal"); +const u16 gUnknown_843F78C[] = INCBIN_U16("graphics/link_rfu/unk_843F78C.gbapal"); +const u32 gUnknown_843F7AC[] = INCBIN_U32("graphics/link_rfu/unk_843F7AC.4bpp.lz"); + +const u16 gUnknown_843F874[] = { + RGB( 0, 0, 0), + RGB( 0, 0, 0), + RGB( 7, 25, 31), + RGB(21, 21, 29) +}; + +const u16 gUnknown_843F87C[] = { + RGB( 0, 0, 0), + RGB(31, 31, 31), + RGB(12, 12, 12), + RGB(27, 26, 27), + RGB( 8, 17, 9) +}; + +const struct EasyChatPhraseFrameDimensions sPhraseFrameDimensions[] = { + { + .left = 0x03, + .top = 0x04, + .width = 0x18, + .height = 0x04 + }, { + .left = 0x01, + .top = 0x04, + .width = 0x1b, + .height = 0x04 + }, { + .left = 0x03, + .top = 0x00, + .width = 0x18, + .height = 0x0a + }, { + .left = 0x06, + .top = 0x06, + .width = 0x12, + .height = 0x04 + }, { + .left = 0x10, + .top = 0x04, + .width = 0x09, + .height = 0x02 + }, { + .left = 0x0e, + .top = 0x04, + .width = 0x12, + .height = 0x04 + } +}; + +const struct BgTemplate sEasyChatBgTemplates[] = { + { + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 28, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0, + }, { + .bg = 1, + .charBaseIndex = 3, + .mapBaseIndex = 29, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0, + }, { + .bg = 2, + .charBaseIndex = 0, + .mapBaseIndex = 30, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0x80, + }, { + .bg = 3, + .charBaseIndex = 2, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 3, + .baseTile = 0, + } +}; + +const struct WindowTemplate sEasyChatWindowTemplates[] = { + { + .bg = 1, + .tilemapLeft = 7, + .tilemapTop = 0, + .width = 16, + .height = 2, + .paletteNum = 10, + .baseBlock = 0x10, + }, + { + .bg = 0, + .tilemapLeft = 4, + .tilemapTop = 15, + .width = 22, + .height = 4, + .paletteNum = 15, + .baseBlock = 0xA, + }, + { + .bg = 2, + .tilemapLeft = 1, + .tilemapTop = 0, + .width = 28, + .height = 32, + .paletteNum = 3, + .baseBlock = 0, + }, + DUMMY_WIN_TEMPLATE, +}; + +const struct WindowTemplate gUnknown_843F8D0 = { + .bg = 0, + .tilemapLeft = 22, + .tilemapTop = 9, + .width = 5, + .height = 4, + .paletteNum = 15, + .baseBlock = 0x062 +}; + +const u8 gUnknown_843F8D8[] = _("{UNDERSCORE}"); +const u8 gUnknown_843F8DB[] = _("{CLEAR 17}"); + +bool8 sub_80FFF80(void) +{ + if (!sub_8100BF4()) + return FALSE; + else + return TRUE; +} + +bool8 sub_80FFF98(void) +{ + switch (gUnknown_203ACEC->unk0) + { + case 0: + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, sEasyChatBgTemplates, NELEMS(sEasyChatBgTemplates)); + SetBgTilemapBuffer(3, gUnknown_203ACEC->unkB00); + SetBgTilemapBuffer(1, gUnknown_203ACEC->unk300); + InitWindows(sEasyChatWindowTemplates); + DeactivateAllTextPrinters(); + sub_8100CBC(); + sub_8100C5C(); + CpuFastFill(0, (void *)VRAM + 0x1000000, 0x400); + break; + case 1: + DecompressAndLoadBgGfxUsingHeap(3, gEasyChatWindow_Gfx, 0, 0, 0); + CopyToBgTilemapBuffer(3, gEasyChatWindow_Tilemap, 0, 0); + sub_8100F44(); + sub_8102428(); + CopyBgTilemapBufferToVram(3); + break; + case 2: + sub_8101100(gUnknown_203ACEC->unk300); + DecompressAndLoadBgGfxUsingHeap(1, gUnknown_843F7AC, 0, 0, 0); + CopyBgTilemapBufferToVram(1); + break; + case 3: + sub_8100D24(); + sub_8100E34(); + sub_8100FDC(); + sub_81012CC(); + break; + case 4: + sub_8101A90(); + sub_8101AC4(); + break; + case 5: + if (IsDma3ManagerBusyWithBgCopy()) + { + return TRUE; + } + else + { + sub_8101A5C(0, 0, 0, 0); + SetGpuReg(REG_OFFSET_WININ, WIN_RANGE(0, 63)); + SetGpuReg(REG_OFFSET_WINOUT, WIN_RANGE(0, 59)); + ShowBg(3); + ShowBg(1); + ShowBg(2); + ShowBg(0); + sub_81021D4(); + sub_8102320(); + } + break; + default: + return FALSE; + } + + gUnknown_203ACEC->unk0++; + return TRUE; +} + +void sub_810011C(void) +{ + if (gUnknown_203ACEC) + Free(gUnknown_203ACEC); +} + +void sub_8100134(u16 arg0) +{ + gUnknown_203ACEC->unk4 = arg0; + gUnknown_203ACEC->unk0 = 0; + sub_810014C(); +} + +bool8 sub_810014C(void) +{ + switch (gUnknown_203ACEC->unk4) + { + case 0: return FALSE; + case 1: return sub_8100258(); + case 2: return sub_8100290(); + case 3: return sub_8100374(); + case 4: return sub_8100430(); + case 5: return sub_81003A8(); + case 6: return sub_81003EC(); + case 7: return sub_8100474(); + case 8: return sub_81004B8(); + case 9: return sub_81004F4(); + case 10: return sub_81005C0(); + case 11: return sub_81007D0(); + case 12: return sub_8100890(); + case 13: return sub_810093C(); + case 14: return sub_8100720(); + case 15: return sub_810072C(); + case 16: return sub_8100774(); + case 17: return sub_81009F8(); + case 18: return sub_8100A78(); + case 19: return sub_8100A04(); + case 20: return sub_8100B70(); + case 21: return sub_8100AE8(); + case 22: return sub_8100660(); + default: return FALSE; + } +} + +bool8 sub_8100258(void) +{ + switch (gUnknown_203ACEC->unk0) + { + case 0: + sub_8100FDC(); + gUnknown_203ACEC->unk0++; + break; + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + return TRUE; +} + +bool8 sub_8100290(void) +{ + u8 i; + u16 *ecWordBuffer; + u16 *ecWord; + u8 frameId; + u8 cursorColumn, cursorRow, numColumns; + s16 var1; + int stringWidth; + int trueStringWidth; + int var2; + u8 str[64]; + + ecWordBuffer = GetEasyChatWordBuffer(); + frameId = GetEasyChatScreenFrameId(); + cursorColumn = GetMainCursorColumn(); + cursorRow = GetMainCursorRow(); + numColumns = GetNumColumns(); + ecWord = &ecWordBuffer[cursorRow * numColumns]; + var1 = 8 * sPhraseFrameDimensions[frameId].left + 13; + for (i = 0; i < cursorColumn; i++) + { + if (*ecWord == 0xFFFF) + { + stringWidth = GetStringWidth(1, gUnknown_843F8D8, 0) * 7; + } + else + { + CopyEasyChatWord(str, *ecWord); + stringWidth = GetStringWidth(1, str, 0); + } + + trueStringWidth = stringWidth + 17; + var1 += trueStringWidth; + ecWord++; + } + + var2 = 8 * (sPhraseFrameDimensions[frameId].top + cursorRow * 2 + 1) + 1; + sub_8101B58(var1, var2); + return FALSE; +} + +bool8 sub_8100374(void) +{ + u8 xOffset; + switch (GetMainCursorColumn()) + { + case 0: + xOffset = 28; + break; + case 1: + xOffset = 115; + break; + case 2: + xOffset = 191; + break; + default: + return FALSE; + } + sub_8101B58(xOffset, 97); + return FALSE; +} + +bool8 sub_81003A8(void) +{ + switch (gUnknown_203ACEC->unk0) + { + case 0: + sub_8101B88(); + sub_8100E7C(2); + sub_8100F18(1); + gUnknown_203ACEC->unk0++; + break; + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + return TRUE; +} + +bool8 sub_81003EC(void) +{ + switch (gUnknown_203ACEC->unk0) + { + case 0: + sub_8101B88(); + sub_8100E7C(3); + sub_8100F18(0); + gUnknown_203ACEC->unk0++; + break; + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + return TRUE; +} + +bool8 sub_8100430(void) +{ + switch (gUnknown_203ACEC->unk0) + { + case 0: + sub_8101B88(); + sub_8100E7C(1); + sub_8100F18(1); + gUnknown_203ACEC->unk0++; + break; + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + return TRUE; +} + +bool8 sub_8100474(void) +{ + switch (gUnknown_203ACEC->unk0) + { + case 0: + sub_8101BA8(); + sub_8100E7C(0); + ShowBg(0); + gUnknown_203ACEC->unk0++; + break; + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + return TRUE; +} + +bool8 sub_81004B8(void) +{ + switch (gUnknown_203ACEC->unk0) + { + case 0: + sub_8101BA8(); + sub_8100E7C(0); + sub_8100FDC(); + gUnknown_203ACEC->unk0++; + // Fall through + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + return TRUE; +} + +bool8 sub_81004F4(void) +{ + switch (gUnknown_203ACEC->unk0) + { + case 0: + sub_8101B88(); + HideBg(0); + sub_8101A5C(0, 0, 0, 0); + sub_810131C(); + gUnknown_203ACEC->unk0++; + break; + case 1: + if (!IsDma3ManagerBusyWithBgCopy()) + { + sub_81015D4(0); + gUnknown_203ACEC->unk0++; + } + break; + case 2: + if (!IsDma3ManagerBusyWithBgCopy() && !sub_81016AC()) + gUnknown_203ACEC->unk0++; + break; + case 3: + if (!IsDma3ManagerBusyWithBgCopy()) + { + sub_8101FAC(); + gUnknown_203ACEC->unk0++; + } + break; + case 4: + if (!sub_8102018()) + { + sub_8101BC0(); + sub_81022E0(0); + sub_810224C(); + gUnknown_203ACEC->unk0++; + return FALSE; + } + break; + default: + return FALSE; + } + + return TRUE; +} + +bool8 sub_81005C0(void) +{ + switch (gUnknown_203ACEC->unk0) + { + case 0: + sub_8101C48(); + sub_81020AC(); + sub_81022B0(); + gUnknown_203ACEC->unk0++; + break; + case 1: + if (sub_81020D0() == TRUE) + break; + + sub_81015D4(1); + gUnknown_203ACEC->unk0++; + // Fall through + case 2: + if (!sub_81016AC()) + gUnknown_203ACEC->unk0++; + break; + case 3: + if (!IsDma3ManagerBusyWithBgCopy()) + { + sub_8101BA8(); + ShowBg(0); + gUnknown_203ACEC->unk0++; + } + break; + case 4: + return FALSE; + } + + return TRUE; +} + +bool8 sub_8100660(void) +{ + switch (gUnknown_203ACEC->unk0) + { + case 0: + sub_8101C48(); + sub_81022B0(); + sub_810215C(); + sub_81015D4(5); + gUnknown_203ACEC->unk0++; + break; + case 1: + if (!sub_81016AC() && !sub_81021B8()) + { + sub_810131C(); + gUnknown_203ACEC->unk0++; + } + break; + case 2: + if (!IsDma3ManagerBusyWithBgCopy()) + { + sub_81015D4(6); + sub_8102178(); + gUnknown_203ACEC->unk0++; + } + break; + case 3: + if (!sub_81016AC() && !sub_81021B8()) + { + sub_810224C(); + sub_8101BC0(); + gUnknown_203ACEC->unk0++; + return FALSE; + } + break; + case 4: + return FALSE; + } + + return TRUE; +} + +bool8 sub_8100720(void) +{ + sub_8101C80(); + return FALSE; +} + +bool8 sub_810072C(void) +{ + switch (gUnknown_203ACEC->unk0) + { + case 0: + sub_81019B0(1, 2); + gUnknown_203ACEC->unk0++; + // Fall through + case 1: + if (!sub_8101A10()) + { + sub_8101C80(); + sub_810224C(); + return FALSE; + } + break; + } + + return TRUE; +} + +bool8 sub_8100774(void) +{ + switch (gUnknown_203ACEC->unk0) + { + case 0: + sub_81019B0(-1, 2); + gUnknown_203ACEC->unk0++; + // Fall through + case 1: + if (!sub_8101A10()) + { + sub_810224C(); + gUnknown_203ACEC->unk0++; + return FALSE; + } + break; + case 2: + return FALSE; + } + + return TRUE; +} + +bool8 sub_81007D0(void) +{ + switch (gUnknown_203ACEC->unk0) + { + case 0: + sub_8101C48(); + sub_81020AC(); + sub_81022B0(); + gUnknown_203ACEC->unk0++; + break; + case 1: + if (!sub_81020D0()) + { + sub_81015BC(); + gUnknown_203ACEC->unk0++; + } + break; + case 2: + if (!IsDma3ManagerBusyWithBgCopy()) + { + sub_81015D4(2); + gUnknown_203ACEC->unk0++; + } + break; + case 3: + if (!sub_81016AC()) + { + sub_81012E0(2); + gUnknown_203ACEC->unk0++; + } + break; + case 4: + if (!IsDma3ManagerBusyWithBgCopy()) + { + sub_8101E80(); + sub_81022E0(1); + sub_810224C(); + sub_8102394(); + gUnknown_203ACEC->unk0++; + return FALSE; + } + break; + case 5: + return FALSE; + } + + return TRUE; +} + +bool8 sub_8100890(void) +{ + switch (gUnknown_203ACEC->unk0) + { + case 0: + sub_8100FDC(); + gUnknown_203ACEC->unk0++; + break; + case 1: + sub_8101F80(); + sub_81022B0(); + sub_81023F8(); + sub_81015BC(); + gUnknown_203ACEC->unk0++; + break; + case 2: + if (!IsDma3ManagerBusyWithBgCopy()) + { + sub_81015D4(3); + gUnknown_203ACEC->unk0++; + } + break; + case 3: + if (!sub_81016AC()) + { + ShowBg(0); + gUnknown_203ACEC->unk0++; + } + break; + case 4: + if (!IsDma3ManagerBusyWithBgCopy()) + { + sub_8101BA8(); + gUnknown_203ACEC->unk0++; + return FALSE; + } + break; + case 5: + return FALSE; + } + + return TRUE; +} + +bool8 sub_810093C(void) +{ + switch (gUnknown_203ACEC->unk0) + { + case 0: + sub_8101F80(); + sub_81022B0(); + sub_81023F8(); + sub_81015BC(); + gUnknown_203ACEC->unk0++; + break; + case 1: + if (!IsDma3ManagerBusyWithBgCopy()) + { + sub_81015D4(4); + gUnknown_203ACEC->unk0++; + } + break; + case 2: + if (!sub_81016AC()) + { + sub_810131C(); + gUnknown_203ACEC->unk0++; + } + break; + case 3: + if (!IsDma3ManagerBusyWithBgCopy()) + { + sub_8101FAC(); + gUnknown_203ACEC->unk0++; + } + break; + case 4: + if (!sub_8102018()) + { + sub_8101BC0(); + sub_81022E0(0); + sub_810224C(); + gUnknown_203ACEC->unk0++; + return FALSE; + } + break; + } + + return TRUE; +} + +bool8 sub_81009F8(void) +{ + sub_8101F04(); + return FALSE; +} + +bool8 sub_8100A04(void) +{ + switch (gUnknown_203ACEC->unk0) + { + case 0: + sub_81013EC(); + gUnknown_203ACEC->unk0++; + break; + case 1: + if (!IsDma3ManagerBusyWithBgCopy()) + { + sub_81019B0(1, 2); + gUnknown_203ACEC->unk0++; + } + break; + case 2: + if (!sub_8101A10()) + { + sub_8101F04(); + sub_810224C(); + sub_8102394(); + gUnknown_203ACEC->unk0++; + return FALSE; + } + break; + case 3: + return FALSE; + } + + return TRUE; +} + +bool8 sub_8100A78(void) +{ + switch (gUnknown_203ACEC->unk0) + { + case 0: + sub_8101410(); + gUnknown_203ACEC->unk0++; + break; + case 1: + if (!IsDma3ManagerBusyWithBgCopy()) + { + sub_81019B0(-1, 2); + gUnknown_203ACEC->unk0++; + } + break; + case 2: + if (!sub_8101A10()) + { + sub_810224C(); + sub_8102394(); + gUnknown_203ACEC->unk0++; + return FALSE; + } + break; + case 3: + return FALSE; + } + + return TRUE; +} + +bool8 sub_8100AE8(void) +{ + switch (gUnknown_203ACEC->unk0) + { + case 0: + sub_8101434(); + gUnknown_203ACEC->unk0++; + break; + case 1: + if (!IsDma3ManagerBusyWithBgCopy()) + { + s16 var0 = sub_80FFE48() - sub_8101A48(); + sub_81019B0(var0, 4); + gUnknown_203ACEC->unk0++; + } + break; + case 2: + if (!sub_8101A10()) + { + sub_8101F04(); + sub_810224C(); + sub_8102394(); + gUnknown_203ACEC->unk0++; + return FALSE; + } + break; + case 3: + return FALSE; + } + + return TRUE; +} + +bool8 sub_8100B70(void) +{ + switch (gUnknown_203ACEC->unk0) + { + case 0: + sub_8101478(); + gUnknown_203ACEC->unk0++; + break; + case 1: + if (!IsDma3ManagerBusyWithBgCopy()) + { + s16 var0 = sub_80FFE48() - sub_8101A48(); + sub_81019B0(var0, 4); + gUnknown_203ACEC->unk0++; + } + break; + case 2: + if (!sub_8101A10()) + { + sub_810224C(); + sub_8102394(); + gUnknown_203ACEC->unk0++; + return FALSE; + } + break; + case 3: + return FALSE; + } + + return TRUE; +} diff --git a/src/graphics.c b/src/graphics.c index eaa49247c..b0712ca8a 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -1216,8 +1216,8 @@ const u16 gHoennTrainerCard_Pal[] = INCBIN_U16("graphics/trainer_card/0star_em.g const u32 gHoennTrainerCard_Gfx[] = INCBIN_U32("graphics/trainer_card/card_em.4bpp.lz"); const u16 gUnknown_8E99D8C[] = INCBIN_U16("graphics/link_rfu/unk_8E99DAC.gbapal"); -const u32 gUnknown_8E99DAC[] = INCBIN_U32("graphics/link_rfu/unk_8E99DAC.4bpp.lz"); -const u32 gUnknown_8E99E74[] = INCBIN_U32("graphics/link_rfu/unk_8E99E74.bin.lz"); +const u32 gEasyChatWindow_Gfx[] = INCBIN_U32("graphics/link_rfu/unk_8E99DAC.4bpp.lz"); +const u32 gEasyChatWindow_Tilemap[] = INCBIN_U32("graphics/link_rfu/unk_8E99E74.bin.lz"); const u16 gUnknown_8E99F24[] = INCBIN_U16("graphics/link_rfu/unk_8E9A168.gbapal"); const u32 gUnknown_8E99F44[] = INCBIN_U32("graphics/link_rfu/unk_8E99F44.4bpp.lz"); diff --git a/sym_ewram.txt b/sym_ewram.txt index 6464b9b75..ea2b7b749 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -314,14 +314,9 @@ gUnknown_203998C: @ 203998C .align 2 .include "src/link_rfu_3.o" .align 2 - - @ .include "src/easy_chat_2.o" -sEasyChatScreen: @ 203ACE8 - .space 0x4 - -gUnknown_203ACEC: @ 203ACEC - .space 0x4 - + .include "src/easy_chat_2.o" + .align 2 + .include "src/easy_chat_3.o" .align 2 .include "src/pokedex_screen.o" .align 2 |