prevnext   » SZS: Wiimms SZS Toolset » wctct: Wiimms CT-CODE Tool

wctct: Wiimms CT-CODE Tool

Wiimms CT-CODE Tool : Manage the CT-CODE extension. BRRES, TEX0, CT-CODE, CT-TEXT and LE-BIN files are accepted as input.


1.   Syntax

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

2.   Features of wctct

Read »Features« for features of the whole toolset.

3.   Commands

VERSION V Print program name and version and exit.
HELP H Print help for commands and options.
CONFIG Show all information about the search for the configuration file and its content.
ARGTEST This debug command accepts all kinds of parameters and prints one line for each parameter. All tools know the ARGTEST command.
EXPAND This debug command accepts (like ARGTEST) all kinds of parameters and prints one line for each parameter. After that, the parameter is treated as a filename with wildcards and all matching files are searched. All tools know the EXPAND command.
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. All tools know the ERROR command.
FILETYPE FT Scan the header of the entered files and print file type and path for each file as list. Wildcards and pipe characters are parsed. All tools know the FILETYPE command.
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'). All tools know the FILEATTRIB command.
SYMBOLS Print predefined symbols of text parser to standard output. The CT-CODE specific symbols are included.
FUNCTIONS Print a list with all parser functions including the CT-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. Many tools know the CALCULATE command.
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.

D DUMP Print an information dump for the CT-CODE of each source file. BRRES, TEX0, CT-CODE, CT-TEXT and LE-BIN are accepted as input. Wildcards and pipe characters are parsed.
CAT Read the source files and print the CT-CODE part them as decoded text files to standard output. Wildcards and pipe characters are parsed. The output of all source files is concatenated. BRRES, TEX0, CT-CODE, CT-TEXT and LE-BIN are accepted as input.
BMG Read the source files and print a BMG message listing to standard output. BRRES, TEX0, CT-CODE, CT-TEXT and LE-BIN are accepted as input.
TRACKS Read the source files and print a track listing to standard output. BRRES, TEX0, CT-CODE, CT-TEXT and LE-BIN are accepted as input.
DECODE DEC Read the source files and decode them to CT-TEXT files. Wildcards and pipe characters are parsed. The default destination is '%P/%N.txt'. BRRES, TEX0, CT-CODE, CT-TEXT and LE-BIN are accepted as input.
CREATE C Read the source files, scan the CT-CODE part and create an output file controlled by the keyword. Wildcards and pipe characters are parsed. BRRES, TEX0, CT-CODE, CT-TEXT and LE-BIN files are accepted as input. Possible keywords are: CUP1, CRS1, r-MOD1, r-MOD2, r-OVR1, r-BAD1CODE, r-BAD1DATA (=r-CODE), r-TEX0, r-BRRES, r-SZS, BMG, TRACKS, LIST, REF and FULL. 'r' defines the region and is one of EU, RMCP, US, RMCE, JP, RMCJ, KO or RMCK.

The Korean support needs external CT-CODE files. Use option --ct-dir to define at least one search path.

PATCH P Read each source file, find and scan the CT-CODE part and patch it. Wildcards and pipe characters are parsed. BRRES, TEX0, CT-CODE, CT-TEXT and LE-BIN are accepted as input.

4.   Options in alphabetic order

Option Param Description
--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.

--allow-slots list Allow and disallow slots for automatic slot assigning. A comma separated list of slots (A), slot ranges (A:B) or keywords is expected. If preceded by a minus sign, the slots are disabled. The keywords are: TRACKS (slots 0:0x1f), ARENAS (0x20:0x29) and SPECIAL (0x36:0x3a). CTCODE is a short cut for ARENAS,SPECIAL.

The default is to enable slot ranges 0x00:0x1f, 0x2a:0x35, 0x3b:0x41 and 0x44:0xfe.

