-
-
Notifications
You must be signed in to change notification settings - Fork 2
Patching Guide
OpenROM includes a full ROM patcher supporting 9 patch formats — no extra tools needed.
| Format | Systems | Notes |
|---|---|---|
| IPS | NES, SNES, GBA, most retro | Classic format |
| IPS32 | Large ROMs | IPS with 32-bit offsets |
| UPS | Universal | |
| BPS | Universal | Beat patch format |
| PPF | PS1 / PS2 | Disc patch format |
| APS (GBA) | Game Boy Advance | |
| APS (N64) | Nintendo 64 | |
| EBP | EarthBound / SNES | |
| DPS | DOS / PC | |
| xdelta3 | Large ROMs, disc images | VCDIFF format |
OpenROM auto-detects the patch format from the file extension — no manual selection needed.
- Go to the Patcher tab
- Drop your ROM file into the ROM zone
- Drop your patch file (.ips, .bps, .xdelta, etc.) into the patch zone
- Click Apply Patch
- Output file is saved next to your ROM
# Auto-detects patch format
openrom-core --patch "game.sfc" --patch-file "translation.ips"
xdelta patch (large files like PS2 ISOs)
openrom-core --patch "game.iso" --patch-file "mod.xdelta"
Force-apply even if checksum doesn't match
openrom-core --patch "game.sfc" --patch-file "hack.bps" --ignore-checksum
OpenROM verifies the ROM checksum before and after patching:
- Before — confirms you have the correct ROM version for the patch
- After — confirms the patch applied correctly
If the checksum doesn't match, OpenROM warns you before applying. You can force-apply with --ignore-checksum if you know what you're doing (e.g. patching an already-patched ROM).
"Checksum mismatch" warning
Your ROM version doesn't match what the patch expects. Common causes:
- Wrong region (e.g. using a EUR ROM with a USA patch)
- ROM is already patched
- ROM has a copier header — use Header Removal first, then patch
xdelta patch fails
Make sure the source ROM exactly matches what the patch was made for. xdelta patches are very sensitive to source file changes.
- ROMhacking.net — translations, bug fixes, hacks
- GBAtemp — especially for DS/3DS translations