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

# rom-weaver: Online ROM Patcher & ROM Toolkit

Free online ROM patcher and toolkit: apply BPS, IPS, UPS and xdelta patches, convert discs to CHD or RVZ, identify dumps. Runs in your browser; no uploads.

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

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

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

## Change a game

| Feature | In plain words | Browser guide | CLI guide |
| --- | --- | --- | --- |
| Apply patches | Combine your game with someone else's changes, such as a translation. | [Apply](<https://rom-weaver.com/docs/apply-rom-patches.md>) | [Apply](<https://rom-weaver.com/docs/cli-apply.md>) |
| Create patches | Compare an original file with your edited file to make a patch. | [Create](<https://rom-weaver.com/docs/create-rom-patches.md>) | [Create](<https://rom-weaver.com/docs/cli-create.md>) |
| Ordered patches | Run several changes in order, with input and output checks when available. | [Patch order](<https://rom-weaver.com/docs/apply-rom-patches.md#apply-multiple-patches-in-order>) | [Patch chains](<https://rom-weaver.com/docs/cli-apply.md>) |
| Cheat codes | Bake supported codes into a ROM, or turn them into a patch. | [Cheats](<https://rom-weaver.com/docs/use-cheats.md>) | [Cheats](<https://rom-weaver.com/docs/bake-cheat-codes.md>) |
| Patch weaves | Package patches with their order, names, choices, and expected ROM checks. | [Weaves](<https://rom-weaver.com/docs/create-bundles.md>) | [Weaves](<https://rom-weaver.com/docs/cli-bundles.md>) |

Applying and creating have different format limits. The [patch format table](<https://rom-weaver.com/docs/supported-formats.md#patch-formats>) lists both, including Dreamcast DCP, which rebuilds a whole GD-ROM disc in the browser or the CLI.

Cheat support covers writes to the ROM. Codes that need live game memory cannot be baked. The [cheat reference](<https://rom-weaver.com/docs/cheat-database.md>) lists supported systems and matching limits.

## Check and prepare files

| Feature | In plain words | Browser guide | CLI guide |
| --- | --- | --- | --- |
| Identify | Match a file's fingerprint to a known game, region, and revision. Search by name or checksum without a file, too. | [Identify](<https://rom-weaver.com/docs/identify-roms-browser.md>) | [Identify](<https://rom-weaver.com/docs/identify-and-hash-files.md>) |
| Checksums | Calculate a fingerprint to compare two files, even if their names differ. | [Checksum a file](<https://rom-weaver.com/docs/checksum-roms-browser.md>) | [Hash files](<https://rom-weaver.com/docs/identify-and-hash-files.md#hash-a-file>) |
| Extract | Take files out of an archive or disc image. Nested archives are supported. | [Extract files](<https://rom-weaver.com/docs/extract-files-browser.md>) | [Extract files](<https://rom-weaver.com/docs/work-with-archives.md#extract-an-archive>) |
| Compress and convert | Put a ROM into a smaller container, or change its container. This does not port a game to another console. | [Extract or compress files in the browser](<https://rom-weaver.com/docs/convert-roms-browser.md>) | [Archives and disc images](<https://rom-weaver.com/docs/work-with-archives.md>) |
| Trim | Remove padding from supported files, or restore it. Padding is space around the useful data. | [Trim and restore padding](<https://rom-weaver.com/docs/trim-roms-browser.md>) | [Trim and restore padding](<https://rom-weaver.com/docs/cli-trim.md>) |
| Headers and byte order | Handle supported dump layouts so patches receive the bytes they expect. | [Resolve layout differences](<https://rom-weaver.com/docs/fix-checksum-errors.md#cartridge-header-differences>) | [Header options](<https://rom-weaver.com/docs/cli.md#header-and-byte-order-flags>) |
| M3U playlist | Write an `.m3u` for a multi-disc game, ordering discs from names such as `Disc 1` and `.disc02`, alone or in a ZIP with the discs. | Not in the browser | [Playlist](<https://rom-weaver.com/docs/cli-playlist.md>) |
| PPF undo | Restore bytes saved inside a PPF3 patch that includes undo data; unpack ROM and patch inputs and compress the restored output. | [Undo PPF](<https://rom-weaver.com/docs/undo-ppf-browser.md>) | [Tools](<https://rom-weaver.com/docs/cli.md#tools>) |

The browser's Extract tool downloads selected files, or several files as one ZIP. The CLI also creates archives from directories.

The [format reference](<https://rom-weaver.com/docs/supported-formats.md>) owns the complete container, codec, checksum, trim, and header tables. Reading a format does not imply creating it.

## Play and manage saves

| Feature | In plain words | Availability |
| --- | --- | --- |
| Test a ROM | Play a supported game or check a patched result with the built-in emulator. | [Browser only](<https://rom-weaver.com/docs/test-roms.md>); [supported systems](<https://rom-weaver.com/docs/supported-formats.md#browser-emulator-support>) |
| Store and export emulator saves | Keep progress in this browser and download a backup for another device. | [Browser only](<https://rom-weaver.com/docs/test-roms.md#export-and-restore-a-save>) |
| Edit a game save | Change supported properties in the game's saved progress, then download a separate copy. | [Browser](<https://rom-weaver.com/docs/edit-gen3-saves.md>) and [CLI](<https://rom-weaver.com/docs/cli-save.md>) |
| Create a game save | Make a fresh supported save, or use an existing save as a template. | [Browser](<https://rom-weaver.com/docs/create-game-saves-browser.md>) and [CLI](<https://rom-weaver.com/docs/create-game-saves-cli.md>) |

The [Save Editor reference](<https://rom-weaver.com/docs/game-save-support.md>) lists the exact games, layouts, fields, and generation limits. A game save and an emulator save state are different files. The editor does not edit save states.

Patching support, emulator support, cheat support, and save editing support are separate. A console can have patch support without a browser emulator or save editor.
