From f4ef62bb4134498a4b4a9c4d61b99bda24c98680 Mon Sep 17 00:00:00 2001 From: nullableVoidPtr <30564701+nullableVoidPtr@users.noreply.github.com> Date: Sun, 18 Nov 2018 16:23:57 +0800 Subject: Renamed primary heap variables and partial cleanup m4a.s --- src/save.c | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) (limited to 'src/save.c') diff --git a/src/save.c b/src/save.c index 575d4f1..5d39bfe 100644 --- a/src/save.c +++ b/src/save.c @@ -2,8 +2,10 @@ extern u32 gUnknown_203B17C; extern u32 gUnknown_203B180; +extern u32 *gUnknown_203B184; extern u32 gUnknown_202DE28; + u32 sub_8011C1C(void) { return gUnknown_203B17C; @@ -29,17 +31,34 @@ u32 sub_8011C4C(void) return gUnknown_203B180; } -void sub_8011C58(u32 *out, u32 len) +void CalculateChecksum(u8 *out, u32 size) { - u32 sum = 0; - s32 i = len / 4; + u32 checksum = 0; + s32 i = size / 4; if (i > 1) { - u32 *ptr = &out[1]; + u32 *ptr = (u32 *)&out[4]; --i; do - sum += *ptr++; + checksum += *ptr++; while (--i); } - *out = sum; -} \ No newline at end of file + *(u32 *)out = checksum; +} + +bool8 ValidateChecksum(u8 *in, u32 size) +{ + u32 checksum = 0; + s32 i = size / 4; + if (i > 1) + { + u32 *ptr = (u32 *)&in[4]; + --i; + do + checksum += *ptr++; + while (--i); + } + if (*(u32 *)in != checksum) + return TRUE; + return FALSE; +} -- cgit v1.2.3