diff options
author | Seth Barberee <seth.barberee@gmail.com> | 2020-11-01 11:12:39 -0600 |
---|---|---|
committer | Seth Barberee <seth.barberee@gmail.com> | 2020-11-01 11:12:39 -0600 |
commit | a0d2d8e9519a7cc9075950c5eec211008fbe0463 (patch) | |
tree | a857d250b33265a3c9f07d67b86b98ce36c559ae /src | |
parent | 90655520b3593915179c02e91f1d69cf3c26c252 (diff) |
some more work on decomping funcs
Diffstat (limited to 'src')
-rw-r--r-- | src/code_8041AD0.c | 179 | ||||
-rw-r--r-- | src/save_mid.c | 67 |
2 files changed, 245 insertions, 1 deletions
diff --git a/src/code_8041AD0.c b/src/code_8041AD0.c index 6cf8ae0..be254ef 100644 --- a/src/code_8041AD0.c +++ b/src/code_8041AD0.c @@ -6,6 +6,13 @@ struct unkStruct_8041D5C 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); @@ -13,6 +20,8 @@ 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) { @@ -442,3 +451,173 @@ 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) +{ +} diff --git a/src/save_mid.c b/src/save_mid.c index d401ec3..43f8aaf 100644 --- a/src/save_mid.c +++ b/src/save_mid.c @@ -10,6 +10,19 @@ struct unk_203B188 u32 unk4; }; +struct unk_struct +{ + u32 unk0; + u32 unk4; + u32 unk8; + u32 unkC; + u32 unk10; + u32 unk14; + u32 unk18; + u32 unk1C; + u32 padding[504]; +}; + extern struct unk_203B188 *gUnknown_203B188; extern u32 gUnknown_203B460; @@ -52,13 +65,21 @@ extern void sub_8097F74(void); extern void sub_8011C28(u32 r0); extern void sub_8011C40(s32 r0); extern void sub_8097748(void); -extern void sub_8012240(); extern void sub_8094FA8(struct unkTimeStruct *Time); // defined in src/code_8094F88.c extern struct unkTimeStruct *sub_8094FA0(void); extern void* MemoryAlloc(u32 a, u32 b); +extern void MemoryFree(void* a); +extern void MemoryFill8(u8 *dest, u8 value, s32 size); +extern void sub_8011830(void); +extern s32 WriteFlashData(s32 sector, u8 *src, s32 size); +extern void sub_8011854(void); +extern u32 *sub_809769C(void); +u32 *sub_8011C4C(void); +extern void sub_80958E4(u8 *a, u32 b); +extern s32 WriteSaveSector(s32 *a, u8 *src, s32 size); void sub_80122D0(); void sub_80122F4(); @@ -66,6 +87,50 @@ void sub_8012300(); void sub_80976A8(); void sub_80122A8(); +s32 sub_80121D4(s32 *a, u8 *src, s32 size) +{ + return WriteSaveSector(a, src, size); +} + +u32 sub_80121E0(u32 r0) +{ + u32 temp; + u32 *temp2; + u32 temp3; + struct unk_struct *r4 = MemoryAlloc(sizeof(struct unk_struct), 5); + temp = 0x1F; + + r4->unk18 = r0; + r4->unk1C = *sub_809769C(); + r4->unk14 = 0x5071412; + + temp2 = sub_8011C4C(); + strncpy((u8 *)r4 + 4, (u8*)temp2, 16); + sub_80958E4((u8 *)r4 + 32, 0); + temp3 = WriteSaveSector(&temp, (u8 *)r4, sizeof(struct unk_struct)); + MemoryFree(r4); + return temp3; +} + +u32 sub_8012240(void) +{ + s32 temp; + struct unk_struct *r5 = MemoryAlloc(sizeof(struct unk_struct), 5); + MemoryFill8((u8 *)r5, 0xFF, 0x4); + sub_8011830(); + temp = WriteFlashData(0x1F, (u8 *)r5, sizeof(struct unk_struct)); + sub_8011854(); + MemoryFree(r5); + if(temp != 0) + { + return 2; + } + else + { + return 0; + } +} + void sub_8012284(void) { sub_80122D0(); |