MDLファイルからソースコードへの逆コンパイル

MDLファイルが出来上がったらSCASMソースコードへ逆コンパイルします。逆コンパイルにはMdlDisAsというユーティリティーを使用しました。

今回はFull Sourceを利用しました。正常に変換が行われると下図のようなテキストベースのソースコードが吐き出されます。

ソースコードの編集

吐き出されたソースコードは一般的なシーナリー向けオブジェクトのソースコードになっており、このままではライブラリーオブジェクトとして使用できません。以下のように変更を加えてください。

  1. 1行目から「;*** Start of Main Aircraft Code ***」という一行までを削除する

  2. 削除した部分に
     Header( 1 90 -89 180 -179 )
     LibID( xxxxxx xxxxxxx xxxxxxxx xxxxxxxx )
     LibObj(
      SCALE 0.002
      NAME
    _object_name )

    というコマンド行を追加する。xxxxxxxx の部分には4つの16進数を指定します。この4つの16進数は、追加兵装識別用の固有IDナンバーとなりますので、他のライブラリーオブジェクトが使用していない番号を指定する必要があります。SCALE行の数値を増減させると、兵装の相対的な大きさを変更できます。0.002はMartin Wright氏が経験的に得た数値でFSDSで作製したMDLから1対1の大きさで変換するための数値です。
    object_name
    にはこの兵装の名前を指定します。この名前は、ゲーム中で兵装を選択した際に表示される名前になります。

  3. FSDSを使用する場合は IfVarAnd( :Label 0007e 00001 )Jump( :Label ) が出てきたらコメントアウトする。

ここまでの変更で以下のようになっているはずです。

続いて、ソースコードの一番最後の行に行き、EndAというコマンドをEndObjに変更します。

以上でソースコードの変更は終了です。ソースファイルを保存してください。

続き:SCASMでのコンパイル