Kinda support MD2 and MD4 files?

This commit is contained in:
Matt Nadareski
2025-01-08 17:17:16 -05:00
parent aeba336925
commit cd908e136e
6 changed files with 58 additions and 8 deletions

View File

@@ -55,6 +55,8 @@ namespace SabreTools.DatFiles
DatFormat.MissFile => new Missfile(baseDat),
DatFormat.OfflineList => new OfflineList(baseDat),
DatFormat.OpenMSX => new OpenMSX(baseDat),
DatFormat.RedumpMD2 => new Md2File(baseDat),
DatFormat.RedumpMD4 => new Md4File(baseDat),
DatFormat.RedumpMD5 => new Md5File(baseDat),
DatFormat.RedumpSFV => new SfvFile(baseDat),
DatFormat.RedumpSHA1 => new Sha1File(baseDat),

View File

@@ -523,6 +523,36 @@ namespace SabreTools.DatFiles
#endregion
#region .md2
// Redump MD2
#if NET20 || NET35
if ((datFormat & DatFormat.RedumpMD2) != 0)
#else
if (datFormat.HasFlag(DatFormat.RedumpMD2))
#endif
{
outfileNames.Add(DatFormat.RedumpMD2, CreateOutFileNamesHelper(outDir, ".md2", overwrite));
usedExtensions.Add(".md2");
};
#endregion
#region .md4
// Redump MD4
#if NET20 || NET35
if ((datFormat & DatFormat.RedumpMD4) != 0)
#else
if (datFormat.HasFlag(DatFormat.RedumpMD4))
#endif
{
outfileNames.Add(DatFormat.RedumpMD4, CreateOutFileNamesHelper(outDir, ".md4", overwrite));
usedExtensions.Add(".md4");
};
#endregion
#region .md5
// Redump MD5

View File

@@ -7,7 +7,7 @@ namespace SabreTools.DatFiles
/// DAT output formats
/// </summary>
[Flags]
public enum DatFormat
public enum DatFormat : ulong
{
#region XML Formats
@@ -123,40 +123,50 @@ namespace SabreTools.DatFiles
/// </summary>
RedumpSFV = 1 << 19,
/// <summary>
/// MD2 hash list
/// </summary>
RedumpMD2 = 1 << 20,
/// <summary>
/// MD4 hash list
/// </summary>
RedumpMD4 = 1 << 21,
/// <summary>
/// MD5 hash list
/// </summary>
RedumpMD5 = 1 << 20,
RedumpMD5 = 1 << 22,
/// <summary>
/// SHA-1 hash list
/// </summary>
RedumpSHA1 = 1 << 21,
RedumpSHA1 = 1 << 23,
/// <summary>
/// SHA-256 hash list
/// </summary>
RedumpSHA256 = 1 << 22,
RedumpSHA256 = 1 << 24,
/// <summary>
/// SHA-384 hash list
/// </summary>
RedumpSHA384 = 1 << 23,
RedumpSHA384 = 1 << 25,
/// <summary>
/// SHA-512 hash list
/// </summary>
RedumpSHA512 = 1 << 24,
RedumpSHA512 = 1 << 26,
/// <summary>
/// SpamSum hash list
/// </summary>
RedumpSpamSum = 1 << 25,
RedumpSpamSum = 1 << 27,
#endregion
// Specialty combinations
ALL = Int32.MaxValue,
ALL = ulong.MaxValue,
}
/// <summary>

View File

@@ -148,6 +148,10 @@ namespace SabreTools.DatFiles
return DatFormat.CSV;
case "json":
return DatFormat.SabreJSON;
case "md2":
return DatFormat.RedumpMD2;
case "md4":
return DatFormat.RedumpMD4;
case "md5":
return DatFormat.RedumpMD5;
case "sfv":

View File

@@ -29,6 +29,8 @@ namespace SabreTools.Test.DatTools
[InlineData("test-smdb.txt", DatFormat.EverdriveSMDB, 1)]
//[InlineData(null, DatFormat.SabreJSON, 0)] // TODO: Create good-enough test file for this
[InlineData("test-sfv.sfv", DatFormat.RedumpSFV, 1)]
//[InlineData("test-md2.md2", DatFormat.RedumpMD2, 1)] // TODO: Create good-enough test file for this
//[InlineData("test-md4.md4", DatFormat.RedumpMD4, 1)] // TODO: Create good-enough test file for this
[InlineData("test-md5.md5", DatFormat.RedumpMD5, 1)]
[InlineData("test-sha1.sha1", DatFormat.RedumpSHA1, 1)]
[InlineData("test-sha256.sha256", DatFormat.RedumpSHA256, 1)]

View File

@@ -2305,6 +2305,8 @@ Some special strings that can be used:
"json" or "sj" or "sabrejson" => DatFormat.SabreJSON,
"lr" or "listrom" => DatFormat.Listrom,
"lx" or "listxml" => DatFormat.Listxml,
"md2" => DatFormat.RedumpMD2,
"md4" => DatFormat.RedumpMD4,
"md5" => DatFormat.RedumpMD5,
"miss" or "missfile" => DatFormat.MissFile,
"msx" or "openmsx" => DatFormat.OpenMSX,