diff options
Diffstat (limited to 'asm')
-rw-r--r-- | asm/easy_chat.s | 912 |
1 files changed, 0 insertions, 912 deletions
diff --git a/asm/easy_chat.s b/asm/easy_chat.s index 10536929e..2051e67e1 100644 --- a/asm/easy_chat.s +++ b/asm/easy_chat.s @@ -5,918 +5,6 @@ .text - thumb_func_start sub_811E948 -sub_811E948: @ 811E948 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - bl sub_811E8E4 - mov r8, r0 - cmp r0, 0x3 - beq _0811E9FA - ldr r3, =0xffffff00 - ldr r0, [sp, 0xC] - ands r0, r3 - movs r1, 0x3 - orrs r0, r1 - ldr r2, =0xffff00ff - ands r0, r2 - adds r1, 0xFD - orrs r0, r1 - ldr r1, =0xff00ffff - ands r0, r1 - movs r1, 0xB0 - lsls r1, 12 - orrs r0, r1 - ldr r1, =0x00ffffff - ands r0, r1 - movs r1, 0xE0 - lsls r1, 21 - orrs r0, r1 - str r0, [sp, 0xC] - ldr r0, [sp, 0x10] - ands r0, r3 - movs r1, 0x2 - orrs r0, r1 - ands r0, r2 - movs r1, 0xB0 - lsls r1, 4 - orrs r0, r1 - ldr r1, =0x0000ffff - ands r0, r1 - movs r1, 0xD0 - lsls r1, 14 - orrs r0, r1 - str r0, [sp, 0x10] - add r0, sp, 0xC - bl AddWindow - lsls r0, 16 - lsrs r7, r0, 16 - lsls r4, r7, 24 - lsrs r0, r4, 24 - movs r1, 0x11 - bl FillWindowPixelBuffer - movs r6, 0 - mov r0, r8 - lsls r1, r0, 4 - ldr r0, =gUnknown_08597E6C - adds r5, r1, r0 - ldr r1, =gUnknown_08597E60 - mov r10, r1 - mov r9, r4 -_0811E9C6: - ldr r2, [r5] - lsls r4, r7, 24 - cmp r2, 0 - beq _0811E9EC - mov r1, r8 - lsls r0, r1, 2 - adds r0, r6, r0 - add r0, r10 - ldrb r3, [r0] - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - mov r1, r9 - lsrs r0, r1, 24 - movs r1, 0x1 - bl sub_811D028 -_0811E9EC: - adds r5, 0x4 - adds r6, 0x1 - cmp r6, 0x3 - ble _0811E9C6 - lsrs r0, r4, 24 - bl PutWindowTilemap -_0811E9FA: - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_811E948 - - thumb_func_start sub_811EA28 -sub_811EA28: @ 811EA28 - push {lr} - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x14 - beq _0811EA4E - cmp r0, 0x14 - bgt _0811EA48 - cmp r0, 0x11 - blt _0811EA66 - ldr r0, =0x00000864 @ = FLAG_SYS_GAME_CLEAR - bl FlagGet - b _0811EA60 - .pool -_0811EA48: - cmp r1, 0x15 - beq _0811EA5C - b _0811EA66 -_0811EA4E: - ldr r0, =0x00000866 - bl FlagGet - b _0811EA60 - .pool -_0811EA5C: - bl sub_811F0F8 -_0811EA60: - lsls r0, 24 - lsrs r0, 24 - b _0811EA68 -_0811EA66: - movs r0, 0x1 -_0811EA68: - pop {r1} - bx r1 - thumb_func_end sub_811EA28 - - thumb_func_start EasyChat_GetNumWordsInGroup -EasyChat_GetNumWordsInGroup: @ 811EA6C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - cmp r0, 0 - bne _0811EA84 - movs r0, 0 - bl GetNationalPokedexCount - lsls r0, 16 - lsrs r0, 16 - b _0811EA9A -_0811EA84: - bl sub_811EA28 - lsls r0, 24 - cmp r0, 0 - bne _0811EA92 - movs r0, 0 - b _0811EA9A -_0811EA92: - ldr r0, =gEasyChatGroups - lsls r1, r4, 3 - adds r1, r0 - ldrh r0, [r1, 0x6] -_0811EA9A: - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end EasyChat_GetNumWordsInGroup - - thumb_func_start sub_811EAA4 -sub_811EAA4: @ 811EAA4 - push {r4,r5,lr} - lsls r2, r0, 16 - lsrs r1, r2, 16 - ldr r0, =0x0000ffff - cmp r1, r0 - beq _0811EB04 - lsrs r3, r2, 25 - ldr r5, =0x000001ff - ands r5, r1 - cmp r3, 0x15 - bhi _0811EB08 - ldr r0, =gEasyChatGroups - lsls r2, r3, 3 - adds r1, r2, r0 - ldrh r4, [r1, 0x4] - cmp r3, 0x13 - bgt _0811EADC - cmp r3, 0x12 - bge _0811EAE0 - cmp r3, 0 - beq _0811EAE0 - b _0811EB00 - .pool -_0811EADC: - cmp r3, 0x15 - bne _0811EB00 -_0811EAE0: - adds r0, r2, r0 - ldr r2, [r0] - movs r1, 0 - cmp r1, r4 - bcs _0811EB08 -_0811EAEA: - lsls r0, r1, 1 - adds r0, r2 - ldrh r0, [r0] - cmp r5, r0 - beq _0811EB04 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r4 - bcc _0811EAEA - b _0811EB08 -_0811EB00: - cmp r5, r4 - bcs _0811EB08 -_0811EB04: - movs r0, 0 - b _0811EB0A -_0811EB08: - movs r0, 0x1 -_0811EB0A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_811EAA4 - - thumb_func_start ECWord_CheckIfOutsideOfValidRange -ECWord_CheckIfOutsideOfValidRange: @ 811EB10 - push {lr} - lsls r0, 16 - lsrs r2, r0, 25 - lsls r0, 7 - lsrs r3, r0, 23 - cmp r2, 0x15 - bhi _0811EB5C - cmp r2, 0x13 - bgt _0811EB2C - cmp r2, 0x12 - bge _0811EB3C - cmp r2, 0 - beq _0811EB30 - b _0811EB48 -_0811EB2C: - cmp r2, 0x15 - bne _0811EB48 -_0811EB30: - ldr r0, =gUnknown_085F5490 - ldrh r0, [r0] - b _0811EB50 - .pool -_0811EB3C: - ldr r0, =gUnknown_085FA1D4 - ldrh r0, [r0] - b _0811EB50 - .pool -_0811EB48: - ldr r1, =gEasyChatGroups - lsls r0, r2, 3 - adds r0, r1 - ldrh r0, [r0, 0x4] -_0811EB50: - cmp r0, r3 - bls _0811EB5C - movs r0, 0 - b _0811EB5E - .pool -_0811EB5C: - movs r0, 0x1 -_0811EB5E: - pop {r1} - bx r1 - thumb_func_end ECWord_CheckIfOutsideOfValidRange - - thumb_func_start GetEasyChatWord -@ char *GetEasyChatWord(u8 groupId, u16 wordId) -GetEasyChatWord: @ 811EB64 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r2, r1, 16 - cmp r0, 0x13 - bgt _0811EB7C - cmp r0, 0x12 - bge _0811EB90 - cmp r0, 0 - beq _0811EB80 - b _0811EBA0 -_0811EB7C: - cmp r0, 0x15 - bne _0811EBA0 -_0811EB80: - movs r0, 0xB - muls r0, r2 - ldr r1, =gSpeciesNames - adds r0, r1 - b _0811EBB2 - .pool -_0811EB90: - movs r0, 0xD - muls r0, r2 - ldr r1, =gMoveNames - adds r0, r1 - b _0811EBB2 - .pool -_0811EBA0: - ldr r1, =gEasyChatGroups - lsls r0, 3 - adds r0, r1 - ldr r1, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] -_0811EBB2: - pop {r1} - bx r1 - .pool - thumb_func_end GetEasyChatWord - - thumb_func_start CopyEasyChatWord -@ char *CopyEasyChatWord(char *dest, u16 groupIdWordIdPair) -CopyEasyChatWord: @ 811EBBC - push {r4-r6,lr} - adds r5, r0, 0 - lsls r6, r1, 16 - lsrs r0, r6, 16 - adds r4, r0, 0 - bl sub_811EAA4 - lsls r0, 24 - cmp r0, 0 - beq _0811EBD8 - ldr r1, =gText_ThreeQuestionMarks - b _0811EBEA - .pool -_0811EBD8: - ldr r0, =0x0000ffff - cmp r4, r0 - beq _0811EBFC - ldr r1, =0x000001ff - ands r1, r4 - lsrs r0, r6, 25 - bl GetEasyChatWord - adds r1, r0, 0 -_0811EBEA: - adds r0, r5, 0 - bl StringCopy - b _0811EC02 - .pool -_0811EBFC: - movs r0, 0xFF - strb r0, [r5] - adds r0, r5, 0 -_0811EC02: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end CopyEasyChatWord - - thumb_func_start ConvertEasyChatWordsToString -ConvertEasyChatWordsToString: @ 811EC08 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - lsls r2, 16 - lsls r3, 16 - lsrs r3, 16 - mov r9, r3 - ldr r0, =0xffff0000 - adds r2, r0 - lsrs r7, r2, 16 - movs r0, 0 - cmp r0, r9 - bcs _0811EC78 -_0811EC2A: - movs r6, 0 - adds r0, 0x1 - mov r8, r0 - cmp r6, r7 - bcs _0811EC5C - ldr r2, =0x0000ffff -_0811EC36: - ldrh r1, [r5] - adds r0, r4, 0 - str r2, [sp] - bl CopyEasyChatWord - adds r4, r0, 0 - ldrh r0, [r5] - ldr r2, [sp] - cmp r0, r2 - beq _0811EC50 - movs r0, 0 - strb r0, [r4] - adds r4, 0x1 -_0811EC50: - adds r5, 0x2 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, r7 - bcc _0811EC36 -_0811EC5C: - ldrh r1, [r5] - adds r5, 0x2 - adds r0, r4, 0 - bl CopyEasyChatWord - adds r4, r0, 0 - movs r0, 0xFE - strb r0, [r4] - adds r4, 0x1 - mov r1, r8 - lsls r0, r1, 16 - lsrs r0, 16 - cmp r0, r9 - bcc _0811EC2A -_0811EC78: - subs r4, 0x1 - movs r0, 0xFF - strb r0, [r4] - adds r0, r4, 0 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end ConvertEasyChatWordsToString - - thumb_func_start sub_811EC98 -sub_811EC98: @ 811EC98 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - adds r4, r0, 0 - adds r5, r1, 0 - lsls r2, 16 - lsrs r2, 16 - mov r8, r2 - lsls r3, 16 - lsrs r3, 16 - str r3, [sp] - mov r7, r8 - movs r0, 0 - str r0, [sp, 0x4] - subs r0, r7, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - movs r0, 0 - cmp r0, r3 - bcs _0811ED62 -_0811ECC8: - adds r3, r5, 0 - movs r2, 0 - movs r1, 0 - adds r0, 0x1 - mov r10, r0 - cmp r2, r7 - bcs _0811ECEE - ldr r6, =0x0000ffff -_0811ECD8: - lsls r0, r1, 1 - adds r0, r3 - ldrh r0, [r0] - cmp r0, r6 - beq _0811ECE4 - movs r2, 0x1 -_0811ECE4: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r7 - bcc _0811ECD8 -_0811ECEE: - cmp r2, 0 - bne _0811ECFC - lsls r0, r7, 1 - adds r5, r0 - b _0811ED56 - .pool -_0811ECFC: - movs r6, 0 - ldr r1, [sp, 0x4] - adds r1, 0x1 - mov r9, r1 - cmp r6, r8 - bcs _0811ED30 - ldr r2, =0x0000ffff -_0811ED0A: - ldrh r1, [r5] - adds r0, r4, 0 - str r2, [sp, 0x8] - bl CopyEasyChatWord - adds r4, r0, 0 - ldrh r0, [r5] - ldr r2, [sp, 0x8] - cmp r0, r2 - beq _0811ED24 - movs r0, 0 - strb r0, [r4] - adds r4, 0x1 -_0811ED24: - adds r5, 0x2 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, r8 - bcc _0811ED0A -_0811ED30: - ldrh r1, [r5] - adds r5, 0x2 - adds r0, r4, 0 - bl CopyEasyChatWord - adds r4, r0, 0 - ldr r0, [sp, 0x4] - cmp r0, 0 - bne _0811ED4C - movs r0, 0xFE - b _0811ED4E - .pool -_0811ED4C: - movs r0, 0xFA -_0811ED4E: - strb r0, [r4] - adds r4, 0x1 - mov r1, r9 - str r1, [sp, 0x4] -_0811ED56: - mov r1, r10 - lsls r0, r1, 16 - lsrs r0, 16 - ldr r1, [sp] - cmp r0, r1 - bcc _0811ECC8 -_0811ED62: - subs r4, 0x1 - movs r0, 0xFF - strb r0, [r4] - adds r0, r4, 0 - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_811EC98 - - thumb_func_start sub_811ED7C -sub_811ED7C: @ 811ED7C - push {r4,r5,lr} - lsls r5, r0, 16 - lsrs r0, r5, 16 - adds r4, r0, 0 - ldr r0, =0x0000ffff - cmp r4, r0 - bne _0811ED94 - movs r0, 0 - b _0811EDBA - .pool -_0811ED94: - adds r0, r4, 0 - bl sub_811EAA4 - lsls r0, 24 - cmp r0, 0 - bne _0811EDB0 - ldr r1, =0x000001ff - ands r1, r4 - lsrs r0, r5, 25 - bl GetEasyChatWord - b _0811EDB2 - .pool -_0811EDB0: - ldr r0, =gText_ThreeQuestionMarks -_0811EDB2: - bl StringLength - lsls r0, 16 - lsrs r0, 16 -_0811EDBA: - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_811ED7C - - thumb_func_start sub_811EDC4 -sub_811EDC4: @ 811EDC4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r6, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - lsls r3, 16 - lsrs r3, 16 - mov r10, r3 - movs r7, 0 - cmp r7, r8 - bcs _0811EE26 - subs r0, r1, 0x1 - lsls r0, 16 - mov r9, r0 -_0811EDEE: - mov r0, r9 - lsrs r4, r0, 16 - movs r5, 0 - cmp r5, r1 - bcs _0811EE14 -_0811EDF8: - ldrh r0, [r6] - adds r6, 0x2 - str r1, [sp] - bl sub_811ED7C - adds r0, r4, r0 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, [sp] - cmp r5, r1 - bcc _0811EDF8 -_0811EE14: - cmp r4, r10 - bls _0811EE1C - movs r0, 0x1 - b _0811EE28 -_0811EE1C: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, r8 - bcc _0811EDEE -_0811EE26: - movs r0, 0 -_0811EE28: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_811EDC4 - - thumb_func_start sub_811EE38 -sub_811EE38: @ 811EE38 - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - bl Random - ldr r2, =gEasyChatGroups - lsls r1, r4, 3 - adds r1, r2 - lsls r0, 16 - lsrs r0, 16 - ldrh r1, [r1, 0x4] - bl __umodsi3 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r4, 0 - beq _0811EE66 - cmp r4, 0x15 - beq _0811EE66 - cmp r4, 0x12 - beq _0811EE66 - cmp r4, 0x13 - bne _0811EE74 -_0811EE66: - ldr r1, =gEasyChatGroups - lsls r0, r4, 3 - adds r0, r1 - ldr r1, [r0] - lsls r0, r2, 1 - adds r0, r1 - ldrh r2, [r0] -_0811EE74: - movs r0, 0x7F - ands r0, r4 - lsls r0, 9 - ldr r1, =0x000001ff - ands r2, r1 - orrs r0, r2 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_811EE38 - - thumb_func_start sub_811EE90 -sub_811EE90: @ 811EE90 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - adds r4, r0, 0 - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_811EA28 - lsls r0, 24 - cmp r0, 0 - bne _0811EEB0 - ldr r0, =0x0000ffff - b _0811EEC4 - .pool -_0811EEB0: - cmp r4, 0 - beq _0811EEBC - adds r0, r4, 0 - bl sub_811EE38 - b _0811EEC0 -_0811EEBC: - bl sub_811F108 -_0811EEC0: - lsls r0, 16 - lsrs r0, 16 -_0811EEC4: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_811EE90 - - thumb_func_start sub_811EECC -sub_811EECC: @ 811EECC - push {r4,r5,lr} - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r0, 0x1 - beq _0811EF04 - cmp r0, 0x1 - bgt _0811EEE4 - cmp r0, 0 - beq _0811EEEE - b _0811EF58 - .pool -_0811EEE4: - cmp r0, 0x2 - beq _0811EF2C - cmp r0, 0x3 - beq _0811EF3C - b _0811EF58 -_0811EEEE: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00002bb0 - adds r5, r0, r1 - movs r2, 0x2 - b _0811EF46 - .pool -_0811EF04: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00002bbc - adds r5, r0, r1 - adds r0, r5, 0 - movs r1, 0x3 - movs r2, 0x2 - movs r3, 0x12 - bl sub_811EDC4 - lsls r0, 24 - cmp r0, 0 - beq _0811EF44 - movs r2, 0x2 - movs r3, 0x3 - b _0811EF48 - .pool -_0811EF2C: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00002bc8 - b _0811EF42 - .pool -_0811EF3C: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00002bd4 -_0811EF42: - adds r5, r0, r1 -_0811EF44: - movs r2, 0x3 -_0811EF46: - movs r3, 0x2 -_0811EF48: - ldr r4, =gStringVar4 - adds r0, r4, 0 - adds r1, r5, 0 - bl ConvertEasyChatWordsToString - adds r0, r4, 0 - bl ShowFieldAutoScrollMessage -_0811EF58: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_811EECC - - thumb_func_start sub_811EF6C -sub_811EF6C: @ 811EF6C - push {lr} - bl Random - movs r1, 0x1 - ands r1, r0 - movs r0, 0xC - cmp r1, 0 - beq _0811EF7E - movs r0, 0xD -_0811EF7E: - bl sub_811EE90 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - ldr r0, =gStringVar2 - bl CopyEasyChatWord - pop {r0} - bx r0 - .pool - thumb_func_end sub_811EF6C - - thumb_func_start sub_811EF98 -sub_811EF98: @ 811EF98 - lsls r0, 24 - lsrs r2, r0, 27 - movs r1, 0xE0 - lsls r1, 19 - ands r1, r0 - lsrs r1, 24 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r3, =0x00002e20 - adds r0, r3 - adds r0, r2 - ldrb r0, [r0] - asrs r0, r1 - movs r1, 0x1 - ands r0, r1 - bx lr - .pool - thumb_func_end sub_811EF98 - - thumb_func_start sub_811EFC0 -sub_811EFC0: @ 811EFC0 - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x20 - bhi _0811EFE4 - lsrs r3, r0, 27 - movs r2, 0x7 - ands r2, r1 - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldr r0, =0x00002e20 - adds r1, r0 - adds r1, r3 - movs r0, 0x1 - lsls r0, r2 - ldrb r2, [r1] - orrs r0, r2 - strb r0, [r1] -_0811EFE4: - pop {r0} - bx r0 - .pool - thumb_func_end sub_811EFC0 - - thumb_func_start sub_811EFF0 -sub_811EFF0: @ 811EFF0 - push {r4,r5,lr} - movs r4, 0 - movs r5, 0 -_0811EFF6: - adds r0, r4, 0 - bl sub_811EF98 - lsls r0, 24 - cmp r0, 0 - beq _0811F008 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_0811F008: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x20 - bls _0811EFF6 - adds r0, r5, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_811EFF0 - thumb_func_start sub_811F01C sub_811F01C: @ 811F01C push {r4-r6,lr} |