Hacking Wiimms SZS Tools

Wiimm

Developer
OP
Member
Joined
Aug 11, 2009
Messages
2,292
Trophies
1
Location
Germany
Website
wiimmfi.de
XP
1,519
Country
Germany
I have released Wiimms SZS Tools v0.18a.
(A command line toolset for Linux, Mac and Windows)

What's new:
  • The new tool wkmpt can decode (convert to text) and encode (convert to binary) KMP files. Both operations are improved and support now variables instead of indices. This makes list modifications (inserting, removing, reordering) much easier. See the examples below.

Change Log:
Code:
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.


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.

ÂÂ- Creating TPL images files with more than 1 image is not supported yet.
ÂÂÂÂOnly file 'savebanner.tpl' is known to have 2 images.

Links:

Example: Check + respawn points:
Code:
#CKPT#
#-------------------------------------------------------------------------
#ÂÂÂÂÂÂ _____start_point_____ÂÂÂÂ______end_point______ respawnÂÂ prev
#idxÂÂÂÂÂÂÂÂ xÂÂÂÂÂÂÂÂÂÂ yÂÂÂÂÂÂÂÂÂÂÂÂxÂÂÂÂÂÂÂÂÂÂ yÂÂÂÂÂÂÂÂÂÂmodeÂÂÂÂnext
#-------------------------------------------------------------------------

...

$GROUP G2,ÂÂnext: G3A G3B
ÂÂ# == section 5,ÂÂprev: s1,ÂÂnext: s8 s9

ÂÂ12ÂÂÂÂ36400.000ÂÂ-31600.000ÂÂÂÂ28400.000ÂÂ-31600.000ÂÂÂÂj3 -1ÂÂ11ÂÂ13
ÂÂ13ÂÂÂÂ33550.000ÂÂ-24850.000ÂÂÂÂ25400.000ÂÂ-28500.000ÂÂÂÂj3aÂÂ-1ÂÂ12ÂÂ14
ÂÂ$LINE 2
ÂÂ14ÂÂÂÂ33400.000ÂÂ-24400.000ÂÂÂÂ24800.000ÂÂ-21700.000ÂÂÂÂj4ÂÂ-1ÂÂ13ÂÂ15
...
Grouping/sectioning is done by inserting "$GROUP" lines. Names are used for links. The KMP Modifier section names are printed as comment for easier orientation.

Code:
#JGPT#
#------------------------------------------------------------------------------
#ÂÂÂÂ _____________position_____________ _______rotation________ related
#idxÂÂÂÂÂÂÂÂxÂÂÂÂÂÂÂÂÂÂ yÂÂÂÂÂÂÂÂÂÂ zÂÂÂÂÂÂÂÂxÂÂÂÂÂÂ yÂÂÂÂÂÂ zÂÂÂÂÂÂ id effect
#------------------------------------------------------------------------------
...
ÂÂj3ÂÂ 23100.000ÂÂÂÂ 750.000ÂÂ-30700.000ÂÂÂÂ0.00ÂÂ157.00ÂÂÂÂ0.00ÂÂÂÂÂÂ2 0xffff
ÂÂj3aÂÂ31353.293ÂÂÂÂ1417.722ÂÂ-34329.320ÂÂÂÂ0.00ÂÂ 30.00ÂÂÂÂ0.00ÂÂÂÂÂÂ3 0xffff
ÂÂj4ÂÂ 28920.000ÂÂÂÂ2414.103ÂÂ-23650.000ÂÂÂÂ0.00ÂÂ 19.00ÂÂÂÂ0.00ÂÂÂÂÂÂ4 0xffff
...
This corresponding JPTP section. "j3a" is a new point, renaming of th others does the encoder.

