ここ数ヶ月マリオ64のステージビューアーのQuad64のソースコード(C#)を読んでは挫折してはを繰り返してる。現状分かった大まかなコールグラフとやらを描いてみた。LevelScript, GeoScript, Fast3DScriptの3兄弟がバケモンだ。decompilationのやつでマリオ64のCのソースコード見て、この3つの具体的な命令群の雰囲気は分かったけど。他にも似たようなツールでSM64PaintやBK2BT(バンカズ)がある。
- LevelScript: ステージに対するオブジェクトの配置など
- GeoScript: エリアや複雑なオブジェクトのパーツ情報
- Fast3DScript: 各パーツまたはシンプルなオブジェクトの頂点、面データなど
<GeoScript>
クッパステージのボムの「トゲ部分」と「球体部分」のFast3DScriptの呼び出し
<Fast3DScript>
{{x, y, z}, ?, {u, v}, {a, r, g, b}} ・・・ 頂点一個の情報
x, y, zは頂点座標、u, vはテクスチャ上の座標、a, r, g, bは色
gsSP1Triangleは頂点3つ指定して三角形を1枚作成