prevnext   » SZS: Wiimms SZS Toolset » wlect: Wiimms LE-CODE Tool

wlect: Wiimms LE-CODE Tool

Wiimms LE-CODE Tool : Manage the LE-CODE and LEX extensions.


1.   Syntax

wlect [option]... command [option|parameter|@file]...

2.   Features of wlect

Read »Features« for features of the whole toolset.

3.   Commands

VERSION Print program name and version and exit.
HELP H Print help for commands and options.
ARGTEST This debug command accepts all kinds of parameters and prints one line for each parameter.
TEST This debugging command accepts all options and parameters and prints a list of the internal option values. The command is designed to test the option parameters. The non option parameters are completely ignored.
COLORS Ignore all parameters and print colored text for testing.
ERROR ERR Translate an exit code to a message name. If no exit code is entered, print a table with all error messages.
FILETYPE FT Scan the header of the entered files and print file type and path for each file as list.
FILEATTRIB FA Print a table with attributes for all known file types. If at least one keyword is entered, only matching file types are printed. A keyword is either a file type (like 'BRRES' or 'BMG') or one of the printed keywords (like 'ARCHIVE' or 'EXTRACT').
SYMBOLS Print predefined symbols of text parser to standard output. The LE-CODE specific symbols are included.
FUNCTIONS Print a list with all parser functions including the LE-CODE specific functions. If one key ore more key entered, then only functions that match at least one key are printed.
CALCULATE Calculate each expression and print the result to standard output.
FLOAT This commands helps to convert hex values into floating point numbers and vice versa. For each non empty parameter, a line with 4 bytes hex and a float, 8 bytes hex and a double float, and the parameter itself is printed. If a parameter begins with 'x' or '0x', it is a hex string, otherwise it is a floating point number.

The special parameters "+" and "-" mean: Increment or decrement the previous value by the smallest possible value. Use different increments for floats and doubles.

All conversions are done using big endian.

DUMP D Print an information dump for each source file. LE-CODE binaries and LEX binaries are accepted as input.
DL Short cut for »DUMP --long«.
DLL Short cut for »DUMP --long --long«.
BIN-DIFF BINDIFF Compare parts of 2 different LECODE binary files. SETTINGS is a string with plus and minus signs to switch between plus/minus modes, and some key letters to select parts: s:size, h:header, t:timestamp, b:body, p:parameters, d:data, c:code and a:all. In plus-mode, a test is enabled, in minus-mode it is disabled. Scanning starts in plus-mode.

Example: a-t: compare all except timestamps.

The exist status is OK (0) if nothing differ, DIFFER (2) if at least one test failed, or an error code.

PATCH P Read each LE-BIN file and patch it. Use --le-define to setup cups and tracks.
LPAR Read each LE-BIN file and patch it. Then extract the LE-CODE parameters and store them as LPAR text file. Print the result to standard output if no other destination is defined.
CREATE CR Create a file and print it to standard output. The kind of file is defined by KEYWORD. Use command without keywords to get a list of possible keywords.

The following keywords are possible: LEX for a LEX text file with all known sections except TEST. LEX+ for a LEX text file with all known sections including TEST. SET1, CANN, HIPT and TEST (section names) for a LEX text file with 1 section only. LPAR for an example LE-CODE parameter file.

CAT Read the entered LEX and LE-CODE files (text, binary or szs) and print them as decoded text files to standard output. The output of all source files is concatenated.
DECODE DEC Read the entered LEX files (text or binary) and decode them to text files. The default destination is '%P/%N.txt'.
ENCODE ENC Read the entered LEX files (text or binary) and encode (compile) them to binary files. The default destination is '%P/%N.lex'.

4.   Options in alphabetic order

Option Param Description
--200cc [=mode] Enable or disable 200cc support. Mode is one of OFF, AUTO (default) or ON (default, if option is used without parameter). LE-CODE hasn't implemented this feature yet!
--alias list The parameter is a comma separated list of SLOT=ALIAS elements. SLOT defines the slot, for which the ALIAS is defined. ALIAS itself is a slot number to be executed, if SLOT is selected. Empty and invalid elements are ignored. Multiple usage is possible: the lists are concatenated.
--allow-all Usually commands accept only options with impact to the command. All other options fire a syntax error. But if --allow-all is set, all commands accept all options.

This makes changing the command of a long command line without removing useless options easier. It also helps to override wrong option permissions.

-B --brief Suppress cross reference comments.
--chdir dir Set a new working directory for all following options, for all parameters and for the command execution. This option can be used multiple times, but for parameter parsing and for command execution only the last usage is relevant. Nevertheless, '@param' values are scanned while reading the command line.
--colors [=modus] Define the modus for colored text output. Allowed keywords are: OFF or NO-COLORS to disable colors, AUTO (default) for automatic detection, ON for automatic detection but never OFF, 8-COLORS and 256-COLORS to force 8 or 256 color support. Without parameter, ON is used.

