Canonical: https://rom-weaver.com/weave-rom-patches

# Package multiple ROM patches into one weave | rom-weaver

Package multiple ROM patches, their order, and expected checksums into one weave locally in your browser, then optionally apply it with checksum validation. No uploads or account required.

[Open in browser](https://rom-weaver.com/weave-rom-patches)

[Documentation](https://rom-weaver.com/docs.md)

[Full guide](https://rom-weaver.com/docs/create-bundles.md)

## Choose what to include

Leave **Include ROM in weave** clear for a patch-only release. The archive contains the recipe, patches, and expected ROM checksums. Each user supplies the matching ROM.

Select **Include ROM in weave** only for a ROM you can redistribute, such as your own homebrew. Packaging does not grant redistribution rights.

Choose ZIP for broad compatibility, or 7z. This selects the recipe archive format, not the recipient’s patched ROM container.

## Build the patch recipe

1. Open [Weave](<https://rom-weaver.com/weave-rom-patches>).
2. Add the clean ROM and every patch. Add supported ROM cheats through **Add cheats to the patch order** when needed.
3. Put the patches in execution order. Drag a numbered handle, click it to choose a position, or focus it and use the arrow keys.
4. Open each patch's three-dot **Patch actions** menu → **Edit details**. Add a readable name and any description, version, and author users need.
5. Open **Checks** → **Add check** for a known input or output CRC32, MD5, SHA-1, or byte count. Input checks describe the expected bytes. Embedded output checks verify the standalone result, not a combined stack whose earlier patches changed the source. Never guess values.

Set each patch's input selector to the state its checks describe:

1. Keep **Automatic** to let the checks select the state. It then shows the detected state, such as **Original ROM (detected)**.
2. Choose **Original ROM** when the patch was made from the clean ROM.
3. Choose **Previous patch's result** when the patch was made from the result above it.
4. Choose **Output of** a named patch for a dependency. Keep that patch enabled and ordered before its dependent patch.

For discs, select the required track. Keep accumulated execution to continue that track's chain. Test optional switches after reopening the exported weave.

Keep an explicit input and its target on the same track. Cross-track recipes require the [CLI](<https://rom-weaver.com/docs/cli-apply.md>); the browser rejects them before applying.

To include a disc ROM, add an archive containing the disc sheet and every track. A loose CUE or GDI sheet cannot package its track files.

Leave each required patch **On**. Turn a genuine add-on **Off** to make it optional and off by default.

Built-in checks, such as BPS checksums, cannot be edited. Add only values from the author or your tested Original and Modified files.

Reorder only when the patch supports that input state. Test optional combinations as described below, including dependencies.

Each enabled ROM cheat becomes a separate patch at its chosen position. Recipients can toggle each cheat independently. Original patches keep their metadata and optional switches.

Cheat patches record the resolved ROM writes. Compare codes resolve against the enabled changes above them during export. Test optional combinations after reopening the archive.

<a id="turn-on-bundle-output-and-download-it"></a>

## Turn on weave output and download it

1. In the main **Weave** output step, enter the expected output name. It is also used to name the downloaded archive.
2. Choose **.zip** or **.7z** in its format selector.
3. Open **Options** and leave **Include ROM in weave** clear for a patch-only release.
4. Select **Share weave** and wait for the checks and download.
5. Save the archive. The control becomes **Download ZIP weave** or **Download 7z weave** for another copy.

Expand the secondary **Download this ROM** step to test the recipe. Its name and compression settings are shared with Weave: 7z selects a 7z weave; other Apply formats select ZIP. Recheck the Weave format before sharing.

On **Apply**, expand **Download the weave**. On **Create**, this appears in [Patches & cheats mode](<https://rom-weaver.com/docs/create-rom-patches.md#build-from-patches-and-cheats>).

For one patch instead, expand **Download a combined patch** on Apply or Weave.

Checksums verify content; a filename mismatch alone does not block Apply.

Weave creation runs preceding enabled changes when resolving ROM cheats. Download the patched ROM separately.

Files are read locally. Patch-only weaves contain ROM checksums, not ROM bytes.
