diff options
author | YamaArashi <shadow962@live.com> | 2016-10-16 23:52:44 -0700 |
---|---|---|
committer | YamaArashi <shadow962@live.com> | 2016-10-16 23:52:44 -0700 |
commit | 94b9c6890ca6b6d59b99f43b5d06d5a0e8789a82 (patch) | |
tree | 917c42618f85063f076eb5750ebc35e08c425ea1 /src | |
parent | 4282ccc28f1907bd7f20860b99bdc838ff97e3f1 (diff) |
decompile another save function
Diffstat (limited to 'src')
-rw-r--r-- | src/save.c | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/src/save.c b/src/save.c index e05de67cc..decc75bcc 100644 --- a/src/save.c +++ b/src/save.c @@ -28,7 +28,9 @@ extern u16 gUnknown_03005EB4; u8 sub_81252D8(u16, struct SaveSectionLocation *); u8 sub_8125440(u8, u8 *); -u8 sub_81255B8(u16 a1, struct SaveSectionLocation *a2); +u8 sub_81255B8(u16, struct SaveSectionLocation *); +u8 sub_81258BC(u16, struct SaveSectionLocation *); +u8 sub_8125BF8(u8, u8 *); void calls_flash_erase_block(void) { @@ -331,7 +333,7 @@ u8 sub_81257F0(u16 a1) } } -u8 sub_812587C(u16 a1, int a2) +u8 sub_812587C(u16 a1, struct SaveSectionLocation *a2) { u8 retVal; gUnknown_03005EB0 = &unk_2000000; @@ -347,3 +349,29 @@ u8 sub_812587C(u16 a1, int a2) return retVal; } + +u8 sub_81258BC(u16 a1, struct SaveSectionLocation *a2) +{ + u16 i; + u16 checksum; + u16 v3 = 14 * (gUnknown_03005EAC % 2); + u16 id; + + for (i = 0; i < 14; i++) + { + sub_8125BF8(i + v3, gUnknown_03005EB0->data); + id = gUnknown_03005EB0->id; + if (id == 0) + gUnknown_03005E9C = i; + checksum = sub_8125C10(gUnknown_03005EB0->data, a2[id].size); + if (gUnknown_03005EB0->unknown == 0x8012025 + && gUnknown_03005EB0->checksum == checksum) + { + u16 j; + for (j = 0; j < a2[id].size; j++) + ((u8 *)a2[id].data)[j] = gUnknown_03005EB0->data[j]; + } + } + + return 1; +} |