mirror of
https://github.com/pret/pmd-red.git
synced 2026-10-02 13:58:56 -05:00
nonmatching input be GONE. Just one func left
This commit is contained in:
64
asm/input.s
64
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}
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
204
src/input.c
204
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;
|
||||
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;
|
||||
|
||||
#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_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.unk12 = -1;
|
||||
gUnknown_2025600.unk14 = -1;
|
||||
gUnknown_2025600.unk16 = -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.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;
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user