Lost Technology

レトロPC、レトロゲーム、チップチューン等の主に技術的な雑記

Windows用OPNAドライバのプリセット音色

Webを探しても見つからない情報を書き留めておくシリーズ第3弾。
PC-98シリーズ用Windows95/98には、PC-9801-73/PC-9801-86等のOPN系サウンドボード用のFM Synthドライバ*1が標準添付されており、OPNA用のGM互換音色データがプリセットされている。
というわけで、Windows用OPNAドライバのプリセット音色のぶっこ抜き方。

用意するもの
  1. Windows95/95OSR2/98/98SEのインストールディスク*2
  2. バイナリエディタ
ドライバファイルの抽出
  • WindowsインストールCD(またはインストール済みのWindowsディレクトリ)から、necopn.drvを探し出す。

Windows98SEのインストールイメージでは、DRIVER13.CABの中にある。f:id:madscient:20130803050835p:plain

  • 見つけたら、適当な場所に展開しておく。
バイナリイメージの検索
  • 展開したファイルをバイナリエディタで開く。
  • 音色データっぽいものを探す。だいたい最後の方にある。1音色あたり64バイトで128音あるので、規則性を見ればすぐ見つかるはず。

f:id:madscient:20130803051241p:plain

  • 64×128=8192バイト分をコピーして、新しいファイルを作成する。

f:id:madscient:20130803051634p:plain

データフォーマットは、N88-BASIC(86)と同じだが、後ろに14バイトのパディングが付いて64バイト境界にアライメントされている。
サードパーティ製のPC-9801-26K/PC-9801-86互換ボード類のWindowsドライバでも同様。*3

あとは切り出したデータを加工するなり変換するなりして目的の地で好きなように使う。

*1:パソコンのFM音源MIDI音源として使用するためのドライバ。ATではOPL3用の同様のドライバが標準添付されている。ただし、たいていのFM音源ボードはGMの最低同時発音数(楽音16音+リズム8音または合計で24音)を満たしていないため、俗にGM Level0と言われることがあった。

*2:これらのWindwosが動くマシンがある場合は、インストールされたWindowsディレクトリから直接取り出せる。また、DirectX7.xにも含まれる。無論、EULAに違反しないように注意。

*3:というか、BUFFALOのSRN-FとかSXM-Fのドライバにもnecopn.drvと全く同じ音色データが含まれていたので、NECがサードパーティ向けにリファレンスを提供したのかも知れない。