GIMIC USB制御

このページではGIMICをPCから制御する方法を紹介します。
USB制御を行うには専用ファームウェアの導入と、PC上のアプリケーションからGIMICを制御する為の中継ソフトウェアの導入が必要です。

対応OSはWindowsXP 32bit、WindowsVista 32/64bit、Windows7 32/64bitです。
(Windows2000やWindowsXP 64bit、MacOSXでの動作検証はしていません)

更新履歴

目次

ファームウェアの更新

USB制御を行うには専用ファームウェアを導入する必要があります。以下に掲載するファームウェアへ更新して下さい。
このファームウェアを書き込むとGIMIC本体での演奏は一切できなくなりますのでご注意下さい(お試しファームの上位版ではありません)
ファームウェアの更新手順はこちらをご確認下さい。

PCとの接続方法

ファームウェアの書き換えが終わったらUSBケーブルをGIMICの左側のUSBポートに接続して下さい。
GIMICがUSB複合デバイスとして認識されます。特にドライバをインストールする必要はありません。OS標準のドライバを利用します。

gm002.jpg

中継ソフトウェアの用意

PC上のアプリケーションからGIMICを制御する為には中継ソフトウェア(c86ctl)の導入が必要です。
以下よりc86ctlをダウンロードして下さい。

またc86ctlはVC2010のランタイムを必要とするので以下をインストールし、MicrosoftUpdateを行って最新の状態にアップデートして下さい。
なおご利用のOSに関わらず、全て32bit版(ファイル名に_x86が含まれる物)をインストールして下さい。

GIMICを利用可能なソフトウェアのご紹介

これよりご紹介させて頂くソフトウェアはGIMIC Projectによる制作物ではなく、第三者の方々が制作・公開された物になります。
これらのソフトウェアなくしてGIMICのUSB制御は成り立ちません。制作・公開に携わられた方々のご尽力に感謝致します。

※お願い事項※
GIMICのUSB制御は試行錯誤の段階である物をプレビューリリースとして公開しています。全ての環境で動作する保証は一切ございませんのでご了承下さい。
GIMIC Project公式以外の作者様へのお問い合わせはご遠慮頂けますようお願い致します。

hootを利用したGIMIC制御

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=55466OPN3L/OPNAモジュールでPC-88/PC-98関連の曲を演奏したい場合*1
62500OPMモジュールでX1/X68000関連の曲を演奏したい場合*2
49716OPL3モジュールでSoundBlaster16 (ISA/98)の曲を演奏したい場合*3
buffer=8標準値16から8に変更
time_slice=16bufferの下に行を追加して下さい
もし一部の曲で演奏にモタつきが感じる場合は値を8や6に下げてください(要CPUパワー)
値を下げ過ぎるとhoot側の音声出力が間に合わなくなっておかしくなるので注意
lpf=0ADPCM/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を利用した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以降)exS98PFMDSP7をダウンロードして任意のフォルダに解凍して下さい。exS98PはFMP7のaddonフォルダに入れて下さい。
またFMP7はVC2008のランタイムを必要とするので以下をインストールし、MicrosoftUpdateを行って最新の状態にアップデートして下さい。
なおご利用のOSに関わらず、全て32bit版(ファイル名に_x86が含まれる物)をインストールして下さい。

FMP7は詳細なマニュアルがWeb上にて公開されていますのでそちらにリンクを張らせて頂きます。

なおexS98Pに絞ってご紹介をさせて頂きましたが、FMP7の曲データも是非聴かれることをお勧めします。

PC-8801関連のソフトウェアを利用したGIMIC制御

QUASI88

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を使って音量調整を行って下さい。

M88

M88とはciscさんが作成されたPC-8801エミュレータで、rururuさんがc86ctlに対応したバージョンを公開されています。
OPN3L、OPNAモジュールに対応していますが、OPN3LではFM/SSG音量バランスの問題とADPCMの問題があるのでOPNAモジュールを使って頂くのが無難です。

※注意事項※
そのまま起動するとPC-88 OPNA系の音量バランスになります。
PC-88 OPNの音量バランスに変更したい場合は都度c86winを使って音量調整を行って下さい。

