Trim a ROM from the CLI
Cut the padding off a ROM with rom-weaver trim, check the saving before you commit to it, and pad a trimmed file back out again.
See what would change
-n/--dry-run reports the planned size change without writing a trimmed output:
rom-weaver trim --input game.nds --dry-run
Write a trimmed copy
rom-weaver trim --input game.nds --output game-trimmed.nds
--extension names the copy from the input instead:
rom-weaver trim --input game.nds --extension trimmed.nds
For a GameCube or Wii disc, keep the default .rvz output name: this path converts the disc losslessly to RVZ without removing unused sectors. It requires a separate output and does not support restore markers.
--in-place rewrites the source file. Use it instead of pointing --output at a symlink or hard link to the input; output aliases are rejected even with --force. Keep a known-good copy first; a trimmed ROM is not always the file a patch expects.
Make the trim reversible
For NDS-family, GBA, and 3DS ROMs, write a separate copy with --revert-marker to record the original length and padding byte. XISO and RVZ conversion reject this option because rebuilding the disc cannot be reversed from a padding footer:
rom-weaver trim --input game.gba --output game-trimmed.gba --revert-marker
The footer stores one repeated byte, not a copy of the removed data. Exact restoration requires uniform removed padding. Keep the source when trimming NDS files whose removed area may contain other bytes. The fill byte is recorded before trimming, including with --in-place.
Put the padding back
rom-weaver trim --input game-trimmed.gba --output game.gba --revert
--revert works for NDS, GBA, and 3DS. XISO trimming and RVZ conversion do not support this operation. Without a footer from --revert-marker, the restored padding is reconstructed and may not be byte-identical.
Trim files inside an archive
trim opens archives for you and filters to ROMs by default:
rom-weaver trim --input games.zip
Each supported ROM is written beside the archive using its member filename and the trim extension. --output requires exactly one supported ROM. Conflicting output names are rejected before writing, including with --force.
--no-filter considers every member instead. A patch-only --filter is rejected.
Look up what is supported
Trim support lists every trim target and every flag alias. For whether to trim at all, see Choosing a compression format.