Internal Operations
Information about the inner workings of Igir.
Order of operations
Igir runs these steps in the following order:
- Scan each DAT input path for every file and parse them, if provided (
--dat <path>
) - Scan each ROM input path for every file (
--input <path>
)- Detect headers in those files, if applicable (see header docs)
- Scan each patch input path for every file (
--patch <path>
) (see patching docs) - Then for each DAT:
- Parent/clone information is inferred if the DAT has none (see DATs docs)
- Parent/clone ROMs sets are merged or split (
--merge-roms <type>
) (see arcade docs) - ROMs in the DAT are filtered to only those desired (
--filter-*
options) (see filtering & preference docs) - Input files are matched to ROMs in the DAT (see matching docs)
- Patch files are matched to ROMs found (see patching docs)
- ROM preferences are applied (
--single
, see filtering & preference docs) - ROMs without a potentially bad extension have their extension corrected using its file signature
- ROM archives that aren't being extracted have their checksums calculated
- ROMs are combined (
--zip-dat-name
) - ROMs are written to the output directory, if specified (
copy
,move
,link
)- Written ROMs are tested for accuracy, if specified (
test
)
- Written ROMs are tested for accuracy, if specified (
- A "dir2dat" DAT is created, if specified (
dir2dat
) (see dir2dat docs) - A "fixdat" is created, if specified (
fixdat
) (see fixdats docs)
- Leftover "moved" input ROMs are deleted (
move
) - Unknown files are recycled from the output directory, if specified (
clean
, see cleaning docs) - An output report is written to the output directory, if specified (
report
, see reporting docs)