Release Highlights
Feature: option to re-pad trimmed ROMs
A new --trim-add-padding option has been added to allow you to pad trimmed ROMs such that they match the size & checksums found in a matching DAT.
Feature: providing multiple patterns to regex options
--dat-name-regex <pattern>, --dat-name-regex-exclude <pattern>, --dat-description-regex <pattern>, --dat-description-regex-exclude <pattern>, --filter-regex <pattern>, --filter-regex-exclude <pattern>, --filter-category-regex <pattern>, --prefer-game-regex <pattern>, --prefer-rom-regex <pattern>, and --prefer-filename-regex <pattern> have all been updated to allow the option to be provided multiple times. When each option is provided multiple times, values will be used in an "or"/"any" fashion.
For example, --dat-name-regex "/Nintendo/i" --dat-name-regex "/Sega/i" now means "match any DAT whose name contains 'Nintendo' (case-insensitive) or 'Sega' (case-insensitive)."
Fix: MAME CHD disk naming & sorting
Two major fixes have been made for handling MAME DATs:
- CHD disks will always have the
.chdextension added. MAME requires this, but confusingly doesn't include it in the disk name in the DAT. - When zipping ROMs, CHD disks will always be put in a subdirectory using the machine's name (as if
--dir-game-subdir alwayswas provided, but only for CHD disks). MAME requires this sorting (and it helps deconflict files of the same name).
Thank you @cinnamonmatexfce for the bug report!
Fix: update to RVZSTD to match RomVault.
RomVault v3.7.6 changed how zero-byte/empty files are compressed in RVZSTD archives, and Igir has been updated to match. RVZSTD archives containing zero-byte files that were written by older versions of Igir (or RomVault) will have to be rewritten.
All changes
6 June 2026 - 842bcc0 - v5.1.0 (#2275)
5 June 2026 - 7806789 - Refactor: log file cache misses (#2272)
5 June 2026 - 2b64b40 - Fix: match RomVault v3.7.6's new behavior for zero-byte files (#2274)
5 June 2026 - 6c619c1 - Fix: MAME disk subdirectory, filename extension (#2273)
29 May 2026 - 5c47d3d - Chore: update dependency chdman to v0.288.1 (#2269)
29 May 2026 - c516c67 - Chore: update lockfile (#2268)
29 May 2026 - b1ffdf5 - Chore: update lockfile (#2267)
29 May 2026 - ef4136f - Chore: update dependency chdman to v0.288.0 (#2266)
28 May 2026 - e4c4c42 - Chore: update lockfile (#2264)
28 May 2026 - efab903 - Chore: update ESLint to v8.60.0 (#2265)
27 May 2026 - bb81f18 - Chore: update ESLint (#2262)
27 May 2026 - 9136d0a - Chore: update docs dependencies (#2263)
27 May 2026 - 1ccaa01 - Chore: update dev dependencies (#2261)
27 May 2026 - b2c9abc - Chore: update dependencies (#2260)
26 May 2026 - f6defb4 - Chore: update GitHub Actions (#2259)
22 May 2026 - d85e4eb - CI: add more dependency watchdog PR comments (#2253)
22 May 2026 - 45dce0b - Refactor: replace "@aws-crypto/crc32" with "crc-32" (#2254)
21 May 2026 - e493ce8 - Refactor: enable TypeScript noImplicitOverride (#2252)
21 May 2026 - d7f3487 - Feature: allow regex filter options to be specified multiple times (#2250)
21 May 2026 - 938bbfb - Feature: option to add paddings back to trimmed files (#2251)
19 May 2026 - 5d42541 - Feature: add support for parsing more zip date formats (#2246)
19 May 2026 - 86ca3ec - Fix: yargs static locale shim (#2247)
18 May 2026 - 6d21137 - Refactor: add missing JSDoc (#2245)