This is an old revision of the document!
Table of Contents
DAT Rules
DAT rules allow you to configure how you want your ROMs stored. These settings offer a lot of flexibility and control over your collection. To get the most value out of RomVault its best to spend time understanding exactly what options are available and how they work.
The directory settings can be accessed in two ways:
- From the top menu: Settings > Directory Dat Rules.
This view displays all of your directory rules in a single place.
- Right-clicking a directory in the tree and selecting Set Dir Dat Settings.
This view displays only the directory rule for the directory selected.
Rule Path
This field is for reference and is not editable. The root of your entire setup is always called “RomVault”. “RomVault” is mapped to where ever you keep all of your ROMs.
This may not seem intuitive at first, but this mapping ensures that the path references to your ROMs are stored in a relative fashion in the cache. For example, lets say you start by storing all your ROMs at C:\ROMs\
. At some point in the future you may run out of space on C:\
and you need to move your ROMs to a NAS accessed with a mapped network drive of Y:\
. You can make this change to the RomRoot location without needing to rescan all of your ROMs.
Directory / Merge Rules
Don't auto add DAT directories
If two or more DATs share a directory in the DATRoot then RomVault will automatically create a virtual subdirectory for each DAT so they don't conflict with each other. If the “Don't Auto Add DAT Directories” option is enabled then these directories will not be automatically created and the contents of the DATs will be effectively merged together. The result is that all of your ROMs from these DATs will be placed in the same directory.
Because this option causes DATs to be merged its likely you may encounter a DAT merge conflict if used haphazardly. This option is only useful under very specific circumstances, such as merging No-Intro regular and private DATs, or MAME extras.
Archive Type
This option allows you to specify your preferred way packaging your ROMs. Options include:
- Uncompressed - Sets will be stored uncompressed
- Zip - Sets will be .zip archives
- SevenZip - Sets will be .7z archives
- Mixed (Archive as File) - Sets will be mixed types based on what the DAT specifies
The Mixed (Archive as File) option is a special setting that changes the scanning behavior. When this option is used, RomVault does not read the contents of 7z or Zip archives and instead hashes the archive itself. This option should only be used with DATs that have hashes of archives such as Scene, GOG, Laserdisc Collection, etc.
DATs that have <romvault forcepacking=“fileonly”/>
in the header will force the Mixed (Archive as File) setting.
If a DAT explicitly specifies a forced packing type in its header then that will be used. The Override DAT option allows you to override that specification and use your preferred settings instead.
Compression Type
This option allows you to specify your preferred compression type. The options vary depending on the chosen Archive Type. Options include:
- Archive Type: Uncompressed
- No option
- Archive Type: Zip
- Deflate - Trrntzip - Archives will be compressed to TorrentZip format
- ZSTD - Archives will be compressed using zstd. The archive structure is the same as TorrentZip but uses zstd instead of Deflate for better compression.
- Archive Type: SevenZip
- LZMA Solid - rv7z - Archives will be compressed solid using the LZMA algorithm, max compression
- LZMA Non-Solid - Archives will be compressed non-solid using the LZMA algorithm, max compression
- ZSTD Solid - Archives will be compressed solid using the zstd algorithm, level 19
- ZSTD Non-Solid- Archives will be compressed non-solid using the LZMA algorithm, level 19
- Archive Type: Mixed (Archive as File)
- No option
The Convert when fixing option will recompress any archives that do not match your preferred compression type. For example, converting regular Zip archives to TorrentZip format.
For more information, refer to the Archive Types guide.
Merge Type
This option allows you to specify your preferred way of merging your ROMs. This is primarily used for MAME DATs. Options include:
- Nothing - No preference, generally used for non-MAME sets where merging does not apply
- Split - A split set is one where the parent set contains all of the normal data it should, and the clone sets contain only what has changed as compared to the parent set. This saves some space, but isn’t quite as efficient as a merged set.
- Merged - A merged set takes the parent set and one or more clone sets and puts them all inside the parent set’s storage.
- NonMerged - A non-merged set is one that contains everything necessary for a given game to run in one ZIP file. The non-merged set is great for people that for instance create their own arcade cabinets and want to copy only very specific games to their PC/Rapsberry/Other.
If a DAT explicitly specifies a forced merging type in its header then that will be used. The Override DAT option allows you to override that specification and use your preferred settings instead.
For more information, refer to the Merge Types guide.
ROM/CHD Filter
This option allows you to specify what types of files to allow. This is primarily used for MAME DATs. Options include:
- ROMs & CHDs - Both ROMs and CHDs will be included. This option should be used in most cases.
- ROMs Only - Only ROMs will be included. This is useful if you prefer to use MAME's listxml output as a DAT and only want to include ROMs.
- CHDs Only - Only CHDs will be included. This is useful if you prefer to use MAME's listxml output as a DAT and only want to include CHDs.
Header Type
This option allows you to specify how you want to handle ROM headers.
- Optional - Both headered and headerless ROMs will be allowed if a header skipper is declared in the DAT.
- Headered - Only ROMs with headers will be included.
- Headerless - Only ROMs without headers will be included.
The “Headered” setting applies to all files in the DAT, even files where a header would not apply such as BIOS files. This means you may have missing ROMs if the DAT includes both types of files. This is normal and currently by design.
Single Archive
Enabling this option will turn the DATs in these directories into single archives. If enabled, this option allows you to specify how to handle subdirectories. The options are:
- Use subdirs for all sets
- Do not use subdirs for sets
- Use subdirs for rom name conflicts
- Use subdirs for multi-rom sets
- Use subdirs for multi-rom sets or set/rom name mismatches
This setting is extremely powerful and enables you to build a collection to match TOSEC torrents. It can also be used to create uncompressed sets without requiring subdirectories.
The Single Archive subdirectory settings are outlined in more detail here: Single Archive Options
Use description (instead of name) for auto added paths
If two or more DATs share a directory in the DATRoot then RomVault will automatically create a virtual subdirectory for each DAT so they don't conflict with each other. If the “Use description (instead of name) for auto added paths” option is disabled then these subdirectories will be named as follows:
- The value of the
<name>
tag in the DAT header - If no
<name>
tag is present, then the DAT filename will be used
If the “Use description (instead of name) for auto added paths” option is enabled then these subdirectories will be named as follows:
- The value of
<description>
tag in the DAT header - If no
<description>
tag exists, then the value of the <name> tag is used - If no
<name>
tag exists, then the DAT filename will be used
Advanced Options
Add Category Sub Directories
This option will use the category value from each set as a subdirectory. If a set contains multiple category elements, such as with No-Intro DATs, the highest priority category will be used. You can rearrange the category priority. The category subdirectory option is most useful for Redump DATs which have a single category value for every disc, such as Games, Demos, Preproduction, etc.
Use ID for Numbered DAT Names (No-Intro DATs)
This option will prefix the set name with the value of the id attribute of the set. This is typically only applicable for No-Intro DATs that have release numbers.
Only Keep Complete Sets
This option will prevent incomplete sets. This is useful when you only want to collect a subset of games in DAT or you want to ensure everything you collect has all files for playability in a frontend.
Filename Exclude
Filenames not to remove
This setting allows you to specify rules for files to ignore. Any ignored files are still scanned by RomVault, but they are flagged with an “ignore” status and will not be removed due to being unneeded according to the DAT. This setting is useful for ignoring a specific filenames or matching on patterns using wildcards or regex. Some examples include:
Match Mode | Example | Description |
---|---|---|
Exact | _readme_.txt | Ignores the file named exactly _readme_.txt |
Wildcard | *.sbi | Ignores all .sbi files which are sometimes packaged with PS1 dumps |
Regex | regex:(\.stignore|\.stfolder) | Ignores .stfolder and .stignore files which may be present if you sync a directory with syncthing to another location |
Each ignore rule must be on its own line. Wildcard rules support ?
to match a single character and *
to match any number of characters. Regex rules must be prefixed with regex:
. The ignore:
prefix is not supported with DAT rules. Global scanning engine ignore rules must be defined in Global Settings.
For assistance with regex, try regex101.com
Cascading Directory Rules
Settings for a directory will cascade to all of that directory's descendants until overwritten by a higher priority rule. Rules for descendant directories are always a higher priority than the rules for ancestor directories.
Individual directory settings of descendants are not “merged” with the settings of their ancestors. All directory rules are complete overrides.
These cascading rules allow for a great deal of control over your ROM storage strategy. For example, you can apply settings at the root level that you would like to apply to all directories, and then override those settings on a case by case basis for certain DATs.
The example above shows that Sony - PlayStation
inherits the directory rule for RomVault
(the root level). MAME
and Microsoft - Xbox
do not inherit because those directories have their own settings.
If Redump
had its own directory rule, then Sony - PlayStation
would inherit that rule instead of the rule from RomVault
.