diff options
author | Seth Barberee <seth.barberee@gmail.com> | 2020-12-17 13:17:58 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-17 13:17:58 -0600 |
commit | 096de8d9b2ffd90c52e790296bfd7c5436d45ca3 (patch) | |
tree | 9c5af2e04dea05221c71946a5dfc06471f77801d /src/code_8041AD0.c | |
parent | bc504264f1e54b3c1e482710c592e5549828bfe1 (diff) | |
parent | f90f3affeb9b0a66aa7df68f5fdecd692033faf9 (diff) |
Merge pull request #12 from SethBarberee/master
Merge work from SethBarberee/pmd-red into pret.
Diffstat (limited to 'src/code_8041AD0.c')
-rw-r--r-- | src/code_8041AD0.c | 623 |
1 files changed, 623 insertions, 0 deletions
diff --git a/src/code_8041AD0.c b/src/code_8041AD0.c new file mode 100644 index 0000000..be254ef --- /dev/null +++ b/src/code_8041AD0.c @@ -0,0 +1,623 @@ +#include "global.h" + +struct unkStruct_8041D5C +{ + u8 padding[0x70]; + u8 *unk70[100]; +}; + +struct unk_struct_8041F08 +{ + u32 unk0; + u32 unk4; +}; + + +extern void sub_803ED30(u8, struct unkStruct_8041D5C *r0, u8, u8); +extern void sub_804151C(u32 r0, u32 r1, u8 r2); +extern void sub_80421C0(u32 r0, u32 r1); +extern u8 sub_8042768(void); +extern void sub_806CDD4(u32 r0, u8, u32); +extern u8 sub_8071858(u32, u8); + +extern void sub_8041550(u32 r0, u32, u32, u32); + + +void sub_8041AD0(u32 r0) +{ + sub_804151C(r0, 0xA2 << 1, 1); +} + +void sub_8041AE0(u32 r0) +{ + sub_804151C(r0, 0x143, 1); +} + +void sub_8041AF4(u32 r0) +{ + sub_804151C(r0, 0x25, 1); + sub_80421C0(r0, 0x197); +} + +void nullsub_57(void) +{ +} + +void sub_8041B18(u32 r0) +{ + sub_804151C(r0, 0x141, 1); +} + +void nullsub_58(void) +{ +} + +void nullsub_59(void) +{ +} + +void sub_8041B34(u32 r0) +{ + sub_804151C(r0, 7, 1); +} + +void nullsub_60(void) +{ +} + +void sub_8041B48(u32 r0) +{ + sub_804151C(r0, 4, 0); +} + +void nullsub_61(void) +{ +} + +void sub_8041B5C(u32 r0) +{ + sub_804151C(r0, 0x171, 1); +} + +void nullsub_62(void) +{ +} + +void sub_8041B74(u32 r0) +{ + sub_804151C(r0, 0x171, 0); +} + +void nullsub_63(void) +{ +} + +void nullsub_64(void) +{ +} + +void sub_8041B90(u32 r0) +{ + sub_804151C(r0, 0xD6 << 1, 0); +} + +void nullsub_65(void) +{ +} + +void nullsub_66(void) +{ +} + +void sub_8041BA8(u32 r0) +{ + sub_804151C(r0, 4, 1); +} + +void nullsub_67(void) +{ +} + +void sub_8041BBC(u32 r0) +{ + sub_804151C(r0, 0xD4 << 1, 1); +} + +void nullsub_68(void) +{ +} + +void sub_8041BD0(u32 r0, u8 r1) +{ + if(r1 == 0) + { + return; + } + sub_80421C0(r0, 0x1a5); +} + +void sub_8041BE8(u32 r0) +{ + sub_80421C0(r0, 0xCB << 1); +} + +void sub_8041BF8(u32 r0) +{ + sub_806CDD4(r0, 0xA, 8); +} + +void sub_8041C08(u32 r0) +{ + sub_804151C(r0, 0x1a7, 1); +} + +void sub_8041C1C(u32 r0) +{ + sub_804151C(r0, 0x1a7, 1); +} + +void nullsub_69(void) +{ +} + +void sub_8041C34(u32 r0) +{ + sub_804151C(r0, 0x4C, 1); +} + +void nullsub_70(void) +{ +} + +void nullsub_71(void) +{ +} + +void sub_8041C4C(u32 r0, u32 r1) +{ + sub_804151C(r0, r1, 1); +} + +void sub_8041C58(u32 r0) +{ + sub_804151C(r0, 0x1a9, 1); +} + +void sub_8041C6C(u32 r0) +{ + sub_804151C(r0, 0x9D << 1, 1); +} + +void sub_8041C7C(u32 r0) +{ + sub_804151C(r0, 0x9D << 1, 1); +} + +void nullsub_72(void) +{ +} + +void nullsub_73(void) +{ +} + +void sub_8041C94(u32 r0) +{ + sub_804151C(r0, 0x171, 1); +} + +void sub_8041CA8(u32 r0) +{ + sub_804151C(r0, 7, 1); +} + +void sub_8041CB8(u32 r0) +{ + sub_804151C(r0, 0x18b, 1); +} + +void sub_8041CCC(u32 r0) +{ + sub_804151C(r0, 0xC5 << 1, 1); +} + +void sub_8041CDC(u32 r0) +{ + sub_804151C(r0, 5, 1); +} + +void sub_8041CEC(u32 r0) +{ + sub_80421C0(r0, 0x19d); +} + +void nullsub_74(void) +{ +} + +void sub_8041D00(u32 r0, u32 r1) +{ + sub_804151C(r1, 0x2F, 1); + sub_804151C(r0, 0x30, 1); +} + +void nullsub_75(void) +{ +} + +void nullsub_76(void) +{ +} + +void nullsub_77(void) +{ +} + +void nullsub_78(void) +{ +} + +void nullsub_79(void) +{ +} + +void nullsub_80(void) +{ +} + +void sub_8041D38(u32 r0) +{ + sub_804151C(r0, 0x21, 1); +} + +void sub_8041D48(u32 r0) +{ + sub_80421C0(r0, 0x191); +} + +void nullsub_81(void) +{ +} + +void sub_8041D5C(struct unkStruct_8041D5C *r0) +{ + u8 *temp; + if(sub_8042768() == 0) + { + return; + } + temp = *r0->unk70; + sub_803ED30(temp[0x89 << 1] , r0, 1, 0xB); +} + +void sub_8041D84(u32 r0) +{ + sub_80421C0(r0, 0x19f); +} + +void nullsub_82(void) +{ +} + +void nullsub_83(void) +{ +} + +void sub_8041D9C(u32 r0) +{ + sub_804151C(r0, 0x131, 1); +} + +void sub_8041DB0(u32 r0) +{ + sub_804151C(r0, 0x30, 1); +} + +void nullsub_84(void) +{ +} + +void nullsub_85(void) +{ +} + +void nullsub_204(void) +{ +} + +void nullsub_86(void) +{ +} + +void nullsub_87(void) +{ +} + +void nullsub_88(void) +{ +} + +#ifndef NONMATCHING +NAKED +#endif +// TODO r1 is doing an lsr instead of an asr... maybe a signed arg? +void sub_8041DD8(u32 r0, u16 r1) +{ +#ifdef NONMATCHING + if(sub_8071858(r0, 0xE) != 0) + { + sub_804151C(r0, r1, 1); + return; + } + sub_804151C(r0, 0xE, 1); +#else + asm_unified("\tpush {r4,r5,lr}\n" + "\tadds r4, r0, 0\n" + "\tlsls r1, 16\n" + "\tasrs r5, r1, 16\n" + "\tmovs r1, 0xE\n" + "\tbl sub_8071858\n" + "\tlsls r0, 24\n" + "\tcmp r0, 0\n" + "\tbeq _08041DF8\n" + "\tadds r0, r4, 0\n" + "\tadds r1, r5, 0\n" + "\tmovs r2, 0x1\n" + "\tbl sub_804151C\n" + "\tb _08041E02\n" +"_08041DF8:\n" + "\tadds r0, r4, 0\n" + "\tmovs r1, 0xE\n" + "\tmovs r2, 0x1\n" + "\tbl sub_804151C\n" +"_08041E02:\n" + "\tpop {r4,r5}\n" + "\tpop {r0}\n" + "\tbx r0"); +#endif +} + +void nullsub_89(void) +{ +} + +void sub_8041E0C(u32 r0) +{ + sub_804151C(r0, 0x41, 1); +} + +void sub_8041E1C(u32 r0) +{ + sub_804151C(r0, 0x8F << 1, 1); + sub_80421C0(r0, 0xCE << 1); +} + +void sub_8041E3C(u32 r0) +{ + sub_804151C(r0, 0xD7 << 1, 1); +} + +void sub_8041E4C(u32 r0) +{ + sub_804151C(r0, 0x1b1, 1); +} + +void sub_8041E60(u32 r0) +{ + sub_804151C(r0, 0x1a9, 1); +} + +void sub_8041E74(u32 r0) +{ + sub_804151C(r0, 0xC9 << 1, 1); +} + +void sub_8041E84(u32 r0) +{ + sub_804151C(r0, 0xC7 << 1, 1); +} + +void sub_8041E94(u32 r0) +{ + sub_804151C(r0, 0xC8 << 1, 1); +} + +void sub_8041EA4(u32 r0) +{ + sub_804151C(r0, 0x15, 1); +} + +void sub_8041EB4(u32 r0) +{ + sub_804151C(r0, 0x171, 1); +} + +void sub_8041EC8(u32 r0) +{ + sub_80421C0(r0, 0x197); +} + +void sub_8041ED8(u32 r0) +{ + sub_80421C0(r0, 0x197); +} + +void sub_8041EE8(u32 r0) +{ + sub_804151C(r0, 0x15, 1); +} + +void sub_8041EF8(u32 r0) +{ + sub_804151C(r0, 0xF, 1); +} + +void sub_8041F08(u32 r0) +{ + volatile struct unk_struct_8041F08 temp; + temp.unk0 = 2; + temp.unk4 = 0; + sub_8041550(r0, 0x15, 1, 3); +} + +void nullsub_90(void) +{ +} + +void sub_8041F28(u32 r0, u32 r1) +{ + if(r1 == 0) + { + sub_804151C(r0, 0xCA << 1, 1); + } + else + { + sub_804151C(r0, 0x193, 1); + } +} + +void sub_8041F4C(u32 r0, u32 r1) +{ + if(r1 == 0) + { + sub_804151C(r0, 0x18f, 1); + } + else + { + sub_804151C(r0, 0x191, 1); + } +} + +void sub_8041F70(u32 r0, u32 r1) +{ + if(r1 == 0) + { + sub_804151C(r0, 0x1a9, 1); + } + else + { + sub_804151C(r0, 0xC9 << 1, 1); + } +} + +void sub_8041F94(u32 r0, u32 r1) +{ + if(r1 == 0) + { + sub_804151C(r0, 0xC7 << 1, 1); + } + else + { + sub_804151C(r0, 0xC8 << 1, 1); + } +} + +void sub_8041FB4(u32 r0, u32 r1) +{ + if(r1 == 0) + { + sub_804151C(r0, 0x1a9, 1); + } + else + { + sub_804151C(r0, 0xC9 << 1, 1); + } +} + +void sub_8041FD8(u32 r0, u32 r1) +{ + if(r1 == 0) + { + sub_804151C(r0, 0xCA << 1, 1); + } + else + { + sub_804151C(r0, 0x193, 1); + } +} + +void sub_8041FFC(u32 r0, u32 r1) +{ + if(r1 == 0) + { + sub_804151C(r0, 0xC7 << 1, 1); + } + else + { + sub_804151C(r0, 0xC8 << 1, 1); + } +} + +void sub_804201C(u32 r0, u32 r1) +{ + if(r1 == 0) + { + sub_804151C(r0, 0x18f, 1); + } + else + { + sub_804151C(r0, 0x191, 1); + } +} + +void sub_8042040(u32 r0, u32 r1) +{ + if(r1 == 0) + { + sub_804151C(r0, 0xC6 << 1, 1); + } + else + { + sub_804151C(r0, 0xD, 1); + } +} + +void sub_8042060(u32 r0, u32 r1) +{ + if(r1 == 0) + { + sub_804151C(r0, 0x18d, 1); + } + else + { + sub_804151C(r0, 0xE, 1); + } +} + +void sub_8042080(u32 r0, u32 r1) +{ + if(r1 == 0) + { + sub_804151C(r0, 0xC6 << 1, 1); + } + else + { + sub_804151C(r0, 0xD, 1); + } +} + +void sub_80420A0(u32 r0, u32 r1) +{ + sub_804151C(r0, 0x143, 1); +} + +void nullsub_91(void) +{ +} + +void sub_80420B8(u32 r0, u32 r1) +{ + sub_804151C(r0, 0x19, 1); +} + +void sub_80420C8(u32 r0) +{ + volatile struct unk_struct_8041F08 temp; + temp.unk0 = 2; + temp.unk4 = 0; + sub_8041550(r0, 0x15, 1, 3); +} + +void nullsub_92(void) +{ +} |