diff options
author | sceptillion <33798691+sceptillion@users.noreply.github.com> | 2017-12-11 20:56:51 -0800 |
---|---|---|
committer | sceptillion <33798691+sceptillion@users.noreply.github.com> | 2017-12-11 20:56:51 -0800 |
commit | ae3751c57b030d847108d926f7bb6dbeb45307a8 (patch) | |
tree | 1493b8ff6e278048c771336cb1554f8b3febee3a /asm/input.s | |
parent | 2db97dde84bf4f0df87054cf45d813e9071f3760 (diff) |
split input.s
Diffstat (limited to 'asm/input.s')
-rw-r--r-- | asm/input.s | 394 |
1 files changed, 394 insertions, 0 deletions
diff --git a/asm/input.s b/asm/input.s new file mode 100644 index 0000000..7516a30 --- /dev/null +++ b/asm/input.s @@ -0,0 +1,394 @@ + .include "constants/gba_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start InitInput +InitInput: + ldr r0, _08004840 + movs r3, 0 + movs r2, 0 + strh r2, [r0] + strh r2, [r0, 0x2] + strh r2, [r0, 0x4] + strh r2, [r0, 0x6] + ldr r0, _08004844 + strh r2, [r0] + strh r2, [r0, 0x2] + strh r2, [r0, 0x4] + strh r2, [r0, 0x6] + ldr r1, _08004848 + ldr r0, _0800484C + str r0, [r1] + ldr r0, _08004850 + str r2, [r0, 0x20] + ldr r1, _08004854 + strh r1, [r0] + movs r1, 0x1 + negs r1, r1 + strh r1, [r0, 0x2] + strh r1, [r0, 0x4] + strh r1, [r0, 0x6] + strh r1, [r0, 0x1C] + strh r1, [r0, 0x1E] + strh r1, [r0, 0x8] + strh r1, [r0, 0xA] + strh r1, [r0, 0xC] + strh r1, [r0, 0xE] + strh r1, [r0, 0x10] + strh r1, [r0, 0x12] + strh r1, [r0, 0x14] + strh r1, [r0, 0x16] + adds r1, r0, 0 + adds r1, 0x28 + strb r3, [r1] + adds r0, 0x29 + strb r3, [r0] + ldr r0, _08004858 + strh r2, [r0] + strh r2, [r0, 0x2] + bx lr + .align 2, 0 +_08004840: .4byte gUnknown_20255F0 +_08004844: .4byte gUnknown_2025638 +_08004848: .4byte gUnknown_202562C +_0800484C: .4byte 0x004a14c1 +_08004850: .4byte gUnknown_2025600 +_08004854: .4byte 0x0000ffff +_08004858: .4byte gUnknown_2025668 + thumb_func_end InitInput + + thumb_func_start sub_800485C +sub_800485C: + push {r4,r5,lr} + ldr r2, _080048A8 + ldr r1, _080048AC + adds r0, r2, 0 + ldm r0!, {r3-r5} + stm r1!, {r3-r5} + ldr r0, [r0] + str r0, [r1] + movs r3, 0 + movs r0, 0 + strh r0, [r2] + strh r0, [r2, 0x2] + strh r0, [r2, 0x4] + strh r0, [r2, 0x6] + ldr r0, _080048B0 + ldr r1, _080048B4 + strh r1, [r0] + movs r1, 0x1 + negs r1, r1 + strh r1, [r0, 0x2] + strh r1, [r0, 0x4] + strh r1, [r0, 0x6] + strh r1, [r0, 0x8] + strh r1, [r0, 0xA] + strh r1, [r0, 0xC] + strh r1, [r0, 0xE] + strh r1, [r0, 0x10] + strh r1, [r0, 0x12] + strh r1, [r0, 0x14] + strh r1, [r0, 0x16] + adds r1, r0, 0 + adds r1, 0x28 + strb r3, [r1] + adds r0, 0x29 + strb r3, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080048A8: .4byte gUnknown_2025638 +_080048AC: .4byte gUnknown_20255F0 +_080048B0: .4byte gUnknown_2025600 +_080048B4: .4byte 0x0000ffff + thumb_func_end sub_800485C + + thumb_func_start sub_80048B8 +sub_80048B8: + movs r0, 0 + bx lr + thumb_func_end sub_80048B8 + + thumb_func_start sub_80048BC +sub_80048BC: + movs r0, 0 + bx lr + thumb_func_end sub_80048BC + + thumb_func_start sub_80048C0 +sub_80048C0: + movs r0, 0 + bx lr + thumb_func_end sub_80048C0 + + thumb_func_start sub_80048C4 +sub_80048C4: + movs r0, 0 + bx lr + thumb_func_end sub_80048C4 + + thumb_func_start sub_80048C8 +sub_80048C8: + movs r0, 0 + bx lr + thumb_func_end sub_80048C8 + + thumb_func_start sub_80048CC +sub_80048CC: + movs r0, 0 + bx lr + thumb_func_end sub_80048CC + + thumb_func_start sub_80048D0 +sub_80048D0: + ldr r1, _080048E8 + movs r0, 0 + strh r0, [r1, 0x4] + ldr r1, _080048EC + str r0, [r1, 0xC] + strh r0, [r1, 0x8] + ldr r1, _080048F0 + ldr r0, _080048F4 + strh r0, [r1] + strh r0, [r1, 0x2] + bx lr + .align 2, 0 +_080048E8: .4byte gUnknown_20255F0 +_080048EC: .4byte gUnknown_2025648 +_080048F0: .4byte gUnknown_2025668 +_080048F4: .4byte 0x000003e7 + thumb_func_end sub_80048D0 + + thumb_func_start sub_80048F8 +sub_80048F8: + ldr r0, _08004908 + movs r1, 0 + strh r1, [r0, 0x2] + ldr r0, _0800490C + strh r1, [r0, 0x2] + ldr r0, _08004910 + strh r1, [r0, 0x2] + bx lr + .align 2, 0 +_08004908: .4byte gUnknown_20255F0 +_0800490C: .4byte gUnknown_2025638 +_08004910: .4byte gUnknown_2025648 + thumb_func_end sub_80048F8 + + thumb_func_start sub_8004914 +sub_8004914: + ldr r0, _0800494C + movs r1, 0x5 + str r1, [r0, 0x20] + movs r2, 0 + movs r1, 0 + strh r1, [r0, 0x24] + ldr r1, _08004950 + strh r1, [r0] + movs r1, 0x1 + negs r1, r1 + strh r1, [r0, 0x2] + strh r1, [r0, 0x4] + strh r1, [r0, 0x6] + strh r1, [r0, 0x8] + strh r1, [r0, 0xA] + strh r1, [r0, 0xC] + strh r1, [r0, 0xE] + strh r1, [r0, 0x10] + strh r1, [r0, 0x12] + strh r1, [r0, 0x14] + strh r1, [r0, 0x16] + adds r1, r0, 0 + adds r1, 0x28 + strb r2, [r1] + adds r0, 0x29 + strb r2, [r0] + bx lr + .align 2, 0 +_0800494C: .4byte gUnknown_2025600 +_08004950: .4byte 0x0000ffff + thumb_func_end sub_8004914 + + thumb_func_start UpdateInput +UpdateInput: + push {r4-r6,lr} + ldr r4, _08004998 + ldr r5, _0800499C + adds r1, r4, 0 + adds r0, r5, 0 + ldm r0!, {r2,r3,r6} + stm r1!, {r2,r3,r6} + ldr r0, [r0] + str r0, [r1] + adds r0, r5, 0 + bl ReadKeyInput + ldrh r0, [r4] + ldrh r3, [r5] + eors r0, r3 + ands r0, r3 + strh r0, [r5, 0x2] + lsls r0, r3, 16 + lsrs r0, 16 + cmp r0, 0 + beq _080049A8 + ldrh r1, [r5, 0x8] + movs r0, 0xF0 + adds r2, r0, 0 + ands r2, r3 + ands r0, r1 + cmp r0, r2 + bne _080049A0 + ldr r0, [r5, 0xC] + cmp r0, 0x31 + bgt _080049AC + adds r0, 0x1 + str r0, [r5, 0xC] + b _080049AC + .align 2, 0 +_08004998: .4byte gUnknown_2025658 +_0800499C: .4byte gUnknown_2025648 +_080049A0: + strh r2, [r5, 0x8] + movs r0, 0x1 + str r0, [r5, 0xC] + b _080049AC +_080049A8: + str r0, [r5, 0xC] + strh r0, [r5, 0x8] +_080049AC: + ldr r0, _080049C4 + ldr r2, [r0, 0xC] + adds r3, r0, 0 + cmp r2, 0x1 + bne _080049C8 + ldrh r0, [r3, 0x8] + movs r1, 0xF0 + ands r1, r0 + ldrh r0, [r3, 0x2] + orrs r1, r0 + strh r1, [r3, 0x4] + b _080049E0 + .align 2, 0 +_080049C4: .4byte gUnknown_2025648 +_080049C8: + cmp r2, 0x30 + bne _080049DC + movs r0, 0x2B + str r0, [r3, 0xC] + ldrh r1, [r3, 0x8] + movs r0, 0xF0 + ands r0, r1 + ldrh r1, [r3, 0x2] + orrs r0, r1 + b _080049DE +_080049DC: + movs r0, 0 +_080049DE: + strh r0, [r3, 0x4] +_080049E0: + movs r0, 0 + strh r0, [r3, 0x6] + ldrh r1, [r3] + movs r5, 0x2 + adds r0, r5, 0 + ands r0, r1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0 + beq _08004A0C + ldr r0, _08004A08 + ldrh r2, [r0] + movs r4, 0 + ldrsh r1, [r0, r4] + adds r4, r0, 0 + cmp r1, 0x63 + bgt _08004A20 + adds r0, r2, 0x1 + strh r0, [r4] + b _08004A20 + .align 2, 0 +_08004A08: .4byte gUnknown_2025668 +_08004A0C: + ldr r1, _08004A44 + ldrh r0, [r1] + subs r0, 0x2 + lsls r0, 16 + lsrs r0, 16 + adds r4, r1, 0 + cmp r0, 0x9 + bhi _08004A1E + strh r5, [r3, 0x6] +_08004A1E: + strh r2, [r4] +_08004A20: + ldrh r1, [r3] + movs r5, 0x80 + lsls r5, 1 + adds r0, r5, 0 + ands r0, r1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0 + beq _08004A48 + ldrh r1, [r4, 0x2] + movs r6, 0x2 + ldrsh r0, [r4, r6] + cmp r0, 0x63 + bgt _08004A5E + adds r0, r1, 0x1 + strh r0, [r4, 0x2] + b _08004A5E + .align 2, 0 +_08004A44: .4byte gUnknown_2025668 +_08004A48: + ldrh r0, [r4, 0x2] + subs r0, 0x2 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x9 + bhi _08004A5C + ldrh r1, [r3, 0x6] + adds r0, r5, 0 + orrs r0, r1 + strh r0, [r3, 0x6] +_08004A5C: + strh r2, [r4, 0x2] +_08004A5E: + ldr r2, _08004A94 + ldrh r0, [r2] + ldrh r1, [r3] + orrs r0, r1 + strh r0, [r2] + ldrh r0, [r2, 0x2] + ldrh r1, [r3, 0x2] + orrs r0, r1 + strh r0, [r2, 0x2] + ldrh r0, [r2, 0x4] + ldrh r1, [r3, 0x4] + orrs r0, r1 + strh r0, [r2, 0x4] + ldrh r0, [r2, 0x6] + ldrh r1, [r3, 0x6] + orrs r0, r1 + strh r0, [r2, 0x6] + ldr r2, _08004A98 + ldrh r0, [r3] + ldr r1, _08004A9C + orrs r0, r1 + ldr r1, [r2] + muls r0, r1 + str r0, [r2] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08004A94: .4byte gUnknown_2025638 +_08004A98: .4byte gUnknown_202562C +_08004A9C: .4byte 0x054a1c41 + thumb_func_end UpdateInput + + .align 2, 0 @ Don't pad with nop. |