From 4bfaf27e5f9575832764fc46f22208ea10f70c7f Mon Sep 17 00:00:00 2001 From: Kurt Date: Fri, 30 Dec 2016 23:09:35 -0800 Subject: [PATCH] Change decrypted check for gen4/5 pkm files with bad checksums (bad data || modifier by the program <---) trigger decryption; just check unused bytes like for gen6/7. --- PKHeX/PKM/PKMConverter.cs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/PKHeX/PKM/PKMConverter.cs b/PKHeX/PKM/PKMConverter.cs index 7a63066f6..fdcde8b70 100644 --- a/PKHeX/PKM/PKMConverter.cs +++ b/PKHeX/PKM/PKMConverter.cs @@ -248,12 +248,11 @@ internal static void checkEncrypted(ref byte[] pkm) case 5: if (BitConverter.ToUInt16(pkm, 4) != 0) // BK4 return; - for (int i = 8; i < PKX.SIZE_4STORED; i += 2) - chk += BitConverter.ToUInt16(pkm, i); - if (chk != BitConverter.ToUInt16(pkm, 0x06)) + if (BitConverter.ToUInt32(pkm, 0x64) != 0) pkm = PKX.decryptArray45(pkm); return; case 6: + case 7: if (BitConverter.ToUInt16(pkm, 0xC8) != 0 && BitConverter.ToUInt16(pkm, 0x58) != 0) pkm = PKX.decryptArray(pkm); return;