README.TXT
3.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
//======================================================================//
// //
// 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に無い関数は使えません。また新規に作成していませんので
注意してつかってください。