@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.
Files changed (46) hide show
  1. package/README.md +40 -24
  2. package/docs/completions/_rom-weaver +1242 -644
  3. package/docs/completions/rom-weaver.bash +690 -109
  4. package/docs/completions/rom-weaver.elv +973 -576
  5. package/docs/completions/rom-weaver.fish +841 -536
  6. package/docs/completions/rom-weaver.ps1 +1006 -588
  7. package/docs/man/rom-weaver-bundle-create.1 +55 -8
  8. package/docs/man/rom-weaver-bundle-parse.1 +15 -6
  9. package/docs/man/rom-weaver-bundle-schema.1 +16 -7
  10. package/docs/man/rom-weaver-bundle.1 +15 -6
  11. package/docs/man/rom-weaver-cheat.1 +107 -0
  12. package/docs/man/rom-weaver-checksum.1 +21 -6
  13. package/docs/man/rom-weaver-completions.1 +15 -6
  14. package/docs/man/rom-weaver-compress.1 +23 -11
  15. package/docs/man/rom-weaver-extract.1 +23 -8
  16. package/docs/man/rom-weaver-formats.1 +15 -6
  17. package/docs/man/rom-weaver-identify-database-import-redump.1 +15 -6
  18. package/docs/man/rom-weaver-identify-database-install-all.1 +15 -6
  19. package/docs/man/rom-weaver-identify-database-install-group.1 +15 -6
  20. package/docs/man/rom-weaver-identify-database-install.1 +15 -6
  21. package/docs/man/rom-weaver-identify-database-list.1 +15 -6
  22. package/docs/man/rom-weaver-identify-database-path.1 +15 -6
  23. package/docs/man/rom-weaver-identify-database-remove.1 +15 -6
  24. package/docs/man/rom-weaver-identify-database-status.1 +15 -6
  25. package/docs/man/rom-weaver-identify-database-update.1 +15 -6
  26. package/docs/man/rom-weaver-identify-database.1 +15 -6
  27. package/docs/man/rom-weaver-identify.1 +27 -6
  28. package/docs/man/rom-weaver-man.1 +15 -6
  29. package/docs/man/rom-weaver-patch-apply.1 +64 -15
  30. package/docs/man/rom-weaver-patch-create.1 +33 -8
  31. package/docs/man/rom-weaver-patch-validate.1 +35 -7
  32. package/docs/man/rom-weaver-patch.1 +15 -6
  33. package/docs/man/rom-weaver-probe.1 +18 -6
  34. package/docs/man/rom-weaver-save-export-schema.1 +80 -0
  35. package/docs/man/rom-weaver-save-get.1 +83 -0
  36. package/docs/man/rom-weaver-save-identify.1 +80 -0
  37. package/docs/man/rom-weaver-save-inspect.1 +80 -0
  38. package/docs/man/rom-weaver-save-set.1 +89 -0
  39. package/docs/man/rom-weaver-save.1 +87 -0
  40. package/docs/man/rom-weaver-setup.1 +18 -6
  41. package/docs/man/rom-weaver-tools-ppf-undo.1 +16 -7
  42. package/docs/man/rom-weaver-tools.1 +15 -6
  43. package/docs/man/rom-weaver-trim.1 +24 -15
  44. package/docs/man/rom-weaver-weave.1 +64 -15
  45. package/docs/man/rom-weaver.1 +23 -8
  46. package/package.json +20 -13
@@ -4,7 +4,7 @@
4
4
  .SH NAME
5
5
  rom\-weaver\-trim \- Cut the padding off a ROM, or put it back
6
6
  .SH SYNOPSIS
