In short
- There is no unpatch function: an xdelta patch only stores how to go forward, not backward.
- The fix is prevention: tick Backup original file in Delta Patcher, or keep a verified clean copy in a separate folder.
- If you already overwrote your only copy, you’ll need to re-create the source (re-dump from your own media) — the same bytes, verified by checksum.
- A three-folder system (clean / work / output) makes recovery a 30-second copy operation.
Why there’s no “unpatch” button
An xdelta patch stores instructions for building the new file from the old one: “copy these bytes, insert this new data.” It deliberately does not store the reverse mapping — that would double the patch size for a feature almost nobody needs, since the original file is usually obtainable. xdelta3 can’t invert a patch, Delta Patcher can’t either, and no setting changes that. The entire recovery strategy is therefore: never lose the original in the first place.
The backup workflow (do this before every patch)
-
Verify your source once
Calculate the checksum and compare it with the value the patch author publishes. A verified file is the foundation everything else rests on — how to verify a source file.
-
Store a clean copy somewhere safe
Copy the verified file to a
clean/folder you never patch from. This is your master. It doesn’t change, ever. -
Patch a working copy
Copy
clean/→work/and patch the copy. In Delta Patcher, also tick Backup original file in the gear menu — belt and suspenders. Note the setting resets each launch, so check it every time. -
Name outputs clearly
Save results as
Game-patched-v1.2.isoor similar, in anoutput/folder. Future-you will thank present-you.
If you already overwrote your only copy
Don’t panic — the situation is recoverable, just slower. You need to reproduce the exact original bytes:
- Re-dump from your own media. Rip or dump the disc/cartridge again with the same tool and settings. Then verify the checksum against the published value — a re-dump that doesn’t match is no better than what you lost.
- Check every storage location. Emulator save folders, downloads, external drives, cloud backups — the original often survives somewhere you forgot.
- Do not “unpatch” by patching again. Applying another patch (or the same one) to an already-patched file produces garbage, not the original.
- Once recovered, set up the three-folder system so it never happens again.
Verifying the restored file
A restored file is only trustworthy if you check it. After recovering your original — from backup, re-dump or wherever — calculate its checksum and compare it with the value the patch author publishes (or the value you recorded when you first verified it). If it matches, you’re back to a known-good state and can patch again with confidence. If it doesn’t match, keep looking: an unverified “original” is how people end up debugging the same failure twice. The tools are in how to verify a source file.
When the patch author releases an update
A new version of a hack (v1.1 fixing v1.0’s bugs) is the most common reason people wish they could “unpatch”. The correct workflow:
- Start from your verified
clean/copy — never from the v1.0-patched output. - Apply the v1.1 patch to that clean copy.
- Test, then archive or delete the v1.0 output.
Applying v1.1 on top of v1.0 output is the stacked-patch mistake: the new patch’s copy-instructions point at clean-file byte positions, but they land on already-modified bytes. The result is corrupt even though every individual step “succeeded”. Clean base, every version, every time.
Special cases
Undoing one patch out of several
If you applied patches A then B and want only A’s result: start from clean/ and apply just A. There’s no way to subtract B from the A+B output.
What about save files?
Patching doesn’t touch saves (they live in the emulator, not the ROM), but a patched ROM that the emulator sees as a different game may not pick up the old save. Keep save backups before patching, especially when switching base versions.
Where did Delta Patcher put things?
With Backup original file on, the original is preserved and the patched file is saved alongside it (by default named like the original — see where Delta Patcher saves the patched file). Without it, the original is gone — which is why the setting matters.
Frequently asked questions
Can xdelta3 reverse a patch if I have the patched file?
No. Decoding needs the original as input; the patched output can’t substitute for it. The patch stores “how to build new from old” — without the old file, those instructions point at nothing.
I patched with Backup original file on. Where is my original?
Untouched, exactly where it was. The patched result was written alongside it (see where Delta Patcher saves the patched file). Your original never moved.
Can I unpatch to try a different hack on the same ROM?
You don’t need to “unpatch” — just start from your clean copy and apply the other hack’s patch to it. Keep one clean master and as many patched outputs as you like.
Does patching affect my save files?
Patching changes the ROM, not the save — saves live with the emulator. But back saves up anyway: if the patched ROM presents as a different game to the emulator, it may not pick up the old save automatically.