aboutsummaryrefslogtreecommitdiff
path: root/project/templates
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--project/templates/DOCUMENTATION.txt35
-rw-r--r--project/templates/HISTORY-v0.txt784
-rw-r--r--project/templates/HISTORY-v1.txt1288
-rw-r--r--project/templates/HISTORY.txt396
-rw-r--r--project/templates/MILESTONES.txt153
-rw-r--r--project/templates/forums/mariokartwii.txt25
-rw-r--r--project/templates/module/features-de.forum6
-rw-r--r--project/templates/module/features-en.forum6
-rw-r--r--project/templates/module/features.txt13
-rw-r--r--project/templates/module/head.txt21
-rw-r--r--project/templates/module/last-history.txt33
11 files changed, 2760 insertions, 0 deletions
diff --git a/project/templates/DOCUMENTATION.txt b/project/templates/DOCUMENTATION.txt
new file mode 100644
index 0000000..941dd38
--- /dev/null
+++ b/project/templates/DOCUMENTATION.txt
@@ -0,0 +1,35 @@
+
+@@MODULE(head.txt)@@
+
+
+*******************************************************************************
+******* Motivation *********
+*******************************************************************************
+
+The motives for writing a new tool are simple:
+
+I want to automate the creation of SZS files. I need this for Custom Mario
+Kart Distributions.
+
+Visit @@URI-HOME@@ for more information.
+
+
+*******************************************************************************
+******* Features *********
+*******************************************************************************
+
+@@MODULE(features.txt)@@
+
+
+*******************************************************************************
+******* HISTORY *******
+*******************************************************************************
+
+For the complete history see file 'HISTORY.txt'. The last changes:
+
+@@MODULE(last-history.txt)@@
+
+
+*******************************************************************************
+******* END *******
+*******************************************************************************
diff --git a/project/templates/HISTORY-v0.txt b/project/templates/HISTORY-v0.txt
new file mode 100644
index 0000000..6bbc789
--- /dev/null
+++ b/project/templates/HISTORY-v0.txt
@@ -0,0 +1,784 @@
+
+@@MODULE(head.txt)@@
+
+
+*******************************************************************************
+******* HISTORY v0.* *******
+*******************************************************************************
+
+szs v0.01a.beta r2385 - 2011-03-31
+
+ - new Tool: wszst (Wiimms SZS Tool)
+ The following main commands are supported:
+ LIST, COMPRESS, DECOMPRESS, EXTRACT, CREATE.
+
+
+szs v0.01a r2392 - 2011-04-01
+
+ - Bug fix for "wszst CREATE": Wrong calculation of parent directory link.
+ - New option: wszst CREATE --align: Overwrite the default aligment (32=0x20).
+ - wszst LIST: If --long is set three times debugging mode is enabled.
+ - wszst LIST: If listing a directory, then a virtual SZS file is created
+ (like CREATE do it) and listed.
+ - New command: wszst DIFF: Compare two sources (each SZS, U8 or directory)
+ on file level and report mismatches for each sub file.
+
+
+szs v0.02a r2417 - 2011-04-04
+
+ - New option: --max-file-size: This options set the limit for input files.
+ The default value is 20 MiB.
+ - Option --dest: If the parameter is '-' the output is redirected to stdout.
+ - New tool: wbmgt: Wiimms BMG Tool
+ Commands:
+ - LIST : List a message file to proof the content.
+ - PATCH : Patch the entered text files.
+ - DECODE : Decode (and patch) the entered text files.
+ - ENCODE : Encode (and patch) the entered text files.
+
+
+szs v0.03a r2437 - 2011-04-06
+
+ - wszst: Compression algorithm improved: The compression is now about 40%-50%
+ faster than before.
+ - wszst: New option --compr=level: define a compression level between 0-9.
+ Three clear text parameters accepted too: NONE=0, FAST=1 and BEST=9.
+ - wszst: New option --fast: This is a short cut for --compr=fast. Usually
+ "CREATE --fast" needs about 1/4 of time, but creates ~25% larger SZS files.
+ - New command: wszst CAT: Extract one or more sub files of SZS/U8 archives.
+ The output is written to stdout. Multiple outputs are concatenated.
+ - New command: wbmgt DIFF: Compare two BMG (raw or text) file on string level
+ and report mismatches for each string.
+ - wbmgt --patch: new mode: HIDE
+ - wbmgt is able to read BMG files directly from a SZS file. Just use a
+ combined path as 'my.szs/message/Common.bmg'
+ - new option: --ignore: Ignore non existing source files without warning.
+
+
+szs v0.04a r2457 - 2011-04-09
+
+ - SZS compression improved: It uses now overlaps and save about 2% size.
+ With more complicated algorithm (that needs much more time) better
+ compression is possible -- but it's not worth it.
+ - wszst LIST --long: View the magic (first 4 bytes) of each file too.
+ - wszst can list, diff, (de-)compress and extract SZS.BRRES files.
+ - wbgmt: Bug fix: Wrong string end detection for the last message if
+ scanning Nintendos 0x1a (CTRL-Z, ASCII 'SUB') escape sequences.
+ - BGM/TEXT format: Allow \z{head,value} for Nintendos 0x1a escape sequence.
+ - Bug fix for wszst+wbmgt DIFF: Some files only in source #2 were not listed.
+ - New command: wszst NORMALIZE: resort and recompress an U8 archive.
+ - New option: wszst --norm: Force normalization while copying/converting.
+ - Many layout things.
+
+
+szs v0.05a r2498 - 2011-04-15
+
+ - Code view & fine tuning (many little things...)
+ - wszst NORMALIZE: Bug fixed if source does not contain a "." directory.
+ - wszst CREATE+NORMALIZE: The files are ordered like Nintendo does it.
+ - New command: wszst SHA1: calculate and print the SHA1 checksum of
+ the decompressed data of all source files.
+ - wszst+wbmgt DIFF: If option --dest is set then all sources are compared
+ with the destination.
+ - New option: wszst --pdir (`point directory'): Decides if a base directory
+ named "." should be created. Modes are: REMOVE, AUTO, FORCE.
+ - New option: --preserve: If set, mtime and atime of the source(s) are used
+ to set the destination time stamps.
+ - wbmgt: If creating a text BMG file option --ho-header (or -H) suppresses
+ the output of the syntax information section.
+ - wbmgt: If creating a text BMG file the message IDs for tracks, battle
+ tracks and chat messages will be replaced by 'Txx', 'Uxx' and 'Mxx'.
+ This feature is disabled if option ---long is set.
+
+
+szs v0.06a r2540 - 2011-04-27
+
+ - If extracting a SZS, U8 or BRRES archive a file named 'wszst-setup.txt' is
+ created. It contains some infos for a following creation.
+ - New option --ignore-setup: Ignore setup file 'wszst-setup.txt'.
+ - Option --pdir renamed to --pt-dir. --pdir is still allowed.
+ - wszst CREATE: Can now create a BRRES file as copy of a directory structure.
+ - wbmgt: If creating text BMG files, than unicode escapes "\z{801,hexnum}"
+ are written as \u{hexnum}. v0.05a can already scan such unicode escapes.
+ - wbmgt: new patch mode "print": create a new text using %s-escapes (like
+ print functions) to insert the old one.
+ - "wszst EXTRACT" can extract archives recursively and can decode BMG files
+ on the fly. This is controlled by the options --recurse, --decode and
+ --all. All needed information for recreation is stored in the setup file
+ 'wszst-setup.txt'.
+ - "wszst CREATE" creates a recursively directory structure created by EXTRACT
+ using 'wszst-setup.txt' as script. Files will be encoded again.
+
+
+szs v0.07a r2584 - 2011-05-05
+
+ - wbmgt --patch mode PRINT:
+ - New escape %i inserts the message ID (MID, good for finding IDs)
+ - Inserting 'b-e' or 'e' between '%' and conversion character limits the
+ number of characters to copy. 'b' (begin) and 'e' (end) are numbers.
+ - Bug fix for wszst: The base directory was not always created if the U8
+ archive has not point directory as base.
+ - Bug fix for wszst: If creating a BRRES file the programm runs sometimes
+ in a wrong assertion and terminates.
+ - Bug fix for wszst: Adjust all external offsets of BRRES sub files.
+ - wszst LIST: Can list files recursive if --recurse or --all is set.
+ - wszst: A string pool is added to extracted BRRES sub files. This string
+ pool is used for the creation of new BRRES files.
+ - "wszst CREATE file.brres" works now, but see also "Known bugs".
+ - New command: wszst DUMP: Dump the internal structure of BRRES files. The
+ main goal is to verify string relocation.
+
+ - Known bugs:
+
+ - If creating a BRRES the internal name of the sub file is not set to
+ the filename. This could be problematic if a sub file was renamed.
+
+
+szs v0.08a r2617 - 2011-05-12
+
+ - Improved support for BRRES sub file versions (more string pointers).
+ - wszst EXTRACT --raw: Extract BRRES sub file in raw mode and do not adjust
+ string pointers and other offsets.
+
+ - Known bugs:
+
+ - If creating a BRRES the internal name of the sub file is not set to
+ the filename. This could be problematic if a sub file was renamed.
+
+
+szs v0.09a r2636 - 2011-05-17
+
+ - New tool: wstrt: Wiimms StaticR Tool: manipulate StaticR files of MKW.
+ - It can analyze StaticR files and detects CTGP 4.4. patches and
+ modifications of track and arena orders.
+ - It can patch StaticR files and modifies the track and arena order.
+ So it is possible to move tracks with special features (like snow
+ or fog) to other slots.
+ - Commands TRACKS and ARENAS show details about tracks and arenas.
+ The order may be in StaticR related order.
+ - Command FILES shows the track and sound file names of all tracks and
+ arenas in machine readable format (not vertically formatted, one space
+ to separate columns). The order may be in 'StaticR' related order.
+ IMPORTANT: wstrt is EXPERIMENTAL!
+ - New option: --tracks=list: This option allow to define a new track order
+ for Mario Kart Wii. Tool wstrt uses this option for patching the track
+ order. Tools wszst and wbmgt use this to define the relation between Txx
+ and real message IDs.
+ - New option: --arenas=list: Does the same for arenas as --tracks for tracks.
+
+
+szs v0.10a r2651 - 2011-05-21
+
+ - wstrt: Support for NTSC/JAP and KOREA version of StaticR.rel.
+ - wstrt: new command: FIND: Find tracks and arenas by name.
+
+
+szs v0.11a r2670 - 2011-06-04
+
+ - New option: --single-line (-1): No continuation lines for BMG text output.
+ - Support for BREFF and BREFT files: Listing and extraction, but not creation:
+ - wszst LIST: List also BREFF and BREFT files including recursive lists.
+ - wszst EXTRACT: Extract also BREFF and BRRES files. Recursive extraction
+ of theses file types is implemented but disabled because of not
+ implemented creation support.
+
+
+szs v0.12a r2693 - 2011-06-16
+
+ - Bug fix for Windows install script: Remove duplicate SZS entries from PATH.
+ - wszst CREATE: Create BREFF and BREFT files.
+
+
+szs v0.13a r2840 - 2011-07-09
+
+ - Bug fix for tool wszst: Tool chrashed when creating BRRES files with empty
+ sub directories.
+ - wszst: Export of internal images (BREFT subfiles, TPL, TEX0) to PNG files
+ is done while extracting archives if decoding is enabled. Supported image
+ formats: I4, I8, IA4, IA8, RGB565, RGB5A3, RGBA32, C4, C8, C14X2 and CMPR.
+ - New tool: wimgt = Wiimms Image Tool : Convert and manage images files.
+ Supported file types: BREFT subfiles, TPL, TEX0 and PNG.
+ - wimgt LIST: List images files and print types and geometry data.
+ - wimgt DECODE: Export an internal image to a PNG file.
+ - wimgt ENCODE: Import PNG images and store them in internal formats.
+ - wimgt CONVERT: Convert formats (file and image format).
+ - All tools: new command FILETYPE (=FT): Scan the header of the entered files
+ and print file type and path for each file as list.
+
+
+szs v0.14a r2862 - 2011-07-14
+
+ - New command: wszst UPDATE: Update sub files in an already existing archive.
+ - wbmgt --patch mode=file: A equal sign '=' is now used to separate mode and
+ filename. The old comma separator ',' is allowed but deprecated.
+ - New option for wimgt: --patch mode=file
+ This option allows to patch images by a list of other images.
+
+
+szs v0.15a r2917 - 2011-08-07
+
+ - New tool: wkmpt: Wiimms KMP Tool
+ - wkmpt DECODE: Decode a binary KMP file and store the results
+ as user friendly, but machine readable text file.
+ - wkmpt ENCODE: Encode a text KMP file and store the results binary.
+ Indexing and grouping and some other stuff are done automatically.
+ - wszst EXTRACT: KMP files are decoded automatically.
+ - wszst CREATE: Encode KMP files automatically if changed.
+ - New image options for wszst: --transform= --encode-img
+
+
+szs v0.16a r2931 - 2011-08-13
+
+ - Support of "Byte Order Marks" (BOM) when reading UTF-8 text files.
+ - New algorithm for CMPR image compression.
+ - Bug fix for KMP text files: Due a wrong info in the CT-Wiiki the 'prev'
+ and 'next' grouping values were swapped.
+ - Bug fix for KMP text files: Setting "[CKPT]/@AUTO-NEXT=1" failed.
+
+
+szs v0.17a r2941 - 2011-08-16
+
+ - Scan KMP text: Correct line numbers in error messages.
+ - KMP: [CAME], [GOBJ] and [CHKT] entries can use names to point to the route
+ or respawn entries into the [POST] or [JGPT] sections. This makes list
+ modifications (inserting, removing, reordering) much easier.
+ - KMP: Parameter '@AUTO-ID=1' enables automatic setting of ID values.
+ - KMP text export:
+ - Improved and more detailed documentation.
+ - The sections are now sorted alphabetically.
+ - Links into other section uses generic names instead of index numbers.
+
+
+szs v0.18a r2959 - 2011-08-26
+
+ - KMP: Improved text output with additinal infos.
+ - KMP: More intelligent group naming.
+ - KMP: Linear calculated points in CKPT, ENPT and ITPT.
+ - KMP: User may define local and global variables.
+ - KMP: Objects can be referenced my name (eg. o$itembox).
+ - KMP: Inter section links (AREA->CAME, CAME->POTI, GOBJ->POTI, CKPT->JGPT)
+ using names instead of indices. This allows easy reorganisation.
+ - KMP: AREA+CAME syntax (table layout) changed, old format stays compatible.
+
+
+szs v0.18b r2966 - 2011-08-30
+
+ - Several small KMP decoding+encoding improvements.
+
+
+szs v0.19a r3033 - 2011-09-15
+
+ - New option: --const NAME=VALUE,...
+ With this option the user can predefine variables in the command line.
+ - KMP scanner supports C like arithmetic expressions.
+ - KMP scanner supports nested @IF..@ELIF..@ELSE..@ENDIF structures.
+ - The KMP scanner accept copy&paste text of the SZS-Modifier, if parameter
+ @SZS-MODIFIER is set to 1.
+ - If decoding a KMP text file, names of entries of the source are used
+ instead of generic names while creating the destination output.
+ - Object infos (name, short description, parameters) are inluded into the
+ KMP object list.
+ - A decoded KMP file contains a template for parameters and conditional
+ encoding. Option --no-param (-P) disables the template.
+ - Several small KMP decoding+encoding improvements.
+ - New command: wkmpt SYMBOLS: Print a table with all predefined symbols.
+ - wszst CAT --decode: Decode files before output if possible.
+ - New command: wszst KMP: Open the sub file @course.kmp@, decode and print it.
+ - New command: wszst INFO: Print the content of the subfile 'info.txt'
+ or 'credits.txt' (first found file used, case ignored).
+
+
+szs v0.20a r3069 - 2011-09-30
+
+ - Bug fix for KMP decoding: A wrong name was written for the opening camera.
+ - New option: --brief: Create KMP text files without most info lines. If set
+ twice, the output of unneeded sections is also suppressed.
+ - Tools exit with error status on encoding errors.
+ - The new KMP command '$BEZIER' works similar like '$LINE' and create
+ quadratic and cubic bezier curves for CKPT, ENPT, ITPT and POTI sections.
+ - New KMP commands: @ECHO and @WARN: Print a message or a warning.
+ - New option: --no-echo: Suppress messages made by the new '@ECHO' command.
+ - The KMP encoder and decoder support a free info string. It is stored at
+ and load from the end of the KMP file behind all sections.
+ - Mac: Support for PPC disabled, because the new LIBPNG does not support it.
+ - Mac: LIBPNG is now linked static. So there is no longer a need for Mac
+ users to install LIBPNG.
+
+
+szs v0.21a.beta1 r3092 - 2011-10-09
+
+ - New wszst commands: XDECODE (=XD) as short cut for "EXTRACT --decode" and
+ XALL (=XA) as short cut for "EXTRACT --all".
+ - KMP encoder: Support of names for route points (section POTI).
+ - Mipmap support improved:
+ - If reading a TEX or BREFT, all mipmaps are scanned and internal stored.
+ - If reading a TPL file, all images are scanned internal stored.
+ - If reading a PNG, the tools search mipmap files.
+ - If storing a PNG, one PNG file is created for each image.
+ - If saving a format, all images are saved. The mipmaps of TEX and BREFT
+ are resized to have the correct size (half of the previos image).
+ - Option --no-mipmaps disables mipmap support.
+ - Option --n-mipmaps=NUM force the number of mipmaps. If needed, the
+ missing mipmaps are created from the existing images.
+
+
+szs v0.21a r3142 - 2011-10-29
+
+ - Windows version only: Update to Cygwin DLL 1.7.9-1
+ - Bug fix: If creating a TEX from multiple PNG files, sometimes not all
+ PNG sources were used.
+ - Bug fix: If extracting BRRES files, the informative file '.string-pool.txt'
+ was sometimes empty.
+ - The KMP/CAME text output contains now comments about camera, zoom and view
+ point durations. This helps to find out a good camera setup.
+ - KMP/CAME scanning: If zoom or view point speed is set to value -1, then the
+ value is calculated so that the time coincides with the camera running time.
+ - Internal object database updated.
+
+ - The following points improve the diagnostic and analysis features:
+ - New wszst command: ILIST (or IL): List all images of an archive. To view
+ all sub archives recursivley, set option --all. Command ILL and ILLL are
+ short cuts for 'ILIST --long' and 'ILIST --long --long'.
+ - New option for tool wszst: --sort (-S): Define a sorting method for the
+ output of commands LIST and ILIST.
+ - New wszst command: MEMORY: Print a (recursive) memory map of all sources.
+ - New option --cut for "wszst LIST" and "wszst MEMORY": Cut different non
+ archive files into peaces (headers, groups, sections, ...) and list these
+ peaces as single sub files for a more detailed analysis.
+ Supported file types: BMG, BREFT-IMG, KMP, TEX, TPL and BRRES sub files.
+
+
+szs v0.22a r3166 - 2011-11-06
+
+ - The KMP encoder is now a 2 pass compiler and the whole source is scanned
+ twice. In pass 1 only names are defined and warnings are suppressed. In
+ pass 2 all objects are defined.
+ - KMP logging: The job info line is now printed before warnings.
+ - Some new CAME+POTI variables are defined automatically as help for
+ calculated parameters, e.g. came.time or viewpt.len.
+ - If decoding or encoding a KMP, a plausibility check is done. This should
+ help to find KMP errors. Option --no-check disables this check. You can
+ find a detailed list of all checks on the tools website:
+ * https://szs.wiimm.de/cmd/wkmpt/check#desc
+ - New command: wkmpt CHECK: Run a KMP check and return 'DIFFER' as exit
+ status if any KMP error found.
+ - New command: wkmpt OBJECTS: Search objects in the internal object database
+ using the entered keywords and print infos about each found object.
+ Options --brief and --long control the verbosity of output. A online query
+ is also available: https://szs.wiimm.de/cgi/mkw/object
+ - Internal object database updated.
+ - KMP compiler/POTI: New command '$COPY': Copy some or all points from
+ previous defined routes.
+ - KMP compiler/POTI: New commands @shift-route, @hrotate-route, @scale-route:
+ These commands transform all points of a route.
+
+
+szs v0.23a r3243 - 2011-11-25
+
+ - New command: wkmpt CAT: Print decoded KMP files to stdout.
+ - New option for wkmpt: --generic: Use generic names as references instead
+ of the names scanned from the source file.
+ - "wszst DIFF" supports now --recurse and --cut (and --all) to list
+ differences on sub file level.
+
+ - Support of 3D vector variables and parser functions:
+ - New @DEF* and @GDEF* commands to define variables. The old @NUM, @GNUM,
+ @INT... are stil possible.
+ - Parser functions implemented, e.g. sin(x), hRot(pt,deg,[origin]). All
+ values of all KMP objects can be read by functions.
+ - New command: wkmpt FUNCTIONS: Print a return type and syntax info about
+ all parser functions. If --long is set, a little description is added.
+ The output can be filters by keywords.
+ - New command: wkmpt CALCULATE: Calculate each expression and print the
+ result to standard output.
+
+ - Tool wstrt can now detect and patch region settings:
+ - wstrt ANALYZE: If a region patch is detected, a message is printed.
+ - wstrt PATCH --region=val: Patch a StaticR.rel to the entered region or,
+ if 'val' is 'RESET', restore it to the original Nintendo values.
+
+
+szs v0.24a r3316 - 2011-12-30
+
+ - Feature to debug routes: The KMP compiler can automatically define
+ itemboxes for route points of the sections ENPT, ITPT and/or POTI.
+ - New commands: "wszst+wkmpt SYNTAX": Print out the generel syntax rules
+ for the text parser and compiler.
+ - Several bugs of parser functions fixed and some new functions added.
+ - Object DB updated.
+ - New feature: KMP transforming
+ The tools wszst & wkmpt support the new options --shift, --scale and
+ --hrot. With this options all position, size and rotation parameters
+ of a KMP can be transformed. The transformation is supported by nearly
+ all data commands like DECODE, ENCODE, CREATE, EXTRACT and NORMALIZE.
+ - wszst LIST/MEMORY/EXTRACT/UPDATE: Support of RARC and ARC files.
+ Creating a RARC file is not supported yet.
+
+
+szs v0.25a r3321 - 2011-12-31
+
+ - The transformation options are now a little bit easier to handle:
+ - The execution order is now --scale before --shift before --hrot.
+ - New options for easier scale and shift setup: --xss, --yss and --zss.
+ => The user must select 2 points and make a note of the coordinates in
+ the old and in the new model. Then he must enter the coordinates as
+ parameters like --xss x1old,x1new,x2old,x2new and the scale and shift
+ values are calculated automatically.
+
+
+szs v0.26a r3415 - 2012-02-04
+
+ - New general parser functions: dot(), cross(), unit().
+ - New KMP specific parser functions: enpt$hDir(), enpt$next(), itpt$hDir(),
+ itpt$next(), stgi$byte().
+ - An online function reference is also available:
+ -> https://szs.wiimm.de/cmd/functions#desc
+ - Bug fix: If scaling, the calculation of column 'scale' of sections ENPT
+ and ITPT were wrong.
+ - KMP/STGI table format changed to support 'pole position' and 'narrow'.
+ - Command FILETYPE: Accept --long to print an additional column with the
+ decompressed file type.
+ - wszst EXTRACT supports now --cut and stores the cutted peaces of files
+ into hidden directories.
+ - wszst EXTRACT supports extraction of BRRES sub files and all other file
+ formats, that supports the --cut option.
+ - New command for all tools: FILEATTRIB: Print out a table with all supported
+ file types and operations.
+ - First KCL support:
+ - New tool: "wkclt" with command DECODE (convert to obj like the
+ KCLexporter of `blank').
+ - Tool wszst: If decoding is enabled, convert KCL to an obj file.
+ - Support for option --cut.
+ - wkmpt+wbmgt ENCODE: Wrong automatic file extensions fixed.
+ - New option for all tools: --chdir: Set a new working directory for all
+ following options, for all parameters and for the execution.
+
+
+szs v0.27a r3437 - 2012-02-14
+
+ - KMP, sections JGPT+CNPT+MSPT: If parameter '@SNAP-TO-ENPT' is set to a
+ numeric value, then all points will be moved to the nearest point of the
+ ENPT section plus the entered value. The horizontal direction (Y-rotation)
+ is calculated to point to the next ENPT point, section linking is observed.
+ - KMP: Command '@ROUTE-ITEMBOX' is now avaialable for sections ENPT, ITPT,
+ JGPT, CNPT, MSPT and POTI.
+ - wszst EXTRACT: New option --ext or -e (for BRRES archives only): If a file
+ is extracted, add a handy file extension (like '.mdl') to the file name.
+ If set twice and a textual file magic is available, use the file magic in
+ lower case instead (like '.mdl0').
+ - wszst CREATE: If creating a BRRES archive, the new file extensions (see
+ above) are detected and removed.
+ - wszst+wkmpt: More KMP checks.
+ See https://szs.wiimm.de/cmd/wkmpt/check#desc for a complete list.
+
+
+szs v0.28a r3463 - 2012-02-20
+
+ - New command: wszst AUTOADD: Show the status of a auto-add archive and add
+ BRRES, BREFF and BREFT files to it.
+ Try "wszst AUTOADD ./path_to/Race/Course/" to add all supported files.
+ - New option: --auto-add (short: --aadd): Analyze the KMP (if exist) and add
+ missing BRRES files automatically, if the tool can find the files in any
+ sub directory named 'auto-add'. This sub directory is searched in all
+ directories of 'SEARCH_PATH'; try 'wszst AUTOADD' to view them.
+ - New command: wszst CHECK: Check track files: Try to read KMP (and check it)
+ and find missing BRRES, BREFF and BREFT files needed by used global objects.
+ - KMP/CKPT: The KMP compiler is now able to make check points visible by
+ using and scaling any global object. For details read the built in help.
+ If enabled, option --auto-add is implicitly set.
+
+
+szs v0.29a r3515 - 2012-02-28
+
+ - KMP/GOBJ @SORT-OBJECTS=mode: The KMP compiler can sort objects in 2 ways.
+ - KMP/POTI: There are new transformation commands with changed syntax and
+ semantics. They are now identical to the global transformation options.
+ - KMP/POTI: Command @REVERSE-ORDER reverse the order of points of a route.
+ - Command 'wkmpt OBJECT --long' lists all needed files for each object.
+ - Minimum support (detection only) for file type BRASD.
+ - AUTO-ADD database: Object dependent KCL and BRASD files added.
+ Please redo: "wszst AUTOADD ./path_to/Race/Course/"
+ - New command: wszst TRACKS: Print a list of all known track SZS files of
+ Mario Kart internal directory './Race/Course'. These files are 32 standard
+ track files, 10 arena files, and 9 other files.
+ - KMP/CKPT: The KMP compiler is able to make check points visible by using
+ and scaling global objects. The interface has changes to allow different
+ viewing modes (forget the old settings). See built in help for details.
+ - New Command: wszst CHECK: Make a validity check for track files: Try to
+ read KMP (and check it) and find unknown, modified, needed and unneeded
+ files. This command uses a new internal object and file database.
+ - HINT: Unknown file: This will is not part of any Nintendo track.
+ - HINT: Additional file: Known file with unknown usage.
+ - HINT: Modified file: This file is different to Nintendo tracks.
+ + WARNING: Missing file: This file is needed/used (by an object).
+
+
+szs v0.29b r3528 - 2012-03-02
+
+ - Bug fix for "wszst CHECK": There was a crash with core dump if analyzing
+ a SZS without valid KMP.
+
+
+szs v0.30a r3548 - 2012-03-10
+
+ - There is a new BRRES subfile iterator. The old one is very strict and do
+ wrong things with BRRES strings and names while extracting some custom
+ tracks (Nintendo tracks work fine). The new one is more tolerant and runs
+ better on custom tracks. Now you can extract and repack every track.
+ Use option --OLD to activate the old iterator.
+
+
+szs v0.31a r3579 - 2012-04-06
+
+ - Bug fix if BRRES sub file is cutted into sections:
+ Wrong size calculation of last section, if section type is unknown.
+ - BTI support:
+ - All tools and listing commands: Detect BTI files and print details.
+ - wimgt: Can now convert TPL, TEX, BTI, BREFT and PNG into all directions.
+ - wszst: Decode and encode BTI files on the fly.
+
+
+szs v0.32a r3593 - 2012-04-14
+
+ - Bug fix for option --auto-add: Sometimes a segmentation fault appeared when
+ auto adding a missing subdirectory for a missing file.
+ - New command: wimgt COPY <source> <dest>
+ Copy and convert source image to dest image. The default destination file
+ format is selected by scanning the file extension of the destination.
+ This is an alternative for the ENCODE and DECODE commands.
+ - KMP parser: @DEF.ENUM and @GDEF.ENUM define enumerated values.
+ - KMP parser: @DEF.SHIFT and @GDEF.SHIFT define shifted bit masks.
+
+
+szs v0.33a r3627 - 2012-05-02
+
+ - Because of an update of the internal object & file database, redo the
+ command "wszst AUTOADD ./path_to/Race/Course/" to add more files to the
+ autoadd database -> see https://szs.wiimm.de/doc/autoadd for more info.
+ - wszst CHECK: Detect "optional files".
+ - KMP: New command '@HSNAP-TO-ENPT' is similar to '@SNAP-TO-ENPT', but
+ ignoring the vertical value of the enemy points.
+ - The text parser supports 5 kinds of nested loops (EXPERIMENTAL):
+ @LOOP ... @ENDLOOP : umlimted loop
+ @REPEAT ... @ENDREPEAT : loop with a predefined repeat count
+ @FOR ... @ENDFOR : classical 'for' with iterator variable
+ @FOREACH ... @ENDEACH : for each element in list
+ @WHILE ... @ENDWHILE : classical 'while' with condition
+ There are also conditional @BREAK and @CONTINUE.
+ - The KMP syntax and semantics documentation is now online available:
+ -> https://szs.wiimm.de/doc/kmp/syntax
+ The inline documentation in decoded KMP files is now much shorter.
+ - Command SYNTAX removed. Use page https://szs.wiimm.de/doc/syntax instead.
+ - The backtracking algorithm for analyzing of CKPH + ENPH + ITPH pathes has
+ been modified and optimized, because a test version of "Toad's Turnpike"
+ has 105 ITPH groups and needs much to much steps and time to calculate
+ about 10^28 pathes total.
+
+
+szs v0.34a r3659 - 2012-05-12
+
+ - KMP text parser extensions:
+ - New commands:
+ @INCLUDE "filename": include text files.
+ @RETURN [val]: returns from the current input file.
+ @EXIT: exit the parser execution.
+ @ASSERT condition: exit execution, if 'condition' is false.
+ @MACRO .. @ENDMACRO: Define named macros.
+ @FUNCTION .. @ENDFUNCTION: Like @MACRO, but can also be used as
+ function in numerical expressions.
+ @CALL macroname(...): Call a previos defined macro with parameters.
+ '@:macroname(...)' is a short cut for '@CALL macroname(...):'
+ @DOIF (condition) anytext: Execute 'anytext', if 'condition' is true.
+ - New private variable name space: @PDEF
+ - P-Variables are only defined for the current source file or function.
+ - Loop variables (@FOR,@FOREACH) and macro parameters are defined in
+ this new private name space.
+ - New options for command FUNCTIONS (list parser functions):
+ - Option --long: The entered keys are compared against the description.
+ - Option --verbose: The description is printed too.
+ - Bug fix: Parser function minMax() returned wrong results.
+
+
+szs v0.35a r3681 - 2012-05-20
+
+ - New options for "wstrt TRACKS+ARENAS": --brief --no-header
+ - KMP sections CKPH+ENPH+ITPH: Accept unsorted groups.
+ - New patching options:
+ - For wszst and wkclt: --kcl-flag=list: Exchange KCL flags in KCL files.
+ - For wszst and wkclt: --kcl-parse=script: Execute the script for each KCL
+ file and to calculate/modify the KCL flags.
+ - For wszst and wkmpt: --rm-gobj=list: Remove global objects in KMP files.
+ - New command: wkclt FLAGS: Print usage statistics about KCL flags.
+ - New parser functions: ptInCube(cube1,cube2,pt1,...) and a strict variant
+ ptInCubeS(cube1,cube2,pt1,...): Count the points in the cube.
+ - KCL exporter creates now 3dsMax compatible OBJ files with some issues.
+
+
+szs v0.36a r3720 - 2012-05-28
+
+ - It the tools 'wkmpt' or 'wkclt' opens a SZS file, they use the internal
+ files 'course.kmp' or 'course.kcl' as source.
+ - New command: wszst KCL: Open the sub file @course.kcl@, decode and print it.
+ - KCL object exporter improved.
+ - New command: wkclt DUMP: Dumps the raw KCL records in human readable format.
+ - New command: wkclt OCTREE: Traverse and test the octree by using the entered
+ points. Logging of steps and triangles is controlled by --long and --brief.
+ - wkclt ENCODE: Import an OBJ file and create a new KCL from scratch. The
+ internal octree generator works fine and can be controlled by different
+ constants. See https://szs.wiimm.de/doc/kcl#encode for more details.
+ - If a KCL obj file with name NAME.EXT is scanned, a file name NAME.flag.txt
+ is scanned to find relations between group names and flags.
+ See https://szs.wiimm.de/doc/kcl#def-flag for more details.
+ - Read the new KCL export and import How-To: https://szs.wiimm.de/doc/kcl
+
+
+szs v0.37a r3748 - 2012-06-02
+
+ - Read "Known Bugs" or https://szs.wiimm.de/doc/kcl about KCL issues.
+ - Command "wkclt dump" prints now more octree statistics.
+ As the result of the analysis of these statstics, the octree generation has
+ been optimized and some new parameters have been established.
+ - New command: wkclt TRIANGLES: It's like DUMP, but it print only 1 line
+ for each triangle data. The goal is to compare the data with other dumps.
+ - New option: --kcl-sort: Sort the triangles by length and positions to make
+ a dump more and easier compareable.
+ - New option: --kcl-drop: Remove all triangles, that are not referenced by
+ the octree. This helps to clean the KCL of custom tracks.
+ - The OBJ exporter creates Wavefront OBJ files compatible with "3ds Max" and
+ "Google SketchUp" (TIG's OBJ-importer plugin) and maybe with more 3D tools.
+ The exported data contains now also 'vn' vectors (normals).
+ - The OBJ importer read Wavefront OBJ files created by "3ds Max" and by
+ "Google SketchUp" (TIG's OBJ-exporter plugin) and maybe by other 3D tools.
+
+
+szs v0.38a r3774 - 2012-06-05
+
+ - OBJ import and KCL creation tested with different tracks without issues.
+ - New option --kcl=list: 'list' is a comma separated list with keywords to
+ define options for the KCL processing. Allowed options are: RESET, FAST,
+ NORMALS, OUT-SWAP, IN-SWAP, AUTO, CLIP, DROP, SORT and DEFAULT.
+ See https://szs.wiimm.de/opt/kcl for details.
+ - The transforming options --shift, --scale, -xss, -yss, -zss and --hrot
+ are now available for KCL processing.
+ - Option --kcl-parse renamed to --kcl-script.
+ - Three new parser functions for the --kcl-script script:
+ tri$setPt() : Define new triangle points.
+ tri$shift() : Shift all points of a triangle.
+ tri$remove() : Remove a triangle from the list.
+ If one of these function is used, a new octree is calculated.
+ - New parser functions: sec(), mSec(), uSec()
+ - Several small bugs in the KCL creation removed.
+
+
+szs v0.39a r3799 - 2012-06-09
+
+ - The KCL code was cleaned and the internal triangle data base has a new
+ optimized data structure. The new KCL tool will create the same KCL as
+ the previous r3774. Only the output of some dump commands and also
+ the created OBJ files have changed.
+ - Three new parser functions for the --kcl-script script:
+ tri$create() : Create a new triangle.
+ tri$scale() : Scale all points of a triangle.
+ tri$hRot() : Rotate all points of a triangle horizontally.
+ tri$unremove() : Clear 'REMOVED' marker
+ tri$isRemoved() : Get 'REMOVED' status.
+ Call "wkclt func tri$" for complete list of all 12 triangle functions.
+ - Command "wkclt OCTREE" renamed to "wkclt TRAVERSE".
+ - New command: wkclt COPY <source> <dest>
+ Copy and convert source collision file (KCL or OBJ) to dest. The default
+ destination file format is selected by scanning the file extension of the
+ destination. This is an alternative for the ENCODE and DECODE commands
+ for single copy operations.
+ - Optimization: If input and output are binary KCL files and only KCL flags
+ were changed, then the original KCL data is copied 1:1 to the output file
+ and only the flag values are modifed. Use --kcl=new to build always a new
+ binary KCL and to disable this optimization.
+
+
+szs v0.40a r3837 - 2012-06-17
+
+ - Windows version only: Update to Cygwin DLL 1.7.15-1
+ - The KCL obj export will now create a material file with adequate colors.
+ To disable materials support, use "--kcl -mtl".
+ - KCL flag scanning: Some 3D tools use the generic suffix '_number' in goup
+ names. This may result in a conflict with the automatic detection of KCL
+ flags. Not only therefor, the interface has changed:
+ - If creating an OBJ file, '_Fxxxx' (literal '_F' and 4 hex digits)
+ instead of '_xxxx' is now appended to the group names.
+ - If scanning a groupname, '_Fxxxx' is always accepted as flag value.
+ - The old way to detect flag values is now disabled by default, but can be
+ enabled by different --kcl keywords: 'HEX4' enables '_ffff' (flag),
+ 'HEX23' enables '_tt_vvv' (type and variant) and 'HEX' enables both.
+ - The flag file may define HEX4 and/ot HEX23 to 0 (disable) or 1 (enable)
+ to override the defaults set by option --kcl.
+ - For all groups with unknown flag assignments, the unusal values 0xFFE0,
+ 0xFFC0, 0xFFA0 and so on (all type 0x00 (road), each 0x20 lower) are
+ used in this order. This makes the groups discriminable in the KCL.
+ - The default extension of the flag file is now '.flag' and not longer
+ '.flag.txt'. If scanning both files are searched.
+ - The new option --flag-file=path overrides the default search for a flag
+ definitions file while scanning OBJ files.
+ - New command "wkclt CFF" will create a flag file with all group names
+ as template.
+ - If scanning a OBJ file, faces (polygons) with up to 50 vertices in a plane
+ are supported. Polygons with N>3 are split into adequate triangles.
+ - The user interface of the parser function tri$create() has changed to
+ allow the definition of polygons with any number of verteces.
+ - Bug fix: The naming of some parser functions were wrong: ptInCube*() are
+ renamed to ptInCuboid*(). The obsolete old names are allowed for a while.
+ - New command: wkclt CHECK: Run a KCL check and return 'DIFFER' as exit
+ status if any KCL error found.
+ - The KCL creation is now included into the SZS creator: Touched OBJ files
+ will now converted to KCL automatically if creating a SZS file.
+
+
+szs v0.41a r3866 - 2012-06-24
+
+ - Bug fix: The triangle split of a face with exact 4 verteces fails in 50% of
+ all cases (bad optimization).
+ - Bug fix: The parser expression "a?b:c" fails, if the operators not followed
+ by a blank.
+ - Bug fix for some parser functions.
+ - Using a KCL for defining KMP positions:
+ Now it is possible to set a point anywhere and let it fall down until a
+ collision. This is a very good function to place global objects and other
+ points of the KMP. This internal KCL-FALL is available for the user in
+ different stages:
+ - Command "wkclt FALL source point..." for testing.
+ - Parser functions kcl$fall() and kcl$fallFlag() for scripts.
+ - Automatic adjusting of KMP points and objects in the sections CNPT,
+ ENPT, GOBJ, ITPT, JGPT, KTPT, MSPT and POTI.
+
+
+szs v0.42a r3927 - 2012-07-06
+
+ - Linux+Mac: The math library is now included explicitly to avoid a linking
+ failure on some systems.
+ - Bug fix: Assigning values to private macro variables has overwritten
+ existing variables in the standard or global namespace.
+ - New parser command: '@PARAM': Define a parameter name list for macro and
+ function calls.
+ - 'ROUTE-ITEMBOX' replaced by a more flexible 'ROUTE-OBJECT'.
+ - New command: wkmpt COBJECT: Create an OBJ file: Load the related KCL and
+ add new faces representing the KMP elements are added. Enemy, item, check
+ and respawn points and cannon destinations are supported at the moment.
+ Option --draw=list decides which elements are included into the OBJ file.
+ See https://szs.wiimm.de/cmd/draw for more details.
+ - New parser functions: mean(), dir(), xDir(), yDir(), zDir(), rot(), xRot()
+ yRot(), zRot(), axisRot(), tri$createCuboid(), tri$createJoist(),
+ tri$createPrism() and tri$createPyramid(). The tri$create*() functions are
+ internally used to add KMP objects to the OBJ file.
+ - New KCL creating parameter: KCL_BLOW: If calculating the overlay between
+ cubes and triangles, the cubes are blowed up by the some units, so that a
+ triangle may be visible in a neighbor cube. This avoids unexpected rarely
+ effects like bike hopping. The default value is 400.
+ See https://szs.wiimm.de/doc/kcl#KCL_BLOW for more info.
+ * If you have created a KCL with a previous version of my tools, use this
+ command to create a new octree:
+ wkclt encode course.kcl --kcl drop,new --overwrite
+ The file 'course.kcl' will be overwritten with a repaired version.
+
+
+*******************************************************************************
+******* END *******
+*******************************************************************************
diff --git a/project/templates/HISTORY-v1.txt b/project/templates/HISTORY-v1.txt
new file mode 100644
index 0000000..0b91a49
--- /dev/null
+++ b/project/templates/HISTORY-v1.txt
@@ -0,0 +1,1288 @@
+
+@@MODULE(head.txt)@@
+
+
+*******************************************************************************
+******* HISTORY v1.* *******
+*******************************************************************************
+
+szs v1.00a r3958 - 2012-07-14
+
+ - wkmpt COBJECT --draw=modelist:
+ - Mode 'JGPT': Draw arrows at respawn positions.
+ - Mode 'CJGPT' does what the old 'JGPT' did: Draw connections between
+ check points and respawn positions.
+ - Mode 'CNPT': Draw arrows instead of lines.
+ - New command "wszst MINIMAP": Print and optional patch the releavant minimap
+ data of a SZS, U8, BRRES or MDL file. Supported patching options: --touch,
+ --xcenter, --ycenter, --zcenter, --center, --scale, --shift, --xss, --yss
+ and --zss.
+
+
+szs v1.01a r3987 - 2012-07-22
+
+ - Command "wszst MINIMAP" can now automatically adjust the minimap, if the
+ new option --auto is set. It analyses MDL section 2 (vertex list) to find
+ the minimum and maximum values. Then it makes the ranges 4% wider, store
+ the calculated values in 'posRU' and 'posLD' of the MDL and calculate the
+ transformation matrices. The command is very flexible and can modify the
+ map of SZS, U8, BRRES and MDL0 files.
+ See https://szs.wiimm.de/opt/auto for details.
+
+
+szs v1.02a r3992 - 2012-08-01
+
+ - KCL: Detect invalid triangles (e.g. length=0) on OBJ import.
+ - Option --kcl: There are now 2 groups of removing commands:
+ - 'DROP*' drop unused, invalid or fixed triangles (bad triangles).
+ - 'RM*' remove triangles with special characteristics. At this moment
+ RM-FACEDOWN is the only command of the 'RM*' class: It will remove all
+ face down drivable triangles to avoid KCL glitches.
+ - File DB: Sub files 'kinoko_*.kcl' are now assigned to object group 'kinoko'.
+ - Update of the KMP Object database.
+
+
+szs v1.03a r4002 - 2012-08-11
+
+ - New global option: --force: The tools analyse input files and reject files
+ with invalid data structures. If --force is set, little repairable issues
+ are ignored or repaired and a warning is printed.
+ >>> THE RESULT MAY BE INVALID OUTPUT FILES!
+ - Option --kcl: If no 'DROP*' mode is set, the tools drops automatically all
+ bad triangles. For an existing octree, it is only 'DROP-UNUSED'.
+ - Option --kcl: Correct handling, if 'DROP-UNUSED' and 'NEW' are set together.
+ - wszst MINIMAP --auto: The Y-translation is also calculated to make very
+ high faces visible.
+
+
+szs v1.04a r4050 - 2012-09-08
+
+ - Bug fix for v1.03a: With some option combinations, the KCL generator failed
+ and created an invalid KCL (if modifying an existing KCL) or a valid KCL
+ with some unwanted triangles (if importing from OBJ).
+ - Option --kcl: Better handling of DROP modes.
+ - Option --kcl: Correct handling, if 'DROP-UNUSED' and 'NEW' are set together.
+ (Same message as before, but now I have fixed one forgotten special case).
+ - "wszst CHECK" will now compare the number of cannons in KCL and KMP.
+ - New option: "wszst NORMALIZE --minimap": If --minimap is set, the minimap
+ is automatically adjusted like "wszst MINIMAP --auto" does it. All other
+ options like --scale are ignored for this kind of minimap processing.
+ - New option: "wszst minimap --set-flags=flags": Set the MDL flags to an user
+ defined value (default 0x31f).
+ - The tools accept now 'Yaz1' files in the exact same manner as 'Yaz0' files
+ hoping that the data structure and the compression method are the same.
+ - New options: --yaz0 and --yaz1: Force the magic of new created YAZ files
+ to 'Yaz0' or 'Yaz1'.
+ - Object database updated.
+
+
+szs v1.05a r4097 - 2012-09-29
+
+ - For text files, only the first 4 characters are used as magic ('#BMG'
+ instead of '#BMG-TXT'; same for '#KCL', '#KMP' and '#MDL'). On creation
+ a 8 character magic is still written for compatibility.
+ - Update of the KMP Object database.
+ - Files './AIParam/AIParam.baa' and './AIParam/AIParam.bas' are now known by
+ the internal file database.
+ - Some optimizations around the KCL octree creation. This includes a new
+ handling of automatic dropping of invalid KCL triangles.
+ - Some minor text and layout changes.
+
+
+szs v1.06a r4110 - 2012-10-06
+
+ - Bug fix: "wkclt COPY" printed always a false syntax error after correct
+ finishing all copy jobs.
+ - Bug fixes for "wszst NORMALIZE":
+ - BRRES files will not touched now.
+ - Memory bug, if rebuilding the KCL.
+ - wszst CHECK will now make slot proposals with comments:
+ - Slots 3.1 and 7.1: Check usage of KMP objects 'sunDS' and 'pylon01'.
+ - Slot 4.2: Only the usage of at least one KMP object of 'kart_truck',
+ 'car_body' or 'K_bomb_car' is done. An additonally MDL analysis is
+ missed, so the status is only "may run on slot 4.2".
+ - Slot 6.1: Test the existence of file 'ice.brres' and of KCL flag 0x70.
+ - Slot 6.2: Check usage of KMP object 'HeyhoShipGBA'.
+ - New command: wszst SLOTS: Print the possible slots for a track file.
+ The analysis is the same as for "wszst CHECK" (see above). The command
+ prints either a positive or a negative slot list, whatever is shorter.
+
+
+szs v1.07a r4137 - 2012-10-19
+
+ - "wszst NORMALIZE --kcl ...": In the old versions, the KCL was patched in
+ place and the total size of the KCL was not changed. If the new KCL was
+ larger, parameters were changes in up to 5 iteration steps until the new
+ KCL was less or equal the old size. Now a complete new KCL is created with
+ the optimal settings and the size may shrink or grow.
+ If 'INPLACE' is added to the '--kcl list', the old behavior becomes active.
+ - wzszt CHECK: The logging of sub checks (KCL+KMP) is now better integrated
+ into the main log and there is now only one summary line for all.
+ - KCL creation tuned.
+ - The auto-add library holds now also unique files of folder 'posteffect'.
+ Try "wszst AUTOADD ./path/to/Race/Course/" to add all supported files.
+ - New archive format: WU8 (Wiimms U8)
+ WU8 is like U8, but the sub files are coded as patch for Nintendos original
+ files. This removes any code of Nintendo and a compressed WU8 (default) is
+ in general smaller than the related SZS. For encoding end decoding an
+ auto-add archive is needed (see https://szs.wiimm.de/doc/autoadd).
+ - wszst NORMALIZE/PATCH:
+ - Accept options --dest and --DEST for an alternative destination path.
+ - Accept options --u8 and --wu8 to define the new (W)U8-archive format.
+ - Object DB updated.
+
+
+szs v1.08a r4148 - 2012-10-27
+
+ - wszst CREATE/COMPRESS/DECOMPRESS:
+ - All 3 commands support now U8 and WU8 conversions and accept the
+ options --u8 and --wu8.
+ - Support of U8/WU8 conversions of non track files.
+ - All 3 commands support the new option --remove-src (or --rm-src) to
+ remove the source files on success and if different to dest files.
+ - Better error handling of non existing files if --ignore is set.
+ - New keyword for option --kcl: If creating an OBJ file and 'TRIANGLES' is
+ set, the triangles are not stored as vertices and faces. Instead each
+ triangle is stored in an independent line. The OBJ file itself becomes
+ incompatible (or invalid), because TRI lines are not supported by any
+ other tool, but it makes adding points or mixing OBJ files much easier.
+
+
+szs v1.09a r4169 - 2012-11-11
+
+ - BZIP2 compression is now supported as alternative to Yaz0. It is dedicated
+ to the WU8 file format for transferring files. BZIP2 files are smaller than
+ Yaz0 files and the creation is faster.
+ - The new option --bz forces BZIP2 compression instead of Yaz0 compression.
+ - The new option --wbz is a short cut for --wu8 --bz.
+ => To create a WBZ (WU8+BZ) file: wszst compress --wbz TRACK.szs
+ - The new option --szs is a short cut for --u8 --yaz0.
+ => To create a SZS (U8+Yaz0) file: wszst compress --szs TRACK.wbz
+
+
+szs v1.10a r4186 - 2012-11-17
+
+ - Bug fix: File type printing (e.g. "YAZ0.U8:filename") was reimplemented
+ because of the new bzip compression, but with bugs.
+ - Command "wszst CHECK" will now accept option --verbose to print some more
+ slot hints (negative info about slots 4.2, 6.1 and 6.2).
+ - New debug command for all tools: ARGTEST: Print all scanned arguments as
+ list. This helps to find out wrong parameters, especially for windows.
+ - Cygwin (Windows): Filename handling improved. If using double quotes around
+ a filename, backslashes work in a Windows usual way as directory separator.
+ - Cygwin (Windows): Windows 'SendTo' support added. It must be (un-)installed
+ with the batch files 'sendto-install.bat' and 'sendto-uninstall.bat'.
+ Available SendTo jobs:
+ - normalize-SZS.bat : Normalize a file and convert it to SZS.
+ - convert-to-WBZ.bat : Convert a SZS file to a WBZ file.
+ - convert-to-SZS.bat : Convert a WBZ file to a SZS file.
+ - create-autoadd-library.bat : Use it with the extracted Race/Course
+ folder to create the autoadd library. It is needed for WBZ conversions.
+ - New option: --number or --num: If a destination file already exists, 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. Option --number is ignored if --overwrite is set.
+
+
+szs v1.11a r4205 - 2013-01-01
+
+ - If creating the KCL file, the world will be enlarged by the KCL_BLOW value
+ to avoid problems at the world border.
+ - New parameter for KCL/octree fine tuning: KCL_MAX_SIZE:
+ Cubes, that are larger than KCL_MAX_SIZE, will always be splitted into 8
+ sub cubes and will never have triangle lists. The maximum and default value
+ for KCL_MAX_SIZE is 1024*1024 (~1 million).
+ - New flag for --KCL=list: CENTER: If creating a new octree, adjust the cube
+ entrance values so that the real world is centered in the cube world.
+ - Some old and for a long time obsolate keywords removed.
+
+
+szs v1.11b r4214 - 2013-01-20
+
+ - Bug fix: If creating a TEX0 file, the float number at offset 0x14 in the
+ TEX header was wrong (1 too large). The result were artifacts.
+ - Small updates of the object DB.
+
+
+szs v1.12a r4236 - 2013-02-09
+
+ - Windows version only: Update to Cygwin v1.7.17
+ - wstrt TRACKS+ARENAS: The index column shows now the internal zero based
+ track index of the track or arena instead of a simple track counter.
+ - wstrt FIND -lll: Additionally print the slot index and the internal index
+ (both zero based) before the file names.
+ - New command: wbmgt CAT: Print decoded BMG files to stdout. If a source is
+ a SZS file and no subfile is entered, subfile './message/Common.bmg' is
+ printed.
+
+
+szs v1.12b r4246 - 2013-02-23
+
+ - Bug fix: The KCL cannon activator was internally handled as drivable type.
+ So it was wrongly a deletion candidate for --kcl=RM-FACEDOWN.
+ - Object DB updated.
+
+
+szs v1.13a r4258 - 2013-03-01
+
+ - New option --rm-aiparam (short cut: --rmai): If set, the directory AIParam
+ and all files are removed from the archive. This option has only impact,
+ if creating a new archive or normalizing an existing archive.
+ - Command wszst NORMALIZE: Logging changed.
+
+
+szs v1.14a r4274 - 2013-03-14
+
+ - wkmpt CHECK (and all commands calling this function internally):
+ 4 new tests for sections CKPH, ENPH and ITPH:
+ - The section must not be empty (WARNING).
+ - Only ITPH: The first 'next' link must be valid (WARNING).
+ - Each group must have at least one valid 'next' link (WARNING).
+ - Each group must have at least one valid 'prev' link (HINT).
+ See https://szs.wiimm.de/cmd/wkmpt/check#testlist for all tests.
+ - Option --kcl-script can now be used multiple times to execute multiple
+ kcl script in the entered order.
+ - Two new parser functions to identify the source within a script: isKCL()
+ and isKMP(). Both functions return 0 for false, 1 for true or 2 for true,
+ if the source is named 'course.*' (main KCL/KMP file).
+
+
+szs v1.15a r4300 - 2013-03-28
+
+ - New docu file: INSTALL.txt
+ - Mac+Linux+Unix: Script 'install.sh' will call itself with 'sudo' if not
+ started by user 'root'. Read INSTALL.txt for details.
+ - Windows: Cygwin updated.
+ - Better detection of UTF-8 files with byte order mark (BOM). Tool wbmgt will
+ accept those files now.
+ - Bug fix: wbmgt CAT: The option --patch is now processed.
+ - Bug fix: wbmgt ENCODE: Wrong file naming fixed.
+ - Bug fix: Option --kcl: If no 'DROP*' mode is set, the tools drops all bad
+ triangles automatically. For an existing octree, it is only 'DROP-UNUSED'.
+ - Check KCL+KMP: The checks are now done after patching.
+ - New option --kmp=modes: It works like --kcl=modes to define KMP jobs and
+ modes. The first modes are:
+ - NEW : Scan KMP and create a new one.
+ - RM-SPCITEM : Clear 'special items for players' setting of the 6 item box
+ object types.
+ - FIX-CKPH : Fix the section CKPH.
+ - FIX-ENPH : Fix the section ENPH.
+ - FIX-ITPH : Fix the section ITPH.
+ - FIX-PH : Short cut for: FIX-CKPH,FIX-ENPH,FIX-ITPH.
+ - INPLACE : Force inplace replacing of KMP files (old mode).
+ - LOG : Debug: Enable KMP specific logging.
+ The fix modes are EXPERIMENTAL!
+ See https://szs.wiimm.de/opt/kmp for details.
+
+
+szs v1.16a r4313 - 2013-04-08
+
+ - Bug fix for BTI detection (reduce false positives).
+ - wkmpt COBJECT --draw=ckpt: Draw lines to next point and to point linked
+ by the 'next' member.
+ - New command: wszst ENCODE: Works like wszst CREATE, but will not create a
+ first level archive. The intension is to create and update all subfiles.
+ 'wszst ENCODE' can be used as a prepararion before using 'wszst UPDATE'.
+ - New mode for --kmp: FIX-CKNEXT: Automatic calculation of the 'prev' and
+ 'next' links of KMP section CKPT.
+ See https://szs.wiimm.de/opt/kmp for details.
+ - Slot 4.2 detection: Improved 'moonview' detection, because MDL.s10
+ 'polygon11' and 'polygon60' are searched and their size is checked.
+ - Command 'wszst SLOTS': Slots are assigned to output columns now.
+ - Windows 'SendTo' commands: Fix handling of filenames with spaces.
+ Reinstall the SendTo files with 'sendto-install.bat'.
+ - New Windows 'SendTo' commands:
+ - clean-KCL-of-SZS: Normalize a SZS, drop unneeded KCL triangles and
+ rebuild the KCL octree.
+ - adjust-minimap: Adjust the minimap of SZS, BRRES and MDL files.
+ - Object DB updated.
+
+
+szs v1.17a r4358 - 2013-04-23
+
+ - Moonview slot proposal optimized.
+ - KMP check: Print a hint, if 200 or more global objects are defined.
+ - Option --fast overrides compression rates set by --norm or --compr=list.
+ - New --kcl mode: FIX-ALL: Short cut for DROP,RM,NEW,LOG.
+ - New option: --autoadd-path=dir: Define a path for the auto-add library
+ and override the default search pathes.
+ - New option: --mdl=list: Define a MDL patching method. VERTEX patching is
+ used by default.
+ - New option for wszst: --patch-file=list: Define, which kind of KMP, KCL and
+ BRRES/MDL files are objects for patching. The default is to patch only the
+ main KMP and KCL files and the MODEL and MAP files. --pfile is a short cut
+ for --patch-file.
+ - New name for option --hrot: --yrot
+ - New options: --xrot, --yrot, --zrot, --ypos: Options --xrot, --zrot and
+ --ypos are really new for X+Z rotation and --yrot is only a alternative
+ name for --hrot. See built in help for impact.
+ - New option: --translate: Works like --shift, but is done after the
+ rotation. This is similar to the MDL transformations, that works in the
+ order scale, x-rotate, y-rotate, z-rotate, translate.
+ - New command for testing: wszst MATRIX: Use the transformation options as
+ base and calculate and print the related vectors and the tranformation
+ matrices. Then execute the transformations for each vector (parameter).
+ - ATTENTION: Because of the new 3D rotation support, a new rotation
+ algorithm has been implemented. Implementation bugs are not impossible.
+ - ATTENTION: All new patching options are EXPERIMENTAL!
+
+
+szs v1.18a r4404 - 2013-05-01
+
+ - There is a complete new transformation algorithm: All transforming options
+ will be used to create a transformation matrix. If using >1 transformation
+ steps (see below), the matrices are multiplied to get a final transformation
+ matrix. All transformations are now done using this final transformation
+ matrix. This is faster and the internal handling is now much easier.
+ - New option --next: This option allows and separates up to 10 transformation
+ steps. Logical, each point is transformed step by step in the definition
+ order. Internally, a final matrix is calculated and all transformations are
+ done in a single step by using this final matrix. There are some issues
+ transforming KMP object, see https://szs.wiimm.de/opt/next for details.
+ - Command MATRIX is now available for all tools with transformation support.
+ It was redesigned to control the impact of the new transformation steps.
+ See https://szs.wiimm.de/cmd/matrix
+ - New option --rot=deg@origin: Define the rotations for 3 axes by one option.
+ - New option --arot=deg[@pt1]@pt2: Do an (axis) rotation around the axis
+ specified by the 2 points as single transformation step.
+ This option is EXPERIMENTAL! See https://szs.wiimm.de/opt/arot
+ - New option --ascale=factor@dir: Do an (axis) scaling into the direction
+ specified by the vector 'dir' as single transformation step.
+ This option is EXPERIMENTAL! See https://szs.wiimm.de/opt/ascale
+ - KMP object database updated.
+
+
+szs v1.19a r4461 - 2013-06-02
+
+ - wszst CHECK: Check existence of minimap bones 'posLD' and 'posRU'.
+ Read https://szs.wiimm.de/cmd/wszst/check#desc for a list of all tests.
+ - Check commands: KMP objects with presence flag == 0 will be handled as
+ non existent. This changes the missing files status and the slot proposals.
+ - KCL type names synchchronized to Wiki.
+ - Bug fix: If a function was searched and a const was defined with the same
+ name, a `segmentation fault´ (or similar) occured.
+ - New command: wkmpt STARTPOS: Print the start positions of players in
+ various formats. See https://szs.wiimm.de/cmd/wkmpt/startpos for details.
+ - Patching option --kmp accepts now the keywords LEFT, RIGHT, WIDE and NARROW
+ to modify the start options in section STGI.
+ - New global option --de: Use german track and arena names.
+ - Command FILETYPE --long: Column with version of file format added.
+ - wszst EXTRACT/CREATE: The version number of the archive file format is
+ stored in and read from the help file 'wszst-setup.txt' to support version
+ dependent file formats.
+ - BREFF and BREFT:
+ - Version numbers are printed in listings with version support.
+ - The file format version number is written to 'wszst-setup.txt' on
+ extracting and read from read from 'wszst-setup.txt' on creating.
+ - The default aligning for BREFT files depends now on the version number.
+ It is 0x20 for versions <10 (MKW=9) and 0x40 for versions >9 (NSMB=11).
+ At the moment the new alignment for NSMB is not well tested!
+
+
+szs v1.19b r4482 - 2013-06-14
+
+ - Bug fix: If resizing an image (e.g. for mipmaps), an INTERNAL ERROR
+ appeared sometimes because of an unhandled combination of image type
+ and image size (odd height or width). [Thanx to HelloImYourMind]
+
+
+szs v1.20a r4548 - 2013-07-21
+
+ - New Option for wszst and wimgt: --smart:
+ If resizing an image, use the new smart resize function. The new function
+ is much slower (factor 2-4) than the old function, but creates much better
+ resized images. This is only relevant for creating mipaps with odd width
+ or height. THIS NEW FUNCTION IS EXPERIMENTAL!
+ - Support of original SketchUp OBJ exporter, see next 2 points for details:
+ - More tolerant detection of Wavefront OBJ files. Export of the original
+ SketchUp exporter will be recognized as 'SKPOBJ' instead of 'WAVOBJ'.
+ - New --kcl flags: 'G' and 'USEMTL': If scanning an OBJ file, these flags
+ decides, which OBJ commands will define groups. If none is set (default)
+ 'USEMTL' is used for files of type 'SKPOBJ' and 'G' for all others.
+ - Command 'wkclt CFF' accepts now option --brief to suppress the comment
+ '# f(type,variant)' and option --long to force a '= f(type,variant)'
+ parameter.
+ - Suppress some patch logging messages for CHECK commands.
+ - CHECK KMP: If option --long is set, print some additional statistics.
+ - Some error messages are more exact now.
+ - Bug fix: If using options --test and --remove together, the destination
+ file was removed sometimes (but not created).
+ - New patching option: --tform-kmp=list: Fine control about the sections
+ and objects (position, rotation or scale vector), that are transformed.
+ See https://szs.wiimm.de/opt/tform-kmp for details.
+ - Windows only: Cygwin update to v1.7.20 2013-06-07.
+
+
+szs v1.21a r4578 - 2013-09-07
+
+ - Improved built-in help system. Type e.g. "wszst help help" or visit
+ https://szs.wiimm.de/cmd/wszst/help for details.
+ - New keyword for option --kmp: FORCE: Ignore little repairable file structure
+ issues on reading KMP files. Works like --force, but only for KMP files.
+ - Bug fix: The check for the right position of all KMP sections failed.
+ - Optimized handling for SZS sub files with 'out of range offsets'.
+ - wszst: Option --auto-add can now be used together with the commands PATCH
+ and NORMALIZE. EXPERIMENTAL!
+ - Bug fix: Wrong calculation of parent directory index in U8 header fixed.
+ This bug existed from the beginning of the SZS tools and it seems, that it
+ had no impact for running a track or for other tools. However, the positive
+ impact is, that the creation of the files Track.szs, Race.szs and the other
+ language independent SZS files of MKWii directory './Scene/UI' works now.
+
+
+szs v1.22a r4602 - 2013-09-14
+
+ - The Windows installer will now force type REG_EXPAND_SZ for path variables.
+ - New commmand: wbmgt MIX: Works like CAT, but combines all input files.
+ - Exported BMG text files will now show all characters of the Unicode Basic
+ Multilingual Plane (BMP; codes <=0xfffd) without escape sequences.
+ - Tool wbmgt: Option --single-line supports now 2 levels and option --brief
+ 3 levels. See https://szs.wiimm.de/opt/wbmgt/single-line and
+ https://szs.wiimm.de/opt/wbmgt/brief for details.
+ - New option: wszst --patch-bmg: Patch BMG sub files directly. There is no
+ more need to extract BMG files before patching.
+ - New option for tools wszst and wbmgt: --msg=list: If set, the BMG messages
+ are filtered by this list. Only enabled messages are exported to the ouput
+ BMG file (binary or text).
+ - If an archive (SZS,...) is found while reading a BMG file, the archive is
+ searched for BMG sub files and found sub files together are used as BMG
+ source.
+ - wstrt can now detect main.dol files and its type (PAL, USA, JAP or KOR).
+ - Option --kmp accepts now the keywords 1LAP, 2LAPS ... 9LAPS to modify the
+ first byte of KMP/STGI (number of laps). This first byte has only impact on
+ patched main.dol files.
+
+
+szs v1.23a r4682 - 2013-10-05
+
+ - Exported BMG text files will now show all characters of the Unicode Basic
+ Multilingual Plane (BMP; codes <=0xfffd) without escape sequences. New is,
+ that surrogates and private ranges are always printed as escape sequences.
+ - New options for BMG text output: --color and --no-color: If enabled, colors
+ are printed as new escape sequence "\c{color}". 'color' is either a known
+ color name or a hex number with 4 digits. At the moment, --no-color is
+ the default to avoid problems with old versions and other externl tools.
+ In 2014 --color shall become the default. However, the BMG text scanner
+ accepts the new escape sequence from now and independent of these options.
+ - New modes for option --patch-bmg: 'ID', 'ID-ALL', 'CT-COPY' and 'CT-FILL'.
+ See https://szs.wiimm.de/opt/patch-bmg for details.
+ - New command: wstrt DUMP: Dump the data structure of DOL files as text.
+ - wstrt ANALYZE: Analyze DOL files and compare them section by section with
+ the orginal main.dol file of MKWii.
+ - New command: wstrt EXTRACT: Extract the sections of a DOL file into a
+ directory. StaticR.rel files are ignored.
+ - New global option: --ctcode: Enable the CT-CODE mode of the tools.
+ See https://szs.wiimm.de/doc/ctcode for details and about CT-CODE.
+ - wstrt PATCH --add-ctcode: Add CT-CODE to original main.dol files.
+ - New tool: wctct: Manage CT-CODE. See https://szs.wiimm.de/wctct and
+ https://szs.wiimm.de/doc/ctcode for details.
+
+
+szs v1.24a r4703 - 2013-10-14
+
+ - Bug fix for wctct: Winning + losing ceremony after GP enabled.
+ - wctct: More possible names for music and property ids.
+ See https://szs.wiimm.de/doc/slot-id for details.
+ - Transforming complete tracks: VRCORN will now patched by default, if not
+ excluded by option --patch-file=list.
+ - Linux 'make': LIBPNG will be linked as static library, if available.
+
+
+szs v1.25a r4715 - 2013-10-27
+
+ - New KMP command for CKPT, ENPT and ITPT: $SPLIT: Split the group into 2 or
+ more peaces. See https://szs.wiimm.de/doc/kmp/syntax#ckpt-grp for details.
+ - New KMP parameter for ENPT and ITPT: @AUTO-FILL: Add additional points if
+ the distance between points is smaller than the defined value.
+ See https://szs.wiimm.de/doc/kmp/syntax#enpt-par for details.
+ - KMP compiler: New snap variant to define x- and y-rotation.
+ See https://szs.wiimm.de/doc/kmp/snap for details.
+ - Command 'wkmpt COBJECT' accepts now option --kcl-script to filter the
+ exported OBJ file.
+ - Some small fixes for tool wctct.
+
+
+szs v1.26a r4726 - 2013-11-10
+
+ - Bug fix: A patched file was not marked as dirty (and not written), if only
+ BMG was patched and only with modes 'ID' or 'ID-ALL'.
+ - New option --export (-X): Enable the export mode and create small and
+ machine readable text files for easy post processing. The option works
+ similar like -HBB for KMP and like -HBl11 for BMG text files.
+ - Windows version only: Update to Cygwin v1.7.25. I hope that it fixes the
+ bug that occurred during creation of MKW-Fun 2013-10 with Windows 8.1.
+
+
+szs v1.27a r4742 - 2013-11-24
+
+ - Bug fix: Occasional a triangle was marked as invalid by mistake, if it was
+ inserted by the script function tri$create() (option --kcl-script).
+ - Minimap fixing: From now the minmum and maximum values of the MDL.s1 root
+ are set too.
+ - KMP check: A test added, which controls, that the check points are not to
+ near together and that they build convex quadrilaterals.
+ See https://szs.wiimm.de/cmd/wkmpt/check#desc for check details.
+ - KMP check: Some WARNINGS are HINTS now.
+ - New transformation option: --tform-script=script
+ The script is loaded and a macro is called for every vertex. So it is
+ possible to add user defined and also non linear transformations.
+ See https://szs.wiimm.de/opt/tform-script for details.
+ - New parser functions: status(), len2(), hlen2(), sideOfLine(),
+ ptInConvexPolygon(), ptsInConvexTri(), ptsInConvexQuad().
+ See https://szs.wiimm.de/cmd/wszst/functions#desc for details.
+
+
+szs v1.28a r4771 - 2013-12-09
+
+ - There was a disorder using the escape sequences '%E' and '%T' for file
+ extensions/types. '%E' included a leading point, '%T' only sometimes.
+ Henceforth both will include then leading '.' or are empty, if no file
+ extension is available. So the earlier '%N.%T' becomes '%N%T'.
+ - Command wkmpt COBJECT will now also draw the start position with area, the
+ respawn positions with area, the POTI routes and standard itemboxes. See
+ https://szs.wiimm.de/opt/draw for details.
+ - Command wkmpt COBJECT: Check points with quadrilateral warnings are drawn
+ in red. This option can be disabled by --draw=-warn.
+ - New KMP check: Test, if all enemy and item root points are inside of at
+ least one convex check point quadrilateral.
+
+
+szs v1.29a r4788 - 2013-12-13
+
+ - Command 'wkmpt COBJECT' was renamed to the more intuitive name
+ 'wkmpt DRAW'. The old command name can still be used.
+ - Option --draw has now a short twin: -w
+ - Option --draw supports the new keyword SOLIDOBJECTS: Draw all solid objects
+ without any route as a blue octahedron. At the moment, the native object
+ size, scaling and rotation are ignored.
+ - Command 'wkmpt DRAW --draw ITEMBOXES' draws itemboxes like in-game as a
+ grey cube with a vertex down. The color for itemboxes with special items
+ for players or enemies is dark grey.
+ - New KCL script functions: tri$createOctahedron(), tri$createAntiPrism()
+ and tri$createAntiArrow().
+
+
+szs v1.30a r4810 - 2013-12-27
+
+ - Object export (wkclt DECODE & wkmpt DRAW):
+ - The default for normals changed. Normals will only be included if the
+ keyword NORMALS of option --kcl is set. The new default is better for
+ the SketchUp OBJ importer plugin in time and correctness.
+ - The ambient color of the material 'Ka' is not longer defined.
+ - Bug fix: If the object needed more than 65535 vertices, then a wrong OBJ
+ was written with indices modulo 65536.
+ - wkmpt DRAW: The following objects are drawn in correct size and with a
+ recognizable form and color: itembox, obakeblockSFC*, dokan*, karehayama
+ and all trees.
+ - KCL: Improved error system, if a KCL has more than 65535 normals. Before
+ aborting, the normals are rounded in multiple steps to find duplicates.
+
+
+szs v1.31a r4828 - 2014-01-03
+
+ - BMG handling: \c{color} escape sequences in text output are now enabled
+ by default. To be compatible with old tool versions (v1.22a released at
+ 2013-09-14 and older versions), use option --no-color.
+ - wctct: Support of hex coded filenames for the 32 original tracks.
+ - Windows only: Cygwin update to v1.7.27 2013-12-09.
+ - New option: wstrt --all-ranks: Manipulate a query for Nintendos servers, so
+ that all players in a region are found independent of their ranking points.
+
+
+szs v1.31b r4841 - 2014-01-17
+
+ - KCL bug fix: Creating and managing the flag file failed sometimes.
+
+
+szs v1.32a r4958 - 2014-02-07
+
+ - wszst+wbmgt: Options --color and --no-color have new meanings (see next
+ point). Instead of the old option --no-color, there is a new option named
+ --no-bmg-color to suppress '\c{color}' escape sequences of BMG files.
+ - New global options for all tools: Option --color forces colorized text. It
+ is enabled by default for output to terminals. Option --no-color disables
+ colorized text at all. At the moment only the commands COLORS, CHECK and
+ SLOTS support colorized text.
+ - New command: COLORS: Test colorized text by printing it in different modes
+ (colors, bold, underline). Also test the options --color and --no-color.
+ - Bug fix: A patched BMG file was not marked as dirty (and not written), if
+ only some characters in the second half of the string are modified and the
+ length don't change (compared N bytes and not N words).
+ - Bug fix: wstrt patch --region=name: New assignment of region names to
+ region numbers: 0=Japan, 1=America, 2=Europe, 3=Australia, ...
+ - KMP/STGI: Support of the last 2 bytes as `speed modifier':
+ - On output, the factor is appended as comment.
+ - On input, a floating point number instead 2 single bytes is accepted
+ as speed mulitplier. The floating point number is rounded to the nearest
+ possible number (16 bit cut float with only 7 bits for the mantissa).
+ - New option for tools wszst and wkmpt: --speed-mod=factor: Define a speed
+ modifier and patch KMP files.
+
+
+szs v1.33a r4983 - 2014-03-01
+
+ - Colorized patch log.
+ - New Command: wszst COPY source dest: COPY is an alternative command for
+ copying and pathing files. It uses the same internal procedure as command
+ PATCH, but has another command line syntax.
+ - New mode for option --kmp: FIX-CKJGPT: Fix invalid links to respawn points.
+ - wszst CHECK: Test geometry of images:
+ - Warnings about invalid images with zero width or height.
+ - Warnings about images with width or height not power of 2.
+ - Hints about images with width or height >1024.
+ See https://szs.wiimm.de/cmd/wszst/check#testlist for details.
+ - wszst CHECK: Count and warn about the number of vertices in MDL files
+ of 'course_model.brres', 'map_model.brres' and 'vrcorn_model.brres',
+ and about the total of all MDL files.
+ - New KMP checks for wszst+wkmpt CHECK:
+ - STGI: Print modified lap counter.
+ - STGI: Print invalid start position or mode.
+ - STGI: Print defined speed modifier.
+ See https://szs.wiimm.de/cmd/wkmpt/check#testlist for details.
+ - The tools 'wkclt' and 'wbmgt' accept the literal "0" as source filename for
+ an empty file (like "-" for stdin).
+ - Windows only: Cygwin update to v1.7.28 2014-02-09.
+
+
+szs v1.34a r5070 - 2014-04-19
+
+ - New Option --slot=keyword: Patch a track file to run at the specified slot.
+ KMP and KCL may be modified. BRRES files may be added to or removed from
+ SZS. The main keywords are DAISY, DESERT, SHERBET, SHYGUY, STANDARD and
+ MOST. Slot numbers (except '42' or '4.2') are also accepted.
+ See https://szs.wiimm.de/opt/slot for details.
+ *** THIS NEW OPTION IS EXPERIMENTAL! ***
+ - New patch option: --https=mode: Patch the https strings of REL and DOL
+ files. 'mode' is one of the following keywords:
+ - RESTORE restores the original URLs and domains.
+ - HTTP replace HTTPS requests by HTTP and sub-domain 'naswii.' by 'nas.'.
+ - DOMAIN replace HTTPS requests by HTTP and domain 'nintendowifi.net' by
+ a domain specified by the option --domain.
+ - PORT1 sets the domain specified by option --domain in combination with
+ ports 90-93.
+ - PORT2 is like PORT1, but it uses 'mariokartwii.DOMAIN' to replace the
+ 'mariokartwii.race.gs.nintendowifi.net' domain.
+ - New patch option: --domain=dom: Define a domain for option --https. The
+ default domain is 'wiimmfi.de'.
+
+
+szs v1.35a r5184 - 2014-05-16
+
+ - Two more modes for option --https:
+ - SAKE0: Same as DOMAIN, but don't replace URLs with SAKE domain.
+ - SAKE1: Same as SAKE0, but replace HTTPS of SAKE domains.
+ - New option: wstrt --wiimmfi: Patch the files for the new custom server.
+ It is a short cut for '{--https=domain --domain=wiimmfi.de}'.
+
+
+szs v1.35b r5386 - 2014-07-02
+
+ - wstrt ANALYSE: Bug fix: HTTPS hint for original files removed.
+ - wstrt PATCH: Bug fix: Some forgotten 'https' and 1 'sake' are patched now.
+
+
+szs v1.35c r5394 - 2014-07-03
+
+ - wstrt PATCH: Another 'https' bug fixed.
+
+
+szs v1.36a r5680 - 2014-10-18
+
+ - New command: wstrt+wbmgt POINTS: Print a table with points assigned after
+ a versus or private room race. This command should help to find a good
+ parameter for option --points.
+ - New option --points=list: Define a new table with points assigned after a
+ versus or private room race. Predefined tables are:
+ NINTENDO: Original Nintendo table.
+ LINEAR: Last get 0 points, all other 1 point more than successor.
+ WIN15: Winner = 15 points, last=0, all other are evenly distributed.
+ WIN25: Winner = 25 points, last=0, all other are evenly distributed.
+ For LINEAR, WIN15 and WIN25 there are some options:
+ ONE: Last get 1 point instead of 0.
+ BONUS: Winner get a bonus of 1 point.
+ See https://szs.wiimm.de/opt/points for details.
+ - Windows only: Cygwin update to v1.7.32 2014-08-13.
+
+
+szs v1.36b r5690 - 2014-10-21
+
+ - Bug fix: If transforming a track, the minimap became sometimes invisible.
+ The reason was, that the minimum and maximum parameters of the vertex list
+ were not calculated and not stored to reflect the new coordinates.
+ - New patching option: --null: Create a neutral transformation without
+ affecting the coordinates. The only influence is, that the dependent values
+ (like maximum) are calculated as if a transformation has taken place.
+ This option helps to fix the transforming bug mentioned above.
+
+
+szs v1.37a r6010 - 2015-02-08
+
+ - New color management.
+ - Object database updated.
+ - New wstrt options --vs=ch & --bt=ch: Replace the second letter of
+ versus/battle identification ('vs','bt') to a new character.
+ - Windows only: Cygwin update to v1.7.34-6 2015-02-04.
+
+
+szs v1.38a r6056 - 2015-02-27
+
+ - Tools WSZST contains now all other tools. It can be called in the usual way
+ or as tool wrappers. See https://szs.wiimm.de/doc/wrapper for details.
+ - wkmpt DRAW: If the drawing of itemboxes or other solid objects is enabled,
+ the routes of movable itemboxes or other solid objects are drawn too.
+ - Two new keywords for option --patch-bmg defined:
+ - CT-FORCE-COPY: Copy all standard track and arena name messages to
+ MID 4000..4029 and overwrite existing strings.
+ - RM-CUPS: Remove racing cup names (MID 23f0..23f7) from BMG.
+ - New keyword for option --msg=list: CTTRACKS enables the messages for the
+ CT-CODE track names (MID 4000..40ff).
+ - New option wctct --write-tracks=file : Create a machine readable file
+ reflecting the track distribution to the cups. --wtracks is a short cut.
+ - New option wctct --order-by=bmg : Load the BMG file and filter track
+ names. Then order the tracks in the cups by the alphabetic order of the
+ BMG messages. The tracks and its slots are notmodified.
+ - New option wctct --order-all : Option --order-by will order all tracks.
+ - New command wctct PATCH : Read each source file, find and scan the
+ CT-CODE part and patch it.
+ - New command wctct TRACKS: Create a track listing.
+
+
+szs v1.39a r6123 - 2015-03-27
+
+ - BMG files: Support of new color names YOR0..YOR7: 8 continous colors from
+ (Y)ellow to (O)range to (R)ed. For compatibility reasons, hex-codes are
+ used instead of the new names on text output.
+ - wctct: Minor bugs fixed for handling BMG files.
+ - wctct CREATE: Support of output modes EU-BRRES, US-BRRES, JP-BRRES, EU-SZS,
+ US-SZS and JP-SZS to create strap files, either uncompressed (xx-BRRES) or
+ compressed (xx-SZS).
+ - New option: wctct CREATE --images=dir: Define a directory where the images
+ for BRRES or SZS files are searched.
+ - KMP/GOBJ/ELINE_CONTROL: Use group names instead of index numbers for links
+ into section ENPH. Reordering of groups is stable now. In section ENPT a
+ cross reference to ELINE_CONTROL objects is printed.
+ - New option for wstrt: --vs-region and --bt-region: Define different regions
+ for versus races and battles.
+ - New: wszst SHA1 --base64: print the checksum as BASE64 encoded string.
+ - New: wszst SHA1 --verify: Compare a checksum integrated in the filename.
+
+
+szs v1.40a r6162 - 2015-04-13
+
+ - wstrt: The region is now patched at 4 places at StaticR.rel for versus
+ races and at 4 other places for battles. Versus and battle can be patched
+ to different regions.
+ - BMG: Each BMG string has an additional 32-bit value. In old versions,
+ a value different from 0x01000000 is printed as separate line using the
+ format 'NAME ~ VALUE'. With this version, also a combiantion of value and
+ string is possible. The new format is: NAME [value_vector] = STRING'.
+ At scanning, both formats are accepted.
+ - The new option --bmg-inline selects the new inline format for output.
+ It will be the default in the future.
+ - The new option --no-bmg-inline selects the old separate line format for
+ output. At the moment it is the default for compatibility reasons.
+ - Full support of PAT0 binary and text files including decoding and encoding:
+ - 2 models for text output are used. SIMPLE for all standard PAT0 files
+ and COMPLEX for PAT0 with extended features (e.g. multiple animations).
+ - The internal parser is used to scan text files (SIMPLE and COMPLEX).
+ - New tool 'wpatt': Wiimms PAT Tool: Decode and encode PAT0 files.
+ - Tool 'wszst' decodes on extract and encodes on archive creation if the
+ text file was touched.
+ - The new option --pat=list defines global options for PAT processing.
+ - Support of PACK archives (list, extract and create).
+ - New option --pack: Force a PACK archive on CREATE.
+ - New option --align-pack=size: Define the alignment for PACK sub-files.
+ - The tools of the Linux distributions are compiled now with static libraries
+ to improve the compatibility with various Linux systems.
+
+
+szs v1.41a r6469 - 2015-09-04
+
+ - Bug fix: wstrt patch --region: Changing the region in a staticr.rel file
+ was internally not registered as modification with the result, that the
+ patched file was not rewritten.
+ - New option for wkmpt DRAW: --png geometry: A PNG with a top view of the
+ world is created instead of an OBJ file. Use rotation to view into other
+ directions. This is very slow.
+ - Internal sub-file database: Files "posteffect.bblm", "posteffect.bdof" and
+ "VolcanoPiece*.*" are now marked as 'optional'. The new classification
+ suppresses "Missing file:" warnings on checks.
+
+
+szs v1.42a r6527 - 2015-10-03
+
+ - New commands: wszst STGI & wkmpt STGI: Print a single line statistic about
+ KMP/STGI settings (start pos, speed mod, laps) for each source file.
+ Both commands do the same and accept track and KMP (bin and text) files.
+ - New option: wstrt --add-section: Add a new section to a main.dol file.
+ It's also possible to add a gecko code interpreter together with cheat
+ codes, e.g. the Lap & Speed Modifier.
+
+
+szs v1.43a r6536 - 2015-10-09
+
+ - Option --add-section supports now GCT files as input. In this case,
+ code-handler-only is added automatically.
+
+
+szs v1.44a r6558 - 2015-10-17
+
+ - BMG: The `inline mode' for attributes is now enabled by default. It can be
+ disabled by option --no-bmg-inline.
+ - BMG message id 0 is allowed now.
+ - BMG: Support of 1A escapes with up to 254 bytes (before 12 bytes).
+ - BMG: Escape sequences \x{}, \u{} and \z{} can now handle comma separated
+ lists of parameters. See https://szs.wiimm.de/doc/bmg/esc for details.
+ - New option: --x-escapes: Use \x{} escapes instead of \z{} escapes.
+ - New option: --old-escapes: To be compatible with v1.43 and earlier, print
+ 1A escape sequences with total size of >12 bytes as single words. Also
+ don't use \x{} and \u{} with parameter lists.
+ - BMG supports now attribute vectors up to 20 bytes. MKWii uses only 4 bytes
+ for attributes.
+ - New option: --bmg-inf-size (also --inf-size for tool wbmgt):
+ Defines the size of section 'INF0'. For MKW it is usually 8.
+ - New option: --force-attrib=attrib: Override all BMG attributes with the
+ entered value. See https://szs.wiimm.de/doc/bmg/attrib for the syntax.
+ - New option: --def-attrib=attrib: Define alternative default attributes for
+ new BMG text files. See https://szs.wiimm.de/doc/bmg/attrib for the syntax.
+ - New option: --no-attrib: Suppress the output of string attributes at new
+ BMG text files.
+
+
+szs v1.45a r6602 - 2015-10-31
+
+ - Option --patch-bmg=id: Better detection of the source file type (Race,
+ Event, MenuOther, ... ) especially in SZS files.
+ - The KMP compiler can now automatically create respawn points and/or
+ automatically connect check points to the nearest respawn point. Both
+ together make an initial respawn setup much easier.
+ Read https://szs.wiimm.de/info/respawn-setup.html for details.
+ - Tool wctct: It is now possible to define hidden tracks (don't appear in
+ any cup) by using control letter 'H' instead of 'T'.
+ - New option: wctct/wstrt --ct-dir: Define a search directory for CT-CODE
+ parts and use the internal copies only, if no valid file is found. Use
+ this option multiple times to define more than one search directory.
+ - wctct --ct-dir: Search files rmc?/mod1.bin, rmc?/mod2.bin, rmc?/ovr1.bin
+ and rmc?/bad1code.bin.
+ - wstrt --ct-dir: Search files rmc?/boot_code.bin and rmc?/boot_data.bin
+ if option --add-ctcode is used.
+ - Tools wctct and wstrt use now the most current CT-CODE version provided by
+ https://github.com/Wiimm/wii-ct-code (a fork of Chadderz code with support
+ of the SZS Tools). To use the old code of year 2013 download the zip file
+ https://szs.wiimm.de/download/ctcode/ctcode-2013-10.zip and use the base
+ directory as parameter for the new option --ct-dir (see above).
+ - wstrt --add-ctcode: The first free DOL sections are used now. Before only
+ sections T2 and D8 were added if not already in use.
+ - New option: wstrt --meno: Patch some 'MenuSingle' and 'MenuMulti' strings
+ of file StaticR.rel for online usage to 'MenO*' to distinguish between
+ offline and online.
+
+
+szs v1.46a r6626 - 2015-11-08
+
+ - New option: --compatible=version: The option accpets 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. This may override other legacy options.
+ - wkmpt DECODE: If creating a KMP text file, a new macro section is included.
+ The only yet provided macro is ITEMBOX: It help to setup a row of items
+ and supports automatic height correction. See the macro definition for more
+ details. The macro itself is very old and works also with old versions of
+ the tools, but they don't create it.
+ - wkmpt DRAW: Draw objects 'kinoko_*' and 'DKturibashiGC' as recognizable
+ polygons. These objects can also be used to stop fall-down on automatic
+ height evaluation, if the new parameter 'KCL-FALL-ADD-ROAD' is set to '1'.
+ - New: Post processing flags for KMP sections ENPT, ITPT and JGPT. To disable
+ the new flags column on text output, use option --compatible=v1.45.
+ - wkmpt DRAW: If drawing check point connection lines, red is used for the
+ left and green for the right side (like navigation lights).
+ - wkmpt DRAW: Option --draw supports now object filtering by presence flag.
+ The new keywords are: 1OFFLINE .. 3OFFLINE and 1ONLINE .. 3ONLINE.
+
+
+szs v1.47a r6650 - 2015-11-27
+
+ - Tool wctct: Update of the internal CT-CODE (mod2). The new code improves
+ the modes "in order" and "random" for offline versus races. Here you can
+ find old CT-CODE version: https://szs.wiimm.de/download/ctcode/
+ Visit https://github.com/Wiimm/wii-ct-code/ for more details.
+
+
+szs v1.48a r6675 - 2015-12-11
+
+ - Tools wctct and wstrt support now Korean CT-CODE. Therefor external CT-CODE
+ files are needed. Use --ct-dir=path to declare at least one search path.
+ - Bug fix: wctct disables the hard coded region patch of the CT-CODE. Now
+ region patches in StaticR.rel are possible like before v1.45a.
+ - Bug fix: On CT-CODE text export wctct encloses the track names by quote
+ signs. This feature was accidentally lost with v1.38a.
+ - New option: wctct --allow-slots: Activate reserved slots for automatic
+ slot assigning. Example: --allow-slots ARENAS,SPECIAL
+
+
+szs v1.49a r6974 - 2016-03-05
+
+ - The BMG is rewritten as independent source code lib. It can be used by
+ other tools (e.g. mkw-ana) now.
+ - BMG text output contains now more comments about message ID groups.
+ - Option --patch-bmg supports 2 new modes:
+ - UNICODE: Replace Unicode-escapes ('\u{xx}') with 16-bit codes by related
+ unicode character.
+ - RM-ESCAPE: Remove all 0x1a-escapes from all strings.
+ - KCL script 'lower-walls.txt' updated to support different gradients.
+ - New option: --mipmap-size=num: Define the minimal width and minimal height
+ of a generated mipmap. The default is 16. Tools before v1.49 used 1 as not
+ alterable value. --mm-size is a short cut.
+ - Option --kcl RM-FACEDOWN: Remove all road with face direction >30 degree
+ toward bottom. Before it was >0 degree.
+ - New keyword for option --kcl: RM-FACEUP: Remove all walls with a face
+ direction >80 degree towards the sky.
+ - New keyword for option --kcl: CONV-FACEUP: Convert all walls with a face
+ direction >80 degree towards the sky into a simple road.
+ - New keyword for option --kcl: SCRIPT: If set, KCL scripts are executed
+ before cleaning and transforming the KCL.
+
+
+szs v1.50a r7053 - 2016-04-08
+
+ - Improved cheat code handling.
+ - Three new options: --gct-move & --gct-addr & --gct-space
+ With these 3 options it is possible to support a very large cheat code
+ table. Therefor a temporary section is created that runs at the very
+ beginning and takes space from the game heap to establish a code section
+ before the FST table.
+ - Tool wctct: Update of the internal CT-CODE (mod1). The new code allows to
+ select original tracks in regions. Here you can find old CT-CODE versions:
+ https://szs.wiimm.de/download/ctcode/
+ Visit https://github.com/Wiimm/wii-ct-code/ for more details.
+
+
+szs v1.51a r7107 - 2016-06-01
+
+ - wstrt is able to patch DOL files of other games and not only of MKWii.
+ - The CHECK for slot 4.2 will be more exact now because it looks for the
+ needed materials. The presence flags of objects 'car_body' and 'kart_truck'
+ is also tested. If option --OLD is set, the old polygon test will be used.
+ - Option --kmp=list supports now the keyword REVERSE as `backwards´ support:
+ Reverse KMP sections ENPH, ENPT, ITPH, ITPT, POTI. The implementation is
+ not finished yet and more section (CKPH, CKTP, KTPT, JGPT) will follow.
+ - Different small fixes.
+
+
+szs v1.52a r7164 - 2016-06-29
+
+ - Bug fix for wkclt: Since v1.49a, the transformation was executed twice,
+ but only for commands DECODE and ENCODE. Command COPY works correct and
+ transforms only once.
+ - wstrt: Wiimmfi patching excludes now 3 patch positions for competitions.
+ It's now the job of the competition patcher to patch these 3 URLs.
+ - wkclt CFF: If creating a new flag file, the new function i(type,z,index)
+ is defined as support for fall boundaries (idea by Wexos).
+ - New tool: wmdlt: The tool wmdlt exists since v0.26a (2012), but was always
+ hidden, because it was useless. But now I started with MDL analysis and
+ plan to modifiy MDL data.
+ - wmdlt CAT/DECODE: Print a MDL file as text. It is incomplete, but can be
+ used for analysing.
+ - wmdlt STRINGS: Print all strings of a MDL.
+ - For slot 42 (moonview highway) the content of the 12 needed materials
+ is checked.
+
+
+szs v1.53a r7308 - 2016-12-09
+
+ - Bug fix: Occasional a "Segmentation fault" occured, if reading an empty file.
+ - Option --draw supports the new keyword DECORATION: Draw unsolid objects
+ without any route as a magenta cuboid.
+
+
+szs v1.54a r7393 - 2017-08-14
+
+ - Some KCL flags renamed.
+ - wkmpt draw --draw AREA: Areas of KMP are drawn as yellow arrows and as
+ transparent yellow cuboids.
+ - Support for RKC (competition) files added:
+ RKC files are handled like other archives. Tool wszst is able to detect,
+ list, extract or create a RKC file, also recursive. Direct creation and
+ optimation of the included SZS is not implemented yet.
+ - New keyword for option --kmp: MAX-LAPS: Keyword MAX-LAPS has only impact,
+ if one of 1LAP,...,9LAPS is set too. Then, the number of laps is only
+ decreased to the specified number, but never increased.
+ - New keyword for option --kmp: RM-EMPTY: After creating a new KMP, all empty
+ KMP sections are removed to make the KMP as small as possible. Use this
+ option only for compettitions!
+ - New command: YAZDUMP: Prints an info dump about the YAZ0/YAZ1 compression
+ details for analysis.
+ - New compression methods: 10 (=ULTRA) and 100-150: They need much more time
+ than BEST (=9) but create smaller SZS files than Nintendo did. It is
+ dedicated to competitions with strict size limitations.
+ - There is a new option: --tiny=level: It tries to minimize SZS and also the
+ included KCL and KMP by different technics (rounding values, sorting and
+ compression methods 100-150). It is not fully documentd yet.
+ See https://szs.wiimm.de/info/tiny.html for details.
+ - New keyword for option --kcl: WEAK-WALLS: Set the most significant bit
+ (bit 15, 0x8000) of KCL flag of all walls. It stops hard bumping at the
+ edges and has similar effects like lowering the walls.
+ - Windows only: Cygwin update to v2.8.1, 2017-07-03.
+ - Apple Mac is no longer supported because I no longer have access to a Mac.
+
+
+szs v1.55a r7429 - 2017-11-11
+
+ - New command: wszst DISTRIBUTION: The aim is to create a text file that
+ describes a custom track distribution. The owner have to edit the created
+ file and send it to Wiimm. Wiimm add the information to the custom track
+ portal https://ct.wiimm.de/ with a complete track list.
+
+
+szs v1.55b r7437 - 2017-11-19
+
+ - wszst DISTRIBUTION: New parameter: PREDECESSOR
+ - wszst AUTOADD: With option -v, the command will list invalid files too.
+
+
+szs v1.56a r7461 - 2017-12-03
+
+ - wszst DISTRIBUTION: Track scanning improved.
+ - Option --cache is a global option now. It is used to speedup every YAZ0
+ compression, but only for standard compression level 9 (BEST). A hash table
+ is used now for optimization.
+ - New option: --cname: Defines a cache file name for a single file.
+ - New Command: wszst SCANCACHE: Scan the cache directory for SZS files and
+ re-build the hash table.
+
+
+szs v1.57a r7484 - 2018-04-11
+
+ - Windows version only: Update to Cygwin v2.10.0.
+ - New option for tools wkclt, wszst and wkmpt: --kcl-min=FLOAT: Define a
+ minimal `length` of KCL triangles. The length is the heights of the
+ reference side of the triangle. Smaller triangles are invalidated and
+ ignored or removed. The default value is 0.1 and good values are between
+ 0.01 and 2.0. Until v1.56a the minimal length was hard coded as 1e-6
+ (1/million) to avoid mathematical overflows while calculating positions
+ by normals. The larger value reduces the number of KCL glitches
+ dramatically for some tracks with many unusual triangles.
+ - New option: --wc24: If set, options --wiimmfi and --domain will exclude
+ 2 strings of StaticR.rel from the URL patch to enable WC24 support.
+
+
+szs v1.58a r7499 - 2018-04-20
+
+ - Option --kcl-min=EXPR: This option is deprecated, but still supported. It
+ is an alternative name for --tri-height=EXPR now.
+ - New option --tri-area=EXPR: Define the minimal area size of KCL triangles.
+ The intention is to ignore triangles that are generally to small. EXPR is
+ a floating point number or expression. Triangles are invalidated if their
+ area size is smaller than EXPR. The test is executed after reading files,
+ after transformations, and after calculating normals and lengths. Values
+ between 0.01 and 4.0 are recommended. The careful value 1.0 is used as
+ default. Value 0 disables this filter functionality.
+ - New option --tri-height=EXPR: Define the minimal height of KCL triangles.
+ The intention is to ignore deformed triangles (very slim, but long). EXPR
+ is a floating point number or expression. Triangles are invalidated if at
+ least 1 of the 3 heights is smaller than EXPR. The test is executed after
+ reading files, after transformations, and after calculating normals and
+ lengths. Values between 0.01 and 2.0 are recommended. The careful value 0.1
+ is used as default. Value 0 disables this filter functionality.
+ - You can proof the impact of the options above by command wkclt TEST.
+ - Command wkclt DUMP has been expanded and shows metrics like side length,
+ area size and heights for each triangle.
+ - New command: wkclt LIST: Print a list of all triangles with metrics in
+ human and machine readable text format. It is like command DUMP, but
+ reduced to the list of triangles.
+ - New implementation for OBJ groups without assigned KCL flag. They will be
+ inserted into the OBJ export now.
+
+
+szs v1.58b r7503 - 2018-05-18
+
+ - Default value for options --tri-area and --tri-height is now 1.0.
+ - Some more minor edits.
+
+
+szs v1.59a r7533 - 2018-08-05
+
+ - Option --kcl-min is not longer supported. Use option --tri-height instead.
+ - The old file extension ".flag.txt" for KCL flag files is not longer
+ supported.
+ - wszst/wkmpt CHECK: Battle arenas are now detected in 2 levels: "some hints
+ found" and "is battle arena". Some hints and warnings are suppressed for
+ battle arenas.
+ - wszst SLOTS: For battle arenas, the keyword ARENA is printed instead of a
+ slot list.
+ - New option: --export-flags[=mode] (or short: --exflags): KMP compiler and
+ scanner support the export and import of KMP flags for sections ENPT, ITPT
+ and JGPT through a binary KMP file. Therefore, the last byte of the scale
+ or of the x-rotation is used. Values becomes inaccurate by 0.003% (not
+ relevant for scale or rotation and not noticeable while playing).
+ MODE is either OFF, AUTO (default) or ON. Without value, ON is used. ON and
+ OFF override the @EXPORT-FLAGS settings of a KMP text file.
+ - New option: --wim0[=mode]: KMP compiler and scanner support the export and
+ KMP parameters through a special KMP section named "@WIM0@". MODE is either
+ OFF, AUTO (default) or ON. Without value, ON is used. ON and OFF override
+ the @WIM0 setting of a KMP text file. This as an experimental feature at
+ the moment to proof the compatibility with other KMP tools.
+ - New command wkmpt WIM0: Analyze the WIM0 section of each KMP file (text,
+ binary or szs) and print an info about it.
+ - wkmpt DRAW: AREAs are drawn dependent of the mode either as a rectangle
+ cuboid or as a cylinder (more exact: as an anti prism with 20 sides).
+ - wkmpt: If creating a KMP by text file, the PREV and NEXT links of item
+ routes are checked. If missed, a link to self is added to avoid a freeze.
+ - Option --kmp FIX-CKPH,FIX-ENPH,FIX-ITPH: If a PREV or NEXT link is missed,
+ a link to itself is added. Before, a link to another group was inserted.
+ - Camera types 0 (Goal) and 3 (KartFollow) are excluded from transformation
+ and scaling now.
+ - KMP text files: STGI is printed with new column names according the new
+ knowledge of CT-Wiiki.
+ - Internal KMP GOBJ database updated by CT-Wiiki object table.
+
+
+szs v1.60a r7578 - 2018-08-21
+
+ - Improved detection of battle arenas by KMP. The output of KMP text files
+ of racing tracks and battle arenas differ.
+ - New option:--battle[=mode]: The mode is either OFF, AUTO (default) or ON.
+ OFF and ON override the automatic detection of battle arenas.
+ - wkmpt DRAW: The connections between ENPT and ITPT routes are drawn with
+ half width and a brighter color now. Additional, there is a distinction
+ between bidirectional links, PREV only and NEXT only.
+ - wkmpt DRAW: Dispatch points of KMP sections ENPT and ITPT are detected and
+ printed as octahedron. The NEXT links point to the nearest end of the
+ destination routes.
+ - New keyword for option --draw: DISPATCH: If set, the settings of dispatch
+ points of areans are visualized by colors to support the analysis.
+ - New keyword for option --draw: COINS: If set, draw coins as yellow, orange
+ or red cubus. Color and size depend on coin place type.
+ - New keywords for option --draw: BLACK and WHITE: If set, a very dark grey
+ (BLACK) or a very bright grey (WHITE) ground is inserted at height 0.0.
+ The rectangle encloses all valid triangles.
+ - New command: wkmpt ROUTES: Print out the new internal cross references for
+ routes of KMP sections CKPH, CKPT, ENPH, ENPT, ITPH and ITPT.
+ - The settings of KMP sections CKPH, ENPH and ITPH are printed as "$SETTINGS"
+ line if not zero. They are also scanned and stored into binary KMP. Usually
+ only section ENPH of battle arenas use these settings.
+ - New feature for KMP sections ENPT and ITPT to support battle arenas:
+ @AUTO-CONNECT=MODE: Control the automatic calculation of PREV and NEXT
+ links. One MODE is DISPATCH: Connect routes and dispatch points
+ automatically controlled by different settings. THe default is to link all
+ routes, if no links is defined.
+ - Auto created group names of ENPT begin with 'DP' instead of 'G', if
+ DISPATCH mode is active.
+ - PREV links of KMP sections CKPH, ENPH and ITPH are printed as "$PREV" line,
+ if either @AUTO-CONNECT is changed or the PREV link lists is different from
+ automatic calculated list.
+ - New global option: --route-options: Disable or enable the new features
+ $SETTINGS, @AUTO-CONNECT, ...
+ - wkmpt CHECK and wszst CHECK improved:
+ - Info about arena classification: NONE, MAYBE, ARENA, ARREA+DISPATCH
+ - Battle arena: Hint about non empty CKPT and ITPT.
+ - Battle arena: Warnings about empty ENPT.
+ - Racing track: Warnings about empty CKPT, ENPT and ITPT.
+ - Check the number of KTPT elements and find missed or multiple defined
+ player indices for battle arenas.
+ - Check the number of MSPT elements and print warnings about too less or
+ hints about too much records.
+ - Check number and valid types of coin objects.
+ - Some camera warnings reduced to HINT.
+ - New global option: --battle=mode: MODE is either OFF, AUTO (default) or ON.
+ OFF and ON override the automatic battle detection.
+ - New commands to be used behind $GROUP: $PREV and $SETTINGS.
+ - New commands to fine control @AUTO-CONNECT: $DEF-CLASS, $CLASS, $AC-PREV,
+ $AC-NEXT and $ONEWAY.
+ - New keywords for option --kmp: DUMP-CLASS, DUMP-ONEWAY, DUMP-ALL: Dump
+ reference lists at the end of section ENPT and ITPT.
+ - Internal KMP GOBJ database updated by CT-Wiiki object table.
+
+
+szs v1.61a r7601 - 2018-09-23
+
+ - Bug fix for the new route analysis (e.g. wkmpt DRAW): The positions were
+ wrong (e.g. NAN or too large) when analysing ITPT.
+ - New command: wszst ISARENA: Check the arena status of a SZS file, print a
+ status line and exit with an appropriate status code.
+
+
+szs v1.62a r7620 - 2018-11-07
+
+ - Windows version only: Update to Cygwin 2.11.1.
+ - Cygwin bug fix: Color support failed, if tools started in a Windows console
+ window or as script outside a Cygwin window.
+ - The text parser (mainly used to scan KMP text files) supports the new data
+ type STRING. Different string functions and command @EXEC added.
+ - Battle arena detection improved.
+ - New command: wstrt HEXDUMP: Dump the content of a DOL file ordered by the
+ memory addres. Enter "wstrt help hexdump" to get a list of the many ouput
+ formatting options.
+
+
+szs v1.62b r7624 - 2018-11-08
+
+ - Bug fix for new parser STRING support.
+
+
+szs v1.62c r7630 - 2018-11-10
+
+ - wstrt --add-section FILE: If a single file is not found and the filename
+ (not path) contains at least 1 '@' character, then all '@' characters of
+ it are replaced by the region code (one of P,E,J,K) for a second try.
+ - New option for Command wstrt HEXDUMP: --sname=LIST: Select addresses to
+ dump by section names.
+
+
+szs v1.62d r7634 - 2018-11-11
+
+ - DOL detection improved.
+ - Tool wstrt: After patching main.dol for Wiimmfi.de, the HTTP header
+ "Host: DOMAIN" is not longer sent twice.
+ - Tool wstrt: Patching and analysing of DOL files improved.
+ - Tool wstrt automatically patch main.dol to support the new login method
+ at Wiimmfi.de, when using option --wiimmfi.
+
+
+szs v1.63a.beta1 r7657 - 2018-11-17
+
+ - Tool wstrt: The method to patch main.dol to support the new Wiimmfi login
+ changed: It don't use the Gecko Code Handler any more.
+ - The cheat code memory is allocated dynamically. It supports a total of more
+ than 90000 cheat code lines (>720kb).
+ - Behaviour of option --gct-move changed: It optionally accept one of the
+ keywords OFF, AUTO and ON. Without parameter, AUTO is used.
+ - A warning message is printed, if CT-CODE (option --add-ctcode) should be
+ added to a not original main.dol.
+
+
+szs v1.63a r7664 - 2018-11-19
+
+ - Tool wstrt: All around Wiimmfi and CT-CODE patching, and around cheat code
+ management tuned and optimized. On the fly, some small bugs fixed.
+ Related options: --add-section --gct-move --gct-addr --gct-space
+ --add-ctcode --wiimmfi --domain --https --wc24 --force
+
+
+szs v1.64a r7680 - 2018-11-23
+
+ - Tool wstrt: Wiimmfi patching optimized again, especially in combination
+ with CT-CODE.
+ - New option for tool wstrt: --clean-dol: Remove additional DOL sections,
+ reset entry point and VBI address, and try to restore other patches known
+ by SZS tools. This is done after loading a DOL and before analysing and
+ patching to allow re-patching.
+ - Error logging improved.
+
+
+szs v1.65a r7690 - 2018-12-23
+
+ - Support of BMG files without section MID1.
+ - New Option: --bmg-mid=MODE: Control the creation of BMG section MID1.
+ MODE is one of OFF, AUTO (default) or ON.
+ - The impact of options --n-mipmaps, --max-mipmaps and --mipmap-size changed.
+ All 3 options together control the automatic creation of mipmaps.
+ Read https://szs.wiimm.de/info/mipmap.html for details.
+ - Option --smart is deprecated and ignored now. The new option --fast-mipmaps
+ will enable the old algorithm for images with odd width or with odd height.
+ Read https://szs.wiimm.de/doc/img/resize for details.
+
+
+*******************************************************************************
+******* END *******
+*******************************************************************************
diff --git a/project/templates/HISTORY.txt b/project/templates/HISTORY.txt
new file mode 100644
index 0000000..d546ea2
--- /dev/null
+++ b/project/templates/HISTORY.txt
@@ -0,0 +1,396 @@
+
+@@MODULE(head.txt)@@
+
+
+*******************************************************************************
+******* HISTORY v2.* *******
+*******************************************************************************
+
+szs v2.00a r7754 - 2019-02-22
+
+ - Windows version only: Update to Cygwin DLL 3.0.0 / 2019-02-16.
+ - A binary KCL with different section order is accepted now (like KMP before).
+ - The new option --repair-magics[=MODE] controls the reparing of missing or
+ wrong magics of files and sub-files by analysing file path and file
+ extension. MODE is one of OFF, ANALYSE or REPAIR.
+ - Command FLOAT accepts '+' and '-' to print the nearest successor and
+ predecessor of the previous value.
+ - New command: wszst VR-CALC: Calculate a VR increment for each given delta
+ value (=VR_winner-VR_loser). Print results as table.
+ - New command: wszst VR-RACE: Print a table with VR calculations for a race.
+ Each VR is the current rating of a player.
+ - wstrt analyse StaticR.rel: Detect modifications of cannon parameters.
+ - wstrt: New option: --cannon=IDX,P1,P2,P3,P4: Define parameters of cannon
+ with index IDX (0..2).
+ - New mode for option --patch-bmg: 'REGEX=list', where LIST is a semicolon
+ separated list of "/REGEX/REPLACE/" expressions (POSIX Extended Regex).
+ See https://szs.wiimm.de/opt/patch-bmg for details.
+ - New command: wbmgt REGEXP: Test implementation of regular expressions.
+ - New tool: wlect: Manage the LE-CODE (Leserattes CT-CODE) extension.
+ TOOL IS EXPERIMENTAL AND CAN'T BE USED WITHOUT ADDITIONAL FILES!
+ - Tool wctct accept LE-BIN files (LE-CODE binaries) as input.
+ - Global option --le-code: Enable LE-CODE (Leserattes CT-CODE) support for all
+ tools. It includes option --ct-code.
+
+
+szs v2.01a r7798 - 2019-03-16
+
+ - Bug fix for BMG processing: Tools ran into endless loop, if an incorrect
+ 1A-escape tells a length of zero.
+ - BMG Filter option --msg renamed to the more meaningful name --filter-bmg.
+ The old name is still available.
+ - BMG Filter option --filter-bmg=modes supports more keywords now.
+ See https://szs.wiimm.de/opt/filter-bmg for details.
+ - Option --patch-bmg=mode[cond][=param]: The new 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.
+ - New command: wszst NAME-REF: For each BRRES file or subfile, create a name
+ based cross reference and print the result as list in selectable order.
+ - Some minor bugs on arena name replication to CT/LE slots fixed.
+ - New option: --links: Support hardlinks if creating U8 and WU8 archives.
+ Keep hardlinks if normalizing U8 and WU8 archives. On extracting, search
+ hardlinks in every archive and try to create hardlinks at local file system.
+ - KMP object database updated by CT-Wiiki.
+ - LE-CODE support completed for the moment.
+ - Support for new file format LEX (LE-CODE extension).
+ Commands for tool wlect: CREATE, CAT, DECODE, ENCODE.
+ See http://wiki.tockdom.com/wiki/LEX for LEX details.
+
+
+szs v2.01b r7802 - 2019-03-21
+
+ - Bug fix for v2.01a: The string support of the text parser had an memory
+ allocation bug. wctct uses the new string functions since v2.01 and
+ produces occasional (~25%) wrong CT-CODE files (strap files).
+
+
+szs v2.02a r7827 - 2019-05-04
+
+ - New option for wlect: --move1-tracks: Files with more than one hard link
+ are copied and removed and not moved to create an unique version of the
+ file.
+ - New assigning operator for BMG text files: "MID1 : MID2": Copy attributes
+ and text of message MID2 to message MID1. Forward and chained references
+ are allowed. Multi message ids like 'T12' are supported on both sides.
+ - New escape sequence for BMG text files: \m{a,b,...}: Each parameter is
+ interpreted as message id. If a message with given ID exists (must be
+ defined before and must not have an assigned value), then insert the text
+ of the message.
+ - New option for wszst EXTRACT: --basedir=DIRECTORY: Extract only files from
+ archives, that are below the DIRECTORY. Leading points and slashes and
+ trailing slahes are removed from the parameter. --bdir is short cut.
+ - New command: wszst XCOMMON: Scan archives and extract files from archives,
+ that are below directory 'common'. Command XCOMMON is a short cut for
+ EXTRACT --basedir=common.
+ - New command: wszst ANALYZE: Analyse track files and print resulta in
+ machine readable format.
+
+
+szs v2.03a r7854 - 2019-05-25
+ - Command wszst CHECK: Hints about special files in subdirectory ./Common/.
+ - Command wszst/wkmpt CHECK: Hints about special GOBJ settings, that are
+ recognized by LE-CODE only.
+ - Bug fix for wszst ANALYZE --json: Object names are enclosed by quotes now.
+ - New option: --macro-bmg=file: Load a BMG file and add or overwrite the
+ messages to the macro library. The macro library is accessed by escape
+ sequence \m{MID} as fallback.
+ - New escape sequence for BMG text files: \M{a,b,...}: Each parameter is
+ interpreted as message id. If a message with given ID is defined by the
+ macro library, then insert the text of the message.
+ - New command: wkmpt KTPT: Analyse the start positions (KMP:KTPT) and lap
+ counters (KMP:CKPT) and print a simple information list. Use enemy points
+ (KMP:ENPT) to find recommendations. This command is dedicated to LE-CODE,
+ which supports an alternative position for the finish line at the minimap.
+ - New patch option for wszst and wkmpt: --ktpt2=vector
+ Insert or replace a second KTPT. Use VECTOR as new position. Then find
+ nearest lap counter (CKPT with mode 0) and adjust position and direction.
+
+
+szs v2.04a r7864 - 2019-06-02
+
+ - New option for wszst and wimgt: --cmpr-default=rgb1[,rgb2]
+ Define 2 colors for the case, that all 16 pixels of a CMPR block are
+ transparent. The default is to calculate an average color of all
+ transparent pixels. Before v2.04 white was used.
+ - Command wszst DISTRIBUTION: Added battle arena support.
+ - Option --bmg-inline removed. It is deprecated since 2015.
+
+
+szs v2.05a r7879 - 2019-06-09
+
+ - Warnings for not supported versions and for wrong number of sections of
+ BRRES sub files (CHR, CLR, MDL, PAT, SCN, SHP, SRT and TEX) implemented.
+ Some of these invalid sub files will freeze the Wii:
+ - New command: wszst BRSUB: If no file is defined, print a table with
+ known BRRES sub files consisting of file format, version, number of
+ sections and warn message. Otherwise analyse the version number and
+ number of sections of each BRRES sub file of each source and print
+ warnings about invalid sub files. This is like command CHECK, but only
+ for BRRES sub files.
+ - Command wszst CHECK will check BRRES files now. For SZS files, all BRRES
+ sub files are checked. At the moment only valid version numbers and
+ number of sections are tested.
+ - Command wszst LIST: If displaying version numbers, invalid version
+ numbers for BRRES sub files will be marked by an appended "!" and
+ highlighted by magenta background if colors are activated.
+ - Bug fix for wszst DISTRIBUTION: Scanning of slot numbers failed.
+ - Option --ktpt2 accepts keyword AUTO now and calculates the position
+ automatically. The result is the recommendation of command wkmpt KTPT.
+
+
+szs v2.06a r7905 - 2019-07-01
+
+ - Bug fix for wszst CHECK: The summary will include BRRES error counters now.
+ A summary line is also printed, if a standalone BRRES file is checked.
+ - New command: wlect DL: Short cut for: wlect DUMP --long
+ - New command: wlect DLL: Short cut for: wlect DUMP --long --long
+ - Tool wlect: Option --perf-mon=FORCE enables performance counter for Dolphin.
+ - Command wlect DUMP --verbose: Slot usage map is colored now.
+ - Command wszst ANALYZE prints more details now.
+ - CT-CODE definition files: Added additional and optional field IDENTIFIER to
+ optimize track-to-cup references.
+ - Support for outdated LE-CODE phase 1 removed.
+ - Bug fix for option --ktpt2: KMP is marked as modified now, so that the
+ KMP of the source file is updated..
+ - Support of files ObjFlow.bin and GeoHitTable*.bin (binary and text).
+ - New commands: wszst BINARY and wszst TEXT: Both commands work like the
+ ENCODE and DECODE commands of the other tools. The main idea is to support
+ simple text-to-binary and binary-to-text conversions of new file formats by
+ tool wszst instead of creating own tools for every new file format.
+ - Command wszst BINARY: Read each source file (binary or text, but not an
+ archive) and write it as binary file.
+ - Command wszst TEXT: Read each source file (binary or text, but not an
+ archive) and write it as text file.
+ - Currently supported file formats are BMG, GEOHIT, KCL, KMP, LEX,
+ OBJFLOW, PAT and the related text formats.
+ - New option: wszst --delta: Print only modified records on text output.
+ Supported file formats until now: GEOHIT, OBJFLOW
+
+
+szs v2.07a r7960 - 2019-08-30
+
+ - New file formats to distinguish GeoHitTable*.bin (standard variant) from
+ GeoHitTable*Obj.bin ("Obj" variant).
+ - Command wszst TEXT for OBJFLOW and GEOHIT updated to support new file
+ formats and new features.
+ - If extracting an U8 or WU8 archive, then course.kcl.*, course.kmp.txt and
+ course.lex.txt are always added to the exclude list of control file
+ wszst-setup.txt. Files course.kcl, course.kmp and course.lex are added to
+ the encode list. Before the files were only added, if the binary file
+ exists and option --decode was set.
+ - Command wlect CREATE CANNON: Create a LEX text file with cannon section
+ only.
+ - Command wszst ANALYZE updated to support calculated attributes of tracks
+ for web site https://ct.wiimm.de/
+ - BMG section INF1: Maximum attribute length increased from 16 to 32 bytes.
+ - BMG: The tools support only BMG encoding #2 (UTF-16/be) fully. Encoding #1
+ (CP1252) can be read, but not be stored as binary BMG file. Error messages
+ are printed for unsupported encodings.
+ - BMG: Unknown parameters of sections INF1 and MID1 are scanned and written.
+ - New BMG option: --bmg-encoding=NAME: Force a BMG encoding. It is only
+ relevant if creating a BMG file. 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.
+ At the moment, only encodings CP-1252 and UTF-16BE are supported on reading
+ and only encoding UTF-16BE on writing a binary BMG. MKWii uses UTF-16BE.
+ - New command: wbmgt EXTRACT name source: Extract BMG section NAME of file
+ SOURCE and write the binary data to standard output. If NAME consists of
+ less than 4 characters, then the first section that starts with these
+ characters is dumped.
+ - New command: wbmgt SECTIONS source...: List all sections of each binary
+ BMG file. Print offset, size, magic and a short info. If known, print
+ number and size of elements too.
+
+
+szs v2.08a r7979 - 2019-09-05
+
+ - BMG: Encoding of types CP1252, UTF-16be, Shift-JIS and UTF-8 are fully
+ supported now.
+ - New command: wbmgt SLOTS source...: Print a slot ordered list with slot
+ number, message id, delta and attributes.
+ - BMG supports predifined slots now. These slot assignments are detected
+ automatically while reading binary BMG files. Slot assignments are saved to
+ and scanned from BMG text files.
+ - BMG text files: Each message ID can be followed by '@SLOT' to force a slot
+ number for the message.
+ - BMG: Unknown sections are stored as hex dumps into BMG text files. The hex
+ dumps can be edited and are scanned on reading. Each section is started by
+ parameter "@SECTION NAME".
+ - BMG section INF1: Maximum attribute length increased from 32 to 40 bytes.
+
+
+szs v2.09a r8000 - 2019-09-24
+
+ - BMG section "STR1" detected, but not supported. Metrics are displayed.
+ - Commands wszst BINARY/TEXT: Full support of files minigame.kmg and
+ ItemSlot.bin (binary and text).
+ - Command wszst ANALYZE returns 5 different SHA1 checksums now.
+
+
+szs v2.10a r8023 - 2019-11-23
+
+ - Command wszst TRACKS: More options.
+ - Command wszst ANALYZE: More results.
+ - wszst ANALYSE + Check KMP: Analysis of KTPT, ENPT and ITPT to find values
+ outside range +-131071 where items can not be used online.
+ - Text export of ItemSlot.bin: A comment column with row summaries added.
+ - Cygwin (Windows) version: Updated color support again.
+
+
+szs v2.11a r8074 - 2020-01-18
+
+ - wszst ANALYSE --sh --array: Output format fixed.
+ - New keywords for option --filter-bmg: ALLCODE, ALLCUPS, ALLTRACKS,
+ ALLARENAS and ALLREFS.
+ - The optional parameter of option --le-code (LE-CODE phase) is deprecated
+ and ignored. From now on, option --le-code always enables LE-CODE (phase 2)
+ and CT-CODE support.
+ - Deprecated and useless option --smart removed.
+ - KMP/GOBJ, ID: Support of objects flags in bits 10-15 (0xfc00) for LE-CODE.
+ - File course.lex: Support of new section TEST. It forces game modes like
+ "Online, 12 players, itemrain" to test them in standard offline versus.
+ - wlect CREATE: New keywords. Call the command without keyword to get a list.
+ - wszst+wlect: New options to create, modify or delete course.lex and/or LEX
+ section TEST: --lt-clear, --lt-online, --lt-n-players and --lt-game-mode.
+ So patching a track file to test special conditions becomes easy.
+ - General support of 'extended presence flags'.
+ - KMP/GOBJ: Detect definition-objects and references.
+ - New commands for KMP/GOBJ for easier handling: $DEFOBJ-RACE and
+ $DEFOBJ-BATTLE define a definition-objects. $REFERENCE defines a
+ reference (ref_id and mode=1) for the previous defined object.
+ - Hints and warnings about extended objects.
+ - New command: wkmpt GAMEMODES: Analyze the presence flags combinations with
+ and without extension support and print a list.
+ - New command: wszst DUPLICATE: It reads a single track file and duplicates
+ it several times. Therefor it analyzes the presence flags combinations with
+ and without extension support and creates one file for each relevant
+ scenario. A LEX section TEST will be inserted to force the execution mode
+ for offline tests.
+ - New option for commands wkmpt GAMEMODES and wszst DUPLICATE:
+ --gamemodes=list: Select game modes for the list.
+ - See http://wiki.tockdom.com/wiki/Extension_of_Presence_Flags for details
+ about the new Extension of Presence Flags.
+ - Scanning a KMP file now takes into account the new information about the
+ length of the file header.
+
+
+szs v2.11b r8079 - 2020-01-20
+
+ - XPF, hard coded conditions: New conditions added. Gaps in list removed.
+ Order changed. These changes invalidate binary KMP files with hard coded
+ conditions created by previous v2.11a.
+ - Small text corrections in the new texts of the previous version.
+
+
+szs v2.12a r8129 - 2020-02-07
+
+ - Parser: Bug fix for shift-right operator if shifted value is an integer.
+ - If using --force or --kmp=force, the KMP scanner ignores the size stored in
+ the file header and uses the file size instead.
+ - New command: wkmpt diff: Compare the KMP of two or more sources (KMP,
+ KMP-text or SZS). Each KMP will be converted into the internal format,
+ fixed and patched controlled by options. The known sections are compared,
+ some of them sorted before.
+ - New option to support wkmpt diff: --diff=list: List of KMP sections names
+ that should be compared. Additional keywords possible.
+ - New option to support wkmpt diff: --epsilon=float: When comparing floating
+ point numbers, 2 numbers are considered identical if their difference is
+ less than or equal to epsilon.
+ - New option: --repair-xpflags: Load a KMP file and use it to repair the
+ settings of the extended presence flags, if they are destroyed by another
+ KMP tool. --repxpf is a short cut for this option.
+ - Option --auto-add was broken for objects, if flags (bits 10-12) were set.
+ Bit 12 is used by extended presence flags (XPF).
+ - Support of random selections of KMP/GOBJ objects:
+ - 6 random scenarios supported.
+ - New keyword for option --gamemodes: RANDOM.
+ - Command wkmpt GAMEMODES can list and command wszst DUPLICATE can create
+ up to 1573 variants now.
+ - Added a LEX/TEST parameter to force a random mode for testing.
+ - New LEX section SET1 for various settings. The first parameter defines 3
+ factors to increase the range for items outside -131071 and +131071.
+ - New LEX section HIPT: Define places, where the position tracker is hidden.
+
+
+szs v2.12b r8135 - 2020-02-09
+
+ - Bug fixes for LEX parser:
+ - Section TEST: Parameter @ENGINE wasn't implemented.
+ - Symbols LEX$OO_AUTO and LEX$GM_AUTO were not defined.
+ - New option: --lex-purge: Delete LEX sections without any impact. Delete
+ sub-file course.lex if it no longer contains a section.
+ - Tool wstrt option --clean-dol: HTTPS modifications are now also reset.
+
+
+szs v2.13a r8146 - 2020-02-15
+
+ - XPF: Added support for negation flag of references to definition objects.
+ - New keywords for option --kmp:
+ - RM-LECODE: Remove all objects from section GOBJ, that are only relevant
+ for LE-CODE. The result is a minimized section for standard code.
+ - PURGE-GOBJ: Remove all objects from section GOBJ that are neither a
+ valid object nor a definiton object for LE-CODE.
+ - wszst ANALYSE + Check KMP: Analysis of KTPT, ENPT and ITPT to find values
+ outside range +-131071 where items can not be used online. Additionally a
+ recommendation for using option --shift and/or LEX section SET1 is printed.
+
+
+szs v2.14a r8160 - 2020-02-29
+
+ - KMP text processor: Settings of definition objects are printed in hex now.
+ - Bug fix for KMP text parser: It created incorrect conditions if definition
+ objects were defined in combination with $DISABLE or $ENABLE commands.
+ - Bug fix for wstrt option --add-section=GCT: Crashed for some invalid cheat
+ codes (Cygwin only).
+ - Recommendation for option --shift item pos factors (LEX:SET1) optimized.
+ - wimgt COPY: Option --overwrite is set implicitly now.
+
+
+szs v2.15a r8176 - 2020-04-03
+
+ - KTPT is not longer used to find values outside range +-131071 where items
+ can not be used online.
+ - Text parser: Fixed different bugs for data type 'string'.
+ - Slot recommendations now ignore the objects deactivated by presence flags.
+ - Chat in private rooms: Each special function can be assigned to any chat
+ message, and also to more than 1 message. Before, the function werde hard
+ coded to some messages. Current modes:
+ - Host selects track.
+ - Karts or bikes only.
+ - Force engine class.
+ - Select number of races between 1 and 512.
+ - Support of new text file format LPAR to manage LE-CODE parameters by file
+ instead of options. This includes the support of the new parameters for
+ chat message modes:
+ - wlect CREATE lpar: Create a standard LPAR text file.
+ - wlect LPAR: Read LE-CODE binary and export the parameters as LPAR file.
+ - wlect DUMP: New section for "Special chat messages".
+ - Option --lpar: Read a LPAR file to patch the current settings.
+
+
+szs v2.16a r8184 - 2020-04-09
+
+ - All commands, that create LPAR files, accept option --no-header (-H) and
+ option --brief (-B) now.
+ - More built-in explanations in new LPAR files.
+
+
+szs v2.17a r8204 - 2020-05-12
+
+ - Command wszst DISTRIBUTION: New track attribute FILL to mark a track as
+ filler (some tracks are needed to fill the last cups).
+ - LPAR BLOCK-TRACK: Block previously used tracks for the next 0-50 races.
+ - LPAR: More chat messages and up to 2 modes for each chat message.
+ - Object files of CommonObj*.szs are included into the internal object
+ library and added to auto-add library.
+ - Objects 'VolcanoPiece', 'bblock' and 'RM_ring1': Setting #1 is evaluated to
+ find missed files. This has impact to command CHECK and option --auto-add.
+
+
+@@MODULE(last-history.txt)@@
+
+
+*******************************************************************************
+******* END *******
+*******************************************************************************
diff --git a/project/templates/MILESTONES.txt b/project/templates/MILESTONES.txt
new file mode 100644
index 0000000..273855f
--- /dev/null
+++ b/project/templates/MILESTONES.txt
@@ -0,0 +1,153 @@
+
+szs v0.01a.beta r2385 - 2011-03-31
+ - First version of tool 'wszst' (Wiimms SZS Tool) with the commands LIST,
+ COMPRESS, DECOMPRESS, EXTRACT and CREATE.
+
+szs v0.02a r2417 - 2011-04-04
+ - First version of tool 'wbgmt' (Wiimms BGM Tool) with the commands LIST,
+ PATCH, DECODE and ENOCDE.
+
+szs v0.04a r2457 - 2011-04-09
+ - wbmgt: Support of Nintendos 0x1a escape in BGM/TEXT as "\z{head,value}".
+ - New command: wszst NORMALIZE: Resort and recompress an U8 archive like
+ Nintendo does it. Best custom compression at all.
+
+szs v0.09a r2636 - 2011-05-17
+ - First version of tool 'wstrt' (Wiimms StaticR Tool). It allows to rearange
+ the slot order for tracks and arenas.
+
+szs v0.11a r2670 - 2011-06-04
+ - Extraction of BREFF and BREFT files.
+
+szs v0.13a r2840 - 2011-07-09
+ - First version of tool 'wimgt' (Wiimms Image Tool). It will convert BREFT
+ subfiles, TPL, TEX0 and PNG to each other format. Supported image formats
+ are I4, I8, IA4, IA8, RGB565, RGB5A3, RGBA32, C4, C8, C14X2 and CMPR.
+
+szs v0.15a r2917 - 2011-08-07
+ - First version of tool 'wkmpt' (Wiimms KMP Tool). The decoder creates a
+ user friendly text file and the encoder a binary file.
+
+szs v0.19a r3033 - 2011-09-15
+ - Implementation of a parser with arithmetic expressions and nested
+ @IF..@ELIF..@ELSE..@ENDIF. The parser is used to scan KMP text files.
+ - First support of an internal Object DB (copy of Wiki page 'Object').
+
+szs v0.22a r3166 - 2011-11-06
+ - The KMP encoder is now a 2 pass compiler and the whole source is scanned
+ twice. In pass 1 only names are defined and warnings are suppressed. In
+ pass 2 all objects are defined.
+
+szs v0.23a r3243 - 2011-11-25
+ - Support of 3D vector variables and parser functions.
+
+szs v0.26a r3415 - 2012-02-04
+ - First version of tool 'wkclt' (Wiimms KCL Tool). It can only create OBJ
+ files.
+
+szs v0.28a r3463 - 2012-02-20
+ - Improved usage of Object DB and first implementation of the auto-add archive
+ to add missing objects automatically.
+ - The parser supports now much more functions.
+
+szs v0.29a r3515 - 2012-02-28
+ - First implementation of 'wkmpt CHECK' to make KMP plausibility checks.
+
+szs v0.33a r3627 - 2012-05-02
+ - The text parser supports now 5 kinds of loops.
+
+szs v0.34a r3659 - 2012-05-12
+ - The text parser supports now user defined macros and functions and a new
+ private name space.
+
+szs v0.36a r3720 - 2012-05-28
+ - The tools can now create a KCL file from scratch ony by importing an OBJ
+ file. The internal octree generator works fine and can be controlled by
+ different constants.
+ - KCL scripts are supported (option --ksl-script=file).
+
+szs v0.42a r3927 - 2012-07-06
+ - KCL (and octree) creator are now very good. Last importand issues are
+ fixed. The octree cubes overlap now.
+ - KCL trasformation is enabled.
+
+szs v1.01a r3987 - 2012-07-22
+ - Automated adjusting of minimaps is now possible.
+
+szs v1.02a r3992 - 2012-08-01
+ - KCL: Detection of invalid triangles and face down roads implemented. Both
+ kinds can be removed controlled by option --kcl=modes.
+
+szs v1.05a r4097 - 2012-09-29
+ - For text files, only the first 4 characters are used as magic ('#BMG'
+ instead of '#BMG-TXT'; same for '#KCL', '#KMP' and '#MDL'). On creation
+ a 8 character magic is still written for compatibility.
+ - Files './AIParam/AIParam.baa' and './AIParam/AIParam.bas' are now known by
+ the internal file database.
+
+szs v1.06a r4110 - 2012-10-06
+ - wszst CHECK will now make slot proposals with comments.
+ - New command: wszst SLOTS: Print the possible slots for a track file.
+
+szs v1.07a r4137 - 2012-10-19
+ - New archive format: WU8 (Wiimms U8).
+
+szs v1.09a r4169 - 2012-11-11
+ - BZIP2 compression is now supported as alternative to Yaz0. It is dedicated
+ to the WU8 file format for transferring files. BZIP2 files are smaller than
+ Yaz0 files and the creation is faster.
+ - First WBZ support.
+
+szs v1.13a r4258 - 2013-03-01
+ - New option --rm-aiparam (short cut: --rmai): If set, the directory AIParam
+ and all files are removed from the archive.
+
+szs v1.17a r4358 - 2013-04-23
+ - 3D rotation for all 3 axis and transformation of whole tracks.
+
+szs v1.21a r4578 - 2013-09-07
+ - A very old well known bug is now fixed: The old versions couldn't create
+ the language independent SZS files of MKWii directory './Scene/UI' like
+ Track.szs, Race.szs and others.
+
+szs v1.22a r4602 - 2013-09-14
+ - BMG text patching of SZS files is now possible without extract, patch and
+ recreate using the command "wszst PATCH --patch-bmg ..."
+
+szs v1.23a r4682 - 2013-10-05
+ - CT-CODE support to manage CT distributions with >32 tracks.
+
+szs v1.34a r5070 - 2014-04-19
+ - Direct slot transforming of tracks with option --slot=NAME.
+
+szs v1.35a r5184 - 2014-05-16
+ - Support of the new custom server 'wiimmfi.de'.
+
+szs v1.40a r6162 - 2015-04-13
+ - Support for PACK archives & PAT0 files.
+ - New tool: wpatt
+
+szs v1.44a r6558 - 2015-10-17
+ - Advanced BMG support with larger attributes.
+
+szs v1.45a r6602 - 2015-10-31
+ - Support of external CT-CODE files.
+ - Update to current CT-CODE version.
+
+szs v1.57a r7484 - 2018-04-11
+ - Removal of very small triangles to avoid KCL glitches.
+
+szs v1.60a r7578 - 2018-08-21
+ - Advanced support of battle arenas.
+ - Support of dispatch points (enemy routes)
+
+szs v2.00a
+ - Support of LE-CODE (Leserattes CT-CODE).
+ - VR calculations.
+
+szs v2.01a
+ - First LEX support.
+
+szs v2.08a
+ - Support of all known BMG encodings (CP-1252, UTF-16, SHIFT-JIS and UTF-8).
+
diff --git a/project/templates/forums/mariokartwii.txt b/project/templates/forums/mariokartwii.txt
new file mode 100644
index 0000000..6d0203b
--- /dev/null
+++ b/project/templates/forums/mariokartwii.txt
@@ -0,0 +1,25 @@
+I have released [color=#000080]Wiimms SZS Tools v1.40a[/color].
+[color=#800000](A [url=https://szs.wiimm.de/doc/cli]command line[/url] tool set for Linux, Mac and Windows)[/color]
+
+[color=#800000][b]What's new:[/b][/color]
+[list]
+[color=#ffffff].[/color]
+[/list]
+
+[color=#800000][b]Change Log:[/b][/color]
+[code]
+[/code]
+
+
+[color=#800000][b]Links:[/b][/color]
+[list]
+[*] [url=https://szs.wiimm.de/features.html][color=#000080][b]Features[/b][/color][/url]
+[*] [url=https://szs.wiimm.de/download.html][color=#000080][b]Download[/b][/color][/url]
+[*] [url=https://szs.wiimm.de/doc/cli][color=#000080][b]Command Line Interface (using the tools)[/b][/color][/url]
+[*] [url=https://szs.wiimm.de/doc/kcl][color=#000080][b]KCL Guide to export and import object files[/b][/color][/url]
+[*] [url=http://wiki.tockdom.com/wiki/Wiimms_SZS_Tools][color=#000080][b]Custom Mario Kart Wiiki[/b][/color][/url]
+[*] [url=http://wiki.tockdom.com/wiki/WU8][color=#000080][b]File Format WU8[/b][/color][/url] (track patch)
+[*] [url=http://wiki.tockdom.com/wiki/WBZ][color=#000080][b]File Format WBZ[/b][/color][/url] (BZIP2 compression)
+[*] [url=https://szs.wiimm.de/cgi/mkw/object][color=#000080][b]KMP Object Query[/b][/color][/url]
+[*] [url=https://szs.wiimm.de/cgi/mkw/track-ref][color=#000080][b]MKW Track Cross Reference[/b][/color][/url]
+[/list]
diff --git a/project/templates/module/features-de.forum b/project/templates/module/features-de.forum
new file mode 100644
index 0000000..bfc768a
--- /dev/null
+++ b/project/templates/module/features-de.forum
@@ -0,0 +1,6 @@
+[list]
+[*][url=@@URI-HOME@@features.html#1][b]SZS (Wiimms SZS Toolset) ist eine Sammlung von Kommandozeilen-Programmen.[/b][/url]
+[*][url=@@URI-HOME@@features.html#3][b]wszst (Wiimms SZS tool) ist das Hauptprogramm zu Manipulation von SZS-Dateien.[/b][/url]
+[*][url=@@URI-HOME@@features.html#4][b]wbmgt (Wiimms BMG tool) ist das Hauptprogramm zu Manipulation von BMG-Dateien.[/b][/url]
+[*][url=@@URI-HOME@@features.html#5][b]Besondere Unterstützung von Script-Sprachen.[/b][/url]
+[/list]Besuche [url=@@URI-HOME@@features.html][b]@@URI-HOME@@features.html[/b][/url] für mehr Details.
diff --git a/project/templates/module/features-en.forum b/project/templates/module/features-en.forum
new file mode 100644
index 0000000..84b11d7
--- /dev/null
+++ b/project/templates/module/features-en.forum
@@ -0,0 +1,6 @@
+[list]
+[*][url=@@URI-HOME@@features.html#1][b]SZS (Wiimms SZS Toolset) is a set of command line tools.[/b][/url]
+[*][url=@@URI-HOME@@features.html#3][b]wszst (Wiimms SZS tool) is the main SZS manipulation tool.[/b][/url]
+[*][url=@@URI-HOME@@features.html#4][b]wbmgt (Wiimms BMG tool) is the main BMG manipulation tool.[/b][/url]
+[*][url=@@URI-HOME@@features.html#5][b]Advanced shell support.[/b][/url]
+[/list]Visit [url=@@URI-HOME@@features.html][b]@@URI-HOME@@features.html[/b][/url] for more details.
diff --git a/project/templates/module/features.txt b/project/templates/module/features.txt
new file mode 100644
index 0000000..5079f58
--- /dev/null
+++ b/project/templates/module/features.txt
@@ -0,0 +1,13 @@
+Features:
+
+ - SZS (Wiimms SZS Toolset) is a set of command line tools.
+ - wszst (Wiimms SZS Tool) is the main SZS manipulation tool.
+ - wimgt (Wiimms IMG Tool) is a graphics conversion tool.
+ - wkclt (Wiimms KCL Tool) is a KCL creation and modification tool.
+ - wkmpt (Wiimms KMP Tool) is a KMP creation and modification tool.
+ - wbmgt (Wiimms BMG Tool) is a BMG manipulation tool.
+ - wstrt (Wiimms STATIC.REL Tool) is a staric.rel and main.dol manipulation tool.
+ - wctct (Wiimms CT-CODE Tool) manage CT-CODE extensions.
+ - Advanced shell support.
+
+Visit @@URI-HOME@@features.html for more details.
diff --git a/project/templates/module/head.txt b/project/templates/module/head.txt
new file mode 100644
index 0000000..0c0fe9c
--- /dev/null
+++ b/project/templates/module/head.txt
@@ -0,0 +1,21 @@
+*******************************************************************************
+******* Wiimms SZS Tools v@.@@@ - @@@@-@@-@@ *******
+*******************************************************************************
+
+Wiimms SZS Tools (SZS) is a command line tool set for linux and for other
+unix like operating systems including Cygwin. The tools manage SZS files.
+
+The software is developed under the GPL 2.0 license. See file gpl-2.0.txt
+or http://www.gnu.org/licenses/gpl-2.0.txt for details.
+
+The most current source is available under:
+ @@URI-SOURCE@@/
+~
+~The most current source is available under:
+~ @@URI-VIEWVC@@/
+~The source of this revision (@@REV@@) is available under:
+~ @@URI-VIEWVC@@/?pathrev=@@REV-NEXT@@
+~You can also checkout the SVN repository:
+~ @@URI-REPOS@@/
+
+See @@URI-HOME@@ for announcements and discussions.
diff --git a/project/templates/module/last-history.txt b/project/templates/module/last-history.txt
new file mode 100644
index 0000000..97a5e29
--- /dev/null
+++ b/project/templates/module/last-history.txt
@@ -0,0 +1,33 @@
+szs v@@VERSION@@ r@@REV-NEXT@@ - @@@@-@@-@@
+
+ - wszst/wkmpt CHECK: Hints about self linked item routes and item routes with
+ exact 1 point. A warning is printed when both events apply for same route.
+ - Bug fix: The number of tables is set to 6 if writing a short binary
+ item-slot file (without tables for battles).
+ - wszst TEXT/BINARY: New options to patch KMG files: --kmg-limit=seconds to
+ limit the run time of battles and --kmg-copy=id to copy one slot definition
+ to the 9 other slots.
+ - Leseratte and I analysed the MKW internal VR calculations and adapted the
+ results into the tools. So the calculations are 100% identical now.
+ - Command wszst VR-RACE supports now up to 30 players for the VR calculation.
+ - KMP/CAME type 6 and the related route is excluded from any transformation.
+
+~ - MDL support: Scanning a MDL file and transferring the data into an internal
+~ format was already implemented, but only used for analysis purposes. Now it
+~ is possible to create a binary MDL by reading the internal data. This is
+~ the first step to add MDL materials to enable a track for slot 4.2.
+~ - The tools verify the maximum number of CKPT, ENPT and ITPT (=255).
+
+Known bugs:
+
+ - Minimaps with an additional bones layer above 'posLD' and 'posRU' (e.g. for
+ scaling) are handled incorrect on auto adjusting the minimap.
+ - The tools try always to find the optimal PNG format by analyzing the main
+ image. The bug is, that mipmaps (or following images in TPL) may need a
+ different output format (for example colors instead of grayscale).
+ SOLUTION: Force an output format with for example --transform RGBA32.
+~ - Creating a BRRES from local files is buggy, because missing adjust of
+~ several BRRES and string pool pointers.
+~ - If creating a BRRES the internal name of the sub file is not set to
+~ the filename. This could be problematic if a sub file was renamed.
+~