Supported formats
The authoritative support matrix for everything rom-weaver reads and writes: every patch format it can apply and create, every container and compressed disc image it can probe, extract, and build, the codecs available at create time, and the checksum, trim, and header capabilities that surround them.
Patch formats
All formats marked Apply also support probe/parse. DCP is a specialized Dreamcast apply workflow rather than a general single-file patch parser.
| Format | Aliases | Extensions | Apply | Create |
|---|---|---|---|---|
| IPS | none | .ips |
yes | yes |
| IPS32 | none | .ips32 |
yes | yes |
| SOLID | solidpatch, solid-patch |
.solid |
yes | yes |
| BPS | none | .bps |
yes | yes |
| UPS | none | .ups |
yes | yes |
| VCDIFF | vcdiff |
.vcdiff |
yes | yes |
| xdelta | xdelta3 |
.xdelta, .delta, .dat |
yes | yes |
| GDIFF | gdiff |
.gdiff, .gdf |
yes | yes |
| HDiffPatch/HPatchZ | hdiffpatch, hdiff, hpatch, hpatchz |
.hdiff, .hpatchz |
yes | no |
| APS (N64) | none | .aps |
yes | yes |
| APSGBA | aps-gba |
.apsgba |
yes | yes |
| RUP | none | .rup |
yes | yes |
| PPF | none | .ppf |
yes | yes |
| PAT | ffp, fireflower |
.pat, .ffp |
yes | yes |
| EBP | none | .ebp |
yes | yes |
| BDF/BSDIFF40 | bdf, bsdiff, bsdiff40 |
.bdf, .bsdiff, .bsdiff40 |
yes | yes |
| BSP | bspatch |
.bsp, .bspatch |
yes | no |
| MOD | pmsr |
.mod, .pmsr |
yes | yes |
| DLDI | none | .dldi |
yes | yes |
| DPS | none | .dps |
yes | yes |
| DCP | none | .dcp |
yes | no |
HDiffPatch directory patches (HDIFF19) are not supported; single-file
.hdiff and .hpatchz patches are supported. NINJA1 headers can be detected
but not applied, and PDS is unsupported.
Container and compression formats
For a shorter guide focused on everyday archive files, see Archive formats.
| Format | Aliases | Extensions | Probe | Extract | Create |
|---|---|---|---|---|---|
| ZIP | none | .zip |
yes | yes | yes |
| ZIPX | none | .zipx |
yes | yes | no |
| 7z | 7zip |
.7z |
yes | yes | yes |
| RAR | none | .rar |
yes | yes | no |
| TAR | none | .tar |
yes | yes | no |
| TAR.GZ | tgz |
.tar.gz, .tgz |
yes | yes | no |
| TAR.BZ2 | tbz2 |
.tar.bz2, .tbz2 |
yes | yes | no |
| TAR.XZ | txz |
.tar.xz, .txz |
yes | yes | no |
| Gzip | gzip |
.gz |
yes | yes | no |
| Bzip2 | bzip2 |
.bz2 |
yes | yes | no |
| XZ | lzma, lzma2 |
.xz |
yes | yes | no |
| Zstandard | zstd, zstandard |
.zst |
yes | yes | no |
| CSO | ciso |
.cso, .ciso |
yes | yes | no |
| PBP | none | .pbp |
yes | yes | no |
| CHD | chd-cd, chd-gd, chd-dvd, chd-raw, chd-hd, chd-av, chd-ld |
.chd |
yes | yes | yes |
| GCZ | none | .gcz |
yes | yes | no |
| WIA | none | .wia |
yes | yes | no |
| TGC | none | .tgc |
yes | yes | no |
| NFS | none | .nfs |
yes | yes | no |
| WBFS | none | .wbfs |
yes | yes | no |
| RVZ | none | .rvz |
yes | yes | yes |
| Z3DS | 3ds |
.z3ds, .zcci, .zcxi, .zcia, .z3dsx |
yes | yes | yes |
| XISO | none | .xiso, .xiso.iso |
no | yes | no |
XISO extraction rebuilds the detected XDVDFS filesystem as a normalized ISO;
detailed probe reports and XISO creation are not supported. CHD
parent/differential support exists in the Rust container API but is not exposed
as a native CLI flag. extract --split-bin affects CHD CD extraction only.
Create-time codecs
| Output | Supported --codec values |
|---|---|
| ZIP | store, deflate, zstd |
| 7z | lzma2 |
| RVZ | zstd |
| Z3DS | zstd |
| CHD | store, zlib, zstd, lzma, huff, flac, cdlz, cdzl, cdzs, cdfl, avhuff |
huffman aliases huff; avhu aliases avhuff. CHD accepts repeated codec
options for MAME-style codec lists.
Compression levels use these codec-aware profiles:
minvery-lowlowmediumhighvery-highmax
An explicit codec:level value overrides the global profile.
Checksum support
Supported algorithms are crc32, md5, sha1, sha256, blake3,
crc32c, crc16, and adler32.
Checksums can target source bytes, selected container payloads, or byte
ranges (--start/--length).
Known header and byte-order compatibility transforms appear as
checksum_variants, including raw, headerless, repaired-header, and N64 byte
orders. --no-trim-fix disables automatic trim-boundary variants.
Trim support
trim supports:
- NDS-family ROMs (
.nds,.dsi,.srl) - GBA ROMs (
.gba) - 3DS images (
.3ds) - XISO images (
.xiso,.xiso.iso, and probed XDVDFS.isofiles) - RVZ scrub candidates detected by the format recommendation
--in-place rewrites the source file; --output or --extension write the
trimmed copy elsewhere instead, and -n/--dry-run reports what would change
without writing anything.
--revert pads a trimmed file back out, and works for NDS, GBA, and 3DS. XISO
and RVZ scrub cannot be reverted. It also answers to --untrim and
--restore.
--revert-marker (also --reversible) embeds a small footer so a later revert
reproduces the original padding exactly rather than guessing at it; see the
footer format.
Header detection and repair
Probe, checksum, and patch apply recognize headers for A78, LNX, NES/FDS, SNES copier and SMC variants, PCE copier formats, Game Boy/GBA, Mega Drive, SMS/Game Gear, all N64 byte orders, NDS, Neo Geo Pocket, and MSX.
For format specifications and upstream implementations, see
references.md.