Table of Contents
Directory rules allow you to define locations for your ROMs and settings for how you want those 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 RomVault UI will allow you map multiple DATs to a single directory. Do NOT map multiple DATs to the same ROM directory. Doing so may result in unintentional file deletions during a fix operation if the “Double Check Delete” global setting is disabled.
Directory rules can only be applied to standard directories, not auto-created virtual directories in the DatRoot. If you place multiple DATs into a single directory, you cannot apply a rule to an individual DAT within that directory. If you need to apply a directory rule to a specific DAT, then the DAT should reside in its own directory in the DatRoot.
The directory settings can be accessed in two ways:
- From the top menu: Settings > Directory Settings.
This view displays all of your directory rules in a single place.
- Right-clicking a directory in the tree and selecting Set Dir Settings.
This view displays only the directory rule for the directory selected.
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.
The Dir Location is the path to your ROMs. The folder icon allows you to choose the location by browsing.
The ROM locations can be modified directly in the RomVault config XML. This should not be required unless you want to use the long path syntax or reference a remote server. Examples:
It's recommended to use regular UNC paths or drive letters to ensure support with chdman.exe for CHD verification. chdman.exe does not support long path syntax.
Don't Auto Add DAT Directories
If two or more DATs share a directory then RomVault will automatically create a subdirectory for each DAT so that they do not 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.
This option allows you to specify your preferred way packaging your ROMs. Options include:
- File - Sets will be stored uncompressed
- Zip - Sets will be .zip archives
- SevenZip - Sets will be .7z archives
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.
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.
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.
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.
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:
- Add SubDirs
- No SubDirs
- Add SubDirs if conflicts
- Add SubDirs if multiple roms
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 then RomVault will automatically create a subdirectory for each DAT so that they do not 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
Filenames not to remove from RomDirs
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:
|Exact||Ignores the file named exactly
|Wildcard||Ignores all .sbi files which are sometimes packaged with PS1 dumps|
|Regex||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
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).
Microsoft - Xbox do not inherit because those directories have their own settings.
Redump had its own directory rule, then
Sony - PlayStation would inherit that rule instead of the rule from