======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. \\ {{:diagrams:solid-header-scan.png?nolink&850|}} =====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.