Example: objects + routes:
Code:
#GOBJ#
#-----------------------------------------------------------------------------------
#ÂÂÂÂobj-id ______position/rotation/scale______ÂÂ_________settings_________ÂÂ route
#idx /unknwÂÂÂÂÂÂÂÂxÂÂÂÂÂÂÂÂÂÂ yÂÂÂÂÂÂÂÂÂÂ zÂÂÂÂ #1/#5ÂÂ#2/#6ÂÂ#3/#7ÂÂ#4/#8 /p-flag
#-----------------------------------------------------------------------------------
ÂÂ # o$itembox : An itembox
ÂÂo8ÂÂ 0x65ÂÂÂÂ9563.316ÂÂÂÂÂÂ 1.000ÂÂÂÂ8366.569ÂÂÂÂÂÂ0ÂÂÂÂÂÂ0ÂÂÂÂÂÂ0ÂÂÂÂÂÂ0ÂÂÂÂÂÂ-1
ÂÂ >ÂÂÂÂÂÂ0ÂÂÂÂÂÂ 0.000ÂÂÂÂÂÂ 0.000ÂÂÂÂÂÂ 0.000ÂÂÂÂÂÂ0ÂÂÂÂÂÂ0ÂÂÂÂÂÂ0ÂÂÂÂÂÂ0ÂÂÂÂ0x3f
ÂÂ >ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ1.000ÂÂÂÂÂÂ 1.000ÂÂÂÂÂÂ 1.000
#-----------------------------------------------------------------------------------
ÂÂ # o$f_itembox : Moving itembox (explodes)
ÂÂo9ÂÂ 0xc9ÂÂ 45211.914ÂÂÂÂ9680.000ÂÂ 32788.789ÂÂ 0x32ÂÂÂÂÂÂ0ÂÂÂÂÂÂ0ÂÂÂÂÂÂ0ÂÂÂÂÂÂr5
ÂÂ >ÂÂÂÂÂÂ0ÂÂÂÂÂÂ 0.000ÂÂÂÂÂÂ 0.000ÂÂÂÂÂÂ 0.000ÂÂÂÂÂÂ0ÂÂÂÂÂÂ0ÂÂÂÂÂÂ0ÂÂÂÂÂÂ0ÂÂÂÂ0x3f
ÂÂ >ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ1.000ÂÂÂÂÂÂ 1.000ÂÂÂÂÂÂ 1.000
#-----------------------------------------------------------------------------------
This is the definition of 2 item boxes. The comments explain the object type. The route is referenced by name.
Code:
#POTI#
#--------------------------------------------------------
#ÂÂÂÂÂÂ_____________position_____________ÂÂ __settings__
#idxÂÂÂÂÂÂÂÂ xÂÂÂÂÂÂÂÂÂÂ yÂÂÂÂÂÂÂÂÂÂ zÂÂÂÂÂÂÂÂ #1ÂÂÂÂ #2
#--------------------------------------------------------
$ROUTE r5, settings:ÂÂ0x101
ÂÂ # GOBJ reference: 6 7 9 79

ÂÂ 1ÂÂÂÂ46018.512ÂÂÂÂ9680.000ÂÂ 20785.742ÂÂÂÂ 0xcÂÂÂÂÂÂ0
ÂÂ 2ÂÂÂÂ41915.566ÂÂÂÂ9680.000ÂÂ 15091.461ÂÂÂÂ 0xcÂÂÂÂÂÂ0
ÂÂ 3ÂÂÂÂ31791.070ÂÂÂÂ9680.000ÂÂ 15837.438ÂÂÂÂ 0xcÂÂÂÂÂÂ0
ÂÂ 4ÂÂÂÂ29012.793ÂÂÂÂ9680.000ÂÂÂÂ9291.073ÂÂÂÂ 0xcÂÂÂÂÂÂ0
ÂÂ 5ÂÂÂÂ30221.631ÂÂÂÂ9680.000ÂÂÂÂ-501.291ÂÂÂÂ 0xcÂÂÂÂÂÂ0
ÂÂ 6ÂÂÂÂ25380.010ÂÂÂÂ9680.000ÂÂ -3120.385ÂÂÂÂ 0xcÂÂÂÂÂÂ0
ÂÂ 7ÂÂÂÂ24102.535ÂÂÂÂ9680.000ÂÂ -8507.992ÂÂÂÂ 0xcÂÂÂÂÂÂ0
ÂÂ 8ÂÂÂÂ17311.211ÂÂÂÂ9680.000ÂÂ-11962.936ÂÂÂÂ 0xcÂÂÂÂÂÂ0
ÂÂ 9ÂÂÂÂ13300.522ÂÂÂÂ9680.000ÂÂ-10459.839ÂÂÂÂ 0xcÂÂÂÂÂÂ0
This corresponding POTI section. A comment lists the objects using this route.

