README 6.88 KB
本ディレクトリは、本サンプルプログラムで使用するバンクファイルを作成す
るためのディレクトリです。

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