diff options
author | Seth Barberee <seth.barberee@gmail.com> | 2021-02-07 19:10:12 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-07 21:10:12 -0600 |
commit | 8dfd044ef3a6ea8da204265b4560716aa67391d1 (patch) | |
tree | 15274fab1fd9b1d4e477bbfddbfb855ade1eabeb /asm/code_803C1D0.s | |
parent | 74daf03fd70e7c71b92390c9133c9dd543bcb28d (diff) |
Some Personality and data (#26)
* decomp few personality funcs and clean up some pointers in the dungeon data
* de-pointer-ify friend area dialogue
* clean pointers on a personality test question
* decomp a few more main menu funcs and dump some more data
* label some funcs
Diffstat (limited to 'asm/code_803C1D0.s')
-rw-r--r-- | asm/code_803C1D0.s | 663 |
1 files changed, 663 insertions, 0 deletions
diff --git a/asm/code_803C1D0.s b/asm/code_803C1D0.s new file mode 100644 index 0000000..c40c6f7 --- /dev/null +++ b/asm/code_803C1D0.s @@ -0,0 +1,663 @@ + .include "constants/gba_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_803C1D0 +sub_803C1D0: + push {lr} + lsls r1, 24 + lsrs r1, 24 + bl sub_803C1B4 + adds r1, r0, 0 + lsrs r0, r1, 31 + adds r0, r1, r0 + asrs r1, r0, 1 + lsls r0, r1, 24 + lsrs r0, 24 + cmp r0, 0x6 + bls _0803C1EC + movs r0, 0x6 +_0803C1EC: + pop {r1} + bx r1 + thumb_func_end sub_803C1D0 + + thumb_func_start sub_803C1F0 +sub_803C1F0: + lsls r0, 24 + ldr r1, _0803C1FC + lsrs r0, 22 + adds r0, r1 + ldr r0, [r0] + bx lr + .align 2, 0 +_0803C1FC: .4byte gUnknown_80E8BF8 + thumb_func_end sub_803C1F0 + + thumb_func_start sub_803C200 +sub_803C200: + push {lr} + lsls r1, 24 + lsrs r1, 24 + bl sub_803C1B4 + ldr r1, _0803C218 + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + pop {r1} + bx r1 + .align 2, 0 +_0803C218: .4byte gUnknown_80E80A0 + thumb_func_end sub_803C200 + + thumb_func_start sub_803C21C +sub_803C21C: + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r0, 0 + adds r4, r1, 0 + adds r0, r6, 0x4 + ldrb r1, [r6, 0x1] + bl sub_803C1D0 + lsls r0, 24 + lsrs r2, r0, 24 + movs r0, 0 + str r0, [r4, 0x18] + movs r3, 0 + movs r1, 0x2 + adds r0, r4, 0 + adds r0, 0x1E +_0803C23E: + strb r3, [r0] + subs r0, 0x1 + subs r1, 0x1 + cmp r1, 0 + bge _0803C23E + adds r0, r4, 0 + adds r0, 0x20 + movs r1, 0 + strb r1, [r0] + movs r1, 0xA + strb r1, [r4, 0x1F] + ldrb r1, [r6, 0x11] + adds r3, r0, 0 + cmp r1, 0x9 + bhi _0803C354 + lsls r0, r1, 2 + ldr r1, _0803C268 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803C268: .4byte _0803C26C + .align 2, 0 +_0803C26C: + .4byte _0803C294 + .4byte _0803C2A2 + .4byte _0803C2B4 + .4byte _0803C2BE + .4byte _0803C354 + .4byte _0803C2E0 + .4byte _0803C2EE + .4byte _0803C300 + .4byte _0803C30A + .4byte _0803C34A +_0803C294: + movs r0, 0 + strb r0, [r4, 0x16] + adds r1, r2, 0x1 + movs r0, 0x64 + muls r0, r1 + str r0, [r4, 0x18] + b _0803C358 +_0803C2A2: + movs r0, 0x1 + strb r0, [r4, 0x16] + adds r1, r2, 0x1 + movs r0, 0x64 + muls r0, r1 + str r0, [r4, 0x18] + ldrb r0, [r6, 0x12] + strb r0, [r4, 0x1C] + b _0803C358 +_0803C2B4: + movs r0, 0x2 + strb r0, [r4, 0x16] + ldrb r0, [r6, 0x12] + strb r0, [r4, 0x1C] + b _0803C358 +_0803C2BE: + movs r0, 0x3 + strb r0, [r4, 0x16] + ldrb r0, [r6, 0x12] + strb r0, [r4, 0x1C] + adds r5, r6, 0x4 + adds r7, r4, 0 + adds r7, 0x1D +_0803C2CC: + ldrb r1, [r6, 0x1] + adds r0, r5, 0 + adds r2, r7, 0 + bl sub_803C37C + ldrb r0, [r4, 0x1C] + ldrb r1, [r4, 0x1D] + cmp r0, r1 + beq _0803C2CC + b _0803C35A +_0803C2E0: + movs r0, 0 + strb r0, [r4, 0x16] + adds r1, r2, 0x1 + movs r0, 0xC8 + muls r0, r1 + str r0, [r4, 0x18] + b _0803C358 +_0803C2EE: + movs r0, 0x1 + strb r0, [r4, 0x16] + adds r1, r2, 0x1 + movs r0, 0xC8 + muls r0, r1 + str r0, [r4, 0x18] + ldrb r0, [r6, 0x12] + strb r0, [r4, 0x1C] + b _0803C358 +_0803C300: + movs r0, 0x2 + strb r0, [r4, 0x16] + ldrb r0, [r6, 0x12] + strb r0, [r4, 0x1C] + b _0803C358 +_0803C30A: + movs r0, 0x3 + strb r0, [r4, 0x16] + ldrb r0, [r6, 0x12] + strb r0, [r4, 0x1C] + adds r5, r6, 0x4 + adds r7, r4, 0 + adds r7, 0x1D + movs r0, 0x1E + adds r0, r4 + mov r8, r0 +_0803C31E: + ldrb r1, [r6, 0x1] + adds r0, r5, 0 + adds r2, r7, 0 + bl sub_803C37C + ldrb r0, [r4, 0x1C] + ldrb r1, [r4, 0x1D] + cmp r0, r1 + beq _0803C31E +_0803C330: + ldrb r1, [r6, 0x1] + adds r0, r5, 0 + mov r2, r8 + bl sub_803C37C + ldrb r0, [r4, 0x1C] + ldrb r1, [r4, 0x1E] + cmp r0, r1 + beq _0803C330 + ldrb r0, [r4, 0x1D] + cmp r0, r1 + beq _0803C330 + b _0803C35A +_0803C34A: + movs r0, 0x4 + strb r0, [r4, 0x16] + ldrb r0, [r6, 0x13] + strb r0, [r3] + b _0803C358 +_0803C354: + movs r0, 0x5 + strb r0, [r4, 0x16] +_0803C358: + adds r5, r6, 0x4 +_0803C35A: + movs r0, 0xC + ldrsh r1, [r6, r0] + adds r0, r4, 0 + bl sub_808D8E0 + ldrh r0, [r6, 0xC] + strh r0, [r4, 0x14] + ldrb r1, [r6, 0x1] + adds r0, r5, 0 + bl sub_803C200 + str r0, [r4, 0x24] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_803C21C + + thumb_func_start sub_803C37C +sub_803C37C: + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r0, 0 + mov r8, r2 + lsls r1, 24 + lsrs r1, 24 + bl sub_803C1B4 + adds r7, r0, 0 + adds r0, r6, 0 + adds r1, r7, 0 + bl sub_8090910 +_0803C398: + movs r5, 0 + adds r0, r6, 0 + adds r1, r7, 0 + bl sub_8090910 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xEA + bne _0803C3BA + movs r0, 0 + movs r1, 0x47 + movs r2, 0x1 + bl sub_8001784 + negs r1, r0 + orrs r1, r0 + lsrs r5, r1, 31 +_0803C3BA: + cmp r4, 0xEB + bne _0803C3CE + movs r0, 0 + movs r1, 0x47 + movs r2, 0 + bl sub_8001784 + cmp r0, 0 + beq _0803C3CE + movs r5, 0x1 +_0803C3CE: + cmp r5, 0 + bne _0803C398 + mov r0, r8 + strb r4, [r0] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_803C37C + + thumb_func_start sub_803C3E0 +sub_803C3E0: + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x54 + adds r7, r0, 0 + movs r6, 0 + ldr r5, _0803C42C + movs r4, 0 + mov r8, sp +_0803C3F2: + movs r1, 0 + ldrsh r0, [r5, r1] + bl sub_803C110 + lsls r0, 24 + cmp r0, 0 + beq _0803C41A + movs r1, 0x2 + ldrsh r0, [r5, r1] + bl sub_803C110 + lsls r0, 24 + cmp r0, 0 + beq _0803C41A + mov r0, r8 + adds r0, 0x4 + mov r8, r0 + subs r0, 0x4 + stm r0!, {r4} + adds r6, 0x1 +_0803C41A: + adds r5, 0x8 + adds r4, 0x1 + cmp r4, 0x14 + ble _0803C3F2 + ldr r5, _0803C42C + cmp r6, 0 + bne _0803C430 + movs r0, 0 + b _0803C44E + .align 2, 0 +_0803C42C: .4byte gUnknown_80E9920 +_0803C430: + adds r0, r6, 0 + bl RandomCapped + lsls r0, 2 + add r0, sp + ldr r4, [r0] + lsls r0, r4, 3 + adds r5, r0, r5 + ldrh r0, [r5] + strh r0, [r7, 0xC] + ldrh r0, [r5, 0x2] + strh r0, [r7, 0xE] + movs r0, 0x7 + strb r0, [r7, 0x2] + movs r0, 0x1 +_0803C44E: + add sp, 0x54 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_803C3E0 + + thumb_func_start sub_803C45C +sub_803C45C: + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0xB4 + adds r7, r0, 0 + movs r6, 0 + ldr r5, _0803C4CC + movs r4, 0 + mov r8, sp +_0803C46E: + movs r1, 0 + ldrsh r0, [r5, r1] + bl sub_803C110 + lsls r0, 24 + cmp r0, 0 + beq _0803C496 + movs r1, 0x2 + ldrsh r0, [r5, r1] + bl sub_803C110 + lsls r0, 24 + cmp r0, 0 + beq _0803C496 + mov r0, r8 + adds r0, 0x4 + mov r8, r0 + subs r0, 0x4 + stm r0!, {r4} + adds r6, 0x1 +_0803C496: + adds r5, 0xC + adds r4, 0x1 + cmp r4, 0x2C + ble _0803C46E + ldr r5, _0803C4CC + cmp r6, 0 + beq _0803C4E0 + adds r0, r6, 0 + bl RandomCapped + lsls r0, 2 + add r0, sp + ldr r4, [r0] + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 2 + adds r5, r0, r5 + bl Random + movs r1, 0x10 + ands r1, r0 + cmp r1, 0 + beq _0803C4D0 + ldrh r0, [r5] + strh r0, [r7, 0xC] + ldrh r0, [r5, 0x2] + b _0803C4D6 + .align 2, 0 +_0803C4CC: .4byte gUnknown_80E9F8C +_0803C4D0: + ldrh r0, [r5, 0x2] + strh r0, [r7, 0xC] + ldrh r0, [r5] +_0803C4D6: + strh r0, [r7, 0xE] + movs r0, 0x8 + strb r0, [r7, 0x2] + movs r0, 0x1 + b _0803C4E2 +_0803C4E0: + movs r0, 0 +_0803C4E2: + add sp, 0xB4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_803C45C + + thumb_func_start sub_803C4F0 +sub_803C4F0: + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x18 + adds r7, r0, 0 + movs r6, 0 + ldr r5, _0803C55C + movs r4, 0 + mov r8, sp +_0803C502: + movs r1, 0 + ldrsh r0, [r5, r1] + bl sub_803C110 + lsls r0, 24 + cmp r0, 0 + beq _0803C52A + movs r1, 0x2 + ldrsh r0, [r5, r1] + bl sub_803C110 + lsls r0, 24 + cmp r0, 0 + beq _0803C52A + mov r0, r8 + adds r0, 0x4 + mov r8, r0 + subs r0, 0x4 + stm r0!, {r4} + adds r6, 0x1 +_0803C52A: + adds r5, 0x4 + adds r4, 0x1 + cmp r4, 0x5 + ble _0803C502 + ldr r5, _0803C55C + cmp r6, 0 + beq _0803C570 + adds r0, r6, 0 + bl RandomCapped + lsls r0, 2 + add r0, sp + ldr r4, [r0] + lsls r0, r4, 2 + adds r5, r0, r5 + bl Random + movs r1, 0x10 + ands r1, r0 + cmp r1, 0 + beq _0803C560 + ldrh r0, [r5] + strh r0, [r7, 0xC] + ldrh r0, [r5, 0x2] + b _0803C566 + .align 2, 0 +_0803C55C: .4byte gUnknown_80E8168 +_0803C560: + ldrh r0, [r5, 0x2] + strh r0, [r7, 0xC] + ldrh r0, [r5] +_0803C566: + strh r0, [r7, 0xE] + movs r0, 0x9 + strb r0, [r7, 0x2] + movs r0, 0x1 + b _0803C572 +_0803C570: + movs r0, 0 +_0803C572: + add sp, 0x18 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_803C4F0 + + thumb_func_start sub_803C580 +sub_803C580: + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x54 + adds r6, r0, 0 + movs r7, 0 + ldr r5, _0803C5D8 + movs r0, 0x6 + bl sub_80023E4 + lsls r0, 24 + cmp r0, 0 + beq _0803C5D2 + movs r4, 0 + mov r8, sp +_0803C59E: + movs r1, 0 + ldrsh r0, [r5, r1] + bl sub_803C110 + lsls r0, 24 + cmp r0, 0 + beq _0803C5C6 + ldrb r0, [r6, 0x4] + ldrb r1, [r5, 0x2] + bl sub_8091E60 + lsls r0, 24 + cmp r0, 0 + beq _0803C5C6 + mov r0, r8 + adds r0, 0x4 + mov r8, r0 + subs r0, 0x4 + stm r0!, {r4} + adds r7, 0x1 +_0803C5C6: + adds r5, 0x4 + adds r4, 0x1 + cmp r4, 0x14 + ble _0803C59E + cmp r7, 0 + bne _0803C5DC +_0803C5D2: + movs r0, 0 + b _0803C600 + .align 2, 0 +_0803C5D8: .4byte gUnknown_80E8180 +_0803C5DC: + adds r0, r7, 0 + bl RandomCapped + lsls r0, 2 + add r0, sp + ldr r4, [r0] + lsls r1, r4, 2 + ldr r0, _0803C60C + adds r5, r1, r0 + ldrh r0, [r5] + strh r0, [r6, 0xC] + ldrh r0, [r5] + strh r0, [r6, 0xE] + ldrb r0, [r5, 0x2] + strb r0, [r6, 0x10] + movs r0, 0x5 + strb r0, [r6, 0x2] + movs r0, 0x1 +_0803C600: + add sp, 0x54 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0803C60C: .4byte gUnknown_80E8180 + thumb_func_end sub_803C580 + + thumb_func_start sub_803C610 +sub_803C610: + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r4, _0803C660 + add sp, r4 + adds r6, r0, 0 + movs r7, 0 + ldr r4, _0803C664 + movs r5, 0 + mov r8, sp +_0803C624: + movs r1, 0 + ldrsh r0, [r4, r1] + bl sub_803C110 + lsls r0, 24 + cmp r0, 0 + beq _0803C64C + ldrb r0, [r6, 0x4] + ldrb r1, [r4, 0x2] + bl sub_8091E60 + lsls r0, 24 + cmp r0, 0 + beq _0803C64C + mov r0, r8 + adds r0, 0x4 + mov r8, r0 + subs r0, 0x4 + stm r0!, {r5} + adds r7, 0x1 +_0803C64C: + adds r4, 0x4 + adds r5, 0x1 + ldr r0, _0803C668 + cmp r5, r0 + ble _0803C624 + cmp r7, 0 + bne _0803C66C + movs r0, 0 + b _0803C690 + .align 2, 0 +_0803C660: .4byte 0xfffff9f8 +_0803C664: .4byte gUnknown_80E81D4 +_0803C668: .4byte 0x00000181 +_0803C66C: + adds r0, r7, 0 + bl RandomCapped + lsls r0, 2 + add r0, sp + ldr r5, [r0] + lsls r1, r5, 2 + ldr r0, _0803C6A0 + adds r4, r1, r0 + ldrh r0, [r4] + strh r0, [r6, 0xC] + ldrh r0, [r4] + strh r0, [r6, 0xE] + ldrb r0, [r4, 0x2] + strb r0, [r6, 0x10] + movs r0, 0x6 + strb r0, [r6, 0x2] + movs r0, 0x1 +_0803C690: + movs r3, 0xC1 + lsls r3, 3 + add sp, r3 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0803C6A0: .4byte gUnknown_80E81D4 + thumb_func_end sub_803C610 + + .align 2,0 |