//======================================================================// // // // SoundTools Ver3.0 用 NuSystemについて // // NINTENDO Co,Ltd. // // // // 1998/10/21 K.Ohki // //======================================================================// 【1】インストール まず、MUS ライブラリVer.3 の lib ディレクトリのライブラリとヘッダーが、 所定の場所にコピーされているのを確認してください。 その後、nualstl3ディレクトリに移り、以下のコマンドを入力し、NuSystemの ライブラリをインストールしてください。 make -f makefile.dos install これで、makefile.dosのN64KITDIR(デフォルトではc:\nintendo\n64kit)で指定した 位置にlibmus3.0用のNuSystemがインストールされます。 【2】コンパイル方法 nualstl3 ライブラリを再構築する場合は、以下のようにして下さい。 通常では、NuSystemのソースは、 X:\nintendo\n64kit\nusys\src (X: NuSystemをインストールしたドライブ) にnusys-120.lzhとして圧縮してインストールされていますので、 これをその場で展開し、 展開してできたディレクトリ"nusys-1.20"のしたに nualstl3をディレクトリごとコピーしてください。 そしてnualstl3のしたで >make -f makfile.dos とすればコンパイルできます。 (参考) N64 Soundtools 付属のライブラリ(libgmus.a libn_gaudio_sc.a など)は、 OS2.0I Patch5以降に対応した物です。 OS2.0I Patch4以前のバージョンで動作させる場合、これらも再構築する必要が あります。 それぞれのソースの makefile の以下の行のコメントを外してコンパイルして 下さい。 OLD_AUDIO_DEF = -D_OLD_AUDIO_LIBRARY 【3】NuSystemの変更点 libmus3.0は、それ以前とはかなり関数やその動作が変更されています。 しかし、できるだけその差をNuSystem側で吸収し、変更点が少なくなるように しています。 また、audioマイクロコードとn_audioマイクロコード用は同じソースから ライブラリを生成できるようにしました。 ●変更概要 これまで、NuSystem用のmusライブラリが必要でしたが、libmus3.0から スケジューラの変更ができるようになりました。 そのため、libmusをそのまま用いるように変更しています。 ただ、これまではmusライブラリを変更してsound effects bankやbinary song等 の領域をオーディオヒープ領域から確保できるようにしていましたが、 そのままlibmusを用いた場合そういったことができません。 これを解決するため、libmusの内部関数のうち__MusInitMemMalloc()を用いています。 libmus3.0から効果音は、エフェクトバンクファイルとして扱うようになり、 関数も変更されていますので、NuSystem側も変更しています。 以下に変更した関数と新たに追加した関数をあげておきます。 ●変更した関数 nuAuStlinit() これまで、引数のmusConfigのメンバをほとんどを使わなかったものを、 すべて使うようになりました。そのため、全てのメンバの初期設定を おこなってください。 ただしNULLを指定した場合は、デフォルト値(auConfig)を用います。 nuAuStlMgrInit() これまでDMAコールバック用の初期化部分とシンセサイザの初期化を削除し、 スケジューラの登録とmusの初期化をおこなうように変更しました。 また引数は、musConfig構造体のポインタに変更しています。 ●追加した関数 nuAuStlSeqPlayerInit() シーケンスと効果音の扱いが変わったので、追加しました。 オーディオヒープ領域から、シーケンス(binary song)の領域を 確保します。そのため、サイズには、ゲームでつかうシーケンスファイルの 最大値をしてしてください。 nuAuStlSndPlayerInit() 効果音が別ファイルになったので追加しました。 オーディオヒープ領域から、効果音(binary song effects bank)の 領域を確保します。そのため、サイズにはゲームで使う効果音のファイルの 最大値を指定してください。 ●削除した関数 nuAuStlPlayerInit() nuAuStlPlayerInit()は、nuAuStlSeqPlayerInit()に変更しました。 また、この関数でMusIntialize()を呼んでいましたが、 nuAuStlMgrInit()で呼ぶように変更しています。 マクロでnuAuStlPlayerInit()は、nuAuStlSeqPlayerInit()に定義して あります。 ●その他 ボリュームやパン、テンポの指定はマクロで定義してありますが、 libmus3.0に無い関数は使えません。また新規に作成していませんので 注意してつかってください。