Skip to content

Latest commit

ย 

History

129 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

OpenROM Banner

โฌก OpenROM

Universal Retro Gaming Toolkit โ€” by M5 Dev

Translation status


๐ŸŽฎ Meet ROMeo โ€” OpenROM's official mascot. Your friendly pixel-art cartridge companion for all things ROM.

OpenROM is a free, open-source Universal Retro Gaming Toolkit โ€” one app to replace every fragmented ROM tool out there. Convert, patch, compress, clean, and manage your ROM collection with a modern Flutter desktop UI, real-time terminal logging, smart platform detection, and a full headless CLI for automation โ€” all running 100% offline.


โฌ‡๏ธ Download

Platform GitHub Release SourceForge Mirror
๐ŸชŸ Windows OpenROM_Windows_Portable.zip Mirror
๐Ÿง Linux OpenROM_Linux_x86_64.zip Mirror
๐ŸŽ macOS Apple Silicon OpenROM_macOS_arm64.zip Mirror
๐ŸŽ macOS Intel OpenROM_macOS_x86_64.zip Mirror
๐Ÿค– Android ๐Ÿšง Coming soon via Termux โ€”

Each release includes the Flutter GUI (OpenROM) and the headless CLI (openrom-core).

๐Ÿ“– Guides & Docs: Official Wiki โ€” setup, Steam Deck, Termux, FAQs.


๐ŸŽฎ Features

๐Ÿ” ROM Conversion

  • 20+ conversion paths โ€” ISO, BIN, CUE, GDI, IMG, ECM, CHD, CSO, ZSO, XISO, RVZ, WIA, WBFS, GCZ and more.
  • Smart Platform Detection โ€” Magic byte detection for PS1, PS2, PSP, Xbox, GameCube, Wii, Dreamcast โ€” not size guessing.
  • Real CHD Header Parsing โ€” Reads actual CHD v4/v5 headers to determine CD vs DVD type accurately.
  • Auto CUE Generation โ€” Generates CUE sheets for standalone BIN files with correct track mode (MODE1/MODE2/AUDIO).
  • Integrity Verification โ€” Post-conversion CHD integrity check via chdman verify.

๐Ÿฉน ROM Patching

  • 9 patch formats โ€” IPS, IPS32, UPS, BPS, PPF, APS, EBP, DPS, xdelta3.
  • Auto format detection โ€” Drop a patch file and OpenROM detects the format automatically.
  • Checksum verification โ€” CRC32 integrity checks before and after patching with a detailed report.
  • Ignore checksum mode โ€” Force-apply patches even on modified ROMs.

๐Ÿ—œ๏ธ Compression & Extraction

  • ZIP and 7Z support โ€” Compress ROMs or entire folders with fast / normal / ultra presets.
  • Smart skip โ€” Already-compressed formats (CHD, CSO, RVZ, 7Zโ€ฆ) are automatically skipped.
  • Batch extraction โ€” Extract ZIP and 7Z archives with progress tracking.
  • Delete source option โ€” Auto-clean source files after successful compression.

๐Ÿงน ROM Header Removal

  • Copier header detection and removal for NES (iNES), SNES (SMC), Game Boy / GBC โ€” with confidence rating (certain / likely).
  • Auto backup โ€” Original ROM backed up as .bak before any modification.
  • Non-destructive โ€” Output written to a separate file; source untouched by default.

๐Ÿ—‚๏ธ Collection Utilities

  • M3U Playlist Generator โ€” Auto-generate M3U playlists for multi-disc games (PS1, Saturn, etc.).
  • BIN Merger โ€” Merge multi-track BIN files into a single BIN + CUE.
  • Batch Processing โ€” Drop a whole folder, process everything at once.

๐Ÿ–ฅ๏ธ UI & Workflow

  • Gaming Dashboard UI โ€” Flutter-powered dark interface inspired by PS5/Xbox aesthetics, with ROM cards, platform badges, and real-time progress.
  • Themeable โ€” Swap between built-in themes (Gaming Dashboard, Cyberpunk, Terminal, Minimal) or create your own via JSON.
  • Real-time Terminal Log โ€” Live process output with timestamps, slides up during conversion.
  • Drag & Drop โ€” Native drag and drop for files and folders.
  • Full Headless CLI โ€” openrom-core for scripting, automation, and Flutter IPC.
  • No Telemetry โ€” Zero network requests. No analytics. Runs 100% locally forever.

