From 961ab7ccaf4d175189cd42fcddca1336f3d91bad Mon Sep 17 00:00:00 2001 From: nullableVoidPtr <30564701+nullableVoidPtr@users.noreply.github.com> Date: Wed, 17 Oct 2018 11:28:27 +0800 Subject: Fix makefile and decompile some functions. Partial memory.c, save.c and bg_palette_buffer.c decompilation, along with some asm/ cleanup. --- src/save.c | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/save.c (limited to 'src/save.c') diff --git a/src/save.c b/src/save.c new file mode 100644 index 0000000..575d4f1 --- /dev/null +++ b/src/save.c @@ -0,0 +1,45 @@ +#include "global.h" + +extern u32 gUnknown_203B17C; +extern u32 gUnknown_203B180; +extern u32 gUnknown_202DE28; + +u32 sub_8011C1C(void) +{ + return gUnknown_203B17C; +} + +void sub_8011C28(u32 in) +{ + gUnknown_203B17C = in; +} + +u32 sub_8011C34(void) +{ + return gUnknown_202DE28; +} + +void sub_8011C40(u32 in) +{ + gUnknown_202DE28 = in; +} + +u32 sub_8011C4C(void) +{ + return gUnknown_203B180; +} + +void sub_8011C58(u32 *out, u32 len) +{ + u32 sum = 0; + s32 i = len / 4; + if (i > 1) + { + u32 *ptr = &out[1]; + --i; + do + sum += *ptr++; + while (--i); + } + *out = sum; +} \ No newline at end of file -- cgit v1.2.3 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