diff --git a/SabreTools.Helper/Data/Build.cs b/SabreTools.Helper/Data/Build.cs index 58f85223..c9fc78b5 100644 --- a/SabreTools.Helper/Data/Build.cs +++ b/SabreTools.Helper/Data/Build.cs @@ -116,7 +116,14 @@ namespace SabreTools.Helper helptext.Add(" -b, --bare Don't include date in file name"); helptext.Add(" -u, --unzip Force unzipping in created DAT"); helptext.Add(" -f, --files Treat archives as files"); - helptext.Add(" -o, --old Output DAT in CMP format instead of XML"); + helptext.Add(" -oc, --output-cmp Output in CMP format"); + helptext.Add(" -om, --output-miss Output in Missfile format"); + helptext.Add(" -omd5, --output-md5 Output in MD5 format"); + helptext.Add(" -or, --output-rc Output in RomCenter format"); + helptext.Add(" -os, --output-sd Output in SabreDAT format"); + helptext.Add(" -osfv, --ouput-sfv Output in SFV format"); + helptext.Add(" -osha1, --output-sha1 Output in SHA-1 format"); + helptext.Add(" -ox, --output-xml Output in Logiqx XML format"); helptext.Add(" -gz, --gz-files Allow reading of GZIP files as archives"); helptext.Add(" -ro, --romba Read files from a Romba input"); helptext.Add(" -f=, --filename= Set the external name of the DAT"); @@ -133,7 +140,14 @@ namespace SabreTools.Helper helptext.Add(" -b, --bare Don't include date in file name"); helptext.Add(" -u, --unzip Force unzipping in created DAT"); helptext.Add(" -f, --files Treat archives as files"); - helptext.Add(" -o, --old Output DAT in CMP format instead of XML"); + helptext.Add(" -oc, --output-cmp Output in CMP format"); + helptext.Add(" -om, --output-miss Output in Missfile format"); + helptext.Add(" -omd5, --output-md5 Output in MD5 format"); + helptext.Add(" -or, --output-rc Output in RomCenter format"); + helptext.Add(" -os, --output-sd Output in SabreDAT format"); + helptext.Add(" -osfv, --ouput-sfv Output in SFV format"); + helptext.Add(" -osha1, --output-sha1 Output in SHA-1 format"); + helptext.Add(" -ox, --output-xml Output in Logiqx XML format"); helptext.Add(" -gz, --gz-files Allow reading of GZIP files as archives"); helptext.Add(" -ro, --romba Read files from a Romba input"); helptext.Add(" -f=, --filename= Set the external name of the DAT"); diff --git a/SabreTools.Helper/README.1ST b/SabreTools.Helper/README.1ST index 263e94bc..7e3c99e4 100644 --- a/SabreTools.Helper/README.1ST +++ b/SabreTools.Helper/README.1ST @@ -112,7 +112,580 @@ RombaSharp placeholder text ** Section 2.3 - SabreTools -SabreTools placeholder text +SabreTools is the main application of the SabreTools suite. It is mostly just a frontend +to a lot of features that are available in the DLL and can be considered the reference +implementation. As such, it has a lot of possible flags and options that a user can select +from. + +Included within this tool are a few former standalone executables: + - Convert/DATToMiss: Convert an arbitrary input DAT to a different format + - DATabase/DATabaseTwo: A managed DAT tool that allows for creating automatically merged + DATs based on one or more systems, sources, or a combination thereof + - DATFromDir: Create a DAT file from a folder or file, sometimes called dir2dat + - DatSplit: Split a DAT based on 2 different file extensions + - Filter: Filter a DAT based on various user-defined criteria, optionally using wildcards + - HashSplit: Split a DAT based on the best available hash (No-dump, SHA-1, MD5, CRC) + - OfflineMerge: Use merged DATs to create DATs used for managing offline arrays + - MergeDAT: Merge and optionally dedupe an arbitrary number of DAT files + - SingleGame: Trim game and rom names to fit NTFS length standards, optionally merging + all roms to a single game named "!" and forcing unpack + - UncompressedSize: Get statistics from one or more input DATs, including number of + roms, disks, files with available hash, and size + +Usage: + SabreTools.exe [options] [filename|dirname] ... + +Options: + -?, -h, --help Show the built-in help text + Built-in to most of the programs is a basic help text + + -a, --add Add a new system or source to the database + Add a new system or source to the DAT database, including additional information. + + -manu= Manufacturer name + Used only when adding a system to the database + + -system= System name + Used only when adding a system to the database + + -source= Source name + Used only when adding a source to the database + + -url= Source URL + Used only when adding a source to the database + + -d, --dfd Create a DAT from each input directory + Create a DAT file from an input directory or set of files. By default, this will + output a DAT named based on the input directory and the current date. It will also + treat all archives as possible games and add all three hashes for each file. + + -nm, --noMD5 Don't include MD5 in output + This allows the user to skip calculating the MD5 for each of the files which will + speed up the creation of the DAT. + + -ns, --noSHA1 Don't include SHA1 in output + This allows the user to skip calculating the SHA-1 for each of the files which will + speed up the creation of the DAT. + + -b, --bare Don't include date in file name + Normally, the DAT will be created with the date in the file name. This flag removes + that but keeps the date tag intact. + + -u, --unzip Force unzipping in created DAT + This sets the 'forcepacking="unzip"' flag in the outputted DAT. When used with a + file manager that allows for it, this will force the outputted files to be in + subdirectories instead of archives. + + -f, --files Treat archives as files + Instead of trying to enumerate the files within archives, treat the archives as + files themselves. This is good for uncompressed sets that include archives that + should be read as-is. + + -oc, --output-cmp Output in CMP format + Add outputting the created DAT to clrmamepro format + + -om, --output-miss Output in Missfile format + Add outputting the created DAT to GoodTools miss format + + -omd5, --output-md5 Output in MD5 format + Add outputting the created DAT to MD5 format + + -or, --output-rc Output in RomCenter format + Add outputting the created DAT to RomCenter format + + -os, --output-sd Output in SabreDAT format + Add outputting the created DAT to SabreDAT XML format + + -osfv, --ouput-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 + + -ox, --output-xml Output in Logiqx XML format (default) + Add outputting the created DAT to Logiqx XML format + + -gz, --gz-files Allow reading of GZIP files as archives + Since GZip files are not commonly used for file storage, this flag allows for + any GZip archives to have their contents hashed instead. + + -ro, --romba Read files from a Romba input + 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 as well, including + naming convention. + + -f=, --filename= Set the external name of the DAT + Set the base filename for the output DAT(s) [default is folder name plus date] + + -n=, --name= Set the internal name of the DAT + Set the internal name for the output DAT(s) [default is folder name plus date] + + -de=, --desc= Set the description of the DAT + Set the description for the output DAT(s) [default is the folder name] + + -c=, --cat= Set the category of the DAT + Set the category for the output DAT(s) [default is blank] + + -v=, --version= Set the version of the DAT + Set the version for the output DAT(s) [default is blank] + + -au=, --author= Set the author of the DAT + Set the author for the output DAT(s) [default is blank] + + -sd, --superdat Enable SuperDAT creation + Set the type flag to "SuperDAT" for the output DAT as well as preserving the + directory structure of the inputted folder, if applicable + + -t=, --temp= Set the name of the temporary directory + Optionally, a temp folder can be supplied in the case the default temp directory + (inside the running folder) is not preferred. This is used for any operations + that require an archive to be extracted. + + -dp, --dfdp Create a DAT from each input directory using parallel code + Create a DAT file from an input directory or set of files. By default, this will + output a DAT named based on the input directory and the current date. It will also + treat all archives as possible games and add all three hashes for each file. + + -nm, --noMD5 Don't include MD5 in output + This allows the user to skip calculating the MD5 for each of the files which will + speed up the creation of the DAT. + + -ns, --noSHA1 Don't include SHA1 in output + This allows the user to skip calculating the SHA-1 for each of the files which will + speed up the creation of the DAT. + + -b, --bare Don't include date in file name + Normally, the DAT will be created with the date in the file name. This flag removes + that but keeps the date tag intact. + + -u, --unzip Force unzipping in created DAT + This sets the 'forcepacking="unzip"' flag in the outputted DAT. When used with a + file manager that allows for it, this will force the outputted files to be in + subdirectories instead of archives. + + -f, --files Treat archives as files + Instead of trying to enumerate the files within archives, treat the archives as + files themselves. This is good for uncompressed sets that include archives that + should be read as-is. + + -oc, --output-cmp Output in CMP format + Add outputting the created DAT to clrmamepro format + + -om, --output-miss Output in Missfile format + Add outputting the created DAT to GoodTools miss format + + -omd5, --output-md5 Output in MD5 format + Add outputting the created DAT to MD5 format + + -or, --output-rc Output in RomCenter format + Add outputting the created DAT to RomCenter format + + -os, --output-sd Output in SabreDAT format + Add outputting the created DAT to SabreDAT XML format + + -osfv, --ouput-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 + + -ox, --output-xml Output in Logiqx XML format (default) + Add outputting the created DAT to Logiqx XML format + + -gz, --gz-files Allow reading of GZIP files as archives + Since GZip files are not commonly used for file storage, this flag allows for + any GZip archives to have their contents hashed instead. + + -ro, --romba Read files from a Romba input + 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 as well, including + naming convention. + + -f=, --filename= Set the external name of the DAT + Set the base filename for the output DAT(s) [default is folder name plus date] + + -n=, --name= Set the internal name of the DAT + Set the internal name for the output DAT(s) [default is folder name plus date] + + -de=, --desc= Set the description of the DAT + Set the description for the output DAT(s) [default is the folder name] + + -c=, --cat= Set the category of the DAT + Set the category for the output DAT(s) [default is blank] + + -v=, --version= Set the version of the DAT + Set the version for the output DAT(s) [default is blank] + + -au=, --author= Set the author of the DAT + Set the author for the output DAT(s) [default is blank] + + -sd, --superdat Enable SuperDAT creation + Set the type flag to "SuperDAT" for the output DAT as well as preserving the + directory structure of the inputted folder, if applicable + + -t=, --temp= Set the name of the temporary directory + Optionally, a temp folder can be supplied in the case the default temp directory + (inside the running folder) is not preferred. This is used for any operations + that require an archive to be extracted. + + -mt={4} Amount of threads to use + Optionally, set the number of threads to use for the multithreaded operations. + The default is 4 threads; -1 means unlimited threads created. + + -es, --ext-split Split a DAT by two file extensions + 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 those combining two separate systems, + to be split. Files with any extensions not listed in the input lists will be included + in both outputted DAT files. + + -exta= First set of extensions (comma-separated) + Set the extensions to be used to populate the first DAT. If more than one + extension is defined, they must be separated by commas. + + -extb= Second set of extensions (comma-separated) + Set the extensions to be used to populate the second DAT. If more than one + extension is defined, they must be separated by commas. + + -out= Set the name of the output directory + 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. + + -g, --generate Start tool in generate mode + This starts the tool in DATabase generate mode. This will allow for creation of + managed DATs based on the inputted systems and sources as defined by other flags. + + -system= System ID to generate from + Set the system ID to be used to create an output DAT + + -nr, --no-rename Don't auto-rename games + By default, games are automatically renamed with the source (for system-derived + DATs), system (for source-derived DATs), or both (for the complete merged DAT). + This flag disables the automatic renaming and uses the game names as they are. + + -o, --old Output DAT in CMP format instead of XML + As a holdover from only two output formats, this tool defaults to Logiqx XML + DAT outputs. If this flag is enabled, a clrmamepro DAT will be created instead. + + -ga, --generate-all Start tool in generate all mode + This starts the tool in DATabase generate all mode. This will allow for creation of + managed DATs based on the entire DAT folder. + + -nr, --no-rename Don't auto-rename games + By default, games are automatically renamed with the source (for system-derived + DATs), system (for source-derived DATs), or both (for the complete merged DAT). + This flag disables the automatic renaming and uses the game names as they are. + + -o, --old Output DAT in CMP format instead of XML + As a holdover from only two output formats, this tool defaults to Logiqx XML + DAT outputs. If this flag is enabled, a clrmamepro DAT will be created instead. + + -hs, --hash-split Split a DAT or folder by best-available hashes + 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 outputted DATs is as follows: + - Nodump + - SHA-1 available + - MD5 available + - CRC or worse available + + -out= Set the name of the output directory + 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. + + -i, --import Start tool in import mode + This starts the tool in DATabase import mode. This will allow for hashing of new + DAT files in the dats folder. If a source for the DAT cannot be automatically + determined, the user will be promted to select a source or enter a new one. + + -ig, --ignore Don't prompt for new sources + If a source cannot be determined, then use the "Default" source instead of + asking the user. + + -input= Set an input string + This should only be used if one of the inputs starts with a flag or another already + defined input. + + -lso, --list-sources List all sources (id <= name) + List all sources in the database, ordered by the internal ID and mapped to the name + + -lsy, --list-systems List all systems (id <= name) + List all systems in the database, ordered by the internal ID and mapped to the name + + -ol, --offmerge Update DATS for offline arrays + This is a power user tool for dealing with offline arrays, specifically creating + have and miss lists without having to reconnect drives. + + This option will output the following DATs based on the inputs as defined below: + (a) Net New = (New Complete)-(Current Complete) + (b) Unneeded - (Current Complete)-(New Complete) + (c) New Missing - (Net New)+(Current Missing-(Unneeded)) + (d) Have - (New Complete)-(New Missing) + OR (Complete or NewComplete) - (Missing) if one is missing + + -com= Complete current DAT + This is a merged and deduped DAT that includes all DATs that should be checked + + -fix= Complete current Missing + This is a merged and deduped DAT that includes all fixdats representing missing + files + + -new= New Complete DAT + This is a merged and deduped DAT that includes all current and updated DATs that + should be checked + + -fk, --fake Replace all hashes and sizes by the default + For further offline management, this option will replace all hashes in the output + DATs to be their 0-byte equivalents. This allows for file managers to be used + to still deal with the DATs without reconnecting the drives + + -rm, --remove Remove a system or source from the database + Remove a system or source to the DAT database so it can no longer be used + + -system= System ID" + Internal ID of the system to be removed + + -source= Source ID + Internal ID of the source to be removed + + -st, --stats Get statistics on all input DATs + This will output by default the combined statistics for all input DAT files. The stats + that are outputted are as follows: + - Total uncompressed size + - Number of games found + - Number of roms found + - Number of disks found + - Roms that include a CRC + - Roms that include a MD5 + - Roms that include a SHA-1 + - Roms with Nodump status + + -si, --single Show individual statistics + 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 amount of files found + in the combined totals can be broken down from. + + -ts, --type-split Split a DAT or folder by file types (rom/disk) + For a DAT, or set of DATs, allow for splitting based on the types of the files, + specifically if the type is a rom or a disk. + + -out= Set the name of the output directory + 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. + + -ud, --update Update a DAT file + 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 many different programs + that performed DAT manipulation that work better together. + + -oc, --output-cmp Output in CMP format + Add outputting the created DAT to clrmamepro 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 + 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. + + -gp, --game-prefix Add game name as a prefix + Mainly used with the previous flag, this allows for the name of the game + to be used as a prefix to each file. + + -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 + + -q, --quotes Put double-quotes around each item + This quotes only the item and not the prefix and postfix + + -ae=, --add-ext= Add an extension to each item + To each item, a postfixed extension is added + + -re=, --rep-ext= Replace all extensions with specified + When an extension exists, replace it with the provided instead + + -ro, --romba Output in Romba format (requires SHA-1) + 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 hashes. + + -tsv, --tsv Output in Tab-Separated Value format + Output all rom information in standardized TSV format + + -csv, --csv Output in Comma-Separated Value format + Output all rom information in standardized CSV format + + -omd5, --output-md5 Output in MD5 format + Add outputting the created DAT to MD5 format + + -or, --output-rc Output in RomCenter format + Add outputting the created DAT to RomCenter format + + -os, --output-sd Output in SabreDAT format + Add outputting the created DAT to SabreDAT XML format + + -osfv, --ouput-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 + + -ox, --output-xml Output in Logiqx XML format (default) + Add outputting the created DAT to Logiqx XML format + + -f=, --filename= Set the external name of the DAT + Set the base filename for the output DAT(s) + + -n=, --name= Set the internal name of the DAT + Set the internal name for the output DAT(s) + + -de=, --desc= Set the description of the DAT + Set the description for the output DAT(s) + + -r=, --root= Set a new rootdir + Set the rootdir (as used by SuperDAT mode) for the output DAT(s) + + -c=, --cat= Set the category of the DAT + Set the category for the output DAT(s) + + -v=, --version= Set the version of the DAT + Set the version for the output DAT(s) + + -da=, --date= Set a new date + Set the date for the output DAT(s) + + -au=, --author= Set the author of the DAT + Set the author for the output DAT(s) + + -em=, --email= Set a new email + Set the email for the output DAT(s) + + -hp=, --homepage= Set a new homepage + Set the homepage for the output DAT(s) + + -u=, --url= Set a new URL + Set the URL for the output DAT(s) + + -co=, --comment= Set a new comment + Set the comment for the output DAT(s) + + -h=, --header= Set a new header skipper + Set the header skipper for the output DAT(s) + + -sd, --superdat Enable SuperDAT creation + Set the type flag to "SuperDAT" for the output DAT + + -fm=, --forcemerge= Set force merging + Set the forcemerge tag to one of the supported values: + None, Split, Full + + -fn=, --forcend= Set force nodump + Set the forcenodump tag to one of the supported values: + None, Obsolete, Required, Ignore + + -fp=, --forcepack= Set force packing + Set the forcepacking flag to one of the supported values: + None, Zip, Unzip + + -clean Clean game names according to WoD standards + Game names will be santitized to remove what the original WoD standards + deemed as unneeded information, such as parenthized or bracketed strings + + -sl, --softlist Use Software List name instead of description + By default, software list DATs are treated as "incorrect", using the game + descriptions as the name instead, since they tend to be more descriptive. + Enabling this flag allows for the original name to be preserved and keeping + the description as just a description. + + -trim Trim file names to fit NTFS length + In the cases where files will have too long a name, this allows for trimming + the name of the files to the NTFS maximum length at most + + -rd=, --root-dir= Set the root directory for calculation + In the case that the files will not be stored from the root directory, + a new root can be set for path length calculations + + -si, --single All game names replaced by '!' + This is useful for keeping all roms in a DAT in the same archive or folder + + -dd, --dedup Enable deduping in the created DAT + For all outputted DATs, allow for hash deduping. This makes sure that there + are effectively no duplicates in the output files. + + -m, --merge Merge the input DATs + By default, all DATs are processed individually with the user-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. + + -b, --bare Don't include date in file name + Normally, the DAT will be created with the date in the file name. This flag + removes that instead of the default. + + -di, --diff Create diffdats from inputs (all outputs) + By default, all DATs are processed individually with the user-specified flags. + With this flag enabled, input DATs are diffed against each other in one of the + following ways (flags below are used for specific diff files to be output instead + of all types at once): + + -did, --diff-du Create diffdat containing just duplicates + All files that have duplicates outside of the original DAT are included + + -dii, --diff-in Create diffdats for individual DATs + All files that have no duplicates outside of the original DATs are put + into DATs that are named after the source DAT + + -din, --diff-nd Create diffdat containing no duplicates + All files that have no duplicates outside of the original DATs are included + + -b, --bare Don't include date in file name + Normally, the DAT will be created with the date in the file name. This flag + removes that instead of the default. + + -c, --cascade Enable cascaded diffing + -rc, --rev-cascade Enable reverse cascaded diffing + Each of the above flags allow for a special type of diffing in which the first + (or last) DAT is considered a base, and for each additional input DAT, it only + leaves the files that are not in one of the previous DATs. This can allow for + the creation of rollback sets or even just reduce the amount of duplicates + across multiple sets + + -ip, --inplace Enable inplace, cascaded diff + This will overwrite the source files instead of writing them out to the + program folder by default (or the output folder if overridden) + + -sf, --skip Skip output of first DAT + In times where the first DAT does not need to be written out a second time, + this will skip writing it. This can often speed up the output process. + + -gn=, --game-name= Filter by game name + -rn=, --rom-name= Filter by rom name + -crc=, --crc= Filter by CRC hash + -md5=, --md5= Filter by MD5 hash + -sha1=, --sha1= Filter by SHA-1 hash + For each of the flags above, the user can specify either an exact match or can use a + wildcard as defined below (case-insensitive): + *00 means ends with '00' + 00* means starts with '00' + *00* means contains '00' + 00 means exactly equals '00' + + -rt=, --rom-type= Filter by rom type + This allows users to only include roms or disks to their liking + + -sgt=, --greater= Filter by size >= + -slt=, --less= Filter by size <= + -seq=, --equal= Filter by size == + For each of the flags above, the user can specify a standard integer or one of the + various standard postfixes for size: + e.g. 8kb => 8000 or 8kib => 8192 + + -nd, --nodump Include only match nodump roms + -nnd, --not-nodump Exclude all nodump roms + These flags allow for filtering based on the nodump status in the source DAT(s) + + -out= Set the name of the output directory + 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. ** Section 2.4 - SimpleSort diff --git a/SabreTools/Partials/SabreTools_Inits.cs b/SabreTools/Partials/SabreTools_Inits.cs index c1ddd185..f9bae957 100644 --- a/SabreTools/Partials/SabreTools_Inits.cs +++ b/SabreTools/Partials/SabreTools_Inits.cs @@ -331,7 +331,7 @@ namespace SabreTools /// New version /// New author /// True to set forcepacking="unzip" on the created file, false otherwise - /// True to output in CMP format, false to output in Logiqx XML + /// OutputFormat to be used for outputting the DAT /// True to enable reading a directory like a Romba depot, false otherwise /// True to enable SuperDAT-style reading, false otherwise /// True to disable getting MD5 hash, false otherwise @@ -348,7 +348,7 @@ namespace SabreTools string version, string author, bool forceunpack, - bool old, + OutputFormat outputFormat, bool romba, bool superdat, bool noMD5, @@ -369,7 +369,7 @@ namespace SabreTools Date = DateTime.Now.ToString("yyyy-MM-dd"), Author = author, ForcePacking = (forceunpack ? ForcePacking.Unzip : ForcePacking.None), - OutputFormat = (old ? OutputFormat.ClrMamePro : OutputFormat.Xml), + OutputFormat = outputFormat, Romba = romba, Type = (superdat ? "SuperDAT" : ""), Files = new Dictionary>(), @@ -397,7 +397,7 @@ namespace SabreTools /// New version /// New author /// True to set forcepacking="unzip" on the created file, false otherwise - /// True to output in CMP format, false to output in Logiqx XML + /// OutputFormat to be used for outputting the DAT /// True to enable reading a directory like a Romba depot, false otherwise /// True to enable SuperDAT-style reading, false otherwise /// True to disable getting MD5 hash, false otherwise @@ -415,7 +415,7 @@ namespace SabreTools string version, string author, bool forceunpack, - bool old, + OutputFormat outputFormat, bool romba, bool superdat, bool noMD5, @@ -437,7 +437,7 @@ namespace SabreTools Date = DateTime.Now.ToString("yyyy-MM-dd"), Author = author, ForcePacking = (forceunpack ? ForcePacking.Unzip : ForcePacking.None), - OutputFormat = (old ? OutputFormat.ClrMamePro : OutputFormat.Xml), + OutputFormat = outputFormat, Romba = romba, Type = (superdat ? "SuperDAT" : ""), }; diff --git a/SabreTools/SabreTools.cs b/SabreTools/SabreTools.cs index db1e4a08..2ae61eaa 100644 --- a/SabreTools/SabreTools.cs +++ b/SabreTools/SabreTools.cs @@ -745,14 +745,15 @@ namespace SabreTools // Create a DAT from a directory or set of directories else if (datfromdir) { - InitDatFromDir(inputs, filename, name, description, category, version, author, forceunpack, old, romba, superdat, noMD5, noSHA1, bare, archivesAsFiles, enableGzip, tempdir); + InitDatFromDir(inputs, filename, name, description, category, version, author, forceunpack, outputFormat, + romba, superdat, noMD5, noSHA1, bare, archivesAsFiles, enableGzip, tempdir); } // Create a DAT from a directory or set of directories in parallel else if (datfromdirparallel) { - InitDatFromDirParallel(inputs, filename, name, description, category, version, author, - forceunpack, old, romba, superdat, noMD5, noSHA1, bare, archivesAsFiles, enableGzip, tempdir, maxParallelism); + InitDatFromDirParallel(inputs, filename, name, description, category, version, author, forceunpack, outputFormat, + romba, superdat, noMD5, noSHA1, bare, archivesAsFiles, enableGzip, tempdir, maxParallelism); } // If we want to run Offline merging mode