8000 Releases · emmercm/igir · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Releases: emmercm/igir

v3.4.2

19 Apr 17:02
a7e12c4
Compare
Choose a tag to compare

Release Highlights

Feature: {category} token

You can now use a {category} output token with DATs that provide category information (primarily Redump; not No-Intro or TOSEC).

Fix: resolving tokens that can have multiple values

v3.3.1's major internal factor broke how the {region} and {language} tokens could expand to multiple values, creating duplicate files—except it never really worked right anyway. Now, these three tokens (and likely more in the future) will expand to all possible values for a given game:

  • {region}
  • {language}
  • {category} (it's not standard for DATs to provide multiple, but they do anyway)

As always stated in the docs, usage of these tokens may produce duplicate files. For example, the GBA game 007 - NightFire (USA, Europe) (En,Fr,De) has two regions and three languages, so usage of {region} will double the number of files written, and usage of {language} will triple the number of files written.

All changes

19 April 2025 - a7e12c4 - v3.4.2 (#1551)
19 April 2025 - b25a4a3 - Feature: {category} output token (#1550)

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

v3.4.1

19 Apr 02:44
ede85ce
Compare
Choose a tag to compare

Release Highlights

🗜️ Fix: treat archives that fail to parse as regular files

@cinnamonmatexfce found a bug with Igir ignoring a file that had a zip file signature (PK\x03\x04) but wasn't actually a zip file. These archive parsing failures were supposed to be handled gracefully, but a quirk with JavaScript prevented falling back to treating these files as regular files. This has been fixed—files that look like an archive but fail to parse as one will be treated as a regular file.

All changes

19 April 2025 - ede85ce - v3.4.1 (#1549)
18 April 2025 - 4ac8349 - Refactor: log archive parsing failures (#1548)
18 April 2025 - d475fc1 - Chore: update ESLint (#1547)
18 April 2025 - 63c9c08 - Refactor: uninstall unnecessary types packages (#1546)
18 April 2025 - 6e09c31 - Chore: update ESLint (#1532)
18 April 2025 - fb0f9ad - Fix: Revert "Chore: pin dependency python to 3.13.2" (#1503)
18 April 2025 - 40557dd - CI: use @typescript-eslint/strict-type-checked plugin (#1545)

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

v3.4.0

17 Apr 04:31
3fea6e2
Compare
Choose a tag to compare

Release Highlights

🗜️ Feature: extraction support for Zstandard zips

With RomVault's addition of Zstandard support in April 2024, a lot of ROM collectors have switched over to this more efficient compression algorithm. However, support for the format is still hit or miss (e.g. 7-Zip doesn't have support yet).

But Igir finally has support now! This required fully swapping out a third-party library with a brand new one written just for Igir, so please report any issues you experience.

Feature: Windows ARM builds

Builds for Windows ARM will start being published with new versions of Igir, including this one.

All changes

17 April 2025 - 3fea6e2 - v3.4.0 (#1543)
17 April 2025 - 5b9b844 - Feature: compile for Windows ARM (#1542)
16 April 2025 - 9dcdec9 - Feature: replace 'unzipper' with a custom library (#1538)

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

v3.3.1

14 Apr 22:50
72eb401
Compare
Choose a tag to compare

Release Highlights

This release had a fairly large refactor of how "candidates" (input files that have been matched to a game+ROMs) are handled. Please report any issues you experience.

Feature: new CLI logo!

The ASCII art logo has been updated to match Igir's logo on web:

   @@@@@@   @@@@@@     @@@@@@    @@@@@@@@@
 @@      @@  @@      @@      @@         @@@
@@        @@  @@    @@        @@         @@
 @@      @@  @@      @@      @@         @@@
   @@@@@@   @@         @@@@@@   @@@@@@@@@@
     @@   @@@     @@@@   @@   @@@      @@
     @@   @@        @@   @@   @@       @@
     @@   @@        @@   @@   @@       @@
     @@   @@@@@@@@@@@@   @@   @@       @@

Let me know what you think!

Optimization: don't test renamed files

When Igir moves files around on the same hard drive, it uses a low-level OS operation such as rename(2), which can't result in invalid file contents. File renames either fully succeed, where the output file is guaranteed to be the same, or it fully fails and doesn't produce any output. In these instances, it isn't necessary to test the written file, which could result in some large time savings.

Fix: symlink absolute paths

@HeroponRikiBestest found a regression introduced in v3.1.0 that broke symlink absolute paths. This has been fixed.

All changes

13 April 2025 - 72eb401 - v3.3.1 (#1541)
13 April 2025 - 67721e5 - Refactor: don't test renamed files (#1540)
13 April 2025 - 234a00a - Fix: symlink absolute paths (#1539)
8 April 2025 - 9d4fa5a - Chore: update dependency typescript to v5.8.3 (#1536)
1 April 2025 - 17edd25 - Fix: check for EXDEV error before other errors (#1535)
28 March 2025 - 4fed896 - Chore: update lockfile (#1534)
28 March 2025 - 317df6e - Chore: update lockfile (#1533)
27 March 2025 - b6e8388 - Chore: update dependency eslint-plugin-unicorn to v58 (#1531)
27 March 2025 - 140e793 - Chore: update dependency @types/node to v22.13.13 (#1530)
27 March 2025 - e9a0f23 - Chore: update ESLint (#1527)
27 March 2025 - 34ccb6e - Chore: update dependency ts-jest to v29.3.0 (#1528)
27 March 2025 - fa0d8b0 - Chore: update dev dependencies (#1526)
27 March 2025 - c3104ce - Chore: update depen 8000 dencies (#1525)
27 March 2025 - 6ad194c - Chore: update docs dependencies (#1529)
23 March 2025 - f2e2a18 - Refactor: ESLint rules update (#1523)
23 March 2025 - 0e87bb7 - Chore: update ESLint (#1522)
22 March 2025 - 110f11f - Feature: CLI ASCII logo (#1521)
20 March 2025 - 5cc5f01 - Docs: update (#1520)
20 March 2025 - dd31842 - Docs: update (#1519)
20 March 2025 - 524f5ef - CI: Renovate: update TypeScript ESLint deps more often (#1518)
20 March 2025 - da4de0f - Refactor: require erasable syntax (#1517)
19 March 2025 - 9b42299 - Fix: omit empty game <description/> tags (#1516)
19 March 2025 - 9243c27 - Refactor: massive internal refactor of candidate handling (#1514)
19 March 2025 - 3909c3f - Feature: file signature additions (#1515)
19 March 2025 - 1831d57 - Chore: update dependency typescript to v5.8.2 (#1511)
19 March 2025 - a2a8ad7 - Chore: update ESLint (#1513)

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

v3.3.0

19 Mar 03:09
779a7cc
Compare
Choose a tag to compare

Release Highlights

💿 Feature: multi-disc playlist generation

A friend and long-time sponsor of the project @dcramer requested this feature a long time ago and it's finally here. Every emulation frontend behaves slightly differently with playlist files, so please open issues or feature requests for anything you might need.

A new igir playlist command has been added to create .m3u playlist files for multi-disc games. See the comprehensive documentation on how the new command works.

All changes

19 March 2025 - 779a7cc - v3.3.0 (#1512)
19 March 2025 - d1050b0 - Feature: playlist command (#1510)
18 March 2025 - 41e3efa - Fix: handle coercing arrays of arg values (#1509)
17 March 2025 - c4acf02 - Refactor: pipeline candidate modules (#1508)
17 March 2025 - 3178e80 - Refactor: use for...of where possible (#1507)
17 March 2025 - 652c48b - Refactor: combine neighboring array filters (#1506)
17 March 2025 - f3520f2 - Feature: merge discs option (#1505)
16 March 2025 - 1b04b09 - Fix: prefer region information in game names (#1504)

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

v3.2.0

16 Mar 01:20
6af6cd7
Compare
Choose a tag to compare

Release Highlights

The theme of this release is: more standard, less surprising behavior.

Semi-breaking fix: standard 1G1R handling

1G1R preferences are now applied against DATs, no matter what input files you have.

Previously, Igir took more of a "best available" approach that didn't match the behavior of other ROM managers. As an example, let's say a game has USA, Europe, and Japan clones. Previously, if you preferred USA but only had the Japan clone in your input, the Japan clone would be selected because it was the best available. No other ROM manager behaved like this, all of them would have ignored the Japan clone because the USA clone is what is preferred.

Thank you @IDmedia and @ozboss for the discussion on this!

Semi-breaking fix: don't manipulate DAT names

Igir was stripping some common prefixes and suffixes from DAT names to make for cleaner folder names with --dat-name, but no other ROM manager behaves this way. This processing has been removed, which may change your output directory paths. Thank you @kriswilk for the report!

Feature: support for No-Intro "standard" DATs

No-Intro's "standard" DATs use, ironically, non-standard XML attributes for parent/clone information. These are now handled correctly. Thank you @R1nlz3r for the report!

Feature/fix: filter updates

  • --filter-category-regex <pattern> option added for DATs that supply category info. Thank you @steven-sheehy for the suggestion!
  • Languages in game names are now preferred over the release region's language. Thank you, @ozboss for the report!
  • SNES enhancement chip ROMs are now considered "non-retail". Thank you @baglio for the suggestion!
  • MAME bootlegs and hacks are now considered "non-retail".
  • Redump revision tags without numbers are handled better.

All changes

16 March 2025 - 6af6cd7 - v3.2.0 (#1501)
15 March 2025 - 593d15c - Docs: update (#1500)
15 March 2025 - 68178db - Feature: parse Redump numberless revisions (#1499)
15 March 2025 - f3a0694 - Refactor: breaking: don't manipulate DAT names (#1498)
15 March 2025 - 0baa174 - Feature: CLI icon for 1G1R progress (#1497)
13 March 2025 - 5f313f9 - Feature: handle id/cloneofid attributes in DATs (#1494)
12 March 2025 - 7c523db - Feature: generate fixdat without input files (#1491)
12 March 2025 - bce85e8 - Feature: game category filter (#1488)
12 March 2025 - 07221bc - Chore: pin dependency python to 3.13.2 (#1490)
12 March 2025 - d32473a - Fix: Revert "Chore: pin dependency python to 3.4.10" (#1489)
11 March 2025 - f9e0580 - Chore: update dependency dolphin-tool to v0.2503.0 (#1487)
11 March 2025 - c1f82a0 - Chore: pin dependency python to 3.4.10 (#1485)
11 March 2025 - b2d3e80 - Feature: consider MAME bootlegs and hacks as non-retail (#1483)
11 March 2025 - 337d2fd - Fix: silently ignore node-disk-info failure (#1482)
11 March 2025 - 6fc5bfc - Fix: moving files across drives (#1481)
11 March 2025 - 26927b6 - Fix: treat SNES enhancement chips as non-retail (#1480)
7 March 2025 - 4218679 - Feature: breaking: apply 1G1R preferences against DATs (#1477)
7 March 2025 - 59e44c5 - Feature: parent inference rule updates (#1475)
7 March 2025 - 65ed2d1 - CI: use the @typescript-eslint/recommended-type-checked ESLint plugin (#1472)
6 March 2025 - 3ea56fd - Refactor: add JSDoc to polyfill classes, do some renames (#1471)
5 March 2025 - ed8187d - Fix: don't de-duplicate URL files (#1470)

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

v3.1.0

05 Mar 04:02
54a45ea
Compare
Choose a tag to compare

Release Highlights

Feature: GCZ, RVZ, and WIA support

Inspired by FlippyDrive batch two shipping recently, support for several Dolphin compressed formats has been added. Support for these formats continues to differentiate Igir from other ROM collection managers.

Additionally, file signatures have been added for many other Nintendo file formats: .cia, .nca, .ncz, .nro, .nso, .nsp, .xci, .zca, .ccf, .vff, .wad, and .wud.

Feature: added --dir2dat-output <dir> and fixdat-output <dir> options

Similar to --report-output <file>, all of these options allow you to write these files outside of the --output <dir> directory.

Feature: token additions

Support has been added for the following:

  • Analogue Pocket: ASCII Corporation MSX (thank you @dirn!)
  • Batocera: GamePark GP32
  • RomM: GamePark GP2X & GP32

Refactor: chdman and maxcso improvements

  • chdman no longer requires the separate, manual installation of SDL2 on macOS.
  • Binaries found on $PATH/%PATH% are now preferred over the bundled binaries, allowing for upgrades and working around different OS differences.

All changes

5 March 2025 - 54a45ea - v3.1.0 (#1469)
5 March 2025 - 8cc42de - Fix: prevent hanging forever on non-DEFLATE zips (#1467)
5 March 2025 - 8ab6289 - Fix: broken symlinks should still be considered existing (#1466)
4 March 2025 - 2ab09d3 - Feature: add {pocket} support for MSX (#1415)
4 March 2025 - 6ee1ab7 - Refactor: remove unnecessary path.normalize() and path.resolve() calls (#1460)
3 March 2025 - d3be267 - Refactor: prefer chdman and maxcso from $PATH (#1443)
28 February 2025 - 5a1784b - Chore: update lockfile (#1464)
28 February 2025 - 7b8d323 - Chore: update lockfile (#1461)
28 February 2025 - 482305c - Chore: update dependency maxcso to v0.1130.11 (#1457)
28 February 2025 - 7248846 - Chore: update dependency fast-xml-parser to v5 (#1455)
28 February 2025 - 42325cd - Chore: update dependency eslint-plugin-unicorn to v57 (#1454)
28 February 2025 - f2b98b1 - CI: don't test on Intel macOS (#1462)
28 February 2025 - afee6bc - Chore: update dependency ts-jest to v29.2.6 (#1451)
28 February 2025 - 05cca14 - Chore: update ESLint (#1453)
28 February 2025 - 8e95736 - Feature: dir2dat & fixdat output options (#1458)
28 February 2025 - 69704a4 - Chore: update dev dependencies (#1452)
28 February 2025 - fbed042 - Feature: token support for GamePark handhelds (#1459)
27 February 2025 - d7447bc - Chore: update dependencies (#1449)
27 February 2025 - 0677582 - Chore: update dependency chdman to v0.275.1 (#1456)
27 February 2025 - dfcef13 - Chore: update dependency mkdocs-material to v9.6.5 (#1450)
27 February 2025 - c1610be - Chore: pin dependency dolphin-tool to 0.2412.3 (#1448)
27 February 2025 - d9ceb1a - Feature: GCZ, RVZ, and WIA support (#1442)
27 February 2025 - d9457b3 - Fix: calculate checksums for files that are de-duplicated (#1447)
27 February 2025 - 2badfde - Feature: add file signatures for .cia, .nca, .ncz, .nro, .nso, .nsp, .xci, .zca, .ccf, .vff, .wad, .wud (#1444)
27 February 2025 - f738086 - Chore: update dependency chdman to v0.275.0 (#1446)
27 February 2025 - 6247fed - Docs: update (#1445)
20 February 2025 - c8d4475 - Chore: update Node.js to v22.14.0 (#1441)
17 February 2025 - 78636f1 - Chore: update dependency maxcso to v0.1130.10 (#1437)
17 February 2025 - 0c5c688 - CI: test Ubuntu ARM, update macOS ARM (#1439)
17 February 2025 - 82b0463 - CI: test macOS without installing SDL2 (#1440)
16 February 2025 - 4c46223 - Chore: update dependency chdman to v0.274.2 (#1438)
14 February 2025 - e86742e - Chore: update dependency chdman to v0.274.1 (#1436)
14 February 2025 - fd19926 - Fix: limit to MAX_FS_THREADS in more places (#1435)
14 February 2025 - 5f522cb - Chore: update dependency chdman to v0.274.0 (#1434)
14 February 2025 - 24119fa - CI: Renovate: update chdman & maxcso immediately (#1433)

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

v3.0.2

14 Feb 01:01
ebd02f6
Compare
Choose a tag to compare

Release Highlights

This release includes four months of dependency updates, including bumps to Node.js and TypeScript versions.

All changes

14 February 2025 - ebd02f6 - v3.0.2 (#1432)
13 February 2025 - 708061c - CI: Renovate: update chdman & maxcso immediately (#1431)
12 February 2025 - 8c92b7c - Refactor: fix Bun importing node-unrar-js (#1430)
12 February 2025 - 26178dd - Feature: add Node.js v23 to EOL checker (#1429)
12 February 2025 - 5cae78c - Fix: add 7zip error string formatting back (#1428)
12 February 2025 - 50e1068 - Chore: update dependency eslint-config-prettier to v10 (#1422)
12 February 2025 - d6c9791 - Chore: update dependency 7zip-min to v2 (#1421)
12 February 2025 - 4d36c6a - Chore: update dependency typescript to v5.7.3 (#1423)
12 February 2025 - 799315f - Chore: update ESLint (#1419)
12 February 2025 - e6a542a - Chore: update dependencies (#1417)
12 February 2025 - 53c4839 - Chore: update dependency @types/node to v22 (#1404)
12 February 2025 - 907ef4b - Chore: update Node.js to v22.13.1 (#1411)
11 February 2025 - 41f0acd - Fix: don't normalize file URL paths (#1426)
11 February 2025 - 19a9297 - Chore: update codecov/codecov-action action to v5 (#1425)
3 February 2025 - 7abc76c - Chore: update docs dependencies (#1420)
30 December 2024 - a9ba15c - Chore: update peter-evans/create-pull-request action to v7 (#1362)
30 December 2024 - c391c21 - Chore: bump TypeScript target to ES2021 (#1403)
30 December 2024 - 2c1a1e7 - Chore: Bump cross-spawn from 7.0.3 to 7.0.6 (#1391)
30 December 2024 - a722ffd - Chore: update docs dependencies (#1396)
30 December 2024 - d4f45c8 - Chore: update Node.js to v22 (#1388)
30 December 2024 - 209c17f - Chore: update dependency typescript to v5.7.2 (#1363)
30 December 2024 - f955be0 - Chore: update lockfile (#1386)
30 December 2024 - d431781 - Chore: update thollander/actions-comment-pull-request action to v3 (#1384)
30 December 2024 - 0702a40 - Chore: update dependency eslint to v9 (#1322)
30 December 2024 - 6b76bc3 - Chore: update dev dependencies (#1395)
30 December 2024 - f239e10 - Chore: update ESLint (#1397)
30 December 2024 - b206606 - CI: fix hard link writing tests (#1402)
30 December 2024 - a59f393 - Chore: update dorny/paths-filter to v3 (#1401)
28 October 2024 - df1a7c7 - Chore: update dependency eslint-plugin-unicorn to v56 (#1382)
28 October 2024 - 57f855f - Chore: update dependency which to v5 (#1383)
28 October 2024 - 2d98624 - Chore: update lockfile (#1385)
27 October 2024 - 4e7c82d - Chore: update dependency @types/node to v20.17.0 (#1379)
27 October 2024 - 3e21e8d - Chore: update dependency Pillow to v11 (#1381)
27 October 2024 - ee73efe - Chore: update docs dependencies (#1380)
27 October 2024 - 452d53e - Chore: update ESLint (#1378)
27 October 2024 - 0afda26 - Chore: update dependency @types/jest to v29.5.14 (#1377)
27 October 2024 - a5d1d9e - Chore: update dependencies (#1376)
10 October 2024 - 3eac976 - Chore: update Node.js to v20.18.0 (#1370)
28 September 2024 - dd0dbc2 - Chore: update lockfile (#1365)
28 September 2024 - 9f5843a - Chore: update dependency @types/node to v20.16.7 (#1364)
27 September 2024 - 5834d4b - Chore: update adRise/update-pr-branch action to v0.9.1 (#1360)
27 September 2024 - ec6c184 - Chore: update dependencies (#1361)
27 September 2024 - c9c9854 - Chore: update docs dependencies (#1358)
27 September 2024 - 14bb63b - Chore: update ESLint (#1359)
27 September 2024 - bf4d194 - Chore: update dev dependencies (#1357)
27 September 2024 - bca09eb - Chore: update dependency @types/jest to v29.5.13 (#1356)

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

v3.0.1

21 Sep 05:01
efaa97e
Compare
Choose a tag to compare

Release Highlights

Just a quick release to update the chdman-js and maxcso-js npm packages in an effort to fix the Homebrew tap (emmercm/homebrew-igir#22). The two packages will now only download the binaries relevant to your OS & architecture, rather than downloading every prebuilt binary.

All changes

21 September 2024 - efaa97e - v3.0.1 (#1353)
21 September 2024 - b2fd2b7 - Chore: update chdman-js and maxcso-js (#1352)
4 September 2024 - 990fdcd - Docs: update (#1338)
2 September 2024 - aff53e4 - Docs: update (#1336)
31 August 2024 - 8a2e046 - CI: build GitHub pages on workflow dispatch (#1335)

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

v3.0.0

31 Aug 20:48
2c53493
Compare
Choose a tag to compare

See the project website for complete documentation, installation & usage instructions, and examples!

Release Highlights

This release has been a long time in the making, with more than 9,200 lines of code and documentation changed, and has taken significant testing—but it's finally ready!

Igir just passed the second birthday of its first release on August 24th. By the numbers, it has reached 7 community contributors, 344 stars on GitHub, and 18.2k downloads across all channels. I'm very proud of the project, and I'm humbled by the traction it's gotten with admittedly little advertisement. I will likely scale back the time I put into the project through the end of the year as this release has taken so much time & effort to get ready. Thank you all for your continued support!

The documentation website has had a significant refresh, but should still feel familiar. Thank you @netwaretcs for the new logo!

🚀 New major features

Support for reading & extracting CHD, CSO/ZSO/DAX, and NKit ISO files

Support for these common disk/disc compression formats is what prompted a major version change of Igir. And best yet—all of the required tools are bundled, so you don't have to source any of them! Thank you @maxexcloo, @unexpectedpanda, and @Djabal for all of your effort in development and general discussion!

Moved files are moved immediately

Previously, Igir would copy files from input to output during igir move, and then delete those "moved" files from the input director 8262 y as a cleanup action at the end. This was for the case when a single input file was used for different output files. Igir will now actually move files in real time, and it will then copy the first moved file in the output directory as needed for duplicates.

Copying zip files that don't need to be recreated

When not extracting (igir extract), Igir can now detect zip files that contain exactly the correct files for a game and copy that zip file as-is without recreating a new zip file. This helps preserve information such as zip comments and file timestamps.

🪛 New minor features

Breaking: --allow-excess-sets option

When not extracting or zipping, Igir would previously match archives that contained all of a game's files, even if the archive contained excess files. This is no longer the default behavior as it was likely unexpected, and instead, you must enable the behavior with the new --allow-excess-sets option. Thank you @PhasecoreX for the suggestion!

--input-checksum-quick option

The addition of new archive formats (above) that require bundled third-party tools to decompress may require a lot of temp file reading & writing. To bypass this, a new "quick" checksum option has been added that will only read checksums from archive headers and never extract contents to temp files. This comes with a lot of caveats, so please read the new documentation for more information.

--input-checksum-max <algorithm> option

The --input-checksum-min <algorithm> option which allows you to raise the minimum allowed checksum above CRC32 has existed since v2.6.0. It now has a sibling option --input-checksum-max <algorithm> which will let you constrain the maximum allowed checksum. This is useful because Igir will automatically enable the use of non-CRC32 algorithms in the case that DATs don't provide CRC32 checksums for all files.

🐛 Bug fixes, performance improvements

Support for DAT URLs to archives

@PhasecoreX found a bug/oversight where DAT URLs pointed to archive files wouldn't parse the archive's contents. This has been fixed!

More efficient rendering of progress bars

A change to render progress bars asynchronously should make all processing a little faster.

Cache file is tested after writing

When Igir writes the cache back to disk, it first writes it to a temp file and then overwrites the real location. That temp file will now be tested to make sure it was written correctly, which should reduce the chance of a corrupted file.

--dir-mirror with input subdirectories

The --dir-mirror option wasn't working as intended with input paths with path separators (i.e. / or \) in them. This should be fixed, and there is now an example highlighting the option's value.

Erroneous ROM header removal

No-Intro started including Clrmamepro-style header information in their headerless DATs, which was causing headers to be automatically removed when they shouldn't have been. This has been fixed.

⛓️‍💥 Breaking changes

Breaking: cache structure has significantly changed

Both the serialization format and the key structure of the cache file have been significantly changed, which will make your existing cache file invalid, so Igir will overwrite it with a fresh cache file. This is not the type of change that should need to happen often.

Breaking: all previously deprecated options and tokens have been removed

Several options that aren't visible in the help message have been deprecated for a long time, and all of them have been removed to keep the code tidy.

Breaking: --exclude-disks option

Now that Igir can parse CHDs, MAME games that specify "disks" will require their CHDs to be present to be considered a full match. This is because these games likely require their disks to function at all. To revert to the old behavior where disks aren't required, you can provide the --exclude-disks option.

Breaking: --prefer-ntsc and --prefer-pal have been removed

These options relied on naming schemes specific to certain DAT groups, and the tagging convention they relied on isn't present in the gross majority of games. These two options have been removed to avoid an expectation that they should work in most cases. You can use the --prefer-game-regex <pattern> option to recreate this behavior.

Breaking: --prefer-revision-newer and --prefer-revision-older combined into --prefer-revision <mode>

This brings the option in line with other options that have been added recently.

🫶 Sponsors

Thank you @dcramer who has been a long-time project sponsor, @lauripaulo for your recent sponsorship, and to everyone who has chosen to sponsor privately!

Every donation to the project is a blessing, and I'm thankful to everyone who spends their time making it a little better.

All changes

31 August 2024 - 2c53493 - v3.0.0 (#1334)
31 August 2024 - 21c7490 - Chore: update typescript-eslint monorepo to v8 (major) (#1323)
31 August 2024 - ea55b6a - CI: add .git-blame-ignore-revs (#1333)
31 August 2024 - 6746d8a - Refactor: sort modules into groups (#1332)
30 August 2024 - f7865f7 - Refactor: replace 'eslint-config-airbnb-typescript' with Prettier (#1331)
30 August 2024 - 79093af - Feature: v3.0.0 (#1233)
30 August 2024 - 9ea6039 - Fix: caching headers & signatures for archived files (#1330)
30 August 2024 - 3ed0202 - Docs: update (#1328)
30 August 2024 - cea8734 - Fix: dir mirror option when input path contains multiple path slugs (#1329)
30 August 2024 - 7b127e8 - Refactor: use the V8 serializer for the cache file (#1326)
29 August 2024 - b403669 - Refactor: rename progress bar icon names (#1327)
28 August 2024 - fcf0793 - Chore: update lockfile (#1325)
28 August 2024 - 27502fd - Docs: update asciinema (#1324)
28 August 2024 - 20dae09 - Fix: don't delay deleting input files during writing when moving (#1320)
28 Augus...

Read more
0