From c8f14fbd3d336f5c1fe68135d69c5d43b530ea48 Mon Sep 17 00:00:00 2001 From: Kaphotics Date: Wed, 21 Sep 2016 21:08:09 -0700 Subject: [PATCH] Fix verifychk for gen1 Thanks bokepall ! --- PKHeX/Saves/SAV1.cs | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/PKHeX/Saves/SAV1.cs b/PKHeX/Saves/SAV1.cs index f66e35c98..e3ac3727b 100644 --- a/PKHeX/Saves/SAV1.cs +++ b/PKHeX/Saves/SAV1.cs @@ -202,17 +202,11 @@ public override bool ChecksumsValid get { int CHECKSUM_OFS = Japanese ? 0x3594 : 0x3523; - Data[CHECKSUM_OFS] = 0; - uint chksum = 0; - for (int i = 0x2598; i < CHECKSUM_OFS; i++) - { - chksum += Data[i]; - } - - chksum = ~chksum; - chksum &= 0xFF; - - return Data[CHECKSUM_OFS] == (byte)chksum; + byte temp = Data[CHECKSUM_OFS]; // cache current chk + setChecksums(); // chksum is recalculated (after being set to 0 to perform check) + byte chk = Data[CHECKSUM_OFS]; // correct checksum + Data[CHECKSUM_OFS] = temp; // restore old chk + return temp == chk; } } public override string ChecksumInfo => ChecksumsValid ? "Checksum valid." : "Checksum invalid";