github emmercm/igir v4.2.0

17 days ago

Release Highlights

This is the 100th release of Igir on GitHub, blaze it!

🛟 Stability improvements

This release was focused on addressing a lot of stability and runtime issues for different architectures:

Changed to a CRC32 library that doesn't use Node.js native addons.

The old library subtly required modern CPUs with SSE4.2, but Igir aims to be as widely compatible as it can be safely. The change of library means CRC32 calculation will be slower, but most users will be I/O-bound and not CPU-bound. Thank you @james-berzuk for the bug report, and a huge shoutout to @chrismsnz for deep diving with some executable debuggers!

Memory reduction with parsing XML DATs.

Known XML tags that Igir doesn't use will now be ignored during XML parsing time. This will be particularly noticeable with official MAME DATs that include a lot of information that Igir doesn't use. Thank you @dirctbe for the report.

Support for libretro's mame2003 DATs.

Regardless of MAME (and Logiqx) providing very clear schemas for DAT XMLs, many sources do not respect these schemas, with libretro's mame2003 DAT being one such culprit. Igir can now read this DAT and others like it. Thank you @cinnamonmatexfce for the report.

Conflicting Node.js native addon module filenames.

Compiled executables from GitHub releases had a problem where the Zstd v1.5.5 native addon wasn't included correctly. This has been fixed, thank you @emerrepengo for the report.

Fixed ROM patching when zipping with input zip files.

A bug would happen when the igir zip command was used with zip files in an input directory where no file would be patched. This has been fixed, thank you @mjm for the report.

Disallow ROM patching with the igir link command.

Because Igir never modifies your input directory (unless you use an obvious command or option such as igir move), the igir link command doesn't work with patching. The only output files written are links to files in the input directory, there is no opportunity to create a patched file. This is now validated at option parsing time. Thank you @noah978 for the report.

dolphin-tool is statically linked with libusb on Linux again.

This was a bit of a regression. Many Linux distros don't come with libusb installed, which meant Igir had external dependencies that it couldn't easily install. This has been fixed, thank you @noah978 for the report.

All changes

19 August 2025 - e3cccf2 - v4.2.0 (#1829)
19 August 2025 - b227960 - Fix: replace '@node-rs/crc32' with '@aws-crypto/crc32' (#1814)
18 August 2025 - 962fb80 - Chore: update dependency dolphin-tool to v0.2506.1 (#1826)
18 August 2025 - d44f899 - CI: Renovate pin digests at any time (#1825)
18 August 2025 - 3d651a5 - Chore: Pin dependencies (#1824)
17 August 2025 - 012ab0d - Chore: update GitHub Actions (#1823)
17 August 2025 - 6bf635c - Chore: update dependency chdman to v0.279.0 (#1822)
17 August 2025 - 55f645d - CI: pin GitHub Actions action digests (#1821)
17 August 2025 - fa4a54a - Fix: don't allow patch options to be used with link command (#1820)
17 August 2025 - 5298d21 - CI: comment on issues resolved by a release (#1819)
17 August 2025 - a713300 - CI: pin GitHub Actions action digests (#1818)
17 August 2025 - 1321ca3 - Refactor: ignore unneeded MAME DAT tags & attributes (#1817)
16 August 2025 - 655081f - Chore: update actions/checkout action to v5 (#1812)
16 August 2025 - 8b549cb - Chore: update dependency typescript to v5.9.2 (#1798)
16 August 2025 - 8124270 - Fix: conflicting Node native addon prebuild filenames (#1816)
15 August 2025 - c8d37e5 - Chore: update ESLint (#1805)
15 August 2025 - 28470e2 - Chore: update actions/download-artifact action to v5 (#1806)
15 August 2025 - d25ffb7 - Chore: update Node.js to v24.5.0 (#1802)
15 August 2025 - cc4e091 - Chore: update actions/first-interaction action to v3 (#1813)
12 August 2025 - 2ad798d - Fix: don't consider zips for raw-moving when patching (#1797)
12 August 2025 - 0282e4c - CI: fix: shellcheck (#1809)
31 July 2025 - b37a74e - Fix: parse libretro mame2003 DATs (#1794)
31 July 2025 - 0bbe6e9 - Fix: don't consider zips for raw-moving when patching (#1795)
31 July 2025 - 02baeea - Chore: update lockfile (#1789)
31 July 2025 - 215d467 - Chore: update dependency node-addon-api to v8.5.0 (#1786)
31 July 2025 - c408c00 - CI: merge queue wait for non-UNKNOWN merge state (#1796)
31 July 2025 - f002e48 - Fix: compare resolved paths when processing excludes (#1793)
27 July 2025 - 572abc0 - Chore: update dev dependencies (#1785)

Igir, and other open-source projects like it, are a labor of love. They wouldn't be nearly as meaningful without the community supporting them. Constructive feedback and general positivity will always be welcome. Be kind to others, and be kind to yourselves.
❤️ Christian

Don't miss a new igir release

NewReleases is sending notifications on new releases.