Example: Camera:
Code:
#CAME#
#--------------------------------------------------------------------
#idxÂÂtypeÂÂÂÂÂÂÂÂÂÂ ________positionÂÂ (x,y,z)________ÂÂÂÂ zoom_beg
#ÂÂÂÂ nextÂÂÂÂ 4xÂÂÂÂ________unknownÂÂÂÂ(x,y,z)________ÂÂÂÂ zoom_end
#ÂÂ unknown settings ________view point (x,y,z)________ÂÂÂÂÂÂÂÂ -
#ÂÂÂÂrouteÂÂÂÂÂÂÂÂÂÂ ________view destÂÂ(x,y,z)________ÂÂÂÂÂÂÂÂtime
#--------------------------------------------------------------------
ÂÂc6ÂÂÂÂ 2ÂÂÂÂÂÂ 0ÂÂÂÂ-5879.912ÂÂ 14726.437ÂÂÂÂ7036.634ÂÂÂÂÂÂ 53.000
ÂÂ >ÂÂÂÂc7ÂÂÂÂ 0x8ÂÂÂÂÂÂÂÂ0.000ÂÂÂÂÂÂ 0.000ÂÂÂÂÂÂ 0.000ÂÂÂÂÂÂÂÂ8.000
ÂÂ >ÂÂÂÂ 0ÂÂÂÂÂÂ 0ÂÂÂÂÂÂ 30.000ÂÂÂÂÂÂ-1.000ÂÂÂÂ 550.000
ÂÂ >ÂÂ r11ÂÂÂÂÂÂ 0ÂÂÂÂÂÂÂÂ5.000ÂÂÂÂÂÂ 1.000ÂÂÂÂÂÂ 0.000ÂÂÂÂÂÂÂÂ0.000
#--------------------------------------------------------------------
This is a camera route. Again names are used for all links.
Code:
#----------------------------------------------------------------------------------
#ÂÂÂÂ mode typeÂÂÂÂ_____position/rotation/scale______ÂÂ _________settings_________
#idxÂÂÂÂid unknownÂÂÂÂÂÂ xÂÂÂÂÂÂÂÂÂÂ yÂÂÂÂÂÂÂÂÂÂ zÂÂÂÂÂÂÂÂ #1ÂÂÂÂ #2ÂÂÂÂ #3ÂÂÂÂ #4
#----------------------------------------------------------------------------------
ÂÂa0ÂÂÂÂ 0ÂÂÂÂ0ÂÂÂÂÂÂ-179.760ÂÂ -5801.323ÂÂÂÂ8313.767ÂÂÂÂÂÂ 0ÂÂÂÂÂÂ0 0xffffÂÂÂÂÂÂ0
ÂÂ >ÂÂÂÂc6ÂÂÂÂ0ÂÂÂÂÂÂÂÂ 0.000ÂÂÂÂÂÂ 0.000ÂÂÂÂÂÂ 0.000 
ÂÂ >ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ1.000ÂÂÂÂÂÂ 2.000ÂÂÂÂÂÂ 1.300
#----------------------------------------------------------------------------------
And here is a area entry linked to the camera entry above.
 

Wiimm

Developer
OP
Member
Joined
Aug 11, 2009
Messages
2,292
Trophies
1
Location
Germany
Website
wiimmfi.de
XP
1,519
Country
Germany
I have released Wiimms SZS Tools v0.19a.
(A command line toolset for Linux, Mac and Windows)

What's new:
  • The KMP encoder/compiler (included into the tools wkmpt and wszst) supports now:
    • Predefined variables via command line.
    • Local and global variabels in the source file.
    • C like arithmetic expressions.
    • Nested @IF..@ELIF..@ELSE..@ENDIF structures.
    This means yo can write generic and conditional KMP files.
  • If genereting a KMP text file it contains much more info like distance and direction info or settings info for global variables.
  • It is possible to Cut&Paste from SZS Modifier's KMP Editor to a KMP text file. Set "@SZS-MODIFIER = 1" to enable the other syntax.

Change Log:
Code:
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).


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.

ÂÂ- Creating TPL images files with more than 1 image is not supported yet.
ÂÂÂÂOnly file 'savebanner.tpl' is known to have 2 images.

Links:
 

Wiimm

Developer
OP
Member
Joined
Aug 11, 2009
Messages
2,292
Trophies
1
Location
Germany
Website
wiimmfi.de
XP
1,519
Country
Germany
I have released Wiimms SZS Tools v0.20a.
(A command line toolset for Linux, Mac and Windows)

