diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/input.c | 206 |
1 files changed, 206 insertions, 0 deletions
diff --git a/src/input.c b/src/input.c new file mode 100644 index 0000000..9455eb2 --- /dev/null +++ b/src/input.c @@ -0,0 +1,206 @@ +#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 +void InitInput(void) +{ +#ifdef NONMATCHING + gUnknown_20255F0.unk0 = 0; + gUnknown_20255F0.unk1 = 0; + gUnknown_20255F0.unk2 = 0; + gUnknown_20255F0.unk3 = 0; + + gUnknown_2025638.unk0 = 0; + gUnknown_2025638.unk1 = 0; + gUnknown_2025638.unk2 = 0; + gUnknown_2025638.unk3 = 0; + + gUnknown_202562C = 4854977; // ????? (0x4a14c1) + + gUnknown_2025600.unk16 = 0; // TODO: should be str but generates strh + 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.unk8 = -1; + gUnknown_2025600.unk9 = -1; + gUnknown_2025600.unk10 = -1; + gUnknown_2025600.unk11 = -1; + gUnknown_2025600.unk18 = 0; + gUnknown_2025600.unk19 = 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 +} + +#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_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.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 +} + +// Unused +u8 sub_80048B8(void) +{ + return 0; +} + +u8 sub_80048BC(void) +{ + return 0; +} + +// Unused +u8 sub_80048C0(void) +{ + return 0; +} + +// Unused +u8 sub_80048C4(void) +{ + return 0; +} + +u8 sub_80048C8(void) +{ + return 0; +} + +// Unused +u8 sub_80048CC(void) +{ + return 0; +} |