mirror of
https://github.com/SabreTools/SabreTools.Serialization.git
synced 2026-02-04 05:36:12 +00:00
Add CRC-16 and CRC-64 dat support
This commit is contained in:
@@ -247,6 +247,8 @@ namespace InfoPrint.Features
|
||||
builder.AppendLine($"CRC-16 checksum: {crc16}");
|
||||
if (hashes.TryGetValue(HashType.CRC32, out string? crc32) && crc32 != null)
|
||||
builder.AppendLine($"CRC-32 checksum: {crc32}");
|
||||
if (hashes.TryGetValue(HashType.CRC64, out string? crc64) && crc64 != null)
|
||||
builder.AppendLine($"CRC-64 checksum: {crc64}");
|
||||
if (hashes.TryGetValue(HashType.MD2, out string? md2) && md2 != null)
|
||||
builder.AppendLine($"MD2 hash: {md2}");
|
||||
if (hashes.TryGetValue(HashType.MD4, out string? md4) && md4 != null)
|
||||
|
||||
@@ -97,7 +97,9 @@ namespace SabreTools.Serialization.Test.CrossModel
|
||||
{
|
||||
Name = "XXXXXX",
|
||||
Size = "XXXXXX",
|
||||
CRC16 = "XXXXXX",
|
||||
CRC = "XXXXXX",
|
||||
CRC64 = "XXXXXX",
|
||||
MD2 = "XXXXXX",
|
||||
MD4 = "XXXXXX",
|
||||
MD5 = "XXXXXX",
|
||||
@@ -350,7 +352,9 @@ namespace SabreTools.Serialization.Test.CrossModel
|
||||
Assert.NotNull(rom);
|
||||
Assert.Equal("XXXXXX", rom.Name);
|
||||
Assert.Equal("XXXXXX", rom.Size);
|
||||
Assert.Equal("XXXXXX", rom.CRC16);
|
||||
Assert.Equal("XXXXXX", rom.CRC);
|
||||
Assert.Equal("XXXXXX", rom.CRC64);
|
||||
Assert.Equal("XXXXXX", rom.MD2);
|
||||
Assert.Equal("XXXXXX", rom.MD4);
|
||||
Assert.Equal("XXXXXX", rom.MD5);
|
||||
|
||||
@@ -150,7 +150,9 @@ namespace SabreTools.Serialization.Test.CrossModel
|
||||
{
|
||||
Name = "XXXXXX",
|
||||
Size = "XXXXXX",
|
||||
CRC16 = "XXXXXX",
|
||||
CRC = "XXXXXX",
|
||||
CRC64 = "XXXXXX",
|
||||
MD2 = "XXXXXX",
|
||||
MD4 = "XXXXXX",
|
||||
MD5 = "XXXXXX",
|
||||
@@ -464,7 +466,9 @@ namespace SabreTools.Serialization.Test.CrossModel
|
||||
Assert.NotNull(rom);
|
||||
Assert.Equal("XXXXXX", rom.Name);
|
||||
Assert.Equal("XXXXXX", rom.Size);
|
||||
Assert.Equal("XXXXXX", rom.CRC16);
|
||||
Assert.Equal("XXXXXX", rom.CRC);
|
||||
Assert.Equal("XXXXXX", rom.CRC64);
|
||||
Assert.Equal("XXXXXX", rom.MD2);
|
||||
Assert.Equal("XXXXXX", rom.MD4);
|
||||
Assert.Equal("XXXXXX", rom.MD5);
|
||||
|
||||
@@ -214,7 +214,9 @@ namespace SabreTools.Serialization.Test.Readers
|
||||
{
|
||||
Name = "XXXXXX",
|
||||
Size = "XXXXXX",
|
||||
CRC16 = "XXXXXX",
|
||||
CRC = "XXXXXX",
|
||||
CRC64 = "XXXXXX",
|
||||
MD2 = "XXXXXX",
|
||||
MD4 = "XXXXXX",
|
||||
MD5 = "XXXXXX",
|
||||
@@ -467,7 +469,9 @@ namespace SabreTools.Serialization.Test.Readers
|
||||
Assert.NotNull(rom);
|
||||
Assert.Equal("XXXXXX", rom.Name);
|
||||
Assert.Equal("XXXXXX", rom.Size);
|
||||
Assert.Equal("XXXXXX", rom.CRC16);
|
||||
Assert.Equal("XXXXXX", rom.CRC);
|
||||
Assert.Equal("XXXXXX", rom.CRC64);
|
||||
Assert.Equal("XXXXXX", rom.MD2);
|
||||
Assert.Equal("XXXXXX", rom.MD4);
|
||||
Assert.Equal("XXXXXX", rom.MD5);
|
||||
|
||||
@@ -215,7 +215,9 @@ namespace SabreTools.Serialization.Test.Readers
|
||||
{
|
||||
Name = "XXXXXX",
|
||||
Size = "XXXXXX",
|
||||
CRC16 = "XXXXXX",
|
||||
CRC = "XXXXXX",
|
||||
CRC64 = "XXXXXX",
|
||||
MD2 = "XXXXXX",
|
||||
MD4 = "XXXXXX",
|
||||
MD5 = "XXXXXX",
|
||||
|
||||
@@ -274,7 +274,9 @@ namespace SabreTools.Serialization.CrossModel
|
||||
{
|
||||
Name = item.ReadString(Data.Models.Metadata.Rom.NameKey),
|
||||
Size = item.ReadString(Data.Models.Metadata.Rom.SizeKey),
|
||||
CRC16 = item.ReadString(Data.Models.Metadata.Rom.CRC16Key),
|
||||
CRC = item.ReadString(Data.Models.Metadata.Rom.CRCKey),
|
||||
CRC64 = item.ReadString(Data.Models.Metadata.Rom.CRC64Key),
|
||||
MD2 = item.ReadString(Data.Models.Metadata.Rom.MD2Key),
|
||||
MD4 = item.ReadString(Data.Models.Metadata.Rom.MD4Key),
|
||||
MD5 = item.ReadString(Data.Models.Metadata.Rom.MD5Key),
|
||||
|
||||
@@ -289,7 +289,9 @@ namespace SabreTools.Serialization.CrossModel
|
||||
{
|
||||
[Data.Models.Metadata.Rom.NameKey] = item.Name,
|
||||
[Data.Models.Metadata.Rom.SizeKey] = item.Size,
|
||||
[Data.Models.Metadata.Rom.CRC16Key] = item.CRC16,
|
||||
[Data.Models.Metadata.Rom.CRCKey] = item.CRC,
|
||||
[Data.Models.Metadata.Rom.CRC64Key] = item.CRC64,
|
||||
[Data.Models.Metadata.Rom.MD2Key] = item.MD2,
|
||||
[Data.Models.Metadata.Rom.MD4Key] = item.MD4,
|
||||
[Data.Models.Metadata.Rom.MD5Key] = item.MD5,
|
||||
|
||||
@@ -301,7 +301,9 @@ namespace SabreTools.Serialization.CrossModel
|
||||
{
|
||||
Name = item.ReadString(Data.Models.Metadata.Rom.NameKey),
|
||||
Size = item.ReadString(Data.Models.Metadata.Rom.SizeKey),
|
||||
CRC16 = item.ReadString(Data.Models.Metadata.Rom.CRC16Key),
|
||||
CRC = item.ReadString(Data.Models.Metadata.Rom.CRCKey),
|
||||
CRC64 = item.ReadString(Data.Models.Metadata.Rom.CRC64Key),
|
||||
MD2 = item.ReadString(Data.Models.Metadata.Rom.MD2Key),
|
||||
MD4 = item.ReadString(Data.Models.Metadata.Rom.MD4Key),
|
||||
MD5 = item.ReadString(Data.Models.Metadata.Rom.MD5Key),
|
||||
|
||||
@@ -296,7 +296,9 @@ namespace SabreTools.Serialization.CrossModel
|
||||
{
|
||||
[Data.Models.Metadata.Rom.NameKey] = item.Name,
|
||||
[Data.Models.Metadata.Rom.SizeKey] = item.Size,
|
||||
[Data.Models.Metadata.Rom.CRC16Key] = item.CRC16,
|
||||
[Data.Models.Metadata.Rom.CRCKey] = item.CRC,
|
||||
[Data.Models.Metadata.Rom.CRC64Key] = item.CRC64,
|
||||
[Data.Models.Metadata.Rom.MD2Key] = item.MD2,
|
||||
[Data.Models.Metadata.Rom.MD4Key] = item.MD4,
|
||||
[Data.Models.Metadata.Rom.MD5Key] = item.MD5,
|
||||
|
||||
@@ -36,7 +36,13 @@ namespace SabreTools.Data.Models.ClrMamePro
|
||||
|
||||
#region Hash Extensions
|
||||
|
||||
/// <remarks>md2; Appears after CRC</remarks>
|
||||
/// <remarks>crc16; Appears before CRC</remarks>
|
||||
public string? CRC16 { get; set; }
|
||||
|
||||
/// <remarks>crc64; Appears after CRC</remarks>
|
||||
public string? CRC64 { get; set; }
|
||||
|
||||
/// <remarks>md2; Appears after CRC64</remarks>
|
||||
public string? MD2 { get; set; }
|
||||
|
||||
/// <remarks>md4; Appears after MD2</remarks>
|
||||
@@ -102,4 +108,4 @@ namespace SabreTools.Data.Models.ClrMamePro
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,9 +15,17 @@ namespace SabreTools.Data.Models.Logiqx
|
||||
[XmlAttribute("size")]
|
||||
public string? Size { get; set; }
|
||||
|
||||
/// <remarks>Hash extension</remarks>
|
||||
[XmlAttribute("crc16")]
|
||||
public string? CRC16 { get; set; }
|
||||
|
||||
[XmlAttribute("crc")]
|
||||
public string? CRC { get; set; }
|
||||
|
||||
/// <remarks>Hash extension</remarks>
|
||||
[XmlAttribute("crc64")]
|
||||
public string? CRC64 { get; set; }
|
||||
|
||||
/// <remarks>Hash extension</remarks>
|
||||
[XmlAttribute("md2")]
|
||||
public string? MD2 { get; set; }
|
||||
@@ -90,4 +98,4 @@ namespace SabreTools.Data.Models.Logiqx
|
||||
[XmlAttribute("mia")]
|
||||
public string? MIA { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -50,6 +50,12 @@ namespace SabreTools.Data.Models.Metadata
|
||||
/// <remarks>string; Also "crc32" in ArchiveDotOrg.File</remarks>
|
||||
public const string CRCKey = "crc";
|
||||
|
||||
/// <remarks>string</remarks>
|
||||
public const string CRC16Key = "crc16";
|
||||
|
||||
/// <remarks>string</remarks>
|
||||
public const string CRC64Key = "crc64";
|
||||
|
||||
/// <remarks>string; ArchiveDotOrg.File</remarks>
|
||||
public const string CreatorKey = "creator";
|
||||
|
||||
|
||||
@@ -473,6 +473,12 @@ namespace SabreTools.Serialization.Readers
|
||||
case "crc":
|
||||
rom.CRC = kvp.Value;
|
||||
break;
|
||||
case "crc16":
|
||||
rom.CRC16 = kvp.Value;
|
||||
break;
|
||||
case "crc64":
|
||||
rom.CRC64 = kvp.Value;
|
||||
break;
|
||||
case "md2":
|
||||
rom.MD2 = kvp.Value;
|
||||
break;
|
||||
|
||||
@@ -251,7 +251,9 @@ namespace SabreTools.Serialization.Writers
|
||||
writer.WriteStartElement("rom");
|
||||
writer.WriteRequiredAttributeString("name", rom.Name, throwOnError: true);
|
||||
writer.WriteRequiredAttributeString("size", rom.Size, throwOnError: true);
|
||||
writer.WriteOptionalAttributeString("crc16", rom.CRC16);
|
||||
writer.WriteOptionalAttributeString("crc", rom.CRC);
|
||||
writer.WriteOptionalAttributeString("crc64", rom.CRC64);
|
||||
writer.WriteOptionalAttributeString("md2", rom.MD2);
|
||||
writer.WriteOptionalAttributeString("md4", rom.MD4);
|
||||
writer.WriteOptionalAttributeString("md5", rom.MD5);
|
||||
|
||||
Reference in New Issue
Block a user