Name Last Update
..
CVS Loading commit data...
Makefile Loading commit data...
README Loading commit data...
makebank Loading commit data...
sample.flag Loading commit data...
sample.inst Loading commit data...
本ディレクトリは、本サンプルプログラムで使用するバンクファイルを作成す
るためのディレクトリです。

本サンプルプログラムは、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部