diff --git a/SabreHelper/RomManipulation.cs b/SabreHelper/RomManipulation.cs index ed364835..95fb31a6 100644 --- a/SabreHelper/RomManipulation.cs +++ b/SabreHelper/RomManipulation.cs @@ -458,11 +458,16 @@ namespace SabreTools.Helper Int64.TryParse(xtr.GetAttribute("size"), out size); } + // Take care of hex-prefixed hashes + string crc = (xtr.GetAttribute("crc") != null ? xtr.GetAttribute("crc").ToLowerInvariant().Trim() : ""); + crc = (crc.StartsWith("0x") ? crc.Remove(0, 2) : crc); + string md5 = (xtr.GetAttribute("md5") != null ? xtr.GetAttribute("md5").ToLowerInvariant().Trim() : ""); + md5 = (md5.StartsWith("0x") ? md5.Remove(0, 2) : md5); + string sha1 = (xtr.GetAttribute("sha1") != null ? xtr.GetAttribute("sha1").ToLowerInvariant().Trim() : ""); + sha1 = (sha1.StartsWith("0x") ? sha1.Remove(0, 2) : sha1); + // Get the new values to add - string key = (xtr.GetAttribute("crc") != null ? xtr.GetAttribute("crc").ToLowerInvariant().Trim() : "") + "-" + - (xtr.GetAttribute("md5") != null ? xtr.GetAttribute("md5").ToLowerInvariant().Trim() : "") + "-" + - (xtr.GetAttribute("sha1") != null ? xtr.GetAttribute("sha1").ToLowerInvariant().Trim() : "") + "-" + - size; + string key = crc + "-" + md5 + "-" + sha1 + "-" + size; RomData value = new RomData { Game = tempname, @@ -471,9 +476,9 @@ namespace SabreTools.Helper SystemID = sysid, SourceID = srcid, Size = size, - CRC = (xtr.GetAttribute("crc") != null ? xtr.GetAttribute("crc").ToLowerInvariant().Trim() : ""), - MD5 = (xtr.GetAttribute("md5") != null ? xtr.GetAttribute("md5").ToLowerInvariant().Trim() : ""), - SHA1 = (xtr.GetAttribute("sha1") != null ? xtr.GetAttribute("sha1").ToLowerInvariant().Trim() : ""), + CRC = crc, + MD5 = md5, + SHA1 = sha1, System = filename, };