Igir v5.0.0 has been released as a powerful, zero-setup ROM collection manager that supports sorting, filtering, and patching across all OS. This update, resulting from around 100 hours of development, features extensive documentation improvements and a new guiding principles page. Significant enhancements include compatibility with Bun for faster performance, optimized caching mechanisms, and a range of new command-line options. Performance profiling led to speed enhancements, and several improvements were made, such as parsing .7z and .gz archives without external binaries. The cache format has changed, requiring updates, but allows for easier human analysis. This version reflects increased community contributions and ongoing user support.
(HEY YOU!! We hope you enjoy! We try not to run ads. So basically, this is a very expensive hobby running this site. Please consider joining us for updates, forums, and more. Network w/ us to make some cash or friends while retro gaming, and you can win some free retro games for posting. Okay, carry on ๐)
Igir v5.0.0 has been launched. This is a zero-setup ROM collection manager that effectively sorts, filters, extracts, archives, patches, and reports on collections of any size across all operating systems.
Igir Changelog:
With each release of Igir, I reaffirm my belief that it stands out as the most robust, adaptable, and feature-packed ROM manager available. This update reflects roughly 100 hours of dedicated effort, which I trust will be apparent.
Almost all pages of documentation have been revised for accuracy, completeness, and clarity. A new page outlining guiding principles has been included to better elucidate Igir’s intentions and functionalities.
My heartfelt thanks go to everyone who contributes to this project in any capacity. Special thanks to our longstanding sponsors @dcramer, @rommapp, and @chrisdrackett; and to all private or one-off sponsors. A big thank you as well to users who provide thorough bug reports respectfully, and to those who propose insightful feature requests.
In keeping with tradition, hereโs some Igir by the numbers for this major version release:
38k lines of code and documentation updated since v4.3.2
16 community contributors to code or documentation (+7/+78% since v4.0.0)
803 stars on GitHub (+260/+48% since v4.0.0)
52k lifetime downloads across all channels (+15.5k/+42% since v4.0.0)
Now, letโs delve into the exciting details…
โ๏ธ Modern compilation
The binaries included in GitHub releases are now compiled using Bun. Bun is a JavaScript runtime and bundler recently acquired by Anthropic (the makers of Claude Code). Bun consistently outperforms Node.js/V8 in most startup time and execution speed benchmarks and importantly comes with native tools for bundling JavaScript into executables.
Igir will remain compatible with Node.js, and no Bun-exclusive libraries will be implemented.
๐๏ธ Significant performance enhancements
With Igirโs compatibility with Bun, the ability to utilize Bun’s profiler has been unlocked, which is notably more user-friendly than Node.jsโs. This profiler has revealed inefficiencies in CPU cycles and memory use. As a result, this release should make Igir the quickest itโs been in a long while, regardless of the runtime.
Many speed enhancements stem from improvements in concurrency and promise management. To minimize contention (and I/O thrashing), the default reader thread count has decreased from 8 to 6, and the reader thread count has reduced from 4 to 3.
This detailed performance profiling has also led to…
๐๏ธ Cache performance and structural improvements
Significant advancements have been made to caching behavior:
Calculations are now stored based on file checksums rather than file paths, which eliminates cache misses from file relocations:
ROM headers
File signatures (for extension corrections, trim detections)
ROM paddings (of trimmed files)
TorrentZip validations are now cached, enhancing candidate generation speed.
File checksums computed when testing output files are now stored in the cache, speeding up future scans. Special thanks to @noah978 for this suggestion!
ROM headers, file signatures, and ROM paddings are now structured in a way that won’t invalidate existing cache entries when adding support for additional headers, signatures, and paddings.
Regrettably, to accommodate Bun, the cache format had to be altered, so your existing cache files will be overwritten and cannot be reused. However, the new standardized format is now human-analyzable and better documented.
Additional features
Several new CLI options have been introduced:
A –playlist-mode
New options have been included to manage input file preferences. Thanks to @chrisdrackett for the suggestion!
–prefer-filetype
–prefer-filename-regex
An –output-console-tokens
Other enhancements
A myriad of improvements and bug fixes have been carried out, with notable ones including:
.7z and .gz archives are now parsed & extracted without needing an external 7za binary, which was somewhat necessary for executable bundling with Bun.
Per-file progress bars have been added for DAT/ROM/patch scanning, ROM trim detection, raw archive checksum calculations, output testing, and directory cleaning.
DAT files can now be downloaded from http:// URLs as well as https://. Thanks to @Ooopz for the bug fix!
Multi-disc games in HTGD DATs will no longer have their output paths unnecessarily nested. Thanks to @JosVerheij for the bug fix!
Retro Replay Retro Replay gaming reviews, news, emulation, geek stuff and more!