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:
rom-weaver — Apply ROM patches online
Apply ROM patches privately in your browser with automatic format detection, checksum validation, and ordered patch chains.
Source and downloads:
GitHub - rom-weaver/rom-weaver: Local-first toolkit for ROMs and disc images: inspect, extract, compress, and apply, create, or bundle patches. Offline via a browser service-worker PWA or CLI.
Local-first toolkit for ROMs and disc images: inspect, extract, compress, and apply, create, or bundle patches. Offline via a browser service-worker PWA or CLI. - rom-weaver/rom-weaver
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:
rom-weaver — Apply ROM patches online
Apply ROM patches privately in your browser with automatic format detection, checksum validation, and ordered patch chains.
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: