diff options
author | YamaArashi <shadow962@live.com> | 2016-10-17 12:42:22 -0700 |
---|---|---|
committer | YamaArashi <shadow962@live.com> | 2016-10-17 12:42:22 -0700 |
commit | ba2e0b47483108c9013e7d4ca5cc383a9a14d425 (patch) | |
tree | c40eda2c1ec3fd8632fcbf7430b483c15cfb0dd5 /src | |
parent | bf8fa9086cd0bc5135dfc7545b13d061d07c6b6b (diff) |
decompile unreferenced save functions
Diffstat (limited to 'src')
-rw-r--r-- | src/save.c | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/src/save.c b/src/save.c index e448ab079..456bfdbe4 100644 --- a/src/save.c +++ b/src/save.c @@ -16,11 +16,20 @@ struct SaveSection u32 counter; }; +struct UnkSaveSection +{ + u8 data[0xFF4]; + u32 unknown; +}; + extern u32 sub_8053108(u8); extern void sav12_xor_increment(u8); +extern u32 ProgramFlashSectorAndVerifyNBytes(u16 sectorNum, u8 *src, u32 n); extern struct SaveSection unk_2000000; +extern u32 gUnknown_02039284; + extern u32 gUnknown_3004820; extern u16 gUnknown_03005E9C; @@ -35,6 +44,7 @@ extern u32 gUnknown_03005EBC; extern struct SaveSectionLocation gSaveSectionLocations[]; extern struct SaveSectionLocation gHallOfFameSaveSectionLocations[]; +extern u8 gUnknown_08401E24[]; u8 sub_81252D8(u16, struct SaveSectionLocation *); u8 sub_8125440(u8, u8 *); @@ -701,3 +711,77 @@ u8 sub_8125EC8(u8 a1) return result; } + +bool8 unref_sub_8125F4C(struct UnkSaveSection *a1) +{ + u16 i; + char *raw = (char *)a1; + + for (i = 0; i < 0x1000; i++) + raw[i] = 0; + + ReadFlash(gUnknown_08401E24[0], 0, a1, 4096); + + if (a1->unknown != 0x8012025) + return FALSE; + + return TRUE; +} + +u8 unref_sub_8125FA0(void) +{ + u16 i; + u8 v0 = sub_8125D44(0); + + for (i = 0; i < 2; i++) + EraseFlashSector(gUnknown_08401E24[i]); + + if (v0 == 255) + { + return 3; + } + else if (v0 == 3) + { + return 2; + } + else + { + sub_8125EC8(0); + return 1; + } +} + +u8 unref_sub_8125FF0(u8 *data, u16 size) +{ + u16 i; + struct UnkSaveSection *section = (struct UnkSaveSection *)&unk_2000000; + + for (i = 0; i < 0x1000; i++) + ((char *)section)[i] = 0; + + section->unknown = 0x8012025; + + for (i = 0; i < size; i++) + section->data[i] = data[i]; + + gUnknown_02039284 = ProgramFlashSectorAndVerifyNBytes(gUnknown_08401E24[0], (u8 *)section, 0x1000); + + if (gUnknown_02039284) + return 255; + else + return 1; +} + +u8 unref_sub_8126068(u8 sector, u8 *data, u32 size) +{ + if (ProgramFlashSectorAndVerify(sector, data, size)) + return 255; + else + return 1; +} + +u8 unref_sub_8126080(u8 sector, u8 *data) +{ + ReadFlash(sector, 0, data, 0x1000); + return 1; +} |