Difference between revisions of "User:Rz/Track Listing For LE-Code (Japanese)"

From Custom Mario Kart
Jump to navigation Jump to search
m
(i decided to translate the original article in english)
Line 1: Line 1:
 
{{textbox|center grey|To the Wiiki Administrator|This is an article about how changing the track list in [[LE-CODE]] for some Japanese who can not read English.<br>But if this violates the Wiiki rules, please delete it.}}
 
{{textbox|center grey|To the Wiiki Administrator|This is an article about how changing the track list in [[LE-CODE]] for some Japanese who can not read English.<br>But if this violates the Wiiki rules, please delete it.}}
  
「Leseratte Code(通称、'''LE-CODE''')」とは、従来の[[CT-CODE]]の32つ以上のコースを追加する機能に加えて、それ以外の便利な拡張機能が[[Cheat Code|チートコード]]なしで格納された新しいフレームワークです。詳細は、[[LE-CODE]]をご参照ください。(英語です)<br><br>
+
「Leseratte Code(通称、'''LE-CODE''')」とは、従来の[[CT-CODE]]の32つ以上のコースを追加する機能に加えて、それ以外の便利な拡張機能が[[Cheat Code|チートコード]]なしで格納された新しいフレームワークです。詳細は、[[LE-CODE]]をご参照ください。(英語です)
ここではLE-CODEでのコース・カップ編成の変更方法を説明していきます。やり方自体は従来のCT-CODEとほぼ同じですが、LE-CODEの機能を活用するために必要な記述が追加されています。
 
  
== ソースコードの作成 ==
+
ここではLE-CODEを使用したCTパックの作成方法を[[9Paran|Rz]]の'''拙い日本語'''で記載しています。追加として、英語ですが[[LE-CODE/Distribution FAQ|Distribution FAQ]]にここでは書き足りない詳しい情報が記載されています。
=== CT-CODE ===
 
CT-CODEを使う場合のソースコードの書き方は、
 
<pre>
 
C "" # 0x00 = 0
 
S 0x00!, 0x01!, 0x02!, 0x03!
 
T T11 ; T11 ; "ファイル名" ; "コース名等メモ"
 
...
 
</pre>
 
になります。<br>
 
あらかじめ説明すると、各行に頭に来る文字にはそれぞれ意味があります。
 
* '''C'''はカップ編成の指定ですが、このあとのコースの配置に必要なだけで名前やIDまで指定しなくても問題なくエンコードされるので、'''C'''一文字だけで特に問題ないです。
 
* '''S'''はスロットIDの指定です。特にこれといった理由がなければ記述しなくてもいいです。
 
* '''T'''はコース編成の指定です。これは絶対に必要です。1カップには4つのコースが収納されるので、必ず4行記述しましょう。
 
** '''T'''では左から順に、'''ミュージックID'''、'''スペシャルID'''、'''ファイル名'''、'''コース名'''と指定する必要があります。1つ目、2つ目は指定がなければ自動的にルイージサーキットの設定されます。ファイル名は試してないのでわかりませんが必ず記述しておいたほうがいいと思います。
 
