nika管理人nikaへのメッセージなどは上記Twitter等へどうぞ。搭載されているFM音源ICです。そのエミュレータなどでも使用できる可能性があります。残念ながらqemuでは4オペレータや18チャネルステレオ対応の音源としては使えないようです。DOSや自作系OS用のアプリを作成するための資料として自分用に整理中。同時発音数の例2オペレータ18チャネルすべて2オペレータで使用する場合。2オペレータ15チャネル+リズム5チャネル7~9チャネルをリズムで使用。4オペレータ6チャネル+2オペレータ6チャネル7~9チャネルと16~18チャネルは4オペレータにできない。4オペレータ6チャネル+2オペレータ3チャネル+リズム5チャネル7~9チャネルをリズムで利用。16~18チャネルは4オペレータにできない。4オペレータ2チャネル+2オペレータ14チャネル仕様を見る限りこういう利用も可能のようだ。対応したライブラリが無いとチャネルの管理が大変そう。wikipediaのFM音源ページのOPL3のところにはリズム10chとあるが、詳細不明。セカンダリの16~18チャネルも実はリズムとして利用できるのだろうか。2つ使用されているそうです。その場合、ベース+0~+1とベース+2~+3は両方ともFM1812のレジスタマップとなり2オペレータ18チャネル(ステレオだが左右独立で左9チャネル+右9チャネル)のみ利用可能と思われます。プライマリのレジスタがアクセスできるが、ベース+10~+11(22Ah~22Bh)からセカンダリのレジスタにはアクセスできない(らしい)。その場合、ベース+8〜+9がモノラル出力用、ベース+0〜+1が左音声用、ベース+2〜+3が右音声用となるようです(なんでこんな仕様になっているんだろう)。EDパーカッションモードプライマリデータレジスタBDhのビット5を立てると7~9チャネル(13~18スロット)をパーカッションモードで使用する。パーカッションの発音はBDhを使用し、チャネル7~9には適切な音色データを書き込み常に消音状態にしておく。†WMに1を書き込むと使用可。IRQとタイマを同時にリセットすることは出来ないステータスレジスタを読むベース+0のポートを読み込んでその値を取っておくタイマ1をFFhにセットレジスタ2にFFhを書き込むマスクを解除してタイマのカウントをスタートレジスタ4に21hを書き込むウェイトデュレイルーチンなどで最低でも80μ秒の間待機ステータスレジスタを再度読むベース+0のポートを読み込み、その値を取っておくタイマ1とタイマ2、そしてIRQを1.や2.と同じようにリセット読み込んだ2つのステータスレジスタの値のテスト1つ目の値は「0」で2つ目の値は「C0h」で無ければ、OPL2は存在しません。ステータスレジスタの値をE0hでANDして未使用のビットをマスクした方が良いかも知れません。Blaster互換のカードでは動作しないかも知れません。YMF-262の存在チェック方法リザーブビット(?)で判別する方法OPL2が存在することを確認ステータスレジスタを読むベース+0のポートを読み込む。その値を06hでマスク(AND)するマスクした値が「0」ならばOPL3、そうでなければOPL2です。Blaster互換のカードでは動作しないかも知れません。ステータスレジスタの値をチェックするFM1812を2個搭載している場合、タイマーがプライマリとセカンダリの両方に存在するため、同じ結果になりますなるそうです。同じ結果になった場合、4オペレータでは使用できないことになります。MODEに対応するチャネルのビットを立てて書き込みます。チャネル1~3,10~12を4オペレータモードにするとチャネル4~6,13~15がチャネル1~3,10~12のオペレータの一部になり、チャネル4~6,13~15は使用できなくなります。†ご意見やご批判などお待ちしております。スパムなどは無条件で対処させていただきます。