summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorYamaArashi <shadow962@live.com>2016-10-16 23:52:44 -0700
committerYamaArashi <shadow962@live.com>2016-10-16 23:52:44 -0700
commit94b9c6890ca6b6d59b99f43b5d06d5a0e8789a82 (patch)
tree917c42618f85063f076eb5750ebc35e08c425ea1 /src
parent4282ccc28f1907bd7f20860b99bdc838ff97e3f1 (diff)
decompile another save function
Diffstat (limited to 'src')
-rw-r--r--src/save.c32
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;
+}