Linux

Patching ROMs on Linux: GUI, AppImage, Flatpak and Terminal

Linux users get every option: Delta Patcher’s native GUI (as a binary, AppImage or Flatpak), the xdelta3 command line for scripting, and browser patchers for zero setup. Here’s how each works on Ubuntu, Fedora and Arch-based distros.

  • Updated
  • Checked against Delta Patcher 3.1.6
  • 4 min read
  • Verified against primary sources · how we check

In short

  • Easiest GUI: Delta Patcher as AppImage (runs anywhere) or Flatpak (Flathub).
  • Scripting: xdelta3 -d -s original patch.xdelta output after sudo apt install xdelta3 (or your distro’s equivalent).
  • Zero setup: a browser patcher works in Firefox and Chrome on any distro.
  • Same rules as everywhere: verify the source version before patching.

Option 1: Delta Patcher AppImage (simplest GUI)

The AppImage is a single file that runs on virtually any distribution — no installation, no dependencies, no root needed. Download it from the official releases, make it executable, and run it:

Terminal
chmod +x DeltaPatcher*.AppImage
./DeltaPatcher*.AppImage

From there it works exactly like the Windows build: Original file → your ROM, XDelta patch → the .xdelta file, tick Backup original file, click Apply patch. The full walkthrough is in how to use Delta Patcher.

Option 2: Flatpak from Flathub

If you prefer sandboxed, auto-updating apps, Delta Patcher is on Flathub. With Flatpak set up:

Terminal
flatpak install flathub io.github.marco_calautti.DeltaPatcher

One Flatpak quirk to know: sandboxed apps see a limited filesystem by default. If the file picker can’t see your ROMs, grant access to the folder holding them (via Flatseal or flatpak override), or keep your patching files somewhere the sandbox already sees, like your home directory.

Option 3: xdelta3 command line

For scripts, servers without a display, or just speed, the CLI is unbeatable. Install it from your distro’s repositories:

Installing xdelta3 by distribution
DistroInstall command
Ubuntu / Debian / Mintsudo apt install xdelta3
Fedorasudo dnf install xdelta3
Arch / Manjarosudo pacman -S xdelta3

Apply a patch (decode):

Apply a patch
xdelta3 -d -s "original.iso" patch.xdelta "patched.iso"

Create a patch (encode):

Create a patch
xdelta3 -e -s "original.iso" "modified.iso" patch.xdelta

Flags worth knowing: -d decode, -e encode, -s source file, -v verbose, -q quiet. A batch example — patch every ISO in a folder:

Batch patching (bash)
for f in *.iso; do
  base=$(basename "$f" .iso)
  xdelta3 -d -s "$f" "$base.xdelta" "$base-patched.iso"
done

Option 4: browser patcher

Any modern Linux browser runs online patchers and RomPatcher.js. Good for one-off patches on a machine where you can’t (or don’t want to) install anything — including Chromebooks running Linux apps.

Which should you pick?

Choosing a Linux patching method
SituationPick
Occasional patching, want buttonsDelta Patcher AppImage
Want updates via your app storeFlatpak from Flathub
Scripting, servers, batch jobsxdelta3 CLI
One quick patch, no installsBrowser patcher

Building Delta Patcher from source

You don’t need to — the releases cover every mainstream distro — but building is straightforward and documented upstream. On Ubuntu/Debian:

Build on Ubuntu/Debian
sudo apt install build-essential cmake git libgtk-3-dev
git clone --recurse-submodules https://github.com/marco-calautti/DeltaPatcher.git
cd DeltaPatcher
cmake -B build -DCMAKE_BUILD_TYPE=Release -DwxBUILD_SHARED=OFF
cmake --build build --config Release

The binary lands in build/app/. Fedora needs g++ make cmake git gtk3-devel instead of the apt line; the rest is identical.

What about Delta Patcher Lite?

Delta Patcher Lite is the minimal sibling: same XDelta engine, fewer options, smaller footprint. On Linux it’s handy for quick jobs or minimal window managers where you don’t want the full GUI. For regular use, the full build’s patch-info tooltip and backup options are worth it.

Verifying downloads on Linux

Checksums are the foundation of reliable patching, and Linux ships the tools:

Terminal — checksums
sha256sum "Game (USA).iso"
md5sum "Game (USA).iso"
sha1sum "Game (USA).iso"

Compare the output with the value the patch author publishes. For CRC32, install libarchive-zip-perl (Debian/Ubuntu) and use crc32, or use a GUI tool. Make verification a habit: check before patching, and check again after any re-dump or conversion. The full workflow is in how to verify a source file.

Linux-specific troubleshooting

  • AppImage won’t run: chmod +x first; on very new distros you may need libfuse2 installed.
  • Flatpak can’t see your files: filesystem sandboxing — grant access to the folder or move files into your home directory.
  • “Permission denied” writing output: you’re patching into a folder you don’t own (e.g. a mounted drive) — patch in your home directory instead.
  • Checksum errors: not Linux-specific — see fixing checksum mismatch.

Frequently asked questions

Which Linux distro is best for ROM patching?

Whichever you already use. Delta Patcher’s AppImage runs on virtually all of them, Flatpak covers the rest, and xdelta3 is in every major distro’s repositories. There’s no patching advantage to switching distros.

Can I patch on a Steam Deck?

Yes — it’s Arch Linux under the hood. The AppImage works in desktop mode; just make your ROM folder accessible and patch there, then point your emulator at the output.

Do I need Wine to run Windows patchers?

No. Every common patch format has a native Linux tool: Delta Patcher or xdelta3 for XDelta, and the alternatives page lists the rest. Wine is a workaround for a problem you don’t have.

Why does the Flatpak not see my ROMs?

Flatpak sandboxes filesystem access. Grant the app access to your ROM folder with Flatseal (a graphical permission manager) or the flatpak override command, or simply keep patching files in your home directory.

Continue learning

Sources and references