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

# ROM Patcher Online: BPS, IPS, UPS, xdelta & PPF | rom-weaver

Apply BPS, IPS, UPS, xdelta, and other ROM patches online, including files in ZIP, 7z, or RAR archives. Add supported cheat codes. Process files locally with no uploads.

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

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

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

## Patch a ROM in four steps

1. Open the [online ROM patcher](<https://rom-weaver.com/apply-rom-patches>).
2. Drop your clean ROM and the IPS, BPS, UPS, or xdelta patch into **0x01 Inputs**.
3. Wait for checksumming, then open **Checks**. If the source does not match, [fix the checksum mismatch](<https://rom-weaver.com/docs/fix-checksum-errors.md>) first.
4. Select **APPLY & DOWNLOAD** and save the patched ROM. Your original stays untouched.

A `.bps`, `.ips`, or `.ups` file is a patch, not a game: an emulator cannot run it until you apply it to the ROM it was made for.

## What do you need?

You need the patch and your own copy of the exact game release it was made for. The files have different roles:

- **Original ROM:** the starting game file named by the patch author. Add it to Apply alongside the patch. Keep a clean copy.
- **Patch:** a file such as `.bps`, `.ips`, `.ups`, or `.xdelta` that describes changes to the original ROM.
- **Archive:** a ZIP, 7z, or RAR that can contain a ROM, a patch, or both. Its extension identifies the archive, not the patch format.
- **Output ROM:** the new game file created by applying the patch. You download it and play it in an emulator or on supported hardware.

Keep the patch author's notes open and check:

- the region, such as USA, Japan, or Europe;
- the revision, such as Rev 0 or Rev 1;
- the checksum and its algorithm;
- whether the ROM has a header;
- the order, when there is more than one patch.

Compare the checksum, not the filename; [how patching works](<https://rom-weaver.com/docs/how-patching-works.md#what-a-checksum-proves-and-what-a-filename-does-not>) explains why. Changing a patch's format does not fix a ROM mismatch. See [patch formats](<https://rom-weaver.com/docs/patch-formats.md>) or the [tool comparison](<https://rom-weaver.com/docs/comparisons.md#applying-a-patch>).

Without the source file, use **Identify by checksum or game name** below the empty drop zone or in **0x02 ROM**. Search a checksum, or choose a game, system, region, and revision. The card shows locally indexed checksums and size. This search appears only when a weave or patch has not already named the expected source.

Keep one clean original somewhere safe. rom-weaver writes a separate result, but a known-good copy makes updates and troubleshooting easier.

## Apply a Dreamcast DCP patch

1. Add the Dreamcast disc: its `.gdi` or GD-ROM `.cue` with every track file, a GD-ROM CHD, or a ZIP or 7z of them. A GD-ROM cue does not need density markers; Dreamcast self-boot and MIL-CD CD-Rs are not GD-ROMs.
2. Check that the disc matches the DCP author's required release. A DCP carries no checksums, so Apply cannot check it for you.
3. Add the `.dcp` as the only patch, with no cheats turned on. Its card targets the whole disc and has no track, header, or checks controls.
4. [Choose the output and apply](<#choose-the-output-and-apply>): CHD, ZIP, 7z, or the uncompressed disc.

rom-weaver rebuilds the disc's GD-ROM data track and keeps every other track as it was. If the card says the DCP must be applied on its own, remove or turn off the other patches and cheats. If it asks for a GD-ROM disc, add the disc instead of a single file. The [CLI DCP procedure](<https://rom-weaver.com/docs/cli-apply.md#apply-a-dreamcast-dcp-patch>) produces the same disc.

NINJA1 and PDS cannot be applied. See [support limits](<https://rom-weaver.com/docs/supported-formats.md#patch-formats>).

## If the ROM does not match

[Fix checksum errors](<https://rom-weaver.com/docs/fix-checksum-errors.md>) checks region, revision, archive selection, headers, byte order, patch order, and earlier edits. Do not bypass a mismatch to repair it.