7
- \fBrom\-weaver trim\fR [\fB\-\-json\fR] [\fB\-o\fR|\fB\-\-output\fR] [\fB\-\-progress\fR] [\fB\-e\fR|\fB\-\-extension\fR] [\fB\-\-no\-progress\fR] [\fB\-\-in\-place\fR] [\fB\-\-log\-level\fR] [\fB\-n\fR|\fB\-\-dry\-run\fR] [\fB\-v\fR|\fB\-\-verbose\fR]... [\fB\-q\fR|\fB\-\-quiet\fR] [\fB\-\-revert\fR] [\fB\-\-dep\-trace\fR] [\fB\-\-no\-recursive\fR] [\fB\-\-color\fR] [\fB\-\-filter\fR] [\fB\-\-no\-color\fR] [\fB\-\-no\-filter\fR] [\fB\-\-no\-extract\fR] [\fB\-y\fR|\fB\-\-yes\fR] [\fB\-\-revert\-marker\fR] [\fB\-j\fR|\fB\-\-threads\fR] [\fB\-\-force\fR] [\fB\-h\fR|\fB\-\-help\fR] <\fB\-i\fR|\fB\-\-input\fR>
7
+ \fBrom\-weaver trim\fR [\fB\-i\fR|\fB\-\-input\fR] [\fB\-n\fR|\fB\-\-dry\-run\fR] [\fB\-\-json\fR] [\fB\-o\fR|\fB\-\-output\fR] [\fB\-e\fR|\fB\-\-extension\fR] [\fB\-\-jsonl\fR] [\fB\-\-in\-place\fR] [\fB\-\-progress\fR] [\fB\-\-no\-progress\fR] [\fB\-\-revert\fR] [\fB\-\-log\-level\fR] [\fB\-\-no\-recursive\fR] [\fB\-\-filter\fR] [\fB\-v\fR|\fB\-\-verbose\fR]... [\fB\-\-debug\fR] [\fB\-\-no\-filter\fR] [\fB\-\-no\-extract\fR] [\fB\-q\fR|\fB\-\-quiet\fR] [\fB\-\-dep\-trace\fR] [\fB\-\-revert\-marker\fR] [\fB\-\-color\fR] [\fB\-j\fR|\fB\-\-threads\fR] [\fB\-\-force\fR] [\fB\-\-no\-color\fR] [\fB\-y\fR|\fB\-\-yes\fR] [\fB\-h\fR|\fB\-\-help\fR] [\fIFILE\fR]
8
8
  .SH DESCRIPTION
9
9
  Cut the unused padding off the end of a ROM, making the file smaller without
10
10
  changing what a console or emulator reads from it.
@@ -24,7 +24,7 @@ footer recording what was cut.
24
24
  File or folder to trim. Repeat for each one
25
25
  .TP
26
26
  \fB\-o\fR, \fB\-\-output\fR \fI<OUTPUT>\fR
27
- Where to write the trimmed file. Only valid with a single trimmable input
27
+ Output path; \- writes one completed binary file to stdout
28
28
  .TP
29
29
  \fB\-e\fR, \fB\-\-extension\fR \fI<EXTENSION>\fR
30
30
  Save next to each original under this extension. {ext} stands for the original one, as in trim.{ext}
@@ -32,17 +32,14 @@ Save next to each original under this extension. {ext} stands for the original o
32
32
  \fB\-\-in\-place\fR
33
33
  Overwrite the original instead of writing a new file
34
34
  .TP
35
- \fB\-n\fR, \fB\-\-dry\-run\fR
36
- Report what would be trimmed without writing anything
37
- .TP
38
35
  \fB\-\-revert\fR
39
36
  Pad a trimmed file back to full size. `\-\-untrim` and `\-\-restore` do the same
40
37
  thing.
41
38
 
42
- If the file carries a revert footer from an earlier \-\-revert\-marker run, the
43
- original is restored byte for byte. Otherwise the size is worked out from the
44
- ROM header (NDS and 3DS) or rounded up to the next power of two (GBA), which
45
- usually matches but is not guaranteed to.
39
+ A revert footer from an earlier \-\-revert\-marker run supplies the size and
40
+ padding byte. Without a footer, the size rounds up to the next power of two;
41
+ NDS also keeps the used\-data boundary from its header. Restoration does not
42
+ guarantee the original bytes.
46
43
 
47
44
  XISO and RVZ scrub cannot be reverted.
48
45
  .TP
@@ -69,7 +66,7 @@ Consider every file inside an archive, not just the ones that look like ROMs
69
66
  Do not look inside archives; trim only the files named directly
70
67
  .TP
71
68
  \fB\-\-revert\-marker\fR
72
- Add a small footer recording what was cut, so \-\-revert can restore the original exactly
69
+ Add a footer with the original size and a fill byte for \-\-revert
73
70
  .TP
