@@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 https://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 result 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 https://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. szs v2.18a r8217 - 2020-06-28 - 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. szs v2.19a r8237 - 2020-08-01 - Bug fix: Tool wlect didn't read the second chat message functions from binary LE-CODE files. - Support of an old GameCube BMG variant (internally named "legacy"). - Check minimap: Bones 'posRU' and 'posLD' are detected even if the root bone is renamed. This suppresses wrong warnings. szs v2.19b r8243 - 2020-08-03 - Bug fix for wlect LPAR: Message functions are not longer printed twice. szs v2.20a r8279 - 2020-10-03 - Time stamps of the files are now managed in nanoseconds instead of seconds. - wszst ANALYSE: New result "warn=": Print warnings about Item Position Bug and self linked item routes with 1 point. - wszst CHECK: Hints about unusual TEX version 1 are suppressed now if option --verbose is not set. - Fewer program crashes when reading faulty SZS files. szs v2.21a r8311 - 2020-11-30 - Windows only: 32 bit and 64 bit versions of Cygwin are supported now. The 64 bit version is recommended. - 32 bit version: Cygwin DLL 3.0.7 / 2019-04-30 - 64 bit version: Cygwin DLL 3.1.7 / 2020-08-22 - Support of LE-CODE build 25: - Speedometer support for LPAR-files. - New option for wlect: --speedometer=off/on - Again fewer program crashes when reading faulty SZS files. - BMG supports little endian files now, but only encoding UTF-8 was checked. I need example files to verify other encodings (CP-1252,UTF-16,SHIFT-JIS). - KCL/OBJ: Faces with any number of vertices are accepted now. Before there was a limit of 50 vertices. - Bug fix for CT-CODE/LE-CODE configuration file: Command 'S' stored a slot number as single byte, so that only values between 0 and 255 were possible. szs v2.22a r8323 - 2020-12-26 - KMP/AREA: The table layout of text output changed. Therefor parameter @REVISION is important to select the correct scanning mode. - KMP/AREA: Detection of "Conditional Out of Bounds". - Bug fix for tool wlect: Coping/Moving/Linking source file with options --copy-tracks, --move-tracks and --link-tracks failed for *_d.files. szs v2.23a r8357 - 2021-02-03 - Bug fix for option --le-define=FILE, if FILE is a lecode binary. In this case, the special functions of chat messages are copied now. - wszst ANALYSE: Detection of additional files (like ObjFlow.bin) that have not been changed. - MAC support improved. szs v2.24a r8414 - 2021-04-07 - The tools support a configuration file now to define different paths. Therefor the file "wiimms-szs-tools.conf" is searched in different directories. - Option --config=file allows to define a specific config file. - Command CONFIG (available for all tools) prints an information about searching and the final settings. - wszst CONFIG can export configuration settings for scripts. - wszst CONFIG can create new or updated configuration files. - wszst ANALYZE: - Behavior changed for item position bug. - Print item position factors. - New warning if minimap is missed. - Detect AIParam. - Support of LE-CODE build 28. - Speedometer settings changed. It is either disabled or enabled with or without fraction (up to 3 digits). - wlect option --speedometer=modus accpets now parameters OFF, AUTO, ON, FRACTION (=1DIGIT), 2DIGITS and 3DIGITS. - LE-CODE supports debug output while racing. LPAR parameter DEBUG, LPAR sections [DEBUG-*] and wlect option --debug define the output format. See https://wiki.tockdom.com/wiki/LPAR#debug for details. - Wiimm's Item Cheat has been integrated into LE-CODE. It is enabled by a LPAR setting and supports Wiimote+Nunchuk, Classic Controller and GCN Controller for all 4 regions. - Bug fix for CT-CODE/LE-CODE configuration file: In v2.21a command 'S' was modified to accept 16 bit slot numbers. And here a copy bug is fixed now. - Mac: Universal binaries for i386, x86_64 and arm64. szs v2.25a r8443 - 2021-04-24 - Bug fix: If creating a LPAR file, a parameter with name ITEM-CHEATS was printed. But tool wlect accepted only ITEM-CHEAT (without leading 'S'). - Bug fix: Since previous version the tools recomended slots 3.1 + 6.2 + 7.1 for some tracks. - New command: wstrt WHERE address...: The segment in which the specified addresses are located is calculated for each region. - New command: wstrt PORT ...: Port addresses from one region to all others. - Mac support improved. Universal binaries for x86_64 and arm64. - Support of LE-CODE build 29. szs v2.26a r8462 - 2021-05-08 - wstrt PORT & wstrt WHERE: - Address scanning: If an address starts with letter 'm' or 'M' (main.dol) or 's' or 'S' (staticr.rel), then it is interpreted as file offset. If an address without prefix is exact 6 characters long, then value 0x80000000 is added. This makes cut+paste from cheat codes easier. - New option: --no-0x (short: -0): Suppress 0x prefix for hex numbers. - New option: --long (short: -l): Print file offsets too. - wstrt PORT: - Bug fix: Wrong column was highlighted when region order was changed by option --order. - Internal porting database updated. - New option: --port-db=file: Load the specified update file and replace the internal porting database. - wstrt DUMP: More details for StaticR.rel files. - New command: wszst INSTALL: Install files to the shared directory. szs v2.27a r8529 - 2022-05-13 - New parameter for LEX section SET1: START-ITEM: Declare that a player can get an item through an item box before race start. - wszst ANALYSE: LEX:SET1:START-ITEM is recognized and evaluated. - wstrt PORT+WHERE: Use new option --upper (-U) to force upper case digits in hex numbers. - wstrt PORT: Ported cheat codes are always printed with upper case digits and without 0x prefix. - wstrt PORT: Porting database updated. Many false records removed by updated generator script. - Fewer program crashes when reading faulty SZS files. - New section [SETUP-ARENA] for LE-CODE definition files: Define music and property slots for battle arenas. - New global option: --warn=LIST (short -W LIST): Enable or disable warnings. - New command: wkclt SHA1: Print a SHA1 checksum of the KCL for each source. The checksum is calculated after patching. - New command: wkclt TYPES: Scan KCL types from command line in different variants and print the result as flag, type, value and groups W, X, Y & Z. - New command: wszst IS-TEXTURE: Test tracks to see if it's a texture hack. - wszst ANALYZE: Detect goombas with scale other than 1.00. szs v2.27b r8534 - 2022-05-22 - Bug fix for scanning DEBUG-* sections of LPAR.txt: Parameters ITEM-POINT and KCL-TYPE were not recognized. szs v2.28a.beta r8612 - 2022-07-09 - There is a new property for parsing the command line. In a preliminary step, the options "-@FILENAME" (1 argument) and "-@ FILENAME" (2 arguments) are searched. Each occurrence is replaced by the contents of file FILENAME, which again may contain "-@...". The maximum recursion depth is 10. Wildcard patterns are not resolved. - New command for all tools: EXPAND: All parameters are treated as a filename with wildcards and all matching files are searched. - New command: wszst SPLIT: Analyse (file) names and split them into the different parts. Print the results in machine readable format. - Command wlect CREATE re-implemented. Type 'wlect create help' for details. - New command: wlect DISTRIBUTION: The command manages data for LE-CODE track distributions. It reads any number of source files with different file types, collects the data and creates any number of files with different file types. Type 'wlect distribution' without arguments to get details. - New file formats to support wlect DISTRIBUTION: LE-DEF, LE-DIS, LE-REF, LE-STR, SHA1REF and PREFIX. szs v2.28a.beta2 r8627 - 2022-08-06 - There is a new LEX section called "FEAT". It declares the special features of a track file. CTGP-R uses this declaration to manage ghost. - Command "wszst FEATURES" prints the feature list to standard output. - Command "wlect CREATE FEAT" creates a LEX template with section FEAT. - Patching option --lex-features adds or updates LEX section FEAT if any relevant feature is set. - Patching option --lex-rm-features removes LEX section FEAT. - Continuing the implementation of wlect DISTRIBUTION: - Fixed a use after free bug (Cygwin only, fixed with r8614). - Export of prefix list supports color_index now. - Improved filename normalisation (Cygwin only). - The file formats LE-REF and LE-DIS changed. They are *NOT* compatible to v2.28a.beta. - Support of lap count and speed factor for file formats LE-DEF and LE-REF. - New instruction: SEPARATOR=string. Define a separator that is used by other instructions (e.g. COPY=). - New instruction: SPLIT=DEST,SRC,FORMAT. Visit https://szs.wiimm.de/opt/printf for details. - New option: wszst SPLIT --printf=format: Use the split filename to create a formatted string. See https://szs.wiimm.de/opt/printf for details. szs v2.28a r8636 - 2022-08-27 - Continuing the implementation of LEX/FEAT: - Command wszst FEATURES: Options for value 3 (impact) are printed always. - Option --print-modes removed. - Option --long (-l and -ll) used to append human readable flags. - wlect DISTRIBUTION: Minor optimizations. - Updated internal prefix database. - Tool wstrt: Option --add-section=PATH supports now wildcards. In this case PATH is used as search pattern and all found files are added. In order to use this variant, the calling shell must not interpret the wildcards. Therefore, PATH must usually be enclosed in single or double quotes. - Bug fix: Option --all-ranks accepts keyword RESTORE now. Due to a spelling mistake, only RETORE was recognized so far. szs v2.29a r8691 - 2022-10-27 - Updated prefix, object and porting databases. - Updated integrated LE-CODE binaries to v4 build 34. - Support of LE-CODE v4.b34 with 8-bits flags and v5.b35 with 16-bits flags. - Added LE-CODE protection against changes by SZS tools that are too old. - LPAR: Support of new features BT-TEXTURES, VS-TEXTURES and BLOCK-TEXTURES. - Bug fix: If creating a LPAR file (by "wlect create lpar" or by decoding), some lines are terminated by LF instead of CR+LF. This could lead to problems with some Windows editors and other Windows programs. - Bug fix: The wildcard ** did not work correctly. The recursion depth was always 1 level higher than specified. So level 0 was never possible. See https://szs.wiimm.de/doc/wildcards#2stars for details. - wszst ANALYZE: - Added support for LE-CODE binaries. - A track can be valid, even if vrcorn_model.brres is missed. - Support of edit-slot ('e12' or 'ea12'). - wszst SPLIT: Added support for "(author1,author2,,editor1,editor2)", LE-CODE flags + group, order by attribute, and for track category. - New file type: MTCAT: Import and export 'MKW Track Category' files. szs v2.29b r8696 - 2022-10-28 - Removed a forgotten debug instruction, that created file _trace-wszst.tmp when reading a LE-CODE binary file of version 4 (builds up to 34). - wszst ANALYZE lecode: Changed output names. szs v2.30a r8708 - 2022-11-11 - Command "wlect DUMP": - Accept option --brief to print file header of LE-CODE binaries only. - New command "wlect DB" is a short cut for "wlect DUMP --brief". - New command "wlect DLLL" is a short cut for "wlect DUMP -lll". - Fixed some issues if displaying LE-CODE v5 dates. - Dump of LE-CODE binaries improved. - Command "wlect DISTRIB": - Fixed support for random slots in cups. - Updated distribution generator "distrib=...". - New processing option: +CUT-ALL. - File format #LE-DEF: - Section [TRACK-LIST]: New instruction IGNORE-SLOT to ignore SLOT instructions. When exporting, SLOT instructions are now inserted so that an identical track distribution is achieved when reading in. - Section [CUP-LIST]: New instructions APPEND-BT and APPEND-VS to force the cup type (battle or versus). This is important for random tracks. szs v2.31a r8725 - 2022-12-16 - Updated integrated LE-CODE binaries to v5 build 36. - LPAR: Official support of new features BT-WORLDWIDE and VS-WORLDWIDE. This was already implemented hidden in version v2.29a. - File format LE-DEF: Instructions STANDARD-BATTLE-ARENAS and/or STANDARD-VERSUS-TRACKS will be executed automatically if no other battle arena or no other versus track are defined. - wlect DISTRIB: - Bug fix: Random slots are ignored now if adding missed tracks to cups. - Fixed import of LE-CODE binaries without standard tracks. - New instructions: CUP-ICONS, CUP-INFO (both are experimental). - New processing option OUT-DUMMY to accept/ignore generic dummy names. - Tool wimgt supports generic images. The main application is the creation of cup-icons, as used e.g. by MKW-Fun. At the moment only an incomplete documentation is available at https://szs.wiimm.de/doc/genericimg . szs v2.32a r8742 - 2022-12-25 - wszst SPLIT: New output record: distrib_flags="number flags". - wlect DISTRIB: - Instructions cup-icons= and cup-info=: - By default, 5 characters are used for the name part. The source can now be specified as an optional storage indicator. - Fixed some issues. - Instruction distrib=: Improved track list. - New instruction report=: Analyse the distribution and print a report. - Tool wimgt: Improved generic images. - Fixed some pager and color issues. szs v2.33a r8773 - 2023-01-14 - Fixed a bug that probably exists since v2.29a: Using option --auto-add with SZS files with unusal or empty sub-files could cause a crash in certain circumstances. - Updated prefix database (added MP7). - Optimized spacing of fonts for cup icons. - wszst LIST including all short cuts like 'wszst LLL': - Wildcards are accepted as source. See https://szs.wiimm.de/doc/wildcards for details. After evaluating the wildcards, all input files are sorted according to their path. Duplicates are remove from the list. - Option --in-order: Display the input files in order of the command line and don't delete duplicates. - Tuned table output. - wszst PATCH: - Wildcards are accepted as source. See https://szs.wiimm.de/doc/wildcards for details. - New option --no-copy: Don't copy a file if it was not modified. - New option --le-menu: Patch SZS files from directory .../Scene/UI/ to change the menu as required by LE-CODE to be able to select tracks from more than 8 cups. - New option --title-screen=dir: Specify a directory from which to search and replace title screens. Title screens only appear in the file 'Title.szs' and there in the sub-directory './title/timg/'. - New option --cup-icons=file: Load given image, convert it to TPL.CMPR and add the result as sub-files 'button/timg/ct_icons.tpl' and as 'control/timg/ct_icons.tpl' to files 'Channel.szs', 'MenuMulti.szs' and 'MenuSingle.szs'. - wlect DISTRIB: - If a filename beginns with a plus sign, the plus sign is removed and the output file is opened in append mode. - If an output file is opened for the second time, then it is automatically opened in append mode. - Instruction report=: Added methods of analysis: CLASSES, XCLASSES. - New command: wszst UI-CHECK: Classify SZS files from directory ./Scene/UI/. For the analysis, the filename is ignored and only the content is examined. Wildcards and option --in-order are supported. - New option: wszst --parallel: Tell the tool that it will be called multiple times in parallel. Currently it only has an effect if --cache is enabled. - New LPAR setting: STATICR-POINTS. - All tools: Command V is a well defined short cut for command VERSION. szs v2.34a r8786 - 2023-05-28 - Windows only: Updated 64 bit version of Cygwin to DLL 3.4.3 / 2022-12-16. - GNU Compiler (GNUC) upto version 13 supported. - wstrt PORT: Updated porting database. - Updated prefix database: - Added LBPK, M&SOWG, MP5, MP6, MSS, S1, S2, S3 and WFUS. - Renamed RV to Re-Volt - wszst PATCH --ignore: Keep silent if a wildcard pattern matches no file. - New command: wszst WILDCARDS: Each parameter is treated as a file name and wildcards are expanded. Finally, one line is printed for each matched name. - Tool wszst: New otpion --log-cache=file: Log some cache activities to FILE. - Improved detection of invalid references in KCL octree (avoid crash). szs v2.35a r8801 - 2023-07-11 - Updated prefix database: Added MK8DX (alias of SW), MK8S, SBSPBfBB, SMB, SMBM, TFR, ZeldaWW (alias of WW). - Support for online-time-limit by LPAR and LEX:SET1. - Support for new LEX section RITP (Random next-links @KMP:ITPH). - Fixed end-of-line bugs in LEX text output (CR+LF required for Windows). - wlect dump: Colored flags. szs v2.36a r8834 - 2023-07-22 - Wildcard parsing has been reworked. In particular, the pipe character is now used as a special control character. In addition, the combined use with sub-files has been implemented for some commands. See built-in help and https://szs.wiimm.de/doc/wildcards for details. - New global option --no-wildcards: Disable wildcard parsing and use each filename exactly as specified. - The 114 commands of the following list including their short cuts accept wildcards as source now: - wszst: ANALYZE AUTOADD BINARY BMG BRSUB CAT CHECK COMPRESS COPY CREATE DECOMPRESS DISTRIBUTION DUMP ENCODE EXTRACT FEATURES FILETYPE GHOST ILIST INFO INSTALL IS-ARENA IS-TEXTURE KCL KMP LEX MEMORY MINIMAP NAME-REF NORMALIZE PATCH SHA1 SLOTS SPLIT STGI TEXT UPDATE XALL XCOMMON XDECODE XEXPORT YAZDUMP - wbmgt: CAT DECODE ENCODE FILETYPE LIST MIX SECTIONS PATCH SLOTS - wctct: CAT CREATE DECODE DUMP FILETYPE PATCH - wimgt: CONVERT COPY DECODE ENCODE FILETYPE LIST - wkclt: ANALYZE BLOW CAT CFF CHECK COPY DECODE DUMP ENCODE FILETYPE FLAGS LIST SHA1 TRIANGLES - wkmpt: CAT CHECK DECODE DRAW ENCODE FILETYPE GAMEMODES GOBJ KTPT ROUTES STGI - wlect: CAT DECODE DUMP ENCODE FILETYPE LPAR PATCH TIMESTAMP - wmdlt: CAT DECODE ENCODE FILETYPE GEOMETRY STRINGS XTEST - wpatt: CAT DECODE ENCODE FILETYPE - wstrt: ANALYZE DUMP EXTRACT FILETYPE HEXDUMP HTTPS PATCH - Tool wszst: New option --9laps patches files Race*.szs to enable lap 9. It is based on https://wiki.tockdom.com/wiki/Lap_Texture_Fix by Wingcapman. - For LE-CODE developers only: - LPAR:DEVELOPER-MODES can allow or forbid different developer modes. - LPAR:DEV-MODE1 .. LPAR:DEV-MODE3: Define some global developer modes. - New LEX section DEV1: Define some track dependent developer modes. szs v2.37a r8863 - 2023-09-09 - Option --max-file-size=SIZE now accepts sizes up to 2 GiB. For LTA files it is automatically set to 2 GiB. - New file format: LTA = LE-CODE Track Archive. Sometime in the future such archives will replace the individual track files to save space (smaller file list) in LE-CODE distributions. In addition, common files are to be managed so that the extraction of these files by the distribution creator is no longer necessary. - New file format: LFL = LE-CODE File List The file format was developed to store the common files in LTA files in a way that LE-CODE can use easily. - wlect distrib: - New string type 'PATH', which manages paths to the track files. - New instructions LTA=DIRECTORY and LTA-RM=DIRECTORY, which will create LE-CODE Track Archives. - wszst XCOMMON: If at least 1 file is extracted, then file "avail.txt" is created. This helps LE-CODE to detect extracted common files, because we don't know how to detect directories by LE-CODE. - New LPAR setting: USE-AVAIL-TXT. szs v2.38a r8889 - 2023-09-22 - Windows only: Updated 64 bit version of Cygwin to DLL 3.4.9 / 2023-09-06. - Bug fix for wszst COPY: All format conversion options are now evaluated. - Fixed a bug that caused distribution files to be read incorrectly. - New compression formats: LZ: Read and create LZ compressed files. LZ is like YAZ0 and BZ, but with LZMA compression. LZMA: Read and create LZMA compressed files. Tracks compressed with LZMA are approx 40% smaller than the YAZ0 compressed tracks. XZ: Detect XZ compressed files. - Formats BZIP2, LZMA and XZ are compatible with external tools like 'bzip2', 'lzma' and 'xz'. - Files compressed with BZ, BZIP2, LZ or LZMA are transparently decompressed. This means that they can be processed by all commands. - New options --lz, --lzma and --wlz to force compression with new formats. - LTA: Optionally, the compression method for the track files can be forced. Methods YAZ0, BZ, BZIP2, LZ and LZMA are available. - LTA: Maximum number of supported slots increased from 1024 to 4096. - wszst --cache=dir: Cache supports YAZ0, BZIP2 and LZMA compressed files now. - wlect DISTRIB --cache=dir: Use the cache if creating an LTA file when new compression is forced. - wszst XCOMMON: File "avail.txt" is no longer created. - Removed LPAR setting USE-AVAIL-TXT. szs v2.39a r8904 - 2023-10-24 - Updated prefix database: Added DK, FK3D. - wstrt PORT: Updated porting database. - Option --cache=dir: Cache supports YAZ0, BZ (new), BZIP2, LZ (new) and LZMA compressed files now. - wlect distrib: New options for scanning track files. Both options make it easier to import third-party distributions to create a distribution file: - HEX2SLOT: If a filename of a track is a hex number with exact 3 digits, then use it as slot number and force the slot for the track. - NAME2SLOT: If a filename of a track is a known name like 'farm_course', then use the related slot number and force the slot for the track. - CT-SLOTS: The availability of slots for CT-CODE is examined. - Support for cup icons with a size of 8x8 to 248x248 pixels in increments of 8. Default is 128x128 pixels. 64x64 saves 75% storage space. - New LEX section CTDN: Define settings for game mode countdown. szs v2.40a r8917 - 2023-12-31 - Updated prefix database: Added AEPP, FFPS, FNaF1..FNaF4, GDL, GM, LTR. - Support of command "@? !MID" in BMG text files. - wkmpt DIFF: The 16-bit value at offset 6 in all KMP section headers is now also compared. - The output of wszst distribution and wlect distrib distrib= have been rearranged so that the most important information about the distribution is now at the beginning of the file. @REFERENCE-NAME has been removed. - wstrt --add-lecode: A new LE-CODE starter has been implemented to avoid multiple linking when using additional REL files. - New option: wstrt --add-old-lecode: Add the old LE-CODE starter. @@MODULE(last-history.txt)@@ ******************************************************************************* ******* END ******* *******************************************************************************