本ディレクトリは、本サンプルプログラムで使用するバンクファイルを作成す るためのディレクトリです。 本サンプルプログラムは、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部
Name |
Last commit
|
History
|
Last Update |
---|---|---|
.. | ||
CVS | ||
Makefile | ||
README | ||
makebank | ||
sample.flag | ||
sample.inst |