Wiimms SZS Tools/CT-CODE Extension

From Custom Mario Kart
Jump to navigation Jump to search

Since version 1.23a, Wiimms SZS Tools supports the CT-CODE extension. CT-CODE was developed by MrBean35000vr and Chadderz for their CTGP Revolution. The name CT-CODE was created by Wiimm.



Introduction

This article describes, how to modify an original Mario Kart Wii to support up to 216 custom tracks in only one Custom Track Distribution. At the beginning only some commands are described.

Patching main.dol

The file main.dol (found in directory files/sys/) must be extended with CT-CODE. The following command does it for the PAL, USA and JAPAN version:

wstrt patch --add-ctcode main.dol

It must be done only once and the result are main.dol files, that are identical to the files of CTGP Revolution v1.02. The advantage of patching is, that there is no need to distribute copyrighted software.

Defining the Online-Region

The region for online racing is defined by:

wstrt patch --region=NUMBER StaticR.rel

NUMBER is here the region number. It can be entered as decimal number (e.g. 123) or as hexadecimal number with prefix (e.g. 0x7b). To avoid region conflicts, consult »Custom Track Regions« and mark your region as reserved or used.

Creating STRAP files

Before v1.39a (2015-03-27) the strap file (SZS) must be created in 2 steps. Since v1.39a the tools can create directly a SZS or BRRES file that includes all needed pictures and the CT-CODE.

The SZS file is created by one of the following commands:

wctct create eu-szs ctcode.txt --images image_dir -od strap-eu.szs
wctct create us-szs ctcode.txt --images image_dir -od strap-us.szs
wctct create jp-szs ctcode.txt --images image_dir -od strap-jp.szs

The difference is only the supported disc type (EU, USA or JAPAN).

The directory image_dir is searched for the 8 images:

  • strapA_16_9_832x456
  • strapA_608x456
  • strapB_16_9_832x456
  • strapB_608x456
  • strapC_832x456
  • strapC_608x456
  • strapD_832x456
  • strapD_608x456 (relevant image)

All images are internally converted into format TEX0.RGB565. Each image is searched with 4 different file extensions in this order: .png, .tex, .tex0 and without extension. If an image is missed, then an internal template is used.

However, the only important image is strapD_608x456, because all other images are not shown or only on a CT-CODE loading error.

Old method (before v1.39a)

First you need a CTGP-R conforming strap file. The easiest way is to use the provided template. It contains an extracted strap.d files.

In the sub-directory strap.d/Textures(NW4R)/ you find the file CT_CODE (see below) and 8 pictures. The pictures are stored as TEX0 file and as PNG file. You must at least edit the image strapD_832x456.png to define your setup screen. Use any image tool for it.

The CT-CODE is created by one of the following commands:

wctct create eu-tex ctcode.txt -od "strap.d/Textures(NW4R)/CTGP_CODE"
wctct create us-tex ctcode.txt -od "strap.d/Textures(NW4R)/CTGP_CODE"
wctct create jp-tex ctcode.txt -od "strap.d/Textures(NW4R)/CTGP_CODE"

The difference is only the supported disc type (EU, USA or JAPAN).

At last you must create the new strap file:

wszst create strap.d --overwrite

The file name of the new strap file is strap.szs. Replace all strap files found in ./files/Boot/Strap/ by the new file.

Visual effect on Track Selection

Layout

To get the custom menu layout system that CTGP uses it requires a specially modified Menusingle.szs that has modified the track selection screen to have the arrows. A download to Variety Pack's Menusingle can be found here.

Cup Icons

To make your own cup icons you need to make each icon 128x128 pixels and to have all of them in a file being the ct_icons.tpl which is found in the MenuSingle.szs in button/timg and control/timg. Both need to have been modified to get the cup icons working. Use Variety Pack's one as a base and convert it into a png and edit it in a image editing software then convert it back.

BMG messages

Template

You can find a template file at the SZS tools site: CT-CODE.zip It contains: