mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
[Structs] Add HashData struct
This commit is contained in:
@@ -255,7 +255,7 @@ namespace SabreTools
|
|||||||
|
|
||||||
// Now add the information to the database if it's not already there
|
// Now add the information to the database if it's not already there
|
||||||
Rom rom = RomTools.GetSingleFileInfo(newfile);
|
Rom rom = RomTools.GetSingleFileInfo(newfile);
|
||||||
AddHeaderToDatabase(hstr, rom.SHA1, type);
|
AddHeaderToDatabase(hstr, rom.HashData.SHA1, type);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@@ -314,7 +314,7 @@ namespace SabreTools
|
|||||||
// Then try to pull the corresponding headers from the database
|
// Then try to pull the corresponding headers from the database
|
||||||
string header = "";
|
string header = "";
|
||||||
|
|
||||||
string query = @"SELECT header, type FROM data WHERE sha1='" + rom.SHA1 + "'";
|
string query = @"SELECT header, type FROM data WHERE sha1='" + rom.HashData.SHA1 + "'";
|
||||||
using (SqliteConnection dbc = new SqliteConnection(_connectionString))
|
using (SqliteConnection dbc = new SqliteConnection(_connectionString))
|
||||||
{
|
{
|
||||||
dbc.Open();
|
dbc.Open();
|
||||||
|
|||||||
@@ -3,6 +3,29 @@ using System.Collections.Generic;
|
|||||||
|
|
||||||
namespace SabreTools.Helper
|
namespace SabreTools.Helper
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Intermediate struct for holding and processing hash data
|
||||||
|
/// </summary>
|
||||||
|
public struct HashData : IComparable, IEquatable<HashData>
|
||||||
|
{
|
||||||
|
public long Size;
|
||||||
|
public string CRC;
|
||||||
|
public string MD5;
|
||||||
|
public string SHA1;
|
||||||
|
|
||||||
|
// Needs implementation
|
||||||
|
public int CompareTo(object obj)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Needs implementation
|
||||||
|
public bool Equals(HashData other)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Intermediate struct for holding and processing rom data
|
/// Intermediate struct for holding and processing rom data
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -12,10 +35,7 @@ namespace SabreTools.Helper
|
|||||||
public string GameDescription;
|
public string GameDescription;
|
||||||
public string Name;
|
public string Name;
|
||||||
public string Type;
|
public string Type;
|
||||||
public long Size;
|
public HashData HashData;
|
||||||
public string CRC;
|
|
||||||
public string MD5;
|
|
||||||
public string SHA1;
|
|
||||||
public DupeType Dupe;
|
public DupeType Dupe;
|
||||||
public bool Nodump;
|
public bool Nodump;
|
||||||
public string Date;
|
public string Date;
|
||||||
|
|||||||
@@ -539,8 +539,11 @@ namespace SabreTools.Helper
|
|||||||
Type = "rom",
|
Type = "rom",
|
||||||
Name = reader.Entry.Key,
|
Name = reader.Entry.Key,
|
||||||
Game = gamename,
|
Game = gamename,
|
||||||
Size = (size == 0 ? reader.Entry.Size : size),
|
HashData = new HashData
|
||||||
CRC = (crc == "" ? reader.Entry.Crc.ToString("X").ToLowerInvariant() : crc),
|
{
|
||||||
|
Size = (size == 0 ? reader.Entry.Size : size),
|
||||||
|
CRC = (crc == "" ? reader.Entry.Crc.ToString("X").ToLowerInvariant() : crc),
|
||||||
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -617,10 +620,13 @@ namespace SabreTools.Helper
|
|||||||
Type = "rom",
|
Type = "rom",
|
||||||
Game = Path.GetFileNameWithoutExtension(input).ToLowerInvariant(),
|
Game = Path.GetFileNameWithoutExtension(input).ToLowerInvariant(),
|
||||||
Name = Path.GetFileNameWithoutExtension(input).ToLowerInvariant(),
|
Name = Path.GetFileNameWithoutExtension(input).ToLowerInvariant(),
|
||||||
Size = extractedsize,
|
HashData = new HashData
|
||||||
CRC = gzcrc.ToLowerInvariant(),
|
{
|
||||||
MD5 = gzmd5.ToLowerInvariant(),
|
Size = extractedsize,
|
||||||
SHA1 = Path.GetFileNameWithoutExtension(input).ToLowerInvariant(),
|
CRC = gzcrc.ToLowerInvariant(),
|
||||||
|
MD5 = gzmd5.ToLowerInvariant(),
|
||||||
|
SHA1 = Path.GetFileNameWithoutExtension(input).ToLowerInvariant(),
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
return rom;
|
return rom;
|
||||||
@@ -656,7 +662,7 @@ namespace SabreTools.Helper
|
|||||||
Rom rom = RomTools.GetSingleFileInfo(input);
|
Rom rom = RomTools.GetSingleFileInfo(input);
|
||||||
|
|
||||||
// If it doesn't exist, create the output file and then write
|
// If it doesn't exist, create the output file and then write
|
||||||
string outfile = Path.Combine(outdir, rom.SHA1 + ".gz");
|
string outfile = Path.Combine(outdir, rom.HashData.SHA1 + ".gz");
|
||||||
using (FileStream inputstream = new FileStream(input, FileMode.Open))
|
using (FileStream inputstream = new FileStream(input, FileMode.Open))
|
||||||
using (GZipStream output = new GZipStream(File.Open(outfile, FileMode.Create, FileAccess.Write), CompressionMode.Compress))
|
using (GZipStream output = new GZipStream(File.Open(outfile, FileMode.Create, FileAccess.Write), CompressionMode.Compress))
|
||||||
{
|
{
|
||||||
@@ -670,9 +676,9 @@ namespace SabreTools.Helper
|
|||||||
{
|
{
|
||||||
// Write standard header and TGZ info
|
// Write standard header and TGZ info
|
||||||
byte[] data = Constants.TorrentGZHeader
|
byte[] data = Constants.TorrentGZHeader
|
||||||
.Concat(StringToByteArray(rom.MD5)) // MD5
|
.Concat(StringToByteArray(rom.HashData.MD5)) // MD5
|
||||||
.Concat(StringToByteArray(rom.CRC)) // CRC
|
.Concat(StringToByteArray(rom.HashData.CRC)) // CRC
|
||||||
.Concat(BitConverter.GetBytes(rom.Size).Reverse().ToArray()) // Long size (Mirrored)
|
.Concat(BitConverter.GetBytes(rom.HashData.Size).Reverse().ToArray()) // Long size (Mirrored)
|
||||||
.ToArray();
|
.ToArray();
|
||||||
sw.Write(data);
|
sw.Write(data);
|
||||||
|
|
||||||
@@ -698,7 +704,7 @@ namespace SabreTools.Helper
|
|||||||
// If we're in romba mode, create the subfolder and move the file
|
// If we're in romba mode, create the subfolder and move the file
|
||||||
if (romba)
|
if (romba)
|
||||||
{
|
{
|
||||||
string subfolder = Path.Combine(rom.SHA1.Substring(0, 2), rom.SHA1.Substring(2, 2), rom.SHA1.Substring(4, 2), rom.SHA1.Substring(6, 2));
|
string subfolder = Path.Combine(rom.HashData.SHA1.Substring(0, 2), rom.HashData.SHA1.Substring(2, 2), rom.HashData.SHA1.Substring(4, 2), rom.HashData.SHA1.Substring(6, 2));
|
||||||
outdir = Path.Combine(outdir, subfolder);
|
outdir = Path.Combine(outdir, subfolder);
|
||||||
if (!Directory.Exists(outdir))
|
if (!Directory.Exists(outdir))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -209,16 +209,16 @@ namespace SabreTools.Helper
|
|||||||
rom.Name = gc[i].Replace("\"", "");
|
rom.Name = gc[i].Replace("\"", "");
|
||||||
break;
|
break;
|
||||||
case "size":
|
case "size":
|
||||||
Int64.TryParse(gc[i].Replace("\"", ""), out rom.Size);
|
Int64.TryParse(gc[i].Replace("\"", ""), out rom.HashData.Size);
|
||||||
break;
|
break;
|
||||||
case "crc":
|
case "crc":
|
||||||
rom.CRC = gc[i].Replace("\"", "").ToLowerInvariant();
|
rom.HashData.CRC = gc[i].Replace("\"", "").ToLowerInvariant();
|
||||||
break;
|
break;
|
||||||
case "md5":
|
case "md5":
|
||||||
rom.MD5 = gc[i].Replace("\"", "").ToLowerInvariant();
|
rom.HashData.MD5 = gc[i].Replace("\"", "").ToLowerInvariant();
|
||||||
break;
|
break;
|
||||||
case "sha1":
|
case "sha1":
|
||||||
rom.SHA1 = gc[i].Replace("\"", "").ToLowerInvariant();
|
rom.HashData.SHA1 = gc[i].Replace("\"", "").ToLowerInvariant();
|
||||||
break;
|
break;
|
||||||
case "flags":
|
case "flags":
|
||||||
if (gc[i].Replace("\"", "").ToLowerInvariant() == "nodump")
|
if (gc[i].Replace("\"", "").ToLowerInvariant() == "nodump")
|
||||||
@@ -266,16 +266,16 @@ namespace SabreTools.Helper
|
|||||||
rom.Name = val;
|
rom.Name = val;
|
||||||
break;
|
break;
|
||||||
case "size":
|
case "size":
|
||||||
Int64.TryParse(val, out rom.Size);
|
Int64.TryParse(val, out rom.HashData.Size);
|
||||||
break;
|
break;
|
||||||
case "crc":
|
case "crc":
|
||||||
rom.CRC = val.ToLowerInvariant();
|
rom.HashData.CRC = val.ToLowerInvariant();
|
||||||
break;
|
break;
|
||||||
case "md5":
|
case "md5":
|
||||||
rom.MD5 = val.ToLowerInvariant();
|
rom.HashData.MD5 = val.ToLowerInvariant();
|
||||||
break;
|
break;
|
||||||
case "sha1":
|
case "sha1":
|
||||||
rom.SHA1 = val.ToLowerInvariant();
|
rom.HashData.SHA1 = val.ToLowerInvariant();
|
||||||
break;
|
break;
|
||||||
case "flags":
|
case "flags":
|
||||||
if (val.ToLowerInvariant() == "nodump")
|
if (val.ToLowerInvariant() == "nodump")
|
||||||
@@ -292,20 +292,20 @@ namespace SabreTools.Helper
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Sanitize the hashes from null, hex sizes, and "true blank" strings
|
// Sanitize the hashes from null, hex sizes, and "true blank" strings
|
||||||
rom.CRC = RomTools.CleanHashData(rom.CRC, Constants.CRCLength);
|
rom.HashData.CRC = RomTools.CleanHashData(rom.HashData.CRC, Constants.CRCLength);
|
||||||
rom.MD5 = RomTools.CleanHashData(rom.MD5, Constants.MD5Length);
|
rom.HashData.MD5 = RomTools.CleanHashData(rom.HashData.MD5, Constants.MD5Length);
|
||||||
rom.SHA1 = RomTools.CleanHashData(rom.SHA1, Constants.SHA1Length);
|
rom.HashData.SHA1 = RomTools.CleanHashData(rom.HashData.SHA1, Constants.SHA1Length);
|
||||||
|
|
||||||
// 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 (rom.Type == "rom" && (rom.Size == 0 || rom.Size == -1) && ((rom.CRC == Constants.CRCZero || rom.CRC == "") || rom.MD5 == Constants.MD5Zero || rom.SHA1 == Constants.SHA1Zero))
|
if (rom.Type == "rom" && (rom.HashData.Size == 0 || rom.HashData.Size == -1) && ((rom.HashData.CRC == Constants.CRCZero || rom.HashData.CRC == "") || rom.HashData.MD5 == Constants.MD5Zero || rom.HashData.SHA1 == Constants.SHA1Zero))
|
||||||
{
|
{
|
||||||
rom.Size = Constants.SizeZero;
|
rom.HashData.Size = Constants.SizeZero;
|
||||||
rom.CRC = Constants.CRCZero;
|
rom.HashData.CRC = Constants.CRCZero;
|
||||||
rom.MD5 = Constants.MD5Zero;
|
rom.HashData.MD5 = Constants.MD5Zero;
|
||||||
rom.SHA1 = Constants.SHA1Zero;
|
rom.HashData.SHA1 = Constants.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 (rom.Type == "rom" && (rom.Size == 0 || rom.Size == -1))
|
else if (rom.Type == "rom" && (rom.HashData.Size == 0 || rom.HashData.Size == -1))
|
||||||
{
|
{
|
||||||
logger.Warning("Incomplete entry for \"" + rom.Name + "\" will be output as nodump");
|
logger.Warning("Incomplete entry for \"" + rom.Name + "\" will be output as nodump");
|
||||||
rom.Nodump = true;
|
rom.Nodump = true;
|
||||||
@@ -314,11 +314,11 @@ namespace SabreTools.Helper
|
|||||||
// If we have a disk, make sure that the value for size is -1
|
// If we have a disk, make sure that the value for size is -1
|
||||||
if (rom.Type == "disk")
|
if (rom.Type == "disk")
|
||||||
{
|
{
|
||||||
rom.Size = -1;
|
rom.HashData.Size = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Now add the rom to the dictionary
|
// Now add the rom to the dictionary
|
||||||
string key = rom.Size + "-" + rom.CRC;
|
string key = rom.HashData.Size + "-" + rom.HashData.CRC;
|
||||||
if (datdata.Roms.ContainsKey(key))
|
if (datdata.Roms.ContainsKey(key))
|
||||||
{
|
{
|
||||||
datdata.Roms[key].Add(rom);
|
datdata.Roms[key].Add(rom);
|
||||||
@@ -333,10 +333,10 @@ namespace SabreTools.Helper
|
|||||||
// Add statistical data
|
// Add statistical data
|
||||||
datdata.RomCount += (rom.Type == "rom" ? 1 : 0);
|
datdata.RomCount += (rom.Type == "rom" ? 1 : 0);
|
||||||
datdata.DiskCount += (rom.Type == "disk" ? 1 : 0);
|
datdata.DiskCount += (rom.Type == "disk" ? 1 : 0);
|
||||||
datdata.TotalSize += (rom.Nodump ? 0 : rom.Size);
|
datdata.TotalSize += (rom.Nodump ? 0 : rom.HashData.Size);
|
||||||
datdata.CRCCount += (String.IsNullOrEmpty(rom.CRC) ? 0 : 1);
|
datdata.CRCCount += (String.IsNullOrEmpty(rom.HashData.CRC) ? 0 : 1);
|
||||||
datdata.MD5Count += (String.IsNullOrEmpty(rom.MD5) ? 0 : 1);
|
datdata.MD5Count += (String.IsNullOrEmpty(rom.HashData.MD5) ? 0 : 1);
|
||||||
datdata.SHA1Count += (String.IsNullOrEmpty(rom.SHA1) ? 0 : 1);
|
datdata.SHA1Count += (String.IsNullOrEmpty(rom.HashData.SHA1) ? 0 : 1);
|
||||||
datdata.NodumpCount += (rom.Nodump ? 1 : 0);
|
datdata.NodumpCount += (rom.Nodump ? 1 : 0);
|
||||||
}
|
}
|
||||||
// If the line is anything but a rom or disk and we're in a block
|
// If the line is anything but a rom or disk and we're in a block
|
||||||
@@ -568,26 +568,29 @@ namespace SabreTools.Helper
|
|||||||
Game = rominfo[3],
|
Game = rominfo[3],
|
||||||
GameDescription = rominfo[4],
|
GameDescription = rominfo[4],
|
||||||
Name = rominfo[5],
|
Name = rominfo[5],
|
||||||
CRC = rominfo[6].ToLowerInvariant(),
|
HashData = new HashData
|
||||||
Size = Int64.Parse(rominfo[7]),
|
{
|
||||||
|
CRC = rominfo[6].ToLowerInvariant(),
|
||||||
|
Size = Int64.Parse(rominfo[7]),
|
||||||
|
},
|
||||||
Metadata = new SourceMetadata { SystemID = sysid, SourceID = srcid },
|
Metadata = new SourceMetadata { SystemID = sysid, SourceID = srcid },
|
||||||
};
|
};
|
||||||
|
|
||||||
// Sanitize the hashes from null, hex sizes, and "true blank" strings
|
// Sanitize the hashes from null, hex sizes, and "true blank" strings
|
||||||
rom.CRC = RomTools.CleanHashData(rom.CRC, Constants.CRCLength);
|
rom.HashData.CRC = RomTools.CleanHashData(rom.HashData.CRC, Constants.CRCLength);
|
||||||
rom.MD5 = RomTools.CleanHashData(rom.MD5, Constants.MD5Length);
|
rom.HashData.MD5 = RomTools.CleanHashData(rom.HashData.MD5, Constants.MD5Length);
|
||||||
rom.SHA1 = RomTools.CleanHashData(rom.SHA1, Constants.SHA1Length);
|
rom.HashData.SHA1 = RomTools.CleanHashData(rom.HashData.SHA1, Constants.SHA1Length);
|
||||||
|
|
||||||
// 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 (rom.Type == "rom" && (rom.Size == 0 || rom.Size == -1) && ((rom.CRC == Constants.CRCZero || rom.CRC == "") || rom.MD5 == Constants.MD5Zero || rom.SHA1 == Constants.SHA1Zero))
|
if (rom.Type == "rom" && (rom.HashData.Size == 0 || rom.HashData.Size == -1) && ((rom.HashData.CRC == Constants.CRCZero || rom.HashData.CRC == "") || rom.HashData.MD5 == Constants.MD5Zero || rom.HashData.SHA1 == Constants.SHA1Zero))
|
||||||
{
|
{
|
||||||
rom.Size = Constants.SizeZero;
|
rom.HashData.Size = Constants.SizeZero;
|
||||||
rom.CRC = Constants.CRCZero;
|
rom.HashData.CRC = Constants.CRCZero;
|
||||||
rom.MD5 = Constants.MD5Zero;
|
rom.HashData.MD5 = Constants.MD5Zero;
|
||||||
rom.SHA1 = Constants.SHA1Zero;
|
rom.HashData.SHA1 = Constants.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 (rom.Type == "rom" && (rom.Size == 0 || rom.Size == -1))
|
else if (rom.Type == "rom" && (rom.HashData.Size == 0 || rom.HashData.Size == -1))
|
||||||
{
|
{
|
||||||
logger.Warning("Incomplete entry for \"" + rom.Name + "\" will be output as nodump");
|
logger.Warning("Incomplete entry for \"" + rom.Name + "\" will be output as nodump");
|
||||||
rom.Nodump = true;
|
rom.Nodump = true;
|
||||||
@@ -596,11 +599,11 @@ namespace SabreTools.Helper
|
|||||||
// If we have a disk, make sure that the value for size is -1
|
// If we have a disk, make sure that the value for size is -1
|
||||||
if (rom.Type == "disk")
|
if (rom.Type == "disk")
|
||||||
{
|
{
|
||||||
rom.Size = -1;
|
rom.HashData.Size = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add the new rom
|
// Add the new rom
|
||||||
string key = rom.Size + "-" + rom.CRC;
|
string key = rom.HashData.Size + "-" + rom.HashData.CRC;
|
||||||
if (datdata.Roms.ContainsKey(key))
|
if (datdata.Roms.ContainsKey(key))
|
||||||
{
|
{
|
||||||
datdata.Roms[key].Add(rom);
|
datdata.Roms[key].Add(rom);
|
||||||
@@ -615,10 +618,10 @@ namespace SabreTools.Helper
|
|||||||
// Add statistical data
|
// Add statistical data
|
||||||
datdata.RomCount += (rom.Type == "rom" ? 1 : 0);
|
datdata.RomCount += (rom.Type == "rom" ? 1 : 0);
|
||||||
datdata.DiskCount += (rom.Type == "disk" ? 1 : 0);
|
datdata.DiskCount += (rom.Type == "disk" ? 1 : 0);
|
||||||
datdata.TotalSize += (rom.Nodump ? 0 : rom.Size);
|
datdata.TotalSize += (rom.Nodump ? 0 : rom.HashData.Size);
|
||||||
datdata.CRCCount += (String.IsNullOrEmpty(rom.CRC) ? 0 : 1);
|
datdata.CRCCount += (String.IsNullOrEmpty(rom.HashData.CRC) ? 0 : 1);
|
||||||
datdata.MD5Count += (String.IsNullOrEmpty(rom.MD5) ? 0 : 1);
|
datdata.MD5Count += (String.IsNullOrEmpty(rom.HashData.MD5) ? 0 : 1);
|
||||||
datdata.SHA1Count += (String.IsNullOrEmpty(rom.SHA1) ? 0 : 1);
|
datdata.SHA1Count += (String.IsNullOrEmpty(rom.HashData.SHA1) ? 0 : 1);
|
||||||
datdata.NodumpCount += (rom.Nodump ? 1 : 0);
|
datdata.NodumpCount += (rom.Nodump ? 1 : 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -674,13 +677,16 @@ namespace SabreTools.Helper
|
|||||||
Name = "null",
|
Name = "null",
|
||||||
Game = tempgame,
|
Game = tempgame,
|
||||||
GameDescription = tempgame,
|
GameDescription = tempgame,
|
||||||
Size = -1,
|
HashData = new HashData
|
||||||
CRC = "null",
|
{
|
||||||
MD5 = "null",
|
Size = -1,
|
||||||
SHA1 = "null",
|
CRC = "null",
|
||||||
|
MD5 = "null",
|
||||||
|
SHA1 = "null",
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
key = rom.Size + "-" + rom.CRC;
|
key = rom.HashData.Size + "-" + rom.HashData.CRC;
|
||||||
if (datdata.Roms.ContainsKey(key))
|
if (datdata.Roms.ContainsKey(key))
|
||||||
{
|
{
|
||||||
datdata.Roms[key].Add(rom);
|
datdata.Roms[key].Add(rom);
|
||||||
@@ -695,10 +701,10 @@ namespace SabreTools.Helper
|
|||||||
// Add statistical data
|
// Add statistical data
|
||||||
datdata.RomCount += (rom.Type == "rom" ? 1 : 0);
|
datdata.RomCount += (rom.Type == "rom" ? 1 : 0);
|
||||||
datdata.DiskCount += (rom.Type == "disk" ? 1 : 0);
|
datdata.DiskCount += (rom.Type == "disk" ? 1 : 0);
|
||||||
datdata.TotalSize += (rom.Nodump ? 0 : rom.Size);
|
datdata.TotalSize += (rom.Nodump ? 0 : rom.HashData.Size);
|
||||||
datdata.CRCCount += (String.IsNullOrEmpty(rom.CRC) ? 0 : 1);
|
datdata.CRCCount += (String.IsNullOrEmpty(rom.HashData.CRC) ? 0 : 1);
|
||||||
datdata.MD5Count += (String.IsNullOrEmpty(rom.MD5) ? 0 : 1);
|
datdata.MD5Count += (String.IsNullOrEmpty(rom.HashData.MD5) ? 0 : 1);
|
||||||
datdata.SHA1Count += (String.IsNullOrEmpty(rom.SHA1) ? 0 : 1);
|
datdata.SHA1Count += (String.IsNullOrEmpty(rom.HashData.SHA1) ? 0 : 1);
|
||||||
datdata.NodumpCount += (rom.Nodump ? 1 : 0);
|
datdata.NodumpCount += (rom.Nodump ? 1 : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1067,7 +1073,7 @@ namespace SabreTools.Helper
|
|||||||
{
|
{
|
||||||
int index = datdata.Roms[key].Count() - 1;
|
int index = datdata.Roms[key].Count() - 1;
|
||||||
Rom lastrom = datdata.Roms[key][index];
|
Rom lastrom = datdata.Roms[key][index];
|
||||||
lastrom.Size += size;
|
lastrom.HashData.Size += size;
|
||||||
datdata.Roms[key].RemoveAt(index);
|
datdata.Roms[key].RemoveAt(index);
|
||||||
datdata.Roms[key].Add(lastrom);
|
datdata.Roms[key].Add(lastrom);
|
||||||
continue;
|
continue;
|
||||||
@@ -1118,10 +1124,13 @@ namespace SabreTools.Helper
|
|||||||
GameDescription = gamedesc,
|
GameDescription = gamedesc,
|
||||||
Name = subreader.GetAttribute("name"),
|
Name = subreader.GetAttribute("name"),
|
||||||
Type = subreader.Name,
|
Type = subreader.Name,
|
||||||
Size = size,
|
HashData = new HashData
|
||||||
CRC = crc,
|
{
|
||||||
MD5 = md5,
|
Size = size,
|
||||||
SHA1 = sha1,
|
CRC = crc,
|
||||||
|
MD5 = md5,
|
||||||
|
SHA1 = sha1,
|
||||||
|
},
|
||||||
Nodump = nodump,
|
Nodump = nodump,
|
||||||
Date = date,
|
Date = date,
|
||||||
Metadata = new SourceMetadata { SystemID = sysid, System = filename, SourceID = srcid },
|
Metadata = new SourceMetadata { SystemID = sysid, System = filename, SourceID = srcid },
|
||||||
@@ -1141,10 +1150,10 @@ namespace SabreTools.Helper
|
|||||||
// Add statistical data
|
// Add statistical data
|
||||||
datdata.RomCount += (rom.Type == "rom" ? 1 : 0);
|
datdata.RomCount += (rom.Type == "rom" ? 1 : 0);
|
||||||
datdata.DiskCount += (rom.Type == "disk" ? 1 : 0);
|
datdata.DiskCount += (rom.Type == "disk" ? 1 : 0);
|
||||||
datdata.TotalSize += (rom.Nodump ? 0 : rom.Size);
|
datdata.TotalSize += (rom.Nodump ? 0 : rom.HashData.Size);
|
||||||
datdata.CRCCount += (String.IsNullOrEmpty(rom.CRC) ? 0 : 1);
|
datdata.CRCCount += (String.IsNullOrEmpty(rom.HashData.CRC) ? 0 : 1);
|
||||||
datdata.MD5Count += (String.IsNullOrEmpty(rom.MD5) ? 0 : 1);
|
datdata.MD5Count += (String.IsNullOrEmpty(rom.HashData.MD5) ? 0 : 1);
|
||||||
datdata.SHA1Count += (String.IsNullOrEmpty(rom.SHA1) ? 0 : 1);
|
datdata.SHA1Count += (String.IsNullOrEmpty(rom.HashData.SHA1) ? 0 : 1);
|
||||||
datdata.NodumpCount += (rom.Nodump ? 1 : 0);
|
datdata.NodumpCount += (rom.Nodump ? 1 : 0);
|
||||||
}
|
}
|
||||||
// Otherwise, log that it wasn't added
|
// Otherwise, log that it wasn't added
|
||||||
@@ -1171,13 +1180,16 @@ namespace SabreTools.Helper
|
|||||||
Name = "null",
|
Name = "null",
|
||||||
Game = tempname,
|
Game = tempname,
|
||||||
GameDescription = tempname,
|
GameDescription = tempname,
|
||||||
Size = -1,
|
HashData = new HashData
|
||||||
CRC = "null",
|
{
|
||||||
MD5 = "null",
|
Size = -1,
|
||||||
SHA1 = "null",
|
CRC = "null",
|
||||||
|
MD5 = "null",
|
||||||
|
SHA1 = "null",
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
key = rom.Size + "-" + rom.CRC;
|
key = rom.HashData.Size + "-" + rom.HashData.CRC;
|
||||||
if (datdata.Roms.ContainsKey(key))
|
if (datdata.Roms.ContainsKey(key))
|
||||||
{
|
{
|
||||||
datdata.Roms[key].Add(rom);
|
datdata.Roms[key].Add(rom);
|
||||||
@@ -1192,10 +1204,10 @@ namespace SabreTools.Helper
|
|||||||
// Add statistical data
|
// Add statistical data
|
||||||
datdata.RomCount += (rom.Type == "rom" ? 1 : 0);
|
datdata.RomCount += (rom.Type == "rom" ? 1 : 0);
|
||||||
datdata.DiskCount += (rom.Type == "disk" ? 1 : 0);
|
datdata.DiskCount += (rom.Type == "disk" ? 1 : 0);
|
||||||
datdata.TotalSize += (rom.Nodump ? 0 : rom.Size);
|
datdata.TotalSize += (rom.Nodump ? 0 : rom.HashData.Size);
|
||||||
datdata.CRCCount += (String.IsNullOrEmpty(rom.CRC) ? 0 : 1);
|
datdata.CRCCount += (String.IsNullOrEmpty(rom.HashData.CRC) ? 0 : 1);
|
||||||
datdata.MD5Count += (String.IsNullOrEmpty(rom.MD5) ? 0 : 1);
|
datdata.MD5Count += (String.IsNullOrEmpty(rom.HashData.MD5) ? 0 : 1);
|
||||||
datdata.SHA1Count += (String.IsNullOrEmpty(rom.SHA1) ? 0 : 1);
|
datdata.SHA1Count += (String.IsNullOrEmpty(rom.HashData.SHA1) ? 0 : 1);
|
||||||
datdata.NodumpCount += (rom.Nodump ? 1 : 0);
|
datdata.NodumpCount += (rom.Nodump ? 1 : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1286,7 +1298,7 @@ namespace SabreTools.Helper
|
|||||||
{
|
{
|
||||||
int index = datdata.Roms[key].Count() - 1;
|
int index = datdata.Roms[key].Count() - 1;
|
||||||
Rom lastrom = datdata.Roms[key][index];
|
Rom lastrom = datdata.Roms[key][index];
|
||||||
lastrom.Size += size;
|
lastrom.HashData.Size += size;
|
||||||
datdata.Roms[key].RemoveAt(index);
|
datdata.Roms[key].RemoveAt(index);
|
||||||
datdata.Roms[key].Add(lastrom);
|
datdata.Roms[key].Add(lastrom);
|
||||||
continue;
|
continue;
|
||||||
@@ -1345,10 +1357,13 @@ namespace SabreTools.Helper
|
|||||||
Game = tempname,
|
Game = tempname,
|
||||||
Name = xtr.GetAttribute("name"),
|
Name = xtr.GetAttribute("name"),
|
||||||
Type = xtr.GetAttribute("type"),
|
Type = xtr.GetAttribute("type"),
|
||||||
Size = size,
|
HashData = new HashData
|
||||||
CRC = crc,
|
{
|
||||||
MD5 = md5,
|
Size = size,
|
||||||
SHA1 = sha1,
|
CRC = crc,
|
||||||
|
MD5 = md5,
|
||||||
|
SHA1 = sha1,
|
||||||
|
},
|
||||||
Nodump = nodump,
|
Nodump = nodump,
|
||||||
Date = date,
|
Date = date,
|
||||||
Metadata = new SourceMetadata { SystemID = sysid, System = filename, SourceID = srcid },
|
Metadata = new SourceMetadata { SystemID = sysid, System = filename, SourceID = srcid },
|
||||||
@@ -1368,10 +1383,10 @@ namespace SabreTools.Helper
|
|||||||
// Add statistical data
|
// Add statistical data
|
||||||
datdata.RomCount += (rom.Type == "rom" ? 1 : 0);
|
datdata.RomCount += (rom.Type == "rom" ? 1 : 0);
|
||||||
datdata.DiskCount += (rom.Type == "disk" ? 1 : 0);
|
datdata.DiskCount += (rom.Type == "disk" ? 1 : 0);
|
||||||
datdata.TotalSize += (rom.Nodump ? 0 : rom.Size);
|
datdata.TotalSize += (rom.Nodump ? 0 : rom.HashData.Size);
|
||||||
datdata.CRCCount += (String.IsNullOrEmpty(rom.CRC) ? 0 : 1);
|
datdata.CRCCount += (String.IsNullOrEmpty(rom.HashData.CRC) ? 0 : 1);
|
||||||
datdata.MD5Count += (String.IsNullOrEmpty(rom.MD5) ? 0 : 1);
|
datdata.MD5Count += (String.IsNullOrEmpty(rom.HashData.MD5) ? 0 : 1);
|
||||||
datdata.SHA1Count += (String.IsNullOrEmpty(rom.SHA1) ? 0 : 1);
|
datdata.SHA1Count += (String.IsNullOrEmpty(rom.HashData.SHA1) ? 0 : 1);
|
||||||
datdata.NodumpCount += (rom.Nodump ? 1 : 0);
|
datdata.NodumpCount += (rom.Nodump ? 1 : 0);
|
||||||
}
|
}
|
||||||
xtr.Read();
|
xtr.Read();
|
||||||
@@ -1508,7 +1523,7 @@ namespace SabreTools.Helper
|
|||||||
foreach (Rom rom in newroms)
|
foreach (Rom rom in newroms)
|
||||||
{
|
{
|
||||||
count++;
|
count++;
|
||||||
string key = rom.Size + "-" + rom.CRC;
|
string key = rom.HashData.Size + "-" + rom.HashData.CRC;
|
||||||
if (sortable.ContainsKey(key))
|
if (sortable.ContainsKey(key))
|
||||||
{
|
{
|
||||||
sortable[key].Add(rom);
|
sortable[key].Add(rom);
|
||||||
@@ -1831,17 +1846,17 @@ namespace SabreTools.Helper
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Filter on rom size
|
// Filter on rom size
|
||||||
if (seq != -1 && rom.Size != seq)
|
if (seq != -1 && rom.HashData.Size != seq)
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (sgt != -1 && rom.Size < sgt)
|
if (sgt != -1 && rom.HashData.Size < sgt)
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (slt != -1 && rom.Size > slt)
|
if (slt != -1 && rom.HashData.Size > slt)
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -1850,15 +1865,15 @@ namespace SabreTools.Helper
|
|||||||
// Filter on crc
|
// Filter on crc
|
||||||
if (crc != "")
|
if (crc != "")
|
||||||
{
|
{
|
||||||
if (crc.StartsWith("*") && crc.EndsWith("*") && !rom.CRC.ToLowerInvariant().Contains(crc.ToLowerInvariant().Replace("*", "")))
|
if (crc.StartsWith("*") && crc.EndsWith("*") && !rom.HashData.CRC.ToLowerInvariant().Contains(crc.ToLowerInvariant().Replace("*", "")))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else if (crc.StartsWith("*") && !rom.CRC.EndsWith(crc.Replace("*", ""), StringComparison.InvariantCultureIgnoreCase))
|
else if (crc.StartsWith("*") && !rom.HashData.CRC.EndsWith(crc.Replace("*", ""), StringComparison.InvariantCultureIgnoreCase))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else if (crc.EndsWith("*") && !rom.CRC.StartsWith(crc.Replace("*", ""), StringComparison.InvariantCultureIgnoreCase))
|
else if (crc.EndsWith("*") && !rom.HashData.CRC.StartsWith(crc.Replace("*", ""), StringComparison.InvariantCultureIgnoreCase))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -1867,15 +1882,15 @@ namespace SabreTools.Helper
|
|||||||
// Filter on md5
|
// Filter on md5
|
||||||
if (md5 != "")
|
if (md5 != "")
|
||||||
{
|
{
|
||||||
if (md5.StartsWith("*") && md5.EndsWith("*") && !rom.MD5.ToLowerInvariant().Contains(md5.ToLowerInvariant().Replace("*", "")))
|
if (md5.StartsWith("*") && md5.EndsWith("*") && !rom.HashData.MD5.ToLowerInvariant().Contains(md5.ToLowerInvariant().Replace("*", "")))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else if (md5.StartsWith("*") && !rom.MD5.EndsWith(md5.Replace("*", ""), StringComparison.InvariantCultureIgnoreCase))
|
else if (md5.StartsWith("*") && !rom.HashData.MD5.EndsWith(md5.Replace("*", ""), StringComparison.InvariantCultureIgnoreCase))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else if (md5.EndsWith("*") && !rom.MD5.StartsWith(md5.Replace("*", ""), StringComparison.InvariantCultureIgnoreCase))
|
else if (md5.EndsWith("*") && !rom.HashData.MD5.StartsWith(md5.Replace("*", ""), StringComparison.InvariantCultureIgnoreCase))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -1884,15 +1899,15 @@ namespace SabreTools.Helper
|
|||||||
// Filter on sha1
|
// Filter on sha1
|
||||||
if (sha1 != "")
|
if (sha1 != "")
|
||||||
{
|
{
|
||||||
if (sha1.StartsWith("*") && sha1.EndsWith("*") && !rom.SHA1.ToLowerInvariant().Contains(sha1.ToLowerInvariant().Replace("*", "")))
|
if (sha1.StartsWith("*") && sha1.EndsWith("*") && !rom.HashData.SHA1.ToLowerInvariant().Contains(sha1.ToLowerInvariant().Replace("*", "")))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else if (sha1.StartsWith("*") && !rom.SHA1.EndsWith(sha1.Replace("*", ""), StringComparison.InvariantCultureIgnoreCase))
|
else if (sha1.StartsWith("*") && !rom.HashData.SHA1.EndsWith(sha1.Replace("*", ""), StringComparison.InvariantCultureIgnoreCase))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else if (sha1.EndsWith("*") && !rom.SHA1.StartsWith(sha1.Replace("*", ""), StringComparison.InvariantCultureIgnoreCase))
|
else if (sha1.EndsWith("*") && !rom.HashData.SHA1.StartsWith(sha1.Replace("*", ""), StringComparison.InvariantCultureIgnoreCase))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -115,7 +115,7 @@ namespace SabreTools.Helper
|
|||||||
}
|
}
|
||||||
|
|
||||||
// If we have a "null" game (created by DATFromDir or something similar), log it to file
|
// If we have a "null" game (created by DATFromDir or something similar), log it to file
|
||||||
if (rom.Name == "null" && rom.Size == -1 && rom.CRC == "null" && rom.MD5 == "null" && rom.SHA1 == "null")
|
if (rom.Name == "null" && rom.HashData.Size == -1 && rom.HashData.CRC == "null" && rom.HashData.MD5 == "null" && rom.HashData.SHA1 == "null")
|
||||||
{
|
{
|
||||||
logger.Log("Empty folder found: " + rom.Game);
|
logger.Log("Empty folder found: " + rom.Game);
|
||||||
|
|
||||||
@@ -123,10 +123,10 @@ namespace SabreTools.Helper
|
|||||||
if (datdata.OutputFormat != OutputFormat.SabreDat && datdata.OutputFormat != OutputFormat.MissFile)
|
if (datdata.OutputFormat != OutputFormat.SabreDat && datdata.OutputFormat != OutputFormat.MissFile)
|
||||||
{
|
{
|
||||||
rom.Name = "-";
|
rom.Name = "-";
|
||||||
rom.Size = Constants.SizeZero;
|
rom.HashData.Size = Constants.SizeZero;
|
||||||
rom.CRC = Constants.CRCZero;
|
rom.HashData.CRC = Constants.CRCZero;
|
||||||
rom.MD5 = Constants.MD5Zero;
|
rom.HashData.MD5 = Constants.MD5Zero;
|
||||||
rom.SHA1 = Constants.SHA1Zero;
|
rom.HashData.SHA1 = Constants.SHA1Zero;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Otherwise, set the new path and such, write out, and continue
|
// Otherwise, set the new path and such, write out, and continue
|
||||||
@@ -422,10 +422,10 @@ namespace SabreTools.Helper
|
|||||||
{
|
{
|
||||||
case OutputFormat.ClrMamePro:
|
case OutputFormat.ClrMamePro:
|
||||||
state += "\t" + rom.Type + " ( name \"" + rom.Name + "\"" +
|
state += "\t" + rom.Type + " ( name \"" + rom.Name + "\"" +
|
||||||
(rom.Size != -1 ? " size " + rom.Size : "") +
|
(rom.HashData.Size != -1 ? " size " + rom.HashData.Size : "") +
|
||||||
(!String.IsNullOrEmpty(rom.CRC) ? " crc " + rom.CRC.ToLowerInvariant() : "") +
|
(!String.IsNullOrEmpty(rom.HashData.CRC) ? " crc " + rom.HashData.CRC.ToLowerInvariant() : "") +
|
||||||
(!String.IsNullOrEmpty(rom.MD5) ? " md5 " + rom.MD5.ToLowerInvariant() : "") +
|
(!String.IsNullOrEmpty(rom.HashData.MD5) ? " md5 " + rom.HashData.MD5.ToLowerInvariant() : "") +
|
||||||
(!String.IsNullOrEmpty(rom.SHA1) ? " sha1 " + rom.SHA1.ToLowerInvariant() : "") +
|
(!String.IsNullOrEmpty(rom.HashData.SHA1) ? " sha1 " + rom.HashData.SHA1.ToLowerInvariant() : "") +
|
||||||
(!String.IsNullOrEmpty(rom.Date) ? " date \"" + rom.Date + "\"" : "") +
|
(!String.IsNullOrEmpty(rom.Date) ? " date \"" + rom.Date + "\"" : "") +
|
||||||
(rom.Nodump ? " flags nodump" : "") +
|
(rom.Nodump ? " flags nodump" : "") +
|
||||||
" )\n";
|
" )\n";
|
||||||
@@ -435,17 +435,17 @@ namespace SabreTools.Helper
|
|||||||
string post = (datdata.Quotes ? "\"" : "") + datdata.Postfix;
|
string post = (datdata.Quotes ? "\"" : "") + datdata.Postfix;
|
||||||
|
|
||||||
// Check for special strings in prefix and postfix
|
// Check for special strings in prefix and postfix
|
||||||
pre = pre.Replace("%crc%", rom.CRC).Replace("%md5%", rom.MD5).Replace("%sha1%", rom.SHA1).Replace("%size%", rom.Size.ToString());
|
pre = pre.Replace("%crc%", rom.HashData.CRC).Replace("%md5%", rom.HashData.MD5).Replace("%sha1%", rom.HashData.SHA1).Replace("%size%", rom.HashData.Size.ToString());
|
||||||
post = post.Replace("%crc%", rom.CRC).Replace("%md5%", rom.MD5).Replace("%sha1%", rom.SHA1).Replace("%size%", rom.Size.ToString());
|
post = post.Replace("%crc%", rom.HashData.CRC).Replace("%md5%", rom.HashData.MD5).Replace("%sha1%", rom.HashData.SHA1).Replace("%size%", rom.HashData.Size.ToString());
|
||||||
|
|
||||||
// If we're in Romba mode, the state is consistent
|
// If we're in Romba mode, the state is consistent
|
||||||
if (datdata.Romba)
|
if (datdata.Romba)
|
||||||
{
|
{
|
||||||
// We can only write out if there's a SHA-1
|
// We can only write out if there's a SHA-1
|
||||||
if (rom.SHA1 != "")
|
if (rom.HashData.SHA1 != "")
|
||||||
{
|
{
|
||||||
string name = rom.SHA1.Substring(0, 2) + "/" + rom.SHA1.Substring(2, 2) + "/" + rom.SHA1.Substring(4, 2) + "/" +
|
string name = rom.HashData.SHA1.Substring(0, 2) + "/" + rom.HashData.SHA1.Substring(2, 2) + "/" + rom.HashData.SHA1.Substring(4, 2) + "/" +
|
||||||
rom.SHA1.Substring(6, 2) + "/" + rom.SHA1 + ".gz";
|
rom.HashData.SHA1.Substring(6, 2) + "/" + rom.HashData.SHA1 + ".gz";
|
||||||
state += pre + name + post + "\n";
|
state += pre + name + post + "\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -453,16 +453,16 @@ namespace SabreTools.Helper
|
|||||||
else if (datdata.TSV == true)
|
else if (datdata.TSV == true)
|
||||||
{
|
{
|
||||||
string inline = "\"" + datdata.FileName + "\"\t\"" + datdata.Name + "\"\t\"" + datdata.Description + "\"\t\"" + rom.Game + "\"\t\"" + rom.Game + "\"\t\"" +
|
string inline = "\"" + datdata.FileName + "\"\t\"" + datdata.Name + "\"\t\"" + datdata.Description + "\"\t\"" + rom.Game + "\"\t\"" + rom.Game + "\"\t\"" +
|
||||||
rom.Type + "\"\t\"" + (rom.Type == "rom" ? rom.Name : "") + "\"\t\"" + (rom.Type == "disk" ? rom.Name : "") + "\"\t\"" + rom.Size + "\"\t\"" +
|
rom.Type + "\"\t\"" + (rom.Type == "rom" ? rom.Name : "") + "\"\t\"" + (rom.Type == "disk" ? rom.Name : "") + "\"\t\"" + rom.HashData.Size + "\"\t\"" +
|
||||||
rom.CRC + "\"\t\"" + rom.MD5 + "\"\t\"" + rom.SHA1 + "\"\t" + (rom.Nodump ? "\"Nodump\"" : "\"\"");
|
rom.HashData.CRC + "\"\t\"" + rom.HashData.MD5 + "\"\t\"" + rom.HashData.SHA1 + "\"\t" + (rom.Nodump ? "\"Nodump\"" : "\"\"");
|
||||||
state += pre + inline + post + "\n";
|
state += pre + inline + post + "\n";
|
||||||
}
|
}
|
||||||
// If we're in CSV mode, similarly the state is consistent
|
// If we're in CSV mode, similarly the state is consistent
|
||||||
else if (datdata.TSV == false)
|
else if (datdata.TSV == false)
|
||||||
{
|
{
|
||||||
string inline = "\"" + datdata.FileName + "\",\"" + datdata.Name + "\",\"" + datdata.Description + "\",\"" + rom.Game + "\",\"" + rom.Game + "\",\"" +
|
string inline = "\"" + datdata.FileName + "\",\"" + datdata.Name + "\",\"" + datdata.Description + "\",\"" + rom.Game + "\",\"" + rom.Game + "\",\"" +
|
||||||
rom.Type + "\",\"" + (rom.Type == "rom" ? rom.Name : "") + "\",\"" + (rom.Type == "disk" ? rom.Name : "") + "\",\"" + rom.Size + "\",\"" +
|
rom.Type + "\",\"" + (rom.Type == "rom" ? rom.Name : "") + "\",\"" + (rom.Type == "disk" ? rom.Name : "") + "\",\"" + rom.HashData.Size + "\",\"" +
|
||||||
rom.CRC + "\",\"" + rom.MD5 + "\",\"" + rom.SHA1 + "\"," + (rom.Nodump ? "\"Nodump\"" : "\"\"");
|
rom.HashData.CRC + "\",\"" + rom.HashData.MD5 + "\",\"" + rom.HashData.SHA1 + "\"," + (rom.Nodump ? "\"Nodump\"" : "\"\"");
|
||||||
state += pre + inline + post + "\n";
|
state += pre + inline + post + "\n";
|
||||||
}
|
}
|
||||||
// Otherwise, use any flags
|
// Otherwise, use any flags
|
||||||
@@ -499,8 +499,8 @@ namespace SabreTools.Helper
|
|||||||
state += "¬¬¬" + HttpUtility.HtmlEncode(rom.Game) +
|
state += "¬¬¬" + HttpUtility.HtmlEncode(rom.Game) +
|
||||||
"¬" + HttpUtility.HtmlEncode((String.IsNullOrEmpty(rom.GameDescription) ? rom.Game : rom.GameDescription)) +
|
"¬" + HttpUtility.HtmlEncode((String.IsNullOrEmpty(rom.GameDescription) ? rom.Game : rom.GameDescription)) +
|
||||||
"¬" + HttpUtility.HtmlEncode(rom.Name) +
|
"¬" + HttpUtility.HtmlEncode(rom.Name) +
|
||||||
"¬" + rom.CRC.ToLowerInvariant() +
|
"¬" + rom.HashData.CRC.ToLowerInvariant() +
|
||||||
"¬" + (rom.Size != -1 ? rom.Size.ToString() : "") + "¬¬¬\n";
|
"¬" + (rom.HashData.Size != -1 ? rom.HashData.Size.ToString() : "") + "¬¬¬\n";
|
||||||
break;
|
break;
|
||||||
case OutputFormat.SabreDat:
|
case OutputFormat.SabreDat:
|
||||||
string prefix = "";
|
string prefix = "";
|
||||||
@@ -511,10 +511,10 @@ namespace SabreTools.Helper
|
|||||||
|
|
||||||
state += prefix;
|
state += prefix;
|
||||||
state += "<file type=\"" + rom.Type + "\" name=\"" + HttpUtility.HtmlEncode(rom.Name) + "\"" +
|
state += "<file type=\"" + rom.Type + "\" name=\"" + HttpUtility.HtmlEncode(rom.Name) + "\"" +
|
||||||
(rom.Size != -1 ? " size=\"" + rom.Size + "\"" : "") +
|
(rom.HashData.Size != -1 ? " size=\"" + rom.HashData.Size + "\"" : "") +
|
||||||
(!String.IsNullOrEmpty(rom.CRC) ? " crc=\"" + rom.CRC.ToLowerInvariant() + "\"" : "") +
|
(!String.IsNullOrEmpty(rom.HashData.CRC) ? " crc=\"" + rom.HashData.CRC.ToLowerInvariant() + "\"" : "") +
|
||||||
(!String.IsNullOrEmpty(rom.MD5) ? " md5=\"" + rom.MD5.ToLowerInvariant() + "\"" : "") +
|
(!String.IsNullOrEmpty(rom.HashData.MD5) ? " md5=\"" + rom.HashData.MD5.ToLowerInvariant() + "\"" : "") +
|
||||||
(!String.IsNullOrEmpty(rom.SHA1) ? " sha1=\"" + rom.SHA1.ToLowerInvariant() + "\"" : "") +
|
(!String.IsNullOrEmpty(rom.HashData.SHA1) ? " sha1=\"" + rom.HashData.SHA1.ToLowerInvariant() + "\"" : "") +
|
||||||
(!String.IsNullOrEmpty(rom.Date) ? " date=\"" + rom.Date + "\"" : "") +
|
(!String.IsNullOrEmpty(rom.Date) ? " date=\"" + rom.Date + "\"" : "") +
|
||||||
(rom.Nodump ? prefix + "/>\n" + prefix + "\t<flags>\n" +
|
(rom.Nodump ? prefix + "/>\n" + prefix + "\t<flags>\n" +
|
||||||
prefix + "\t\t<flag name=\"status\" value=\"nodump\"/>\n" +
|
prefix + "\t\t<flag name=\"status\" value=\"nodump\"/>\n" +
|
||||||
@@ -524,10 +524,10 @@ namespace SabreTools.Helper
|
|||||||
break;
|
break;
|
||||||
case OutputFormat.Xml:
|
case OutputFormat.Xml:
|
||||||
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.HashData.Size != -1 ? " size=\"" + rom.HashData.Size + "\"" : "") +
|
||||||
(!String.IsNullOrEmpty(rom.CRC) ? " crc=\"" + rom.CRC.ToLowerInvariant() + "\"" : "") +
|
(!String.IsNullOrEmpty(rom.HashData.CRC) ? " crc=\"" + rom.HashData.CRC.ToLowerInvariant() + "\"" : "") +
|
||||||
(!String.IsNullOrEmpty(rom.MD5) ? " md5=\"" + rom.MD5.ToLowerInvariant() + "\"" : "") +
|
(!String.IsNullOrEmpty(rom.HashData.MD5) ? " md5=\"" + rom.HashData.MD5.ToLowerInvariant() + "\"" : "") +
|
||||||
(!String.IsNullOrEmpty(rom.SHA1) ? " sha1=\"" + rom.SHA1.ToLowerInvariant() + "\"" : "") +
|
(!String.IsNullOrEmpty(rom.HashData.SHA1) ? " sha1=\"" + rom.HashData.SHA1.ToLowerInvariant() + "\"" : "") +
|
||||||
(!String.IsNullOrEmpty(rom.Date) ? " date=\"" + rom.Date + "\"" : "") +
|
(!String.IsNullOrEmpty(rom.Date) ? " date=\"" + rom.Date + "\"" : "") +
|
||||||
(rom.Nodump ? " status=\"nodump\"" : "") +
|
(rom.Nodump ? " status=\"nodump\"" : "") +
|
||||||
"/>\n";
|
"/>\n";
|
||||||
|
|||||||
@@ -30,10 +30,13 @@ namespace SabreTools.Helper
|
|||||||
{
|
{
|
||||||
Name = Path.GetFileName(input),
|
Name = Path.GetFileName(input),
|
||||||
Type = "rom",
|
Type = "rom",
|
||||||
Size = (new FileInfo(input)).Length,
|
HashData = new HashData
|
||||||
CRC = string.Empty,
|
{
|
||||||
MD5 = string.Empty,
|
Size = (new FileInfo(input)).Length,
|
||||||
SHA1 = string.Empty,
|
CRC = string.Empty,
|
||||||
|
MD5 = string.Empty,
|
||||||
|
SHA1 = string.Empty,
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
try
|
try
|
||||||
@@ -65,17 +68,17 @@ namespace SabreTools.Helper
|
|||||||
}
|
}
|
||||||
|
|
||||||
crc.TransformFinalBlock(buffer, 0, 0);
|
crc.TransformFinalBlock(buffer, 0, 0);
|
||||||
rom.CRC = BitConverter.ToString(crc.Hash).Replace("-", "").ToLowerInvariant();
|
rom.HashData.CRC = BitConverter.ToString(crc.Hash).Replace("-", "").ToLowerInvariant();
|
||||||
|
|
||||||
if (!noMD5)
|
if (!noMD5)
|
||||||
{
|
{
|
||||||
md5.TransformFinalBlock(buffer, 0, 0);
|
md5.TransformFinalBlock(buffer, 0, 0);
|
||||||
rom.MD5 = BitConverter.ToString(md5.Hash).Replace("-", "").ToLowerInvariant();
|
rom.HashData.MD5 = BitConverter.ToString(md5.Hash).Replace("-", "").ToLowerInvariant();
|
||||||
}
|
}
|
||||||
if (!noSHA1)
|
if (!noSHA1)
|
||||||
{
|
{
|
||||||
sha1.TransformFinalBlock(buffer, 0, 0);
|
sha1.TransformFinalBlock(buffer, 0, 0);
|
||||||
rom.SHA1 = BitConverter.ToString(sha1.Hash).Replace("-", "").ToLowerInvariant();
|
rom.HashData.SHA1 = BitConverter.ToString(sha1.Hash).Replace("-", "").ToLowerInvariant();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -134,9 +137,9 @@ namespace SabreTools.Helper
|
|||||||
savedrom = lastrom;
|
savedrom = lastrom;
|
||||||
pos = i;
|
pos = i;
|
||||||
|
|
||||||
savedrom.CRC = (String.IsNullOrEmpty(savedrom.CRC) && !String.IsNullOrEmpty(rom.CRC) ? rom.CRC : savedrom.CRC);
|
savedrom.HashData.CRC = (String.IsNullOrEmpty(savedrom.HashData.CRC) && !String.IsNullOrEmpty(rom.HashData.CRC) ? rom.HashData.CRC : savedrom.HashData.CRC);
|
||||||
savedrom.MD5 = (String.IsNullOrEmpty(savedrom.MD5) && !String.IsNullOrEmpty(rom.MD5) ? rom.MD5 : savedrom.MD5);
|
savedrom.HashData.MD5 = (String.IsNullOrEmpty(savedrom.HashData.MD5) && !String.IsNullOrEmpty(rom.HashData.MD5) ? rom.HashData.MD5 : savedrom.HashData.MD5);
|
||||||
savedrom.SHA1 = (String.IsNullOrEmpty(savedrom.SHA1) && !String.IsNullOrEmpty(rom.SHA1) ? rom.SHA1 : savedrom.SHA1);
|
savedrom.HashData.SHA1 = (String.IsNullOrEmpty(savedrom.HashData.SHA1) && !String.IsNullOrEmpty(rom.HashData.SHA1) ? rom.HashData.SHA1 : savedrom.HashData.SHA1);
|
||||||
savedrom.Dupe = dupetype;
|
savedrom.Dupe = dupetype;
|
||||||
|
|
||||||
// If the current system has a lower ID than the previous, set the system accordingly
|
// If the current system has a lower ID than the previous, set the system accordingly
|
||||||
@@ -248,23 +251,23 @@ namespace SabreTools.Helper
|
|||||||
|
|
||||||
if (rom.Type == "rom" && lastrom.Type == "rom")
|
if (rom.Type == "rom" && lastrom.Type == "rom")
|
||||||
{
|
{
|
||||||
dupefound = ((rom.Size == lastrom.Size) &&
|
dupefound = ((rom.HashData.Size == lastrom.HashData.Size) &&
|
||||||
((String.IsNullOrEmpty(rom.CRC) || String.IsNullOrEmpty(lastrom.CRC)) || rom.CRC == lastrom.CRC) &&
|
((String.IsNullOrEmpty(rom.HashData.CRC) || String.IsNullOrEmpty(lastrom.HashData.CRC)) || rom.HashData.CRC == lastrom.HashData.CRC) &&
|
||||||
((String.IsNullOrEmpty(rom.MD5) || String.IsNullOrEmpty(lastrom.MD5)) || rom.MD5 == lastrom.MD5) &&
|
((String.IsNullOrEmpty(rom.HashData.MD5) || String.IsNullOrEmpty(lastrom.HashData.MD5)) || rom.HashData.MD5 == lastrom.HashData.MD5) &&
|
||||||
((String.IsNullOrEmpty(rom.SHA1) || String.IsNullOrEmpty(lastrom.SHA1)) || rom.SHA1 == lastrom.SHA1)
|
((String.IsNullOrEmpty(rom.HashData.SHA1) || String.IsNullOrEmpty(lastrom.HashData.SHA1)) || rom.HashData.SHA1 == lastrom.HashData.SHA1)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
else if (rom.Type == "disk" && lastrom.Type == "disk")
|
else if (rom.Type == "disk" && lastrom.Type == "disk")
|
||||||
{
|
{
|
||||||
dupefound = (((String.IsNullOrEmpty(rom.MD5) || String.IsNullOrEmpty(lastrom.MD5)) || rom.MD5 == lastrom.MD5) &&
|
dupefound = (((String.IsNullOrEmpty(rom.HashData.MD5) || String.IsNullOrEmpty(lastrom.HashData.MD5)) || rom.HashData.MD5 == lastrom.HashData.MD5) &&
|
||||||
((String.IsNullOrEmpty(rom.SHA1) || String.IsNullOrEmpty(lastrom.SHA1)) || rom.SHA1 == lastrom.SHA1)
|
((String.IsNullOrEmpty(rom.HashData.SHA1) || String.IsNullOrEmpty(lastrom.HashData.SHA1)) || rom.HashData.SHA1 == lastrom.HashData.SHA1)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// More wonderful SHA-1 logging that has to be done
|
// More wonderful SHA-1 logging that has to be done
|
||||||
if (rom.SHA1 == lastrom.SHA1 && rom.Size != lastrom.Size)
|
if (rom.HashData.SHA1 == lastrom.HashData.SHA1 && rom.HashData.Size != lastrom.HashData.Size)
|
||||||
{
|
{
|
||||||
logger.User("SHA-1 mismatch - Hash: " + rom.SHA1);
|
logger.User("SHA-1 mismatch - Hash: " + rom.HashData.SHA1);
|
||||||
}
|
}
|
||||||
|
|
||||||
return dupefound;
|
return dupefound;
|
||||||
|
|||||||
@@ -122,10 +122,10 @@ Please check the log folder if the stats scrolled offscreen");
|
|||||||
{
|
{
|
||||||
datdata.RomCount += (rom.Type == "rom" ? 1 : 0);
|
datdata.RomCount += (rom.Type == "rom" ? 1 : 0);
|
||||||
datdata.DiskCount += (rom.Type == "disk" ? 1 : 0);
|
datdata.DiskCount += (rom.Type == "disk" ? 1 : 0);
|
||||||
datdata.TotalSize += (rom.Nodump ? 0 : rom.Size);
|
datdata.TotalSize += (rom.Nodump ? 0 : rom.HashData.Size);
|
||||||
datdata.CRCCount += (String.IsNullOrEmpty(rom.CRC) ? 0 : 1);
|
datdata.CRCCount += (String.IsNullOrEmpty(rom.HashData.CRC) ? 0 : 1);
|
||||||
datdata.MD5Count += (String.IsNullOrEmpty(rom.MD5) ? 0 : 1);
|
datdata.MD5Count += (String.IsNullOrEmpty(rom.HashData.MD5) ? 0 : 1);
|
||||||
datdata.SHA1Count += (String.IsNullOrEmpty(rom.SHA1) ? 0 : 1);
|
datdata.SHA1Count += (String.IsNullOrEmpty(rom.HashData.SHA1) ? 0 : 1);
|
||||||
datdata.NodumpCount += (rom.Nodump ? 1 : 0);
|
datdata.NodumpCount += (rom.Nodump ? 1 : 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -178,13 +178,16 @@ namespace SabreTools
|
|||||||
Path.DirectorySeparatorChar.ToString() :
|
Path.DirectorySeparatorChar.ToString() :
|
||||||
"") + actualroot :
|
"") + actualroot :
|
||||||
actualroot),
|
actualroot),
|
||||||
Size = -1,
|
HashData = new HashData
|
||||||
CRC = "null",
|
{
|
||||||
MD5 = "null",
|
Size = -1,
|
||||||
SHA1 = "null",
|
CRC = "null",
|
||||||
|
MD5 = "null",
|
||||||
|
SHA1 = "null",
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
string key = rom.Size + "-" + rom.CRC;
|
string key = rom.HashData.Size + "-" + rom.HashData.CRC;
|
||||||
if (_datdata.Roms.ContainsKey(key))
|
if (_datdata.Roms.ContainsKey(key))
|
||||||
{
|
{
|
||||||
_datdata.Roms[key].Add(rom);
|
_datdata.Roms[key].Add(rom);
|
||||||
@@ -211,13 +214,16 @@ namespace SabreTools
|
|||||||
Path.DirectorySeparatorChar.ToString() :
|
Path.DirectorySeparatorChar.ToString() :
|
||||||
"") + actualroot :
|
"") + actualroot :
|
||||||
actualroot),
|
actualroot),
|
||||||
Size = -1,
|
HashData = new HashData
|
||||||
CRC = "null",
|
{
|
||||||
MD5 = "null",
|
Size = -1,
|
||||||
SHA1 = "null",
|
CRC = "null",
|
||||||
|
MD5 = "null",
|
||||||
|
SHA1 = "null",
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
string key = rom.Size + "-" + rom.CRC;
|
string key = rom.HashData.Size + "-" + rom.HashData.CRC;
|
||||||
if (_datdata.Roms.ContainsKey(key))
|
if (_datdata.Roms.ContainsKey(key))
|
||||||
{
|
{
|
||||||
_datdata.Roms[key].Add(rom);
|
_datdata.Roms[key].Add(rom);
|
||||||
@@ -257,15 +263,15 @@ namespace SabreTools
|
|||||||
{
|
{
|
||||||
rom.Type = "rom";
|
rom.Type = "rom";
|
||||||
rom.Name = "-";
|
rom.Name = "-";
|
||||||
rom.Size = Constants.SizeZero;
|
rom.HashData.Size = Constants.SizeZero;
|
||||||
rom.CRC = Constants.CRCZero;
|
rom.HashData.CRC = Constants.CRCZero;
|
||||||
rom.MD5 = Constants.MD5Zero;
|
rom.HashData.MD5 = Constants.MD5Zero;
|
||||||
rom.SHA1 = Constants.SHA1Zero;
|
rom.HashData.SHA1 = Constants.SHA1Zero;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_nowrite)
|
if (_nowrite)
|
||||||
{
|
{
|
||||||
string inkey = rom.Size + "-" + rom.CRC;
|
string inkey = rom.HashData.Size + "-" + rom.HashData.CRC;
|
||||||
if (_datdata.Roms.ContainsKey(inkey))
|
if (_datdata.Roms.ContainsKey(inkey))
|
||||||
{
|
{
|
||||||
_datdata.Roms[inkey].Add(rom);
|
_datdata.Roms[inkey].Add(rom);
|
||||||
@@ -343,7 +349,7 @@ namespace SabreTools
|
|||||||
|
|
||||||
if (_nowrite)
|
if (_nowrite)
|
||||||
{
|
{
|
||||||
string key = rom.Size + "-" + rom.CRC;
|
string key = rom.HashData.Size + "-" + rom.HashData.CRC;
|
||||||
if (_datdata.Roms.ContainsKey(key))
|
if (_datdata.Roms.ContainsKey(key))
|
||||||
{
|
{
|
||||||
_datdata.Roms[key].Add(rom);
|
_datdata.Roms[key].Add(rom);
|
||||||
@@ -515,7 +521,7 @@ namespace SabreTools
|
|||||||
|
|
||||||
if (_nowrite)
|
if (_nowrite)
|
||||||
{
|
{
|
||||||
string key = rom.Size + "-" + rom.CRC;
|
string key = rom.HashData.Size + "-" + rom.HashData.CRC;
|
||||||
if (_datdata.Roms.ContainsKey(key))
|
if (_datdata.Roms.ContainsKey(key))
|
||||||
{
|
{
|
||||||
_datdata.Roms[key].Add(rom);
|
_datdata.Roms[key].Add(rom);
|
||||||
|
|||||||
@@ -230,10 +230,10 @@ namespace SabreTools
|
|||||||
for (int i = 0; i < roms.Count; i++)
|
for (int i = 0; i < roms.Count; i++)
|
||||||
{
|
{
|
||||||
Rom rom = roms[i];
|
Rom rom = roms[i];
|
||||||
rom.Size = Constants.SizeZero;
|
rom.HashData.Size = Constants.SizeZero;
|
||||||
rom.CRC = Constants.CRCZero;
|
rom.HashData.CRC = Constants.CRCZero;
|
||||||
rom.MD5 = Constants.MD5Zero;
|
rom.HashData.MD5 = Constants.MD5Zero;
|
||||||
rom.SHA1 = Constants.SHA1Zero;
|
rom.HashData.SHA1 = Constants.SHA1Zero;
|
||||||
temp.Add(rom);
|
temp.Add(rom);
|
||||||
}
|
}
|
||||||
netNew[key] = temp;
|
netNew[key] = temp;
|
||||||
@@ -248,10 +248,10 @@ namespace SabreTools
|
|||||||
for (int i = 0; i < roms.Count; i++)
|
for (int i = 0; i < roms.Count; i++)
|
||||||
{
|
{
|
||||||
Rom rom = roms[i];
|
Rom rom = roms[i];
|
||||||
rom.Size = Constants.SizeZero;
|
rom.HashData.Size = Constants.SizeZero;
|
||||||
rom.CRC = Constants.CRCZero;
|
rom.HashData.CRC = Constants.CRCZero;
|
||||||
rom.MD5 = Constants.MD5Zero;
|
rom.HashData.MD5 = Constants.MD5Zero;
|
||||||
rom.SHA1 = Constants.SHA1Zero;
|
rom.HashData.SHA1 = Constants.SHA1Zero;
|
||||||
temp.Add(rom);
|
temp.Add(rom);
|
||||||
}
|
}
|
||||||
unneeded[key] = temp;
|
unneeded[key] = temp;
|
||||||
@@ -266,10 +266,10 @@ namespace SabreTools
|
|||||||
for (int i = 0; i < roms.Count; i++)
|
for (int i = 0; i < roms.Count; i++)
|
||||||
{
|
{
|
||||||
Rom rom = roms[i];
|
Rom rom = roms[i];
|
||||||
rom.Size = Constants.SizeZero;
|
rom.HashData.Size = Constants.SizeZero;
|
||||||
rom.CRC = Constants.CRCZero;
|
rom.HashData.CRC = Constants.CRCZero;
|
||||||
rom.MD5 = Constants.MD5Zero;
|
rom.HashData.MD5 = Constants.MD5Zero;
|
||||||
rom.SHA1 = Constants.SHA1Zero;
|
rom.HashData.SHA1 = Constants.SHA1Zero;
|
||||||
temp.Add(rom);
|
temp.Add(rom);
|
||||||
}
|
}
|
||||||
newMissing[key] = temp;
|
newMissing[key] = temp;
|
||||||
@@ -284,10 +284,10 @@ namespace SabreTools
|
|||||||
for (int i = 0; i < roms.Count; i++)
|
for (int i = 0; i < roms.Count; i++)
|
||||||
{
|
{
|
||||||
Rom rom = roms[i];
|
Rom rom = roms[i];
|
||||||
rom.Size = Constants.SizeZero;
|
rom.HashData.Size = Constants.SizeZero;
|
||||||
rom.CRC = Constants.CRCZero;
|
rom.HashData.CRC = Constants.CRCZero;
|
||||||
rom.MD5 = Constants.MD5Zero;
|
rom.HashData.MD5 = Constants.MD5Zero;
|
||||||
rom.SHA1 = Constants.SHA1Zero;
|
rom.HashData.SHA1 = Constants.SHA1Zero;
|
||||||
temp.Add(rom);
|
temp.Add(rom);
|
||||||
}
|
}
|
||||||
have[key] = temp;
|
have[key] = temp;
|
||||||
@@ -398,10 +398,10 @@ namespace SabreTools
|
|||||||
for (int i = 0; i < roms.Count; i++)
|
for (int i = 0; i < roms.Count; i++)
|
||||||
{
|
{
|
||||||
Rom rom = roms[i];
|
Rom rom = roms[i];
|
||||||
rom.Size = Constants.SizeZero;
|
rom.HashData.Size = Constants.SizeZero;
|
||||||
rom.CRC = Constants.CRCZero;
|
rom.HashData.CRC = Constants.CRCZero;
|
||||||
rom.MD5 = Constants.MD5Zero;
|
rom.HashData.MD5 = Constants.MD5Zero;
|
||||||
rom.SHA1 = Constants.SHA1Zero;
|
rom.HashData.SHA1 = Constants.SHA1Zero;
|
||||||
temp.Add(rom);
|
temp.Add(rom);
|
||||||
}
|
}
|
||||||
have[key] = temp;
|
have[key] = temp;
|
||||||
@@ -468,10 +468,10 @@ namespace SabreTools
|
|||||||
for (int i = 0; i < roms.Count; i++)
|
for (int i = 0; i < roms.Count; i++)
|
||||||
{
|
{
|
||||||
Rom rom = roms[i];
|
Rom rom = roms[i];
|
||||||
rom.Size = Constants.SizeZero;
|
rom.HashData.Size = Constants.SizeZero;
|
||||||
rom.CRC = Constants.CRCZero;
|
rom.HashData.CRC = Constants.CRCZero;
|
||||||
rom.MD5 = Constants.MD5Zero;
|
rom.HashData.MD5 = Constants.MD5Zero;
|
||||||
rom.SHA1 = Constants.SHA1Zero;
|
rom.HashData.SHA1 = Constants.SHA1Zero;
|
||||||
temp.Add(rom);
|
temp.Add(rom);
|
||||||
}
|
}
|
||||||
have[key] = temp;
|
have[key] = temp;
|
||||||
|
|||||||
@@ -246,7 +246,7 @@ namespace SabreTools
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// If the file has a SHA-1
|
// If the file has a SHA-1
|
||||||
else if (rom.SHA1 != null && rom.SHA1 != "")
|
else if (rom.HashData.SHA1 != null && rom.HashData.SHA1 != "")
|
||||||
{
|
{
|
||||||
if (sha1.Roms.ContainsKey(key))
|
if (sha1.Roms.ContainsKey(key))
|
||||||
{
|
{
|
||||||
@@ -260,7 +260,7 @@ namespace SabreTools
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// If the file has no SHA-1 but has an MD5
|
// If the file has no SHA-1 but has an MD5
|
||||||
else if (rom.MD5 != null && rom.MD5 != "")
|
else if (rom.HashData.MD5 != null && rom.HashData.MD5 != "")
|
||||||
{
|
{
|
||||||
if (md5.Roms.ContainsKey(key))
|
if (md5.Roms.ContainsKey(key))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -374,7 +374,7 @@ namespace SabreTools
|
|||||||
if (rom.Metadata.SourceID == 99)
|
if (rom.Metadata.SourceID == 99)
|
||||||
{
|
{
|
||||||
found = true;
|
found = true;
|
||||||
string key = rom.Size + "-" + rom.CRC;
|
string key = rom.HashData.Size + "-" + rom.HashData.CRC;
|
||||||
if (_matched.Roms.ContainsKey(key))
|
if (_matched.Roms.ContainsKey(key))
|
||||||
{
|
{
|
||||||
_matched.Roms[key].Add(rom);
|
_matched.Roms[key].Add(rom);
|
||||||
@@ -508,7 +508,7 @@ namespace SabreTools
|
|||||||
_logger.Log("Matched name: " + found.Name);
|
_logger.Log("Matched name: " + found.Name);
|
||||||
|
|
||||||
// Add rom to the matched list
|
// Add rom to the matched list
|
||||||
string key = found.Size + "-" + found.CRC;
|
string key = found.HashData.Size + "-" + found.HashData.CRC;
|
||||||
if(_matched.Roms.ContainsKey(key))
|
if(_matched.Roms.ContainsKey(key))
|
||||||
{
|
{
|
||||||
_matched.Roms[key].Add(found);
|
_matched.Roms[key].Add(found);
|
||||||
@@ -529,7 +529,7 @@ namespace SabreTools
|
|||||||
Directory.CreateDirectory(gamedir);
|
Directory.CreateDirectory(gamedir);
|
||||||
}
|
}
|
||||||
|
|
||||||
_logger.Log("Rebuilding file '" + Path.GetFileName(rom.Name) + "' to '" + (_tgz ? found.SHA1 : found.Name) + "'");
|
_logger.Log("Rebuilding file '" + Path.GetFileName(rom.Name) + "' to '" + (_tgz ? found.HashData.SHA1 : found.Name) + "'");
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
File.Copy(input, Path.Combine(gamedir, Path.GetFileName(found.Name)));
|
File.Copy(input, Path.Combine(gamedir, Path.GetFileName(found.Name)));
|
||||||
@@ -572,7 +572,7 @@ namespace SabreTools
|
|||||||
foreach (Rom found in founddroms)
|
foreach (Rom found in founddroms)
|
||||||
{
|
{
|
||||||
// Add rom to the matched list
|
// Add rom to the matched list
|
||||||
string key = found.Size + "-" + found.CRC;
|
string key = found.HashData.Size + "-" + found.HashData.CRC;
|
||||||
if (_matched.Roms.ContainsKey(key))
|
if (_matched.Roms.ContainsKey(key))
|
||||||
{
|
{
|
||||||
_matched.Roms[key].Add(found);
|
_matched.Roms[key].Add(found);
|
||||||
@@ -596,7 +596,7 @@ namespace SabreTools
|
|||||||
Directory.CreateDirectory(gamedir);
|
Directory.CreateDirectory(gamedir);
|
||||||
}
|
}
|
||||||
|
|
||||||
_logger.Log("Rebuilding file '" + Path.GetFileName(rom.Name) + "' to '" + (_tgz ? found.SHA1 : found.Name) + "'");
|
_logger.Log("Rebuilding file '" + Path.GetFileName(rom.Name) + "' to '" + (_tgz ? found.HashData.SHA1 : found.Name) + "'");
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
File.Copy(newinput, Path.Combine(gamedir, Path.GetFileName(found.Name)));
|
File.Copy(newinput, Path.Combine(gamedir, Path.GetFileName(found.Name)));
|
||||||
@@ -617,10 +617,10 @@ namespace SabreTools
|
|||||||
|
|
||||||
// Then output the headered rom (renamed)
|
// Then output the headered rom (renamed)
|
||||||
Rom newfound = found;
|
Rom newfound = found;
|
||||||
newfound.Name = Path.GetFileNameWithoutExtension(newfound.Name) + " (" + rom.CRC + ")" + Path.GetExtension(newfound.Name);
|
newfound.Name = Path.GetFileNameWithoutExtension(newfound.Name) + " (" + rom.HashData.CRC + ")" + Path.GetExtension(newfound.Name);
|
||||||
|
|
||||||
// Add rom to the matched list
|
// Add rom to the matched list
|
||||||
key = newfound.Size + "-" + newfound.CRC;
|
key = newfound.HashData.Size + "-" + newfound.HashData.CRC;
|
||||||
if (_matched.Roms.ContainsKey(key))
|
if (_matched.Roms.ContainsKey(key))
|
||||||
{
|
{
|
||||||
_matched.Roms[key].Add(newfound);
|
_matched.Roms[key].Add(newfound);
|
||||||
@@ -695,7 +695,7 @@ namespace SabreTools
|
|||||||
foreach (Rom found in foundroms)
|
foreach (Rom found in foundroms)
|
||||||
{
|
{
|
||||||
// Add rom to the matched list
|
// Add rom to the matched list
|
||||||
string key = found.Size + "-" + found.CRC;
|
string key = found.HashData.Size + "-" + found.HashData.CRC;
|
||||||
if (_matched.Roms.ContainsKey(key))
|
if (_matched.Roms.ContainsKey(key))
|
||||||
{
|
{
|
||||||
_matched.Roms[key].Add(found);
|
_matched.Roms[key].Add(found);
|
||||||
@@ -730,7 +730,7 @@ namespace SabreTools
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Copy file between archives
|
// Copy file between archives
|
||||||
_logger.Log("Rebuilding file '" + Path.GetFileName(rom.Name) + "' to '" + (_tgz ? found.SHA1 : found.Name) + "'");
|
_logger.Log("Rebuilding file '" + Path.GetFileName(rom.Name) + "' to '" + (_tgz ? found.HashData.SHA1 : found.Name) + "'");
|
||||||
|
|
||||||
if (Build.MonoEnvironment || _tgz)
|
if (Build.MonoEnvironment || _tgz)
|
||||||
{
|
{
|
||||||
@@ -851,7 +851,7 @@ namespace SabreTools
|
|||||||
// Then add each of the found files to the new dictionary
|
// Then add each of the found files to the new dictionary
|
||||||
foreach (Rom rom in roms)
|
foreach (Rom rom in roms)
|
||||||
{
|
{
|
||||||
string key = rom.Size + "-" + rom.CRC;
|
string key = rom.HashData.Size + "-" + rom.HashData.CRC;
|
||||||
if (scanned.ContainsKey(key))
|
if (scanned.ContainsKey(key))
|
||||||
{
|
{
|
||||||
scanned[key].Add(rom);
|
scanned[key].Add(rom);
|
||||||
|
|||||||
Reference in New Issue
Block a user