--bmg-colors Force output of '\c{color}' escape sequences with names, even for foreign (not MKWii) BMG files.
--bmg-encoding name Force an encoding for new BMG files. Accepted encoding names are CP-1252, UTF-16BE (or UTF-16), SHIFT-JIS, UTF-8 and AUTO for automatic detection (default). Same keywords without minus signs are accepted too.

Mario Kart Wii uses encoding UTF-16BE; the default if no other encoding is defined.

--bmg-endian name Force an endian for new BMG files. Accepted values are BIG or BE for big endian, LITTLE or LE for little endian and AUTO for automatic detection (default).

Mario Kart Wii uses big endian; the default if no other endian is defined.

--bmg-inf-size size Defines the 'INF1' size of new BMG files between 4 and 1000. The first 4 bytes of a INF1 record is an offset into the string pool and the remaining bytes the attributes. Maximal 40 attribute bytes are supported and additional bytes are assumed to be NULL. All BMG files of MKW have a size of 8.
--bmg-mid [mode] Control the creation of BMG section MID1. Suppress the creation, if mode is OFF. Force the creation, if mode is ON. On mode AUTO (default), the source is analysed for the decision.
-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.
--config file Define a configuration file or a directory as source. In later case, file 'wiimms-szs-tools.conf' is searched.

If option is not not set, then file 'wiimms-szs-tools.conf' is searched in different directories. Use command 'wszst CONFIG' to get more details.

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

--create-distrib file Create a LE-CODE distribution dump with a track list and more info about the current distribution. Store the dump info a file.
--crs1 value Store this value into all 8 members of the property array of the CRS1 header if reading a CT-TEXT. The default value is 0x800.
--ct-code Enable CT-CODE support.
--ct-dir dir Define a search directory for CT-CODE parts and use the internal copies only, if no valid file is found. Each file is searched without and then with extension '.bz2'. For both cases bzip2 files are detected and decompressed. Only files with correct file type are accepted.

wctct will search in the sub directory 'rmc[pujk]/' for files 'mod1.bin', 'mod2.bin', 'ovr1.bin' and 'bad1code.bin'.

Use this option multiple times to define more than one search directory.

--ct-log [=level] Define a log level for option --ct-dir. Without parameter, the current level is increased. Allowed keywords are: 0=0FF, 1=SUCCESS, 2=FOUND, 3=ALL
--de Use german track and arena names.
--def-attrib attrib Define the default attributes for BMG files. If not set, the default attributes are estimated. On text output, strings with default attributes are printed without attribute vector. The usual default attribute for MKW is [1].
-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.
-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. The option works similar like -HB for CT-CODE output.
-Y --extended-errors Enable extended error messages. This includes a source file and line reference. Logging level 1 activates it too. --xerr is a short cut.
--filter-bmg list If this option is set, the BMG messages are filtered by this list. Only enabled messages are exported to the output BMG file (binary or text).

