Skip to content
Matt Nadareski edited this page Apr 19, 2023 · 6 revisions

Sort/Rebuild from DAT

Flags: -ss, --sort

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.

Options

Flags Short Description Long Description
-dat=, --dat= Input DAT to be used User-supplied DAT for use in all operations. Multiple instances of this flag are allowed.
-out=, --output-dir= Set output directory This sets an output folder to be used when the files are created. If a path is not defined, the runtime directory is used instead.
-dep, --depot Assume directories are romba depots Normally, input directories will be treated with no special format. If this flag is used, all input directories will be assumed to be romba-style depots.
--depd, --depot-depth Set depth of depot for inputs Requires -dep, --depot. Optionally, set the depth of input depots. Defaults to 4 deep otherwise.
-del, --delete Delete fully rebuilt input files Optionally, the input files, once processed and fully matched, 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 Rebuild only files not in 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 the fastest option. On the downside, it can only get the CRC and size from most archive formats, leading to possible issues.
-caf, --aaruformats-as-files Treat AaruFormats as regular files Normally, AaruFormats would be processed using their internal hash to compare against the input DATs. This flag forces all AaruFormats to be treated like regular files.
-ic, --chds-as-files Treat CHDs as regular files Normally, CHDs would be processed using their internal hash to compare against the input DATs. This flag forces all CHDs to be treated like regular files.
-ad, --add-date Add dates to items, where possible 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.
-ind, --individual Process input DATs individually In cases where DATs would be processed in bulk, this flag allows them to be processed on their own instead.
-t7z, --torrent-7zip Enable Torrent7Zip output Instead of outputting 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. Currently does not produce proper Torrent-compatible outputs.
-tar, --tar Enable Tape ARchive output Instead of outputting the files 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, --torrent-gzip Enable Torrent GZip 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.
-ro, --romba Treat like a Romba depot (requires SHA-1) Requires -tgz, --torrent-gzip. This flag allows reading and writing of DATs and output files to and from a Romba-style depot. This also implies TorrentGZ input and output for physical files. Where appropriate, Romba depot files will be created as well.
--depr, --romba-depth Set depth of depot for outputs Requires -ro, --romba. Optionally, set the depth of output depots. Defaults to 4 deep otherwise.
-tzip, --torrent-zip Enable Torrent Zip output Instead of outputting files to folder, 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.
-h=, --header= Set a header skipper to use, blank means all Set the header special field for the output DAT(s). In file rebuilding, this flag allows for either all copier headers (using "") or specific copier headers by name (such as "fds.xml") to determine if a file matches or not. See Copier Headers for more information.
-dm, --dat-merged Force creating merged sets Preprocess the DAT to have parent sets contain all items from the children based on the cloneof tag. This is incompatible with the other --dat-X flags. See Merging Modes for more details.
-dfm, --dat-full-merged Force creating fully merged sets Preprocess the DAT to have parent sets contain all items from the children based on the cloneof tag while also performing deduplication within a parent. This is incompatible with the other --dat-X flags. See Merging Modes for more details.
-ds, --dat-split Force creating split sets Preprocess the DAT to remove redundant files between parents and children based on the romof and cloneof tags. This is incompatible with the other --dat-X flags. See Merging Modes for more details.
-dnd, --dat-device-non-merged Create device non-merged sets Preprocess the DAT to have child sets contain all items from the device references. This is incompatible with the other --dat-X flags. See Merging Modes for more details.
-dnm, --dat-non-merged Force creating non-merged sets Preprocess the DAT to have child sets contain all items from the parent set based on the romof and cloneof tags. This is incompatible with the other --dat-X flags. See Merging Modes for more details.
-df, --dat-full-non-merged Create fully non-merged sets Preprocess the DAT to have child sets contain all items from the parent sets based on the cloneof and romof tags as well as device references. This is incompatible with the other --dat-X flags. See Merging Modes for more details.
-ud, --update-dat Output updated DAT to output directory Once the files that were able to rebuilt are taken care of, a DAT of the files that could not be matched will be output to the output directory.

Examples

Run a fixdat for a friend based on a couple folders the files can be in and outputting in TorrentZip format

--sort --dat=Fix.dat --torrent-zip --output-dir==FixDir InDir1 InDir2