doc drawn up: 2008-11-09

SB-AudioPCI Hack

Sound Blaster Audio PCI についてのちょっとしたメモです。このサウンドカードは一時期かなり出回っていたものなので、バリエーションも多いようですが、チップの型番が ES1371 / ES1373 のものであればドライバは同じものでも問題はないようです。

ISA のサウンドカードしか作る技術力のなかったクリイエイティブが、PCI 化の流れに乗り遅れそうになって、慌てて PCI サウンドカードで先行普及していた Ensoniq という会社を買収しました。それで、それまでは Ensoniq Audio PCI として出回っていたものを、会社のブランド名だけ Creative Sound Blaster に貼り替えて、しばらくはそのまま Ensoniq の Audio PCI の系統を出荷し続けていたようです。要するに、製品名称はいくつかバリエーションがありますが、中身はほんど同じものが ES1371 / ES1373 チップを使った製品群なわけです。

手元には ES1373 のチップが載ったカードが2個あります。一つは Dell の Workstation から抜き取られた Junk でカード自体の型番は CT5800 となっています。もう一つは Gateway の古いマシンにオンボードで搭載されているもので、カタログ的には Creative Sound Blaster AudioPCI 64D とされています。いずれも ES1373 チップですので、もしかしたら、ES1373 以外のチップではここで検証した事と多少事情が異なる可能性もありますのでご注意下さい。

ドライバの入手

クリエイティブのサイトからは入手できないようです。基本的に OEM 扱いになっているみたいで、OEM 先の各社から入手するようにコメントされています。

Gateway や Dell から適当な ES1373 チップを搭載したマシンを探して、それ用のドライバを入手することもできます。しかし Windows(Windows 2000)の場合一番簡単なのは、Windows Update を使って、マイクロソフトから汎用ドライバをダウンロード&インストールしてしまうことです。すると「Creative AudioPCI (ES1371,ES1373) (WDM)」という名称でインストールされます。またこのサウンドチップドライバがインストールされると引き続き「Game Port for Creative」という名称でゲームポートが認識&インストールされます。

DOS ドライバの入手

DOS の場合は Windows Update を使うわけにもいきませんので、Gateway や Dell から探してくるか、Driver Guide のようなドライバをコレクションしているサイトからダウンロードしてくるしかありません。そうやって集めたのが以下のファイルです(どちらでも問題なく動作します)。

  1. Dell 版
  2. Gateway 版

また、エミュレータの MAME 関係のサイトには、AUTOEXEC.BAT, CONFIG.SYS もセットになった DOS ドライバ(SBPCI.zip)が置いてありました。一応、MAME 用に最適化されているみたいですが、通常の DOS ゲーム用としても問題ないはずだと書かれています。この文書ではこれから AUTOEXEC.BAT, CONFIG.SYS の構築について検証しますが、それが面倒な人はこの SBPCI.zip を利用した方が確実だと思います。

基本となるドライバ

Audio PCI で基本となるドライバは、SBINIT.COM です。直接コマンド入力して起動することもできますが、通常は AUTOEXEC.BAT に記述して TSR として常駐させることになります。SBLOAD.EXE も AUTOEXEC.BAT に記述している例を見かけますが、試してみたところ、必要ないようです。SBINIT.COM だけで ok です。

この SBINIT.COM が必要に応じてその他のドライバを実行したりして、後の面倒を見てくれます。そのために要求される必須のドライバは以下の5個のファイルになります。

  1. SBCfg.exe ……名前からして設定を行うらしい。SBPCI.INI を要求するのはこのプログラムなのかもしれない。
  2. SBPCI.INI ……設定ファイル。必要に応じてユーザーが書き換える必要がある。
  3. SBPCI.bin ……バイナリなのでドライバの本体なのだろうか。
  4. EAPCI2M.ECW ……Wave Table のデータファイル。
  5. SBLOAD.EXE ……おそらく Wave Table データをメモリにロードするために使われるプログラム。常駐しない。

それ以外のドライバ

以下のドライバは必須ではありません。

AUTOEXEC.BAT の設定

AUTOEXEC.BAT では SBINIT.COM の起動以外に、BLASTER 環境変数と SBPCI 環境変数の設定が必要です。

以下、設定例:

set BLASTER=A220 I7 D1 H7 P330 T6
set SBPCI=C:\SBPCI
C:\SBPCI\SBINIT.COM

BLASTER 環境変数では、I/O ポートアドレスや IRQ、DMA などについて設定します。

SBPCI 環境変数は、上記ドライバファイル群の存在する場所を指示します。

CONFIG.SYS の設定

特に設定する項目はありません。

SBPCI.INI の設定

この設定ファイルの中で、Audio PCI の実際の I/O ポートアドレスや IRQ 等について設定したり、またゲームなどのソフトウェア側から見た仮想上の I/O ポートアドレス等について設定します。仮想のアドレス設定によって、ソフトウェアは ISA 時代の Sound Blaster と同じように扱うことができるわけです。ほかに音量設定も指定できます。

ちなみに実際の I/O ポートアドレス等についてですが、基本的には PCI というのは PnP ですので、ちゃんと設定しなくても問題はないようです。PCIPort=0, PCIIRQ=0 としておけば、自動で認識されるみたいです。

またこの設定ファイルの中では、Wave Table データファイルの場所も指定するので、これについては場所に応じた適切なパスに書き換える必要があります。

SB-AudioPCI.7z


《以上》