rom-weaver: patch authoring, validation, patch chains, and reproducible bundles

iN7h33nD

Newcomer
apply-patches-desktop-light.avif

screenshot of the guided first time apply tutorial


rom-weaver is a local patching and release tool that runs either in the browser or as a native CLI.

Web app:

Source and downloads:

I wrote it for workflows that don't fit cleanly into a single-format patcher. Examples include a translation followed by a bugfix and optional add-on, a patch buried in multiple archive layers, or a disc image that needs extraction and recompression. It also makes required header states and checksums explicit.

The current release supports 21 patch formats. It can apply and create IPS, BPS, UPS, xdelta/VCDIFF, PPF, RUP, APS, BSDIFF40, and less common formats. It can only apply DCP, BSP, and HDiffPatch.

Container support includes ZIP, 7z, RAR, CHD, RVZ, Z3DS, (CSO, PBP, WIA, WBFS, are all planned) and nested archives.

For someone applying a patch, the browser workflow is:

1. Add the clean ROM and patch files.
2. Review the detected platform, format, checksums, size, and header state.
3. Arrange multiple patches in order.
4. Choose a plain or compressed output.
5. Apply and download.

Try it with the project-owned homebrew demo:


For authors, the Create workflow generates a patch from Original and Modified files. The bundle workflow then records patch order, optional entries, version information, output naming, and checksums for the original input and final output. A public bundle can contain the patches and recipe while omitting the clean ROM entirely.

The CLI exposes the same engine for release scripts. Run the legal demo with these commands.

curl --fail --location \
--output first-weave.zip \
https://rom-weaver.com/first-weave.zip

rom-weaver weave \
--input first-weave.zip \
--output modified-rom.nes \
--no-compress

rom-weaver checksum \
--input modified-rom.nes \
--algo sha256

The expected SHA-256 is:

e0db7cbd02cccd5e83931e7974db94aaafe40327b2a33fdd4c83235c9880a90e

rom-weaver is AGPL-licensed beta software. It distributes no commercial ROMs or pre-patched games.

I'd appreciate compatibility reports from people maintaining translations, improvement patches, and multi-step releases. Include the patch and container formats and expected checksums, but don't send copyrighted game data.
 
Last edited:
Back
Top