OpenROM v2.7.0
Universal Retro Gaming Toolkit — convert, patch, compress, and manage your ROM collection.
Each download includes:
- OpenROM — Flutter desktop GUI
- openrom-core — headless CLI (used internally by the GUI, also available for scripting)
🆕 What's New in 2.7.0
New Platform Detection
OpenROM now automatically identifies 4 additional platforms via magic byte detection:
- Sega Saturn
- Sega CD / Mega-CD
- PC-Engine CD / TurboGrafx-CD
- Neo Geo CD
These join the existing detection for PS1, PS2, PSP, Xbox, GameCube, Wii, and Dreamcast — all based on actual header bytes, not file size guessing.
License
OpenROM is now pure GPL v3 — all traces of the Commons Clause have been removed from the license, source files, and metadata. This makes OpenROM fully OSI-compliant and eligible for Flathub and Linux distribution packaging.
🔧 Bug Fixes (from v2.6.1)
Critical — ISO → CHD Wrong Command
PS1 and Dreamcast ISOs were incorrectly converted using chdman createdvd instead of chdman createcd. This produced corrupt or unplayable CHD files. Now fixed — the correct command is selected automatically based on platform detection.
Xbox ISO Detection
Xbox ISOs with magic bytes at offset 0x2090000 (alternate layout) were previously misidentified as PS2 or Unknown. Now fixed — both offsets are checked via a fast in-memory path and a slow file seek fallback.
🛡️ Antivirus False Positives
In v2.6.1 we migrated openrom-core from PyInstaller to Nuitka, reducing AV detections from 27/67 → 14/67 on VirusTotal.
The remaining 14 detections originate from two bundled third-party tools:
ecm.exe— flagged by MaxSecure only (suspicious.genheuristic)maxcso.exe— flagged by Trapmine only (ml.scoreML heuristic)
Both are established open-source tools with clean histories. False positive reports have been submitted to both vendors. See SECURITY.md for SHA256 checksums of all bundled binaries.
Special thanks to @r3tr0g4m3r for reporting the antivirus detection in issue #17 with full details including SHA256 hash and AV version — exactly the kind of report that helps us improve. 🙏
💻 CLI Usage
# Detect file format and platform
openrom-core --detect game.iso
# Convert a single file
openrom-core --input game.iso --format CHD
# Batch convert a folder
openrom-core --folder /roms/ --format CHD --compression Max
# Apply a patch
openrom-core --patch game.sfc --patch-file hack.ips
# Compress to 7Z
openrom-core --compress game.iso --format 7z --level ultra
# Remove ROM header
openrom-core --remove-header game.smc
# List supported formats
openrom-core --list-formats📦 Supported Formats
| Platform | Input | Output |
|---|---|---|
| PS1 | BIN/CUE, ISO | CHD (createcd), ECM |
| PS2 | ISO | CHD (createdvd), CSO |
| PSP | ISO | CSO |
| GameCube / Wii | ISO | RVZ, WIA, GCZ |
| Xbox | ISO | XISO |
| Dreamcast | GDI, BIN/CUE | CHD (createcd) |
| Sega Saturn | BIN/CUE | CHD |
| Sega CD | BIN/CUE | CHD |
| Universal | Any ROM | ZIP, 7Z |
| Universal | Any ROM | Patch (IPS, BPS, UPS, xdelta3, PPF…) |
⬇️ Downloads
| Platform | File |
|---|---|
| 🪟 Windows | OpenROM-v2.7.0_Windows_Portable.zip |
| 🐧 Linux | OpenROM-v2.7.0_Linux_x86_64.zip |
| 🍎 macOS Apple Silicon | OpenROM-v2.7.0_macOS_arm64.zip |
| 🍎 macOS Intel | OpenROM-v2.7.0_macOS_x86_64.zip |
🔐 Verification
Verify your download against the SHA256 checksums in SECURITY.md.
# Linux / macOS
sha256sum OpenROM-v2.7.0_Linux_x86_64.zip
# Windows (PowerShell)
Get-FileHash OpenROM-v2.7.0_Windows_Portable.zip -Algorithm SHA256