diff options
author | Seth Barberee <seth.barberee@gmail.com> | 2021-05-23 16:19:35 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-23 16:19:35 -0500 |
commit | eaa141c612dd1689936a21bd57018a55ff686b69 (patch) | |
tree | fafe2a9a562af6a8e36716ff76a5b3e8b30d4411 /asm/code_801DCC4.s | |
parent | f402e46cd3c8b7236673d6edbae77903a7cc0618 (diff) |
Keep on keepin on (#38)
* end of may dump of work
* move save text to src
* decomp a little more
Diffstat (limited to 'asm/code_801DCC4.s')
-rw-r--r-- | asm/code_801DCC4.s | 833 |
1 files changed, 833 insertions, 0 deletions
diff --git a/asm/code_801DCC4.s b/asm/code_801DCC4.s new file mode 100644 index 0000000..ed678b6 --- /dev/null +++ b/asm/code_801DCC4.s @@ -0,0 +1,833 @@ + .include "constants/gba_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_801E198 +sub_801E198: + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _0801E210 + movs r0, 0xAC + movs r1, 0x8 + bl MemoryAlloc + str r0, [r4] + stm r0!, {r5} + bl sub_801317C + ldr r1, [r4] + movs r0, 0 + str r0, [r1, 0x44] + adds r0, r1, 0 + adds r0, 0x4C + str r0, [r1, 0x48] + bl sub_8006518 + ldr r1, [r4] + ldr r2, [r1, 0x44] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r1, 0x4C + ldr r0, _0801E214 + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + ldr r0, [r4] + ldr r0, [r0, 0x48] + movs r1, 0x1 + bl sub_8012D08 + bl ResetUnusedInputStruct + ldr r0, [r4] + adds r0, 0x4C + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r1, [r4] + adds r0, r1, 0 + adds r0, 0x10 + ldr r3, [r1, 0x44] + movs r1, 0x1 + movs r2, 0x1 + bl sub_8013818 + bl nullsub_38 + bl CreateOptionsMenu + movs r0, 0x1 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_0801E210: .4byte gUnknown_203B260 +_0801E214: .4byte gUnknown_80DC03C + thumb_func_end sub_801E198 + + thumb_func_start sub_801E218 +sub_801E218: + push {r4,lr} + movs r4, 0 + bl sub_8012AE8 + cmp r0, 0x2 + beq _0801E238 + cmp r0, 0x2 + bgt _0801E22E + cmp r0, 0x1 + beq _0801E242 + b _0801E294 +_0801E22E: + cmp r0, 0x9 + beq _0801E24C + cmp r0, 0xA + beq _0801E26C + b _0801E294 +_0801E238: + movs r0, 0x1 + bl PlayMenuSoundEffect + movs r0, 0x2 + b _0801E2BE +_0801E242: + movs r0, 0 + bl PlayMenuSoundEffect + movs r0, 0x3 + b _0801E2BE +_0801E24C: + ldr r0, _0801E264 + ldr r1, [r0] + movs r2, 0x28 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _0801E294 + ldr r1, [r1] + ldrb r0, [r1, 0x8] + cmp r0, 0 + bne _0801E268 + movs r0, 0x2 + b _0801E28A + .align 2, 0 +_0801E264: .4byte gUnknown_203B260 +_0801E268: + subs r0, 0x1 + b _0801E28A +_0801E26C: + ldr r0, _0801E284 + ldr r1, [r0] + movs r2, 0x28 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _0801E294 + ldr r1, [r1] + ldrb r0, [r1, 0x8] + cmp r0, 0x1 + bls _0801E288 + strb r4, [r1, 0x8] + b _0801E28C + .align 2, 0 +_0801E284: .4byte gUnknown_203B260 +_0801E288: + adds r0, 0x1 +_0801E28A: + strb r0, [r1, 0x8] +_0801E28C: + movs r0, 0x3 + bl PlayMenuSoundEffect + movs r4, 0x1 +_0801E294: + ldr r0, _0801E2B8 + ldr r0, [r0] + adds r0, 0x10 + movs r1, 0x1 + bl sub_80138B8 + lsls r0, 24 + cmp r0, 0 + bne _0801E2AA + cmp r4, 0x1 + bne _0801E2BC +_0801E2AA: + bl nullsub_38 + bl CreateOptionsMenu + movs r0, 0x1 + b _0801E2BE + .align 2, 0 +_0801E2B8: .4byte gUnknown_203B260 +_0801E2BC: + movs r0, 0 +_0801E2BE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_801E218 + + thumb_func_start sub_801E2C4 +sub_801E2C4: + push {r4,r5,lr} + ldr r4, _0801E304 + ldr r2, [r4] + cmp r2, 0 + beq _0801E2FE + ldr r0, [r2, 0x44] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 3 + adds r1, r2, r1 + adds r1, 0x4C + ldr r0, _0801E308 + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + bl ResetUnusedInputStruct + ldr r0, [r4] + adds r0, 0x4C + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r0, [r4] + bl MemoryFree + movs r0, 0 + str r0, [r4] +_0801E2FE: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0801E304: .4byte gUnknown_203B260 +_0801E308: .4byte gUnknown_80DC020 + thumb_func_end sub_801E2C4 + + thumb_func_start nullsub_38 +nullsub_38: + bx lr + thumb_func_end nullsub_38 + + thumb_func_start CreateOptionsMenu +CreateOptionsMenu: + push {r4-r6,lr} + sub sp, 0x4 + ldr r5, _0801E368 + ldr r0, [r5] + ldr r0, [r0, 0x44] + bl sub_8008C54 + ldr r0, [r5] + ldr r0, [r0, 0x44] + bl sub_80073B8 + ldr r2, _0801E36C + ldr r0, [r5] + ldr r3, [r0, 0x44] + movs r4, 0 + str r4, [sp] + movs r0, 0x10 + movs r1, 0 + bl xxx_call_draw_string + ldr r0, [r5] + adds r0, 0x10 + movs r1, 0 + bl sub_8013800 + adds r6, r0, 0 + ldr r2, _0801E370 + ldr r0, [r5] + ldr r3, [r0, 0x44] + str r4, [sp] + movs r0, 0x8 + adds r1, r6, 0 + bl xxx_call_draw_string + ldr r0, [r5] + ldr r0, [r0] + ldrb r0, [r0, 0x8] + cmp r0, 0x1 + beq _0801E384 + cmp r0, 0x1 + bgt _0801E374 + cmp r0, 0 + beq _0801E37A + b _0801E3D6 + .align 2, 0 +_0801E368: .4byte gUnknown_203B260 +_0801E36C: .4byte gWindowBGTitle +_0801E370: .4byte gUnknown_80DC064 +_0801E374: + cmp r0, 0x2 + beq _0801E3B0 + b _0801E3D6 +_0801E37A: + ldr r0, _0801E380 + b _0801E386 + .align 2, 0 +_0801E380: .4byte gWindowBGBlueString +_0801E384: + ldr r0, _0801E3AC +_0801E386: + bl sub_8008ED0 + adds r4, r0, 0 + ldr r1, [r5] + ldr r0, [r1, 0x44] + ldr r1, [r1] + ldrb r2, [r1, 0x8] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, 0x50 + adds r2, r6, 0 + adds r2, 0xA + movs r3, 0x7 + str r3, [sp] + adds r3, r4, 0 + bl sub_80078A4 + b _0801E3D6 + .align 2, 0 +_0801E3AC: .4byte gWindowBGRedString +_0801E3B0: + ldr r0, _0801E3E8 + bl sub_8008ED0 + adds r4, r0, 0 + ldr r1, [r5] + ldr r0, [r1, 0x44] + ldr r1, [r1] + ldrb r2, [r1, 0x8] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, 0x50 + adds r2, r6, 0 + adds r2, 0xA + movs r3, 0x7 + str r3, [sp] + adds r3, r4, 0 + bl sub_80078A4 +_0801E3D6: + ldr r0, _0801E3EC + ldr r0, [r0] + ldr r0, [r0, 0x44] + bl sub_80073E0 + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0801E3E8: .4byte gWindowBGGreenString +_0801E3EC: .4byte gUnknown_203B260 + thumb_func_end CreateOptionsMenu + + thumb_func_start sub_801E3F0 +sub_801E3F0: + push {r4-r6,lr} + adds r5, r0, 0 + ldr r4, _0801E46C + ldr r0, [r4] + cmp r0, 0 + bne _0801E406 + movs r0, 0x9C + movs r1, 0x8 + bl MemoryAlloc + str r0, [r4] +_0801E406: + ldr r0, [r4] + str r5, [r0, 0x34] + lsls r1, r5, 1 + adds r1, r5 + lsls r1, 3 + adds r1, 0x3C + adds r1, r0, r1 + str r1, [r0, 0x38] + adds r0, 0x3C + bl sub_8006518 + ldr r1, [r4] + ldr r2, [r1, 0x34] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r1, 0x3C + ldr r0, _0801E470 + ldm r0!, {r2,r3,r6} + stm r1!, {r2,r3,r6} + ldm r0!, {r2,r3,r6} + stm r1!, {r2,r3,r6} + ldr r0, [r4] + ldr r0, [r0, 0x38] + movs r1, 0xA + bl sub_8012D08 + bl ResetUnusedInputStruct + ldr r0, [r4] + adds r0, 0x3C + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r0, [r4] + movs r1, 0x5 + movs r2, 0xA + adds r3, r5, 0 + bl sub_8013818 + bl sub_801E594 + bl sub_801E5E8 + movs r0, 0x1 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0801E46C: .4byte gUnknown_203B264 +_0801E470: .4byte gUnknown_80DC0BC + thumb_func_end sub_801E3F0 + + thumb_func_start sub_801E474 +sub_801E474: + push {lr} + lsls r0, 24 + cmp r0, 0 + bne _0801E48C + ldr r0, _0801E488 + ldr r0, [r0] + bl sub_8013660 + movs r0, 0 + b _0801E4EE + .align 2, 0 +_0801E488: .4byte gUnknown_203B264 +_0801E48C: + ldr r0, _0801E4A4 + ldr r0, [r0] + bl GetKeyPress + cmp r0, 0x2 + beq _0801E4AE + cmp r0, 0x2 + bgt _0801E4A8 + cmp r0, 0x1 + beq _0801E4B8 + b _0801E4CC + .align 2, 0 +_0801E4A4: .4byte gUnknown_203B264 +_0801E4A8: + cmp r0, 0x4 + beq _0801E4C2 + b _0801E4CC +_0801E4AE: + movs r0, 0x1 + bl PlayMenuSoundEffect + movs r0, 0x2 + b _0801E4EE +_0801E4B8: + movs r0, 0 + bl PlayMenuSoundEffect + movs r0, 0x3 + b _0801E4EE +_0801E4C2: + movs r0, 0x4 + bl PlayMenuSoundEffect + movs r0, 0x4 + b _0801E4EE +_0801E4CC: + ldr r0, _0801E4E0 + ldr r0, [r0] + movs r1, 0x1 + bl sub_80138B8 + lsls r0, 24 + cmp r0, 0 + bne _0801E4E4 + movs r0, 0 + b _0801E4EE + .align 2, 0 +_0801E4E0: .4byte gUnknown_203B264 +_0801E4E4: + bl sub_801E594 + bl sub_801E5E8 + movs r0, 0x1 +_0801E4EE: + pop {r1} + bx r1 + thumb_func_end sub_801E474 + + thumb_func_start sub_801E4F4 +sub_801E4F4: + ldr r0, _0801E50C + ldr r1, [r0] + movs r0, 0x1E + ldrsh r2, [r1, r0] + movs r3, 0x1C + ldrsh r0, [r1, r3] + muls r0, r2 + movs r2, 0x18 + ldrsh r1, [r1, r2] + adds r0, r1 + bx lr + .align 2, 0 +_0801E50C: .4byte gUnknown_203B264 + thumb_func_end sub_801E4F4 + + thumb_func_start sub_801E510 +sub_801E510: + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl ResetUnusedInputStruct + ldr r5, _0801E548 + ldr r0, [r5] + adds r0, 0x3C + movs r1, 0 + movs r2, 0 + bl sub_800641C + ldr r0, [r5] + bl sub_8013984 + bl sub_801E594 + bl sub_801E5E8 + cmp r4, 0 + beq _0801E542 + ldr r0, [r5] + bl AddMenuCursorSprite +_0801E542: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0801E548: .4byte gUnknown_203B264 + thumb_func_end sub_801E510 + + thumb_func_start sub_801E54C +sub_801E54C: + push {r4,r5,lr} + ldr r4, _0801E58C + ldr r2, [r4] + cmp r2, 0 + beq _0801E586 + ldr r0, [r2, 0x34] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 3 + adds r1, r2, r1 + adds r1, 0x3C + ldr r0, _0801E590 + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + bl ResetUnusedInputStruct + ldr r0, [r4] + adds r0, 0x3C + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r0, [r4] + bl MemoryFree + movs r0, 0 + str r0, [r4] +_0801E586: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0801E58C: .4byte gUnknown_203B264 +_0801E590: .4byte gUnknown_80DC0A0 + thumb_func_end sub_801E54C + + thumb_func_start sub_801E594 +sub_801E594: + push {r4,lr} + ldr r4, _0801E5E4 + ldr r0, [r4] + movs r1, 0x1A + ldrsh r0, [r0, r1] + movs r1, 0xC + bl sub_80095E4 + adds r0, 0x2 + lsls r0, 16 + ldr r2, [r4] + ldr r3, [r2, 0x34] + lsls r1, r3, 1 + adds r1, r3 + lsls r1, 3 + adds r1, r2, r1 + adds r1, 0x4A + asrs r3, r0, 16 + lsrs r0, 16 + strh r0, [r1] + ldr r1, [r2, 0x34] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r2, r0 + adds r3, 0x2 + adds r2, 0x4C + strh r3, [r2] + bl ResetUnusedInputStruct + ldr r0, [r4] + adds r0, 0x3C + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801E5E4: .4byte gUnknown_203B264 + thumb_func_end sub_801E594 + + thumb_func_start sub_801E5E8 +sub_801E5E8: + push {r4-r6,lr} + sub sp, 0x4 + ldr r4, _0801E64C + ldr r0, [r4] + ldr r0, [r0, 0x34] + bl sub_8008C54 + ldr r0, [r4] + ldr r0, [r0, 0x34] + bl sub_80073B8 + ldr r2, _0801E650 + ldr r0, [r4] + ldr r3, [r0, 0x34] + movs r0, 0 + str r0, [sp] + movs r0, 0x10 + movs r1, 0 + bl xxx_call_draw_string + movs r5, 0 + adds r6, r4, 0 + ldr r4, _0801E654 +_0801E616: + ldr r0, [r6] + adds r1, r5, 0 + bl sub_8013800 + adds r1, r0, 0 + ldr r2, [r4] + ldr r0, [r6] + ldr r3, [r0, 0x34] + movs r0, 0 + str r0, [sp] + movs r0, 0xA + bl xxx_call_draw_string + adds r4, 0x8 + adds r5, 0x1 + cmp r5, 0x4 + ble _0801E616 + ldr r0, _0801E64C + ldr r0, [r0] + ldr r0, [r0, 0x34] + bl sub_80073E0 + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0801E64C: .4byte gUnknown_203B264 +_0801E650: .4byte gUnknown_80DC0D4 +_0801E654: .4byte gUnknown_80DAA98 + thumb_func_end sub_801E5E8 + + thumb_func_start sub_801E658 +sub_801E658: + push {r4-r6,lr} + adds r5, r0, 0 + ldr r4, _0801E6C4 + movs r0, 0xA0 + movs r1, 0x8 + bl MemoryAlloc + str r0, [r4] + movs r1, 0 + str r1, [r0, 0x34] + adds r1, r0, 0 + adds r1, 0x3C + str r1, [r0, 0x38] + adds r0, r1, 0 + bl sub_8006518 + ldr r1, [r4] + ldr r2, [r1, 0x34] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r1, 0x3C + ldr r0, _0801E6C8 + ldm r0!, {r2,r3,r6} + stm r1!, {r2,r3,r6} + ldm r0!, {r2,r3,r6} + stm r1!, {r2,r3,r6} + ldr r0, [r4] + ldr r1, [r0, 0x38] + adds r0, 0x9C + str r0, [r1, 0x14] + bl ResetUnusedInputStruct + ldr r0, [r4] + adds r0, 0x3C + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r0, [r4] + ldr r3, [r0, 0x34] + movs r1, 0x5 + movs r2, 0x1 + bl sub_8013818 + ldr r0, [r4] + strh r5, [r0, 0x1E] + bl sub_801E714 + movs r0, 0x1 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0801E6C4: .4byte gUnknown_203B268 +_0801E6C8: .4byte gUnknown_80DC0FC + thumb_func_end sub_801E658 + + thumb_func_start sub_801E6CC +sub_801E6CC: + push {r4,lr} + ldr r4, _0801E6E8 + ldr r0, [r4] + bl GetKeyPress + cmp r0, 0x1 + beq _0801E6EC + cmp r0, 0x2 + bne _0801E6F6 + movs r0, 0x1 + bl PlayMenuSoundEffect + movs r0, 0x2 + b _0801E70C + .align 2, 0 +_0801E6E8: .4byte gUnknown_203B268 +_0801E6EC: + movs r0, 0 + bl PlayMenuSoundEffect + movs r0, 0x3 + b _0801E70C +_0801E6F6: + ldr r0, [r4] + bl sub_8013938 + lsls r0, 24 + cmp r0, 0 + bne _0801E706 + movs r0, 0 + b _0801E70C +_0801E706: + bl sub_801E714 + movs r0, 0x1 +_0801E70C: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_801E6CC + + thumb_func_start sub_801E714 +sub_801E714: + push {lr} + bl sub_801E76C + bl sub_801E7AC + pop {r0} + bx r0 + thumb_func_end sub_801E714 + + thumb_func_start sub_801E724 +sub_801E724: + push {r4,r5,lr} + ldr r4, _0801E764 + ldr r2, [r4] + cmp r2, 0 + beq _0801E75E + ldr r0, [r2, 0x34] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 3 + adds r1, r2, r1 + adds r1, 0x3C + ldr r0, _0801E768 + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + bl ResetUnusedInputStruct + ldr r0, [r4] + adds r0, 0x3C + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r0, [r4] + bl MemoryFree + movs r0, 0 + str r0, [r4] +_0801E75E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0801E764: .4byte gUnknown_203B268 +_0801E768: .4byte gUnknown_80DC0E4 + thumb_func_end sub_801E724 + + thumb_func_start sub_801E76C +sub_801E76C: + push {r4,lr} + ldr r4, _0801E7A8 + ldr r0, [r4] + ldrh r1, [r0, 0x20] + adds r0, 0x9C + movs r2, 0 + strb r1, [r0] + ldr r0, [r4] + ldrh r1, [r0, 0x1E] + adds r0, 0x9D + strb r1, [r0] + ldr r0, [r4] + adds r0, 0x9E + movs r1, 0xF + strb r1, [r0] + ldr r0, [r4] + adds r0, 0x9F + strb r2, [r0] + bl ResetUnusedInputStruct + ldr r0, [r4] + adds r0, 0x3C + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801E7A8: .4byte gUnknown_203B268 + thumb_func_end sub_801E76C + + thumb_func_start sub_801E7AC +sub_801E7AC: + push {r4-r6,lr} + sub sp, 0x4 + ldr r5, _0801E804 + ldr r0, [r5] + ldr r0, [r0, 0x34] + bl sub_80073B8 + ldr r3, [r5] + movs r0, 0x1E + ldrsh r1, [r3, r0] + lsls r1, 3 + adds r0, r1, 0 + adds r0, 0x10 + ldr r4, _0801E808 + adds r1, r4 + ldr r2, [r1] + ldr r3, [r3, 0x34] + movs r6, 0 + str r6, [sp] + movs r1, 0 + bl xxx_call_draw_string + ldr r1, [r5] + movs r2, 0x1E + ldrsh r0, [r1, r2] + lsls r0, 3 + adds r4, 0x4 + adds r0, r4 + ldr r2, [r0] + ldr r3, [r1, 0x34] + str r6, [sp] + movs r0, 0xA + movs r1, 0x14 + bl xxx_call_draw_string + ldr r0, [r5] + ldr r0, [r0, 0x34] + bl sub_80073E0 + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0801E804: .4byte gUnknown_203B268 +_0801E808: .4byte gUnknown_80DAA98 + thumb_func_end sub_801E7AC + + .align 2,0 |