What's new:
  • The KMP encoder and decoder have been improved again (see change log for details). For the moment I have finshed my KMP work.
  • The Mac support changed (my host has a new installation)
    • The new LIBPNG does not support PPC. So I must discontinue PPC support, sorry.
    • LIBPNG is now linked static. So there is no longer a need for Mac users to install LIBPNG.

Change Log:
Code:
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.


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.

ÂÂ- Creating TPL images files with more than 1 image is not supported yet.
ÂÂÂÂOnly file 'savebanner.tpl' is known to have 2 images.

Links:
 

Wiimm

Developer
OP
Member
Joined
Aug 11, 2009
Messages
2,292
Trophies
1
Location
Germany
Website
wiimmfi.de
XP
1,519
Country
Germany
I have released Wiimms SZS Tools v0.21a.
(A command line toolset for Linux, Mac and Windows)

What's new:
  • I have improved the mipmap and multi image handling:
    • If reading a TEX0 or BREFT file, mipmaps are scanned too and stored for further actions. If reading a TPL, all images are scanned too and stored for further actions. If reading a PNG from file 'name.png', the tools search for other files named 'name.mm#.png'.
    • If saving TPL all images are stored. If saving a BREFT or TEX, the mipmaps are resized if needed and stored. Additional mipmaps may be generated automatically. If save as PNG, multiple files are created.
    • I have fixed some bugs of the previous beta.
  • Camera support of the KMP decoder+compiler improved.
  • More options to list archive files (SZS, U8, BRRES; ...) to improve the diagnostic and analysis:
    • Listing of images with geometry info.
    • List the peaces (headers, groups, sections, ...) of files.
    • New command wszst MEMORY list memory locations down to peaces of files.

Example for images:
  • Decode a TEX file: wimgt dec name.tex
  • Change the generated PNG files.
  • Encode: wimgt encode name.png --convert=tex.cmpr --n-mipmaps=4


Change Log:
Code:
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.

Links:
 

Wiimm

Developer
OP
Member
Joined
Aug 11, 2009
Messages
2,292
Trophies
1
Location
Germany
Website
wiimmfi.de
XP
1,519
Country
Germany
I have released Wiimms SZS Tools v0.22a.
(A command line toolset for Linux, Mac and Windows)

What's new:
  • Again KMP stuff.
    • The new command "wkmpt CHECK" makes a plausibility check for KMP files (binary or text). This should help to find KMP errors. See online docu for a list of checks.
    • This plausibility check is done automatically each time a KMP file is read. This automatic check is suppressed by option --no-check.
    • The new comamnd "wkmpt OBJECTS" search objects in the internal object database using the entered keywords and print infos about each found object. A online query is also available: szs.wiimm.de/cgi/mkw/object.


Change Log:
Code:
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:
* http://szs.wiimm.de/cmd/wkmpt/check#desc

- New command: wkmpt CHECK: Run a KMP check and return 'DIFFER' on 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: http://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.

Links:
 

Wiimm

Developer
OP
Member
Joined
Aug 11, 2009
Messages
2,292
Trophies
1
Location
Germany
Website
wiimmfi.de
XP
1,519
Country
Germany
I have released Wiimms SZS Tools v0.23a.
(A command line toolset for Linux, Mac and Windows)

What's new:
  • Again KMP stuff:
    • Functions for calcualtion and to access already defined data.
    • Datatyp vector for variables.
  • The tool wstrt (Wiimms STaticR Tool) may now detect and define region settings for online playing (Thanx to Bean+Tock +...).


Change Log:
Code:
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.

Links:
 

Wiimm

Developer
OP
Member
Joined
Aug 11, 2009
Messages
2,292
Trophies
1
Location
Germany
Website
wiimmfi.de
XP
1,519
Country
Germany
I have released Wiimms SZS Tools v0.24a.
(A command line toolset for Linux, Mac and Windows)

What's new:
  • The tools wszst and wkmpt support KMP transformations now. While copying a file (with DECODE, ENCODE, EXTRACT, CREATE and other commands) KMP positions, sizes and rotations are transformed. So the user can shift, scale, rotate and mirror the KMP data. Shift and scale may be important if scaling the course model.
    .
  • RARC/ARC archives are supported now by the wszst commands LIST, MEMORY, EXTRACT and UPDATE.


Change Log:
Code:
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.

Links:
 

Wiimm

