SZS Change Log
1. Current working copy (not released)
- Bug fix for new route analysis (e.g. wkmpt DRAW): The positions were wrong
(e.g. NAN or too large) when analysing ITPT.
- The text parser (mainly used to scan KMP text files) supports the new data
type STRING. Different string functions and command @EXEC added.
- New command: wszst ISARENA: Check the arena status of a SZS file, print
status line and exit with an appropriate status code.
2. 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
- 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.
3. 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
- 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
- wszst SLOTS: For battle arenas, the keyword ARENA is printed instead of a
- 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.
4. szs v1.58b r7503 - 2018-05-18
- Default value for options --tri-area and --tri-height is now 1.0.
- Some more minor edits.
5. 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.
6. 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.
7. 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.
8. szs v1.55b r7437 - 2017-11-19
- wszst DISTRIBUTION: New parameter: PREDECESSOR
- wszst AUTOADD: With option -v, the command will list invalid files too.
9. 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.
10. 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.
11. 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.
12. 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