SZS Change Log
1. 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.
2. 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.
3. 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.
4. 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.
5. 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.
6. 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.
7. 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.
8. 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.
9. 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.
10. 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.
11. szs v2.08a r7979 - 2019-09-05
- BMG: Encoding of types CP1252, UTF-16be, Shift-JIS and UTF-8 are fully
- 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.
12. 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
- 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.