ROM Patch Formats Explained
Patch files don’t contain a full game. They contain only the differences between a clean base ROM and the modified version. You apply a patch to the correct base ROM to create a new patched ROM.
Always use the patch format provided by the patch author. If patching fails, the most common reason is a base ROM mismatch (region/revision/header/checksum) — not the format itself.
IPS (.ips)
IPS is one of the oldest and most widely used ROM patch formats. It stores byte-level changes and works great for many retro consoles and smaller hacks/translations.
- Best for: older ROM hacks & translations
- Note: needs the exact base ROM; little built-in validation
BPS (.bps)
BPS is a newer format designed to improve on IPS. It often provides better efficiency and can include stronger checks to help ensure you’re using the correct base ROM.
- Best for: modern ROM hacks with validation
- Note: still requires correct base ROM (region/revision)
UPS (.ups)
UPS is a delta patch format that frequently includes checksum checks (like CRC) for integrity. It’s popular in certain ROM hacking communities and is used for both small and medium-sized changes.
- Best for: projects that use checksum validation
- Note: strict about using the expected base ROM
PPF (.ppf)
PPF (PlayStation Patch Format) is often used for disc image patching (commonly seen with older CD-based systems). It can be used for ISO/BIN workflows depending on the patch release.
- Best for: disc-based game patches (legacy scenes)
- Note: your disc image must match the patch’s expected version
XDELTA / VCDIFF (.xdelta / .vcdiff)
XDELTA (VCDIFF) is a powerful binary diff format. It’s often used for large changes or bigger files where IPS/BPS would be too limited or inefficient.
- Best for: big patches, large projects, larger ROM/disc files
- Note: very strict — base file must match exactly
ZIP of patches (.zip)
Some creators package patches inside a ZIP archive (for multiple versions, regions, or optional add-ons). If supported, you can select a ZIP and then choose the correct patch inside.
- Best for: bundles with multiple patch options
- Note: make sure the ZIP contains supported patch types
| Format | Common Use | Strict Base Match? | Notes |
|---|---|---|---|
| IPS | Classic hacks/translations | Yes | Old but common; limited validation |
| BPS | Modern hacks | Yes | Often more efficient; can include checks |
| UPS | Delta patches w/ checks | Yes | Common in some communities; CRC-style integrity |
| PPF | Disc image patches | Yes | Legacy format; often for older consoles |
| XDELTA/VCDIFF | Large/binary diffs | Very strict | Base file must match exactly |
If patching fails: (1) verify the base ROM region/revision, (2) try Auto-detect, (3) re-download the patch from the original source, (4) check if the patch expects a headered/unheadered ROM.
FAQ
Which patch format should I choose?
Use the one provided by the patch author. On RomPatcher.app, Auto-detect is recommended for most users.
My patch is IPS but it still fails — why?
Usually because the base ROM doesn’t match what the patch expects (region/revision/header/checksum). Try a clean ROM that matches the patch notes.
Is XDELTA the best format?
Not “best” for everything—just good for large diffs. It’s strict and requires an exact base file match.