The Digital Broom for your MAME Arcade Collection.
Created by Shawn Flanagan / CyborgBob for Technically Not a Technician, with Mr. Bob "Blocks" Cogito assisting as the AI planning and logic partner.
Because this program is a standalone Windows .exe created by an independent developer and packaged with PyInstaller, Windows Defender or another antivirus tool may warn you before launch.
That does not automatically mean the app is malicious.
- The Python source package is included so users can inspect the code.
- The app does not include ROMs, BIOS files, CHDs, samples, or game downloads.
- The app works on files and folders you already provide.
- If Windows blocks the app, click More Info and then Run Anyway, or build from source.
MAME Smart ROM Sorter helps home arcade builders turn a massive MAME set into a smaller, cleaner, purpose-built folder.
Instead of manually digging through thousands of ZIP files, you choose the kind of arcade setup you are building, and the sorter helps copy or hard-link the matching files into a new curated output folder.
This is meant for people building things like:
- A general-purpose arcade cabinet.
- A joystick/button cabinet.
- A couch/controller setup.
- A light gun-focused setup.
- A trackball-focused setup.
- A driving/racing-focused setup.
- A fighter-focused setup.
- A lean "best playable arcade games" style folder.
MAME Smart ROM Sorter does not include, provide, link to, download, or distribute ROMs, BIOS files, CHDs, samples, or copyrighted game content.
You must provide your own legally obtained MAME files.
This project is a sorting/curation tool. It is not a ROM site, downloader, emulator, or legal shortcut.
- Cleaner v5.0 code structure with separated engine, GUI, and shared logic files.
- Preset-driven workflow for common cabinet/controller goals.
- 1G1R-style curation logic to reduce redundant clones/regional duplicates.
- God Mode metadata filtering using MAME XML and optional support INI data.
- Working arcade focus to avoid stuffing your build with junk, gambling, fruit machines, and non-playable clutter.
- Region and language preference logic for better parent/clone selection.
- CHD-aware export behavior for games that need disk folders.
- Portable deployment support so the sorter can live beside or near a MAME install.
- TNT personality layer including app sounds, branding, and arcade-style presentation.
For best results, use a non-merged MAME ROM set.
Why? A non-merged set is easier to curate because each game ZIP is more self-contained. Merged and split sets can work in some cases, but they are more likely to create missing parent, BIOS, device, sample, or CHD dependency problems after copying.
If a game still fails after sorting, check MAME's own error message first. The sorter may have copied the correct target ROM while MAME still needs a parent, BIOS, device ZIP, or CHD dependency.
- Download
MAME_Smart_ROM_Sorter_v5.0.exefrom the GitHub release. - Place it in or near your MAME folder.
- Launch the app and accept the startup agreement.
- Point the app at your MAME metadata/support files when needed.
- Choose a preset or build your own filter setup.
- Choose your source ROM folder.
- Choose your output folder.
- Run the sorter.
- Review the output folder and log files.
- Test the curated folder in MAME or your front-end.
The GitHub release should include these files:
| File | Purpose |
|---|---|
MAME_Smart_ROM_Sorter_v5.0.exe |
Windows executable for normal users. |
MAME_Smart_ROM_Sorter_v5.0_Source.zip |
Source code, presets, required non-ROM assets, and build inputs. |
SHA256SUMS.txt |
Optional checksum file for verifying release downloads. |
The public repository already had a stronger visual guide than the stripped-down rebuilt README. This v5.0 README restores that style.
Note: Some screenshots below come from the existing public GitHub README and may show the older v4.x interface. They still explain the workflow. Replace them with fresh v5.0 screenshots when final v5 screenshots are ready.
The app opens with a themed welcome/agreement screen before doing any heavy work.
The sorter can help users understand required metadata like full.xml and the optional support INI files that improve filtering quality.
Users connect the sorter to the MAME folder, source ROM folder, output folder, XML data, and support files.
Filter around the controls you actually have: joystick, buttons, trackball, spinner, light gun, driving, and similar cabinet constraints.
Use the deeper filters to remove clutter, prioritize playable arcade titles, and tune the set around your goals.
Pick broad arcade categories, reduce unwanted genres, and shape the output toward the games you actually want to play.
Build around an arcade era: 1970s black-and-white classics, 1980s golden age, 1990s fighters, or a wider all-era build.
Set region/language preferences so the sorter can make better parent/clone choices.
Run the job, review logs, and check the final curated output folder before loading it into your emulator or front-end.
The source package includes the v5.0 build assets needed to rebuild the current app package.
| Asset type | Examples |
|---|---|
| Preset JSON | preset_v5.0.json, All.json, Controller.json, Lightgun.json, Trackball.json, driving.json, fighter.json |
| Preset art | All.png, Controller.png, Lightgun.png, Trackball.png, Driving.png, fighter.png |
| App branding | TNTLogo400by400.png, TNTicon256by256.ico, Polybius01.png, Polybius02.png, Download.png |
| App sounds | play_game.wav, game_over.wav, goodbye.wav |
| Build files | main.py, sorter_engine.py, sorter_gui.py, sorter_shared.py, MAME Smart ROM Sorter.spec |
No ROMs or copyrighted game files are included.
Point the tool at your MAME metadata and ROM folder, choose your filters or preset, and run the sorter. It creates a curated output folder based on your selected arcade goal.
Enable the 1G1R-style options and set region/language preferences. The sorter uses MAME parent/clone relationships and your preferences to reduce duplicate regional versions.
Yes. That is one of the main points of the tool. The sorter is built around practical arcade limits: controls, buttons, players, screen orientation, genre, working status, and cabinet-style goals.
MAME can require parent ROMs, BIOS ZIPs, device ZIPs, CHDs, or samples. The sorter helps curate files, but it cannot magically fix an incomplete ROM set.
No. It does not include or download ROMs, BIOS files, CHDs, samples, or copyrighted game content.
The sorter is designed around local processing. Some optional support metadata may come from public community data sources, but the tool itself is meant to sort files locally once the needed metadata is present.
Unsigned PyInstaller-built apps often trigger warnings. The source is included so users can inspect or rebuild it.
This project stands on the shoulders of giants. Thank you to the projects, developers, and communities that keep arcade history alive.
- ProgettoSnaps — CatVer, Mature, Series, and other support data.
- AntoPISA MAME Support Files — hosted MAME support INI repositories.
- Controls.dat Project / ArcadeControls — arcade control metadata.
- Arcade Database / ADB — MAME reference data and arcade encyclopedia.
- NPlayers — player-count and multiplayer behavior data.
- Rogue Synapse — keeping the Last Starfighter dream alive.
- Team Encoder — arcade modding and hardware hacking.
- Sinnesloschen / Polybius and Polybius Archive — because the truth is out there.
- Houston Arcade Expo — one of the best arcade shows on earth.
- Shawn Flanagan / CyborgBob — project owner, creator, testing, direction, and release lead.
- Technically Not a Technician — channel and public project home.
- Mr. Bob "Blocks" Cogito — AI planning, documentation, and code-assist partner.
- Community testers and commenters — feature feedback, bug reports, and arcade cabinet reality checks.
- Technically Not a Technician website
- Subscribe on YouTube
- Buy Me a Coffee
- Smart ROM Sorter Setup Guide
- ROMLister Filtering Guide
- Arcade Database Hack Guide
- ClrMamePro Conversion Guide
MSRS v5.0 uses a simple split-license model:
- Source code: MIT License. See
LICENSE. - Documentation: Creative Commons Attribution-NonCommercial-ShareAlike 4.0 unless a file says otherwise.
- TNT / Technically Not a Technician branding, logos, icons, preset images, screenshots, Polybius images, WAV sounds, video assets, and other non-code creative assets: reserved by Shawn Flanagan / Technically Not a Technician unless otherwise stated.
- MAME / game content: no ROMs, BIOS files, CHDs, samples, or copyrighted game files are included, linked, downloaded, or distributed.
You may use the bundled assets as part of running, testing, documenting, or rebuilding MAME Smart ROM Sorter. You may not reuse them to impersonate Shawn/TNT, imply endorsement, rebrand another project, or sell/distribute them as a standalone asset pack.
See LICENSE, LICENSE_OVERVIEW.md, ASSET_LICENSE_NOTES.md, and THIRD_PARTY_NOTICES.md for the release package notes.








