hootとはDMP SOFT.さんが作成されたパソコンやコンシューマゲーム機のハードウェアをエミュレートしゲームミュージックを演奏する為のソフトウェアです。
OPN3L、OPNA、OPM、OPL3モジュールに対応しています。
DMP SOFT.さんのサイトよりhoot(2013/06/02版)をダウンロードして任意のフォルダに解凍して下さい。
またhootはVisual C++ 2005とDirectXのランタイムを必要とするので以下をインストールし、MicrosoftUpdateを行って最新の状態にアップデートして下さい。
なおご利用のOSに関わらず、全て32bit版(ファイル名に_x86が含まれる物)をインストールして下さい。
hoot.exeが入っているフォルダにc86ctl.dllをコピーし、hoot.iniをメモ帳などで開き以下の項目を書き換えて下さい。
hoot.iniの項目 | 値 | 説明 |
sampling_rate= | 55466 | OPN3L/OPNAモジュールでPC-88/PC-98関連の曲を演奏したい場合*1 |
62500 | OPMモジュールでX1/X68000関連の曲を演奏したい場合*2 | |
49716 | OPL3モジュールでSoundBlaster16 (ISA/98)の曲を演奏したい場合*3 | |
buffer= | 8 | 標準値16から8に変更 |
time_slice= | 16 | bufferの下に行を追加して下さい 演奏にモタつきを感じる場合は値を減らしてください(7以下には設定しないこと) |
lpf= | 0 | PC側から再生されるADPCM/PCMをクリアに聞きたい場合はLPFをオフにして下さい |
ym2151_type= | 0 | 標準値0から変更しないで下さい |
ym2203_type= | 0 | 標準値0から変更しないで下さい |
ym2608_type= | 0 | 標準値0から変更しないで下さい |
romeo_delay= | 任意の値 | 単位[ms] 後述します |
romeo_ym2608_gain_fm= | 0 | 標準値3から0に変更して下さい |
romeo_ym2608_gain_rhythm= | 0 | 標準値1から0に変更して下さい |
romeo_ym2203_gain_fm= | 0 | 標準値3から0に変更して下さい |
sampling_rateの値は非常に重要です。
実機でFM音源チップに入力されるマスタークロックからチップ内部で行っている合成周波数を調べて正しく記載する必要があります。
(この値が異なると音程が狂ったり演奏自体にモタつきが発生しますのでご注意下さい)
PC-88、PC-98、X1、X68000の場合は上述した値で問題はありませんが、左記以外の場合(特にアーケード)は正しい合成周波数を調べて記載して下さい。
またsampling_rateは一つの値しか設定できませんのでGIMICのモジュールを繋ぎ換える時や、クロックが異なるタイトルを再生したいと思う度に変更する必要があります。
特にアーケードはマスタークロックが異なる物が多数ありますのでご注意下さい。
このような場合はhootの起動オプションに「-ini ファイル名.ini」を追加することで読み込むiniを切り替えることができます。
hoot自体を対応モジュール及びsampling_rate毎に完全に別フォルダで分けて管理した方が良いと思います。
romeo_delayはGIMICへのデータ出力を遅延させる働きがあります。
通常はPC上で音声(X68000のADPCMなどGIMIC側が対応していない部分)が合成されてサウンドカードから出力されるよりも、GIMICの方が先に音声を出力してしまいます。
GIMICへのデータ出力を遅らせることでPC上で合成される音声をGIMICと同期することができます。
この値は環境により全く異なりますので自分の環境に合う値を試行錯誤して貰うことになります。romeo_delayの値はms(ミリ秒)になります。
※注意事項※
現行ファームウェアでromeo_delayを設定するとADPCMデータの転送に失敗する場合があることを確認しています(例:グランシード)
PC-88系タイトルはADPCMデータの転送をhootが行いますのでこの問題は確認されていませんが、PC-98のタイトルでこの問題が起きる可能性があります。
このような場合はromeo_delayを0にし、ym2608_typeを0(fmgen)から1(mame)に変更して下さい。また極端にtime_sliceの値を下げるとこの問題が起きやすくなります。
time_sliceの値を大きくするとromeo_delayを設定していても大丈夫な場合もありますのでデータ転送が失敗しない範囲を探ってみて下さい。
romeo_ym2608_gain_fm/rhythm、romeo_ym2203_gain_fmはOPN3Lモジュール搭載時にFM/リズム音源の音量を意図的に下げる働きがあります。
OPN3Lモジュールに搭載されるYMF288ではFMとSSGが一緒にデジタル出力されている為、OPNAモジュールのようにFMとSSGの音量バランスを調整することができません。
FMとSSGの音量バランスは86ボードと同等なので、26KボードやPC-8801系の音量バランスに変えたい場合はここの値で調整して下さい。
ここで指定した値がYMF288のレジスタに書き込まれるTL(TotalVolume)値に加算されます(加算と書きましたが実際には音量が低くなります)
hootから複数台のGIMICを制御できるようになりました。ただし現状は同じモジュールの複数制御には対応していません。
現在利用可能な機種は以下の通りです。