====== RomVault vs. clrmamepro ====== RomVault is constantly changing. New features, enhancements, and fixes are regularly added to meet the needs of the retrogamers and collectors alike. The table below compares RomVault to clrmamepro, the most common alternative. If there is a useful feature another tool has which is missing from RomVault, please tell us about it on [[https://discord.gg/fVJQPA8|Discord]] so we can consider it in the enhancement roadmap. | ^ RomVault ^ clrmamepro ^ ^ Core Functionality and User Interface ||| | Overall UI approach | Unified - focus on visual cues and surfacing all important info in main UI | Hub and spoke - each action is a separate module / window | | Set and ROM info | ✅ Yes - part of main UI | ✅ Yes - but hidden as a separate window | | Dark mode | ✅ Yes - with XML config setting | ❌ No | | Customizable graphics | ✅ Yes - all icons including ROM statuses | ✅ Yes - main buttons only | | In-app contextual help | ✅ Yes - but somewhat limited, wiki content is more comprehensive | ✅ Yes - plenty of mouseover help, but supplemental documentation is lacking | | User-defined favorites for processing scope | ✅ Yes | ❌ No | | Multi-DAT processing | ✅ Yes - core of design | ❌ No - but Batch mode can sequentially perform scanning or rebuilding tasks | | Speed of batch operations | ✅ Fast | ❌ Slow | | RAM usage | ❌ Heavy - Approximately 1GB per million files managed | ✅ Light | | Files Only mode (do not hash archive contents) | ✅ Yes - with XML config setting | ❌ No | | DAT contents renaming wizard | ❌ No - but what is the purpose? | ✅ Yes | | Windows support | ✅ Yes | ✅ Yes | | Linux support | ✅ Yes - with Mono | ✅ Yes - with Wine | ^ DATs and Updates ||| | DAT philosophy | A DAT provides instructions for the target state of a directory in the user's preferred storage format | DATs are used more like a checklist, mixed storage formats are acceptable (zip, 7z, rar, uncompressed), and duplicate sets are allowed | | Check DAT sources for updates | ✅ Yes - with DatVault, comprehensive for all DATs and actively maintained | ✅ Yes - with WWW mode, but limited and manually managed by the user | | Directly download and update DATs | ✅ Yes - with DatVault, from a central repository updated multiple times per day | ✅ Yes - with WWW mode, but no common sources support | | Directly download cue packs for discs | ✅ Yes - with DatVault | ❌ No | | Exclusive access to custom DATs from RomVault community | ✅ Yes - with DatVault | ❌ No | | MIA tracking updates from community | ✅ Yes - with DatVault | ❌ No | | MIA (missing in action) ROM status | ✅ Yes - for all DATs | ❌ No | | Deduped ROM status | ✅ Yes - used with exclusive DatVault DATs | ❌ No | | MAME ListXML DATs | ✅ Yes - with DatVault, free for everyone | ✅ Yes - with manual extraction from MAME exe | | SuperDAT support | ✅ Yes - commonly used for EmuArc / Trurip | ❌ No | | DAT creation | ✅ Yes - limited support with tree context menu | ✅ Yes - with Dir2DAT function | | Combine and export DATs | ✅ Yes - with Full DAT tree context menu option | ❌ No | | Drag and drop Fix DAT rebuilding | ❌ No - at least not yet... | ✅ Yes - fewer steps to accomplish by comparison | | Manage DAT organization in-app | ❌ No - need to organize on filesystem first | ✅ Yes | ^ Scanning ||| | Standard scanning approach | Decompress and hash the source files then compare to what the DAT specifies | Check each item in the DAT against the source using size and CRC only (E.g. DAT wants 10,000 roms, you have 2 at the source, all 10,000 are checked for) | | Standard scanning focus | Accuracy - an initial scan will decompress and hash all archives, only archives modified outside of RomVault are rechecked during subsequent scans | Speed - sacrifices accuracy and only checks size and crc from archive headers where available | | Multi-DAT / directory scanning | ✅ Yes - core of design, tree selections determine scope | ✅ Yes - with Batch mode, each processed sequentially | | Configurable scanning scope between jobs | ✅ Yes - core of design, tree selections determine scope | ❌ No - must change settings each time | | Uncompressed files | ✅ Yes | ✅ Yes | | Zip archives | ✅ Yes | ✅ Yes | | 7z archives | ✅ Yes - natively | ✅ Yes - with external 7z exe | | RAR archives | ❌ No - at least not yet... | ✅ Yes - with external rar exe | | CHD files | ✅ Yes - without needing chdman exe | ✅ Yes - with external chdman exe | | Multi-threaded CHD verification | ✅ Yes - 3-4x faster compared to chdman exe | ❌ No | | ROM headers | ✅ Yes - automatic | ✅ Yes - using supplemental header definition XMLs | | Archive header scan (CRC) | ✅ Yes - optional for quick intial scanning | ✅ Yes - typical usage is limited to header scans | | Decompress and hash (CRC, MD5, SHA1) | ✅ Yes - standard operation for caching | ✅ Yes - optional and not standard operation | | Persistently cached hash data | ✅ Yes - core of design | ❌ No - results forgotten with subsequent new scans | | Scanning ignore masks | ✅ Yes | ✅ Yes | | Scan archives as files | ❌ No - unless you use an RV instance in Files Only mode | ✅ Yes - if the DAT specifies forcepacking unzip | ^ Fixing and Rebuilding ||| | Fixing and rebuilding approach | Choose scope with tree selections, find and preview fixes, fix according to DATs | Load a profile, choose sources, rebuild to destination according to DATs (or multiple sequentially with Batch mode) | | Collection-wide sources for fixes | ✅ Yes - core of design, tree selections determine scope | ❌ No - sources for must be managed by "add-paths" | | Configurable fixing scope between jobs | ✅ Yes - core of design, tree selections determine scope | ❌ No - must change settings each time | | Fix based on size + CRC | ✅ Yes - but not recommended | ✅ Yes - but not recommended | | Fix based on size + CRC + MD5 + SHA1 | ✅ Yes - standard operation | ✅ Yes - standard operation | | Uncompressed files | ✅ Yes | ✅ Yes | | TorrentZip archives | ✅ Yes - core of design for consistency | ❌ No | | Zip archives | ✅ Yes - normalizes to TorrentZip | ✅ Yes - standard Zip with no normalization | | 7z archives | ✅ Yes - normalizes to RV7Z | ✅ Yes - standard 7z with no normalization | | RAR archives | ❌ No | ✅ Yes - with external rar exe | | CHD files | ✅ Yes | ✅ Yes | | Raw copy fixes without recompress | ✅ Yes - if TorrentZipped | ❌ No | | Rename / Move complete archivies without recompress | ✅ Yes - if TorrentZipped | ❌ No | | Backup removed files | ✅ Yes - files are moved to ToSort | ✅ Yes - optional setting | | Delete uncollected files not needed by DATs | ❌ No - but this is to prevent user error resulting in data loss | ✅ Yes - optional setting | | Delete files already collected by DATs | ✅ Yes - duplicate collected files are deleted from ToSort directories | ❌ No - rebuilder is profile based, not global | | Double check deletion | ✅ Yes - optional setting to ensure misconfigurations do not cause data loss | ❌ No | ^ Reporting ||| | Fix DATs | ✅ Yes | ✅ Yes | | Auto-create Fix DATs after task | ❌ No - at least not yet… | ✅ Yes | | Have / Miss Lists | ❌ No - at least not yet… | ✅ Yes | | Set level metrics | ❌ No - at least not yet… | ✅ Yes | | ROM instance locations | ✅ Yes - by clicking instance count field in the details grid | ❌ No | ^ Storage Settings ||| | Non-Merged sets | ✅ Yes | ✅ Yes | | Merged sets | ✅ Yes | ✅ Yes | | Split sets | ✅ Yes | ✅ Yes | | ROMs / CHDs preference | ✅ Yes | ✅ Yes | | Samples preference | ❌ No - at least not yet… | ✅ Yes | | Headered / Headerless ROM preference | ✅ Yes - allows you to ensure no co-mingling | ❌ No - headered and headerless can be comingled | | Store entire DAT contents as a single set | ✅ Yes - with Single Archive settings | ❌ No | | Store single-file sets without subdirectories | ✅ Yes - with Single Archive settings | ✅ Yes - but only during a Rebuilder task | | Storage directory name from DAT info | ✅ Yes - can use DAT name or description | ✅ Yes - from DAT name only | | Storage directory name from DAT location | ✅ Yes - if a single DAT is in a directory, that name is used | ✅ Yes | | Override forced packing setting from DAT header | ✅ Yes - optional | ❌ No - must manually edit DATs | | Override forced merging setting from DAT header | ✅ Yes - optional | ❌ No - must manually edit DATs | | Multiple DATs for a single ROM path | ✅ Yes - DATs are merged if no naming conflicts | ❌ No | | Multiple ROM paths for a single DAT | ❌ No - but you can use an [[merging_drives|rclone union mount]] | ✅ Yes | | 1G1R Mode | ❌ No - at least not yet… | ✅ Yes | ^ Community ||| | Discord | ✅ Yes - with a very active and helpful community | ❌ No | | Forum | ❌ No - but forums are boring | ✅ Yes | | Developer | GordonJ - actively engaged with datting groups and community | Roman - less engaged and focused on MAME |