Skip to content

Igir Collection Manager Guide

Georges-Antoine Assi edited this page Jan 13, 2025 · 1 revision

Igir ROM Collection Manager Guide

Igir is a zero-setup ROM collection manager that sorts, filters, extracts or archives, patches, and reports on collections of any size on any OS. It can be used to rename your roms to match the RomM database, and to move them into a new directory structure.

Setup

Directory structure

The directory structure is important for running the bulk ROM renaming script. Before running the bulk ROM renaming script, set up your directories as follows:

.
├── dats/              # DAT files from no-intro.org
├── roms/              # Original ROM collection
├── roms-unverified/   # Working copy of ROMs
└── igir-romm-cleanup.sh

Initial Setup Steps

  1. Create a working copy of your ROMs:

    cp -r roms/ roms-unverified/

    This provides a safe working environment and allows for easy script adjustment if needed.

  2. Download DAT Files:

    • For cartridge-based systems:
    • For optical media (e.g., PlayStation):
      • Visit redump.org
      • Download platform-specific DAT files

    Extract the DAT files to your dats directory. You can optionally extract a subset of the .dat files into the directory instead.

Configuration

Create the cleanup script igir-romm-cleanup.sh with the contents below:

#!/usr/bin/env bash
set -ou pipefail
cd "$(dirname "${0}")"

INPUT_DIR=roms-unverified
OUTPUT_DIR=roms-verified

# Documentation: https://igir.io/
# Uses dat files: https://datomatic.no-intro.org/index.php?page=download&op=daily
time npx -y igir@latest \
  move \
  extract \
  report \
  test \
  -d dats/ \
  -i "${INPUT_DIR}/" \
  -o "${OUTPUT_DIR}/{romm}/" \
  --input-checksum-quick false \
  --input-checksum-min CRC32 \
  --input-checksum-max SHA256 \
  --only-retail

Make the script executable:

chmod a+x igir-romm-cleanup.sh

Usage

Run the script

Run the script. It will generate a new output directory named roms-verified, moving the files from roms-unverified if its checksum matches any of the known checksums in the DAT files provided. Any roms not identified will remain in the roms-unverified directory.

Manually move over remaining files

The script may not identify all of the roms in your input directory. You can choose to migrate them over manually:

npx -y igir@latest \
  move \
  -i roms-unverified/ \
  -o roms-verified/ \
  --dir-mirror

This will move your roms from the input to the output directory, preserving the subdirectory structure. It also cleans up file extensions in the process.

Reorganize multi-disc games

The Igir script will move games that have multiple discs to separate folders. This can confuse Romm's game detection, and those games need to be reorganized into single folders with many discs.

To do this enter your platform directory, such as ps or psx and run the following:

ls -d *Disc* | while read dir; do
  game=$(echo "${dir}" | sed -r 's/ \(Disc [0-9]+\)//')
  mkdir -p "${game}"
  mv "${dir}"/* "${game}/"
  rm -rf "${dir}"
done

This will find any directory with (Disc in the name and move the files into a new directory without the (Disc #) string. For example:

Before:

Final Fantasy VII (Disc 1) (USA)
Final Fantasy VII (Disc 2) (USA)

Gets combined to:

Final Fantasy VII (USA)