************************************************ * SabreTools - DAT management software * * https://github.com/mnadareski/wizzardDesktop * ************************************************ Table of Contents ----------------- 1.0 Introduction and History 2.0 Included Programs 2.1 RombaSharp 2.2 SabreTools 3.0 Removed Commands 4.0 Examples 5.0 Contributors 6.0 Licensing ** Section 1.0 - Introduction and History Hello and welcome to the latest release of SabreTools! We are happy that you chose to use our software for your DAT management needs. But what exactly is SabreTools? How did it get started? Why is it named so weirdly? Why should we care? Well, the first two can be answered, though the last one is up to you. SabreTools has its roots in an internal tool developed by RomShepherd member The Wizard of DATz (WoD). The aim of the PHP-based program was to collate data frommultiple sources and create new DAT files for custom sources as well as DAT files that have duplicate data removed. WoD maintained this software and used it to create near-monthly releases for quite a while. Around the middle-end of 2015, WoD announced that they would be taking a break from the process of creating and releasing new files. A couple of months went by with no information. Finally, WoD finally told the community that they would no longer be able to maintain either the project or the software involved, releasing the source code of the internal project in the process. During that time, RomShepherd member darksabre76 picked it up to see how the program even worked. After updating the code to the newest version of PHP and trying to figure out what each page did, he announced that it was going to be easier to do a complete rewrite while maintaining functionality. He was given a lot of support and got started with the aim to keep the code completely open source so that anyone can help. It took a lot of work and help from fellow user emuLOAD, but the code finally started to shape up in the form of WoD Redux. This project is still active and can be found at https://github.com/mnadareski/wizzardRedux. After about a month of work on this, and continued support from the community, a relatively new user to the site, now known as @tractivo, sent him a message and asked if a desktop port of some of the core features was possible. It was difficult for most people to run the PHP code locally, so it made sense. With the aim for people to use the web version primarlily, the desktop version, originally called DATabase, was written. Pretty soon, this got even more support and soon became the main focus. For a while, code parity between the C# and PHP versions was attempted, but it became apparent that the desktop version was going to be the better option. Development accelerated, soon leaving the PHP version in the dust. Once the basics were implemented, more features were requested, including better merging and DAT management. Spurred on by an increasing number of community members, DATabase accrued a lot of features and helper programs. The accuracy of the program also increased, soon matching or surpassing existing options in functionality. At some point during this development, some of the smaller tools got wrapped into DATabase, slowly getting further from just a desktop port of WoD Redux. With these changes, some external prodding, and a little bit of ego, darksabre76 decided to rechristen the set of programs to SabreTools. This freed the program from being just about DAT management and allowed it to be more of a Swiss Army Knife of DAT tools. Development has been on and off since then, and is still constantly evolving to this day (assuming that at this very moment development is still active). ** Section 2.0 - Included Programs Below are a list of the programs that are included in the current SabreTools release. Each of them have a brief description of the tool along with in-depth desciptions of all flags. ** Section 2.1 - RombaSharp RombaSharp is an ongoing "spiritual port" of the Romba tool (https://github.com/uwedeportivo/romba). The code is not based on the actual source, rather taking the features and using the code already written for a lot of other features. The following descriptions are based on what WILL be done with each flag. Not all features are currently available. Usage: RombaSharp.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 archive Adds ROM files from the specified directories to depot -only-needed Only archive ROM files in database build For each specified DAT file it creates TZip files -copy Copy files instead of rebuilding dbstats Prints db stats depot-rescan Rescan a specific depot to get new information diffdat Creates a DAT file for entries found in the new DAT -new= DAT to compare to dir2dat Creates a DAT file for the specified input directory -out= Filename to save out to export Exports db to export.csv fixdat For each specified DAT file it creates a fix DAT lookup For each specified hash, look up available information memstats Prints memory stats miss For each specified DAT file, create miss and have file progress Shows progress of currently running command [OBSOLETE] purge-backup Moves DAT index entries for orphaned DATs purge-delete Deletes DAT index entries for orphaned DATs refresh-dats Refreshes the DAT index from the files in the DAT root shutdown Gracefully shuts down server [OBSOLETE] ** Section 2.2 - SabreTools 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 - 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) - MergeDAT: Merge and optionally dedupe an arbitrary number of DAT files - SimpleSort: Convert input files to new output format, do a simple rebuild using a DAT, and verify a folder using a given DAT - 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 Formerly included within this tool is a former standalone executable: - DATabase/DATabaseTwo: A managed DAT tool that allows for creating automatically merged DATs based on one or more systems, sources, or a combination thereof - OfflineMerge: Use merged DATs to create DATs used for managing offline arrays 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 -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. -fp=, --forcepack= Set force packing Set the forcepacking flag to one of the supported values: None, Zip, Unzip -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. -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-am Output in AttractMode format Add outputting the created DAT to AttractMode format -oc, --output-cmp Output in CMP format Add outputting the created DAT to clrmamepro format -ocsv, --output-csv Output in Comma-Separated Value format Add outputting the created DAT to standardized CSV format -od, --output-dc Output in DOSCenter format Add outputting the created DAT to DOSCenter 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 -ool, --output-ol Output in OfflineList format Add outputting the created DAT to OfflineList XML 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, --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 -osl, --output-sl Output in Software List format Add outputting the created DAT to Software List XML 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 -gzf, --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 -xof, --exclude-of Exclude romof, cloneof, sampleof tags If this flag is enabled, then the romof, cloneof, and sampleof tags will be omitted from the outputted DAT or DATs. -ab, --add-blank Output blank files for folders If this flag is set, then blank entries will be created for each of the empty directories in the source. This is useful for tools that require all folders be accounted for in the output DAT. -ad, --add-date Output dates for each file parsed If this flag is set, then the Date will be appended to each file information in the output DAT. The output format is standardized as "yyyy/MM/dd HH:mm:ss". -cf, --copy-files Copy files to the temp directory before parsing If this flag is set, then all files that are going to be parsed are moved to the temporary directory before being hashed. This can be helpful in cases where the temp folder is located on an SSD and the user wants to take advantage of this. -h=, --header= Remove headers from hash calculations If this is set, then all files that have copier headers that are detected will have them removed from the hash calculation. This will allow for a headered collection to be hashed without possibly variant information. If a particular header skipper is defined, and that skipper exists, then it will be used instead of trying to find one that matches. -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. If the user specifies that only 1 thread is to be used, it defaults to the original, serial implementation of the DFD code. -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. -hd, --headerer Backup or restore copier headers from a variety of file types Headerer is meant as an intermediary between header skipper files (which, a bit apart from their name, do not just show how to skip copier headers) and rom managers that do not use them. By default, this will detect, store, and remove copier headers from a file or folder of files. The headers are backed up and collated by the hash of the unheadered file. Files are then output without the detected copier header alongside the originals with the suffix .new. No input files are altered in the process. The following systems have headers that this program can work with: - Atari 7800 - Atari Lynx - Commodore PSID Music - NEC PC-Engine / TurboGrafx 16 - Nintendo Famicom / Nintendo Entertainment System - Nintendo Famicom Disk System - Nintendo Super Famicom / Super Nintendo Entertainment System - Nintendo Super Famicom / Super Nintendo Entertainment System SPC Music -re, --restore Restore headers to file(s) Instead of the default extraction, this flag enables use of stored copier headers to reapply them to files if they match the included hash. More than one header can be applied to a file, so they will be output to new files, suffixed with .newX, where X is a number. No input files are altered in the process. -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. -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. -ls, --lvl-split Split a SuperDAT or folder by lowest available level For a DAT, or set of DATs, allow for splitting based on the lowest available level of game name. That is, if a game name is top/mid/last, then it will create an output DAT for the parent directory "mid" in a folder called "top" with a game called "last". -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. -s, --short Use short names for outputted DATs 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 inc onjunction with --base to output in the format of "Original Name (Name)" instead. -ba, --base Use source DAT as base name for outputs If splitting an entire folder of DATs, some output files may be normally overwritten since the names would be the same. With this flag, the original DAT name is used in the output name, in the format of "Original Name (Dir - Name)". This can be used in conjunction with --short to output in the format of "Original Name (Name)" instead. -ss, --sort Sort input files by a set of DATs This feature allows the user to quickly rebuild based on a supplied DAT file(s). By default all files will be rebuilt to uncompressed folders in the output directory. -dat= Name of the DAT to be used for the various options The user-supplied DAT used to check which files need to be rebuilt. Multiple occurrences of this flag are allowed. -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. -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. -d, --delete Enable deletion of the input files [DO NOT USE] Optionally, the input files, once processed, can 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. -in, --inverse Match files not in the DAT 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 are found in the DAT will be skipped and everything else will be output in the selected format. -qs, --quick Enable quick scanning of archives For all archives, if this flag is enabled, it will only use the header information to get the archive entries' file information. The upside to this is that it is much quicker than extracting all files to the temp folder. On the downside, it can only get the CRC and size from most archive formats, leading to possible issues. -ad, --add-date Write dates for each file parsed, if available If this flag is set, the the date in the DAT will be used for the output file instead of the standard date and time for TorrentZip. This will technically invalidate the output files as proper TorrentZip files because the date will not match the standard. -t7z Enable Torrent 7zip output [NOT IMPLEMENTED] Instead of ouputting the files to folder, files will be rebuilt to Torrent7Zip (T7Z) files. This format is based on the LZMA container format 7zip, but with custom header information. This is currently unused by any major application. -tar Enable Tape ARchive output Instead of outputting the fiels to folder, files will be rebuilt to Tape ARchive (TAR) files. This format is a standardized storage archive without any compression, usually used with other compression formats around it. It is widely used in backup applications and source code archives. -tgz Enable Torrent GZ output Instead of outputting the files to folder, files will be rebuilt to TorrentGZ (TGZ) files. This format is based on the GZip archive format, but with custom header information and a file name replaced by the SHA-1 of the file inside. This is primarily used by external tool Romba (https://github.com/uwedeportivo/romba), but may be used more widely in the future. -r, --romba Enable Romba depot directory output As an extension of the parent flag, this outputs the TGZ files 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 each layer of the directory name. It also includes two auxilary files, .romba_size and .romba_size.backup, that have the compressed size of the folder inside for use with Romba. -tlrz Enable Torrent Long-Range Zip output [NOT IMPLEMENTED] Instead of ouputting the files to folder, files will be rebuilt to Torrent Long-Range Zip (TLRZ) files. This format is based on the LRZip file format as defined at https://github.com/ckolivas/lrzip but with custom header information. This is currently unused by any major application. -trar Enable Torrent RAR output [NOT IMPLEMENTED] Instead of outputting files to folder, files will be rebuilt to Torrent RAR (TRAR) files. This format is based on the RAR propietary format but with custom header information. This is currently unused by any major application; -txz Enable Torrent XZ output [NOT IMPLEMENTED] Instead of outputting files to folder, files will be rebuilt to Torrent XZ (TXZ) files. This format is based on the LZMA container format XZ, but with custom header information. This is currently unused by any major application; -tzip Enable Torrent Zip output Instead of ouputting files to folder, files will be rebuilt to TorrentZip (TZ) files. This format is based on the ZIP archive format, but with custom header information. This is primarily used by external tool RomVault (http://www.romvault.com/) and is already widely used. -h=, --header= Remove headers from hash calculations If this is set, then all files that have copier headers that are detected will have them removed from the hash calculation. This will allow for a headered collection to be hashed without possibly variant information. If a particular header skipper is defined, and that skipper exists, then it will be used instead of trying to find one that matches. -7z={1} Set scanning level for 7z archives -gz={2} Set scanning level for GZip archives -rar={2} Set scanning level for RAR archives -zip={1} Set scanning level for ZIP archives For each of the major archive types recognized by the libraries used by this program, scan the archive in one of the following ways: 0 Hash both archive and its contents 1 Only hash contents of the archive 2 Only hash archive itself (treat like a regular file) -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. If the user specifies that only 1 thread is to be used, it defaults to the original, serial implementation of the DFD code. -ud, --update-dat Output updated DAT (rebuild only) 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 program directory. that could not be matched will be output to the program directory. -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 -bc, --baddump-col Add statistics for baddumps to output Add a new column or field for counting the number of baddumps in the DAT -csv, --csv Write all statistics to CSV Output all rom information in standardized CSV format -f=, --filename= Set the filename for the output Set the filename (without extension) for the outputted report -html, --html Write all statistics to HTML This will output by default the combined statistics for all input DAT files. -nc, --nodump-col Add statistics for nodumps to output Add a new column or field for counting the number of nodumps in the DAT -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. -tsv, --tsv Output in Tab-Separated Value format Output all rom information in standardized TSV format -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. -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-am Output in AttractMode format Add outputting the created DAT to AttractMode format -oc, --output-cmp Output in CMP format Add outputting the created DAT to clrmamepro format -ocsv, --output-csv Output in Comma-Separated Value format Add outputting the created DAT to standardized CSV 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 special 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 - %size% - Replaced with the size -q, --quotes Put double-quotes around each item This quotes only the item and not the prefix and postfix -od, --output-dc Output in DOSCenter format Add outputting the created DAT to DOSCenter 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 Both prefix and postfix can use one of the following special 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 - %size% - Replaced with the size -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 -rme, --rem-ext Remove all extensions from all items For each item, the extension is removed -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. -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-ol Output in OfflineList format Add outputting the created DAT to OfflineList XML 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, --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 -osl, --output-sl Output in Software List format Add outputting the created DAT to Software List XML format -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 special 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 - %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 (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 -xof, --exclude-of Exclude romof, cloneof, sampleof tags If this flag is enabled, then the romof, cloneof, and sampleof tags will be omitted from the outputted DAT or DATs. -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 -is=, status= Include only items with a given status Include items with one of the supported values: None, Good, BadDump, Nodump, Verified, NotNodump -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. -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. If the user specifies that only 1 thread is to be used, it defaults to the original, serial implementation of the DFD code. -ve, --verify Verify a folder against an input DAT When used, this will use an input DAT or set of DATs to blindly check against an input folder. The base of the folder is considered the base for the combined DATs and games are either the directories or archives within. This will only do a direct verification of the items within and will create a fixdat afterwards for missing files. -dat= Name of the DAT to be used for the various options The user-supplied DAT used to check which files need to be verified. Multiple occurrences of this flag are allowed. -out= Set the name of the output directory This sets an output folder to be used where the files will be verified. If a path is not defined, the application directory is used instead. -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. -h=, --header= Remove headers from hash calculations If this is set, then all files that have copier headers that are detected will have them removed from the hash calculation. This will allow for a headered collection to be hashed without possibly variant information. If a particular header skipper is defined, and that skipper exists, then it will be used instead of trying to find one that matches. ** Section 3.0 - Removed Commands In this section, there is a list of commands that have been retired and will no longer work. One thing to note is that not all commands will have a full description and are often copied from the original help text from the program. Also worth noting is that some of them were used in conjuction with other flags that may still exist and are thus not listed below. Below are originally from DATabaseTwo (Standalone) - -h, -?, --help Show this help dialog -g, --generate Start tool in generate mode -ga, --generate-all Start tool in generate all mode -i, --ignore Don't prompt for new sources -lsy, --list-systems List all systems (id <= name) -nr, --no-rename Don't auto-rename games by source/system -o, --old Output DAT in CMP format instead of XML -sys=, --system= System ID to generate from Below are originally from DATFromDir (Standalone) - -h, -?, --help Show this help dialog -m, --noMD5 Don't include MD5 in output -nm, --noMD5 Don't include MD5 in output -ns, --noSHA1 Don't include SHA1 in output -b, --bare Don't include date in file name -u, --unzip Force unzipping in created DAT -f, --files Treat archives as files -o, --old Output DAT in CMP format instead of XML -gz, --gz-files Allow reading of GZIP files as archives -ro, --romba Read files from a Romba input -n=, --name= Set the internal name of the DAT -d=, --desc= Set the filename and description of the DAT -c=, --cat= Set the category of the DAT -v=, --version= Set the version of the DAT -au=, --author= Set the author of the DAT -sd, --superdat Enable SuperDAT creation -t=, --temp= Set the temporary directory to use Below are originally from DatToMiss (Standalone) - -h, -?, --help Show this help dialog -l, --log Enable log to file -r, --roms Output roms to miss instead of sets -pre=, --prefix= Set prefix to be printed in front of all lines -post=, --postfix= Set postfix to be printed behind all lines Below are originally from Filter (Standalone) - -h, -?, --help Show this help dialog -out=, --out= Output directory -gn=, --game-name= Game name to be filtered on -rn=, --rom-name= Rom name to be filtered on -rt=, --rom-type= Rom type to be filtered on -sgt=, --greater= Size greater than or equal to -slt=, --less= Size less than or equal to -seq=, --equal= Size equal to -crc=, --crc= CRC to be filtered on -md5=, --md5= MD5 to be filtered on -sha1=, --sha1= SHA-1 to be filtered on -nd, --nodump Only match nodump roms -nnd, --not-nodump Exclude all nodump roms Game name, Rom name, CRC, MD5, SHA-1 can do partial matches using asterisks as follows (case insensitive): *00 means ends with '00' 00* means starts with '00' *00* means contains '00' 00 means exactly equals '00' Below are originally from HashSplit (Standalone) - -h, -?, --help Show this help dialog -out= Output directory Below are originally from Headerer (Standalone) - -?, -h, -help Show the built-in help text Built-in to most of the programs is a basic help text -e, -extract Enable detect and remove mode This mode allows the user to detect, store, and remove copier headers from a file or folder of files. The headers are backed up and collated by the hash of the un- headered file. Files are then output without the detected copier header alongside the originals with the suffix .new. No input files are altered in the process. -r, -restore Restore headers to file(s) This mode uses stored copier headers and reapplies them to files if they match the included hash. More than one header can be applied to a file, so they will be out- put to new files, suffixed with .newX, where X is a number. No input files are altered in the process. Below are originally from MergeDAT / DiffDat (Standalone) - -h, -?, --help Show this help dialog -l, --log Enable log to file -d, --diff Switch to diffdat mode -di, --diff Switch to diffdat mode -m, --merge Enable deduping in the created DAT -dd, --dedup Enable deduping in the created DAT -b, --bare Don't include date in file name -u, --unzip Force unzipping in created DAT -o, --old Output DAT in CMP format instead of XML -n=, --name= Set the name of the DAT -d=, --desc= Set the description of the DAT -c=, --cat= Set the category of the DAT -v=, --version= Set the version of the DAT -a=, --author= Set the author of the DAT"); Below are originally from OfflineMerge (Standalone) - -h, -?, --help Show this help dialog -f, --fake Replace all hashes and sizes by the default -Inputs: -com= Complete current DAT -fix= Complete current Missing -new= New Complete DAT com= Complete current DAT fix= Complete current Missing new= New Complete DAT This program will output the following DATs: (a) Net New - (NewComplete)-(Complete) (b) Unneeded - (Complete)-(NewComplete) (c) New Missing - (Net New)+(Missing-(Unneeded)) (d) Have - (NewComplete)-(New Missing) OR (Complete or NewComplete)-(Missing) if one is missing"); Below are originally from SabreTools / DATabase - -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 (system only) system= System name (system only) source= Source name (source only) url= URL (source only) -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 -ad, --all-diff Enable output of all diff variants -c=, --cat= Set the category of the DAT -cc, --convert-cmp Convert any DAT to CMP -clean Clean game names according to WoD standards -out= Output directory out= Output directory -cv, --convert Enable conversion of input files to unarchived folders Using a folder or set of folders, rebuild to another folder. -dat= Name of the DAT to be used as a filter A supplied DAT file to be used as a filter in conversion. If a file is found in the DAT, it will be skipped on output. This allows convert to act like an anti-sort, useful for finding useless files in an input folder. -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. -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. -del, --delete Delete input files This is a WIP flag that allows for deletion of input files once they have been rebuilt. It is not recommended for normal use because it does not discriminate whether or not the input files were rebuilt or not before deletion -t7z Enable Torrent 7zip output [NOT IMPLEMENTED] Instead of ouputting the files to folder, files will be rebuilt to Torrent7Zip (T7Z) files. This format is based on the LZMA container format 7zip, but with custom header information. This is currently unused by any major application. -tar Enable Tape ARchive output [NOT IMPLEMENTED] Instead of outputting the fiels to folder, files will be rebuilt to Tape ARchive (TAR) files. This format is a standardized storage archive without any compression, usually used with other compression formats around it. It is widely used in backup applications and source code archives. -tgz Enable Torrent GZ output Instead of outputting the files to folder, files will be rebuilt to TorrentGZ (TGZ) files. This format is based on the GZip archive format, but with custom header information and a file name replaced by the SHA-1 of the file inside. This is primarily used by external tool Romba (https://github.com/uwedeportivo/romba), but may be used more widely in the future. -r, --romba Enable Romba depot directory output As an extension of the parent flag, this outputs the TGZ files 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 each layer of the directory name. It also includes two auxilary files, .romba_size and .romba_size.backup, that have the compressed size of the folder inside for use with Romba. -tlrz Enable Torrent Long-Range Zip output [NOT IMPLEMENTED] Instead of ouputting the files to folder, files will be rebuilt to Torrent Long-Range Zip (TLRZ) files. This format is based on the LRZip file format as defined at https://github.com/ckolivas/lrzip but with custom header information. This is currently unused by any major application. -trar Enable Torrent RAR output [NOT IMPLEMENTED] Instead of outputting files to folder, files will be rebuilt to Torrent RAR (TRAR) files. This format is based on the RAR propietary format but with custom header information. This is currently unused by any major application; -txz Enable Torrent XZ output [NOT IMPLEMENTED] Instead of outputting files to folder, files will be rebuilt to Torrent XZ (TXZ) files. This format is based on the LZMA container format XZ, but with custom header information. This is currently unused by any major application; -tzip Enable Torrent Zip output Instead of ouputting files to folder, files will be rebuilt to TorrentZip (TZ) files. This format is based on the ZIP archive format, but with custom header information. This is primarily used by external tool RomVault (http://www.romvault.com/) and is already widely used. -7z={0} Set scanning level for 7z archives -gz={2} Set scanning level for GZip archives -rar={2} Set scanning level for RAR archives -zip={0} Set scanning level for ZIP archives For each of the major archive types recognized by the libraries used by this program, scan the archive in one of the following ways: 0 Hash both archive and its contents 1 Only hash contents of the archive 2 Only hash archive itself (treat like a regular file) -cm, --convert-miss Convert from DAT to miss -r, --roms Output roms to miss instead of sets -gp, --game-prefix Add game name as a prefix to each item -pre=, --prefix= Set prefix to be printed in front of all lines -post=, --postfix= Set postfix to be printed behind all lines -q, --quotes Put double-quotes around each item -ae=, --add-ext= Add an extension to each item -re=, --rep-ext= Replace all extensions with specified -ro, --romba Output roms in Romba format (requires SHA-1) -tsv, --tsv Output roms in Tab-Separated Value format -cs, --convert-sd Convert any DAT to SabreDAT -clean Clean game names according to WoD standards -out= Output directory -cr, --convert-rc Convert any DAT to RomCenter -clean Clean game names according to WoD standards -out= Output directory -cr, --convert-rv Convert an XML DAT to RV out= Output directory -cx, --convert-xml Convert a RV DAT to XML out= Output directory -cx, --convert-xml Convert any DAT to XML -clean Clean game names according to WoD standards -out= Output directory out= Output directory -d=, --desc= Set the description of the DAT Set the description for the output DAT(s) [default is the folder name] -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, --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 -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. exta= First extension to split by extb= Second extension to split by -f, --filter Filter DATs by inputted criteria -out=, --out= Output directory -gn=, --game-name= Game name to be filtered on -rn=, --rom-name= Rom name to be filtered on -rt=, --rom-type= Rom type to be filtered on -sgt=, --greater= Size greater than or equal to -slt=, --less= Size less than or equal to -seq=, --equal= Size equal to -crc=, --crc= CRC to be filtered on -md5=, --md5= MD5 to be filtered on -sha1=, --sha1= SHA-1 to be filtered on -nd, --nodump Only match nodump roms -nnd, --not-nodump Exclude all nodump roms -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= Comma-separated list of system IDs -source= Comma-separated list of source IDs -out= Output directory -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. -old, --romvault Produce a DAT in RV format -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. -l, --log Enable logging of program output -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 -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) -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 out= Output directory -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 system= Comma-separated list of system IDs source= Comma-separated list of source IDs -tm, --trim-merge Consolidate DAT into a single game and trim entries 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 trimming 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 -nr, --no-rename Keep game names instead of using '!' By default, this will rename games to a single "!" character. This flag enables the original game names to be kept -df, --disable-force Disable forceunzipping By default, this will set the forcepacking="unzip" flag on the output DAT. This flag disables this output -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. Below are originally from SimpleSort (Standalone) - -?, -h, --help Show the built-in help text Built-in to most of the programs is a basic help text -dat= Name of the DAT to be used for the various options This DAT file is required for everything that SimpleSort currently does, so not supplying one will result in an error. Depending on the additional flags that are supplied, the DAT will be used differently, as described below. By default, the DAT is used to check which files need to be rebuilt. -out= Set the name of the output directory This sets an output folder to be used by various parts of the program. As with the DAT file, this input is used differently based on the flags that are supplied. By default, the output folder is used as the target to rebuild files to. -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. -d, --delete Enable deletion of the input files Optionally, the input files, once processed, can 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. -qs, --quick Enable quick scanning of archives For all archives, if this flag is enabled, it will only use the header information to get the archive entries' file information. The upside to this is that it is much quicker than extracting all files to the temp folder. On the downside, it can only get the CRC and size from most archive formats, leading to possible issues. -ad, --add-date Write dates for each file parsed, if available If this flag is set, the the date in the DAT will be used for the output file instead of the standard date and time for TorrentZip. This will technically invalidate the output files as proper TorrentZip files because the date will not match the standard. -v, --verify Enable verification of output directory This overrides the default rebuilding and only requires the DAT and the output folder. Here, the DAT is used to verify the output directory directly and then output a simple FixDAT. This can be misleading, currently, because it only checks for exact matches. -c, --convert Enable filtering by input DAT This overrides the default rebuilding by using the DAT as a filter of what not to output. If no DAT is supplied, the entire input folder will be rebuild file-by-file to the output folder. -tgz Enable Torrent GZ output Instead of outputting the files to ZIP archives, files will be rebuilt to TorrentGZ (TGZ) files. This format is based on the GZip archive format, but with custom header information and a file name replaced by the SHA-1 of the file inside. This is primarily used by external tool Romba (https://github.com/uwedeportivo/romba), but may be used more widely in the future. -r, --romba Enable Romba depot directory output As an extension of the parent flag, this outputs the TGZ files 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 each layer of the directory name. It also includes two auxilary files, .romba_size and .romba_size.backup, that have the compressed size of the folder inside for use with Romba. -tzip Enable TorrentZip output Instead of outputting the files to ZIP archives, files will be rebuilt to TorrentZip (TZip) files. This format is based on the ZIP archive format, but with custom header information. This is primarily used by external tool RomVault (http://www.romvault.com/) and is already widely used. -do, --directory Enable outputting files uncompressed Instead of outputting the files to ZIP archives, files will be rebuilt to named subdirectories within the output folder. This is useful for when the DAT does not already have the flag specified. -h=, --header= Remove headers from hash calculations If this is set, then all files that have copier headers that are detected will have them removed from the hash calculation. This will allow for a headered collection to be hashed without possibly variant information. If a particular header skipper is defined, and that skipper exists, then it will be used instead of trying to find one that matches. -7z={0} Set scanning level for 7z archives -gz={2} Set scanning level for GZip archives -rar={2} Set scanning level for RAR archives -zip={0} Set scanning level for ZIP archives For each of the major archive types recognized by the libraries used by this program, scan the archive in one of the following ways: 0 Hash both archive and its contents 1 Only hash contents of the archive 2 Only hash archive itself (treat like a regular file) -ud, --update-dat Output updated DAT (rebuild only) 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 program directory. Below are originally from SingleGame (Standalone) - -r=rootdir Set the directory name for path size -rd=, --root-dir= Set the directory name for path size -l, --log Enable logging to file -nr, --no-rename Disable single-game mode -df, --disable-force Disable forceunzipping Below are originally from TGZConvert / TGZTest (Standalone) - -?, -h, -help Show the built-in help text Built-in to most of the programs is a basic help text -out= Set the name of the output directory This sets an output folder to be used by when files are rebuilt. It also serves as the base folder if Romba mode is enabled. See -romba for more details -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. -d, -delete Enable deletion of the input files Optionally, the input files, once processed, can 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. -r, -romba Enable Romba depot directory output Optionally, this outputs the TGZ files 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 each layer of the directory name. It also includes two auxilary files, .romba_size and .romba_size.backup, that have the compressed size of the folder inside for use with Romba. -7z={0} Set scanning level for 7z archives -gz={2} Set scanning level for GZip archives -rar={2} Set scanning level for RAR archives -zip={0} Set scanning level for ZIP archives For each of the major archive types recognized by the libraries used by this program, scan the archive in one of the following ways: 0 Hash both archive and its contents 1 Only hash contents of the archive 2 Only hash archive itself (treat like a regular file) ** Section 4.0 - Examples Here, any user-requested examples will go ** Section 5.0 - Contributors Programmer / Lead: Matt Nadareski (darksabre76) Additional code: emuLOAD, @tractivo Testing: emuLOAD, @tractivo, Kludge, Obiwantje, edc Suggestions: edc, AcidX, Amiga12, EliUmniCk Based on work by: The Wizard of DATz We welcome any contributors for coding, suggestions, optimizations, critisism, heckling, abject anger, praise, and/or apathy. ** Section 6.0 - Licensing This program uses, in part or in whole, code, libraries, and/or applications from the 7-zip project (www.7-zip.org). 7-zip is licenced under the GNU LGPL. The preceeding programs use, in part or in whole, code, libraries, and/or applications from DotNetSharp (https://dotnetzip.codeplex.com). DotNetSharp is licensed under the Microsoft Public License of October 2006. All other external code is marked as such within the source and correctly attributed to the site and/or person(s) that originally wrote the code. All code written by project members is licensed under GPL v3. See LICENSE for more details.