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/game_options.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/game_options.s')
-rw-r--r-- | asm/game_options.s | 801 |
1 files changed, 801 insertions, 0 deletions
diff --git a/asm/game_options.s b/asm/game_options.s new file mode 100644 index 0000000..cad1919 --- /dev/null +++ b/asm/game_options.s @@ -0,0 +1,801 @@ + .include "constants/gba_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start GameOptionsNotChange +GameOptionsNotChange: + push {lr} + adds r2, r0, 0 + ldr r0, _08094A38 + ldr r1, [r0] + ldrb r0, [r1, 0x8] + ldrb r3, [r2, 0x8] + cmp r0, r3 + bne _08094A3C + ldrb r0, [r1, 0x9] + ldrb r3, [r2, 0x9] + cmp r0, r3 + bne _08094A3C + ldrb r0, [r1, 0xA] + ldrb r3, [r2, 0xA] + cmp r0, r3 + bne _08094A3C + ldrb r0, [r1, 0xB] + ldrb r3, [r2, 0xB] + cmp r0, r3 + bne _08094A3C + ldrb r0, [r1] + ldrb r3, [r2] + cmp r0, r3 + bne _08094A3C + ldrb r0, [r1, 0x1] + ldrb r3, [r2, 0x1] + cmp r0, r3 + bne _08094A3C + ldrb r0, [r1, 0x2] + ldrb r3, [r2, 0x2] + cmp r0, r3 + bne _08094A3C + ldrb r0, [r1, 0x3] + ldrb r3, [r2, 0x3] + cmp r0, r3 + bne _08094A3C + ldrb r0, [r1, 0x4] + ldrb r3, [r2, 0x4] + cmp r0, r3 + bne _08094A3C + ldrb r0, [r1, 0xC] + ldrb r2, [r2, 0xC] + cmp r0, r2 + bne _08094A3C + movs r0, 0x1 + b _08094A3E + .align 2, 0 +_08094A38: .4byte gUnknown_203B46C +_08094A3C: + movs r0, 0 +_08094A3E: + pop {r1} + bx r1 + thumb_func_end GameOptionsNotChange + + thumb_func_start sub_8094A44 +sub_8094A44: + push {r4-r7,lr} + sub sp, 0x4 + adds r4, r0, 0 + movs r1, 0xFF + mov r0, sp + strb r1, [r0] + mov r7, sp + adds r7, 0x1 + movs r0, 0 + strb r0, [r7] + ldr r5, _08094B14 + ldr r1, [r5] + adds r1, 0x8 + adds r0, r4, 0 + movs r2, 0x2 + bl sub_809488C + ldr r0, [r5] + ldrb r0, [r0, 0x9] + mov r1, sp + adds r6, r7, 0 + cmp r0, 0 + bne _08094A74 + adds r1, r6, 0 +_08094A74: + adds r0, r4, 0 + movs r2, 0x1 + bl sub_809488C + ldr r0, [r5] + ldrb r0, [r0, 0xA] + adds r1, r6, 0 + cmp r0, 0 + beq _08094A88 + mov r1, sp +_08094A88: + adds r0, r4, 0 + movs r2, 0x1 + bl sub_809488C + ldr r0, [r5] + ldrb r0, [r0, 0xB] + adds r1, r6, 0 + cmp r0, 0 + beq _08094A9C + mov r1, sp +_08094A9C: + adds r0, r4, 0 + movs r2, 0x1 + bl sub_809488C + ldr r0, [r5] + ldrb r0, [r0] + adds r1, r6, 0 + cmp r0, 0 + beq _08094AB0 + mov r1, sp +_08094AB0: + adds r0, r4, 0 + movs r2, 0x1 + bl sub_809488C + ldr r0, [r5] + ldrb r0, [r0, 0x1] + adds r1, r6, 0 + cmp r0, 0 + beq _08094AC4 + mov r1, sp +_08094AC4: + adds r0, r4, 0 + movs r2, 0x1 + bl sub_809488C + ldr r0, [r5] + ldrb r0, [r0, 0x2] + adds r1, r6, 0 + cmp r0, 0 + beq _08094AD8 + mov r1, sp +_08094AD8: + adds r0, r4, 0 + movs r2, 0x1 + bl sub_809488C + ldr r0, [r5] + ldrb r0, [r0, 0x3] + adds r1, r7, 0 + cmp r0, 0 + beq _08094AEC + mov r1, sp +_08094AEC: + adds r0, r4, 0 + movs r2, 0x1 + bl sub_809488C + ldr r1, [r5] + adds r1, 0x4 + adds r0, r4, 0 + movs r2, 0x3 + bl sub_809488C + ldr r1, [r5] + adds r1, 0xC + adds r0, r4, 0 + movs r2, 0x2 + bl sub_809488C + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08094B14: .4byte gUnknown_203B46C + thumb_func_end sub_8094A44 + + thumb_func_start sub_8094B18 +sub_8094B18: + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x4 + adds r6, r0, 0 + mov r1, sp + movs r2, 0x2 + bl sub_8094924 + ldr r5, _08094C10 + ldr r2, [r5] + mov r0, sp + ldrb r1, [r0] + movs r0, 0x3 + mov r8, r0 + ands r0, r1 + strb r0, [r2, 0x8] + adds r0, r6, 0 + mov r1, sp + movs r2, 0x1 + bl sub_8094924 + ldr r2, [r5] + mov r0, sp + ldrb r1, [r0] + movs r4, 0x1 + adds r0, r4, 0 + ands r0, r1 + strb r0, [r2, 0x9] + adds r0, r6, 0 + mov r1, sp + movs r2, 0x1 + bl sub_8094924 + ldr r2, [r5] + mov r0, sp + ldrb r1, [r0] + adds r0, r4, 0 + ands r0, r1 + strb r0, [r2, 0xA] + adds r0, r6, 0 + mov r1, sp + movs r2, 0x1 + bl sub_8094924 + ldr r2, [r5] + mov r0, sp + ldrb r1, [r0] + adds r0, r4, 0 + ands r0, r1 + strb r0, [r2, 0xB] + adds r0, r6, 0 + mov r1, sp + movs r2, 0x1 + bl sub_8094924 + ldr r2, [r5] + mov r0, sp + ldrb r1, [r0] + adds r0, r4, 0 + ands r0, r1 + strb r0, [r2] + adds r0, r6, 0 + mov r1, sp + movs r2, 0x1 + bl sub_8094924 + ldr r2, [r5] + mov r0, sp + ldrb r1, [r0] + adds r0, r4, 0 + ands r0, r1 + strb r0, [r2, 0x1] + adds r0, r6, 0 + mov r1, sp + movs r2, 0x1 + bl sub_8094924 + ldr r2, [r5] + mov r0, sp + ldrb r1, [r0] + adds r0, r4, 0 + ands r0, r1 + strb r0, [r2, 0x2] + adds r0, r6, 0 + mov r1, sp + movs r2, 0x1 + bl sub_8094924 + ldr r1, [r5] + mov r0, sp + ldrb r0, [r0] + ands r4, r0 + strb r4, [r1, 0x3] + adds r0, r6, 0 + mov r1, sp + movs r2, 0x3 + bl sub_8094924 + ldr r2, [r5] + mov r0, sp + ldrb r1, [r0] + movs r0, 0x7 + ands r0, r1 + strb r0, [r2, 0x4] + adds r0, r6, 0 + mov r1, sp + movs r2, 0x2 + bl sub_8094924 + ldr r1, [r5] + mov r0, sp + ldrb r0, [r0] + mov r2, r8 + ands r2, r0 + strb r2, [r1, 0xC] + bl sub_8094C14 + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08094C10: .4byte gUnknown_203B46C + thumb_func_end sub_8094B18 + + thumb_func_start sub_8094C14 +sub_8094C14: + push {r4,lr} + sub sp, 0x10 + mov r1, sp + ldr r0, _08094C40 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldr r0, [r0] + str r0, [r1] + ldr r0, _08094C44 + ldr r0, [r0] + ldrb r1, [r0, 0x8] + movs r0, 0x3 + ands r0, r1 + lsls r0, 2 + add r0, sp + ldr r0, [r0] + bl sub_80099F0 + add sp, 0x10 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08094C40: .4byte gUnknown_8109954 +_08094C44: .4byte gUnknown_203B46C + thumb_func_end sub_8094C14 + + thumb_func_start sub_8094C48 +sub_8094C48: + push {lr} + ldr r0, _08094C5C + ldr r0, [r0] + ldrb r0, [r0, 0x4] + cmp r0, 0 + beq _08094C60 + cmp r0, 0x3 + beq _08094C60 + movs r0, 0x1 + b _08094C62 + .align 2, 0 +_08094C5C: .4byte gUnknown_203B46C +_08094C60: + movs r0, 0 +_08094C62: + pop {r1} + bx r1 + thumb_func_end sub_8094C48 + + thumb_func_start sub_8094C68 +sub_8094C68: + push {lr} + ldr r0, _08094C7C + ldr r0, [r0] + ldrb r0, [r0, 0x4] + cmp r0, 0x2 + beq _08094C80 + cmp r0, 0x5 + beq _08094C80 + movs r0, 0x1 + b _08094C82 + .align 2, 0 +_08094C7C: .4byte gUnknown_203B46C +_08094C80: + movs r0, 0 +_08094C82: + pop {r1} + bx r1 + thumb_func_end sub_8094C68 + + thumb_func_start sub_8094C88 +sub_8094C88: + push {lr} + ldr r0, _08094C98 + ldr r1, [r0] + ldrb r0, [r1, 0x4] + cmp r0, 0x2 + bhi _08094C9C + movs r0, 0x1 + b _08094CA8 + .align 2, 0 +_08094C98: .4byte gUnknown_203B46C +_08094C9C: + subs r0, 0x3 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bhi _08094CAA + movs r0, 0x4 +_08094CA8: + strb r0, [r1, 0x4] +_08094CAA: + pop {r0} + bx r0 + thumb_func_end sub_8094C88 + + thumb_func_start sub_8094CB0 +sub_8094CB0: + ldr r1, _08094CBC + strh r1, [r0] + movs r1, 0x1 + negs r1, r1 + strh r1, [r0, 0x2] + bx lr + .align 2, 0 +_08094CBC: .4byte 0x0000ffff + thumb_func_end sub_8094CB0 + + thumb_func_start sub_8094CC0 +sub_8094CC0: + ldr r1, _08094CCC + strh r1, [r0] + movs r1, 0x1 + negs r1, r1 + strh r1, [r0, 0x2] + bx lr + .align 2, 0 +_08094CCC: .4byte 0x0000ffff + thumb_func_end sub_8094CC0 + + thumb_func_start sub_8094CD0 +sub_8094CD0: + ldr r1, _08094CDC + strh r1, [r0] + movs r1, 0x1 + negs r1, r1 + strh r1, [r0, 0x2] + bx lr + .align 2, 0 +_08094CDC: .4byte 0x0000ffff + thumb_func_end sub_8094CD0 + + thumb_func_start sub_8094CE0 +sub_8094CE0: + ldr r1, _08094CEC + strh r1, [r0] + movs r1, 0x1 + negs r1, r1 + strh r1, [r0, 0x2] + bx lr + .align 2, 0 +_08094CEC: .4byte 0x0000ffff + thumb_func_end sub_8094CE0 + + thumb_func_start sub_8094CF0 +sub_8094CF0: + ldr r1, _08094CFC + strh r1, [r0] + movs r1, 0x1 + negs r1, r1 + strh r1, [r0, 0x2] + bx lr + .align 2, 0 +_08094CFC: .4byte 0x0000ffff + thumb_func_end sub_8094CF0 + + thumb_func_start sub_8094D00 +sub_8094D00: + ldr r1, _08094D0C + strh r1, [r0] + movs r1, 0x1 + negs r1, r1 + strh r1, [r0, 0x2] + bx lr + .align 2, 0 +_08094D0C: .4byte 0x0000ffff + thumb_func_end sub_8094D00 + + thumb_func_start sub_8094D10 +sub_8094D10: + movs r0, 0 + bx lr + thumb_func_end sub_8094D10 + + thumb_func_start sub_8094D14 +sub_8094D14: + movs r0, 0 + bx lr + thumb_func_end sub_8094D14 + + thumb_func_start sub_8094D18 +sub_8094D18: + movs r0, 0 + bx lr + thumb_func_end sub_8094D18 + + thumb_func_start sub_8094D1C +sub_8094D1C: + movs r0, 0 + bx lr + thumb_func_end sub_8094D1C + + thumb_func_start sub_8094D20 +sub_8094D20: + movs r0, 0 + bx lr + thumb_func_end sub_8094D20 + + thumb_func_start sub_8094D24 +sub_8094D24: + movs r0, 0 + bx lr + thumb_func_end sub_8094D24 + + thumb_func_start sub_8094D28 +sub_8094D28: + push {r4-r7,lr} + ldr r2, _08094D64 + str r0, [r2] + ldr r1, _08094D68 + movs r0, 0x1 + str r0, [r1] + ldr r7, _08094D6C + adds r5, r2, 0 + adds r4, r1, 0 + ldr r6, _08094D70 +_08094D3C: + ldr r2, [r4] + lsls r3, r2, 2 + adds r3, r5 + subs r0, r2, 0x1 + lsls r0, 2 + adds r0, r5 + ldr r0, [r0] + lsrs r1, r0, 30 + eors r0, r1 + muls r0, r6 + adds r0, r2 + str r0, [r3] + adds r2, 0x1 + str r2, [r4] + cmp r2, r7 + ble _08094D3C + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08094D64: .4byte gUnknown_3001198 +_08094D68: .4byte gUnknown_203B470 +_08094D6C: .4byte 0x0000026f +_08094D70: .4byte 0x6c078965 + thumb_func_end sub_8094D28 + + thumb_func_start sub_8094D74 +sub_8094D74: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + mov r8, r0 + adds r7, r1, 0 + ldr r0, _08094E34 + bl sub_8094D28 + movs r4, 0x1 + movs r5, 0 + adds r3, r7, 0 + movs r0, 0x9C + lsls r0, 2 + cmp r3, r0 + bge _08094D96 + adds r3, r0, 0 +_08094D96: + ldr r6, _08094E38 + cmp r3, 0 + beq _08094DE2 + mov r9, r6 + ldr r0, _08094E3C + adds r0, r6 + mov r12, r0 + adds r2, r6, 0 +_08094DA6: + ldr r1, [r2] + lsrs r0, r1, 30 + eors r1, r0 + ldr r0, _08094E40 + muls r0, r1 + ldr r1, [r2, 0x4] + eors r1, r0 + lsls r0, r5, 2 + add r0, r8 + ldr r0, [r0] + adds r1, r0 + adds r1, r5 + str r1, [r2, 0x4] + adds r2, 0x4 + adds r4, 0x1 + adds r5, 0x1 + ldr r0, _08094E44 + cmp r4, r0 + ble _08094DD6 + mov r1, r12 + ldr r0, [r1] + str r0, [r6] + mov r2, r9 + movs r4, 0x1 +_08094DD6: + cmp r5, r7 + blt _08094DDC + movs r5, 0 +_08094DDC: + subs r3, 0x1 + cmp r3, 0 + bne _08094DA6 +_08094DE2: + ldr r3, _08094E44 + ldr r5, _08094E38 + ldr r0, _08094E3C + adds r0, r5 + mov r8, r0 + lsls r0, r4, 2 + subs r0, 0x4 + adds r2, r0, r5 + ldr r1, _08094E48 + mov r12, r1 + adds r7, r3, 0 +_08094DF8: + ldr r0, [r2] + lsrs r1, r0, 30 + eors r0, r1 + mov r1, r12 + muls r1, r0 + ldr r0, [r2, 0x4] + eors r0, r1 + subs r0, r4 + str r0, [r2, 0x4] + adds r2, 0x4 + adds r4, 0x1 + cmp r4, r7 + ble _08094E1C + mov r1, r8 + ldr r0, [r1] + str r0, [r6] + adds r2, r5, 0 + movs r4, 0x1 +_08094E1C: + subs r3, 0x1 + cmp r3, 0 + bne _08094DF8 + movs r0, 0x80 + lsls r0, 24 + str r0, [r6] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08094E34: .4byte 0x012bd6aa +_08094E38: .4byte gUnknown_3001198 +_08094E3C: .4byte 0x000009bc +_08094E40: .4byte 0x0019660d +_08094E44: .4byte 0x0000026f +_08094E48: .4byte 0x5d588b65 + thumb_func_end sub_8094D74 + + thumb_func_start sub_8094E4C +sub_8094E4C: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r0, _08094F54 + ldr r2, [r0] + ldr r1, _08094F58 + mov r8, r0 + cmp r2, r1 + ble _08094F1C + ldr r0, _08094F5C + cmp r2, r0 + bne _08094E6C + ldr r0, _08094F60 + bl sub_8094D28 +_08094E6C: + movs r3, 0 + ldr r0, _08094F64 + mov r9, r0 + ldr r7, _08094F68 + mov r12, r9 + adds r5, r7, 0 +_08094E78: + ldr r4, [r5] + movs r6, 0x80 + lsls r6, 24 + ands r4, r6 + ldr r0, [r5, 0x4] + ldr r1, _08094F6C + ands r0, r1 + orrs r4, r0 + ldr r1, _08094F70 + adds r0, r3, r1 + lsls r0, 2 + adds r0, r7 + lsrs r2, r4, 1 + ldr r1, [r0] + eors r1, r2 + movs r0, 0x1 + ands r4, r0 + lsls r0, r4, 2 + add r0, r12 + ldr r0, [r0] + eors r1, r0 + stm r5!, {r1} + adds r3, 0x1 + cmp r3, 0xE2 + ble _08094E78 + ldr r5, _08094F74 + cmp r3, r5 + bgt _08094EE6 + ldr r1, _08094F68 + ldr r4, _08094F64 + mov r12, r4 + lsls r0, r3, 2 + adds r2, r0, r1 + ldr r4, _08094F78 + adds r0, r4 + adds r7, r0, r1 +_08094EC0: + ldr r4, [r2] + ands r4, r6 + ldr r0, [r2, 0x4] + ldr r1, _08094F6C + ands r0, r1 + orrs r4, r0 + lsrs r0, r4, 1 + ldm r7!, {r1} + eors r1, r0 + movs r0, 0x1 + ands r4, r0 + lsls r0, r4, 2 + add r0, r12 + ldr r0, [r0] + eors r1, r0 + stm r2!, {r1} + adds r3, 0x1 + cmp r3, r5 + ble _08094EC0 +_08094EE6: + ldr r2, _08094F68 + ldr r0, _08094F7C + adds r3, r2, r0 + ldr r4, [r3] + movs r0, 0x80 + lsls r0, 24 + ands r4, r0 + ldr r0, [r2] + ldr r1, _08094F6C + ands r0, r1 + orrs r4, r0 + movs r1, 0xC6 + lsls r1, 3 + adds r2, r1 + lsrs r0, r4, 1 + ldr r1, [r2] + eors r1, r0 + movs r0, 0x1 + ands r4, r0 + lsls r0, r4, 2 + add r0, r9 + ldr r0, [r0] + eors r1, r0 + str r1, [r3] + movs r0, 0 + mov r4, r8 + str r0, [r4] +_08094F1C: + ldr r2, _08094F68 + mov r0, r8 + ldr r1, [r0] + lsls r0, r1, 2 + adds r0, r2 + ldr r4, [r0] + adds r1, 0x1 + mov r0, r8 + str r1, [r0] + lsrs r0, r4, 11 + eors r4, r0 + lsls r0, r4, 7 + ldr r1, _08094F80 + ands r0, r1 + eors r4, r0 + lsls r0, r4, 15 + ldr r1, _08094F84 + ands r0, r1 + eors r4, r0 + lsrs r0, r4, 18 + eors r4, r0 + adds r0, r4, 0 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08094F54: .4byte gUnknown_203B470 +_08094F58: .4byte 0x0000026f +_08094F5C: .4byte 0x00000271 +_08094F60: .4byte 0x00001571 +_08094F64: .4byte gUnknown_203B474 +_08094F68: .4byte gUnknown_3001198 +_08094F6C: .4byte 0x7fffffff +_08094F70: .4byte 0x0000018d +_08094F74: .4byte 0x0000026e +_08094F78: .4byte 0xfffffc74 +_08094F7C: .4byte 0x000009bc +_08094F80: .4byte 0x9d2c5680 +_08094F84: .4byte 0xefc60000 + thumb_func_end sub_8094E4C + + .align 2,0 |