Skip to content

Alternative Managers

There are a few different popular ROM managers that have similar features:

Feature igir RomVault clrmamepro RomCenter
App: in active development
App: OS compatibility ✅ anything Node.js supports ⚠️ Windows, macOS & Linux via Mono ⚠️ Windows, macOS & Linux via Wine ❌ Windows only
App: GUI or CLI CLI only by design Primarily GUI, with a separate CLI GUI only GUI only
App: required setup steps ✅ no setup required ⚠️ if specifying DAT & ROM dirs ❌ requires "profile" setup per DAT ❌ requires per-DAT DB setup
App: open source ✅ GPL v3
DATs: supported formats Logiqx XML, MAME ListXML, MAME Software List, CMPro, HTGD SMDB (DATs docs) Logiqx XML, MAME ListXML, CMPro, RomCenter, HTGD SMDB, Total DOS Logiqx XML, MAME ListXML, MAME Software List, CMPro Logiqx XML, CMPro, RomCenter
DATs: process multiple at once ⚠️ via the batcher
DATs: infer parent/clone info
DATs: built-in download manager ⚠️ via DatVault
DATs: supports URLs to DATs
DATs: create from files (dir2dat) dir2dat docs
DATs: fixdat creation fixdat docs
DATs: combine multiple
ROM Scanning: parallel scanning
ROM Scanning: scanning exclusions
ROM Scanning: quick scanning matching docs ✅ (scanning level 1) ⚠️ by default
ROM Scanning: scan/checksum caching
ROMs: checksum matching strategies ✅ CRC32+size, MD5, SHA1, SHA256 ⚠️ CRC32+size, MD5, SHA1 ⚠️ CRC32+size, MD5, SHA1
ROMs: header detection ⚠️ via supplemental XMLs ⚠️ via plugins
ROMs: header removal automatic and forced ⚠️ if configured
ROMs: trimming detection & matching trimming docs
ROMs: automatic extension correction output writing docs
ROMs: patching support ✅ many formats (patching docs)
Arcade: supported merge types ✅ full non-merged, non-merged, split, merged (arcade docs) ⚠️ full non-merged, split, merged ✅ full non-merged, non-merged, split, merged ⚠️ full non-merged, split, merged
Arcade: CHD disk inclusion ✅ by default, can be turned off (arcade docs) ✅ by default, can be turned off
Arcade: sample inclusion
Archives: common formats support .zip (incl. zstd), .7z (via 7za), .gz, .rar, .tar, and more (docs) ⚠️ .zip (incl. zstd), .7z (natively) ⚠️ .zip, .7z (via 7z), .rar (via rar) ⚠️ .zip, .7z
Archives: .chd support ⚠️ via chdman1 (bundled) ✅ v1-5 natively ⚠️ via chdman1 ⚠️ v1-4 natively
Archives: .cso & .zso support ⚠️ via maxcso (bundled)
Archives: .gcz, .rvz, & .wia support ⚠️ via dolphin-tool (bundled)
Archives: .nkit.iso support ⚠️ matching but no extraction/inflation (GameCube docs)
Archives: creation formats .zip (TorrentZip, RVZSTD) only by design (writing archives docs) .zip (TorrentZip, RVZSTD, Total DOS), .7z (LZMA, zstd) ⚠️ .zip (TorrentZip), .7z, .rar ⚠️ .zip, .7z
Archives: contents checksums ✅ when needed (reading archives docs) ⚠️ requires "files only" mode or directory ⚠️ if DAT has forcepacking=unzip
Archives: automatic extension correction
Filtering: region, language, type, etc. many options ❌ only 1G1R options ⚠️ only at DB setup
Filtering: 1G1R support many options ⚠️ region & language only ⚠️ only at DB setup
Playlists: creation support playlists docs
Reports: report-only mode
Reports: machine parseable ✅ CSV ⚠️ newline-separated "full" & "fix" reports ⚠️ newline-separated "have" & "miss" lists ⚠️ newline-separated "have" & "miss" lists
Output: file link support ✅ hard links, symlinks, and reflinks
Output: separate input & output dirs ⚠️ yes but files are always moved
Output: subdirectory customization many options ⚠️ depends on DAT organization
Output: create single archive for DAT

1 may require you to install SDL2 manually, see the chdman-js README.

Note

Just like Igir, other ROM managers that are in active development are likely to release new features often. The above table is not guaranteed to be perfectly up-to-date, it is just a best effort.

There are some other managers omitted from the table above because they focus more on visual presentation and in-browser/app emulation than they do organization:

Lists of other ROM managers can be found in a number of other wikis, such as:

Migrating from RomVault

The majority of RomVault's functionality also exists in Igir. Here is how users of RomVault can achieve the same default behavior in Igir.

Given a typical RomVault directory structure that looks something like:

