User:Rz/Track Listing For LE-Code (Japanese)
If this violates the Wiiki rules, please delete it.
「Leseratte Code(通称、LE-CODE)」とは、従来のCT-CODEの32つ以上のコースを追加する機能に加えて、それ以外の便利な拡張機能がチートコードなしで格納された新しいフレームワークです。詳細は、LE-CODEをご参照ください。(英語です)
ここではLE-CODEを使用したCTパックの作成方法をRzの拙い日本語で記載しています。追加として、英語ですがDistribution FAQにここでは書き足りない詳しい情報が記載されています。
導入
スロットとファイル名
LE-CODEでは、4028スロット(68~4095、16進数で0x044~0xfff)がカスタムトラックに使われます。具体的には、32つの任天堂コース、10つの任天堂バトルステージに加えて、その他残りの特別なスロットが使用可能です。詳細は英語になりますが、LE-CODE Slot Usageを参照下さい。 各ストットでは、以下の3バイトが使われます:
- 指定したコースに合わせたコースID
- ミュージックID
- フラグ(新しいコース、ランダムセレクト用スロットの始点もしくはランダムセレクト用スロットの内容の指定)
合計で12KBを4096スロットを定義するのに使われます。それに対し、従来のCT-CODEでは256バイトが必要でした。使用するメモリ量を削減するために、CT-CODEではわざわざ文字列を利用してコースファイル名を定義していますが、LE-CODEでは代わりに任天堂コースを含めたすべてのスロットのIDを使用しています:
std_file = sprintf(“%03x.szs”,slot); d_file = sprintf("%03x_d.szs",slot);
マルチプレイに必要な、~_d.szsが存在しない場合は、シングルプレイ用ファイルが代わりに読み込まれます。
特別なランダムスロット
いくつかのスロットは既におまかせ機能を定義されています。特定のスロットIDをカップ内に配置されることで作動させます。テキストは0x703e~0x7041に定義されています。
- 0x03e: 全てのコース
- コースをランダムに選択します。
- 0x03f: 任天堂コース
- 任天堂コースの中からランダムに選択します。
- 0x40: カスタムトラック
- スロット68から配置されているコースからランダムに選択します。
- 0x41: 新コース
- 新しいコースとして配置されたコースのみからランダムに選択します。存在しない場合は上記と同じ動作をします。
共通ファイル
コースファイルは./files/Race/Course/*.szsに配置されています。いくつかのコースファイルはサブディレクトリ./Common/に異なるファイルの非公開のバージョンと一緒に配置されています。これらのファイルは%Nにスロット番号として./files/Race/Common/%Nに展開する必要があります。詳細はDistribution FAQ: Common Filesを参照下さい。
コースフラグ
LE-CODEはコースIDとミュージックIDの横に存在する、フラグと呼ばれる三つ目のプロパティに対応しています。3つのプロパティはそれぞれ4096つの配列に保持されます。 フラグは以下の特徴を持つビットフィールドです:
- wlect - LE-CODE関連用ツール
- wszst、wctctとwbmgtは--le-codeを使用することでその動作が変化します。
- その他ツールはこのオプションを無視します。
- 文字列外のスペースとタブは無視されますが、いくつかは区切りとして使用されます。
- コメントは»#«を先頭に置きます。
- 空行は無視され、純粋なコメント行も無視されます。
- ファイルは構文によってスキャンされます。なので、数字の17は代わりに16進数で0x11、数式で(7+10)、事前に定義された変数名としてVARNAME、関数を呼び出しとしてget17()と書くことができます。
- おまかせ: すべてのコース
- おまかせ: 任天堂コース
- おまかせ: カスタムトラック
- おまかせ: 新しいコース
- music_id
- そのスロット上での音楽IDを定義します。基本的に0x75 (=117)と0xb3 (=179)の間の奇妙な番号で構成されます。この表と比較しましょう。0から0x29 (=41)の番号が規定された場合、コースIDと解釈されます。なので番号の代わりに事前に定義された名前»T53«、もしくは»sGV2«を使うことができます。
- property_id
- そのスロット上のコースにあったコースIDを定義します。0から31(もしくはT11..T84、LC..nBC)のみ許可されます。
- le_flags
- そのスロット上のフラグを定義します。
- file_name
- 実際に存在するSZSファイルに関連する(拡張子.szsを除いた)ファイル名を定義します。これはコースのSZSファイルを元のディレクトリから目的のディレクトリにコピー/移動/リンクさせるために使われます。これを行っている間、ファイルは自動的に正しいスロットの指数とともにスロットID.szsに改名されます。詳細は»Copy, move and/or link track files«をお読みください。
- info
- BMGや関連するリストを作成するために使用される任意の名前です。使用しない場合は空欄にしてください。("";)。
- id
- 最適化のために使用する任意の識別子です。参照を作成する際に同じ識別子を持つコースと同じ物であると判断します。空欄や"-"のような1文字は、識別子がないことを示します。スペースを確保するために同じファイル同士をリンクすることが出来ます。
カップ
現在、LE-CODEは5つのステージを持つ2カップと4コースを持つ1024カップに対応しています。バトル用カップとステージには、通常の定義方法が使われます。コースIDとミュージックIDを除いて、SZSファイルとステージ名を交換することが可能です。これは将来的に変更されます。 レース用カップには、スロットとコースを割り当て、定義するためにCT-CODEの構成ファイルを使用します。任意で上記のフラグを使うことができます。詳細は以下の章を参照下さい。 カップには名前を設定できません。カップセレクトでカップをスクロールした際にカップ名がそれに倣って変更されないためです。
BMG
LE-CODEでは、テキストIDの7000~7FFFをスロット0x000~0xfffとして使用します。テキストID6800~6c01と8000~8fffはカップ名とカップの参照に使われます。前記のカップの参照はmkw-anaでコース選択に関する情報を描画するために使われます。
テキストID | 使用される媒体 | 概要 |
---|---|---|
6800-6bff | mkw-ana | 1024カップそれぞれの名前 |
6c00-6c01 | mkw-ana | 2カップそれぞれの名前 |
7000-7fff | mkw-ana & LE-CODE | スロット0x000-0xfffそれぞれのコース名。詳細は次のテーブルを参照下さい。 |
8000-8fff | mkw-ana | スロット0x000-0xfffそれぞれのコースとカップの結びつき |
7000-7fffの範囲はコース名が定義され、ゲーム上でもっとも大切なものです。テキストIDはスロット番号に関連付けされます:
テキストID | 概要 |
---|---|
7000-701f | 32つの任天堂コースの名前 |
7020-7029 | 10つ任天堂ステージ、もしくはカスタムステージの名前 |
702a-703d | 使われません |
703e-7041 | 4つのランダムセレクトの名前 |
7042-7043 | 使われません |
7044-7fff | 4028つのカスタムトラックの名前 |
BMGコースリストの作成
wctctを使うことで定義ファイルからBMGリストを作成することができます:
wctct bmg --le-code --long CTFILE.txt > tracks.bmg.txt
bmgコマンドはBMGを作成、通常の出力を行います。--le-codeオプションはLE-CODEに対応するために必須です。--longオプションはmkw-anaに必要な記述を出力させます。CTFILE.txtは定義ファイルのファイル名の一例です。>tracks.bmg.txtはtracks.bmg.txtとして出力する部分になります。
Wiimms SZS Toolsと--le-codeオプション
Wiimms SZS Toolsはv2.00aから、全てのツールに--le-codeオプションが追加されています。このオプションはLE-CODEへの対応を有効化します。ただしこのオプションは以下のツールとコマンドにのみ関連付けされます:
スロットとカップの定義
コースとスロットの割り当ては、CT-CODEの定義ファイルと拡張子によって定義されます。以下のツールと数多のコマンドによって定義ファイルを使用できます。
wlect COMMAND OPTIONS ARGUMENTS wctct --lecode COMMAND OPTIONS ARGUMENTS
定義ファイルの例
定義ファイルの内容は以下の通りです:
#CT-CODE [RACING-TRACK-LIST] # LE-CODE用定義ファイルに設定します %LE-FLAGS = 1 # Wiimmカップと自動的に挿入します %WIIMM-CUP = 1 # 通常のセットアップ N N$SWAP | N$F_WII C "Mushroom" # 1 T 153; T81; 0x00; "T_000"; "SNES Mario Circuit 1"; "14b2b4b4514f5a593418e14b001518cbce1b12b1" ....
標準的な構文の規則は、
参考
節の見出し
ファイルタイプは識別するために、一番最初の行は必ず»#CT-CODE«で始まります。次に、角括弧で囲まれた名前は、先頭の節を区別するために使われます。カップとコースの定義には»[RACING-TRACK-LIST]«を使います。
初めにいくつかの全体設定を定義します。»%LE-FLAGS = 1«はLE-CODEを有効化します。»%WIIMM-CUP = 1«は自動的に4つの異なるおまかせ機能を含んだカップを追加します:
従って、スロット0x03e..0x041は使われます。テキストの定義には703e..7041を使います。
設定»N N$SWAP | N$F_WII«は任天堂コースの有効化と通常のカップ表示に合わせるための順番替えです。
上記を使うことでカップとコースの区分形態を定義します。コマンドはLE-CODEでは、»C«、»T«、»H«と»A«だけが使われます。
カップ定義
'C' カップの名前 例: C "Mushroom" #任意のコメント
このコマンドは次のカップが開かれたら、既定のコースで埋められ、現在のカップを閉じます。名前は参照と書き出されたリストのために使われます。もし一つのカップがいっぱいになった場合、名前がない次のカップが自動的に展開されます。
コースの定義の前に'S'コマンドを使うことで、カップに収録するコースの順番を指定できます。これは任意です。
'C' カップの名前 'S' t1! t2! t3! t4!
これはwlectにそのカップ内での順番に配置されるべきスロットを通知します。これは最初の32コースの音楽とコーススロットを編集するときに使えるオプションです。
例: C "Koopa" #任意のコメント S 0x08! 0x01! 0x02! 0x04!
コースの定義
%LE-FLAGS = 1であるとき: 'T' music_id ';' property_id ';' le_flags ';' file_name ';' info ';' id 例: T 153; T81; 0x00; "T_000"; "SNES Mario Circuit 1"; "SHA1"
%LE-FLAGS = 0であるとき: 'T' music_id ';' property_id ';' file_name ';' info ';' id 例: T 153; T81; "T_000"; "SNES Mario Circuit 1"; "SHA1"
コースの定義は6つのパーツから成り立ちます:
カスタムトラックのために4028個のレース用スロット (0x44=68
から0xfff=4095
)が使用できます。この中に予約枠はありません。そのため、wlectとwctctはそれらを順番に使用することになります。LE-CODEは一部例外を除いてスロットの順番には気にしません。ランダムに選択されるコースはともにグループ化される必要があります。そのため、同じコーススロットの空欄や同時使用は技術的に認められます。
隠されたコースの定義
上記の方法だとコースを追加することは出来ますが、カップから隠すことが出来ません。コースの定義を»T«から»H«に置き換える必要があります。
H 153; T81; 0x00; "FILENAME"; "SNES Mario Circuit 1"; "SHA1"
隠されたコースは通常ランダム選択の追加に使用されます。
T 153; T81; 0x02; "FILENAME1"; "Menu Name"; "SHA1_1" H 153; T81; 0x04; "FILENAME1"; "Track Name 1"; "SHA1_1" H 155; T72; 0x04; "FILENAME2"; "Track Name Two"; "SHA1_2"
上記の場合だと、»Menu Name«はコースの選択時に表示され、その他のコースが非表示になります。プレイヤーもしくはコース投票で選ばれた時には、»Track Name 1«か»Track Name Two«がランダムに選択されます。この時点から実際のコース名が表示され、読み込まれます。
コースの追加を繰り返すことで、ランダムに選択されるコースの確立を変更することが出来ます。:
T 153; T81; 0x02; "FILENAME1"; "Menu Name"; "SHA1_1" H 153; T81; 0x04; "FILENAME1"; "Track Name 1"; "SHA1_1" H 155; T72; 0x04; "FILENAME2"; "Track Name Two"; "SHA1_2" H 155; T72; 0x04; "FILENAME2"; "Track Name Two"; "SHA1_2" H 155; T72; 0x04; "FILENAME2"; "Track Name Two"; "SHA1_2"
この場合、»Track Name 1«が選ばれる確率は25%になり、»Track Name Two«は75%になります。