The parameter is a list of message ids (short MID, 'Txx' or 'Uxx' or Mxx' or hex number) or message ranges (MID:MID) or one of the keywords NONE, IDENT (=ID), PARAM, CUPS, TRACKS, ARENAS, CHAT, CTCODE (=CT), CTUPS, CTTRACKS, CTARENAS, CTREFS, LECODE (=LE), LEUPS, LETRACKS, LEARENAS, LEREFS, XCODE (=X), XUPS, XTRACKS, XARENAS, XREFS, ALLCODE, ALLUPS, ALLTRACKS, ALLARENAS, ALLREFS, GENERIC or ALL. If an element is preceded by a minus sign, it is removed from the filter list (disabled).

With v2.01a, this option was renamed from --msg to the more meaningful name --filter-bmg. The old name is still available.

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


--force-attrib attrib Forces, that all attributes are set to this vector.
--full Cancel all previous --list and --rel and enter FULL mode for text output.

FULL mode is a combination of LIST and REF modes.

-h --help Stop parsing the command line, print a help message and exit.
--hex Normally and if available, names are printed for music and property slots. If this option is set, hex numbers are printed always.
-i --ignore Ignore non existing source files without warning.
--images dir If creating a CT-CODE BRRES or SZS file, then search the 8 strap images in the specified directory. The images are searched with extensions .png, .tex, .tex0 and without extension in this order until a valid image is found. All images will be resized to the correct width and height and converted to format TEX.RGB565 without mipmaps. If no valid image is found, a hard coded default image is used.
--in-order Process the input files in order of the command line and don't delete duplicates.
--le-04x Use format %04x instead of %03x for LE-CODE slots to enable uniform slot numbers if slots >4095 are used.
--le-code [=param] Enable LE-CODE and CT-CODE support. The optional parameter is deprecated and ignored.
--list Cancel all previous --rel and --full and enter LIST mode (default) for text output.

In LIST mode only a track list is generated. On scanning the tracks are automatically distributed to the cups. This makes rearanging very simple.

--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. Set it up to three times to be more verbose.
-l --long Print long numeric message IDs instead of alternative message names like Txx, Uxx or Mxx.
--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 (2 GiB for LTA); that should be enough for standard usage.
--max-width maxwidth Define the maximum terminal width (number of columns) for help and some other messages. The default is 120. This option is ignored if --width is set.
--no-attrib Suppress the output of any BMG attributes if creating BMG text files.
--no-bmg-colors If set, suppress the output of '\c{color}' escape sequences for colors definitions in BMG text output to be compatible with old versions of the tools.
--no-bmg-inline Print BMG attributes as separate line before the message definition to be compatible with versions until v1.39. The output for the standard value 0x01000000 is always suppressed. This was the default until v1.43.
-N --no-check Do not make plausibility checks for KCL and KMP files.
--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.
--no-pager Forbid the internal usage of a pager.
-P --no-param Disable parameter support in decoded KMP text files.
--no-wildcards Disable wildcard parsing and use each filename exactly as specified.
--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.
--old-escapes To be compatible with v1.43 and earlier, print 1A escape sequences with total size of >12 bytes as single words using \x{}. Also don't use \x{} and \u{} with parameter lists.
--old-spiny Disable the new feature to hold a Spiny Shell at the tail.
--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.
-p --preserve Preserve file times (atime+mtime) while converting or copying files.
-q --quiet Be quiet and print only error messages. Multiple use is possible. Previous use of --verbose is reverted. The impact is command dependent. If set at least three times, almost all error messages will be suppressed.
--raw Print BMG messages as UTF-8 text without escape sequences.
--ref Cancel all previous --list and --full and enter REFERENCE mode for text output.

In REFERENCE mode all tracks and cups are printed separately. After scanning the cup and track layout is the same as the original code file.

-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.
-1 --single-line If set, don't print continuation lines for BMG text output. If set twice, print only single text lines but not value lines.
-t --test Run in test mode, modify nothing.


--timing Activate the timing of some operations. Logging level 3 activates them too.
-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 use is possible. Previous use of --quiet is reverted. The impact is command dependent.
-V --version Stop parsing the command line, print a version info and exit.
-W --warn list Enable or disable warnings. Parameter 'list' is a comma separated list of keywords. A minus sign before a keyword disables a warning. Each occurrence of the option will only change entered warning and all other warnings are untouched.

Keyword DEFAULT resets the default settings, OFF disables and ALL enables all. The other allowed keywords are: INVALID-OFFSET.

--width width Define the terminal width (number of columns) for help and some other messages and disable the automatic detection of the terminal width.
--write-tracks file 'IDX>MID|NAME' is written for each track. --wtracks is a short cut.
--x-escapes Use \x{} escapes instead of \z{} escapes.
--xhelp Stop parsing the command line and print a help message with all commands included. Exit after printing.
-z --zero This option affects the exit status of the programs. Instead of an exit status, the value 0 is returned for OK. This happens for notices (-v, status<15), warnings (-vv, status<29), errors (-vvv, status<115) and fatal errors (-vvvv). The exit status for INTERRUPT (112) is never replaced.