また上記には存在していませんが、
 
  
=== LE-CODE ===
+
==導入==
さて、LE-CODEの場合でも一応上の構文を使うことはできますが、LE-CODE限定の機能を使うには他に必要な条件があります。
+
===スロットとファイル名===
<pre>
+
[[LE-CODE]]では、4028スロット(68~4095、16進数で0x044~0xfff)がカスタムトラックに使われます。具体的には、32つの任天堂コース、10つの任天堂バトルステージに加えて、その他残りの特別なスロットが使用可能です。詳細は英語になりますが、[[Slot_Usage#LE-CODE|LE-CODE Slot Usage]]を参照下さい。
%LE-FLAGS = 1
+
各ストットでは、以下の3バイトが使われます:
%WIIMM-CUP = 1
+
* 指定したコースに合わせたコースID
T T11 ; T11 ; 0x02 ; "(Custom Slot ID)" ; "メモ"
+
* ミュージックID
H T11 ; T11 ; 0x04 ; "(Custom Slot ID)" ; "メモ"
+
* [[#flags|フラグ]]([[#flag-new|新しいコース]]、[[#flag-rhead|ランダムセレクト用スロットの始点]]もしくは[[#flag-rgroup|ランダムセレクト用スロットの内容の指定]])
</pre>
+
合計で12KBを4096スロットを定義するのに使われます。それに対し、従来の[[CT-CODE]]では256バイトが必要でした。使用するメモリ量を削減するために、[[CT-CODE]]ではわざわざ文字列を利用してコースファイル名を定義していますが、LE-CODEでは代わりに任天堂コースを含めたすべてのスロットのIDを使用しています:
* %LE-FLAGSは、'''LE-CODEの機能を使用するかしないかを切り替える'''行です。
+
std_file = sprintf(“%03x.szs”,slot);
* %WIIMM-CUPは、'''特殊なおまかせ機能を持つカップを配置するかしないかを切り替える'''行です。
+
d_file  = sprintf("%03x_d.szs",slot);
使用する場合は'''1'''、しない場合は'''0'''もしくは行自体を削除します。<br>
+
マルチプレイに必要な、''~_d.szs''が存在しない場合は、シングルプレイ用ファイルが代わりに読み込まれます。
また、中央に謎の16進数が割り込まれています。
+
===<span id=random>特別なランダムスロット</span>===
* 0x00が通常通りのコース指定
+
いくつかのスロットは既におまかせ機能を定義されています。特定のスロットIDを[[#cup|カップ]]内に配置されることで作動させます。[[#bmg|テキスト]]は0x703e~0x7041に定義されています。
* 0x02が'''グループの先頭を意味する値'''です。
+
<dl>
* 0x04が'''そのグループ内のコースを意味する値'''です。
+
<dt id=slot-03e>0x03e: 全てのコース</dt>
** 0x04が指定されている場合は必ず先頭をTからHに変更してください。
+
<dd>コースをランダムに選択します。</dd>
 +
<dt id=slot-03f>0x03f: 任天堂コース</dt>
 +
<dd>任天堂コースの中からランダムに選択します。</dd>
 +
<dt id=slot-040>0x40: カスタムトラック</dt>
 +
<dd>スロット68から配置されているコースからランダムに選択します。</dd>
 +
<dt id=slot-041>0x41: 新コース</dt>
 +
<dd>新しいコースとして配置されたコースのみからランダムに選択します。存在しない場合は上記と同じ動作をします。</dd>
 +
</dl>
 +
===共通ファイル===
 +
コースファイルは''./files/Race/Course/*.szs''に配置されています。いくつかのコースファイルはサブディレクトリ''./Common/''に異なるファイルの非公開のバージョンと一緒に配置されています。これらのファイルは%Nにスロット番号として''./files/Race/Common/%N''に展開する必要があります。詳細は[[LE-CODE/Distribution FAQ#common|Distribution FAQ: Common Files]]を参照下さい。
 +
===<span id=flags>コースフラグ</span>===
 +
[[LE-CODE]]はコースIDとミュージックIDの横に存在する、''フラグ''と呼ばれる三つ目のプロパティに対応しています。3つのプロパティはそれぞれ4096つの配列に保持されます。
 +
''フラグ''は以下の特徴を持つビットフィールドです:
 +
:<dl>
 +
<dt id=flag-new>New (ビット0 = 0x01、符号: LE$F_NEW)</dt>
 +
<dd>指定されたスロットは新コースとして配置されます。上記のランダムセレクトに使用します。</dd>
 +
<dt id=flag-rhead>Random header (ビット1 = 0x02、符号: LE$F_HEAD)</dt>
 +
<dd>おまかせ用グループの先頭です。[[#flag-rgroup|以下のフラグ]]が設定されていない、もしくは次のグループの先頭が設定された場合、グループの終点が配置されます。
  
== バイナリファイルへの挿入 ==
+
これが指定されているコースを選択した場合、これ以下にそのメンバーとして配置されているコースの中からランダムで選択されます。これ自体もメンバーとして配置されている場合、ランダムセレクトに含まれますが、おおよそ除外されます。</dd>
''未完成''
+
<dt id=flag-rgroup>Random group (ビット2=0x04、符号: LF$F_GROUP)</dt>
 +
<dd>[[#flag-rhead|上記のフラグ]]が指定されたスロット以下のスロットに指定することでメンバーとして配置されます。</dd>
 +
<dl>
 +
===<span id=cup>カップ</span>===
 +
現在、[[LE-CODE]]は5つのステージを持つ2カップと4コースを持つ1024カップに対応しています。バトル用カップとステージには、通常の定義方法が使われます。コースIDとミュージックIDを除いて、SZSファイルとステージ名を交換することが可能です。これは将来的に変更されます。
 +
レース用カップには、スロットとコースを割り当て、定義するために[[CT-CODE]]の構成ファイルを使用します。任意で上記のフラグを使うことができます。詳細は以下の章を参照下さい。
 +
カップには名前を設定できません。カップセレクトでカップをスクロールした際にカップ名がそれに倣って変更されないためです。
 +
===<span id=bmg>BMG</span>===
 +
[[LE-CODE]]では、テキストIDの7000~7FFFをスロット0x000~0xfffとして使用します。テキストID6800~6c01と8000~8fffはカップ名とカップの参照に使われます。前記のカップの参照は[[mkw-ana]]でコース選択に関する情報を描画するために使われます。
 +
{| class="textbox grid"
 +
|+ BMGテキストID
 +
! テキストID !! 使用される媒体 !! 概要
 +
|-
 +
| <tt>6800-6bff</tt> || mkw-ana || 1024カップそれぞれの名前
 +
|-
 +
| <tt>6c00-6c01</tt> || mkw-ana || 2カップそれぞれの名前
 +
|-
 +
| <tt>7000-7fff</tt> || mkw-ana & LE-CODE || スロット0x000-0xfffそれぞれのコース名。詳細は次のテーブルを参照下さい。
 +
|-
 +
| <tt>8000-8fff</tt> || mkw-ana || スロット0x000-0xfffそれぞれのコースとカップの結びつき
 +
|}
 +
7000-7fffの範囲はコース名が定義され、ゲーム上でもっとも大切なものです。テキストIDはスロット番号に関連付けされます:
 +
{| class="textbox grid"
 +
|+ コースとステージに使われるテキストID
 +
! テキストID !! 概要
 +
|-
 +
| <tt>7000-701f</tt> || 32つの任天堂コースの名前
 +
|-
 +
| <tt>7020-7029</tt> || 10つ任天堂ステージ、もしくはカスタムステージの名前
 +
|-
 +
| <tt>702a-703d</tt> || 使われません
 +
|-
 +
| <tt>703e-7041</tt> || 4つの[[#random|ランダムセレクト]]の名前
 +
|-
 +
| <tt>7042-7043</tt> || 使われません
 +
|-
 +
| <tt>7044-7fff</tt> || 4028つのカスタムトラックの名前
 +
|}
 +
===BMGコースリストの作成===
 +
'''[[Wiimms SZS Tools|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'''として出力する部分になります。

Revision as of 06:56, 24 February 2020

To the Wiiki Administrator
This is an article about how changing the track list in LE-CODE for some Japanese who can not read English.
But 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バイトが使われます:

合計で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つの配列に保持されます。 フラグは以下の特徴を持つビットフィールドです:

New (ビット0 = 0x01、符号: LE$F_NEW)
指定されたスロットは新コースとして配置されます。上記のランダムセレクトに使用します。
Random header (ビット1 = 0x02、符号: LE$F_HEAD)
おまかせ用グループの先頭です。以下のフラグが設定されていない、もしくは次のグループの先頭が設定された場合、グループの終点が配置されます。 これが指定されているコースを選択した場合、これ以下にそのメンバーとして配置されているコースの中からランダムで選択されます。これ自体もメンバーとして配置されている場合、ランダムセレクトに含まれますが、おおよそ除外されます。
Random group (ビット2=0x04、符号: LF$F_GROUP)
上記のフラグが指定されたスロット以下のスロットに指定することでメンバーとして配置されます。

カップ

現在、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でコース選択に関する情報を描画するために使われます。

BMGテキストID
テキスト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
テキスト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.txttracks.bmg.txtとして出力する部分になります。