๐Ÿ” Conversion Matrix

Input Output Tool Notes
ISO CHD chdman createcd for PS1/Dreamcast, 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 Files extract-xiso Extracts to folder
RVZ ISO nodtool GameCube / Wii
WIA ISO nodtool GameCube / Wii
WBFS ISO nodtool Wii
GCZ ISO nodtool GameCube / Wii

๐Ÿฉน Supported Patch Formats

Format Systems
IPS / IPS32 NES, SNES, GBA, and most retro systems
UPS Universal โ€” any ROM
BPS Universal โ€” any ROM
PPF PS1 / PS2 disc patches
APS (GBA) Game Boy Advance
APS (N64) Nintendo 64
EBP EarthBound / SNES
DPS DOS / PC
xdelta3 / VCDIFF Large ROMs, disc images, PS2, PSP

๐Ÿ’ป 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

# Convert with verification
openrom-core --input game.iso --format CHD --verify

# 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

# Generate M3U for multi-disc game
openrom-core --m3u /roms/Metal\ Gear\ Solid/

# Verify a CHD
openrom-core --input game.chd --verify-only

# JSON output (for scripting / Flutter IPC)
openrom-core --json --detect game.iso

๐ŸŽจ Themes

OpenROM ships with 4 built-in themes and supports fully custom themes via JSON files in the themes/ folder:

Theme Description
default.json Gaming Dashboard โ€” dark navy, red accent
cyberpunk.json Neon on black
terminal.json Green on black, monospace
minimal.json Clean light mode

Create your own theme by copying any JSON file and editing the color values.


๐Ÿ› ๏ธ Bundled Tools

All tools are open source and verifiable. See SECURITY.md for SHA256 checksums.

Tool Purpose License
chdman CHD conversion (MAME) GPL v2
maxcso CSO/ZSO compression ISC
ecm / unecm ECM compression GPL v2
extract-xiso Xbox ISO extraction GPL v2
nodtool GameCube / Wii formats MIT
xdelta3 xdelta/VCDIFF patching Apache 2.0

๐Ÿš€ Building from Source

Requirements

  • Python 3.10+
  • Flutter 3.27+
  • PyInstaller 6.0+

Run Flutter UI from source

git clone https://github.com/M5Devs/OpenROM
cd OpenROM

# Build headless Python core
pip install -r requirements.txt
pyinstaller --onefile --name openrom-core core/cli.py

# Run Flutter UI
cd openrom_flutter
flutter pub get
flutter run -d windows   # or linux / macos

Build release packages

# Windows
build_windows.bat

# Linux
./build_linux.sh

# macOS
./build_mac.sh

๐Ÿ—บ๏ธ Roadmap

  • Flutter UI rewrite (v2.5.0)
  • Magic byte platform detection
  • CHD header parsing
  • Theme system
  • ROM Patcher (IPS, BPS, UPS, xdelta3, PPF and more)
  • ZIP / 7Z compression & extraction
  • ROM header removal (NES, SNES, GB/GBC)
  • M3U playlist generator
  • Wii U support (WUD / WUX)
  • Android support via Termux ๐Ÿค–
  • ROM Checker โ€” No-Intro DAT + RetroAchievements hash verification
  • ARM builds (Linux ARM64)

๐Ÿค Contributing

Contributions are welcome! Read CONTRIBUTING.md for guidelines on bug reports, feature requests, and pull requests.


๐Ÿ“„ License

OpenROM is licensed under the GNU General Public License v3.0 (GPL v3) โ€” a free, copyleft license approved by the Open Source Initiative.

โœ… Free to use personally and commercially
โœ… Free to study, modify, and distribute
โœ… Forks must remain open source under GPL v3
โœ… Listed on Flathub, Linux distros, and OSI-compliant repos

See LICENSE for the full license text.

About

Universal ROM Compression Suite for retro gaming. Convert PS1, PS2, Xbox, GameCube ISOs to CHD, CSO, ECM and more. Windows, Linux & macOS.

Topics

Resources

Contributing

Security policy

Stars

107 stars

Watchers

2 watching

Forks

Releases

Sponsor this project

Contributors

Languages