summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHenny022p <info@henny022.de>2021-03-02 22:41:26 +0100
committerHenny022p <info@henny022.de>2021-03-02 22:41:26 +0100
commitcd4a04c5ab0db8769535a4d3690bc2f0a582175b (patch)
tree18c0d0581bd2bcaededb52666b35f4c722f0d292 /src
parentffcd347ede61b97c1b31d3ecbd7f49248dbbe865 (diff)
matched VerifyChecksum
Diffstat (limited to 'src')
-rw-r--r--src/save.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/save.c b/src/save.c
index 84901f91..2077da73 100644
--- a/src/save.c
+++ b/src/save.c
@@ -261,21 +261,20 @@ u32 DataDoubleReadWithStatus(u32 param_1, void* data) {
return ret;
}
-NONMATCH("asm/non_matching/save/sub_0807D0A0.inc", u32 VerifyChecksum(SaveFileStatus* fileStatus, u16* data, u32 size)) {
- u32 ret;
-
+u32 VerifyChecksum(SaveFileStatus* fileStatus, u16* data, u32 size) {
+ u32 temp;
u16 checksum;
checksum = CalculateChecksum((u16*)&fileStatus->status, 4);
checksum += CalculateChecksum(data, size);
- if ((fileStatus->checksum1 != checksum) || (fileStatus->checksum2 != -(u32)fileStatus->checksum1) ||
+ if ((fileStatus->checksum1 != checksum) ||
+ (temp = fileStatus->checksum1 << 0x10, fileStatus->checksum2 != (-temp >> 0x10)) ||
(fileStatus->status != 'MCZ3')) {
return 0;
} else
return 1;
}
-END_NONMATCH
u32 ReadSaveFileStatus(u32 address, SaveFileStatus* fileStatus) {
u32 ret;