mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Even more fun with zero-byte files
This commit is contained in:
@@ -18,12 +18,6 @@ namespace SabreTools
|
|||||||
private bool _fake;
|
private bool _fake;
|
||||||
private Logger _logger;
|
private Logger _logger;
|
||||||
|
|
||||||
// Static required variables
|
|
||||||
private static long sizezero = 0;
|
|
||||||
private static string crczero = "00000000";
|
|
||||||
private static string md5zero = "d41d8cd98f00b204e9800998ecf8427e";
|
|
||||||
private static string sha1zero = "da39a3ee5e6b4b0d3255bfef95601890afd80709";
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Instantiate an OfflineMerge object
|
/// Instantiate an OfflineMerge object
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -323,10 +317,10 @@ namespace SabreTools
|
|||||||
for (int i = 0; i < roms.Count; i++)
|
for (int i = 0; i < roms.Count; i++)
|
||||||
{
|
{
|
||||||
RomData rom = roms[i];
|
RomData rom = roms[i];
|
||||||
rom.Size = sizezero;
|
rom.Size = RomManipulation.SizeZero;
|
||||||
rom.CRC = crczero;
|
rom.CRC = RomManipulation.CRCZero;
|
||||||
rom.MD5 = md5zero;
|
rom.MD5 = RomManipulation.MD5Zero;
|
||||||
rom.SHA1 = sha1zero;
|
rom.SHA1 = RomManipulation.SHA1Zero;
|
||||||
temp.Add(rom);
|
temp.Add(rom);
|
||||||
}
|
}
|
||||||
netNew[key] = temp;
|
netNew[key] = temp;
|
||||||
@@ -341,10 +335,10 @@ namespace SabreTools
|
|||||||
for (int i = 0; i < roms.Count; i++)
|
for (int i = 0; i < roms.Count; i++)
|
||||||
{
|
{
|
||||||
RomData rom = roms[i];
|
RomData rom = roms[i];
|
||||||
rom.Size = sizezero;
|
rom.Size = RomManipulation.SizeZero;
|
||||||
rom.CRC = crczero;
|
rom.CRC = RomManipulation.CRCZero;
|
||||||
rom.MD5 = md5zero;
|
rom.MD5 = RomManipulation.MD5Zero;
|
||||||
rom.SHA1 = sha1zero;
|
rom.SHA1 = RomManipulation.SHA1Zero;
|
||||||
temp.Add(rom);
|
temp.Add(rom);
|
||||||
}
|
}
|
||||||
unneeded[key] = temp;
|
unneeded[key] = temp;
|
||||||
@@ -359,10 +353,10 @@ namespace SabreTools
|
|||||||
for (int i = 0; i < roms.Count; i++)
|
for (int i = 0; i < roms.Count; i++)
|
||||||
{
|
{
|
||||||
RomData rom = roms[i];
|
RomData rom = roms[i];
|
||||||
rom.Size = sizezero;
|
rom.Size = RomManipulation.SizeZero;
|
||||||
rom.CRC = crczero;
|
rom.CRC = RomManipulation.CRCZero;
|
||||||
rom.MD5 = md5zero;
|
rom.MD5 = RomManipulation.MD5Zero;
|
||||||
rom.SHA1 = sha1zero;
|
rom.SHA1 = RomManipulation.SHA1Zero;
|
||||||
temp.Add(rom);
|
temp.Add(rom);
|
||||||
}
|
}
|
||||||
newMissing[key] = temp;
|
newMissing[key] = temp;
|
||||||
@@ -377,10 +371,10 @@ namespace SabreTools
|
|||||||
for (int i = 0; i < roms.Count; i++)
|
for (int i = 0; i < roms.Count; i++)
|
||||||
{
|
{
|
||||||
RomData rom = roms[i];
|
RomData rom = roms[i];
|
||||||
rom.Size = sizezero;
|
rom.Size = RomManipulation.SizeZero;
|
||||||
rom.CRC = crczero;
|
rom.CRC = RomManipulation.CRCZero;
|
||||||
rom.MD5 = md5zero;
|
rom.MD5 = RomManipulation.MD5Zero;
|
||||||
rom.SHA1 = sha1zero;
|
rom.SHA1 = RomManipulation.SHA1Zero;
|
||||||
temp.Add(rom);
|
temp.Add(rom);
|
||||||
}
|
}
|
||||||
have[key] = temp;
|
have[key] = temp;
|
||||||
@@ -438,10 +432,10 @@ namespace SabreTools
|
|||||||
for (int i = 0; i < roms.Count; i++)
|
for (int i = 0; i < roms.Count; i++)
|
||||||
{
|
{
|
||||||
RomData rom = roms[i];
|
RomData rom = roms[i];
|
||||||
rom.Size = sizezero;
|
rom.Size = RomManipulation.SizeZero;
|
||||||
rom.CRC = crczero;
|
rom.CRC = RomManipulation.CRCZero;
|
||||||
rom.MD5 = md5zero;
|
rom.MD5 = RomManipulation.MD5Zero;
|
||||||
rom.SHA1 = sha1zero;
|
rom.SHA1 = RomManipulation.SHA1Zero;
|
||||||
temp.Add(rom);
|
temp.Add(rom);
|
||||||
}
|
}
|
||||||
have[key] = temp;
|
have[key] = temp;
|
||||||
@@ -495,10 +489,10 @@ namespace SabreTools
|
|||||||
for (int i = 0; i < roms.Count; i++)
|
for (int i = 0; i < roms.Count; i++)
|
||||||
{
|
{
|
||||||
RomData rom = roms[i];
|
RomData rom = roms[i];
|
||||||
rom.Size = sizezero;
|
rom.Size = RomManipulation.SizeZero;
|
||||||
rom.CRC = crczero;
|
rom.CRC = RomManipulation.CRCZero;
|
||||||
rom.MD5 = md5zero;
|
rom.MD5 = RomManipulation.MD5Zero;
|
||||||
rom.SHA1 = sha1zero;
|
rom.SHA1 = RomManipulation.SHA1Zero;
|
||||||
temp.Add(rom);
|
temp.Add(rom);
|
||||||
}
|
}
|
||||||
have[key] = temp;
|
have[key] = temp;
|
||||||
|
|||||||
@@ -95,7 +95,11 @@ namespace SabreTools.Helper
|
|||||||
if (old)
|
if (old)
|
||||||
{
|
{
|
||||||
state += "\t" + rom.Type + " ( name \"" + rom.Name + "\"" +
|
state += "\t" + rom.Type + " ( name \"" + rom.Name + "\"" +
|
||||||
(rom.Size != -1 ? " size " + rom.Size : "") +
|
(rom.Size != -1 &&
|
||||||
|
rom.Size != 0 &&
|
||||||
|
rom.CRC != RomManipulation.CRCZero &&
|
||||||
|
rom.MD5 != RomManipulation.MD5Zero &&
|
||||||
|
rom.SHA1 != RomManipulation.SHA1Zero ? " size " + rom.Size : "") +
|
||||||
(rom.CRC != "" ? " crc " + rom.CRC.ToLowerInvariant() : "") +
|
(rom.CRC != "" ? " crc " + rom.CRC.ToLowerInvariant() : "") +
|
||||||
(rom.MD5 != "" ? " md5 " + rom.MD5.ToLowerInvariant() : "") +
|
(rom.MD5 != "" ? " md5 " + rom.MD5.ToLowerInvariant() : "") +
|
||||||
(rom.SHA1 != "" ? " sha1 " + rom.SHA1.ToLowerInvariant() : "") +
|
(rom.SHA1 != "" ? " sha1 " + rom.SHA1.ToLowerInvariant() : "") +
|
||||||
@@ -104,7 +108,11 @@ namespace SabreTools.Helper
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
state += "\t\t<" + rom.Type + " name=\"" + HttpUtility.HtmlEncode(rom.Name) + "\"" +
|
state += "\t\t<" + rom.Type + " name=\"" + HttpUtility.HtmlEncode(rom.Name) + "\"" +
|
||||||
(rom.Size != -1 ? " size=\"" + rom.Size + "\"" : "") +
|
(rom.Size != -1 &&
|
||||||
|
rom.Size != 0 &&
|
||||||
|
rom.CRC != RomManipulation.CRCZero &&
|
||||||
|
rom.MD5 != RomManipulation.MD5Zero &&
|
||||||
|
rom.SHA1 != RomManipulation.SHA1Zero ? " size=\"" + rom.Size + "\"" : "") +
|
||||||
(rom.CRC != "" ? " crc=\"" + rom.CRC.ToLowerInvariant() + "\"" : "") +
|
(rom.CRC != "" ? " crc=\"" + rom.CRC.ToLowerInvariant() + "\"" : "") +
|
||||||
(rom.MD5 != "" ? " md5=\"" + rom.MD5.ToLowerInvariant() + "\"" : "") +
|
(rom.MD5 != "" ? " md5=\"" + rom.MD5.ToLowerInvariant() + "\"" : "") +
|
||||||
(rom.SHA1 != "" ? " sha1=\"" + rom.SHA1.ToLowerInvariant() + "\"" : "") +
|
(rom.SHA1 != "" ? " sha1=\"" + rom.SHA1.ToLowerInvariant() + "\"" : "") +
|
||||||
|
|||||||
@@ -11,10 +11,10 @@ namespace SabreTools.Helper
|
|||||||
public class RomManipulation
|
public class RomManipulation
|
||||||
{
|
{
|
||||||
// 0-byte file constants
|
// 0-byte file constants
|
||||||
private static long sizezero = 0;
|
public static long SizeZero = 0;
|
||||||
private static string crczero = "00000000";
|
public static string CRCZero = "00000000";
|
||||||
private static string md5zero = "d41d8cd98f00b204e9800998ecf8427e";
|
public static string MD5Zero = "d41d8cd98f00b204e9800998ecf8427e";
|
||||||
private static string sha1zero = "da39a3ee5e6b4b0d3255bfef95601890afd80709";
|
public static string SHA1Zero = "da39a3ee5e6b4b0d3255bfef95601890afd80709";
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Return if the file is XML or not
|
/// Return if the file is XML or not
|
||||||
@@ -483,15 +483,15 @@ namespace SabreTools.Helper
|
|||||||
sha1 = (sha1 == "-" ? "" : sha1);
|
sha1 = (sha1 == "-" ? "" : sha1);
|
||||||
|
|
||||||
// If we have a rom and it's missing size AND the hashes match a 0-byte file, fill in the rest of the info
|
// If we have a rom and it's missing size AND the hashes match a 0-byte file, fill in the rest of the info
|
||||||
if (subreader.Name == "rom" && size == 0 && (crc == crczero || md5 == md5zero || sha1 == sha1zero))
|
if (subreader.Name == "rom" && (size == 0 || size == -1) && (crc == CRCZero || md5 == MD5Zero || sha1 == SHA1Zero))
|
||||||
{
|
{
|
||||||
size = 0;
|
size = SizeZero;
|
||||||
crc = crczero;
|
crc = CRCZero;
|
||||||
md5 = md5zero;
|
md5 = MD5Zero;
|
||||||
sha1 = sha1zero;
|
sha1 = SHA1Zero;
|
||||||
}
|
}
|
||||||
// If the file has no size and it's not the above case, skip and log
|
// If the file has no size and it's not the above case, skip and log
|
||||||
else if (subreader.Name == "rom" && size == 0)
|
else if (subreader.Name == "rom" && (size == 0 || size == -1))
|
||||||
{
|
{
|
||||||
logger.Warning("Potentially incomplete entry found for " + xtr.GetAttribute("name"));
|
logger.Warning("Potentially incomplete entry found for " + xtr.GetAttribute("name"));
|
||||||
break;
|
break;
|
||||||
@@ -605,7 +605,7 @@ namespace SabreTools.Helper
|
|||||||
bool shouldcont = false;
|
bool shouldcont = false;
|
||||||
if (rom.Type == "rom" && last.Type == "rom")
|
if (rom.Type == "rom" && last.Type == "rom")
|
||||||
{
|
{
|
||||||
shouldcont = ((rom.Size != -1 && rom.Size == last.Size) && (
|
shouldcont = ((rom.Size == last.Size) && (
|
||||||
(rom.CRC != "" && last.CRC != "" && rom.CRC == last.CRC) ||
|
(rom.CRC != "" && last.CRC != "" && rom.CRC == last.CRC) ||
|
||||||
(rom.MD5 != "" && last.MD5 != "" && rom.MD5 == last.MD5) ||
|
(rom.MD5 != "" && last.MD5 != "" && rom.MD5 == last.MD5) ||
|
||||||
(rom.SHA1 != "" && last.SHA1 != "" && rom.SHA1 == last.SHA1)
|
(rom.SHA1 != "" && last.SHA1 != "" && rom.SHA1 == last.SHA1)
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user