Wiimms SZS Tools

From Custom Mario Kart
Jump to navigation Jump to search

Introduction

Wiimms SZS Tools should be a set of different tools to manipulate SZS files. All tools are command line tools and run without any interaction. The main goal is to run them in batch files and scripts to automate recurring jobs. At this moment there is only one tool:

  • wszst : Wiimms SZS Tool

A second tool to change the content of message files is planned. Both tools together can be used to change the track names of all message files of all languages without interaction.

This toolset will not replace the SZS Modifier or SZS Explorer, because they are interactive tools with GUI support and can work directly with many sub file formats.

History and Download

Last changes:

szs v0.01a.beta r2385 - 2011-03-31

 - new Tool: wszst (Wiimms SZS Tool)
   The following main commands are supported:
     LIST, COMPRESS, DECOMPRESS, EXTRACT, CREATE.

szs v0.01a r2392 - 2011-04-01

 - Bug fix for "wstsz CREATE": Wrong calculation of parent directory link.
 - New option: wstsz CREATE --align: Overwrite the default aligment (32=0x20).
 - wstsz LIST: If --long is set three times debugging mode is enabled.
 - wstsz LIST: If listing a directory, then a virtual SZS file is created
   (like CREATE do it) and listed.
 - New command: wszst DIFF: Compare two sources (each SZS, U8 or directory)
   on file level and report mismatches for each sub file.

wszst (Wiimms SZS Tool)

wszst is a command driven tool to manipulate SZS files.

Features

  • wszst supports compressed and uncompressed SZS files. Uncompressed files are good for analysis. The format of each source file is detected independent of the file name.
  • wszst LIST lists the content of a SZS files and directories. It lists also extracted file systems to preview the creation process.
  • wszst DECOMPRESS and wszst COMPRESS convert SZS files from and to compressed format.
  • wszst EXTRACT extract the directories and files to the local file system to make access very easy.
  • wszst CREATE creates SZS files from directory structures. All files, but not files starting with a point, are included.
  • Extrating a SZS file and creating again results in the same SZS file. Only the order of the files may be changed.
  • wszst DIFF compares 2 SZS files on file level. This comparing is independent of the compression and of file order.

wszst HELP

The HELP command print the built in help. Type wszst HELP for a general help. Add a command to print command specific help:

wszst LIST

The command LIST list the sub files of SZS Files.

Example:

# wszst lll pool/ref/szs/Award_G.szs

* Files of pool/ref/szs/Award_G.szs

off/hex siz/hex size/dec  file or directory/
-------------------------------------------------------------------------------
      -       -        -  ./
      -       -        -  ./award/
      -       -        -  ./dpd_pointer/
      -       -        -  ./message/
    120    2580     9600  ./message/Common.bmg
   26a0   18300    99072  ./message/Menu.bmg
  1a9a0    1fc0     8128  ./message/Race.bmg
      -       -        -  ./message_window/
      -       -        -  ./pad_recognize/
      -       -        -  ./winning_run/

wszst DIFF

The command DIFF compares two sources (each SZS, U8 or directory) on file level and report mismatches for each sub file.

Example:

# wszst diff pool/ref/szs/Award_G.szs pool/ref/szs/MenuMulti_G.szs
* Only in source #1: ./award/
* Only in source #2: ./bg/
* Only in source #2: ./button/
* Only in source #2: ./control/
* Only in source #2: ./globe/
* Only in source #1: ./message/Race.bmg
* Only in source #2: ./model/
Content differ: pool/ref/szs/Award_G.szs : pool/ref/szs/MenuMulti_G.szs

wszst DECOMPRESS

The command DECOMPRESS decompresses a SZS File and stores the decompressed data into file.

wszst COMPRESS

The command COMPRESS compresses a binary file and creates SZS File.

wszst EXTRACT

The command EXTRACT extracts the sub file of source files and copy the files into a directory structure.

wszst CREATE

The command CREATE creates a SZS file by adding all files of the directory structure.

Tests

I have made several tests with the following files:

  • All files of Scene/UI/.
  • All files of Race/Course/, some of the tracks have been replaced by custom tracks before.

The tests:

  • Decompress and compress and decompress again SZS files and compare the results.
  • Extract all files, create SZS and extract again. The both extracted file system are equal.
  • Extract some of the files with SZS Explorer and compare them to my extracted files.
  • Extract all files and create a new SZS files. Then create a new ISO image with the new SZS files and play it.

Links