Developer
OP
Member
Joined
Aug 11, 2009
Messages
2,292
Trophies
1
Location
Germany
Website
wiimmfi.de
XP
1,519
Country
Germany
I have released Wiimms SZS Tools v0.25a.
(A command line toolset for Linux, Mac and Windows)

What's new:
  • The tools wszst and wkmpt support KMP transformations now. While copying a file (with DECODE, ENCODE, EXTRACT, CREATE and other commands) KMP positions, sizes and rotations are transformed. So the user can shift, scale, rotate and mirror the KMP data. Shift and scale may be important if scaling the course model.

    Support options: --scale --shift --hrot --xss --yss --zss

    A note about --xss --yss --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 calcualted automatically.

    .
  • RARC/ARC archives are supported now by the wszst commands LIST, MEMORY, EXTRACT and UPDATE.


Change Log:
Code:
szs v0.25a r3321 - 2011-12-31

- The transformation options are made 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 calcualted automatically.


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.

Links:
 

Wiimm

Developer
OP
Member
Joined
Aug 11, 2009
Messages
2,292
Trophies
1
Location
Germany
Website
wiimmfi.de
XP
1,519
Country
Germany
I have released Wiimms SZS Tools v0.26a.
(A command line toolset for Linux, Mac and Windows)

What's new:
  • There are different improvements: Some new command and some new options. See change log for details.
    .
  • New tool wkclt, which only can export KCL files into text/obj representation.
    .
  • If extracting and decoding with tool wszst, MDL files are dumped to a text representation, but only some sections are decoded.


Change Log:
Code:
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:
-> http://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.

Links:
 

Wiimm

Developer
OP
Member
Joined
Aug 11, 2009
Messages
2,292
Trophies
1
Location
Germany
Website
wiimmfi.de
XP
1,519
Country
Germany
I have released Wiimms SZS Tools v0.27a.
(A command line toolset for Linux, Mac and Windows)

Change Log:
Code:
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 http://szs.wiimm.de/cmd/wkmpt/check#desc for a complete list.

Links:
 

Wiimm

Developer
OP
Member
Joined
Aug 11, 2009
Messages
2,292
Trophies
1
Location
Germany
Website
wiimmfi.de
XP
1,519
Country
Germany
I have released Wiimms SZS Tools v0.28a.
(A command line toolset for Linux, Mac and Windows)

What's new:
  • The most important new thing is the internal object file database. For each KMP object it contains the needed files (BRRES, BREFF and BREFT). Based on this new DB there are 3 extensions:
    • The new command wszst CHECK reads the KMP of a SZS and checks, if all needed files exist.
    • wszst CREATE with the new option --auto-add is able to add missing BRRES, BREFF and BREFT files from an auto-add archive.
    • The new command wszst AUTOADD manage the standard auto-add archive. If you have an extracted Mario Kart ISO and execute wszst AUTOADD ./path_to/Race/Course/ the auto-add archive is completely build by reading all track and arena files.
    .
  • KMP/CKPT: The KMP compiler is now able to make make check points visible by using and scaling any global object.
    .


Change Log:
Code:
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: --aa): 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.

Links:
 
  • Like
Reactions: 1 person

Wiimm

Developer
OP
Member
Joined
Aug 11, 2009
Messages
2,292
Trophies
1
Location
Germany
Website
wiimmfi.de
XP
1,519
Country
Germany
I have released Wiimms SZS Tools v0.29a.
(A command line toolset for Linux, Mac and Windows)

What's new:
  • There is now an internal object and file database of all track and arena files. These database is used to check SZS track files for missing and unneeded files, see command "wszst CHECK".
    .

Change Log:
Code:
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.

- Minimal 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 ols 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, modifed, 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).

Links:
 

Wiimm

Developer
OP
Member
Joined
Aug 11, 2009
Messages
2,292
Trophies
1
Location
Germany
Website
wiimmfi.de
XP
1,519
Country
Germany

Wiimm

Developer
OP
Member
Joined
Aug 11, 2009
Messages
2,292
Trophies
1
Location
Germany
Website
wiimmfi.de
XP
1,519
Country
Germany
I have released Wiimms SZS Tools v0.30a.
(A command line toolset for Linux, Mac and Windows)

What's new:
  • I have implemented a new and more tolerant BRRES iterator. This iterator goes through every subfile, section and string to find the objects. I had implemented it some versions ago for the new analysis command MEMORY and also for LIST.

    Now this new BRRES iterator is used for extracting tracks into single files and also on SZS creation to find the internal strings. I have tested it with all Nintendo tracks and a lot of custom tracks without any failure.

    And this means: Extracting and creating tracks works now for every track. If you find some non working track, please tell me.
    .

