2021年2月23日火曜日

Quad64のソースコード

 ここ数ヶ月マリオ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枚作成