rom-weaver

Create a ROM patch in the browser

Give rom-weaver a clean ROM and your edited version. It downloads a patch that contains the differences, not a copy of the game.

Original is the clean, untouched game; Modified is your finished translation, fix, restoration, or hack. rom-weaver records what must change to turn one into the other, so the direction matters - swapping them creates a patch that undoes your work.

Never done this before? The guided Create tour runs the same workflow on two tiny homebrew ROMs.

Prepare a clean release pair

Finish and test the Modified file before making the patch. Remove accidental save data, debug edits, temporary text, and any change you do not intend to ship.

Keep the Original clean. Do not use the result of an earlier patch unless you are deliberately making an update that requires that earlier release.

Give both files clear names. You may add supported archives: Create extracts the selected ROM entries before comparing them. Check the selected entries so you do not compare a readme, save file, or wrong disc track.

Write down the region, revision, and header state now. The Create cards will show checksums you can copy into the release notes later.

Add Original and Modified

  1. Open Create.
  2. Drop both files onto 0x01 Inputs, or choose Add files and select them. If more ROM candidates are available than Create can use, choose the Original and Modified files from the list. Extra files are not staged after you choose. If both files appear to be the same ROM, confirm before using them as a pair. Add patches on Apply instead.
  3. Check the labels on 0x02 Original and 0x03 Modified.
  4. If they landed backwards, choose Swap between the two cards.
  5. Wait until reading and checksum work finishes.

Each card shows the selected file, size, detected system, and checksums. Open Checks to copy a value or to confirm the pair you meant to use.

Cropped Create workflow showing the Original and Modified homebrew sample cards in the light theme Cropped Create workflow showing the Original and Modified homebrew sample cards in the dark theme
Original is the clean starting file. Modified is the result your patch must rebuild.

If rom-weaver asks you to choose a file from an archive, stop and make sure you are comparing the ROM entries, not readmes, save files, or different disc tracks.

Choose a patch format

In 0x04 Output, give the download a useful filename and choose a format.

BPS is a strong default unless your community expects otherwise; Choosing a patch format compares the choices and their trade-offs. If you do publish IPS, put the Original's checksum prominently in the release notes - the format cannot carry it.

The format list in Create only offers formats rom-weaver can make for the files you selected.

Create and download the patch

  1. Enter a patch filename without an extension.
  2. Select the patch format.
  3. Open Options only when the chosen format has metadata or compression settings you need.
  4. Choose CREATE & DOWNLOAD PATCH.
  5. Save the browser download somewhere separate from your working files.
Cropped Create output card with patch name, BPS format, options, and CREATE & DOWNLOAD PATCH button in the light theme Cropped Create output card with patch name, BPS format, options, and CREATE & DOWNLOAD PATCH button in the dark theme
The output controls set the patch name, format, and format-specific options.

The browser reads both ROMs and creates the patch locally. None of those files are uploaded - see why your files stay on your device.

Test the downloaded patch

Your Modified file working does not prove the downloaded patch works. Test the artifact another person will receive:

  1. Open a fresh Apply page.
  2. Add a fresh copy of the documented Original.
  3. Add the patch you just downloaded.
  4. Confirm the card accepts the Original without a checksum warning.
  5. Choose APPLY & DOWNLOAD.
  6. Compare the result's checksum with the Modified checksum shown on Create.
  7. Launch the rebuilt result in the emulator or hardware you support.

Compare the same checksum algorithm on both files to check reconstruction, then play enough of the rebuilt game to test your changes. Reaching the title screen alone does not test the complete game.

Repeat the test for every supported optional-patch combination. Test from a clean browser page so loose files or old choices cannot hide a packaging mistake.

Write useful release notes

Tell users:

  • the game title, region, and revision;
  • the Original checksum and algorithm;
  • whether a cartridge header is required;
  • the disc image layout when applicable;
  • the patch format and release version;
  • the expected output checksum and algorithm;
  • the order for multiple patches;
  • which additions are optional and which combinations work;
  • what changed, who contributed, and where to report a problem.

Several patches are easier to use as one bundle, which carries the order, choices, checksums, patch files, and output settings so users do not have to copy them by hand. Continue with Create and share a patch bundle.

Release an update

Create every normal release from the same documented clean Original and the new Modified file. This gives new users one patch to apply.

Comparing version 1's patched result with version 2 makes an incremental update. It requires users to install version 1 first and in the exact expected state. That can be intentional, but say so clearly if you choose it.

For scripts or command-line publishing, use the CLI patch creation guide.