74
71
  \fB\-j\fR, \fB\-\-threads\fR \fI<auto|N>\fR [default: auto]
75
72
  How many threads to use at most. auto uses every core; a format may still use fewer
@@ -79,19 +76,28 @@ Overwrite the output if it already exists (without this, the command stops inste
79
76
  .TP
80
77
  \fB\-h\fR, \fB\-\-help\fR
81
78
  Print help (see a summary with \*(Aq\-h\*(Aq)
79
+ .TP
80
+ [\fIFILE\fR]
81
+ File input; an alternative to \-i, \-\-input
82
82
  .SH "GLOBAL OPTIONS"
83
83
  .TP
84
+ \fB\-n\fR, \fB\-\-dry\-run\fR
85
+ Plan the command without changing files or downloading data
86
+ .TP
84
87
  \fB\-\-json\fR
85
- Print one JSON object per line instead of human\-readable output
88
+ Print one complete JSON report; progress and diagnostics use stderr
89
+ .TP
90
+ \fB\-\-jsonl\fR
91
+ Stream JSON events, including progress, one object per line
86
92
  .TP
87
93
  \fB\-\-progress\fR
88
- Show progress even when output is piped to a file or another program
94
+ Show progress on stderr (off by default; JSONL includes progress)
89
95
  .TP
90
96
  \fB\-\-no\-progress\fR
91
97
  Hide progress
92
98
  .TP
93
99
  \fB\-\-log\-level\fR \fI<LOG_LEVEL>\fR
94
- How much rom\-weaver logs to stderr. Separate from the normal output [default: off]
100
+ How much rom\-weaver logs to stderr. Separate from the normal output [default: warn]
95
101
  .br
96
102
 
97
103
  .br
@@ -112,10 +118,13 @@ trace
112
118
  .RE
113
119
  .TP
114
120
  \fB\-v\fR, \fB\-\-verbose\fR
115
- Log more: \-v for info, \-vv for debug, \-vvv for trace
121
+ Show user diagnostics on stderr; repeat for developer detail (\-vv debug, \-vvv trace)
122
+ .TP
123
+ \fB\-\-debug\fR
124
+ Show developer diagnostics and trace events on stderr (same as \-vvv)
116
125
  .TP
117
126
  \fB\-q\fR, \fB\-\-quiet\fR
118
- Log errors only
127
+ Hide optional diagnostics and progress; keep results, warnings, and errors
119
128
  .TP
120
129
  \fB\-\-dep\-trace\fR
121
130
  Also log trace output from bundled libraries (for bug reports)
@@ -4,7 +4,7 @@
4
4
  .SH NAME
5
5
  rom\-weaver\-weave \- Apply one or more patches to a ROM, in order (same as `patch apply`)
6
6
  .SH SYNOPSIS
7
- \fBrom\-weaver weave\fR [\fB\-\-json\fR] [\fB\-\-progress\fR] [\fB\-s\fR|\fB\-\-select\fR] [\fB\-\-no\-progress\fR] [\fB\-\-target\fR] [\fB\-\-filter\fR] [\fB\-\-log\-level\fR] [\fB\-\-no\-extract\fR] [\fB\-v\fR|\fB\-\-verbose\fR]... [\fB\-\-no\-ignore\fR] [\fB\-q\fR|\fB\-\-quiet\fR] [\fB\-\-dep\-trace\fR] [\fB\-\-patch\fR] [\fB\-\-color\fR] [\fB\-\-patch\-select\fR] [\fB\-\-no\-color\fR] [\fB\-o\fR|\fB\-\-output\fR] [\fB\-\-bundle\fR] [\fB\-y\fR|\fB\-\-yes\fR] [\fB\-\-with\fR] [\fB\-\-without\fR] [\fB\-\-no\-compress\fR] [\fB\-\-compress\-format\fR] [\fB\-\-compress\-codec\fR] [\fB\-\-compress\-level\fR] [\fB\-\-assume\-in\fR] [\fB\-\-expect\-in\fR] [\fB\-\-patch\-header\fR] [\fB\-\-patch\-basis\fR] [\fB\-\-output\-header\fR] [\fB\-\-repair\-checksum\fR] [\fB\-\-n64\-byte\-order\fR] [\fB\-\-ignore\-checksum\-validation\fR] [\fB\-\-expect\-out\fR] [\fB\-\-code\fR] [\fB\-\-code\-system\fR] [\fB\-\-code\-kind\fR] [\fB\-\-emit\-bundle\fR] [\fB\-\-tui\fR] [\fB\-j\fR|\fB\-\-threads\fR] [\fB\-\-force\fR] [\fB\-n\fR|\fB\-\-dry\-run\fR] [\fB\-h\fR|\fB\-\-help\fR] <\fB\-i\fR|\fB\-\-input\fR>
7
+ \fBrom\-weaver weave\fR [\fB\-n\fR|\fB\-\-dry\-run\fR] [\fB\-\-json\fR] [\fB\-s\fR|\fB\-\-select\fR] [\fB\-\-jsonl\fR] [\fB\-\-target\fR] [\fB\-\-filter\fR] [\fB\-\-progress\fR] [\fB\-\-no\-extract\fR] [\fB\-\-no\-progress\fR] [\fB\-\-log\-level\fR] [\fB\-\-no\-ignore\fR] [\fB\-\-patch\fR] [\fB\-v\fR|\fB\-\-verbose\fR]... [\fB\-\-debug\fR] [\fB\-\-patch\-select\fR] [\fB\-o\fR|\fB\-\-output\fR] [\fB\-q\fR|\fB\-\-quiet\fR] [\fB\-\-bundle\fR] [\fB\-\-dep\-trace\fR] [\fB\-\-color\fR] [\fB\-\-with\fR] [\fB\-\-no\-color\fR] [\fB\-\-without\fR] [\fB\-\-without\-cheats\fR] [\fB\-y\fR|\fB\-\-yes\fR] [\fB\-\-no\-compress\fR] [\fB\-\-compress\-format\fR] [\fB\-\-compress\-codec\fR] [\fB\-\-compress\-level\fR] [\fB\-\-assume\-in\fR] [\fB\-\-expect\-in\fR] [\fB\-\-patch\-header\fR] [\fB\-\-patch\-basis\fR] [\fB\-\-patch\-input\-check\fR] [\fB\-\-patch\-output\-check\fR] [\fB\-\-default\-patch\-basis\fR] [\fB\-\-output\-header\fR] [\fB\-\-repair\-checksum\fR] [\fB\-\-n64\-byte\-order\fR] [\fB\-\-ignore\-checksum\-validation\fR] [\fB\-\-expect\-out\fR] [\fB\-\-code\fR] [\fB\-\-code\-system\fR] [\fB\-\-code\-kind\fR] [\fB\-\-cheat\fR] [\fB\-\-cheat\-database\fR] [\fB\-\-cheat\-system\fR] [\fB\-\-game\fR] [\fB\-\-allow\-cheat\-conflicts\fR] [\fB\-\-emit\-bundle\fR] [\fB\-\-tui\fR] [\fB\-j\fR|\fB\-\-threads\fR] [\fB\-\-force\fR] [\fB\-h\fR|\fB\-\-help\fR] <\fB\-i\fR|\fB\-\-input\fR>
8
8
  .SH DESCRIPTION
9
9
  Apply one or more patches to a ROM, in order.
10
10
  .PP
@@ -38,9 +38,6 @@ cannot be combined with other patches or with the header and checksum options.
38
38
  \fB\-\-force\fR
39
39
  Overwrite the output if it already exists (without this, the command stops instead)
40
40
  .TP
41
- \fB\-n\fR, \fB\-\-dry\-run\fR
42
- Print the plan (inputs, patches, output, format, codec, level, threads) and stop without writing
43
- .TP
44
41
  \fB\-h\fR, \fB\-\-help\fR
45
42
  Print help (see a summary with \*(Aq\-h\*(Aq)
46
43
  .SH BASIC
@@ -56,7 +53,7 @@ Leave it out and rom\-weaver looks for RetroArch\-style patches sitting next to
56
53
  the ROM inside the input archive.
57
54
  .TP
58
55
  \fB\-o\fR, \fB\-\-output\fR \fI<OUTPUT>\fR
59
- Where to write the patched ROM. Optional when a bundle already names the output
56
+ Output path; \- writes one completed binary file to stdout
60
57
  .TP
61
58
  \fB\-\-no\-compress\fR
62
59
  Write a plain ROM instead of compressing the result
@@ -192,6 +189,9 @@ Turn on a bundle patch the bundle leaves off by default, matched by name or file
192
189
  .TP
193
190
  \fB\-\-without\fR \fI<GLOB>\fR
194
191
  Turn off a bundle patch, matched by name or file name (repeatable)
192
+ .TP
193
+ \fB\-\-without\-cheats\fR
194
+ Ignore every cheat the bundle records and run only its patch chain
195
195
  .SH COMPATIBILITY
196
196
  .TP
197
197
  \fB\-\-assume\-in\fR \fI<ALGO=HEX>\fR
@@ -253,7 +253,7 @@ auto
253
253
  Which ROM the preceding \-\-patch was built against, and so which one its
254
254
  checksums describe.
255
255
 
256
- auto Work it out from the checksums (the default).
256
+ auto Clear the shared rule and work it out from the checksums.
257
257
  base The original ROM. It is verified once up front, and the patch\*(Aqs own
258
258
  checks are skipped when it runs later in the chain.
259
259
  previous The output of the patch before it.
@@ -261,9 +261,27 @@ checksums describe.
261
261
  Reach for this when several patches in a chain were each written against the
262
262
  unmodified ROM rather than against each other.
263
263
 
264
- This flag must follow the \-\-patch it describes; it binds to the most recent
265
- \-\-patch and carries forward until the next occurrence. An occurrence before any
266
- \-\-patch applies to every patch.
264
+ This flag must follow the \-\-patch it describes and applies only to that patch.
265
+ Use \-\-default\-patch\-basis to set one rule for every patch.
266
+ .br
267
+
268
+ .br
269
+ \fIPossible values:\fR
270
+ .RS 14
271
+ .IP \(bu 2
272
+ auto
273
+ .IP \(bu 2
274
+ base
275
+ .IP \(bu 2
276
+ previous
277
+ .RE
278
+ .TP
279
+ \fB\-\-default\-patch\-basis\fR \fI<DEFAULT_PATCH_BASIS>\fR
280
+ Set one input ROM rule for every patch. An individual \-\-patch\-basis can override it.
281
+
282
+ base Every patch was made from the original ROM.
283
+ previous Each later patch was made from the previous result.
284
+ auto Infer the input ROM from checksums (the default).
267
285
  .br
268
286
 
269
287
  .br
@@ -345,6 +363,12 @@ byte\-swapped
345
363
  Apply the patch even when its own checksums do not match. Can produce a broken ROM
346
364
  .SH DIAGNOSTICS/AUTHORING
347
365
  .TP
366
+ \fB\-\-patch\-input\-check\fR \fI<ALGO=HEX>\fR
367
+ Expected input checks for the preceding patch (repeatable, comma\-separable)
368
+ .TP
369
+ \fB\-\-patch\-output\-check\fR \fI<ALGO=HEX>\fR
370
+ Expected output checks for the preceding patch (repeatable, comma\-separable)
371
+ .TP
348
372
  \fB\-\-expect\-out\fR \fI<ALGO=HEX>\fR
349
373
  Fail unless the patched ROM has this checksum, as in sha1=abc... (repeatable, comma\-separable)
350
374
  .TP
@@ -352,7 +376,7 @@ Fail unless the patched ROM has this checksum, as in sha1=abc... (repeatable, co
352
376
  Game Genie or GameShark/Pro Action Replay code to bake into the ROM. Repeat for each code
353
377
  .TP
354
378
  \fB\-\-code\-system\fR \fI<CODE_SYSTEM>\fR
355
- Console the \-\-code values are for (nes, snes, genesis, gameboy, gba, psx), when the ROM header does not say
379
+ Console the \-\-code values are for (nes, snes, genesis, 32x, sms, gamegear, sg1000, gameboy, gba, psx), when the ROM header does not say
356
380
  .TP
357
381
  \fB\-\-code\-kind\fR \fI<CODE_KIND>\fR [default: auto]
358
382
  Which cheat scheme the \-\-code values use: auto, game\-genie, gameshark/par, or xploder
@@ -362,23 +386,45 @@ Also write a rom\-weaver\-bundle.json recording this run, so someone else can re
362
386
  .TP
363
387
  \fB\-\-tui\fR
364
388
  Ask for each patch\*(Aqs name, version, and author, then apply and write a bundle. Needs a terminal
389
+ .SH CHEATS
390
+ .TP
391
+ \fB\-\-cheat\fR \fI<ID_OR_DESCRIPTION>\fR
392
+ Database cheat to use, by record ID or exact description. Repeat for each cheat
393
+ .TP
394
+ \fB\-\-cheat\-database\fR \fI<DIR>\fR
395
+ Directory holding manifest.json and the <system>.json cheat shards. Defaults to $ROM_WEAVER_CHEAT_DATABASE, then the per\-user data directory
396
+ .TP
397
+ \fB\-\-cheat\-system\fR \fI<SYS>\fR
398
+ Console the cheat shard is for (nes, snes, genesis, gameboy, gameboy\-color, gba), when the ROM header does not say
399
+ .TP
400
+ \fB\-\-game\fR \fI<ID>\fR
401
+ Use this database game ID instead of matching the ROM by checksum or title
402
+ .TP
403
+ \fB\-\-allow\-cheat\-conflicts\fR
404
+ Let a later cheat overwrite an earlier one at the same offset instead of failing
365
405
  .SH PERFORMANCE
366
406
  .TP
367
407
  \fB\-j\fR, \fB\-\-threads\fR \fI<auto|N>\fR [default: auto]
368
408
  How many threads to use at most. auto uses every core; a format may still use fewer
369
409
  .SH "GLOBAL OPTIONS"
370
410
  .TP
411
+ \fB\-n\fR, \fB\-\-dry\-run\fR
412
+ Plan the command without changing files or downloading data
413
+ .TP
371
414
  \fB\-\-json\fR
372
- Print one JSON object per line instead of human\-readable output
415
+ Print one complete JSON report; progress and diagnostics use stderr
416
+ .TP
417
+ \fB\-\-jsonl\fR
418
+ Stream JSON events, including progress, one object per line
373
419
  .TP
374
420
  \fB\-\-progress\fR
375
- Show progress even when output is piped to a file or another program
421
+ Show progress on stderr (off by default; JSONL includes progress)
376
422
  .TP
377
423
  \fB\-\-no\-progress\fR
378
424
  Hide progress
379
425
  .TP
380
426
  \fB\-\-log\-level\fR \fI<LOG_LEVEL>\fR
381
- How much rom\-weaver logs to stderr. Separate from the normal output [default: off]
427
+ How much rom\-weaver logs to stderr. Separate from the normal output [default: warn]
382
428
  .br
383
429
 
384
430
  .br
@@ -399,10 +445,13 @@ trace
399
445
  .RE
400
446
  .TP
401
447
  \fB\-v\fR, \fB\-\-verbose\fR
402
- Log more: \-v for info, \-vv for debug, \-vvv for trace
448
+ Show user diagnostics on stderr; repeat for developer detail (\-vv debug, \-vvv trace)
449
+ .TP
450
+ \fB\-\-debug\fR
451
+ Show developer diagnostics and trace events on stderr (same as \-vvv)
403
452
  .TP
404
453
  \fB\-q\fR, \fB\-\-quiet\fR
405
- Log errors only
454
+ Hide optional diagnostics and progress; keep results, warnings, and errors
406
455
  .TP
407
456
  \fB\-\-dep\-trace\fR
408
457
  Also log trace output from bundled libraries (for bug reports)
@@ -1,10 +1,10 @@
1
1
  .ie \n(.g .ds Aq \(aq
2
2
  .el .ds Aq '
3
- .TH rom-weaver 1 "rom-weaver 0.15.1"
3
+ .TH rom-weaver 1 "rom-weaver 0.16.1"
4
4
  .SH NAME
5
5
  rom\-weaver \- Inspect, extract, checksum, compress, trim, and patch ROMs and disc images
6
6
  .SH SYNOPSIS
7
- \fBrom\-weaver\fR [\fB\-\-json\fR] [\fB\-\-progress\fR] [\fB\-\-no\-progress\fR] [\fB\-\-log\-level\fR] [\fB\-v\fR|\fB\-\-verbose\fR]... [\fB\-q\fR|\fB\-\-quiet\fR] [\fB\-\-dep\-trace\fR] [\fB\-\-color\fR] [\fB\-\-no\-color\fR] [\fB\-y\fR|\fB\-\-yes\fR] [\fB\-h\fR|\fB\-\-help\fR] [\fB\-V\fR|\fB\-\-version\fR] <\fIsubcommands\fR>
7
+ \fBrom\-weaver\fR [\fB\-n\fR|\fB\-\-dry\-run\fR] [\fB\-\-json\fR] [\fB\-\-jsonl\fR] [\fB\-\-progress\fR] [\fB\-\-no\-progress\fR] [\fB\-\-log\-level\fR] [\fB\-v\fR|\fB\-\-verbose\fR]... [\fB\-\-debug\fR] [\fB\-q\fR|\fB\-\-quiet\fR] [\fB\-\-dep\-trace\fR] [\fB\-\-color\fR] [\fB\-\-no\-color\fR] [\fB\-y\fR|\fB\-\-yes\fR] [\fB\-h\fR|\fB\-\-help\fR] [\fB\-V\fR|\fB\-\-version\fR] <\fIsubcommands\fR>
8
8
  .SH DESCRIPTION
9
9
  Inspect, extract, checksum, compress, trim, and patch ROMs and disc images.
10
10
  .PP
@@ -22,17 +22,23 @@ Print help (see a summary with \*(Aq\-h\*(Aq)
22
22
  Print version
23
23
  .SH "GLOBAL OPTIONS"
24
24
  .TP
25
+ \fB\-n\fR, \fB\-\-dry\-run\fR
26
+ Plan the command without changing files or downloading data
27
+ .TP
25
28
  \fB\-\-json\fR
26
- Print one JSON object per line instead of human\-readable output
29
+ Print one complete JSON report; progress and diagnostics use stderr
30
+ .TP
31
+ \fB\-\-jsonl\fR
32
+ Stream JSON events, including progress, one object per line
27
33
  .TP
28
34
  \fB\-\-progress\fR
29
- Show progress even when output is piped to a file or another program
35
+ Show progress on stderr (off by default; JSONL includes progress)
30
36
  .TP
31
37
  \fB\-\-no\-progress\fR
32
38
  Hide progress
33
39
  .TP
34
40
  \fB\-\-log\-level\fR \fI<LOG_LEVEL>\fR
35
- How much rom\-weaver logs to stderr. Separate from the normal output [default: off]
41
+ How much rom\-weaver logs to stderr. Separate from the normal output [default: warn]
36
42
  .br
37
43
 
38
44
  .br
@@ -53,10 +59,13 @@ trace
53
59
  .RE
54
60
  .TP
55
61
  \fB\-v\fR, \fB\-\-verbose\fR
56
- Log more: \-v for info, \-vv for debug, \-vvv for trace
62
+ Show user diagnostics on stderr; repeat for developer detail (\-vv debug, \-vvv trace)
63
+ .TP
64
+ \fB\-\-debug\fR
65
+ Show developer diagnostics and trace events on stderr (same as \-vvv)
57
66
  .TP
58
67
  \fB\-q\fR, \fB\-\-quiet\fR
59
- Log errors only
68
+ Hide optional diagnostics and progress; keep results, warnings, and errors
60
69
  .TP
61
70
  \fB\-\-dep\-trace\fR
62
71
  Also log trace output from bundled libraries (for bug reports)
@@ -86,6 +95,9 @@ Identify a ROM title from its checksums
86
95
  rom\-weaver\-setup(1)
87
96
  Install the offline identify database
88
97
  .TP
98
+ rom\-weaver\-cheat(1)
99
+ List the cheat database\*(Aqs entries for a ROM
100
+ .TP
89
101
  rom\-weaver\-compress(1)
90
102
  Pack files into an archive, disc image, or ROM\-specific compressed format
91
103
  .TP
@@ -98,6 +110,9 @@ Apply, create, or check ROM patches
98
110
  rom\-weaver\-bundle(1)
99
111
  Build and read rom\-weaver\-bundle.json patch recipes
100
112
  .TP
113
+ rom\-weaver\-save(1)
114
+ Inspect and edit supported persistent game saves
115
+ .TP
101
116
  rom\-weaver\-tools(1)
102
117
  One\-off recovery tools
103
118
  .TP
@@ -133,4 +148,4 @@ Examples:
133
148
 
134
149
  Full guide: https://rom\-weaver.com/docs/cli
135
150
  .SH VERSION
136
- v0.15.1
151
+ v0.16.1
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@rom-weaver/cli",
3
- "version": "0.15.1",
3
+ "version": "0.16.1",
4
4
  "author": "Brandon Casey",
5
5
  "license": "AGPL-3.0-or-later",
6
- "description": "Local-first toolkit for ROMs and disc images: inspect, extract, compress, and apply, create, or bundle patches. Offline via a browser service-worker PWA or CLI.",
6
+ "description": "A command-line ROM toolkit: patch, compress, extract, convert, identify, bake in cheat codes, and edit supported game saves. No telemetry.",
7
7
  "keywords": [
8
8
  "rom",
9
9
  "rom-hack",
@@ -35,6 +35,7 @@
35
35
  "docs/man/rom-weaver-bundle-create.1",
36
36
  "docs/man/rom-weaver-bundle-parse.1",
37
37
  "docs/man/rom-weaver-bundle-schema.1",
38
+ "docs/man/rom-weaver-cheat.1",
38
39
  "docs/man/rom-weaver-checksum.1",
39
40
  "docs/man/rom-weaver-completions.1",
40
41
  "docs/man/rom-weaver-compress.1",
@@ -57,6 +58,12 @@
57
58
  "docs/man/rom-weaver-patch-create.1",
58
59
  "docs/man/rom-weaver-patch-validate.1",
59
60
  "docs/man/rom-weaver-probe.1",
61
+ "docs/man/rom-weaver-save.1",
62
+ "docs/man/rom-weaver-save-export-schema.1",
63
+ "docs/man/rom-weaver-save-get.1",
64
+ "docs/man/rom-weaver-save-identify.1",
65
+ "docs/man/rom-weaver-save-inspect.1",
66
+ "docs/man/rom-weaver-save-set.1",
60
67
  "docs/man/rom-weaver-setup.1",
61
68
  "docs/man/rom-weaver-tools.1",
62
69
  "docs/man/rom-weaver-tools-ppf-undo.1",
@@ -77,15 +84,15 @@
77
84
  "node": ">=22"
78
85
  },
79
86
  "optionalDependencies": {
80
- "@rom-weaver/darwin-arm64": "0.15.1",
81
- "@rom-weaver/darwin-x64": "0.15.1",
82
- "@rom-weaver/linux-arm64-musl": "0.15.1",
83
- "@rom-weaver/linux-ia32-musl": "0.15.1",
84
- "@rom-weaver/linux-x64-gnu": "0.15.1",
85
- "@rom-weaver/linux-x64-musl": "0.15.1",
86
- "@rom-weaver/win32-arm64-msvc": "0.15.1",
87
- "@rom-weaver/win32-ia32-msvc": "0.15.1",
88
- "@rom-weaver/win32-x64-msvc": "0.15.1"
87
+ "@rom-weaver/darwin-arm64": "0.16.1",
88
+ "@rom-weaver/darwin-x64": "0.16.1",
89
+ "@rom-weaver/linux-arm64-musl": "0.16.1",
90
+ "@rom-weaver/linux-ia32-musl": "0.16.1",
91
+ "@rom-weaver/linux-x64-gnu": "0.16.1",
92
+ "@rom-weaver/linux-x64-musl": "0.16.1",
93
+ "@rom-weaver/win32-arm64-msvc": "0.16.1",
94
+ "@rom-weaver/win32-ia32-msvc": "0.16.1",
95
+ "@rom-weaver/win32-x64-msvc": "0.16.1"
89
96
  },
90
97
  "scripts": {
91
98
  "docs:lint": "markdownlint-cli2",
@@ -108,9 +115,9 @@
108
115
  "@commitlint/config-conventional": "21.2.2",
109
116
  "cross-spawn": "7.0.6",
110
117
  "doctoc": "2.5.0",
111
- "lefthook": "2.1.12",
118
+ "lefthook": "2.1.14",
112
119
  "markdownlint-cli2": "0.23.2",
113
- "oxlint": "1.81.0",
120
+ "oxlint": "1.83.0",
114
121
  "tar": "7.5.22"
115
122
  }
116
123
  }