さて、SFXVI開発キットに付属のソースプログラムをコンパイルしてみましょう。 この場合でも、最初に環境設定をする必要があるのはいうまでもないことです。 とはいっても、いままでに比べれば全然難しくないので、こわがる必要はありません。
まず、開発キットを入手します。4.0β1版の開発キットは
XVI4B1D1.Lzhのファイルからなっています。また、これ以外にもボイスデータを作成するために
XVI4B1D2.Lzh
XVI4B1D3.Lzh
XVI4B1D4.Lzh
XVI4B1D5.Lzh
SFXVI35A.Lzhに含まれるSMP2PCM.xが必要です。これら全てを、所定のディレクトリに展開しましょう。全てを展開すると
PCM2SMP.x
DEVELOP\ | +- BIN\ -------------- ボイスデータ変換ツールその他 | | | +- CB\ ------------ キャラクタビルダ | | | +- NEW\ | | | | | +- DSP\ ----- 新規作成用DSPデータ | | | | | +- OBJECT\ -- 新規作成用OBJECTデータ | | | +- SAMPLE\ | | | +- DSP\ ----- サンプルDSPデータ | | | +- OBJECT\ -- サンプルOBJECTデータ | | | +- PROGRAM\ - サンプルプログラム | | | +- VOICE\ --- サンプルボイスデータ | +- INCLUDE\ ---------- SFXVI用インクルードファイル | +- LIB\ -------------- SFXVI用ライブラリファイル | +- MAN\ | +- API\ | | | +- EXAMPLE\ ---- 動作関数プログラム例 | | | +- FUNCTION\ --- 関数解説ドキュメント | | | +- MACRO\ ------ マクロ解説ドキュメント | +- ETC\ ----------- 抹消関数ドキュメント | +- CHAR\ ---------- キャラクタ付属データドキュメント | +- STAGE\ --------- ステージデータドキュメント
上の図を見てわかる通り、サンプルプログラムデータはDEVELOP/BIN/CB/SAMPLE/PROGRAM/にあります。 カレントディレクトリをここに移してみましょう。するとそこでACTION.H 変数、関数を宣言したヘッダファイルがみつかります。DEVELOP/BIN/CB/SAMPLE/OBJECT/にあるCELL.Hをここへコピーしたら バッチファイルMAKE.BATを実行しましょう。少し時間がかかりますがACTION.Xが DEVELOP/BIN/CB/SAMPLE/OBJECT/に作成されます。 出来なかった場合はコンパイラの設定がおかしい可能性があるので、調べてみましょう。
HIT_INFO.H ダメージデータを定義したヘッダファイル
ACTION.C 動作プログラムソース
MAKE.BAT コンパイル用バッチファイル
SFXVIのCHARディレクトリに新たなディレクトリを作成し DEVELOP/BIN/CB/SAMPLE/OBJECTにあるファイルを全てコピーすれば、 いまコンパイルしたプログラムを新キャラとして追加することが出来ます。
では、次に独自のディレクトリを作ってそこで開発作業する場合です。 ディレクトリ構成は好みによって自由に作成してください。 例として私のディレクトリ構成を書いておきます。あまり美しくないかもしれませんけど。
\-+- DEVELOP\(以下省略) | +- CHAR\ | +- MOON\ ------ action.x char.asp voice.smp mini1.sp etc... | | | +- DSP\ ---- スプライトデータ | | | +- OBJECT\ - CB.x生成ファイル プログラムソース | (省略)
ディレクトリ構成を変えた場合は、サンプルプログラムのインクルードファイルのパスと、 MAKE.BATを書き換える必要があります。
変更箇所
例に挙げた私のディレクトリ構成で作業する場合は 以下のように該当部分を書き換える必要があります。
action.cの11行目から18行にあるを#include "../../../../INCLUDE/MACRO.H" #include "../../../../INCLUDE/TYPE.H" #include "../../../../INCLUDE/ACT_ID.H" #include "../../../../INCLUDE/INPUT.H" #include "../../../../INCLUDE/VOICE_ID.H" #include "../../../../INCLUDE/PALET.H" #include "../../../../INCLUDE/CELL_ID.H" #include "../../../../INCLUDE/FUNC.H"のように書き換えてしまいます。こうしてしまえば、ディレクトリをどこに移そうと、 ソースを書き換える必要はなくなります。#include <MACRO.H> #include <TYPE.H> #include <ACT_ID.H> #include <INPUT.H> #include <VOICE_ID.H> #include <PALET.H> #include <CELL_ID.H> #include <FUNC.H>
次にMAKE.BATですがこれをgcc.x action.c -oaction.s -fno-defer-pop -fstrings-align -fstrings-nopcr -S -O has.x action.s -u -w hlk.x -o..\OBJECT\action.x action.o ..\..\..\..\LIB\sfxvilib.a ..\..\..\..\LIB\sfxvirun.a -xこのように書き換えます。オリジナルとの違いで注意する点は1行目の"-I"オプションです。 ここで、インクルードファイルのパスを指定します。また、3行目も若干違っているので、 比べてみてください。gcc action.c -fno-defer-pop -fstrings-align -fstring-nopcr -S -O -I ..\..\..\DEVELOP\INCLUDE has action.s -u -w hlk -o ..\action.x action.o ..\..\..\DEVELOP\LIB\sfxvilib.a ..\..\..\DEVELOP\LIB\sfxvirun.a -x
さて、ここまで出来ればSFXVIプログラミングの環境も整ったことになります。 あとはプログラムを改造したり、新しくつくったりするだけです。 というわけで、第一回はこの辺で終わりにさせていただきます。