Skip to content

OpenROM v3.0.0

Latest

Choose a tag to compare

@github-actions github-actions released this 22 Sep 08:02
· 4 commits to main since this release
43c059c

OpenROM v3.0.0 — Universal Retro Gaming Toolkit

OpenROM is a free, open-source, fully offline desktop toolkit for working
with retro game ROM and disc images. No accounts, no telemetry, no internet
required — everything runs locally on your machine.


✨ What's New in v3.0.0

🎮 Dreamcast Support

  • DCP Patch Applier — Apply Dreamcast patch files (.dcp) directly from
    the GUI or CLI, with full xdelta3 delta-patch support
  • IP.BIN Editor — Read and modify Dreamcast boot sectors: game title,
    region flags (Japan / USA / Europe), VGA mode, and Shift-JIS encoding
    support for Japanese titles
  • GDI Track Inspector — Load and inspect GDI disc image track structure
    in a clean data table

🗂️ ROM Renamer

  • Match and rename ROM files against No-Intro and Redump DAT files
  • CRC32-based matching with batch folder support
  • Streaming XML parser for large DAT files (hundreds of MB) without RAM spikes

🪄 New Format Support

  • NKit (.nkit.iso) — Nintendo GameCube / Wii disc images
  • WUD / WUX — Wii U disc images
  • SSP — Sega Saturn Patcher format support in the ROM Patcher

🛠️ Tools Additions

  • CUE Sheet Editor — Create and edit CUE sheets for multi-track disc images
  • Queue Manager — Manage and reorder conversion jobs before running them
  • Compression Preview — Preview output size estimates before compressing

🐛 Bug Fixes

  • Fixed CHD conversion using cdlz (CD-only codec) for DVD-based disc
    images (PS2, GameCube, Wii, Xbox) — now correctly uses createdvd with
    appropriate codecs
  • Fixed Saturn and Sega CD ISOs being routed to createdvd instead of
    createcd
  • Fixed save_config silently discarding I/O errors — now returns status
    and logs warnings
  • Fixed SyntaxError on Python 3.12+ caused by invalid escape sequence
    in docstring (\O)
  • Fixed race condition between convert_batch() and stop() causing the
    Stop button to be ignored between jobs
  • Fixed _stop_flag in Compressor not being thread-safe — replaced with
    threading.Event
  • Fixed broken DAT files being silently skipped during ROM Renamer scan —
    now surfaces warnings
  • Fixed dead code in GB/GBC header detection branch

🔒 Security

  • Zip Slip fix — DCP patch files are now validated against path
    traversal attacks before extraction
  • Bundled Linux/macOS binaries now ship with correct executable permissions
    (+x) — fixes Permission denied errors on fresh installs

⚡ Performance

  • ROM Renamer DAT loading now uses streaming iterparse() — no more RAM
    spikes with large No-Intro / Redump XML files
  • Sector mode detection in CUE generator now inspects actual sector headers
    instead of relying on file size alone

🌍 Localization

6 languages supported: English, Arabic, Spanish, French, Japanese,
Portuguese
— including the new Dreamcast screen


📦 Downloads

Platform File
🪟 Windows (Installer) OpenROM-v3.0.0-Setup.exe
🪟 Windows (Portable) OpenROM-v3.0.0_Windows_Portable.zip
🐧 Linux x86_64 OpenROM-v3.0.0_Linux_x86_64.zip
🐧 Linux ARM64 OpenROM-v3.0.0_Linux_arm64.zip
🍎 macOS Apple Silicon OpenROM-v3.0.0_macOS_arm64.zip
🍎 macOS Intel OpenROM-v3.0.0_macOS_x86_64.zip

SHA256 checksums are listed under each asset below.


🔧 CLI Quick Reference

# Detect ROM format
openrom-core --detect game.iso

# Convert to CHD
openrom-core --input game.iso --format CHD

# Batch convert folder
openrom-core --folder /roms/ --format CHD --compression Max

# Apply DCP patch
openrom-core --dcp patch.dcp --disc-dir /disc/ --output /out/

# Read IP.BIN
openrom-core --read-ipbin IP.BIN

# Edit IP.BIN
openrom-core --write-ipbin IP.BIN --region-free --set-vga

# List supported formats
openrom-core --list-formats

📋 Supported Formats

System Input Output
PS1 / Dreamcast / Saturn / Sega CD BIN/CUE, CHD CHD (createcd)
PS2 / GameCube / Wii / Xbox ISO, CHD CHD (createdvd), CSO, RVZ, XISO
PSP ISO CSO
GameCube / Wii NKit, WUD, WUX ISO, RVZ
Wii U WUD, WUX
Universal ZIP, 7Z ZIP, 7Z

Patch formats: IPS, IPS32, UPS, BPS, PPF, APS, EBP, DPS, xdelta3, SSP, DCP


OpenROM is licensed under GPL v3.
Built with Python + Flutter by M5 Dev 🇪🇬

Download OpenROM