PC-9801関連のソフトウェアを利用したGIMIC制御

ねこープロジェクトII

ねこープロジェクト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を使って音量調整を行って下さい。

SHARP X68000関連のソフトウェアを利用したGIMIC制御

XM6 TypeG For Win32

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

gimic_pcidebugとはnueさんが作成されたGIMICを制御する為の中継ソフトウェアです。
来須川電工製のPCI接続FM音源ボードROMEOのインターフェイスを使ってGIMICを制御します。対応するモジュールはOPMです。

gimic_pcidebug.dllをpcidebug.dllにリネームしてROMEO対応ソフトのフォルダに入れて下さい。

c86ctl対応X68Sound

X68Soundとはm_puusanさんが作成されたX68000のFM音源/ADPCM音源をWindows上で再現するライブラリです。
nueさんがc86ctlに対応したバージョンを公開されています。対応するモジュールはOPMです。

けろぴー(WinX68k)

けろぴーとはけんじょさんが作成されたSHARP X68000エミュレータで、うささんがROMEOに対応したバージョンを公開されています。
nueさんのgimic_pcidebugを併用することでROMEOインターフェイスを使ってGIMICにデータを出力することが可能になります。

※注意事項※ Option→Sound→ROMEO使用にチェックを入れて下さい。

MXDRV for Win32 (MXDRVg)

MXDRV for Win32とはGORRYさんがMXDRVをWindowsに移植したものです。
nueさんのc86ctl対応X68Soundを併用することでGIMICにデータを出力することが可能になります。

※注意事項※ MXVのMXDRVg設定で「ROMEOで演奏する」にチェックを入れて下さい。

ZMDRIVE

ZMDRIVEとはfixerさんが作成されたZ-MUSICをWindows上で再現するソフトウェアです。
nueさんのc86ctl対応X68Soundを併用することでGIMICにデータを出力することが可能になります。

超連射68k

超連射68kとはよっしんさんが作成されたX68000用シューティングゲームです。
nueさんのc86ctl対応X68Soundを併用することでGIMICにデータを出力することが可能になります。

※注意事項※ 超連射68kのアーカイブに既にX68Sound.dllがありますが、c86ctl対応X68Soundを上書きして下さい。

SHARP X1関連のソフトウェアを利用したGIMIC制御

X Millenium

X Milleniumとはyuiさんが作成されたSHARP X1エミュレータです。
nueさんのgimic_pcidebugを併用することでROMEOインターフェイスを使ってGIMICにデータを出力することが可能になります。

※注意事項※ オプションにあるFM Boardにチェックを入れて下さい。X1のPSG(SSG)には対応していません。OPMのみに対応します。

PC/AT関連のソフトウェアを利用したGIMIC制御

DOSBox

DOSBoxとはDOSBox Teamの皆様が作成されたPC/AT互換機上で動作するMS-DOS環境をエミュレートするソフトウェアです。
RuRuRuさんがc86ctlに対応したバージョンを公開されています。対応するモジュールはOPL3です。

OPNAモジュールの音量調整

c86ctlのアーカイブに含まれるc86win.exeでOPNAモジュールのFM/SSG音量バランスを設定することができます。
他にc86ctlを使うソフトが立ち上がっていない状態でc86winを起動して下さい。

c86win.jpg
ボタン機能説明
Initialize押さないで下さい(開発用)
DeInitialize押さないで下さい(開発用)
GetMBInfoマザーボードの情報を表示
GetModuleInfo接続されているモジュールの情報を表示
GetFWVerファームウェアバージョンを表示
TEST1押さないでください(開発用)
adpcmZeroReset押さないでください(開発用)
GetSSGVolOPNAモジュールのSSG音量バランスを取得(初期値31)
SetSSGVolOPNAモジュールの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

*1 供給クロック3.9936MHz÷72分周
*2 供給クロック4MHz÷64分周
*3 供給クロック14.31818MHz÷288分周、14.31818MHzはISAバスのOSCに由来

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