diff options
author | Seth Barberee <seth.barberee@gmail.com> | 2020-09-16 17:01:21 -0500 |
---|---|---|
committer | Seth Barberee <seth.barberee@gmail.com> | 2020-09-16 17:01:21 -0500 |
commit | ff099968a1e6f1e6ce7c4dbd7d6cf041caf33c55 (patch) | |
tree | 99a5d7291f6cadae94faf0d4ef63749c96cf0a09 | |
parent | 190c3562b9df62ab57297c46348f3739563c9868 (diff) |
nonmatching input be GONE. Just one func left
-rw-r--r-- | asm/input.s | 64 | ||||
-rw-r--r-- | include/input.h | 71 | ||||
-rw-r--r-- | src/input.c | 208 |
3 files changed, 115 insertions, 228 deletions
diff --git a/asm/input.s b/asm/input.s index f7b8540..5ebe3dc 100644 --- a/asm/input.s +++ b/asm/input.s @@ -5,70 +5,6 @@ .text - thumb_func_start sub_80048D0 -sub_80048D0: - ldr r1, =gUnknown_20255F0 - movs r0, 0 - strh r0, [r1, 0x4] - ldr r1, =gUnknown_2025648 - str r0, [r1, 0xC] - strh r0, [r1, 0x8] - ldr r1, =gUnknown_2025668 - ldr r0, =0x3e7 - strh r0, [r1] - strh r0, [r1, 0x2] - bx lr - .align 2, 0 - .pool - thumb_func_end sub_80048D0 - - thumb_func_start sub_80048F8 -sub_80048F8: - ldr r0, =gUnknown_20255F0 - movs r1, 0 - strh r1, [r0, 0x2] - ldr r0, =gUnknown_2025638 - strh r1, [r0, 0x2] - ldr r0, =gUnknown_2025648 - strh r1, [r0, 0x2] - bx lr - .align 2, 0 - .pool - thumb_func_end sub_80048F8 - - thumb_func_start sub_8004914 -sub_8004914: - ldr r0, =gUnknown_2025600 - movs r1, 0x5 - str r1, [r0, 0x20] - movs r2, 0 - movs r1, 0 - strh r1, [r0, 0x24] - ldr r1, =0xffff - 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 - .pool - thumb_func_end sub_8004914 - thumb_func_start UpdateInput UpdateInput: push {r4-r6,lr} diff --git a/include/input.h b/include/input.h index 1ac1bec..6c579a8 100644 --- a/include/input.h +++ b/include/input.h @@ -1,44 +1,57 @@ -struct test +struct UnkInputStruct1 { /* 0x0 */ u16 unk0; - /* 0x2 */ u16 unk1; - /* 0x4 */ u16 unk2; - /* 0x6 */ u16 unk3; - /* 0x8 */ u16 unk4; + /* 0x2 */ u16 unk2; + /* 0x4 */ u16 unk4; + /* 0x6 */ u16 unk6; + /* 0x8 */ u16 unk8; + /* 0xA */ u16 unkA; + /* 0xC */ u32 unkC; }; -struct test3 +struct UnkInputStruct2 { /* 0x0 */ u16 unk0; - /* 0x2 */ u16 unk1; - /* 0x4 */ u16 unk2; - /* 0x6 */ u16 unk3; + /* 0x2 */ u16 unk2; + /* 0x4 */ u16 unk4; + /* 0x6 */ u16 unk6; }; struct Input { /* 0x0 */ u16 unk0; - /* 0x2 */ u16 unk1; - /* 0x4 */ u16 unk2; - /* 0x6 */ u16 unk3; - /* 0x8 */ u16 unk4; - /* 0xA */ u16 unk5; - /* 0xC */ u16 unk6; - /* 0xE */ u16 unk7; - /* 0x10 */ u16 unk8; - /* 0x12 */ u16 unk9; - /* 0x14 */ u16 unk10; - /* 0x16 */ u16 unk11; - /* 0x18 */ u16 unk12; - /* 0x1A */ u16 unk13; - /* 0x1C */ u16 unk14; - /* 0x1E */ u16 unk15; - /* 0x20 */ u16 unk16; - /* 0x22 */ u16 unk17[3]; // padding - /* 0x28 */ u8 unk18; - /* 0x29 */ u8 unk19; - /* 0x2A */ u8 unk20; + /* 0x2 */ u16 unk2; + /* 0x4 */ u16 unk4; + /* 0x6 */ u16 unk6; + /* 0x8 */ u16 unk8; + /* 0xA */ u16 unkA; + /* 0xC */ u16 unkC; + /* 0xE */ u16 unkE; + /* 0x10 */ u16 unk10; + /* 0x12 */ u16 unk12; + /* 0x14 */ u16 unk14; + /* 0x16 */ u16 unk16; + /* 0x16 */ u16 unk18; + /* 0x1A */ u16 unk1A; + /* 0x1C */ u16 unk1C; + /* 0x1E */ u16 unk1E; + /* 0x20 */ u32 unk20; + /* 0x24 */ u16 unk24; + /* 0x24 */ u16 unk26; + /* 0x28 */ u8 unk28; + /* 0x29 */ u8 unk29; + /* 0x2A */ u8 unk2A; }; void InitInput(void); void sub_800485C(void); +u8 sub_80048B8(void); +u8 sub_80048BC(void); +u8 sub_80048C0(void); +u8 sub_80048C4(void); +u8 sub_80048C8(void); +u8 sub_80048CC(void); +void sub_80048D0(void); +void sub_80048F8(void); +void sub_8004914(void); + diff --git a/src/input.c b/src/input.c index 9455eb2..99d894b 100644 --- a/src/input.c +++ b/src/input.c @@ -1,174 +1,73 @@ #include "global.h" #include "input.h" -extern struct Input gUnknown_2025600; -extern struct test gUnknown_20255F0; -extern struct test gUnknown_2025638; -extern struct test gUnknown_2025648; -extern struct test3 gUnknown_2025668; -extern u32 gUnknown_202562C; - -#ifndef NONMATCHING -NAKED -#endif +EWRAM_DATA struct Input gUnknown_2025600; +EWRAM_DATA struct UnkInputStruct1 gUnknown_20255F0; +EWRAM_DATA struct UnkInputStruct1 gUnknown_2025638; +EWRAM_DATA struct UnkInputStruct1 gUnknown_2025648; +EWRAM_DATA struct UnkInputStruct2 gUnknown_2025668; +EWRAM_DATA u32 gUnknown_202562C; + void InitInput(void) { -#ifdef NONMATCHING gUnknown_20255F0.unk0 = 0; - gUnknown_20255F0.unk1 = 0; gUnknown_20255F0.unk2 = 0; - gUnknown_20255F0.unk3 = 0; + gUnknown_20255F0.unk4 = 0; + gUnknown_20255F0.unk6 = 0; gUnknown_2025638.unk0 = 0; - gUnknown_2025638.unk1 = 0; gUnknown_2025638.unk2 = 0; - gUnknown_2025638.unk3 = 0; + gUnknown_2025638.unk4 = 0; + gUnknown_2025638.unk6 = 0; gUnknown_202562C = 4854977; // ????? (0x4a14c1) - gUnknown_2025600.unk16 = 0; // TODO: should be str but generates strh + gUnknown_2025600.unk20 = 0; gUnknown_2025600.unk0 = 0xffff; // probably a mask - gUnknown_2025600.unk1 = -1; gUnknown_2025600.unk2 = -1; - gUnknown_2025600.unk3 = -1; - gUnknown_2025600.unk14 = -1; - gUnknown_2025600.unk15 = -1; gUnknown_2025600.unk4 = -1; - gUnknown_2025600.unk5 = -1; gUnknown_2025600.unk6 = -1; - gUnknown_2025600.unk7 = -1; + gUnknown_2025600.unk1C = -1; + gUnknown_2025600.unk1E = -1; gUnknown_2025600.unk8 = -1; - gUnknown_2025600.unk9 = -1; + gUnknown_2025600.unkA = -1; + gUnknown_2025600.unkC = -1; + gUnknown_2025600.unkE = -1; gUnknown_2025600.unk10 = -1; - gUnknown_2025600.unk11 = -1; - gUnknown_2025600.unk18 = 0; - gUnknown_2025600.unk19 = 0; + gUnknown_2025600.unk12 = -1; + gUnknown_2025600.unk14 = -1; + gUnknown_2025600.unk16 = -1; + gUnknown_2025600.unk28 = 0; + gUnknown_2025600.unk29 = 0; gUnknown_2025668.unk0 = 0; - gUnknown_2025668.unk1 = 0; -#else - asm_unified("\tldr r0, =gUnknown_20255F0\n" - "\tmovs r3, 0\n" - "\tmovs r2, 0\n" - "\tstrh r2, [r0] \n" - "\tstrh r2, [r0, 0x2]\n" - "\tstrh r2, [r0, 0x4]\n" - "\tstrh r2, [r0, 0x6]\n" - "\tldr r0, =gUnknown_2025638\n" - "\tstrh r2, [r0]\n" - "\tstrh r2, [r0, 0x2]\n" - "\tstrh r2, [r0, 0x4]\n" - "\tstrh r2, [r0, 0x6]\n" - "\tldr r1, =gUnknown_202562C\n" - "\tldr r0, =0x4a14c1\n" - "\tstr r0, [r1]\n" - "\tldr r0, =gUnknown_2025600\n" - "\tstr r2, [r0, 0x20]\n" - "\tldr r1, =0xffff\n" - "\tstrh r1, [r0] \n" - "\tmovs r1, 0x1\n" - "\tnegs r1, r1\n" - "\tstrh r1, [r0, 0x2]\n" - "\tstrh r1, [r0, 0x4]\n" - "\tstrh r1, [r0, 0x6]\n" - "\tstrh r1, [r0, 0x1C]\n" - "\tstrh r1, [r0, 0x1E]\n" - "\tstrh r1, [r0, 0x8]\n" - "\tstrh r1, [r0, 0xA]\n" - "\tstrh r1, [r0, 0xC]\n" - "\tstrh r1, [r0, 0xE]\n" - "\tstrh r1, [r0, 0x10]\n" - "\tstrh r1, [r0, 0x12]\n" - "\tstrh r1, [r0, 0x14]\n" - "\tstrh r1, [r0, 0x16]\n" - "\tadds r1, r0, 0\n" - "\tadds r1, 0x28\n" - "\tstrb r3, [r1]\n" - "\tadds r0, 0x29\n" - "\tstrb r3, [r0]\n" - "\tldr r0, =gUnknown_2025668\n" - "\tstrh r2, [r0]\n" - "\tstrh r2, [r0, 0x2]\n" - "\tbx lr\n" - "\t.align 2, 0\n" - "\t.pool"); -#endif + gUnknown_2025668.unk2 = 0; } -#ifndef NONMATCHING -NAKED -#endif void sub_800485C(void) { -#ifdef NONMATCHING gUnknown_20255F0 = gUnknown_2025638; - // TODO missing: - // ldr r0, [r0] - // str r0, [r1] - gUnknown_2025638.unk0 = 0; - gUnknown_2025638.unk1 = 0; gUnknown_2025638.unk2 = 0; - gUnknown_2025638.unk3 = 0; + gUnknown_2025638.unk4 = 0; + gUnknown_2025638.unk6 = 0; gUnknown_2025600.unk0 = 0xffff; - gUnknown_2025600.unk1 = -1; gUnknown_2025600.unk2 = -1; - gUnknown_2025600.unk3 = -1; gUnknown_2025600.unk4 = -1; - gUnknown_2025600.unk5 = -1; gUnknown_2025600.unk6 = -1; - gUnknown_2025600.unk7 = -1; gUnknown_2025600.unk8 = -1; - gUnknown_2025600.unk9 = -1; + gUnknown_2025600.unkA = -1; + gUnknown_2025600.unkC = -1; + gUnknown_2025600.unkE = -1; gUnknown_2025600.unk10 = -1; - gUnknown_2025600.unk11 = -1; - - gUnknown_2025600.unk18 = 0; - gUnknown_2025600.unk19 = 0; -#else - asm_unified("\tpush {r4,r5,lr}\n" - "\tldr r2, =gUnknown_2025638\n" - "\tldr r1, =gUnknown_20255F0\n" - "\tadds r0, r2, 0\n" - "\tldm r0!, {r3-r5}\n" - "\tstm r1!, {r3-r5}\n" - "\tldr r0, [r0]\n" - "\tstr r0, [r1]\n" - "\tmovs r3, 0\n" - "\tmovs r0, 0\n" - "\tstrh r0, [r2]\n" - "\tstrh r0, [r2, 0x2]\n" - "\tstrh r0, [r2, 0x4]\n" - "\tstrh r0, [r2, 0x6]\n" - "\tldr r0, =gUnknown_2025600\n" - "\tldr r1, =0xffff\n" - "\tstrh r1, [r0]\n" - "\tmovs r1, 0x1\n" - "\tnegs r1, r1\n" - "\tstrh r1, [r0, 0x2]\n" - "\tstrh r1, [r0, 0x4]\n" - "\tstrh r1, [r0, 0x6]\n" - "\tstrh r1, [r0, 0x8]\n" - "\tstrh r1, [r0, 0xA]\n" - "\tstrh r1, [r0, 0xC]\n" - "\tstrh r1, [r0, 0xE]\n" - "\tstrh r1, [r0, 0x10]\n" - "\tstrh r1, [r0, 0x12]\n" - "\tstrh r1, [r0, 0x14]\n" - "\tstrh r1, [r0, 0x16]\n" - "\tadds r1, r0, 0\n" - "\tadds r1, 0x28\n" - "\tstrb r3, [r1]\n" - "\tadds r0, 0x29\n" - "\tstrb r3, [r0]\n" - "\tpop {r4,r5}\n" - "\tpop {r0}\n" - "\tbx r0\n" - "\t.align 2, 0\n" - "\t.pool"); -#endif + gUnknown_2025600.unk12 = -1; + gUnknown_2025600.unk14 = -1; + gUnknown_2025600.unk16 = -1; + + gUnknown_2025600.unk28 = 0; + gUnknown_2025600.unk29 = 0; } // Unused @@ -204,3 +103,42 @@ u8 sub_80048CC(void) { return 0; } + +void sub_80048D0(void) +{ + gUnknown_20255F0.unk4 = 0; + gUnknown_2025648.unkC = 0; + gUnknown_2025648.unk8 = 0; + gUnknown_2025668.unk0 = 0x3e7; + gUnknown_2025668.unk2 = 0x3e7; + +} + +void sub_80048F8(void) +{ + gUnknown_20255F0.unk2 = 0; + gUnknown_2025638.unk2 = 0; + gUnknown_2025648.unk2 = 0; +} + +void sub_8004914(void) +{ + gUnknown_2025600.unk20 = 0x5; + gUnknown_2025600.unk24 = 0; + gUnknown_2025600.unk0 = 0xffff; + gUnknown_2025600.unk2 = -1; + gUnknown_2025600.unk4 = -1; + gUnknown_2025600.unk6 = -1; + gUnknown_2025600.unk8 = -1; + gUnknown_2025600.unkA = -1; + gUnknown_2025600.unkC = -1; + gUnknown_2025600.unkE = -1; + gUnknown_2025600.unk10 = -1; + gUnknown_2025600.unk12 = -1; + gUnknown_2025600.unk14 = -1; + gUnknown_2025600.unk16 = -1; + + gUnknown_2025600.unk28 = 0; + gUnknown_2025600.unk29 = 0; + +} |