ROM Patch Formats Explained
A quick reference for the most common ROM patch formats and when you’ll encounter each one.
IPS
IPSInternational Patching System — the original and most widely supported format.
- Simple byte-offset diff format, dating back to the SNES era.
- Limited to files smaller than ~16 MB, which can be a problem for larger modern hacks.
- No built-in checksum, so applying it to the wrong ROM can silently corrupt the file.
UPS
UPSUniversal Patching System — adds checksum verification over IPS.
- Verifies both the source and resulting ROM with a CRC32 checksum.
- Rejects patching if your base ROM doesn't match what the patch expects.
- Common for SNES and GBA translation patches.
BPS
BPSBeat Patching System — a modern successor to UPS, popular for Pokemon hacks.
- Supports more efficient diffs and larger files than IPS.
- Includes checksum verification for source, target, and the patch itself.
- The de-facto standard for many contemporary ROM hacking communities.
xdelta
XDeltaA general-purpose binary diff/patch format, not ROM-hacking specific.
- Handles very large files well, making it common for DS, 3DS, and disc-based games.
- Not originally designed for ROM hacking, but widely adopted for larger projects.