Table of Contents

Scanning and Fixing Levels

RomVault defaults to Level 2 scanning and Level 2 fixing. These settings are best for almost all scenarios, however the options and use cases for the other levels are outlined below.

Scanning Levels

There are 3 different scanning levels which are accessed from the Scan ROMs top menu item or by right clicking a directory in the tree and using the context menu. The Scan ROMs button on the side always performs a Level 2 scan.

Level 1 Level 2 (DEFAULT) Level 3
Description Quick Scan Normal Scan Complete Rescan
Hashing Scope Modified files since last scan Modified files since last scan All files
Hashing Method ZIP: read from header
7Z (non-solid or 1 file): read from header
7Z (solid with 2+ files): decompress and hash
CHD: read from header
Everything else: hash files
Decompress files and hash Decompress files and hash
- Size x x x
- CRC x x x
- MD5 x (Non-archives only) x x
- SHA1 x (Non-archives only) x x
Speed Fast if files are in archives Slow for initial scanning
Fast for subsequent scans
Slow
Use Cases If you haven't decided on a final place to store your ROMs yet. Recommended in all situations unless you have a specific reason not to. Almost never needed unless you suspect data corruption.

RomVault has built-in header skipping logic that requires checking the first few bytes of a file to see if it has a header. Solid 7z archives with two or more files require decompressing in order to check for headers. For this reason its advised not to use Level 1 scanning for 7z archives, especially large archives. If you are going to need to decompress solid 7z archives anyways, it makes more sense to stick with a Level 2 scan which will also calculate the MD5 and SHA1.

Fixing Levels

RomVault defaults to Level 2 fixing is which the best for almost all scenarios. The fixing level settings are controlled globally and can be accessed under Settings > RomVault Settings.

Level 1 Level 2 (DEFAULT) Level 3
Description Quick Fix Normal Fix Complete Rebuild
Fixing Method Fixes ROM sets by comparing the attributes below
- Size x x x
- CRC x x x
- MD5 If available x x
- SHA1 If available x x
Raw Copy* Yes - If CRC scanned Yes - If SHA1 scanned No
Speed Fast Fast Slow
Use Cases If your ROMs are also Level 1 scanned and you want to do a quick fix before joining a torrent. There is no point in using Level 1 fixing with ROMs scanned with Level 2. Pretty much always use Level 2 fixing, especially if your ROMs are scanned with Level 2. This will ensure the highest accuracy and prevent hash collisions. Only useful if for some reason you want to rebuild archives from scratch and completely decompress and recompress all files in the archives every time.

Fixing Methods by Archive Type

RomVault will fix sets using different methods depending on the source and destination archive type as outlined below:

Destination Archive Type
From \ To File Torrent / zstd / TDC zip, non-solid 7z Solid 7z
File Move if needed as only instance
Copy if needed as duplicate
Compress at destination Compress at destination
Zip Extract to destination Compress at destination Compress at destination
TorrentZip
ZSTD Zip
TDC Zip
Non-solid 7z
Extract to destination Raw copy or compress at destination depending on scanning and fixing level used… Compress at destination
Quick scanned Normal scanned
Level 1 Fix Raw Copy Raw Copy
Level 2 Fix Compress Raw Copy
Level 3 Fix Compress Compress
Solid 7z Extract to destination Extract to Cache ToSort > Compress at destination Extract to Cache ToSort > Compress at destination

RomVault has the ability to copy raw compressed files directly from a source to a destination archive without the need for recompressing as long as the archives are in TorrentZip format. This allows for extremely fast fix operations.

Fixing Archives with ZipMove

RomVault can fix archives quickly in certain scenarios. These fixes will appear as <--ZipMove in the fixing status log. This feature is particularly useful if you decide to change how you organize your ROMs. Instead of needing to rescan or have RomVault raw copy your ROMs (copy + delete), it will move the archives quickly to their new location.

Scenario Supported Source Destination Direction Explanation
Fix with new complete Yes A,B,C,X,Y No archive → RomRoot Nothing exists in destination, so safe to move the complete zip.
Fix partial with complete Yes A,B,C,X,Y A,B,C → RomRoot A complete archive is available, so it overwrites the incomplete archive.
Fix with new partial Yes A,B,C No archive → RomRoot Nothing exists in destination, so safe to move the partial zip.
Fix with better partial Yes A,B,C,X A,B,C → RomRoot A more complete partial archive is available, so it overwrites the less complete archive.
Fix format Not yet A,B,C,X,Y A,B,C,X,Y (not TZip) → RomRoot A TZip archive is available so it overwrites the non-TZip archive.
Remove complete Yes A,B,C,X,Y No archive → ToSort No archive exists in ToSort, so safe to move complete zip.
Remove partial Yes A,B,C No archive → ToSort No archive exists in ToSort, so safe to move partial zip.
Remove and replace Not yet A,B,C,X A,B,C → ToSort A more complete archive is available, so it overwrites the less complete archive.

ZipMove only works if your archives are at least Level 2 scanned. The ZipMove action will not be used if archives are only Level 1 (header) scanned. ZipMove also does not match on Alt hashes, so headered ROMs may not be ZipMoved depending on which hash matches the DAT.