ROMVault_V3.7.4/
├── DatRoot
│   ├── No-Intro Love Pack (PC) (2025-05-09)
│   │   ├── No-Intro
│   │   │   ├── Sega - Game Gear (Parent-Clone) (20241203-185356).dat
│   │   │   ├── Sega - Master System - Mark III (Parent-Clone) (20241225-050512).dat
│   │   │   ├── Sega - Mega Drive - Genesis (Parent-Clone) (20250210-102212).dat
│   │   │   └── ...
│   │   └── Non-Redump
│   │       ├── Non-Redump - Nintendo - Nintendo GameCube (Parent-Clone) (20250118-063947).dat
│   │       ├── Non-Redump - Nintendo - Wii (Parent-Clone) (20241203-105832).dat
│   │       ├── Non-Redump - Nintendo - Wii U (Parent-Clone) (20231229-065143).dat
│   │       └── ...
│   └── Redump (2025-05-09)
│       ├── Sony - PlayStation - Datfile (10853) (2025-05-09 17-16-34).dat
│       ├── Sony - PlayStation 2 - Datfile (11623) (2025-05-09 15-01-56).dat
│       ├── Sony - PlayStation - Datfile (10853) (2025-05-09 17-16-34).dat
│       └── ...
├── RomRoot
│   ├── No-Intro Love Pack (PC) (2025-05-09)
│   │   ├── No-Intro
│   │   │   └── ...
│   │   └── Non-Redump
│   │       └── ...
│   └── Redump (2025-05-09)
│       └── ...
├── ROMVault37.exe
└── ToSort
    └── ...

here is how you can perform each RomVault action in Igir:

  1. Update DATs

    The equivalent action in Igir is to scan for DATs using the --dat <path> option when performing some command.

    Igir does not cache parsed DATs like RomVault does, which requires fewer setup actions, but at the expense of needing to parse DAT files during every run.

  2. Scan ROMs

    The equivalent action in Igir is to scan for ROMs using the --input <path> option when performing some command. You will need to provide both the unsorted ("ToSort") and sorted ("RomRoot") directories as inputs.

    RomVault's default "level 2" scan level can be achieved with the --input-checksum-min SHA1 option (not recommended).

  3. Find fixes

    This is done when writing ROMs or generating some kind of report (below).

  4. Fix ROMs

    The equivalent Igir action is to move missing ROMs from an input directory (--input <path> option) to the output directory (--output <path> option) using the igir move command.

    RomVault writes TorrentZip archives by default, and it will overwrite files that are not in the TorrentZip structure. This can be achieved with a combination of the igir zip command, the --zip-format torrentzip option (default), and the --overwrite-invalid option. Igir does not offer a way to create 7zip archives like RomVault does.

    By default, RomVault writes "incomplete" sets of ROMs. It will write archives when at least one ROM for a game is present, even if not every ROM is found. Igir does not do this by default as incomplete sets are unlikely to be playable. However, you can enable this behavior with the --allow-incomplete-sets option.

    RomVault respects the directory structure of DATs and "mirrors" it in the sorted directory ("RomRoot"). This can be achieved with a combination of the --dir-dat-mirror and --dir-dat-name options.

    During writing, RomVault will move unmatched files in the sorted directory ("RomRoot") to the unsorted directory ("ToSort"). This can be achieved with a combination of the igir clean command and the --clean-backup <path> option.

  5. Generate reports

    The equivalent Igir action is the igir report command.

Tying it all together, the Igir command to achieve the same behavior as RomVault's defaults is:

igir move zip clean ^
  --input "ToSort\" ^
  --input "RomRoot\" ^
  --input-checksum-min SHA1 ^
  --dat "DatRoot\" ^
  --output "RomRoot\" ^
  --dir-dat-mirror ^
  --dir-dat-name ^
  --overwrite-invalid ^
  --clean-backup "ToSort\" ^
  --zip-format torrentzip ^
  --merge-roms fullnonmerged ^
  --allow-incomplete-sets ^
  -v
igir move zip clean \
  --input "ToSort/" \
  --input "RomRoot/" \
  --input-checksum-min SHA1 \
  --dat "DatRoot/" \
  --output "RomRoot/" \
  --dir-dat-mirror \
  --dir-dat-name \
  --overwrite-invalid \
  --clean-backup "ToSort/" \
  --zip-format torrentzip \
  --merge-roms fullnonmerged \
  --allow-incomplete-sets \
  -v
igir move zip clean \
  --input "ToSort/" \
  --input "RomRoot/" \
  --input-checksum-min SHA1 \
  --dat "DatRoot/" \
  --output "RomRoot/" \
  --dir-dat-mirror \
  --dir-dat-name \
  --overwrite-invalid \
  --clean-backup "ToSort/" \
  --zip-format torrentzip \
  --merge-roms fullnonmerged \
  --allow-incomplete-sets \
  -v

Note

Writing and rewriting ROMs with Igir or RomVault is likely to invalidate the file cache of the other tool.

Note

Igir does not currently offer an alternative to RomVault's subscription-based DATVault DAT downloader.