diff --git a/SabreTools.Serialization.Test/MetadataDeserializationTests.cs b/SabreTools.Serialization.Test/MetadataDeserializationTests.cs index 29034a79..13595ab0 100644 --- a/SabreTools.Serialization.Test/MetadataDeserializationTests.cs +++ b/SabreTools.Serialization.Test/MetadataDeserializationTests.cs @@ -235,10 +235,18 @@ namespace SabreTools.Serialization.Test [Theory] [InlineData("test-sfv-files.sfv", HashType.CRC32, 100)] - [InlineData("test-sfv-files.sfv", HashType.CRC32_ISO, 100)] - [InlineData("test-sfv-files.sfv", HashType.CRC32_Naive, 100)] - [InlineData("test-sfv-files.sfv", HashType.CRC32_Optimized, 100)] - [InlineData("test-sfv-files.sfv", HashType.CRC32_Parallel, 100)] + [InlineData("test-sfv-files.sfv", HashType.CRC32_AIXM, 100)] // Not technically the same as normal CRC-32 + [InlineData("test-sfv-files.sfv", HashType.CRC32_AUTOSAR, 100)] // Not technically the same as normal CRC-32 + [InlineData("test-sfv-files.sfv", HashType.CRC32_BASE91D, 100)] // Not technically the same as normal CRC-32 + [InlineData("test-sfv-files.sfv", HashType.CRC32_BZIP2, 100)] // Not technically the same as normal CRC-32 + [InlineData("test-sfv-files.sfv", HashType.CRC32_CDROMEDC, 100)] // Not technically the same as normal CRC-32 + [InlineData("test-sfv-files.sfv", HashType.CRC32_CKSUM, 100)] // Not technically the same as normal CRC-32 + [InlineData("test-sfv-files.sfv", HashType.CRC32_ISCSI, 100)] // Not technically the same as normal CRC-32 + [InlineData("test-sfv-files.sfv", HashType.CRC32_ISOHDLC, 100)] + [InlineData("test-sfv-files.sfv", HashType.CRC32_JAMCRC, 100)] // Not technically the same as normal CRC-32 + [InlineData("test-sfv-files.sfv", HashType.CRC32_MEF, 100)] // Not technically the same as normal CRC-32 + [InlineData("test-sfv-files.sfv", HashType.CRC32_MPEG2, 100)] // Not technically the same as normal CRC-32 + [InlineData("test-sfv-files.sfv", HashType.CRC32_XFER, 100)] // Not technically the same as normal CRC-32 [InlineData("test-md5-files.md5", HashType.MD5, 100)] [InlineData("test-sha1-files.sha1", HashType.SHA1, 100)] [InlineData("test-sha256.sha256", HashType.SHA256, 1)] @@ -259,10 +267,18 @@ namespace SabreTools.Serialization.Test switch (hash) { case HashType.CRC32: - case HashType.CRC32_ISO: - case HashType.CRC32_Naive: - case HashType.CRC32_Optimized: - case HashType.CRC32_Parallel: + case HashType.CRC32_AIXM: + case HashType.CRC32_AUTOSAR: + case HashType.CRC32_BASE91D: + case HashType.CRC32_BZIP2: + case HashType.CRC32_CDROMEDC: + case HashType.CRC32_CKSUM: + case HashType.CRC32_ISCSI: + case HashType.CRC32_ISOHDLC: + case HashType.CRC32_JAMCRC: + case HashType.CRC32_MEF: + case HashType.CRC32_MPEG2: + case HashType.CRC32_XFER: Assert.NotNull(dat.SFV); Assert.Equal(count, dat.SFV.Length); break; diff --git a/SabreTools.Serialization/CrossModel/Hashfile.Deserializer.cs b/SabreTools.Serialization/CrossModel/Hashfile.Deserializer.cs index d95f567c..98862a8a 100644 --- a/SabreTools.Serialization/CrossModel/Hashfile.Deserializer.cs +++ b/SabreTools.Serialization/CrossModel/Hashfile.Deserializer.cs @@ -102,12 +102,24 @@ namespace SabreTools.Serialization.CrossModel return new Models.Hashfile.Hashfile { - SFV = hash == HashType.CRC32 || hash == HashType.CRC32_ISO || hash == HashType.CRC32_Naive || hash == HashType.CRC32_Optimized || hash == HashType.CRC32_Parallel - ? roms - .Where(r => r != null) - .Select(ConvertToSFV) - .ToArray() - : null, + SFV = hash == HashType.CRC32 + || hash == HashType.CRC32_AIXM + || hash == HashType.CRC32_AUTOSAR + || hash == HashType.CRC32_BASE91D + || hash == HashType.CRC32_BZIP2 + || hash == HashType.CRC32_CDROMEDC + || hash == HashType.CRC32_CKSUM + || hash == HashType.CRC32_ISCSI + || hash == HashType.CRC32_ISOHDLC + || hash == HashType.CRC32_JAMCRC + || hash == HashType.CRC32_MEF + || hash == HashType.CRC32_MPEG2 + || hash == HashType.CRC32_XFER + ? roms + .Where(r => r != null) + .Select(ConvertToSFV) + .ToArray() + : null, MD5 = hash == HashType.MD5 ? roms .Where(r => r != null) diff --git a/SabreTools.Serialization/Deserializers/Hashfile.cs b/SabreTools.Serialization/Deserializers/Hashfile.cs index 8f839c4c..b1783648 100644 --- a/SabreTools.Serialization/Deserializers/Hashfile.cs +++ b/SabreTools.Serialization/Deserializers/Hashfile.cs @@ -106,10 +106,18 @@ namespace SabreTools.Serialization.Deserializers switch (hash) { case HashType.CRC32: - case HashType.CRC32_ISO: - case HashType.CRC32_Naive: - case HashType.CRC32_Optimized: - case HashType.CRC32_Parallel: + case HashType.CRC32_AIXM: + case HashType.CRC32_AUTOSAR: + case HashType.CRC32_BASE91D: + case HashType.CRC32_BZIP2: + case HashType.CRC32_CDROMEDC: + case HashType.CRC32_CKSUM: + case HashType.CRC32_ISCSI: + case HashType.CRC32_ISOHDLC: + case HashType.CRC32_JAMCRC: + case HashType.CRC32_MEF: + case HashType.CRC32_MPEG2: + case HashType.CRC32_XFER: var sfv = new SFV { #if NETFRAMEWORK @@ -201,10 +209,18 @@ namespace SabreTools.Serialization.Deserializers switch (hash) { case HashType.CRC32: - case HashType.CRC32_ISO: - case HashType.CRC32_Naive: - case HashType.CRC32_Optimized: - case HashType.CRC32_Parallel: + case HashType.CRC32_AIXM: + case HashType.CRC32_AUTOSAR: + case HashType.CRC32_BASE91D: + case HashType.CRC32_BZIP2: + case HashType.CRC32_CDROMEDC: + case HashType.CRC32_CKSUM: + case HashType.CRC32_ISCSI: + case HashType.CRC32_ISOHDLC: + case HashType.CRC32_JAMCRC: + case HashType.CRC32_MEF: + case HashType.CRC32_MPEG2: + case HashType.CRC32_XFER: dat.SFV = hashes.Cast().ToArray(); break; case HashType.MD5: diff --git a/SabreTools.Serialization/SabreTools.Serialization.csproj b/SabreTools.Serialization/SabreTools.Serialization.csproj index 26044275..acb40400 100644 --- a/SabreTools.Serialization/SabreTools.Serialization.csproj +++ b/SabreTools.Serialization/SabreTools.Serialization.csproj @@ -45,7 +45,7 @@ - + diff --git a/SabreTools.Serialization/Serializers/Hashfile.cs b/SabreTools.Serialization/Serializers/Hashfile.cs index f28068e8..2a028a3b 100644 --- a/SabreTools.Serialization/Serializers/Hashfile.cs +++ b/SabreTools.Serialization/Serializers/Hashfile.cs @@ -101,10 +101,18 @@ namespace SabreTools.Serialization.Serializers switch (hash) { case HashType.CRC32: - case HashType.CRC32_ISO: - case HashType.CRC32_Naive: - case HashType.CRC32_Optimized: - case HashType.CRC32_Parallel: + case HashType.CRC32_AIXM: + case HashType.CRC32_AUTOSAR: + case HashType.CRC32_BASE91D: + case HashType.CRC32_BZIP2: + case HashType.CRC32_CDROMEDC: + case HashType.CRC32_CKSUM: + case HashType.CRC32_ISCSI: + case HashType.CRC32_ISOHDLC: + case HashType.CRC32_JAMCRC: + case HashType.CRC32_MEF: + case HashType.CRC32_MPEG2: + case HashType.CRC32_XFER: WriteSFV(obj.SFV, writer); break; case HashType.MD5: