xdelta and VCDIFF patch files
An .xdelta file is a VCDIFF patch as defined by RFC 3284, usually produced by the xdelta3 tool. It is a general-purpose binary delta format, not a ROM-specific one, which is why large romhacks favour it. You can apply xdelta patches here in your browser with no install.
- Extension
- .xdelta, .vcdiff, .xdelta3
- Identifier bytes
- 0xD6 0xC3 0xC4
- Verifies your ROM
- Yes
- Can change ROM size
- Yes
- Create on this site
- Apply only
- Common on
- Nintendo 64, GameCube, Wii, PlayStation, Large romhacks
Limitations
- This site can apply xdelta patches but cannot create them.
- Patches built with secondary compression are not supported.
How VCDIFF works
VCDIFF encodes a target file as a series of instructions over a source file: copy this run from the source, add these literal bytes, run this byte repeatedly. It is a general binary diff standard, used well outside romhacking, and it handles very large files efficiently.
Because the format is not tied to any console, it works equally on a 64 MB N64 ROM and a multi-gigabyte disc image. That generality is why it became the default for large projects.
Why some xdelta patches fail to apply
VCDIFF allows an optional secondary compressor layered on top of the delta data. The engine behind this site implements the core VCDIFF decoder but not those secondary decompressors, so a patch built with one fails with a clear error rather than producing a bad ROM.
xdelta3 -e -S none -s original.z64 modified.z64 patch.xdeltaIf you distribute xdelta patches and want them to work in browser patchers, that -S none flag is the one thing to remember.
Creating xdelta patches
This site applies xdelta patches but does not create them. For creating, use the official xdelta3 command line tool. If you only need to distribute a patch and are not tied to xdelta, BPS is a good alternative you can create right here.
Frequently asked questions
What does "not implemented: secondary decompressor" mean?
The patch was created with xdelta3’s optional secondary compression. The browser engine decodes standard VCDIFF but not those extra compression layers. Ask the author for a patch made with -S none, or use the xdelta3 command line tool.
Can I create an xdelta patch on this site?
No. You can apply xdelta patches here, but creating them requires the xdelta3 tool. If you are choosing a format for a new release, BPS can be created here and applies just as widely.
What is the difference between xdelta and VCDIFF?
VCDIFF is the file format defined in RFC 3284. xdelta3 is the program that produces it. People say "an xdelta patch" and "a VCDIFF patch" to mean the same file.
Why do big romhacks use xdelta instead of IPS?
IPS cannot address past 16 MB, which excludes N64, GameCube and disc-based games entirely. xdelta has no such limit and produces compact patches for large files.