RomVault has the ability to store your sets in a variety of ways using the Single Archive option in DAT Rules. This feature is unique to RomVault - no other ROM manager can manipulate the way sets are stored. The most common use case for Single Archives is to bundle potentially thousands of small ROMs into a single zip.
The examples below demonstrate what each option does. Assume a fictitious DAT with the following games:
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <datafile> <header> <name>Demo - Single Archive Settings</name> <description>Demo - Single Archive Settings (20201126)</description> <version>20201126</version> <date>2020-11-26</date> </header> <game name="game1"> <description>Game 1</description> <rom name="game1.rom" size="0" crc="00000000"/> </game> <game name="game2"> <description>Game 2</description> <rom name="game2.rom" size="0" crc="00000000"/> </game> <game name="game3"> <description>Game 3</description> <rom name="file1.rom" size="0" crc="00000000"/> <rom name="file2.rom" size="0" crc="00000000"/> </game> <game name="game4"> <description>Game 4</description> <rom name="file1.rom" size="0" crc="00000000"/> <rom name="file2.rom" size="0" crc="00000000"/> <rom name="file3.rom" size="0" crc="00000000"/> </game> <game name="game5"> <description>Game 5</description> <rom name="game1.rom" size="0" crc="00000000"/> </game> </datafile>
This will put every ROM into a subdirectory using the set name.
game1/game1.rom
game2/game2.rom
game3/file1.rom
game3/file2.rom
game4/file1.rom
game4/file2.rom
game4/file3.rom
game5/game1.rom
TOSEC rom sets are often packaged using this Use subdirs for all sets single archive method. This drastically reduces the number of files making it ideal for archiving collections that are updated infrequently.
This will put every ROM into the base directory. If there are any ROM name conflicts, the ROMs will be renamed by appending an underscore character and an incrementing number. This setting is generally only useful if you know the DAT does not have any name conflicts across ROMs.
file1.rom
file1_0.rom
file2.rom
file2_0.rom
file3.rom
game1.rom
game1_0.rom
game2.rom
This will put every ROM into the base directory, however if there are ROM name conflicts across sets then those sets will be stored in subdirectories. This setting is useful if you prefer no subdirectories, but want to be certain you do not run into any scenarios where ROMs are renamed with an incrementing number.
game1/game1.rom
game2.rom
game3/file1.rom
game3/file2.rom
game4/file1.rom
game4/file2.rom
game4/file3.rom
game5/game1.rom
This will put ROMs into set subdirectories if the set contains multiple ROMs. All other ROMs will be placed in the base directory. Naming conflicts are handled by appending an incrementing number to the file name. This option is useful in combination with the “file” archive type for DATs that are predominately very large and poorly compressible single-file sets.
game1.rom
game2.rom
game3/file1.rom
game3/file2.rom
game4/file1.rom
game4/file2.rom
game4/file3.rom
game1_0.rom
The Do not use subdirs for sets and Use subdirs for multi-rom sets settings can be used in conjunction with the Uncompressed archive type to store uncompressed single-file sets without subdirectories, such as PS3 ISOs.
This will put ROMs into set subdirectories if the set contains multiple ROMs or if the rom name does not match the set name. This is a useful setting for DATs that contain poorly named ROMs, or DATs of files extracted from media.
game1.rom
game2.rom
game3/file1.rom
game3/file2.rom
game4/file1.rom
game4/file2.rom
game4/file3.rom
game5/game1.rom
The Use subdirs for multi-rom sets or set/rom name mismatches setting can be used in most cases and is effectively a combination of the previous settings. It ensures no ROM names are modified due to name conflicts, bundles ROMs together in sets where applicable, and keeps the directory structure as shallow as possible.