Change Log:
Code:
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.

Links:
 
  • Like
Reactions: 1 person

Wiimm

Developer
OP
Member
Joined
Aug 11, 2009
Messages
2,292
Trophies
1
Location
Germany
Website
wiimmfi.de
XP
1,519
Country
Germany
I have released Wiimms SZS Tools v0.31a.
(A command line toolset for Linux, Mac and Windows)

What's new:
  • BTI files (alternative graphics file format) are supported now:
    • All tools and listing commands: Detect BTI files and print details.
    • wimgt: Can now convert TPL, TEX, BTI, BREFT and PNG into all directions. Conversion of image formats (CMPR, IA8, RGB565, ...) are also supported.
    • wszst: Decode and encode BTI files on the fly.
    .

Change Log:
Code:
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.

Links:
 

Wiimm

Developer
OP
Member
Joined
Aug 11, 2009
Messages
2,292
Trophies
1
Location
Germany
Website
wiimmfi.de
XP
1,519
Country
Germany
I have released Wiimms SZS Tools v0.32a.
(A command line toolset for Linux, Mac and Windows)

What's new:
  • The image tool wimgt have now the new command COPY for easy conversions between fileformats.
    Code:
    # general syntax
    wimgt copy   -x 
    
    # examples: leave internal image format
    wimgt copy a.tpl b.tex
    wimgt copy b.tex c.bti
    
    # examples: change internal image format to cmpr
    wimgt copy a.tpl b.tex -x cmpr
    wimgt copy b.tex c.bti -x cmpr
    .

Change Log:
Code:
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  
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.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.

Links:
 

Wiimm

Developer
OP
Member
Joined
Aug 11, 2009
Messages
2,292
Trophies
1
Location
Germany
Website
wiimmfi.de
XP
1,519
Country
Germany
I have released Wiimms SZS Tools v0.33a.
(A command line toolset for Linux, Mac and Windows)

What's new:

Change Log:
Code:
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 http://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:
-> http://szs.wiimm.de/doc/kmp/syntax
The inline documentation in decoded KMP files is now much shorter.

- Command SYNTAX removed. Use page http://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.

Links:
 

Wiimm

Developer
OP
Member
Joined
Aug 11, 2009
Messages
2,292
Trophies
1
Location
Germany
Website
wiimmfi.de
XP
1,519
Country
Germany
I have released Wiimms SZS Tools v0.34a.
(A command line toolset for Linux, Mac and Windows)

What's new:
  • I have now implemented all planned things for the KMP compiler/parser:
    • Variables in different name spaces.
    • Numeric expressions with integers, floats and vectors.
    • Nested if..elif..else..endif.
    • 5 kinds of nested loops.
    • Includes. (new!)
    • Many predefined functions.
    • User defined macros and functions. (new!)
    • Commands for special features.
    • Conditional compiling controlled by command line settings.

    For Details read the new online syntax and semantics documentation:.

Change Log:
Code:
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.
@[member='exit']: exit the parser execution.
@ASSERT condition: exit execution, if 'condition' is false.
@[member='macro'] .. @ENDMACRO: Define named macros.
@FUNCTION .. @ENDFUNCTION: Like @[member='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.

Links:
 

Wiimm

Developer
OP
Member
Joined
Aug 11, 2009
Messages
2,292
Trophies
1
Location
Germany
Website
wiimmfi.de
XP
1,519
Country
Germany
I have released Wiimms SZS Tools v0.35a.
(A command line tool set for Linux, Mac and Windows)

What's new:
  • Now I have turned to KCL:
    .
    • The new option --kcl-flag=list allows to modify KCL flags by translation rules.
      .
    • The new option --kcl-parse=file allows to call a script, that may analyze the KCL triangle data and modify the KCL flag. This allows a more specific selection and calculation as --kcl-flag.
      .
    • I have implemented a KCL object exporter. It works fine for all tested Nintendo and Custom tracks, but is has some known issues.
    .
  • The next step is an object to KCL converter. Therefor I need more info how to create the Spatial Index.
    If you have info or an example code (in any programming language), please share it with me.

    .

Change Log:
Code:
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.

Links:
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Black_Manta_8bit @ Black_Manta_8bit: hey