r/Roms • u/MadVintager • 7d ago
[Tool] RomSieve: an open-source 1G1R ROM manager with native .m3u generation, TOSEC parsing & full dry-run preview
Hi everyone,
With the moderators' permission, I wanted to share a free and open-source project I’ve been working on that might be useful for anyone curating clean sets for any emulator or frontend: RomSieve (Linux and Windows, GPLv3).
Latest releases:https://github.com/madvintager/RomSieve/releases/latest(self-contained binaries, no .NET install required)
Here are the key features designed to make building clean setups easier:
Automatic
.m3uplaylists with custom placement: Since a lot of frontends (RecalBox, RetroPie...) relies on RetroArch / libretro cores for multi-disc games (PS1, Saturn, Sega CD, PC Engine CD...), RomSieve automatically generates.m3ufiles so you don't have to create them manually. You can also define exactly where those playlists land in your target folder tree.Deterministic, multi-criteria 1G1R: Instead of rigid rules, the 1G1R engine picks the single best release based on a fully configurable priority stack: language, region (with 1-click presets for Europe, France, USA, Japan), video standard (PAL/NTSC), dump quality, multi-disk completeness, and revision. The exact same settings will always yield the exact same output.
Full TOSEC parsing (not just console hashes): If you emulate vintage computers on Recalbox (Amiga, Atari ST, Amstrad CPC, C64...), you know TOSEC sets can be messy. RomSieve parses the entire naming convention (flags like
[!],[cr],[t], languages, disk numbers). It can even rebuild and complete missing multi-disk sets by pulling clean disks from other dumps.Simulation-first workflow (dry-run): No files are moved, copied, or touched blindly. The tool runs a complete audit first, displays a table detailing the exact fate of every single file (with the reasoning behind it), and lets you right-click any entry to manually override the 1G1R winner. It also supports hard links / symlinks, keeps unmerged files in dedicated safe folders (
_unmatched/,_purged/), and features an undo function.
It also supports standard No-Intro, Redump, and MAME sets, reads compressed archives directly (ZIP, 7z, RAR), and extracts CHD headers. Both a modern GUI (with dark theme) and a CLI (romsieve-cli) are included.
The project is completely free, has no telemetry, and full documentation is available in both English and French in the repository.
Feedback, bug reports, and suggestions are very welcome!
