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

# What rom-weaver supports

rom-weaver works with game files you already have. It can change them, make them smaller, identify them, and test supported games.

The browser needs no account or installation. The CLI is the terminal version, useful for scripts and large jobs. Both process files on your device.

<!-- START doctoc -->
## Table of contents

- [Change a game](<#change-a-game>)
- [Check and prepare files](<#check-and-prepare-files>)
- [Play and manage saves](<#play-and-manage-saves>)
- [App and automation](<#app-and-automation>)

<!-- END doctoc -->

## 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.

## App and automation

| Feature | Support and limits |
| --- | --- |
| Offline use | The offline copy caches the app, every emulator core, and selected databases. Remote links and unselected databases need a connection. [Offline setup](<https://rom-weaver.com/docs/browser-settings.md#prepare-for-offline-use>). |
| Browser preferences | Theme, accent, language, byte units, guided help, output defaults, compression settings, and worker threads. [Settings](<https://rom-weaver.com/docs/browser-settings.md>). |
| Guided practice runs | Step-by-step cards for Apply, Create, Weave, Test, and the two cheat workflows, using homebrew practice files. Guided Apply waits for you to add files. [Guided practice runs](<https://rom-weaver.com/docs/guided-runs.md>). |
| Beta tools | Save Editor is behind the browser's beta setting. Trim, PPF Undo, and cheat tools in Apply, Create, and Identify are available without it. |
| Scripts and pipelines | The CLI has file selection, dry runs, standard input/output, JSON results, JSON event streams, shell completions, and man pages. [CLI reference](<https://rom-weaver.com/docs/cli.md>). |
| Hosting and integration | Static or Docker hosting, subpaths, URL-loaded ROMs and patches, weaves, and same-origin file integration. [Hosting](<https://rom-weaver.com/docs/self-hosting.md>), [integration](<https://rom-weaver.com/docs/webapp-integration.md>). |

There is no account, cloud synchronization, or ROM download library. The supplied [practice files](<https://rom-weaver.com/docs/guided-runs.md#practice-files>) are homebrew samples. [Privacy](<https://rom-weaver.com/docs/privacy.md>) lists storage and network behavior.
