* USB制御FW - hootを利用したGIMICの制御 - [#o8191656]
hootとはDMP SOFT.さんが作成されたパソコンやコンシューマゲーム機のハードウェアをエミュレートしゲームミュージックを演奏する為のソフトウェアです。~
OPN3L、OPNA、OPM、OPL3モジュールに対応しています。~
#freeze
* USB制御FW - hootを利用したGIMICの制御 - [#m8944d79]

#contents

** 更新履歴 [#ec86ae81]
-2013/10/13 USB制御FWのページから分離
** 更新履歴 [#k65d94fd]
-2014/08/12 hootがGIMICの複数台制御に対応したことについて追記~

** hootの導入・ランタイムのインストール [#m1d92cc8]
[[DMP SOFT.さんのサイト:http://dmpsoft.s17.xrea.com/]]よりhoot(2013/06/02版)をダウンロードして任意のフォルダに解凍して下さい。~
またhootはVisual C++ 2005とDirectXのランタイムを必要とするので以下をインストールし、MicrosoftUpdateを行って最新の状態にアップデートして下さい。~
なおご利用のOSに関わらず、全て32bit版(ファイル名に_x86が含まれる物)をインストールして下さい。~
-2013/10/13 USB制御FWのページから分離~
hoot.iniのromeo_delayの値を0で固定にするように変更(c86ctlでDelayに対応した為)~

** hootの導入・ランタイムのインストール [#a4aea6f5]
[[DMP SOFT.さんのサイト:http://dmpsoft.s17.xrea.com/]]よりhoot本体をダウンロードして任意のフォルダに解凍して下さい。~

%%またhootはVisual C++ 2005とDirectXのランタイムを必要とするので以下をインストールし、MicrosoftUpdateを行って最新の状態にアップデートして下さい。%%~
現在のhootではランタイムを別途インストールする必要は無いと聞いていますが、もし上手く動かない場合は以下からランタイムをインストールしてみて下さい。~
なお利用しているOSに関わらず、全て&color(red){32bit版(ファイル名に_x86が含まれる物)};をインストールして下さい。~

-[[Microsoft Visual C++ 2005 Service Pack 1 再頒布可能パッケージ MFC のセキュリティ更新プログラム:http://www.microsoft.com/downloads/ja-jp/details.aspx?FamilyID=ae2e1a40-7b45-4fe9-a20f-2ed2923aca62&displaylang=ja]]
-[[DirectX エンド ユーザー ランタイム Web インストーラ:http://www.microsoft.com/downloads/ja-jp/details.aspx?familyid=2da43d38-db71-4c1b-bc6a-9b6652cd92a3]]
-[[DirectX エンド ユーザー ランタイム Web インストーラ:https://www.microsoft.com/ja-jp/download/details.aspx?id=35&]]

** hoot.iniの編集 [#ya2df74a]
** hoot.iniの編集 [#l2a100fb]
hoot.exeが入っているフォルダにc86ctl.dllをコピーし、hoot.iniをメモ帳などで開き以下の項目を書き換えて下さい。~

|hoot.iniの項目|値|説明|
|sampling_rate=|55466|OPN3L/OPNAモジュールでPC-88/PC-98関連の曲を演奏したい場合((供給クロック3.9936MHz÷72分周))|
|~|62500|OPMモジュールでX1/X68000関連の曲を演奏したい場合((供給クロック4MHz÷64分周))|
|~|49716|OPL3モジュールでSoundBlaster16 (ISA/98)の曲を演奏したい場合((供給クロック14.31818MHz÷288分周、14.31818MHzはISAバスのOSCに由来))|
|buffer=|8|標準値16から8に変更|
|time_slice=|16|bufferの下に行を追加して下さい&br;演奏にモタつきを感じる場合は値を減らしてください(&color(red){7以下には設定しないこと};)|
|lpf=|0|PC側から再生されるADPCM/PCMをクリアに聞きたい場合はLPFをオフにして下さい|
|ym2151_type=|0|標準値0から変更しないで下さい|
|ym2203_type=|0|標準値0から変更しないで下さい|
|ym2608_type=|0|標準値0から変更しないで下さい|
|romeo_delay=|任意の値|単位[ms] 後述します|
|romeo_delay=|0|標準値0から変更しないで下さい|
|romeo_ym2608_gain_fm=|0|標準値3から0に変更して下さい|
|romeo_ym2608_gain_rhythm=|0|標準値1から0に変更して下さい|
|romeo_ym2203_gain_fm=|0|標準値3から0に変更して下さい|

** hoot.ini - 各項目の説明 - [#s1f61bf2]

*** sampling_rate [#ba5015cd]
** hoot.ini - 各項目の説明 - [#we97a50d]
*** sampling_rate [#z53abcf2]
sampling_rateの値は非常に重要です。~
実機でFM音源チップに入力されるマスタークロックからチップ内部で行っている合成周波数を調べて正しく記載する必要があります。~
(この値が異なると音程が狂ったり演奏自体にモタつきが発生しますのでご注意下さい)~
PC-88、PC-98、X1、X68000の場合は上述した値で問題はありませんが、左記以外の場合(特にアーケード)は正しい合成周波数を調べて記載して下さい。~
FM音源チップに入力されるマスタークロックからチップ内部で行っている合成周波数を調べて正しく記載する必要があります。~
この値が実際と異なると音程が狂ったり、演奏自体にモタつきが発生しますのでご注意下さい。~

またsampling_rateは一つの値しか設定できませんのでGIMICのモジュールを繋ぎ換える時や、クロックが異なるタイトルを再生したいと思う度に変更する必要があります。~
特にアーケードはマスタークロックが異なる物が多数ありますのでご注意下さい。~
PC-88、PC-98、X1、X68000は上述した値で問題はありませんが、左記以外の場合(特にアーケード)は正しい合成周波数を調べて記載して下さい。~

このような場合はhootの起動オプションに「-ini ファイル名.ini」を追加することで読み込むiniを切り替えることができます。~
hoot自体を対応モジュール及びsampling_rate毎に完全に別フォルダで分けて管理した方が良いと思います。~
なおsampling_rateは一つの値しか設定できません。~
GIMICのモジュールを繋ぎ換える時やクロックが異なるタイトルを再生したいと思う度に変更する必要があります。~
特にアーケードはマスタークロックが異なる物が多数ありますので1つのhoot.iniで全てのタイトルをカバーすることは不可能です。~

romeo_delayはGIMICへのデータ出力を遅延させる働きがあります。~
通常はPC上で音声(X68000のADPCMなどGIMIC側が対応していない部分)が合成されてサウンドカードから出力されるよりも、GIMICの方が先に音声を出力してしまいます。~
GIMICへのデータ出力を遅らせることでPC上で合成される音声をGIMICと同期することができます。~
この値は環境により全く異なりますので自分の環境に合う値を試行錯誤して貰うことになります。romeo_delayの値はms(ミリ秒)になります。~
hootの起動オプションに「-ini ファイル名.ini」を追加することで読み込むiniを切り替えることができますが、~
hoot自体をsampling_rateごとに完全に別フォルダに分けて管理した方が良いでしょう。~

&aname(hootdelay);&color(red){※注意事項※};~
現行ファームウェアで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_delay [#g43273eb]
romeo_delayはGIMICへのデータ出力を遅延させる働きがありました(過去形)~
2013/10/13公開のc86ctlより、c86ctl自身に遅延機能が実装されましたのでそちらを使って下さい。~

romeo_ym2608_gain_fm/rhythm、romeo_ym2203_gain_fmはOPN3Lモジュール搭載時にFM/リズム音源の音量を意図的に下げる働きがあります。~
OPN3Lモジュールに搭載されるYMF288ではFMとSSGが一緒にデジタル出力されている為、OPNAモジュールのようにFMとSSGの音量バランスを調整することができません。~
FMとSSGの音量バランスは86ボードと同等なので、26KボードやPC-8801系の音量バランスに変えたい場合はここの値で調整して下さい。~
*** romeo_ymxxxx_gain_xxxx [#jcbb46f9]
romeo_ym2608_gain_fm、romeo_ym2608_gain_rhythm、romeo_ym2203_gain_fmはOPN3Lモジュール搭載時にFMやリズム音源の音量を下げる働きがあります。~
OPN3Lモジュールに搭載されるYMF288はFMとSSGが一緒にデジタル出力されている為、OPNAモジュールのようにFMとSSGの音量バランスを調整することができません。~
FMとSSGの音量バランスは86ボードと同等なので26KボードやPC-88系の音量バランスに変えたい場合はここの値で調整して下さい。~
ここで指定した値がYMF288のレジスタに書き込まれるTL(TotalVolume)値に加算されます(加算と書きましたが実際には音量が低くなります)~

** 複数モジュール制御 [#odbc5b56]
hootから複数台のGIMICを制御できるようになりました。ただし現状は''同じモジュールの複数制御''には対応していません。~
** 複数モジュール制御 [#pa7710ac]
hootはGIMICの複数台制御に対応しています(2013/12/31公開のhootより同じモジュールを接続したGIMICの制御にも対応しています)~
現在利用可能な機種は以下の通りです。~

-SHARP X1 (SSG+OPM)
--OPNAモジュールとOPMモジュールを利用することで実現可能です(OPN3Lモジュールは対応していません)~
ただしOPNAモジュールのSSG音量設定は行われませんので直前に設定された物に依存することに注意して下さい。~
c86winを使ってSSG音量を70程度に上げるとOPMモジュールとミックスさせやすくなると思います。~
-SHARP X1 + CZ-8BS1 + CZ-8BS1 (SSG+OPM+OPM)
--OPNAモジュールとOPMモジュールが必要です(OPN3LモジュールはSSGのクロックが合わないので対応していません)~
ただしOPNAモジュールのFM/SSG音量バランス設定は行われません。直前にOPNAモジュールに設定された音量バランスが保持されることに注意して下さい。~
c86ctlを使ってFM/SSG音量バランスを70程度に上げるとOPMモジュールとのミックスが容易になります。~

-SHARP X68000 + まーきゅりーゆにっとV4 (OPM+OPN3-L+OPN3-L)
--OPMモジュールとOPNAモジュールが必要です(OPN3Lモジュールはクロックが合わないので対応していません)~
ただしOPNAモジュールのFM/SSG音量バランス設定は行われません。直前にOPNAモジュールに設定された音量バランスが保持されることに注意して下さい。~
c86ctlを使ってFM/SSG音量バランスを「31」に設定して下さい。~

-MSX + MSX-AUDIO (SSG+Y8950)
--OPNAモジュールとOPL3モジュールが必要です(OPN3Lモジュールは対応しません)~
ただしOPNAモジュールのFM/SSG音量バランス設定は行われません。直前にOPNAモジュールに設定された音量バランスが保持されることに注意して下さい。~
c86ctlを使ってFM/SSG音量バランスを70程度に上げるとOPMモジュールとのミックスが容易になります。~
--MSX-AUDIOのADPCMには対応しません。PC側から再生されます。~

** 注意事項 [#y25c876f]
-OPN3LモジュールをOPNAモジュールの代替として使うことができますが以下に対応しません。
--OPNAのADPCM部は出力されません(代わりにPC上からADPCM部を出力することができます)
-c86ctlを利用する場合はhootフォルダにpcidebug.dllを置かないで下さい(pcidebugが優先されます)
--OPNAのADPCM部はGIMICから出力されません。代わりにhootのエミュレーションでPC側からADPCM部が出力されます。
-hootフォルダにpcidebug.dllを置かないで下さい(c86ctlよりpcidebugが優先されます)
-SSGPCM(PPZ/PPSDRVなど)を使う曲は正常に演奏されません。
-OPNAのADPCMデータ転送には若干時間がかかりますので注意して下さい。
--PC-88や一部PC-98のタイトルはADPCM転送時にデータの転送状況が表示されます。~
しかしPC-98の大半のタイトル(PMDやFMPなどADPCMを自前でロードできる音源ドライバ)に関しては~
ADPCM転送中でもhootが操作できますが、&color(red){転送が終わるまで曲の再生は行わない};様に注意して下さい。~
ADPCMデータ転送時はOPNAモジュールのLED1がオレンジ色にハッキリと点灯します。~
LED1が点滅状態(若干暗くなります)もしくは消灯するまでhootで曲を再生しないで下さい(データ抜けが発生します)~
-OPNAのADPCMデータ転送には若干時間がかかります。またデータ転送時にノイズが発生します。
--PC-88や一部PC-98のタイトルではADPCMデータ転送時に転送状況が表示されます。~
PC-98の大半のタイトル(PMDやFMPなどADPCMデータを自前で転送する音源ドライバ)に関してはADPCMデータ転送中でもhootが操作できますが、~
&color(red){転送が終わるまで曲の再生は行わない};様に注意して下さい。データ転送ミスが発生する可能性があります。~
c86ctlのkeyboardを表示することでADPCMデータの転送状況を確認することができます。~
-一部のタイトルでは音源ドライバ自体に問題があり、曲の開始時に音色化けが発生することがあります。~
(顕著な例:同級生2辺りまでのplay5.comを採用したelfのゲーム、X68000版うろつき童子、闇の血族など)~
この場合は同じ音源ドライバを使っている後期のゲームからドライバを流用することで解決できます。~


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS