Universal ROM Compression Suite — by M5 Dev
OpenROM is a Universal ROM Compression Suite built to break the monopoly of proprietary ROM tools. It features a modern two-column UI design, real-time command line terminal logging, batch processing, and direct single-click conversions — plus a full CLI for automation and scripting.
| Platform | Official Release (GitHub) | Fast Mirror (SourceForge) |
|---|---|---|
| 🪟 Windows | OpenROM_Windows_Portable.zip | Download Mirror |
| 🐧 Linux | OpenROM_Linux_x86_64.zip | Download Mirror |
| 🍎 macOS Apple Silicon | OpenROM_macOS_arm64.zip | Download Mirror |
| 🍎 macOS Intel | OpenROM_macOS_x86_64.zip | Download Mirror |
Each download includes both the GUI and the CLI (openrom-cli).
📖 Documentation & Guides: Check out our Official Wiki for setup guides, Steam Deck setup, and FAQs.
- Modern Two-Column Design — Clean split interface with DROP ZONE & Queue on the left, and Conversion Settings / Controls on the right.
- Complete Conversion Matrix — Support for 20+ conversion paths including ISO, BIN, CUE, GDI, IMG, ECM, CHD, CSO, ZSO, XISO, RVZ, WIA, WBFS and GCZ.
- Full CLI — Automate conversions via
openrom-clifor scripting and batch workflows. - Live Terminal & Logging — Real-time process logging saved to your OS config directory.
- Auto CUE Generation — Auto-generates CUE files for standalone BIN files with correct track mode detection (MODE1/MODE2/AUDIO).
- Smart Platform Detection — Detects PS1, PS2, PSP, Xbox, GameCube, Wii, and Dreamcast from file headers — not just file size.
- Auto ECM Output Format — Auto-detects extracted format (ISO/BIN) after ECM decompression.
- Integrity Verification — Automatic post-conversion integrity check for CHD files via
chdman verify. - Drag & Drop — Native drag and drop support for single files and batch folders.
- No Telemetry — No network requests, no analytics, no cloud. Runs 100% locally.
| Input Format | Output Target | Tool Used | Notes |
|---|---|---|---|
| ISO | CHD | chdman | createcd for PS1, createdvd for PS2/GC |
| ISO | CSO | maxcso | PSP/PS2 |
| ISO | ECM | ecm | |
| ISO | XISO | extract-xiso | Xbox |
| ISO | RVZ | nodtool | GameCube / Wii |
| BIN | CHD | chdman | Auto CUE if missing |
| BIN | ECM | ecm | |
| CUE | CHD | chdman | |
| GDI | CHD | chdman | Dreamcast |
| IMG | CHD | chdman | |
| CHD | ISO | chdman | |
| CHD | BIN/CUE | chdman | |
| CSO | ISO | maxcso | |
| ZSO | ISO | maxcso | |
| ECM | ISO / BIN | unecm | Auto-detects output format |
| XISO | ISO | extract-xiso | |
| RVZ | ISO | nodtool | GameCube / Wii |
| WIA | ISO | nodtool | GameCube / Wii |
| WBFS | ISO | nodtool | Wii |
| GCZ | ISO | nodtool | GameCube / Wii |
Every release includes openrom-cli alongside the GUI:
# Convert a single file
openrom-cli --input game.iso --format CHD
# Batch convert a folder
openrom-cli --folder /roms/ --format CHD --compression Max
# Verify a CHD
openrom-cli --input game.chd --verify-only
# List supported formats
openrom-cli --list-formatsAll tools are open source, built from source, and verifiable. See SECURITY.md for details.
| Tool | Purpose | License |
|---|---|---|
| chdman | CHD conversion (MAME) | GPL v2 |
| maxcso | PSP/PS2 CSO/ZSO compression | ISC |
| ecm / unecm | Error Code Modulator compression | GPL v2 |
| extract-xiso | Xbox ISO extraction & creation | GPL v2 |
| nodtool | GameCube / Wii RVZ/WIA/WBFS/GCZ | MIT |
- Python 3.10+
- Dependencies in
requirements.txt
git clone https://github.com/M5Devs/OpenROM
cd OpenROM
pip install -r requirements.txt
python main.py# Windows
build_windows.bat
# Linux
./build_linux.sh
# macOS
./build_mac.shContributions are welcome! Please read CONTRIBUTING.md for guidelines on how to submit bug reports, feature requests, and pull requests.
OpenROM is licensed under GPL v3 + Commons Clause.
This means:
- ✅ Free to use personally
- ✅ Free to study, modify, and contribute
- ✅ Forks must remain open source (GPL)
- ❌ Cannot be sold or bundled in a commercial product without written permission
For commercial licensing inquiries: github.com/M5Devs/OpenROM or Twitter/X: M5Devs