AUTO will enable colorized output only for terminals. AUTO and ON use environment variable TERM to find the correct color modus.

If a command is prefixed by 'C-', then --color=ON is used implicitly as default.

--compatible vers The option expects a version number (format '#.##' or 'v#.##') or a revision number (format 'r#') as parameter. If set, the tools try to create BMG and KMP text files, that are compatible to the entered version of the tools. This may override other legacy options.
-C --complete Append missing sections to the LEX file.
-c --const list Define constant values, that are used by the internal encoders and by the numeric options as predefined global variables. This option allows a conditional encoding of text files. It can be used multiple times for multiple definitions.

The parameter is a comma separated list of terms and a term is 'name=expression'. The expression is calculated by the text parser.

--copy-tracks directory Define a search directory for all included tracks. Files found in this directory are copied to the directory specified by option --track-dir.
--ct-code Enable CT-CODE support.
--custom-tt [=mode] Enable or disable time trial for custom tracks. Mode is one of OFF, AUTO (default) or ON (default, if option is used without parameter).
--de Use german track and arena names.
-d --dest path Define a destination path (directory/file). The destination - means: write to standard output.

The path may contain escape sequences: %Q is replaced by the fully qualified source name. %P and %F are replaced by the source path or by the filename. %N and %E are replaced by source filename without extension or by the source extension. Finally, %T is replaced by the default extension of the destination format.

A '?' direct behind '%' in %E and %T conversions avoid that the same extension is used twice in row.

-D --DEST path Like --dest, but create the directory path automatically.
--engine list Define probabilities for engine classes. LIST is a vector for 100cc,150cc,mirror If 200cc is enabled by --200cc, then vector is interpreted as 150cc,200cc,mirror. Any numbers are accepted. They are normalized to get a total of 100 percent. Use 0,1,0 to force 150cc only. Use 0,0,0 to reset to Nintendos VR based choice.
-E --esc char Define an alternative escape character for destination files. The default is '%'. For Windows batch files it is a good choice to set '-E$'.
-X --export Enable the export mode and create small and machine readable text files for easy post processing.
--force The tools analyse input files and reject files with invalid data structures. If --force is set, little repairable issues are ignored and a warning is printed.

Option »--kmp force« does the same, but only for KMP files.


-h --help Stop parsing the command line, print a help message and exit.
-i --ignore Ignore non existing source files without warning.
--le-code [=param] This option is completely ignored by wlect. It only exists due to compatibility with the other tools.
--le-define file Use this file as definition file to patch LE-CODE. The file format can be LE-BIN or any supported CT-CODE file (BRRES, TEX0, CT-CODE or CT-TEXT).
--lex-purge Delete LEX sections without any impact. This option is executed after all --lt-* options.
--load-bmg file Load immediately the file to fill an internal message pool. The option can be used multiple times to fill the message pool by different sources. A later message overrides the previous message.

The internal message pool is patched by all --patch-bmg options.

