igir has a number of ways it can process DATs, and it processes them in the following order.
Just tell me what to do
DATs can get fairly complicated, and there are many release groups each with their own focus areas and naming patterns. If all you want to do is organize your ROMs with
igir in some sane way, follow these instructions:
- Go to the No-Intro DAT-o-MATIC daily download page
- Select the "P/C XML" radio option (as opposed to "standard DAT") and download the
.zipto wherever you store your ROMs
Every time you run
igir, specify the
.zipfile you downloaded with the
Scanning for DATs
--dat <path> option supports files, archives, directories, and globs like any of the other file options. See the file scanning page for more information.
igir also supports URLs to DAT files and archives. This is helpful to make sure you're always using the most up-to-date version of a DAT hosted on sites such as GitHub. For example:
Because of the way DAT-o-MATIC prepares & serves downloads, you can't use this method for official No-Intro DATs.
Supported DAT formats
There have been a few DAT-like formats developed over the years.
igir supports the following:
- Logiqx XML (most common) (No-Intro, Redump, TOSEC, and more)
MAME ListXML (XML exported by the
Instead of exporting the ListXML to a file yourself, you can also specify a MAME executable for the DAT path and then
igiris smart enough to parse it:
Windows is fairly easy, MAME is officially compiled for Windows and downloads can be found on many mirror sites.
MAME isn't officially compiled for macOS, you will have to use a third-party release such as SDL MAME.
In case you come across a DAT in a format that
igir doesn't support, SabreTools supports reading a number of obscure formats and converting them to more standard formats such as Logiqx XML.
To be able to process only the DATs you want in downloaded archives,
igir has a few filtering options.
DAT name regex filtering
These options limit which DATs are processed. The regex is applied to the DAT's name found within its file contents, not its filename.
Regex flags can be optionally provided in the form
/<pattern>/<flags>, for example:
--dat-name-regex-exclude is particularly helpful for excluding some No-Intro DATs versions such as "encrypted" and "headerless".
DAT description regex filtering
These options limit which DATs are processed. The regex is applied to the DAT's description found within its file contents.
--dat-combine option lets you combine every game from every parsed DAT into one file.
One feature that sets
igir apart from other ROM managers is its ability to infer parent/clone information when DATs don't provide it. For example, Redump DATs don't provide parent/clone information, which makes it much more difficult to create 1G1R sets.
For example, all of these Super Smash Bros. Melee releases should be considered the same game, even if a DAT doesn't provide proper information. If the releases are all considered the same game, then the
--single option can be used in combination with ROM preferences to make a 1G1R set.
igir is smart enough to understand that the only differences between these releases are the regions, languages, and revisions.
If a DAT has any parent/clone information then
igir will use that and skip inference. If you want to ignore this information, you can provide the
It is unlikely that
igir will ever be perfect with inferring parent/clone information. If you find an instance where
igir made the wrong choice, please create a GitHub issue.
Retool is a DAT manipulation tool that has a set of hand-maintained parent/clone lists to supplement common DAT groups such as No-Intro and Redump. This helps cover situations such as release titles in different languages that would be hard to group together automatically.
1G1R DATs made by Retool can be used seamlessly with
igir. You won't need to supply the
--single option or any ROM preferences for
igir, as you would have already applied these preferences in Retool, but you can still supply ROM filtering options if desired.