dataarea didn't work, let's try offset

This commit is contained in:
Matt Nadareski
2016-05-14 19:41:07 -07:00
parent f3b3b4c915
commit 9f0f9bda94

View File

@@ -449,23 +449,8 @@ namespace SabreTools.Helper
} }
// Get the roms from the machine // Get the roms from the machine
long dataAreaSize = -1;
switch (subreader.Name) switch (subreader.Name)
{ {
case "dataarea":
if (xtr.GetAttribute("size") == null)
{
dataAreaSize = -1;
}
else if (xtr.GetAttribute("size") != null && xtr.GetAttribute("size").Contains("0x"))
{
dataAreaSize = Convert.ToInt64(xtr.GetAttribute("size"), 16);
}
else if (xtr.GetAttribute("size") != null)
{
Int64.TryParse(xtr.GetAttribute("size"), out dataAreaSize);
}
break;
case "rom": case "rom":
case "disk": case "disk":
// If the rom is nodump, skip it // If the rom is nodump, skip it
@@ -475,24 +460,32 @@ namespace SabreTools.Helper
break; break;
} }
// If the size was in the dataarea, use that instead // Take care of hex-sized files
long size = -1; long size = -1;
if (dataAreaSize != -1) if (xtr.GetAttribute("size") != null && xtr.GetAttribute("size").Contains("0x"))
{ {
size = dataAreaSize; size = Convert.ToInt64(xtr.GetAttribute("size"), 16);
dataAreaSize = -1;
} }
else else if (xtr.GetAttribute("size") != null)
{ {
// Take care of hex-sized files Int64.TryParse(xtr.GetAttribute("size"), out size);
if (xtr.GetAttribute("size") != null && xtr.GetAttribute("size").Contains("0x")) }
{
size = Convert.ToInt64(xtr.GetAttribute("size"), 16); // Take care of hex-sized offsets
} long offset = -1;
else if (xtr.GetAttribute("size") != null) if (xtr.GetAttribute("offset") != null && xtr.GetAttribute("offset").Contains("0x"))
{ {
Int64.TryParse(xtr.GetAttribute("size"), out size); offset = Convert.ToInt64(xtr.GetAttribute("offset"), 16);
} }
else if (xtr.GetAttribute("offset") != null)
{
Int64.TryParse(xtr.GetAttribute("offset"), out offset);
}
// Add offset if possible
if (offset > 0)
{
size += offset;
} }
// Sanitize the hashes from null, hex sizes, and "true blank" strings // Sanitize the hashes from null, hex sizes, and "true blank" strings