rewrite help text
This commit is contained in:
+53
-24
@@ -89,28 +89,42 @@ When ACTION is given, newserv will do things other than running the server.\n\
|
|||||||
Some actions accept input and/or output filenames; see the descriptions below\n\
|
Some actions accept input and/or output filenames; see the descriptions below\n\
|
||||||
for details. If INPUT-FILENAME is missing or is '-', newserv reads from stdin.\n\
|
for details. If INPUT-FILENAME is missing or is '-', newserv reads from stdin.\n\
|
||||||
If OUTPUT-FILENAME is missing and the input is not from stdin, newserv writes\n\
|
If OUTPUT-FILENAME is missing and the input is not from stdin, newserv writes\n\
|
||||||
the output to INPUT-FILENAME.dec; if OUTPUT-FILENAME is '-', newserv writes the\n\
|
the output to INPUT-FILENAME.dec or a similarly-named file; if OUTPUT-FILENAME\n\
|
||||||
output to stdout. If stdout is a terminal, data written there is formatted in a\n\
|
is '-', newserv writes the output to stdout. If stdout is a terminal and the\n\
|
||||||
hex/ASCII view; otherwise, raw (binary) data is written there.\n\
|
output is not text, the data written to stdout is formatted in a hex/ASCII\n\
|
||||||
|
view; in any other case, the raw output is written to stdout, which (for most\n\
|
||||||
|
actions) may include arbitrary binary data.\n\
|
||||||
\n\
|
\n\
|
||||||
The actions are:\n\
|
The actions are:\n\
|
||||||
help\n\
|
help\n\
|
||||||
You\'re reading it now.\n\
|
You\'re reading it now.\n\
|
||||||
compress-prs [INPUT-FILENAME [OUTPUT-FILENAME]]\n\
|
compress-prs [INPUT-FILENAME [OUTPUT-FILENAME]]\n\
|
||||||
decompress-prs [INPUT-FILENAME [OUTPUT-FILENAME]]\n\
|
|
||||||
compress-pr2 [INPUT-FILENAME [OUTPUT-FILENAME]]\n\
|
compress-pr2 [INPUT-FILENAME [OUTPUT-FILENAME]]\n\
|
||||||
decompress-pr2 [INPUT-FILENAME [OUTPUT-FILENAME]]\n\
|
|
||||||
compress-bc0 [INPUT-FILENAME [OUTPUT-FILENAME]]\n\
|
compress-bc0 [INPUT-FILENAME [OUTPUT-FILENAME]]\n\
|
||||||
|
Compress data using the PRS, PR2, or BC0 algorithms. By default, the\n\
|
||||||
|
heuristic-based compressor is used, which gives a good balance between\n\
|
||||||
|
memory usage, CPU usage, and output size. For PRS and PR2, this compressor\n\
|
||||||
|
can be tuned with the --compression-level=N option, which specifies how\n\
|
||||||
|
aggressive the compressor should be in searching for literal sequences. The\n\
|
||||||
|
default level is 0; a higher value generally means slower compression and a\n\
|
||||||
|
smaller output size. If the compression level is -1, the input data is\n\
|
||||||
|
encoded in a PRS-compatible format but not actually compressed, resulting\n\
|
||||||
|
in valid PRS data which is about 9/8 the size of the input.\n\
|
||||||
|
There is also a compressor which produces the absolute smallest output\n\
|
||||||
|
size, but uses much more memory and CPU time. To use this compressor, use\n\
|
||||||
|
the --optimal option.\n\
|
||||||
|
decompress-prs [INPUT-FILENAME [OUTPUT-FILENAME]]\n\
|
||||||
|
decompress-pr2 [INPUT-FILENAME [OUTPUT-FILENAME]]\n\
|
||||||
decompress-bc0 [INPUT-FILENAME [OUTPUT-FILENAME]]\n\
|
decompress-bc0 [INPUT-FILENAME [OUTPUT-FILENAME]]\n\
|
||||||
Compress or decompress data using the PRS, PR2, or BC0 algorithms. When\n\
|
Decompress data compressed using the PRS, PR2, or BC0 algorithms.\n\
|
||||||
compressing with PRS or PR2, the --compression-level=N option (default 1)\n\
|
|
||||||
specifies how aggressive the compressor should be in searching for literal\n\
|
|
||||||
sequences. A higher value generally means slower compression and a smaller\n\
|
|
||||||
output size. If 0 is given, the data is PRS-encoded but not actually\n\
|
|
||||||
compressed, resulting in valid PRS data which is larger than the input.\n\
|
|
||||||
prs-size [INPUT-FILENAME]\n\
|
prs-size [INPUT-FILENAME]\n\
|
||||||
Compute the decompressed size of the PRS-compressed input data, but don\'t\n\
|
Compute the decompressed size of the PRS-compressed input data, but don\'t\n\
|
||||||
write the decompressed data anywhere.\n\
|
write the decompressed data anywhere.\n\
|
||||||
|
disassemble-prs [INPUT-FILENAME]\n\
|
||||||
|
disassemble-bc0 [INPUT-FILENAME]\n\
|
||||||
|
Write a textual representation of the commands contained in a PRS or BC0\n\
|
||||||
|
command stream. The output is written to stdout. This is mainly useful for\n\
|
||||||
|
debugging the compressors and decompressors themselves.\n\
|
||||||
encrypt-data [INPUT-FILENAME [OUTPUT-FILENAME] [OPTIONS...]]\n\
|
encrypt-data [INPUT-FILENAME [OUTPUT-FILENAME] [OPTIONS...]]\n\
|
||||||
decrypt-data [INPUT-FILENAME [OUTPUT-FILENAME] [OPTIONS...]]\n\
|
decrypt-data [INPUT-FILENAME [OUTPUT-FILENAME] [OPTIONS...]]\n\
|
||||||
Encrypt or decrypt data using PSO\'s standard network protocol encryption.\n\
|
Encrypt or decrypt data using PSO\'s standard network protocol encryption.\n\
|
||||||
@@ -122,23 +136,26 @@ The actions are:\n\
|
|||||||
For non-BB ciphers, the --big-endian option applies the cipher masks as\n\
|
For non-BB ciphers, the --big-endian option applies the cipher masks as\n\
|
||||||
big-endian instead of little-endian, which is necessary for some GameCube\n\
|
big-endian instead of little-endian, which is necessary for some GameCube\n\
|
||||||
file formats.\n\
|
file formats.\n\
|
||||||
encrypt-trivial-data [--seed=BASIS] [INPUT-FILENAME [OUTPUT-FILENAME]]\n\
|
encrypt-trivial-data --seed=BASIS [INPUT-FILENAME [OUTPUT-FILENAME]]\n\
|
||||||
decrypt-trivial-data [--seed=BASIS] [INPUT-FILENAME [OUTPUT-FILENAME]]\n\
|
decrypt-trivial-data [--seed=BASIS] [INPUT-FILENAME [OUTPUT-FILENAME]]\n\
|
||||||
Encrypt or decrypt data using the Episode 3 trivial algorithm. If BASIS is\n\
|
Encrypt or decrypt data using the Episode 3 trivial algorithm. When\n\
|
||||||
given, it should be specified as one hex byte. If BASIS is not given,\n\
|
encrypting, --seed=BASIS is required; BASIS should be a single byte\n\
|
||||||
newserv will try all possible values and return the one that results in the\n\
|
specified in hexadecimal. When decrypting, BASIS should be specified the\n\
|
||||||
greatest number of zero bytes in the output.\n\
|
same way, but if it is not given, newserv will try all possible basis\n\
|
||||||
|
values and return the one that results in the greatest number of zero bytes\n\
|
||||||
|
in the output.\n\
|
||||||
encrypt-gci-save CRYPT-OPTION INPUT-FILENAME [OUTPUT-FILENAME]\n\
|
encrypt-gci-save CRYPT-OPTION INPUT-FILENAME [OUTPUT-FILENAME]\n\
|
||||||
decrypt-gci-save CRYPT-OPTION INPUT-FILENAME [OUTPUT-FILENAME]\n\
|
decrypt-gci-save CRYPT-OPTION INPUT-FILENAME [OUTPUT-FILENAME]\n\
|
||||||
Encrypt or decrypt a character or Guild Card file. If encrypting, the\n\
|
Encrypt or decrypt a character or Guild Card file in GCI format. If\n\
|
||||||
checksum is also recomputed and stored in the encrypted file. CRYPT-OPTION\n\
|
encrypting, the checksum is also recomputed and stored in the encrypted\n\
|
||||||
is required; it can be either --sys=SYSTEM-FILENAME or --seed=ROUND1-SEED\n\
|
file. CRYPT-OPTION is required; it can be either --sys=SYSTEM-FILENAME\n\
|
||||||
(specified in hex).\n\
|
(specifying the name of the corresponding PSO_SYSTEM .gci file) or\n\
|
||||||
|
--seed=ROUND1-SEED (specified as a 32-bit hexadecimal number).\n\
|
||||||
salvage-gci INPUT-FILENAME [--round2] [CRYPT-OPTION] [--bytes=SIZE]\n\
|
salvage-gci INPUT-FILENAME [--round2] [CRYPT-OPTION] [--bytes=SIZE]\n\
|
||||||
Attempt to find either the round-1 or round-2 decryption seed for a\n\
|
Attempt to find either the round-1 or round-2 decryption seed for a\n\
|
||||||
corrupted GCI file. If --round2 is given, then CRYPT-OPTION must be given\n\
|
corrupted GCI file. If --round2 is given, then CRYPT-OPTION must be given\n\
|
||||||
(and should specify either a valid system file or the round1 seed).\n\
|
(and should specify either a valid system file or the round1 seed).\n\
|
||||||
find-decryption-seed <OPTIONS...>\n\
|
find-decryption-seed OPTIONS...\n\
|
||||||
Perform a brute-force search for a decryption seed of the given data. The\n\
|
Perform a brute-force search for a decryption seed of the given data. The\n\
|
||||||
ciphertext is specified with the --encrypted=DATA option and the expected\n\
|
ciphertext is specified with the --encrypted=DATA option and the expected\n\
|
||||||
plaintext is specified with the --decrypted=DATA option. The plaintext may\n\
|
plaintext is specified with the --decrypted=DATA option. The plaintext may\n\
|
||||||
@@ -146,7 +163,7 @@ The actions are:\n\
|
|||||||
operator), but overall it must be the same length as the ciphertext. By\n\
|
operator), but overall it must be the same length as the ciphertext. By\n\
|
||||||
default, this option uses PSO V3 encryption, but this can be overridden\n\
|
default, this option uses PSO V3 encryption, but this can be overridden\n\
|
||||||
with --pc. (BB encryption seeds are too long to be searched for with this\n\
|
with --pc. (BB encryption seeds are too long to be searched for with this\n\
|
||||||
function.) By default, the number of worker threads is equal the the number\n\
|
function.) By default, the number of worker threads is equal to the number\n\
|
||||||
of CPU cores in the system, but this can be overridden with the\n\
|
of CPU cores in the system, but this can be overridden with the\n\
|
||||||
--threads=NUM-THREADS option.\n\
|
--threads=NUM-THREADS option.\n\
|
||||||
decode-sjis [INPUT-FILENAME [OUTPUT-FILENAME]]\n\
|
decode-sjis [INPUT-FILENAME [OUTPUT-FILENAME]]\n\
|
||||||
@@ -167,7 +184,7 @@ The actions are:\n\
|
|||||||
GCI or VMS file, use the --seed=SEED option and give the serial number (as\n\
|
GCI or VMS file, use the --seed=SEED option and give the serial number (as\n\
|
||||||
a hex-encoded 32-bit integer). If you don\'t know the serial number,\n\
|
a hex-encoded 32-bit integer). If you don\'t know the serial number,\n\
|
||||||
newserv will find it via a brute-force search, which will take a long time.\n\
|
newserv will find it via a brute-force search, which will take a long time.\n\
|
||||||
disassemble-bin [INPUT-FILENAME [OUTPUT-FILENAME]]\n\
|
disassemble-quest-script [INPUT-FILENAME [OUTPUT-FILENAME]]\n\
|
||||||
Disassemble the input quest script (.bin file) into a text representation\n\
|
Disassemble the input quest script (.bin file) into a text representation\n\
|
||||||
of the commands and metadata it contains.\n\
|
of the commands and metadata it contains.\n\
|
||||||
cat-client ADDR:PORT\n\
|
cat-client ADDR:PORT\n\
|
||||||
@@ -185,6 +202,10 @@ The actions are:\n\
|
|||||||
Print the name of the item given by DATA (in hex). DATA must not contain\n\
|
Print the name of the item given by DATA (in hex). DATA must not contain\n\
|
||||||
spaces. If DATA is 20 bytes, newserv assumes it contains an unused item ID\n\
|
spaces. If DATA is 20 bytes, newserv assumes it contains an unused item ID\n\
|
||||||
field; if it is fewer bytes, up to 16 bytes are used.\n\
|
field; if it is fewer bytes, up to 16 bytes are used.\n\
|
||||||
|
encode-item DESCRIPTION\n\
|
||||||
|
Encode the description of an item into its corresponding ItemData (hex)\n\
|
||||||
|
representation. If DESCRIPTION contains spaces, it must be quoted, such as\n\
|
||||||
|
\"L&K14 COMBAT +10 0/10/15/0/35\".\n\
|
||||||
replay-log [INPUT-FILENAME] [OPTIONS...]\n\
|
replay-log [INPUT-FILENAME] [OPTIONS...]\n\
|
||||||
Replay a terminal log as if it were a client session. input-filename may be\n\
|
Replay a terminal log as if it were a client session. input-filename may be\n\
|
||||||
specified for this option. This is used for regression testing, to make\n\
|
specified for this option. This is used for regression testing, to make\n\
|
||||||
@@ -197,6 +218,14 @@ The actions are:\n\
|
|||||||
is treated as a prefix which is prepended to the filename of each file\n\
|
is treated as a prefix which is prepended to the filename of each file\n\
|
||||||
contained in the archive. If --big-endian is given, the archive header is\n\
|
contained in the archive. If --big-endian is given, the archive header is\n\
|
||||||
read in GameCube format; otherwise it is read in PC/BB format.\n\
|
read in GameCube format; otherwise it is read in PC/BB format.\n\
|
||||||
|
format-rare-item-set [--json] [INPUT-FILENAME]\n\
|
||||||
|
Print the contents of a rare item table in a human-readable format. If\n\
|
||||||
|
--json is given, the input is parsed as a JSON rare item set (see\n\
|
||||||
|
system/blueburst/rare-table.json for an example of this format). If --json\n\
|
||||||
|
is not given, the input is parsed as a REL rare item set.\n\
|
||||||
|
convert-itemrt-rel-to-json [INPUT-FILENAME [OUTPUT-FILENAME]]\n\
|
||||||
|
Convert a REL rare table to a JSON rare item set. The resulting JSON has\n\
|
||||||
|
the same structure as system/blueburst/rare-table.json.\n\
|
||||||
\n\
|
\n\
|
||||||
A few options apply to multiple modes described above:\n\
|
A few options apply to multiple modes described above:\n\
|
||||||
--parse-data\n\
|
--parse-data\n\
|
||||||
@@ -464,7 +493,7 @@ int main(int argc, char** argv) {
|
|||||||
} else if (!strcmp(argv[x], "decode-qst")) {
|
} else if (!strcmp(argv[x], "decode-qst")) {
|
||||||
behavior = Behavior::DECODE_QUEST_FILE;
|
behavior = Behavior::DECODE_QUEST_FILE;
|
||||||
quest_file_type = Quest::FileFormat::QST;
|
quest_file_type = Quest::FileFormat::QST;
|
||||||
} else if (!strcmp(argv[x], "disassemble-bin")) {
|
} else if (!strcmp(argv[x], "disassemble-quest-script")) {
|
||||||
behavior = Behavior::DISASSEMBLE_QUEST_SCRIPT;
|
behavior = Behavior::DISASSEMBLE_QUEST_SCRIPT;
|
||||||
} else if (!strcmp(argv[x], "cat-client")) {
|
} else if (!strcmp(argv[x], "cat-client")) {
|
||||||
behavior = Behavior::CAT_CLIENT;
|
behavior = Behavior::CAT_CLIENT;
|
||||||
|
|||||||
Reference in New Issue
Block a user