[ALL] Update Help (WIP)

This commit is contained in:
Matt Nadareski
2018-01-23 15:55:04 -08:00
parent c4ec849e05
commit b22968a2d2
7 changed files with 1111 additions and 987 deletions

View File

@@ -22,6 +22,7 @@ namespace RombaSharp
// Create the Help feature // Create the Help feature
Feature helpFeature = new Feature( Feature helpFeature = new Feature(
"Help",
new List<string>() { "-?", "-h", "--help" }, new List<string>() { "-?", "-h", "--help" },
"Show this help", "Show this help",
FeatureType.Flag, FeatureType.Flag,
@@ -29,11 +30,13 @@ namespace RombaSharp
// Create the Archive feature // Create the Archive feature
Feature archive = new Feature( Feature archive = new Feature(
"Archive",
"archive", "archive",
"Adds ROM files from the specified directories to depot", "Adds ROM files from the specified directories to depot",
FeatureType.Flag, FeatureType.Flag,
null); null);
archive.AddFeature("only-needed", new Feature( archive.AddFeature(new Feature(
"only-needed",
"-only-needed", "-only-needed",
"Only archive ROM files in database", "Only archive ROM files in database",
FeatureType.Flag, FeatureType.Flag,
@@ -41,11 +44,13 @@ namespace RombaSharp
// Create the Build feature // Create the Build feature
Feature build = new Feature( Feature build = new Feature(
"Build",
"build", "build",
"For each specified DAT file it creates TZip files", "For each specified DAT file it creates TZip files",
FeatureType.Flag, FeatureType.Flag,
null); null);
build.AddFeature("copy", new Feature( build.AddFeature(new Feature(
"copy",
"-copy", "-copy",
"Copy files instead of rebuilding", "Copy files instead of rebuilding",
FeatureType.Flag, FeatureType.Flag,
@@ -53,6 +58,7 @@ namespace RombaSharp
// Create the Stats feature // Create the Stats feature
Feature stats = new Feature( Feature stats = new Feature(
"Stats",
"dbstats", "dbstats",
"Prints db stats", "Prints db stats",
FeatureType.Flag, FeatureType.Flag,
@@ -60,6 +66,7 @@ namespace RombaSharp
// Create the Rescan Depots feature // Create the Rescan Depots feature
Feature rescanDepots = new Feature( Feature rescanDepots = new Feature(
"Rescan Depots",
"depot-rescan", "depot-rescan",
"Rescan a specific depot to get new information", "Rescan a specific depot to get new information",
FeatureType.Flag, FeatureType.Flag,
@@ -67,11 +74,13 @@ namespace RombaSharp
// Create the Diffdat feature // Create the Diffdat feature
Feature diffdat = new Feature( Feature diffdat = new Feature(
"Diffdat",
"diffdat", "diffdat",
"Creates a DAT file for entries found in the new DAT", "Creates a DAT file for entries found in the new DAT",
FeatureType.Flag, FeatureType.Flag,
null); null);
diffdat.AddFeature("new", new Feature( diffdat.AddFeature(new Feature(
"new",
"-new", "-new",
"DAT to compare to", "DAT to compare to",
FeatureType.String, FeatureType.String,
@@ -79,11 +88,13 @@ namespace RombaSharp
// Create the Dir2Dat feature // Create the Dir2Dat feature
Feature dir2dat = new Feature( Feature dir2dat = new Feature(
"Dir2Dat",
"dir2dat", "dir2dat",
"Creates a DAT file for the specified input directory", "Creates a DAT file for the specified input directory",
FeatureType.Flag, FeatureType.Flag,
null); null);
dir2dat.AddFeature("out", new Feature( dir2dat.AddFeature(new Feature(
"out",
"-out", "-out",
"Filename to save out to", "Filename to save out to",
FeatureType.String, FeatureType.String,
@@ -91,6 +102,7 @@ namespace RombaSharp
// Create the Export feature // Create the Export feature
Feature export = new Feature( Feature export = new Feature(
"Export",
"export", "export",
"Exports db to export.csv", "Exports db to export.csv",
FeatureType.Flag, FeatureType.Flag,
@@ -98,6 +110,7 @@ namespace RombaSharp
// Create the Fixdat feature // Create the Fixdat feature
Feature fixdat = new Feature( Feature fixdat = new Feature(
"Fixdat",
"fixdat", "fixdat",
"For each specified DAT file it creates a fix DAT", "For each specified DAT file it creates a fix DAT",
FeatureType.Flag, FeatureType.Flag,
@@ -105,6 +118,7 @@ namespace RombaSharp
// Create the Import feature // Create the Import feature
Feature import = new Feature( Feature import = new Feature(
"Import",
"import", "import",
"Import a database from a formatted CSV file", "Import a database from a formatted CSV file",
FeatureType.Flag, FeatureType.Flag,
@@ -112,6 +126,7 @@ namespace RombaSharp
// Create the Lookup feature // Create the Lookup feature
Feature lookup = new Feature( Feature lookup = new Feature(
"Lookup",
"lookup", "lookup",
"For each specified hash, look up available information", "For each specified hash, look up available information",
FeatureType.Flag, FeatureType.Flag,
@@ -119,6 +134,7 @@ namespace RombaSharp
// Create the Mmmstats feature // Create the Mmmstats feature
Feature memstats = new Feature( Feature memstats = new Feature(
"Memstats",
"memstats", "memstats",
"Prints memory stats", "Prints memory stats",
FeatureType.Flag, FeatureType.Flag,
@@ -126,16 +142,19 @@ namespace RombaSharp
// Create the Merge feature // Create the Merge feature
Feature merge = new Feature( Feature merge = new Feature(
"Merge",
"merge", "merge",
"Merges a depot into the existing one", "Merges a depot into the existing one",
FeatureType.Flag, FeatureType.Flag,
null); null);
merge.AddFeature("depot", new Feature( merge.AddFeature(new Feature(
"depot",
"-depot", "-depot",
"Depot path to merge into", "Depot path to merge into",
FeatureType.String, FeatureType.String,
null)); null));
merge.AddFeature("only-needed", new Feature( merge.AddFeature(new Feature(
"only-needed",
"-only-needed", "-only-needed",
"Only merge files in if needed", "Only merge files in if needed",
FeatureType.Flag, FeatureType.Flag,
@@ -143,6 +162,7 @@ namespace RombaSharp
// Create the Miss feature // Create the Miss feature
Feature miss = new Feature( Feature miss = new Feature(
"Miss",
"miss", "miss",
"For each specified DAT file, create miss and have file", "For each specified DAT file, create miss and have file",
FeatureType.Flag, FeatureType.Flag,
@@ -150,11 +170,13 @@ namespace RombaSharp
// Create the Purge Backup feature // Create the Purge Backup feature
Feature purgeBackup = new Feature( Feature purgeBackup = new Feature(
"Purge Backup",
"purge-backup", "purge-backup",
"Moves DAT index entries for orphaned DATs", "Moves DAT index entries for orphaned DATs",
FeatureType.Flag, FeatureType.Flag,
null); null);
purgeBackup.AddFeature("log-only", new Feature( purgeBackup.AddFeature(new Feature(
"log-only",
"-log-only", "-log-only",
"Only write out actions to log", "Only write out actions to log",
FeatureType.Flag, FeatureType.Flag,
@@ -162,11 +184,13 @@ namespace RombaSharp
// Create the Purge Delete feature // Create the Purge Delete feature
Feature purgeDelete = new Feature( Feature purgeDelete = new Feature(
"Purge Delete",
"purge-delete", "purge-delete",
"Deletes DAT index entries for orphaned DATs", "Deletes DAT index entries for orphaned DATs",
FeatureType.Flag, FeatureType.Flag,
null); null);
purgeDelete.AddFeature("log-only", new Feature( purgeDelete.AddFeature(new Feature(
"log-only",
"-log-only", "-log-only",
"Only write out actions to log", "Only write out actions to log",
FeatureType.Flag, FeatureType.Flag,
@@ -174,6 +198,7 @@ namespace RombaSharp
// Create the Refresh DATs feature // Create the Refresh DATs feature
Feature refreshDats = new Feature( Feature refreshDats = new Feature(
"Refresh DATs",
"refresh-dats", "refresh-dats",
"Refreshes the DAT index from the files in the DAT root", "Refreshes the DAT index from the files in the DAT root",
FeatureType.Flag, FeatureType.Flag,
@@ -181,6 +206,7 @@ namespace RombaSharp
// Create the Progress feature // Create the Progress feature
Feature progress = new Feature( Feature progress = new Feature(
"Progress",
"progress", "progress",
"Shows progress of currently running command [OBSOLETE]", "Shows progress of currently running command [OBSOLETE]",
FeatureType.Flag, FeatureType.Flag,
@@ -188,31 +214,32 @@ namespace RombaSharp
// Create the Shutdown feature // Create the Shutdown feature
Feature shutdown = new Feature( Feature shutdown = new Feature(
"Shutdown",
"shutdown", "shutdown",
"Gracefully shuts down server [OBSOLETE]", "Gracefully shuts down server [OBSOLETE]",
FeatureType.Flag, FeatureType.Flag,
null); null);
// Now, add all of the main features to the Help object // Now, add all of the main features to the Help object
help.Add("Help", helpFeature); help.Add(helpFeature);
help.Add("Archive", archive); help.Add(archive);
help.Add("Build", build); help.Add(build);
help.Add("Stats", stats); help.Add(stats);
help.Add("Rescan Depots", rescanDepots); help.Add(rescanDepots);
help.Add("Diffdat", diffdat); help.Add(diffdat);
help.Add("Dir2Dat", dir2dat); help.Add(dir2dat);
help.Add("Export", export); help.Add(export);
help.Add("Fixdat", fixdat); help.Add(fixdat);
help.Add("Import", import); help.Add(import);
help.Add("Lookup", lookup); help.Add(lookup);
help.Add("Memstats", memstats); help.Add(memstats);
help.Add("Merge", merge); help.Add(merge);
help.Add("Miss", miss); help.Add(miss);
help.Add("Purge Backup", purgeBackup); help.Add(purgeBackup);
help.Add("Purge Delete", purgeDelete); help.Add(purgeDelete);
help.Add("Refresh DATs", refreshDats); help.Add(refreshDats);
help.Add("Progress", progress); help.Add(progress);
help.Add("Shutdown", shutdown); help.Add(shutdown);
return help; return help;
} }

View File

@@ -10,8 +10,10 @@ namespace SabreTools.Library.Help
{ {
#region Private instance variables #region Private instance variables
private string _name;
private List<string> _flags; private List<string> _flags;
private string _description; private string _description;
private string _longDescription; // TODO: Use this to generate README.1ST?
private FeatureType _featureType; private FeatureType _featureType;
private Dictionary<string, Feature> _features; private Dictionary<string, Feature> _features;
private List<string> _additionalNotes; private List<string> _additionalNotes;
@@ -28,10 +30,22 @@ namespace SabreTools.Library.Help
#region Publicly facing variables #region Publicly facing variables
public string Name
{
get { return _name; }
}
public List<string> Flags
{
get { return _flags; }
}
public string Description public string Description
{ {
get { return _description; } get { return _description; }
} }
public string LongDescription
{
get { return _longDescription; }
}
public Dictionary<string, Feature> Features public Dictionary<string, Feature> Features
{ {
get { return _features; } get { return _features; }
@@ -43,28 +57,34 @@ namespace SabreTools.Library.Help
public Feature() public Feature()
{ {
_name = null;
_flags = new List<string>(); _flags = new List<string>();
_description = null; _description = null;
_longDescription = null;
_featureType = FeatureType.Flag; _featureType = FeatureType.Flag;
_features = new Dictionary<string, Feature>(); _features = new Dictionary<string, Feature>();
_additionalNotes = new List<string>(); _additionalNotes = new List<string>();
} }
public Feature(string flag, string description, FeatureType featureType, List<string> additionalNotes) public Feature(string name, string flag, string description, FeatureType featureType, string longDescription = null, List<string> additionalNotes = null)
{ {
_name = name;
List<string> flags = new List<string>(); List<string> flags = new List<string>();
flags.Add(flag); flags.Add(flag);
_flags = flags; _flags = flags;
_description = description; _description = description;
_longDescription = longDescription;
_featureType = featureType; _featureType = featureType;
_features = new Dictionary<string, Feature>(); _features = new Dictionary<string, Feature>();
_additionalNotes = additionalNotes; _additionalNotes = additionalNotes;
} }
public Feature(List<string> flags, string description, FeatureType featureType, List<string> additionalNotes) public Feature(string name, List<string> flags, string description, FeatureType featureType, string longDescription = null, List<string> additionalNotes = null)
{ {
_name = name;
_flags = flags; _flags = flags;
_description = description; _description = description;
_longDescription = longDescription;
_featureType = featureType; _featureType = featureType;
_features = new Dictionary<string, Feature>(); _features = new Dictionary<string, Feature>();
_additionalNotes = additionalNotes; _additionalNotes = additionalNotes;
@@ -83,12 +103,20 @@ namespace SabreTools.Library.Help
set { _features[name] = value; } set { _features[name] = value; }
} }
/// <summary>
/// Directly address a given subfeature
/// </summary>
public Feature this[Feature subfeature]
{
get { return _features[subfeature.Name]; }
set { _features[subfeature.Name] = value; }
}
/// <summary> /// <summary>
/// Add a new feature for this feature /// Add a new feature for this feature
/// </summary> /// </summary>
/// <param name="name">Name of the feature to add</param>
/// <param name="feature"></param> /// <param name="feature"></param>
public void AddFeature(string name, Feature feature) public void AddFeature(Feature feature)
{ {
if (_features == null) if (_features == null)
{ {
@@ -97,13 +125,13 @@ namespace SabreTools.Library.Help
lock(_features) lock(_features)
{ {
if (!_features.ContainsKey(name)) if (!_features.ContainsKey(feature.Name))
{ {
_features.Add(name, feature); _features.Add(feature.Name, feature);
} }
else else
{ {
_features[name] = feature; _features[feature.Name] = feature;
} }
} }
} }

View File

@@ -65,12 +65,45 @@ namespace SabreTools.Library.Help
} }
} }
public Feature this[Feature subfeature]
{
get
{
if (_features == null)
{
_features = new Dictionary<string, Feature>();
}
if (!_features.ContainsKey(subfeature.Name))
{
return null;
}
return _features[subfeature.Name];
}
set
{
if (_features == null)
{
_features = new Dictionary<string, Feature>();
}
if (_features.ContainsKey(subfeature.Name))
{
_features[subfeature.Name] = value;
}
else
{
_features.Add(subfeature.Name, value);
}
}
}
/// <summary> /// <summary>
/// Add a new feature to the help /// Add a new feature to the help
/// </summary> /// </summary>
/// <param name="name">Name of the feature to add</param>
/// <param name="feature">Feature object to map to</param> /// <param name="feature">Feature object to map to</param>
public void Add(string name, Feature feature) public void Add(Feature feature)
{ {
if (_features == null) if (_features == null)
{ {
@@ -79,7 +112,7 @@ namespace SabreTools.Library.Help
lock (_features) lock (_features)
{ {
_features.Add(name, feature); _features.Add(feature.Name, feature);
} }
} }

View File

@@ -1,6 +1,6 @@
************************************************ ************************************************
* SabreTools - DAT management software * * SabreTools - DAT management software *
* https://github.com/mnadareski/wizzardDesktop * * https://github.com/SabreTools/SabreTools *
************************************************ ************************************************
Table of Contents Table of Contents
@@ -205,81 +205,44 @@ Options:
archives as files themselves. This is good for uncompressed sets archives as files themselves. This is good for uncompressed sets
that include archives that should be read as-is. that include archives that should be read as-is.
-oa, --output-all Output in all available formats -ot=, --output-type= Output DATs to a given format
Add outputting the created DAT in all available formats. See Add outputting the created DAT to one of the following formats:
specific formats for additional flags that may be used. all - All available DAT types
am, attractmode - AttractMode XML
-oam, --output-attractmode Output in AttractMode format cmp, clrmamepro - ClrMamePro
Add outputting the created DAT to AttractMode format csv - Standardized Comma-Separated Value
dc, doscenter - DOSCenter
-oc, --output-cmp Output in CMP format lr, listrom - MAME Listrom
Add outputting the created DAT to clrmamepro format lx, listxml - MAME Listxml
miss, missfile - GoodTools Missfile
-ocsv, --output-csv Output in Comma-Separated Value format md5 - MD5
Add outputting the created DAT to standardized CSV format ol, offlinelist - OfflineList XML
rc, romcenter - RomCenter
-od, --output-doscenter Output in DOSCenter format sd, sabredat - SabreDat XML
Add outputting the created DAT to DOSCenter format sfv - SFV
sha1 - SHA1
-olr, --output-listrom Output in MAME Listrom format sha256 - SHA256
Add outputting the created DAT to MAME Listrom format sha384 - SHA384
sha512 - SHA512
-om, --output-miss Output in Missfile format sl, softwarelist - MAME Software List XML
Add outputting the created DAT to GoodTools miss format ssv - Standardized Semicolon-Separated Value
tsv - Standardized Tab-Separated Value
-omd5, --output-md5 Output in MD5 format xml, logiqx - Logiqx XML
Add outputting the created DAT to MD5 format
-ool, --output-offlinelist Output in OfflineList format
Add outputting the created DAT to OfflineList XML format
-or, --output-romcenter Output in RomCenter format
Add outputting the created DAT to RomCenter format
-os, --output-sabredat Output in SabreDAT format
Add outputting the created DAT to SabreDAT XML format
-osfv, --output-sfv Output in SFV format
Add outputting the created DAT to SFV format
-osha1, --output-sha1 Output in SHA-1 format
Add outputting the created DAT to SHA1 format
-osha256, --output-sha256 Output in SHA-256 format
Add outputting the created DAT to SHA-256 format
-osha384, --output-sha384 Output in SHA-384 format
Add outputting the created DAT to SHA-384 format
-osha512, --output-sha512 Output in SHA-512 format
Add outputting the created DAT to SHA-512 format
-osl, --output-softwarelist Output in Software List format
Add outputting the created DAT to Software List XML format
-ossv, --output-ssv Output in Semicolon-Separated Value format
Add outputting the created DAT to standardized SSV format
-otsv, --output-tsv Output in Tab-Separated Value format
Add outputting the created DAT to standardized TSV format
-ox, --output-xml Output in Logiqx XML format (default)
Add outputting the created DAT to Logiqx XML format
-dpc, --depreciated Output 'game' instead of 'machine' -dpc, --depreciated Output 'game' instead of 'machine'
By default, XML DATs output with the more modern "machine" tag By default, XML DATs output with the more modern "machine" tag
for each set. This flag allows users to output the older "game" for each set. This flag allows users to output the older "game"
tag instead, for compatibility reasons. tag instead, for compatibility reasons. [Logiqx only]
-ro, --romba Read files from a Romba input -ro, --romba Treat like a Romba depot (requires SHA-1)
Allow for reading of GZipped files as if they were from a Romba Allow for reading of GZipped files as if they were from a Romba
depot. This implies that the files will be in the TorrentGZ format depot. This implies that the files will be in the TorrentGZ format
as well, including naming convention. as well, including naming convention.
-ska, --skip-archives Skip archive files -ska, --skip-archives Skip all archives
Skip any files that are treated like archives Skip any files that are treated like archives
-skf, --skip-files Skip non-archive files -skf, --skip-files Skip all non-archives
Skip any files that are not treated like archives Skip any files that are not treated like archives
-f=, --filename= Set the external name of the DAT -f=, --filename= Set the external name of the DAT
@@ -322,7 +285,7 @@ Options:
-xof, --exclude-of Exclude romof, cloneof, sampleof tags -xof, --exclude-of Exclude romof, cloneof, sampleof tags
If this flag is enabled, then the romof, cloneof, and sampleof tags If this flag is enabled, then the romof, cloneof, and sampleof tags
will be omitted from the outputted DAT or DATs. will be omitted from the outputted DAT.
-sds, --scene-date-strip Remove date from scene-named sets -sds, --scene-date-strip Remove date from scene-named sets
If this flag is enabled, sets with "scene" names will have the date If this flag is enabled, sets with "scene" names will have the date
@@ -424,82 +387,45 @@ Options:
possible criteria. See the individual input information for details. More possible criteria. See the individual input information for details. More
than one split type is allowed at a time. than one split type is allowed at a time.
-oa, --output-all Output in all available formats -ot=, --output-type= Output DATs to a given format
Add outputting the created DAT in all available formats. See Add outputting the created DAT to one of the following formats:
specific formats for additional flags that may be used. all - All available DAT types
am, attractmode - AttractMode XML
-oam, --output-attractmode Output in AttractMode format cmp, clrmamepro - ClrMamePro
Add outputting the created DAT to AttractMode format csv - Standardized Comma-Separated Value
dc, doscenter - DOSCenter
-oc, --output-cmp Output in CMP format lr, listrom - MAME Listrom
Add outputting the created DAT to clrmamepro format lx, listxml - MAME Listxml
miss, missfile - GoodTools Missfile
-ocsv, --output-csv Output in Comma-Separated Value format md5 - MD5
Add outputting the created DAT to standardized CSV format ol, offlinelist - OfflineList XML
rc, romcenter - RomCenter
-od, --output-doscenter Output in DOSCenter format sd, sabredat - SabreDat XML
Add outputting the created DAT to DOSCenter format sfv - SFV
sha1 - SHA1
-olr, --output-listrom Output in MAME Listrom format sha256 - SHA256
Add outputting the created DAT to MAME Listrom format sha384 - SHA384
sha512 - SHA512
-om, --output-miss Output in Missfile format sl, softwarelist - MAME Software List XML
Add outputting the created DAT to GoodTools miss format ssv - Standardized Semicolon-Separated Value
tsv - Standardized Tab-Separated Value
-omd5, --output-md5 Output in MD5 format xml, logiqx - Logiqx XML
Add outputting the created DAT to MD5 format
-ool, --output-offlinelist Output in OfflineList format
Add outputting the created DAT to OfflineList XML format
-or, --output-romcenter Output in RomCenter format
Add outputting the created DAT to RomCenter format
-os, --output-sabredat Output in SabreDAT format
Add outputting the created DAT to SabreDAT XML format
-osfv, --output-sfv Output in SFV format
Add outputting the created DAT to SFV format
-osha1, --output-sha1 Output in SHA-1 format
Add outputting the created DAT to SHA1 format
-osha256, --output-sha256 Output in SHA-256 format
Add outputting the created DAT to SHA-256 format
-osha384, --output-sha384 Output in SHA-384 format
Add outputting the created DAT to SHA-384 format
-osha512, --output-sha512 Output in SHA-512 format
Add outputting the created DAT to SHA-512 format
-osl, --output-softwarelist Output in Software List format
Add outputting the created DAT to Software List XML format
-ossv, --output-ssv Output in Semicolon-Separated Value format
Add outputting the created DAT to standardized SSV format
-otsv, --output-tsv Output in Tab-Separated Value format
Add outputting the created DAT to standardized TSV format
-ox, --output-xml Output in Logiqx XML format
Add outputting the created DAT to Logiqx XML format
-dpc, --depreciated Output 'game' instead of 'machine' -dpc, --depreciated Output 'game' instead of 'machine'
By default, XML DATs output with the more modern "machine" tag By default, XML DATs output with the more modern "machine" tag
for each set. This flag allows users to output the older "game" for each set. This flag allows users to output the older "game"
tag instead, for compatibility reasons. tag instead, for compatibility reasons. [Logiqx only]
-out=, --output-dir= Set the name of the output directory -out=, --output-dir= Set the name of the output directory
This sets an output folder to be used when the files are created. If This sets an output folder to be used when the files are created. If
a path is not defined, the application directory is used instead. a path is not defined, the application directory is used instead.
-ip, --inplace Write to the input directories -ip, --inplace Write to the input directories, where possible
This will write out the split files to the source folder instead of By default, files are written to the runtime directory (or the output
writing them out to the runtime folder by default (or the output directory, if set). This flag enables users to write out to the
folder if overridden). directory that the DATs originated from.
-es, --extension Split a DAT by two file extensions -es, --extension Split DAT(s) by two file extensions
For a DAT, or set of DATs, allow for splitting based on a list of For a DAT, or set of DATs, allow for splitting based on a list of
input extensions. This can allow for combined DAT files, such as input extensions. This can allow for combined DAT files, such as
those combining two separate systems, to be split. Files with any those combining two separate systems, to be split. Files with any
@@ -516,17 +442,11 @@ Options:
more than one extension is defined, they must be placed in more than one extension is defined, they must be placed in
separate flags separate flags
-hs, --hash Split a DAT or folder by best-available hashes -hs, --hash Split DAT(s) or folder by best-available hashes
For a DAT, or set of DATs, allow for splitting based on the best For a DAT, or set of DATs, allow for splitting based on the best
available hash for each file within. The order of preference for the available hash for each file within. The order of preference for the
outputted DATs is as follows: outputted DATs is as follows: Nodump, SHA512, SHA384, SHA256, SHA1,
- Nodump MD5, CRC (or worse).
- SHA-512 available
- SHA-386 available
- SHA-256 available
- SHA-1 available
- MD5 available
- CRC or worse available
-ls, --level Split a SuperDAT or folder by lowest available level -ls, --level Split a SuperDAT or folder by lowest available level
For a DAT, or set of DATs, allow for splitting based on the lowest For a DAT, or set of DATs, allow for splitting based on the lowest
@@ -534,7 +454,7 @@ Options:
last, then it will create an output DAT for the parent directory last, then it will create an output DAT for the parent directory
"mid" in a folder called "top" with a game called "last". "mid" in a folder called "top" with a game called "last".
-s, --short Use short names for outputted DATs -s, --short Use short output names
Instead of using ClrMamePro-style long names for DATs, use just Instead of using ClrMamePro-style long names for DATs, use just
the name of the folder as the name of the DAT. This can be used the name of the folder as the name of the DAT. This can be used
in conjunction with --base to output in the format of "Original in conjunction with --base to output in the format of "Original
@@ -550,8 +470,8 @@ Options:
-szs, --size Split DAT(s) or folder by file sizes -szs, --size Split DAT(s) or folder by file sizes
For a DAT, or set of DATs, allow for splitting based on the sizes For a DAT, or set of DATs, allow for splitting based on the sizes
of the files, specificially if the type is a rom (disks don't have of the files, specifically if the type is a Rom (most item types don't
sizes) have sizes).
-rad, --radix Set the midpoint to split at -rad, --radix Set the midpoint to split at
Set the size at which all roms less than the size are put in the Set the size at which all roms less than the size are put in the
@@ -584,7 +504,7 @@ Options:
be deleted. This can be useful when the original file structure is be deleted. This can be useful when the original file structure is
no longer needed or if there is limited space on the source drive. no longer needed or if there is limited space on the source drive.
-in, --inverse Match files not in the DAT -in, --inverse Rebuild only files not in DAT
Instead of the normal behavior of rebuilding using a DAT, this flag Instead of the normal behavior of rebuilding using a DAT, this flag
allows the user to use the DAT as a filter instead. All files that allows the user to use the DAT as a filter instead. All files that
are found in the DAT will be skipped and everything else will be are found in the DAT will be skipped and everything else will be
@@ -608,21 +528,21 @@ Options:
This will technically invalidate the output files as proper This will technically invalidate the output files as proper
TorrentZip files because the date will not match the standard. TorrentZip files because the date will not match the standard.
-t7z, --torrent-7zip Enable Torrent 7zip output -t7z, --torrent-7zip Enable Torrent 7Zip output
Instead of ouputting the files to folder, files will be rebuilt to Instead of outputting the files to folder, files will be rebuilt to
Torrent7Zip (T7Z) files. This format is based on the LZMA container Torrent7Zip (T7Z) files. This format is based on the LZMA container
format 7zip, but with custom header information. This is currently format 7Zip, but with custom header information. This is currently
unused by any major application. Currently does not produce proper unused by any major application. Currently does not produce proper
Torrent-compatible outputs. Torrent-compatible outputs.
-tar Enable Tape ARchive output -tar Enable Tape ARchive output
Instead of outputting the fiels to folder, files will be rebuilt to Instead of outputting the files to folder, files will be rebuilt to
Tape ARchive (TAR) files. This format is a standardized storage Tape ARchive (TAR) files. This format is a standardized storage
archive without any compression, usually used with other compression archive without any compression, usually used with other compression
formats around it. It is widely used in backup applications and formats around it. It is widely used in backup applications and
source code archives. source code archives.
-tgz, --torrent-gzip Enable Torrent GZ output -tgz, --torrent-gzip Enable Torrent GZip output
Instead of outputting the files to folder, files will be rebuilt to Instead of outputting the files to folder, files will be rebuilt to
TorrentGZ (TGZ) files. This format is based on the GZip archive TorrentGZ (TGZ) files. This format is based on the GZip archive
format, but with custom header information and a file name replaced format, but with custom header information and a file name replaced
@@ -630,7 +550,7 @@ Options:
tool Romba (https://github.com/uwedeportivo/romba), but may be used tool Romba (https://github.com/uwedeportivo/romba), but may be used
more widely in the future. more widely in the future.
-r, --romba Enable Romba depot directory output -r, --romba Treat like a Romba depot (requires SHA-1)
As an extension of the parent flag, this outputs the TGZ files As an extension of the parent flag, this outputs the TGZ files
into directories based on the structure used by Romba. This uses into directories based on the structure used by Romba. This uses
nested folders using the first 4 bytes of the SHA-1, 1 byte for nested folders using the first 4 bytes of the SHA-1, 1 byte for
@@ -639,14 +559,14 @@ Options:
compressed size of the folder inside for use with Romba. compressed size of the folder inside for use with Romba.
-tlrz, --torrent-lrzip Enable Torrent Long-Range Zip output [UNIMPLEMENTED] -tlrz, --torrent-lrzip Enable Torrent Long-Range Zip output [UNIMPLEMENTED]
Instead of ouputting the files to folder, files will be rebuilt to Instead of outputting the files to folder, files will be rebuilt to
Torrent Long-Range Zip (TLRZ) files. This format is based on the Torrent Long-Range Zip (TLRZ) files. This format is based on the
LRZip file format as defined at https://github.com/ckolivas/lrzip LRZip file format as defined at https://github.com/ckolivas/lrzip
but with custom header information. This is currently unused by any but with custom header information. This is currently unused by any
major application. major application.
-tlz4, --torrent-lz4 Enable Torrent LZ4 output [UNIMPLEMENTED] -tlz4, --torrent-lz4 Enable Torrent LZ4 output [UNIMPLEMENTED]
Instead of ouputting the files to folder, files will be rebuilt to Instead of outputting the files to folder, files will be rebuilt to
Torrent LZ4 (TLZ4) files. This format is based on the LZ4 file Torrent LZ4 (TLZ4) files. This format is based on the LZ4 file
format as defined at https://github.com/lz4/lz4 but with custom format as defined at https://github.com/lz4/lz4 but with custom
header information. This is currently unused by any major header information. This is currently unused by any major
@@ -666,21 +586,21 @@ Options:
Torrent-compatible outputs. Torrent-compatible outputs.
-tzip, --torrent-zip Enable Torrent Zip output -tzip, --torrent-zip Enable Torrent Zip output
Instead of ouputting files to folder, files will be rebuilt to Instead of outputting files to folder, files will be rebuilt to
TorrentZip (TZip) files. This format is based on the ZIP archive TorrentZip (TZip) files. This format is based on the ZIP archive
format, but with custom header information. This is primarily used format, but with custom header information. This is primarily used
by external tool RomVault (http://www.romvault.com/) and is already by external tool RomVault (http://www.romvault.com/) and is already
widely used. widely used.
-tzpaq, --torrent-zpaq Enable Torrent ZPAQ output [UNIMPLEMENTED] -tzpaq, --torrent-zpaq Enable Torrent ZPAQ output [UNIMPLEMENTED]
Instead of ouputting the files to folder, files will be rebuilt to Instead of outputting the files to folder, files will be rebuilt to
Torrent ZPAQ (TZPAQ) files. This format is based on the ZPAQ file Torrent ZPAQ (TZPAQ) files. This format is based on the ZPAQ file
format as defined at https://github.com/zpaq/zpaq but with custom format as defined at https://github.com/zpaq/zpaq but with custom
header information. This is currently unused by any major header information. This is currently unused by any major
application. application.
-tzstd, --torrent-zstd Enable Torrent Zstd output [UNIMPLEMENTED] -tzstd, --torrent-zstd Enable Torrent Zstd output [UNIMPLEMENTED]
Instead of ouputting the files to folder, files will be rebuilt to Instead of outputting the files to folder, files will be rebuilt to
Torrent Zstd (TZstd) files. This format is based on the Zstd file Torrent Zstd (TZstd) files. This format is based on the Zstd file
format as defined at https://github.com/skbkontur/ZstdNet but with format as defined at https://github.com/skbkontur/ZstdNet but with
custom header information. This is currently unused by any major custom header information. This is currently unused by any major
@@ -710,27 +630,27 @@ Options:
content of the rebuild folder is not entirely known or is known to content of the rebuild folder is not entirely known or is known to
be mixed. be mixed.
-dm, --dat-merged Force creating merged sets -dm, --dat-merged Create merged sets
Preprocess the DAT to have parent sets contain all items from the Preprocess the DAT to have parent sets contain all items from the
children based on the cloneof tag. This is incompatible with the children based on the cloneof tag. This is incompatible with the
other --dat-X flags. other --dat-X flags.
-ds, --dat-split Force creating split sets -ds, --dat-split Create split sets
Preprocess the DAT to remove redundant files between parents and Preprocess the DAT to remove redundant files between parents and
children based on the romof and cloneof tags. This is incompatible children based on the romof and cloneof tags. This is incompatible
with the other --dat-X flags. with the other --dat-X flags.
-dnm, --dat-non-merged Force creating non-merged sets -dnm, --dat-non-merged Create non-merged sets
Preprocess the DAT to have child sets contain all items from the Preprocess the DAT to have child sets contain all items from the
parent set based on the cloneof tag. This is incompatible with the parent set based on the cloneof tag. This is incompatible with the
other --dat-X flags. other --dat-X flags.
-dnd, --dat-device-non-merged Force creating device non-merged sets -dnd, --dat-device-non-merged Create device non-merged sets
Preprocess the DAT to have child sets contain all items from the Preprocess the DAT to have child sets contain all items from the
device references. This is incompatible with the other --dat-X device references. This is incompatible with the other --dat-X
flags. flags.
-df, --dat-full-non-merged Force creating fully non-merged sets -df, --dat-full-non-merged Create fully non-merged sets
Preprocess the DAT to have child sets contain all items from the Preprocess the DAT to have child sets contain all items from the
parent sets based on the cloneof and romof tags as well as device parent sets based on the cloneof and romof tags as well as device
references. This is incompatible with the other --dat-X flags. references. This is incompatible with the other --dat-X flags.
@@ -741,7 +661,7 @@ Options:
created. If the user specifies that only 1 thread is to be used, it created. If the user specifies that only 1 thread is to be used, it
defaults to the original, serial implementation of the DFD code. defaults to the original, serial implementation of the DFD code.
-upd, --update-dat Output updated DAT -upd, --update-dat Output updated DAT to output directory
Once the files that were able to rebuilt are taken care of, a DAT of Once the files that were able to rebuilt are taken care of, a DAT of
the files that could not be matched will be output to the output the files that could not be matched will be output to the output
directory. directory.
@@ -759,14 +679,20 @@ Options:
- Roms with Nodump status - Roms with Nodump status
-as, --all-stats Write all statistics to all available formats -as, --all-stats Write all statistics to all available formats
Output all rom information to all available formats Output all statistical information to all available formats
-bc, --baddump-column Add statistics for baddumps to output -csv, --csv Output in Comma-Separated Value format
Add a new column or field for counting the number of baddumps in the Output all statistical information in standardized CSV format
DAT
-csv, --csv Write all statistics to CSV -html, --html Output in HTML format
Output all rom information in standardized CSV format Output all statistical information in standardized HTML format
-tsv, --tsv Output in Tab-Separated Value format
Output all statistical information in standardized TSV format
-txt, --text Output in generic text format
Output all statistical information in generic text format. If no
other format flags are enabled, this is the default output.
-f=, --filename= Set the filename for the output -f=, --filename= Set the filename for the output
Set the filename (without extension) for the outputted report Set the filename (without extension) for the outputted report
@@ -775,9 +701,9 @@ Options:
This sets an output folder to be used when the files are created. If This sets an output folder to be used when the files are created. If
a path is not defined, the application directory is used instead. a path is not defined, the application directory is used instead.
-html, --html Write all statistics to HTML -bc, --baddump-column Add statistics for baddumps to output
This will output by default the combined statistics for all input Add a new column or field for counting the number of baddumps in the
DAT files. DAT
-nc, --nodump-column Add statistics for nodumps to output -nc, --nodump-column Add statistics for nodumps to output
Add a new column or field for counting the number of nodumps in the Add a new column or field for counting the number of nodumps in the
@@ -785,40 +711,50 @@ Options:
-ind, --individual Show individual statistics -ind, --individual Show individual statistics
Optionally, the statistics for each of the individual input DATs can Optionally, the statistics for each of the individual input DATs can
be output as well. This can be useful to show where the size or be output as well.
amount of files found in the combined totals can be broken down from
-tsv, --tsv Output in Tab-Separated Value format
Output all rom information in standardized TSV format
-txt, --text Output in generic text format
Output all rom information in generic text format. If no other format
flags are enabled, this is the default output.
-ud, --update Update and manipulate DAT(s) -ud, --update Update and manipulate DAT(s)
This is the multitool part of the program, allowing for almost every This is the multitool part of the program, allowing for almost every
manipulation to a DAT, or set of DATs. This is also a combination of manipulation to a DAT, or set of DATs. This is also a combination of
many different programs that performed DAT manipulation that work better many different programs that performed DAT manipulation that work better
together. together.
-oa, --output-all Output in all available formats
Add outputting the created DAT in all available formats. See
specific formats for additional flags that may be used.
-oam, --output-attractmode Output in AttractMode format
Add outputting the created DAT to AttractMode format
-oc, --output-cmp Output in CMP format -ot=, --output-type= Output DATs to a given format
Add outputting the created DAT to clrmamepro format Add outputting the created DAT to one of the following formats:
all - All available DAT types
-ocsv, --output-csv Output in Comma-Separated Value format am, attractmode - AttractMode XML
Add outputting the created DAT to standardized CSV format cmp, clrmamepro - ClrMamePro
csv - Standardized Comma-Separated Value
dc, doscenter - DOSCenter
lr, listrom - MAME Listrom
lx, listxml - MAME Listxml
miss, missfile - GoodTools Missfile
md5 - MD5
ol, offlinelist - OfflineList XML
rc, romcenter - RomCenter
sd, sabredat - SabreDat XML
sfv - SFV
sha1 - SHA1
sha256 - SHA256
sha384 - SHA384
sha512 - SHA512
sl, softwarelist - MAME Software List XML
ssv - Standardized Semicolon-Separated Value
tsv - Standardized Tab-Separated Value
xml, logiqx - Logiqx XML
-dpc, --depreciated Output 'game' instead of 'machine'
By default, XML DATs output with the more modern "machine" tag
for each set. This flag allows users to output the older "game"
tag instead, for compatibility reasons. [Logiqx only]
-pre=, --prefix= Set prefix for all lines -pre=, --prefix= Set prefix for all lines
Set a generic prefix to be prepended to all outputted lines Set a generic prefix to be prepended to all outputted lines
[*SV, Missfile only]
-post=, --postfix= Set postfix for all lines -post=, --postfix= Set postfix for all lines
Set a generic postfix to be appended to all outputted lines Set a generic postfix to be appended to all outputted lines
[*SV, Missfile only]
Both prefix and postfix can use one of the following strings: Both prefix and postfix can use one of the following strings:
- %game% - Replaced with the Game/Machine name - %game% - Replaced with the Game/Machine name
@@ -831,31 +767,27 @@ Options:
- %sha512% - Replaced with the SHA-512 - %sha512% - Replaced with the SHA-512
- %size% - Replaced with the size - %size% - Replaced with the size
-q, --quotes Put double-quotes around each item -q, --quotes Double-quote each item
This quotes only the item and not the prefix and postfix This flag surrounds the item by double-quotes, not including the
prefix or postfix. [*SV, Missfile only]
-od, --output-doscenter Output in DOSCenter format
Add outputting the created DAT to DOSCenter format
-olr, --output-listrom Output in MAME Listrom format
Add outputting the created DAT to MAME Listrom format
-om, --output-miss Output in Missfile format
Add outputting the created DAT to GoodTools miss format
-r, --roms Output roms to miss instead of sets -r, --roms Output roms to miss instead of sets
By default, the outputted file will include the name of the game By default, the outputted file will include the name of the game
so this flag allows for the name of the rom to be output instead. so this flag allows for the name of the rom to be output instead
[Missfile only]
-gp, --game-prefix Add game name as a prefix -gp, --game-prefix Add game name as a prefix
Mainly used with the previous flag, this allows for the name of Mainly used with the previous flag, this allows for the name of
the game to be used as a prefix to each file. the game to be used as a prefix to each file. [Missfile, MD5,
SFV, SHA* only]
-pre=, --prefix= Set prefix for all lines -pre=, --prefix= Set prefix for all lines
Set a generic prefix to be prepended to all outputted lines Set a generic prefix to be prepended to all outputted lines
[*SV, Missfile only]
-post=, --postfix= Set postfix for all lines -post=, --postfix= Set postfix for all lines
Set a generic postfix to be appended to all outputted lines Set a generic postfix to be appended to all outputted lines
[*SV, Missfile only]
Both prefix and postfix can use one of the following strings: Both prefix and postfix can use one of the following strings:
- %game% - Replaced with the Game/Machine name - %game% - Replaced with the Game/Machine name
@@ -870,128 +802,22 @@ Options:
-q, --quotes Put double-quotes around each item -q, --quotes Put double-quotes around each item
This quotes only the item and not the prefix and postfix This quotes only the item and not the prefix and postfix
[*SV, Missfile only]
-ae=, --add-extension= Add an extension to each item -ae=, --add-extension= Add an extension to each item
To each item, a postfixed extension is added To each item, a postfixed extension is added [Missfile only]
-re=, --replace-extension= Replace all extensions with specified -re=, --replace-extension= Replace all extensions with specified
When an extension exists, replace it with the provided instead When an extension exists, replace it with the provided instead
[Missfile only]
-rme, --remove-extensions Remove all extensions from all items -rme, --remove-extensions Remove all extensions from all items
For each item, the extension is removed For each item, remove the extension. [Missfile only]
-ro, --romba Output in Romba format (requires SHA-1) -ro, --romba Treat like a Romba depot (requires SHA-1)
Instead of outputting the game or rom name, output the SHA-1 of Instead of outputting the game or rom name, output the SHA-1 of
the files instead. This requires the source DAT to have SHA-1 the files instead. This requires the source DAT to have SHA-1
hashes. hashes. [Missfile only]
-omd5, --output-md5 Output in MD5 format
Add outputting the created DAT to MD5 format
-gp, --game-prefix Add game name as a prefix
This allows for the name of the game to be used as a prefix to
each file
-ool, --output-offlinelist Output in OfflineList format
Add outputting the created DAT to OfflineList XML format
-or, --output-romcenter Output in RomCenter format
Add outputting the created DAT to RomCenter format
-os, --output-sabredat Output in SabreDAT format
Add outputting the created DAT to SabreDAT XML format
-osfv, --output-sfv Output in SFV format
Add outputting the created DAT to SFV format
-gp, --game-prefix Add game name as a prefix
This allows for the name of the game to be used as a prefix to
each file
-osha1, --output-sha1 Output in SHA-1 format
Add outputting the created DAT to SHA1 format
-gp, --game-prefix Add game name as a prefix
This allows for the name of the game to be used as a prefix to
each file
-osha256, --output-sha256 Output in SHA-256 format
Add outputting the created DAT to SHA-256 format
-gp, --game-prefix Add game name as a prefix
This allows for the name of the game to be used as a prefix to
each file
-osha384, --output-sha384 Output in SHA-384 format
Add outputting the created DAT to SHA-384 format
-gp, --game-prefix Add game name as a prefix
This allows for the name of the game to be used as a prefix to
each file
-osha512, --output-sha512 Output in SHA-512 format
Add outputting the created DAT to SHA-512 format
-gp, --game-prefix Add game name as a prefix
This allows for the name of the game to be used as a prefix to
each file
-osl, --output-softwarelist Output in Software List format
Add outputting the created DAT to Software List XML format
-ossv, --output-ssv Output in Semicolon-Separated Value format
Add outputting the created DAT to standardized SSV format
-pre=, --prefix= Set prefix for all lines
Set a generic prefix to be prepended to all outputted lines
-post=, --postfix= Set postfix for all lines
Set a generic postfix to be appended to all outputted lines
Both prefix and postfix can use one of the following strings:
- %game% - Replaced with the Game/Machine name
- %name% - Replaced with the Rom name
- %crc% - Replaced with the CRC
- %md5% - Replaced with the MD5
- %sha1% - Replaced with the SHA-1
- %sha256% - Replaced with the SHA-256
- %sha384% - Replaced with the SHA-384
- %sha512% - Replaced with the SHA-512
- %size% - Replaced with the size
-q, --quotes Put double-quotes around each item
This quotes only the item and not the prefix and postfix
-otsv, --output-tsv Output in Tab-Separated Value format
Add outputting the created DAT to standardized TSV format
-pre=, --prefix= Set prefix for all lines
Set a generic prefix to be prepended to all outputted lines
-post=, --postfix= Set postfix for all lines
Set a generic postfix to be appended to all outputted lines
Both prefix and postfix can use one of the following strings:
- %game% - Replaced with the Game/Machine name
- %name% - Replaced with the Rom name
- %crc% - Replaced with the CRC
- %md5% - Replaced with the MD5
- %sha1% - Replaced with the SHA-1
- %sha256% - Replaced with the SHA-256
- %sha384% - Replaced with the SHA-384
- %sha512% - Replaced with the SHA-512
- %size% - Replaced with the size
-q, --quotes Put double-quotes around each item
This quotes only the item and not the prefix and postfix
-ox, --output-xml Output in Logiqx XML format
Add outputting the created DAT to Logiqx XML format
-dpc, --depreciated Output 'game' instead of 'machine'
By default, XML DATs output with the more modern "machine" tag
for each set. This flag allows users to output the older "game"
tag instead, for compatibility reasons.
-f=, --filename= Set the external name of the DAT -f=, --filename= Set the external name of the DAT
Set the base filename for the output DAT(s) Set the base filename for the output DAT(s)
@@ -1049,7 +875,7 @@ Options:
-xof, --exclude-of Exclude romof, cloneof, sampleof tags -xof, --exclude-of Exclude romof, cloneof, sampleof tags
If this flag is enabled, then the romof, cloneof, and sampleof tags If this flag is enabled, then the romof, cloneof, and sampleof tags
will be omitted from the outputted DAT or DATs. will be omitted from the outputted DAT.
-sds, --scene-date-strip Remove date from scene-named sets -sds, --scene-date-strip Remove date from scene-named sets
If this flag is enabled, sets with "scene" names will have the date If this flag is enabled, sets with "scene" names will have the date
@@ -1057,8 +883,8 @@ Options:
would become "Game_Name-Group". would become "Game_Name-Group".
-clean Clean game names according to WoD standards -clean Clean game names according to WoD standards
Game names will be santitized to remove what the original WoD Game names will be sanitized to remove what the original WoD
standards deemed as unneeded information, such as parenthized or standards deemed as unneeded information, such as parenthesized or
bracketed strings bracketed strings
-ru, --remove-unicode Remove unicode characters from names -ru, --remove-unicode Remove unicode characters from names
@@ -1086,7 +912,7 @@ Options:
By default, all available hashes will be written out to the DAT. By default, all available hashes will be written out to the DAT.
This will remove all SHA-512 hashes from the output file(s). This will remove all SHA-512 hashes from the output file(s).
-dan, --description-as-name Use Software List name instead of description -dan, --description-as-name Use description instead of machine name
By default, all DATs are converted exactly as they are input. By default, all DATs are converted exactly as they are input.
Enabling this flag allows for the machine names in the DAT to be Enabling this flag allows for the machine names in the DAT to be
replaced by the machine description instead. In most cases, this replaced by the machine description instead. In most cases, this
@@ -1109,7 +935,7 @@ Options:
parent set based on the cloneof tag. This is incompatible with the parent set based on the cloneof tag. This is incompatible with the
other --dat-X flags. other --dat-X flags.
-dnd, --dat-device-non-merged Force creating device non-merged sets -dnd, --dat-device-non-merged Create device non-merged sets
Preprocess the DAT to have child sets contain all items from the Preprocess the DAT to have child sets contain all items from the
device references. This is incompatible with the other --dat-X device references. This is incompatible with the other --dat-X
flags. flags.
@@ -1145,7 +971,7 @@ Options:
-m, --merge Merge the input DATs -m, --merge Merge the input DATs
By default, all DATs are processed individually with the user- By default, all DATs are processed individually with the user-
specified flags. With this flag enabled, all of the input DATs are specified flags. With this flag enabled, all of the input DATs are
merged into a single output. This is best used with the dedupe flag. merged into a single output. This is best used with the dedup flag.
-b, --no-automatic-date Don't include date in file name -b, --no-automatic-date Don't include date in file name
Normally, the DAT will be created with the date in the file name Normally, the DAT will be created with the date in the file name
@@ -1206,7 +1032,7 @@ Options:
occurring. This flag enables users to define a DAT or set of base occurring. This flag enables users to define a DAT or set of base
DATs to use as "replacements" for all input DATs. Note that DATs to use as "replacements" for all input DATs. Note that
the first found instance of an item in the base DAT(s) will be the first found instance of an item in the base DAT(s) will be
used and all others will be disgarded. For reverse, the first used and all others will be discarded. For reverse, the first
instance found in the last DAT inputted will be used. If no instance found in the last DAT inputted will be used. If no
additional flag is given, it will default to updating names. additional flag is given, it will default to updating names.
@@ -1222,7 +1048,7 @@ Options:
-udd, --update-description Update machine descriptions from base DATs -udd, --update-description Update machine descriptions from base DATs
This flag enables updating of machine descriptions from base This flag enables updating of machine descriptions from base
DATs DATs.
-ons, --only-same Only update description if machine name matches -ons, --only-same Only update description if machine name matches
description description
@@ -1231,12 +1057,11 @@ Options:
only be overwritten if they are the same as the machine names. only be overwritten if they are the same as the machine names.
-uy, --update-year Update machine years from base DATs -uy, --update-year Update machine years from base DATs
This flag enables updating of machine years from base This flag enables updating of machine years from base DATs.
DATs
-um, --update-manufacturer Update machine manufacturers from base DATs -um, --update-manufacturer Update machine manufacturers from base DATs
This flag enables updating of machine manufacturers from base This flag enables updating of machine manufacturers from base
DATs DATs.
-gn=, --game-name= Filter by game name -gn=, --game-name= Filter by game name
-ngn=, --not-game-name= Exclude by game name -ngn=, --not-game-name= Exclude by game name
@@ -1311,12 +1136,10 @@ Options:
This sets an output folder to be used when the files are created. If This sets an output folder to be used when the files are created. If
a path is not defined, the application directory is used instead. a path is not defined, the application directory is used instead.
-ip, --inplace Enable overwriting of source files -ip, --inplace Write to the input directories, where possible
This will overwrite the source files instead of writing them out to By default, files are written to the runtime directory (or the output
the runtime folder by default (or the output folder if overridden). directory, if set). This flag enables users to write out to the
Note that this only works for regular updates and cascaded diffs due directory that the DATs originated from.
to how file are expected to be written. This flag is only valid for
Update and Cascade operations.
-mt=, --threads= Amount of threads to use -mt=, --threads= Amount of threads to use
Optionally, set the number of threads to use for the multithreaded Optionally, set the number of threads to use for the multithreaded
@@ -1349,9 +1172,9 @@ Options:
-qs, --quick Enable quick scanning of archives -qs, --quick Enable quick scanning of archives
For all archives, if this flag is enabled, it will only use the For all archives, if this flag is enabled, it will only use the
header information to get the archive entries' file information. The header information to get the archive entries' file information. The
upside to this is that it is much quicker than extracting all files upside to this is that it is the fastest option. On the downside, it
to the temp folder. On the downside, it can only get the CRC and can only get the CRC and size from most archive formats, leading to
size from most archive formats, leading to possible issues. possible issues.
-h=, --header= Remove headers from hash calculations -h=, --header= Remove headers from hash calculations
If this is set, then all files that have copier headers that are If this is set, then all files that have copier headers that are
@@ -1366,27 +1189,27 @@ Options:
compare against the input DATs. This flag forces all CHDs to compare against the input DATs. This flag forces all CHDs to
be treated like regular files. be treated like regular files.
-dm, --dat-merged Force checking merged sets -dm, --dat-merged Create merged sets
Preprocess the DAT to have parent sets contain all items from the Preprocess the DAT to have parent sets contain all items from the
children based on the cloneof tag. This is incompatible with the children based on the cloneof tag. This is incompatible with the
other --dat-X flags. other --dat-X flags.
-ds, --dat-split Force checking split sets -ds, --dat-split Create split sets
Preprocess the DAT to remove redundant files between parents and Preprocess the DAT to remove redundant files between parents and
children based on the romof and cloneof tags. This is incompatible children based on the romof and cloneof tags. This is incompatible
with the other --dat-X flags. with the other --dat-X flags.
-dnm, --dat-non-merged Force checking non-merged sets -dnm, --dat-non-merged Create non-merged sets
Preprocess the DAT to have child sets contain all items from the Preprocess the DAT to have child sets contain all items from the
parent set based on the cloneof tag. This is incompatible with the parent set based on the cloneof tag. This is incompatible with the
other --dat-X flags. other --dat-X flags.
-dnd, --dat-device-non-merged Force creating device non-merged sets -dnd, --dat-device-non-merged Create device non-merged sets
Preprocess the DAT to have child sets contain all items from the Preprocess the DAT to have child sets contain all items from the
device references. This is incompatible with the other --dat-X device references. This is incompatible with the other --dat-X
flags. flags.
-df, --dat-full-non-merged Force checking fully non-merged sets -df, --dat-full-non-merged Create fully non-merged sets
Preprocess the DAT to have child sets contain all items from the Preprocess the DAT to have child sets contain all items from the
parent sets based on the cloneof and romof tags as well as device parent sets based on the cloneof and romof tags as well as device
references. This is incompatible with the other --dat-X flags. references. This is incompatible with the other --dat-X flags.
@@ -1504,14 +1327,35 @@ This section contains remappings from old flag names to new ones for the purpose
-ns256, --noSHA256 -> -ns256, --skip-sha256 -ns256, --noSHA256 -> -ns256, --skip-sha256
-ns384, --noSHA384 -> -nm, --skip-sha384 -ns384, --noSHA384 -> -nm, --skip-sha384
-ns512, --noSHA512 -> -nm, --skip-sha512 -ns512, --noSHA512 -> -nm, --skip-sha512
-oam, --output-am -> -oam, --output-attractmode -a, --output-all -> -ot=all, --output-type=all
-od, --output-dc -> -od, --output-doscenter -oam, --output-am -> -ot=am, --output-type=attractmode
-oam, --output-attractmode -> -ot=am, --output-type=attractmode
-oc, --output-cmp -> -ot=cmp, --output-type=clrmamepro
-ocsv, --output-csv -> -ot=csv, --output-type=csv
-od, --output-dc -> -ot=dc, --output-type=dosccenter
-od, --output-doscenter -> -ot=dc, --output-type=dosccenter
-ofg, --of-as-game -> -ofg, --match-of-tags -ofg, --of-as-game -> -ofg, --match-of-tags
-olr, --output-lr -> -olr, --output-listrom -olr, --output-lr -> -ot=lr, --output-type=listrom
-ool, --output-ol -> -ol, --output-offlinelist -olr, --output-listrom -> -ot=lr, --output-type=listrom
-or, --output-rc -> -or, --output-romcenter -olx, --output-listxml -> -ot=lx, --output-type=listxml
-os, --output-sd -> -os, --output-sabredat -om, --output-miss -> -ot=miss, --output-type=missfile
-osl, --output-sl -> -osl, --output-softwarelist -omd5, --output-md5 -> -ot=md5, --output-type=md5
-ool, --output-ol -> -ot=ol, --output-type=offlinelist
-ool, --output-offlinelist -> -ot=ol, --output-type=offlinelist
-or, --output-rc -> -ot=rc, --output-type=romcenter
-or, --output-romcenter -> -ot=rc, --output-type=romcenter
-os, --output-sd -> -ot=sd, --output-type=sabredat
-os, --output-sabredat -> -ot=sd, --output-type=sabredat
-osfv, --output-sfv -> -ot=sfv, --output-type=sfv
-osha1, --output-sha1 -> -ot=sha1, --output-type=sha1
-osha256, --output-sha256 -> -ot=sha256, --output-type=sha256
-osha384, --output-sha384 -> -ot=sha384, --output-type=sha384
-osha512, --output-sha512 -> -ot=sha512, --output-type=sha512
-osl, --output-sl -> -ot=sl, --output-type=softwarelist
-osl, --output-softwarelist -> -ot=sl, --output-type=softwarelist
-ossv, --output-ssv -> -ot=ssv, --output-type=ssv
-otsv, --output-tsv -> -ot=tsv, --output-type=tsv
-ox, --output-xml -> -ot=xml, --output-type=logiqx
-out, --out -> -out, --output-dir -out, --out -> -out, --output-dir
-rc, --rev-cascade -> -rc, --reverse-cascade -rc, --rev-cascade -> -rc, --reverse-cascade
-rep, --rep-ext -> -rep, --replace-extension -rep, --rep-ext -> -rep, --replace-extension

View File

@@ -736,6 +736,10 @@ namespace SabreTools.Library.Tools
case "sl": case "sl":
case "softwarelist": case "softwarelist":
return DatFormat.SoftwareList; return DatFormat.SoftwareList;
case "ssv":
return DatFormat.SSV;
case "tsv":
return DatFormat.TSV;
case "xml": case "xml":
case "logiqx": case "logiqx":
return DatFormat.Logiqx; return DatFormat.Logiqx;

File diff suppressed because it is too large Load Diff

View File

@@ -323,67 +323,89 @@ namespace SabreTools
case "only-same": case "only-same":
onlySame = true; onlySame = true;
break; break;
// TODO: Remove all "output-*" variant flags
case "output-all": case "output-all":
Globals.Logger.User("This flag '{0}' is depreciated, pleause use {1} instead", feat.Key, String.Join(", ", outputTypeListInput.Flags));
datHeader.DatFormat |= DatFormat.ALL; datHeader.DatFormat |= DatFormat.ALL;
break; break;
case "output-attractmode": case "output-attractmode":
Globals.Logger.User("This flag '{0}' is depreciated, pleause use {1} instead", feat.Key, String.Join(", ", outputTypeListInput.Flags));
datHeader.DatFormat |= DatFormat.AttractMode; datHeader.DatFormat |= DatFormat.AttractMode;
break; break;
case "output-cmp": case "output-cmp":
Globals.Logger.User("This flag '{0}' is depreciated, pleause use {1} instead", feat.Key, String.Join(", ", outputTypeListInput.Flags));
datHeader.DatFormat |= DatFormat.ClrMamePro; datHeader.DatFormat |= DatFormat.ClrMamePro;
break; break;
case "output-csv": case "output-csv":
Globals.Logger.User("This flag '{0}' is depreciated, pleause use {1} instead", feat.Key, String.Join(", ", outputTypeListInput.Flags));
datHeader.DatFormat |= DatFormat.CSV; datHeader.DatFormat |= DatFormat.CSV;
break; break;
case "output-doscenter": case "output-doscenter":
Globals.Logger.User("This flag '{0}' is depreciated, pleause use {1} instead", feat.Key, String.Join(", ", outputTypeListInput.Flags));
datHeader.DatFormat |= DatFormat.DOSCenter; datHeader.DatFormat |= DatFormat.DOSCenter;
break; break;
case "output-listrom": case "output-listrom":
Globals.Logger.User("This flag '{0}' is depreciated, pleause use {1} instead", feat.Key, String.Join(", ", outputTypeListInput.Flags));
datHeader.DatFormat |= DatFormat.Listrom; datHeader.DatFormat |= DatFormat.Listrom;
break; break;
case "output-listxml": // TODO: Not added to readme yet case "output-listxml": // TODO: Not added to readme yet
Globals.Logger.User("This flag '{0}' is depreciated, pleause use {1} instead", feat.Key, String.Join(", ", outputTypeListInput.Flags));
datHeader.DatFormat |= DatFormat.Listxml; datHeader.DatFormat |= DatFormat.Listxml;
break; break;
case "output-miss": case "output-miss":
datHeader.DatFormat |= DatFormat.MissFile; datHeader.DatFormat |= DatFormat.MissFile;
Globals.Logger.User("This flag '{0}' is depreciated, pleause use {1} instead", feat.Key, String.Join(", ", outputTypeListInput.Flags));
break; break;
case "output-md5": case "output-md5":
datHeader.DatFormat |= DatFormat.RedumpMD5; datHeader.DatFormat |= DatFormat.RedumpMD5;
Globals.Logger.User("This flag '{0}' is depreciated, pleause use {1} instead", feat.Key, String.Join(", ", outputTypeListInput.Flags));
break; break;
case "output-offlinelist": case "output-offlinelist":
datHeader.DatFormat |= DatFormat.OfflineList; datHeader.DatFormat |= DatFormat.OfflineList;
Globals.Logger.User("This flag '{0}' is depreciated, pleause use {1} instead", feat.Key, String.Join(", ", outputTypeListInput.Flags));
break; break;
case "output-romcenter": case "output-romcenter":
datHeader.DatFormat |= DatFormat.RomCenter; datHeader.DatFormat |= DatFormat.RomCenter;
Globals.Logger.User("This flag '{0}' is depreciated, pleause use {1} instead", feat.Key, String.Join(", ", outputTypeListInput.Flags));
break; break;
case "output-sabredat": case "output-sabredat":
datHeader.DatFormat |= DatFormat.SabreDat; datHeader.DatFormat |= DatFormat.SabreDat;
Globals.Logger.User("This flag '{0}' is depreciated, pleause use {1} instead", feat.Key, String.Join(", ", outputTypeListInput.Flags));
break; break;
case "output-sfv": case "output-sfv":
datHeader.DatFormat |= DatFormat.RedumpSFV; datHeader.DatFormat |= DatFormat.RedumpSFV;
Globals.Logger.User("This flag '{0}' is depreciated, pleause use {1} instead", feat.Key, String.Join(", ", outputTypeListInput.Flags));
break; break;
case "output-sha1": case "output-sha1":
datHeader.DatFormat |= DatFormat.RedumpSHA1; datHeader.DatFormat |= DatFormat.RedumpSHA1;
Globals.Logger.User("This flag '{0}' is depreciated, pleause use {1} instead", feat.Key, String.Join(", ", outputTypeListInput.Flags));
break; break;
case "output-sha256": case "output-sha256":
datHeader.DatFormat |= DatFormat.RedumpSHA256; datHeader.DatFormat |= DatFormat.RedumpSHA256;
Globals.Logger.User("This flag '{0}' is depreciated, pleause use {1} instead", feat.Key, String.Join(", ", outputTypeListInput.Flags));
break; break;
case "output-sha384": case "output-sha384":
datHeader.DatFormat |= DatFormat.RedumpSHA384; datHeader.DatFormat |= DatFormat.RedumpSHA384;
Globals.Logger.User("This flag '{0}' is depreciated, pleause use {1} instead", feat.Key, String.Join(", ", outputTypeListInput.Flags));
break; break;
case "output-sha512": case "output-sha512":
datHeader.DatFormat |= DatFormat.RedumpSHA512; datHeader.DatFormat |= DatFormat.RedumpSHA512;
Globals.Logger.User("This flag '{0}' is depreciated, pleause use {1} instead", feat.Key, String.Join(", ", outputTypeListInput.Flags));
break; break;
case "output-softwarelist": case "output-softwarelist":
datHeader.DatFormat |= DatFormat.SoftwareList; datHeader.DatFormat |= DatFormat.SoftwareList;
Globals.Logger.User("This flag '{0}' is depreciated, pleause use {1} instead", feat.Key, String.Join(", ", outputTypeListInput.Flags));
break; break;
case "output-ssv": case "output-ssv":
datHeader.DatFormat |= DatFormat.SSV; datHeader.DatFormat |= DatFormat.SSV;
Globals.Logger.User("This flag '{0}' is depreciated, pleause use {1} instead", feat.Key, String.Join(", ", outputTypeListInput.Flags));
break; break;
case "output-tsv": case "output-tsv":
datHeader.DatFormat |= DatFormat.TSV; datHeader.DatFormat |= DatFormat.TSV;
Globals.Logger.User("This flag '{0}' is depreciated, pleause use {1} instead", feat.Key, String.Join(", ", outputTypeListInput.Flags));
break; break;
case "output-xml": case "output-xml":
Globals.Logger.User("This flag '{0}' is depreciated, pleause use {1} instead", feat.Key, String.Join(", ", outputTypeListInput.Flags));
// Only set this flag if the depreciated flag is not already // Only set this flag if the depreciated flag is not already
if ((datHeader.DatFormat & DatFormat.LogiqxDepreciated) == 0) if ((datHeader.DatFormat & DatFormat.LogiqxDepreciated) == 0)
{ {