README
6.88 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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
本ディレクトリは、本サンプルプログラムで使用するバンクファイルを作成す
るためのディレクトリです。
本サンプルプログラムは、64DDのディスクからRAMに予め転送された波形デー
タ(.tblファイル)と、64DD内蔵ROM(DDROM)内の波形データを、従来のSGI
オーディオライブラリで併用するための指針を示すプログラムです。
従来のSGIオーディオライブラリでDDROM内の波形データを使用するための方法
については、64DDプログラミングマニュアル「9.2.4 SGIドライバ上での使用
に関する補足」に記述があります。本サンプルプログラムもこの記述に従って
作成されています。
本ディレクトリは以下のファイルで構成されています。
README : 本ファイル
Makefile
makebank
sample.inst
sample.flag
本ディレクトリでmakeしますと、サンプルプログラム用バンクファイル(.ctl
ファイル及び.tblファイル)が作成されます。
< 64DD用バンクファイルの作成 >
ここでは本サンプルプログラムで使用するバンクファイル(.ctlファイル及び.
tblファイル)の作成手順について説明します。
(1) 目的
64DDに内蔵されているROM(DDROM)内には、シーケンスデータの再生に良く使
われるであろう波形データが納められています。ですが現状のSGIオーディオ
ライブラリではこれらの波形データを有効に活用できません。
そこで本サンプルプログラムでは、64DDプログラミングマニュアル「9.2.4
SGIドライバ上での使用に関する補足」に従って、インスツルメントコンパイ
ラ(ic)が出力するバンクファイル(.ctlファイル及び.tblファイル)に対す
るパッチプログラムのサンプルを作成し、提供しています。
このパッチプログラム及び追加オーディオ関数を用いることで、64DDにおいて、
ディスクからRAMに転送された波形データとDDROM内の波形データの併用が可能
となります。
(2) パッチプログラム
ディレクトリtools/には次の2つのプログラムがあります。
dd_bank : icの出力を64DD対応にするためのパッチプログラム。
show_base : dd_bank用ユーティリティプログラム。
(3) 手順
<1> 64DD開発環境2.0Iで提供されていますDDROM上の各波形データ(AIFC)を
用いて、従来通りに、.inst ファイルを作成します。これらの波形データ
はディレクトリ/usr/src/PR/assets/ddsound/に納められています。
<2> 上で作成した.instファイルをicでコンパイルします。このときicのオプ
ションに、必ず、-vをつけてください。このオプションの意味は「冗長モー
ドON」です。そしてその標準出力をリダイレクトでファイルにおとし込ん
でください。例えば以下の通りです。
ic -v -o sample sample.inst > sample.info
この結果、sample.ctl、sample.tbl、sample.sym、sample.infoの計4ファ
イルが作成されます。
<3> バンクファイル(.ctlファイル及び.tblファイル)に本サンプルプログラ
ム提供の64DD対応化パッチプログラム(dd_bank)を作用させために、
.flagファイルを作成します。icの出力した.tblファイルには、DDROM内に
存在するため.tblファイル内には不必要な波形データも含まれています。
.flagファイルは、そのまとめられた波形データがDDROMにあるのか、それ
以外の場所(例えばディスク上)にあるのか、もしDDROM内にあるのなら
そのアドレスの値は、等の情報の設定を行うファイルです
現バージョンでは、1つのバンクファイルで、64DDディスク上の波形デー
タとがカートリッジROM上の波形データを併用することは出来ません。
.flagファイルの作成用にユーティリティプログラムshow_baseを用意して
います。これは<2>で作成したicの冗長出力.infoファイルから、.tblファ
イルにまとめられた波形データの名前とそのオフセットアドレスを読み取
るものです。以下のようにして実行してください。
show_base sample.info > sample.base
この出力ファイルsample.baseは以下の通りになります。
/usr/src/PR/assets/ddsound/Aifc/001PF.32.c4.aifc : 0x0
/usr/src/PR/assets/ddsound/Aifc/001PF.32.a4.aifc : 0x5000
/usr/src/PR/assets/ddsound/Aifc/001PF.32.c5.aifc : 0x8b80
/usr/src/PR/assets/ddsound/Aifc/001PF.32.a5.aifc : 0xdae0
/usr/src/PR/assets/ddsound/Aifc16/001PF.16.c5.aifc : 0xfb28
/usr/src/PR/assets/ddsound/Aifc/001PF.32.fs6.aifc : 0x12278
/usr/src/PR/assets/ddsound/Aifc16/001PF.16.a5.aifc : 0x14520
/usr/src/PR/assets/ddsound/Aifc/001PF.32.c7.aifc : 0x15550
/usr/src/PR/assets/ddsound/Aifc16/001PF.16.fs6.aifc : 0x17950
/usr/src/PR/assets/sounds/GMPiano_C2.18k.aifc : 0x18aa8
/usr/src/PR/assets/sounds/GMPiano_Bb2.16k.aifc : 0x1c200
/usr/src/PR/assets/sounds/GMPiano_F3.19k.aifc : 0x1f5d0
/usr/src/PR/assets/sounds/GMPiano_C4.22k.aifc : 0x23c68
/usr/src/PR/assets/sounds/GMPiano_G4.22k.aifc : 0x29e60
/usr/src/PR/assets/sounds/GMPiano_C5.22k.aifc : 0x2fcd0
/usr/src/PR/assets/sounds/GMPiano_G5.22k.aifc : 0x34230
/usr/src/PR/assets/sounds/GMPiano_C6.18k.aifc : 0x381c0
/usr/src/PR/assets/ddsound/Aifc/002EP.32.c4.aifc : 0x3a870
/usr/src/PR/assets/ddsound/Aifc/002EP.32.c5.aifc : 0x3e888
/usr/src/PR/assets/ddsound/Aifc/002EP.32.c6.aifc : 0x42140
/usr/src/PR/assets/ddsound/Aifc16/002EP.16.c6.aifc : 0x44e28
/usr/src/PR/assets/ddsound/Aifc/003Harpsicord.32.g3.aifc : 0x464a8
/usr/src/PR/assets/ddsound/Aifc/003Harpsicord.32.f4.aifc : 0x49350
/usr/src/PR/assets/ddsound/Aifc/003Harpsicord.32.c5.aifc : 0x4d5f0
/usr/src/PR/assets/ddsound/Aifc16/003Harpsicord.16.f4.aifc : 0x51488
/usr/src/PR/assets/ddsound/Aifc16/003Harpsicord.16.c5.aifc : 0x52ed8
/usr/src/PR/assets/sounds/Kick1.16k.aifc : 0x54ca0
/usr/src/PR/assets/sounds/AcSnare.22k.aifc : 0x55350
/usr/src/PR/assets/sounds/ClosedHat_2.22k.aifc : 0x55958
/usr/src/PR/assets/sounds/OpenHat.22k.aifc : 0x56370
/usr/src/PR/assets/sounds/Crash.20k.aifc : 0x57748
上の結果ですと、ディレクトリの指定が/usr/src/PR/assets/ddsoundになっ
ている波形データがDDROMに納められているデータです。それらの波形デー
タは.tblファイル内に不必要ですし、対応する.ctlファイル内の波形デー
タのアドレスもDDROM内の特定の位置をを指すよう変更する必要がありま
す。
上の結果を参考に.flagファイルを以下のように作成します。
# Piano, Elec Grand Piano
DDROM : 0x00005bf0
DDROM : 0x00000020
DDROM : 0x0000abf0
DDROM : 0x00003ba0
DDROM : 0x001e9330
DDROM : 0x00011f50
DDROM : 0x001e5af0
DDROM : 0x0000fb50
DDROM : 0x001eba80
# Grand Piano, Honky Tonk
OTHER :
OTHER :
OTHER :
OTHER :
OTHER :
OTHER :
OTHER :
OTHER :
# Elec Piano1 & Elec Piano2
DDROM : 0x00014200
DDROM : 0x00018220
DDROM : 0x0001bae0
DDROM : 0x001f0850
# Haprsichord
DDROM : 0x00026910
DDROM : 0x00022670
DDROM : 0x0001e7d0
DDROM : 0x001f3ca0
DDROM : 0x001f1ed0
# Percussion
OTHER :
OTHER :
OTHER :
OTHER :
OTHER :
.baseファイルを1行毎に見て、それがDDROM上のデータなら、頭にフラグ
"DDROM"をつけ、セパレータとして":"を用いた後に、そのDDROM内でのオ
フセットアドレス(romsound.infos.txt の値そのまま)を打ち込みます。
他のデバイス上のデータについては、フラグ"OTHER"を用いてください。
ちなみに空行は無視されます。また"#"で始まる行はコメント行です。
注意として、show_baseの出力順と.flagファイル内での記入順は必ずを同
じにしてください。
<4> <3>で作成した.flag ァイルを用いてバンクファイル(.ctlファイル及び.
tblファイル)の修正を行います。使用例は以下の通りです。
dd_bank sample.info sample.flag sample.ctl sample.tbl
これで.ctlファイル内の波形データアドレスが書き換えられ、.tblファイ
ル内から不必要なデータが削除されます。このときファイルsample.ctl及
びsample.tblは、それら自身が変更されますので、注意してください。
任天堂 開発3部