-L --logging This debug option enables the logging of internal lists and maps.
-l --long Print long numeric message IDs instead of alternative message names like Txx, Uxx or Mxx.
--lpar file Read a LPAR file to overwrite settings of LE-CODE section LPAR.
--lt-clear Clear LEX section TEST and remove the section if empty. This option is executed before all other --lt-* options.
--lt-cond-bit bitnum Set LEX/TEST parameter COND-BIT to this integer value. Use -1 to deactivate this COND-BIT. If needed, LEX section TEST are created or removed if empty.
--lt-engine mode Set LEX/TEST parameter ENGINE to this MODE. MODE is one of AUTO (default), BATTLE, 50CC, 100CC, 150CC, 200CC, 150M or 200M. Only track.szs files are modified. If needed, LEX section TEST is created or removed if empty.
--lt-game-mode mode Set LEX/TEST parameter GAME-MODE to this MODE. MODE is one of AUTO (default), Balloon, COIN, VERSUS or ITEMRAIN. If needed, LEX section TEST is created or removed if empty.
--lt-n-players offline,online Set LEX/TEST parameters N-OFFLINE and N-ONLINE to these integer values. If needed, LEX section TEST is created or removed if empty.
--lt-online value Set LEX/TEST parameter OFFLINE-ONLINE to this MODE. MODE is one of AUTO (default), NEVER or ALWAYS. If needed, LEX section TEST is created or removed if empty.
--lt-random index Force a random scenario, if between 1 and 8. Value 0 enables auto selection and -1 disables this option. If needed, LEX section TEST is created or removed if empty.
--macro-bmg file Load a BMG file and add the messages to the macro library; already existing entries are replaced. The macro library is accessed by escape sequence \m{MID} as fallback, if the active file has not already defined the message MID by itself.
-M --max-file-size size This security option defines the maximum file size for input files; larger files are ignored with a warning. The default unit is MiB and the default size is 100 MiB; that should be enough for standard usage.
--move-tracks directory Define a search directory for all included tracks. Files found in this directory are moved to the directory specified by option --track-dir. If moving fails, the file is copied and the source removed.
--move1-tracks directory Define a search directory for all included tracks. Files found in this directory are moved to the directory specified by option --track-dir, but only if a file has not more than one hard link. This guarantees an unique version of the file. If the file has more hard links or moving fails, the file is copied and the source removed.
--no-colors Deactive colorized text. This is the default, if an output file is not a terminal.
--no-echo Suppress output of @ECHO commands while scanning text files.
-H --no-header Suppress the syntax information section in BMG text files.
-P --no-param Disable parameter support in decoded KMP text files.
--number If a file already exist, append a number directly before the file extension to make the filename unique. If other numbered files already exist (ignoring case), use the maximum existing index+1. --num is a short cut.
--order-all Used together with option --order-by: Re-distribute the tracks of all cups beginning with Mushroom Cup.
--order-by bmg Load the BMG file and filter track names. Then before creating output files, re-distribute the tracks of the additonal cups (9-) to the same cups by the order of the read track names. Tracks without BMG reference are placed at the end of all tracks. This option modifes only the track order of the cups, but will not change any name.
-o --overwrite Overwrite already existing files without warning and ignore option --number.
--patch-bmg mode[cond][=param] This option specifies a BMG patch mode. Some of the modes need a parameter or a file name of a BMG patch file (raw or text BMG), both separated by an equal sign. Modes with required file names are PRINT, REPLACE, INSERT, OVERWRITE, DELETE, MASK, EQUAL and NOTEQUAL. Modes with text parameter are FORMAT, REGEXP and RM-REGEXP. Standalone modes are ID, ID-ALL, UNICODE, RM-ESCAPES, RM-CUPS, CT-COPY, CT-FORCE-COPY, CT-FILL, LE-COPY, LE-FORCE-COPY, LE-FILL, X-COPY, X-FORCE-COPY and X-FILL. Unique abbreviations are allowed.

The optional condition COND is either '?MID' or '!MID'. In case of '?MID', the patch is only applied if the message id MID already exists. In case of '!MID', the patch is only applied if the message id MID does not exists.

If this option is used multiple times, all patch files will be processed in the entered order.

--patch-names If set, the names of the CUP1 and CSR1 sections are patched by the loaded BMG files directly after loading the source files.
--perf-mon [=mode] Enable or disable the performance monitor. Mode is one of OFF, AUTO (default, don't change setting), ON (enable it for Wii only; default, if option is used without parameter) or FORCE (enable it for Wii and for Dolphin).
-p --preserve Preserve file times (atime+mtime) while converting or copying files.
-q --quiet Be quiet and print only error messages. Multiple usage is possible. The impact is command dependent. In general: If set three times, different file format warnings are suppressed.
-r --remove-dest Remove already existing files before creating it. If set, --overwrite is ignored. --rm-dest is a short cut.
--repair-magics [=mode] Control the reparing of missing or wrong magics of files and sub-files by analysing file path and file extension. MODE is one of OFF (default), ANALYZE or REPAIR (default, if set without mode). OFF disables this feature, ANALYZE enables it for analysis only, and REPAIR repairs all magics while reading the files. Keyword FNAME can be appended (separated by a comma) to give filename scanning the highest priority.


--round Print additional lines with rounded values (to 3 and 2 bytes for floats and 7 and 6 bytes for doubles).
--sections Print in machine readable sections and parameter lines.
-t --test Run in test mode, modify nothing.


--track-dir directory Define a destination directory, where track files are copied, moved or linked to. Usually it is .../Race/Course/.

Files are searched in directories defined by --copy-tracks, --move-tracks, --move1-tracks and --link-tracks in definition order. Already existing files are removed before operation.

-u --update Update only existing files and don't create new files. If set, --overwrite and --remove-dest are ignored.
-v --verbose Be verbose and print more progress information. Multiple usage is possible. The impact is command dependent.
-V --version Stop parsing the command line, print a version info and exit.
--width width Define the terminal width (number of columns) for help and some other messages and disable the automatic detection of the terminal width.
--xhelp Stop parsing the command line and print a help message with all commands included. Exit after printing.
--xpflags [=mode] Enable or disable support for Extended Presence Flags. Mode is one of OFF, AUTO (default) or ON (default, if option is used without parameter). Disable it only for tests!