DAT Processing
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 consistent 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
.zip
to wherever you store your ROMs -
Every time you run Igir, specify the
.zip
file you downloaded with the--dat <path>
option:
Scanning for DATs
The --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:
igir [commands..] --dat "https://raw.githubusercontent.com/libretro/libretro-database/master/dat/DOOM.dat" --input <input>
Note
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
mame -listxml
command)Tip
Instead of exporting the ListXML to a file yourself, you can also specify a MAME executable for the DAT path and then Igir is 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.
- MAME software lists (XML exported by the
mame -getsoftlist
command) - CMPro
- Hardware Target Game Database SMDBs
Tip
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.
DAT filtering
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:
Tip
--dat-name-regex-exclude <pattern|filename>
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 combining
The --dat-combine
option lets you combine every game from every parsed DAT into one file.
This may be desirable when creating a dir2dat, a fixdat, or other complicated situations.
Note
Using this option with the igir zip
command will result in all ROMs in a DAT being archived into one file. This can work great for archiving older, cartridge-based consoles with smaller ROM sizes, but will likely not work well with larger ROMs.
To keep files organized in a human-readable way, it is not recommended to use the --dir-game-subdir never
option along with igir zip --dat-combine
.
Parent/clone inference
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.
Super Smash Bros. Melee (Europe) (En,Fr,De,Es,It)
Super Smash Bros. Melee (Korea) (En,Ja)
Super Smash Bros. Melee (USA) (En,Ja)
Super Smash Bros. Melee (USA) (En,Ja) (Rev 1)
Super Smash Bros. Melee (USA) (En,Ja) (Rev 2)
Note
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 --dat-ignore-parent-clone
option.
Note
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.
Tip
Retool (no longer maintained) 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.