このページではGIMICをPCから制御する方法を紹介します。
USB制御を行うには専用ファームウェアの導入と、PC上のアプリケーションからGIMICを制御する為の中継ソフトウェアの導入が必要です。
対応OSはWindowsXP 32bit、WindowsVista 32/64bit、Windows7 32/64bitです。
(Windows2000やWindowsXP 64bit、MacOSXでの動作検証はしていません)
USB制御を行うには専用ファームウェアを導入する必要があります。以下に掲載するファームウェアへ更新して下さい。
このファームウェアを書き込むとGIMIC本体での演奏は一切できなくなりますのでご注意下さい(お試しファームの上位版ではありません)
ファームウェアの更新手順はこちらをご確認下さい。
ファームウェアの書き換えが終わったらUSBケーブルをGIMICの左側のUSBポートに接続して下さい。
GIMICがUSB複合デバイスとして認識されます。特にドライバをインストールする必要はありません。OS標準のドライバを利用します。
PC上のアプリケーションからGIMICを制御する為には中継ソフトウェア(c86ctl)の導入が必要です。
以下よりc86ctlをダウンロードして下さい。
またc86ctlはVC2010のランタイムを必要とするので以下をインストールし、MicrosoftUpdateを行って最新の状態にアップデートして下さい。
なおご利用のOSに関わらず、全て32bit版(ファイル名に_x86が含まれる物)をインストールして下さい。
これよりご紹介させて頂くソフトウェアはGIMIC Projectによる制作物ではなく、第三者の方々が制作・公開された物になります。
これらのソフトウェアなくしてGIMICのUSB制御は成り立ちません。制作・公開に携わられた方々のご尽力に感謝致します。
※お願い事項※
GIMICのUSB制御は試行錯誤の段階である物をプレビューリリースとして公開しています。全ての環境で動作する保証は一切ございませんのでご了承下さい。
GIMIC Project公式以外の作者様へのお問い合わせはご遠慮頂けますようお願い致します。
hootとはDMP SOFT.さんが作成された、一昔前のパソコンやコンシューマゲーム機のハードウェアをエミュレートし、当時のゲームミュージックを再現する為のソフトウェアです。
OPN3L、OPNA、OPM、OPL3モジュールに対応しています。
DMP SOFT.さんのサイトよりhoot(2012/05/13版)をダウンロードして任意のフォルダに解凍して下さい。
またhootはVC2005と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の下に行を追加して下さい |
lpf= | 0 | 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/98、X1/X68000の場合は上述した値で問題はありませんが、左記以外の場合は正しい合成周波数を調べて記載して下さい。
またsampling_rateは一つの値しか設定できませんのでGIMICのモジュールを繋ぎ換える度に変更する必要があります。
hootの起動オプションに「-ini ファイル名.ini」を追加することで読み込むiniを切り替えることができますので
各モジュール用のsampling_rate値を記載したiniを切り替えて使うことも可能です。
個人的にはhoot自体を対応モジュール及びsampling_rate毎に完全に別フォルダで分けて管理した方が良いと思います。
romeo_delayはGIMICへのデータ出力を遅延させる働きがあります。
通常はPC上で音声(X68000のADPCMなどGIMIC側が対応していない部分)が合成されてサウンドカードから出力されるよりも、GIMICの方が先に音声を出力してしまいます。
GIMICへのデータ出力を遅らせることでPC上で合成される音声をGIMICと同期することができます。
この値は環境により全く異なりますので自分の環境に合う値を試行錯誤して貰うことになります。romeo_delayの値はms(ミリ秒)になります。
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を制御できるようになりました。ただし現状は同じモジュールの複数制御には対応していません。
現在利用可能な機種は以下の通りです。
FMP7とはぐぅさんが作成された、PC-9800シリーズ及びその互換機用に作成されたFM音源ドライバ「FMP」の流れを汲むWindows用の音源ドライバで、
OPNA相当のFM音源部を32音、OPM相当のFM音源部を32音、SSG32音、PCM32音(最大発音数64音)という驚異的なスペックを誇ります。
またFMP7はアドオンで機能を拡張することが可能であり、FMPv4、PMD、MXDRVなどの曲データも演奏することが可能です。
アドオンの中の一つ、exS98Pを使うことでFMP7でS98データをGIMICを使って再生することができます。OPN3L、OPNA、OPMモジュールに対応しています。
またHypSさんが作成されたFMP7用ビューワーFMDSP7を使うことで、S98ファイルの演奏状況を鍵盤表示&パラメータ表示することが可能になります。
GIMICでの演奏に対応しているのはexS98Pのみです。FMP7、FMPv4、PMD、MXDRVの曲データをGIMICで再生することはできません。
FMP Official WebsiteよりFMP7(v7.10d以降)、exS98P、FMDSP7をダウンロードして任意のフォルダに解凍して下さい。exS98PはFMP7のaddonフォルダに入れて下さい。
またFMP7はVC2008のランタイムを必要とするので以下をインストールし、MicrosoftUpdateを行って最新の状態にアップデートして下さい。
なおご利用のOSに関わらず、全て32bit版(ファイル名に_x86が含まれる物)をインストールして下さい。
FMP7は詳細なマニュアルがWeb上にて公開されていますのでそちらにリンクを張らせて頂きます。
なおexS98Pに絞ってご紹介をさせて頂きましたが、FMP7の曲データも是非聴かれることをお勧めします。
QUASI88とはShowzoh Fukunagaさんが作成されたPC-8801エミュレータで、nueさんがc86ctl/ROMEOに対応したバージョンを公開されています。
導入方法や使い方はShowzoh Fukunagaさんのサイト、c86ctl/ROMEO対応QUASI88のドキュメントをご参照下さい。
OPN3L、OPNAモジュールに対応していますが、OPN3LではFM/SSG音量バランスの問題とADPCMの問題があるのでOPNAモジュールを使って頂くのが無難です。
※注意事項※
OPNAモジュールのFM/SSG音量バランスの自動設定には対応していない為、そのまま起動するとPC-98 OPNA系の音量バランスになります。
PC-88 OPN系/OPNA系の音量バランスに変更したい場合は都度c86winを使って音量調整を行って下さい。
ねこープロジェクトIIとはyuiさんが作成されたPC-9801エミュレータで、rururuさんがc86ctlに対応したバージョンを公開されています。
OPN3L、OPNAモジュールに対応しています。
サウンドボードの選択で118、86、86+ちびおと、スピークボードのどれかを選んで下さい。
前者2つはOPN3L/OPNAモジュールで有効、後者2つはOPNAモジュールで有効です。86を選択した場合は86PCMのみがPC側から再生されます。
※注意事項※
OPNAモジュールのFM/SSG音量バランスの自動設定には対応していない為、そのまま起動するとPC-98 OPNA系の音量バランスになります。
PC-98 OPN系の音量バランスに変更したい場合は都度c86winを使って音量調整を行って下さい。
XM6とはPI.さんが作成されたSHARP X68000エミュレータで、XM6 TypeG For Win32はGIMONSさんがXM6に機能強化を行われた物になります。
GIMICへの対応はnueさんとrururuさんにご尽力を頂いております。
またX68000のOPMに加え、満開製作所のまーきゅりーゆにっとV4のOPN3-L×2にも対応します(再現する為にはGIMICが3台必要です)
OPM、OPN3L、OPNAモジュールに対応していますが、OPN3Lは供給クロック可変に対応していないのでOPNAモジュールを使って頂くのが無難です。
gimic_pcidebugとはnueさんが作成されたGIMICを制御する為の中継ソフトウェアです。
来須川電工製のPCI接続FM音源ボードROMEOのインターフェイスを使ってGIMICを制御します。対応するモジュールはOPMです。
gimic_pcidebug.dllをpcidebug.dllにリネームしてROMEO対応ソフトのフォルダに入れて下さい。
X68Soundとはm_puusanさんが作成されたX68000のFM音源/ADPCM音源をWindows上で再現するライブラリです。
nueさんがc86ctlに対応したバージョンを公開されています。対応するモジュールはOPMです。
けろぴーとはけんじょさんが作成されたSHARP X68000エミュレータで、うささんがROMEOに対応したバージョンを公開されています。
nueさんのgimic_pcidebugを併用することでROMEOインターフェイスを使ってGIMICにデータを出力することが可能になります。
※注意事項※ Option→Sound→ROMEO使用にチェックを入れて下さい。
MXDRV for Win32とはGORRYさんがMXDRVをWindowsに移植したものです。
nueさんのc86ctl対応X68Soundを併用することでGIMICにデータを出力することが可能になります。
※注意事項※ MXVのMXDRVg設定で「ROMEOで演奏する」にチェックを入れて下さい。
ZMDRIVEとはfixerさんが作成されたZ-MUSICをWindows上で再現するソフトウェアです。
nueさんのc86ctl対応X68Soundを併用することでGIMICにデータを出力することが可能になります。
超連射68kとはよっしんさんが作成されたX68000用シューティングゲームです。
nueさんのc86ctl対応X68Soundを併用することでGIMICにデータを出力することが可能になります。
※注意事項※ 超連射68kのアーカイブに既にX68Sound.dllがありますが、c86ctl対応X68Soundを上書きして下さい。
X Milleniumとはyuiさんが作成されたSHARP X1エミュレータです。
nueさんのgimic_pcidebugを併用することでROMEOインターフェイスを使ってGIMICにデータを出力することが可能になります。
※注意事項※ オプションにあるFM Boardにチェックを入れて下さい。X1のPSG(SSG)には対応していません。OPMのみに対応します。
DOSBoxとはDOSBox Teamの皆様が作成されたPC/AT互換機上で動作するMS-DOS環境をエミュレートするソフトウェアです。
RuRuRuさんがc86ctlに対応したバージョンを公開されています。対応するモジュールはOPL3です。
c86ctlのアーカイブに含まれるc86win.exeでOPNAモジュールのFM/SSG音量バランスを設定することができます。
他にc86ctlを使うソフトが立ち上がっていない状態でc86winを起動して下さい。
ボタン | 機能説明 |
Initialize | 押さないで下さい(開発用) |
DeInitialize | 押さないで下さい(開発用) |
GetMBInfo | マザーボードの情報を表示 |
GetModuleInfo | 接続されているモジュールの情報を表示 |
GetFWVer | ファームウェアバージョンを表示 |
TEST1 | 押さないでください(開発用) |
adpcmZeroReset | 押さないでください(開発用) |
GetSSGVol | OPNAモジュールのSSG音量バランスを取得(初期値31) |
SetSSGVol | OPNAモジュールのSSG音量バランスを設定 |
GetPLLClock | モジュールのPLLクロックを取得 |
SetPLLClock | モジュールのPLLクロックを設定 |
SetSSGVolで以下の値をセットすることで各機種のFM/SSG音量バランスに変化します。
初期値はPC-98 OPNA系(86ボードと同等)の31です。値の範囲は0~127です。
なおc86ctlを使うソフトの動作中にc86winを使って音量を変化させることはできないのでご注意下さい。
機種 | 設定値 |
PC-98 OPN系(PC-9801-26K相当) | 38 |
PC-98 OPNA系(PC-9801-86相当) | 31 |
PC-88 OPN系(PC-8801-11、PC-8801mkIIFR相当) | 69 |
PC-88 OPNA系(PC-8801FA/MA相当) | 63 |