@rom-weaver/cli 0.15.1 → 0.16.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +40 -24
- package/docs/completions/_rom-weaver +1242 -644
- package/docs/completions/rom-weaver.bash +690 -109
- package/docs/completions/rom-weaver.elv +973 -576
- package/docs/completions/rom-weaver.fish +841 -536
- package/docs/completions/rom-weaver.ps1 +1006 -588
- package/docs/man/rom-weaver-bundle-create.1 +55 -8
- package/docs/man/rom-weaver-bundle-parse.1 +15 -6
- package/docs/man/rom-weaver-bundle-schema.1 +16 -7
- package/docs/man/rom-weaver-bundle.1 +15 -6
- package/docs/man/rom-weaver-cheat.1 +107 -0
- package/docs/man/rom-weaver-checksum.1 +21 -6
- package/docs/man/rom-weaver-completions.1 +15 -6
- package/docs/man/rom-weaver-compress.1 +23 -11
- package/docs/man/rom-weaver-extract.1 +23 -8
- package/docs/man/rom-weaver-formats.1 +15 -6
- package/docs/man/rom-weaver-identify-database-import-redump.1 +15 -6
- package/docs/man/rom-weaver-identify-database-install-all.1 +15 -6
- package/docs/man/rom-weaver-identify-database-install-group.1 +15 -6
- package/docs/man/rom-weaver-identify-database-install.1 +15 -6
- package/docs/man/rom-weaver-identify-database-list.1 +15 -6
- package/docs/man/rom-weaver-identify-database-path.1 +15 -6
- package/docs/man/rom-weaver-identify-database-remove.1 +15 -6
- package/docs/man/rom-weaver-identify-database-status.1 +15 -6
- package/docs/man/rom-weaver-identify-database-update.1 +15 -6
- package/docs/man/rom-weaver-identify-database.1 +15 -6
- package/docs/man/rom-weaver-identify.1 +27 -6
- package/docs/man/rom-weaver-man.1 +15 -6
- package/docs/man/rom-weaver-patch-apply.1 +64 -15
- package/docs/man/rom-weaver-patch-create.1 +33 -8
- package/docs/man/rom-weaver-patch-validate.1 +35 -7
- package/docs/man/rom-weaver-patch.1 +15 -6
- package/docs/man/rom-weaver-probe.1 +18 -6
- package/docs/man/rom-weaver-save-export-schema.1 +80 -0
- package/docs/man/rom-weaver-save-get.1 +83 -0
- package/docs/man/rom-weaver-save-identify.1 +80 -0
- package/docs/man/rom-weaver-save-inspect.1 +80 -0
- package/docs/man/rom-weaver-save-set.1 +89 -0
- package/docs/man/rom-weaver-save.1 +87 -0
- package/docs/man/rom-weaver-setup.1 +18 -6
- package/docs/man/rom-weaver-tools-ppf-undo.1 +16 -7
- package/docs/man/rom-weaver-tools.1 +15 -6
- package/docs/man/rom-weaver-trim.1 +24 -15
- package/docs/man/rom-weaver-weave.1 +64 -15
- package/docs/man/rom-weaver.1 +23 -8
- package/package.json +20 -13
package/README.md
CHANGED
|
@@ -1,28 +1,36 @@
|
|
|
1
|
-
<h1 align="center"><img src="packages/rom-weaver-webapp/src/assets/app/root/logo.svg" alt="rom-weaver logo" width="64" height="64" align="middle"> rom-weaver</h1>
|
|
2
|
-
|
|
3
1
|
<p align="center">
|
|
4
|
-
|
|
2
|
+
<a href="https://rom-weaver.com/apply">
|
|
3
|
+
<picture>
|
|
4
|
+
<source media="(max-width: 600px) and (prefers-color-scheme: dark)" srcset="packages/rom-weaver-webapp/design/readme-banner-mobile-dark.svg">
|
|
5
|
+
<source media="(max-width: 600px)" srcset="packages/rom-weaver-webapp/design/readme-banner-mobile.svg">
|
|
6
|
+
<source media="(prefers-color-scheme: dark)" srcset="packages/rom-weaver-webapp/design/readme-banner-dark.svg">
|
|
7
|
+
<img src="packages/rom-weaver-webapp/design/readme-banner.svg" alt="rom-weaver — Your ROM workflow. One toolkit. Patch, Compress, Extract, Convert, Cheat, Save Edit, Identify. rom-weaver.com." width="100%">
|
|
8
|
+
</picture>
|
|
9
|
+
</a>
|
|
5
10
|
</p>
|
|
6
11
|
|
|
7
|
-
|
|
12
|
+
Your ROM workflow. One toolkit.
|
|
13
|
+
|
|
14
|
+
Patch, compress, extract, convert, and identify ROMs and disc images. Bake in cheat codes and edit supported game saves in your browser or CLI. Play supported games in the browser with EmulatorJS.
|
|
15
|
+
|
|
16
|
+
Works offline in your browser or CLI. Your files stay on your device. No telemetry.
|
|
17
|
+
|
|
18
|
+
<p>
|
|
19
|
+
<a href="https://rom-weaver.com/apply-patches"><img alt="Open the webapp" src="https://img.shields.io/badge/Open_the_webapp-d9690f?logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0xNCAzaDd2N00yMSAzIDEwIDE0Ii8%2BPHBhdGggZD0iTTEwIDNINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMnYtNSIvPjwvc3ZnPg%3D%3D"></a>
|
|
20
|
+
<a href="https://github.com/sponsors/brandonocasey"><img alt="Sponsor on GitHub" src="https://img.shields.io/badge/Sponsor_on_GitHub-365d82?logo=githubsponsors&logoColor=white"></a>
|
|
21
|
+
<a href="https://ko-fi.com/brandonocasey"><img alt="Support on Ko-fi" src="https://img.shields.io/badge/Support_on_Ko--fi-365d82?logo=kofi&logoColor=white"></a>
|
|
8
22
|
<a href="https://www.npmjs.com/package/rom-weaver"><img alt="npm version" src="https://img.shields.io/npm/v/rom-weaver?logo=npm&logoColor=white&label=npm&color=d9690f"></a>
|
|
9
23
|
<a href="https://crates.io/crates/rom-weaver-cli"><img alt="crates.io version" src="https://img.shields.io/crates/v/rom-weaver-cli?logo=rust&logoColor=white&label=crates.io&color=d9690f"></a>
|
|
10
24
|
<a href="https://github.com/orgs/rom-weaver/packages/container/package/rom-weaver-cli"><img alt="Container images on GitHub Container Registry" src="https://img.shields.io/badge/ghcr.io-rom--weaver-d9690f?logo=docker&logoColor=white"></a>
|
|
11
25
|
<a href="https://github.com/rom-weaver/homebrew-tap"><img alt="Homebrew tap" src="https://img.shields.io/badge/homebrew-rom--weaver%2Ftap-d9690f?logo=homebrew&logoColor=white"></a>
|
|
26
|
+
<a href="https://github.com/rom-weaver/rom-weaver/actions/workflows/ci.yml"><img alt="CI status" src="https://img.shields.io/github/actions/workflow/status/rom-weaver/rom-weaver/ci.yml?branch=main&logo=githubactions&logoColor=white&label=CI&color=365d82"></a>
|
|
27
|
+
<a href="package.json"><img alt="Node.js 22 or newer" src="https://img.shields.io/badge/Node.js-22%2B-365d82?logo=nodedotjs&logoColor=white"></a>
|
|
28
|
+
<a href=".config/mise.toml"><img alt="Rust 1.97.1" src="https://img.shields.io/badge/Rust-1.97.1-2c323b?logo=rust&logoColor=white"></a>
|
|
29
|
+
<a href="LICENSE"><img alt="AGPL-3.0-or-later license" src="https://img.shields.io/badge/license-AGPL--3.0--or--later-365d82"></a>
|
|
12
30
|
</p>
|
|
13
31
|
|
|
14
|
-
<
|
|
15
|
-
|
|
16
|
-
<a href="package.json"><img alt="Node.js 22 or newer" src="https://img.shields.io/badge/Node.js-22%2B-4a6d63?logo=nodedotjs&logoColor=white"></a>
|
|
17
|
-
<a href=".config/mise.toml"><img alt="Rust 1.97.1" src="https://img.shields.io/badge/Rust-1.97.1-2c323b?logo=rust&logoColor=white"></a>
|
|
18
|
-
<a href="LICENSE"><img alt="AGPL-3.0-or-later license" src="https://img.shields.io/badge/license-AGPL--3.0--or--later-4a6d63"></a>
|
|
19
|
-
</p>
|
|
20
|
-
|
|
21
|
-
<p align="center">
|
|
22
|
-
<a href="https://rom-weaver.com/apply">Open the webapp</a>
|
|
23
|
-
· <a href="https://github.com/sponsors/brandonocasey">Sponsor on GitHub</a>
|
|
24
|
-
· <a href="https://ko-fi.com/brandonocasey">Support on Ko-fi</a>
|
|
25
|
-
</p>
|
|
32
|
+
<details>
|
|
33
|
+
<summary>Contents</summary>
|
|
26
34
|
|
|
27
35
|
<!-- START doctoc -->
|
|
28
36
|
|
|
@@ -41,13 +49,17 @@
|
|
|
41
49
|
|
|
42
50
|
<!-- END doctoc -->
|
|
43
51
|
|
|
52
|
+
</details>
|
|
53
|
+
|
|
44
54
|
## Install
|
|
45
55
|
|
|
46
56
|
Choose the [webapp](#webapp), [self-hosting](#self-hosting), or [CLI](#cli) path below.
|
|
47
57
|
|
|
48
58
|
## Webapp
|
|
49
59
|
|
|
50
|
-
Open [rom-weaver.com/apply](https://rom-weaver.com/apply). Add your ROM and patches, then download the result. Files are processed on your device. No install or account is needed.
|
|
60
|
+
Open [rom-weaver.com/apply-patches](https://rom-weaver.com/apply-patches). Add your ROM and patches, then download the result. Files are processed on your device. No install or account is needed.
|
|
61
|
+
|
|
62
|
+
For offline use, first cache the app and any needed identify packs, cheat databases, and emulator cores. Remote files still need a connection. See [offline behavior](docs/explanation/local-first.md#offline) and [privacy](docs/legal/privacy.md).
|
|
51
63
|
|
|
52
64
|
Start with [your first patch](docs/tutorials/first-patch.md) to practise on supplied homebrew files. The [browser guides](docs/README.md#in-the-browser) cover applying, creating, bundling, and testing ROM patches.
|
|
53
65
|
|
|
@@ -66,8 +78,7 @@ brew install rom-weaver/tap/rom-weaver
|
|
|
66
78
|
```
|
|
67
79
|
|
|
68
80
|
```bash
|
|
69
|
-
curl
|
|
70
|
-
https://raw.githubusercontent.com/rom-weaver/rom-weaver/main/install.sh | sh
|
|
81
|
+
curl -fsSL https://rom-weaver.com/install.sh | sh
|
|
71
82
|
```
|
|
72
83
|
|
|
73
84
|
```bash
|
|
@@ -81,6 +92,8 @@ Homebrew covers macOS arm64/Intel and Linux arm64/x86-64. The install script cov
|
|
|
81
92
|
|
|
82
93
|
Windows, Scoop, PowerShell, cargo-binstall, mise, Docker, shell completions, and building from source are all in [Install the CLI](./docs/how-to/install-cli.md).
|
|
83
94
|
|
|
95
|
+
All three methods above carry the identify and cheat databases, so they need no extra step. Methods that install only the executable - `cargo install`, `cargo binstall`, and `mise` - need `rom-weaver setup` afterwards to download that data, which `identify`, `probe --identify`, and cheat baking read.
|
|
96
|
+
|
|
84
97
|
Hitting `Permission denied`? See [File permissions](./docs/reference/cli.md#file-permissions).
|
|
85
98
|
|
|
86
99
|
The [development guide](./docs/development/development.md) covers the full toolchain setup, webapp builds, and tests.
|
|
@@ -100,12 +113,15 @@ The CLI and browser share one Rust engine. Browser workers and storage add costs
|
|
|
100
113
|
## Features
|
|
101
114
|
|
|
102
115
|
- **Apply and create patches.** Twenty-one formats, including IPS, BPS, UPS, xdelta/VCDIFF, PPF, RUP, BDF/BSDIFF40, APS, and DCP (Dreamcast), with ordered multi-patch chains, checksum validation when the format or bundle supplies expected values, and cheat-code baking. Three of them (DCP, BSP, and HDiffPatch) can only be applied, not created.
|
|
116
|
+
- **Play and test in the browser.** Run supported games with EmulatorJS, including patched output. Keep game saves and save states in browser storage, and import or export them. See [browser testing](docs/how-to/test-roms-in-browser.md) and [supported platforms](docs/reference/formats.md#browser-emulator-support).
|
|
117
|
+
- **Use cheat codes.** Select codes from the built-in database or enter your own. Bake supported ROM cheats into a game or export them as a patch. Codes that require runtime memory writes cannot be baked. See [browser cheats](docs/how-to/use-browser-cheats.md).
|
|
118
|
+
- **Edit supported game saves.** The beta Save Editor inspects and edits supported fields, validates checksums, and writes an edited copy. Game and layout support is specific; emulator save states are not editable game saves. See the [Save Editor reference](docs/reference/save-editor.md) and [CLI save guide](docs/how-to/cli-save.md).
|
|
103
119
|
- **Inspect and extract containers.** ZIP, 7z, RAR, the tar family, CHD, RVZ, Z3DS, CSO, PBP, GCZ, WIA, WBFS, and more, including nested archives.
|
|
104
120
|
- **Create format-specific compressed containers.** ZIP, 7z, CHD, RVZ, and Z3DS with codec-aware compression settings. CHD and RVZ outputs are checked for round-trip compatibility with chdman and dolphin-tool.
|
|
105
121
|
- **Checksum and verify.** CRC32, MD5, SHA-1, SHA-256, BLAKE3, and friends, with copier-header detection, header repair, and header-aware checksum variants.
|
|
106
|
-
- **Trim and restore.** Trimming for NDS, GBA, 3DS, XISO, and RVZ scrub. NDS, GBA, and 3DS can be
|
|
107
|
-
- **Share workflows.** Distributable [`rom-weaver-bundle.json`](./docs/rom-weaver-bundle-
|
|
108
|
-
- **Local-first and private.** Everything runs on your machine. The webapp is an installable PWA that works offline
|
|
122
|
+
- **Trim and restore.** Trimming for NDS, GBA, 3DS, XISO, and RVZ scrub. NDS, GBA, and 3DS can be padded back out. An optional footer records the original length and one padding byte; exact restoration has [limits](docs/how-to/cli-trim.md#make-the-trim-reversible).
|
|
123
|
+
- **Share workflows.** Distributable [`rom-weaver-bundle.json`](./docs/rom-weaver-bundle-v2.schema.json) bundles pin patch order, checksums, and output naming so others can replay the exact workflow.
|
|
124
|
+
- **Local-first and private.** Everything runs on your machine. The webapp is an installable PWA that works offline with cached assets. Your files are never uploaded, and rom-weaver sends no telemetry.
|
|
109
125
|
- **One engine, two frontends.** The same Rust core powers the terminal CLI and the threaded WASM webapp. CLI operation commands can emit line-delimited JSON for scripting.
|
|
110
126
|
|
|
111
127
|
The complete format, codec, and checksum compatibility tables are maintained in [Supported formats](./docs/reference/formats.md).
|
|
@@ -118,7 +134,7 @@ rom-weaver is beta software and follows Semantic Versioning, but until v1.0, bre
|
|
|
118
134
|
|
|
119
135
|
### First complete public release
|
|
120
136
|
|
|
121
|
-
v0.7.2 was the first complete public release. The changelog and the git history go back further, but v0.6.0 through v0.7.1 failed partway through the release pipeline or were only partially published. v0.7.1 completed most of the pipeline, but it still missed the crates.io CLI package, shipped a broken unscoped npm launcher, and built the static webapp archive with mismatched release metadata. Starting with v0.7.2, all public install methods were intended to work together. Install commands
|
|
137
|
+
v0.7.2 was the first complete public release. The changelog and the git history go back further, but v0.6.0 through v0.7.1 failed partway through the release pipeline or were only partially published. v0.7.1 completed most of the pipeline, but it still missed the crates.io CLI package, shipped a broken unscoped npm launcher, and built the static webapp archive with mismatched release metadata. Starting with v0.7.2, all public install methods were intended to work together. Install commands above resolve the current release unless you explicitly pin a version.
|
|
122
138
|
|
|
123
139
|
### LLM-assisted development
|
|
124
140
|
|
|
@@ -185,7 +201,7 @@ Start with the browser-first [documentation home](https://rom-weaver.com/docs) o
|
|
|
185
201
|
|
|
186
202
|
## Contributing and support
|
|
187
203
|
|
|
188
|
-
Bug reports and contributions are welcome. Read the [contribution guide](CONTRIBUTING.md) and [code of conduct](.
|
|
204
|
+
Bug reports and contributions are welcome. Read the [contribution guide](CONTRIBUTING.md) and [code of conduct](https://github.com/rom-weaver/rom-weaver?tab=coc-ov-file#readme) before submitting a change. Because rom-weaver is dual-licensed, code and documentation changes need a one-time signature on the [Contributor License Agreement](CLA.md). The `CLA Signed` check asks for it on your first pull request. One signature covers every repository in the [`rom-weaver` organization](https://github.com/rom-weaver) whose contribution process references the agreement. You keep the copyright in your work. Report suspected vulnerabilities through GitHub's private reporting form in the [security policy](.github/SECURITY.md). If rom-weaver has been useful to you, you can support continued development through [GitHub Sponsors](https://github.com/sponsors/brandonocasey) or [Ko-fi](https://ko-fi.com/brandonocasey).
|
|
189
205
|
|
|
190
206
|
## License
|
|
191
207
|
|