diff options
| author | Henny022p <info@henny022.de> | 2021-03-02 22:41:26 +0100 |
|---|---|---|
| committer | Henny022p <info@henny022.de> | 2021-03-02 22:41:26 +0100 |
| commit | cd4a04c5ab0db8769535a4d3690bc2f0a582175b (patch) | |
| tree | 18c0d0581bd2bcaededb52666b35f4c722f0d292 /src/save.c | |
| parent | ffcd347ede61b97c1b31d3ecbd7f49248dbbe865 (diff) | |
matched VerifyChecksum
Diffstat (limited to 'src/save.c')
| -rw-r--r-- | src/save.c | 9 |
1 files changed, 4 insertions, 5 deletions
@@ -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; |
