mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Let's support Nodumps for output as well
This commit is contained in:
@@ -173,6 +173,7 @@ namespace SabreTools.Helper
|
||||
(rom.CRC != "" ? " crc " + rom.CRC.ToLowerInvariant() : "") +
|
||||
(rom.MD5 != "" ? " md5 " + rom.MD5.ToLowerInvariant() : "") +
|
||||
(rom.SHA1 != "" ? " sha1 " + rom.SHA1.ToLowerInvariant() : "") +
|
||||
(rom.Nodump ? " flags nodump" : "") +
|
||||
" )\n";
|
||||
break;
|
||||
case OutputFormat.MissFile:
|
||||
@@ -234,6 +235,7 @@ namespace SabreTools.Helper
|
||||
(rom.CRC != "" ? " crc=\"" + rom.CRC.ToLowerInvariant() + "\"" : "") +
|
||||
(rom.MD5 != "" ? " md5=\"" + rom.MD5.ToLowerInvariant() + "\"" : "") +
|
||||
(rom.SHA1 != "" ? " sha1=\"" + rom.SHA1.ToLowerInvariant() + "\"" : "") +
|
||||
(rom.Nodump ? " status=\"nodump\"" : "") +
|
||||
"/>\n";
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -288,12 +288,13 @@ namespace SabreTools.Helper
|
||||
{
|
||||
case "rom":
|
||||
case "disk":
|
||||
// If the rom is nodump, skip it
|
||||
// If the rom is nodump, flag it
|
||||
bool nodump = false;
|
||||
if (xtr.GetAttribute("flags") == "nodump" || xtr.GetAttribute("status") == "nodump")
|
||||
{
|
||||
logger.Log("Nodump detected: " +
|
||||
(xtr.GetAttribute("name") != null && xtr.GetAttribute("name") != "" ? "\"" + xtr.GetAttribute("name") + "\"" : "ROM NAME NOT FOUND") + "; skipping...");
|
||||
break;
|
||||
(xtr.GetAttribute("name") != null && xtr.GetAttribute("name") != "" ? "\"" + xtr.GetAttribute("name") + "\"" : "ROM NAME NOT FOUND"));
|
||||
nodump = true;
|
||||
}
|
||||
|
||||
// Take care of hex-sized files
|
||||
@@ -343,12 +344,12 @@ namespace SabreTools.Helper
|
||||
// If the file has no size and it's not the above case, skip and log
|
||||
else if (subreader.Name == "rom" && (size == 0 || size == -1))
|
||||
{
|
||||
logger.Warning("Potentially incomplete entry found for \"" + xtr.GetAttribute("name") + "\"");
|
||||
break;
|
||||
logger.Error("Incomplete entry for \"" + xtr.GetAttribute("name") + "\" will be output as nodump");
|
||||
nodump = true;
|
||||
}
|
||||
|
||||
// Only add the rom if there's useful information in it
|
||||
if (!(crc == "" && md5 == "" && sha1 == ""))
|
||||
if (!(crc == "" && md5 == "" && sha1 == "") || nodump)
|
||||
{
|
||||
// Get the new values to add
|
||||
key = size + "-" + crc;
|
||||
@@ -365,6 +366,7 @@ namespace SabreTools.Helper
|
||||
MD5 = md5,
|
||||
SHA1 = sha1,
|
||||
System = filename,
|
||||
Nodump = nodump,
|
||||
};
|
||||
|
||||
if (datdata.Roms.ContainsKey(key))
|
||||
|
||||
@@ -21,6 +21,7 @@ namespace SabreTools.Helper
|
||||
public string MD5;
|
||||
public string SHA1;
|
||||
public DupeType Dupe;
|
||||
public bool Nodump;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user