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/save_mid.c | |
parent | 90655520b3593915179c02e91f1d69cf3c26c252 (diff) |
some more work on decomping funcs
Diffstat (limited to 'src/save_mid.c')
-rw-r--r-- | src/save_mid.c | 67 |
1 files changed, 66 insertions, 1 deletions
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(); |