逆襲のOS/2(2003.01.21/2006.11.03upd)

オーディオ・サポート

オーディオ・サポートもOS/2の頭の痛いところの一つ。ただし、私は音質にはほとんどこだわらないタイプで、もしISAのサウンドカードで良いということであれば、何のためらいもなくSound Blaster 16を使う。これならばOS/2でもノントラブルだし大量に買い込んである(今や300〜500円だもんね)。問題は、ISAのスロットが空いていない場合。最近ではレガシーフリーと称してISAをまったく搭載していない怪しからんマザーも多い。

その場合は仕方ないので、PCIのサウンドカードを使うか、オンボードのサウンドチップを使用するしかない。特に、廉価機ではAC'97 Codecのサウンド機能がチップセットに統合されている可能性が高く、これを使いたいこともあるのだが、こいつのサポートが実に貧弱なのだ。ドライバがないのではなく、見つけるのがたいへんなのだ。

【更新/09.10.03】UniAudioドライバ ver.1.1RC6はけっこう使える。AK77-600NのVT8235で動作を確認。以下の記述はこのドライバを試す前のもの。

●統合チップセットのAC'97サウンド・ドライバ

以下に私の調べた統合チップタイプのAC'97用ドライバを挙げておく。

チップセット サウンドチップ 備考 動作確認
VIA Apollo PLE133 VT82C686A/B VIAのHPより入手。Comboドライバの中にある。OK?
VIA Apollo Pro266 VT8233/33C/33A, VT8235 Hobbesより入手。Warp 3.xだとCSD必要?未確認
Intel 810 SoundMax AD1881 Suttle ME62のHPより入手未確認
Intel 815EG RealTek ALC201A RealTekのHPより入手。なぜかWinZipの自己解凍形式(^_^;OK
Intel 915G RealTek ALC880 uniaudioでサポートしているがインストールすら不能ダメ!

たいてい、チップセットの統合機能ってのは、他社の技術を買うか、他社を会社ごと買って組み込むかするから、どこまでがチップの名前かよくわからんが…。そのサウンドチップのメーカもM&Aを繰り返して、ブランドがよくわかんなくなっているし。RealTekのALC201Aだって、本来はAvance Logicブランドだと思うんだが…。

また、上記の表では、サウンドチップとしてサウスブリッジのチップ名を挙げているものもあるが、この中のサウンド部分だけとなると、また別の話で…。PLE133のVT82C686だって、サウンド部分は確かAD1881かALC100Pだったような…。それに、チップセットの場合はサウスブリッジだけ替わることもあるから、たとえば、PLE133なら何でも動くということでもなさそうだし…(そもそもチップセットの名称って、サウスを含む場合とノースのみを指す場合があるからなあ)。ということで、けっこう何だかわかんない状態なのだ。とりあえず、探して試して鳴りました、ということしかないみたいね。

なお、動作を確認しているPLE 133も、OS/2では再生速度がおかしいし、WindowsではCPU負荷が高いことが判明した(ゲームが異様に重くなる)。快適な動作を望むなら、単体のサウンドボードの方が良いだろう。また、Intel 815EGでUSBサポートを組み込んだら、サウンドが組み込み不能になった。恐らくリソース競合。現時点では対策は試みていない。

●Sound Blaster互換

統合チップセットのサウンド機能には、たいていSound Blaster互換モードがあるが、残念ながらOS/2のSound Blasterドライバでは動作しない。しかし、これも互換性が不十分というより、後述の識別情報の不一致が問題ではないだろうか? だとすると、逆にベンダーなどをチェックしない思いっきり古いドライバならば鳴るかもしれない。ま、今度閑があったら試してみよう。

●Universal Audio Drivers

これはLinuxのALSAプロジェクトのuniaudioドライバの移植版らしい。Flash/2のInnotekが開発しているようだ。Hobbesで入手可能。多くのサウンドチップに対応しているありがたいドライバで、目玉はSound Blaster Live! (PCI)とVIA AC'97 (OnChip) だが、デキの方はかなり疑問。少なくとも、私のマシンのAC'97の場合、まずハードウェアの認識でこける。希にハードウェアの認識に成功することもあるが、その場合も不正常な再生しかできない(無限ループ再生に陥る)。かなり多くのチップに対応しているようなので、中には上手く動くものもあるかもしれないが、現状では有力な選択肢とは言えない。 Intel ICHxはi915Gなどに搭載されているRealTek HD Audioのことのようだ。ちなみに、ICH6(i915G)のサウンドチップはRealTek ALC880らしい。

その後、新しいバージョン(1.0.9)が出たので試してみたが、今度はインストールすら不能になっていた(u_u;) インストールの途中で「mmpm2.ini」がないとメッセージが出て、そこでおしまい。しかも、これでシステムの起動が不能になる(>_<) ま、\mmos2\mmpm2.iniを削除すればよいのだが。おまけに、インストーラ(REXXスクリプト)にバグがあって、途中でエラーが出て止まっちゃう。原因はSysCreateShadowの関数の組み込み忘れ。フォルダにテキスト・ファイルのシャドウを作成しているだけなので、これ自体が致命的なものではないのだが、実にお粗末。InnoTekはねぇ…。

●YMF724と修正パッチ

YMF724というのは非常にポピュラーなチップらしい。しかも、OS/2でもDDPackで正式サポートしている。OS/2ではPCIで簡単に鳴るチップって貴重なのだが……実はやっぱり問題ありありで、YMF724ならば何でもOKという物ではないらしい。少なくとも、私の持っているYMF724Fではダメだった。CONFIG.SYSでYMF724.SYSに/Vオプションを付けると、ブート時にメッセージが表示されるのだが、ベンダーとデバイスの番号を表示するだけで、YMF724カードが見つからないよ〜と言っている。どうやら、アイデンテファイする情報が異なるチップが存在するらしい。

しかし、問題が識別情報だけなら話は難しくない。ということで、異なるリビジョンのYMF724でも、ドライバの識別情報を書き換えて正常認識させるパッチがある。それがDaniela's YMF724 patch utility (PatchYMF)で、Hobbesから入手できる。これを使ったところ、見事、私の環境でも音が出るようになった。

でも、出力が無闇に大きくて音割れするんだよね。おまけに、ボリューム設定がおかしい。システム起動直後の音量は爆音に近く、しかもボリュームの設定値に拘らず一定なのである。ボリュームはそこからの相対値でしかコントロールできない。たとえば、ボリュームが10に設定してあると、上げる余地(10〜100)はあっても下げる余地(10〜0)がほとんどない。ミュートにしても音が聞こえる。じゃあ、予め100にしておけば下げる余地が充分あるじゃないかというかも知れないが、50より大きい設定では騒くて使い物にならない。しかも、次回起動時はその50が先回の100に相当するから、さらに25にしないと……と、どんどん基準音量が上がっていってしまうわけ。アンプやスピーカーの方を工夫すればよいのだろうが(PC上の音量設定は一定にして、アンプやスピーカーで音量を変更する)、それも面倒なので、結局、このカードは放棄することにした。

その後、CPUをC3からCeleronに変更してチェックしたところ、爆音現象は若干緩和されたが、ボリュームコントロール周りは以前不安定。ボリュームを僅かに動かしただけで音量が大きく変動し、元の位置に戻しても元の音量にはならない。やはり、私の環境では使用不可能と見るべきだろう。

●ENSONIQとCPUの制限

ENSONIQはCREATIVEのSound Blaster系PCIカード(ENSONIQ自体は別会社だったものをCREATIVEが買収したらしいが)。一応、OS/2版ドライバも出ているし、私も動作を確認しているのだが……。どうやら、使用できるCPUに制限があるらしい。IntelとAMDは正式にサポートしているがCyrix系はダメ。少なくとも、VIA C3+PLE 133のマシンに装着したところ、Windowsでも動作しなかった(ドライバ組み込み自体は可能)。そして、OS/2でもダメ。以前テストしたマシンは……CPUが何だったのか忘れたので、はっきりとした結論は出せないが、C3をメインにしている私の環境では、避けた方が良さそうなカードだ。しかし、最近のSound Blaster PCIも同じなんだろうか…まさかねえ…

その後、CPUをCeleronに換装してチェックしたところ、OS/2でも動作を確認した。しかし、再生速度が異様に遅い。ちなみに、ドライバはENSONIQ(ES1371)用だが、使用したカードはENSONIQ Audio PCI 64(ES1373)、チップの違いの影響かもしれない。あるいは、ドライバのオプションの変更で対処できるかもしれない。いずれにしろ、C3で使えないのでは困る。

ちなみに、長い間Sound BlasterのPCI版が出なかったのは、ISAとPCIのバスの根本的な互換性の問題で、Sound Blasterにとって極めて重要な信号線がPCIではサポートされていなかったためらしい。逆にいえば、Sound Blasterって、あんまりお行儀が良くなかったというわけだね。

ところで、OS/2で確実に安定動作するPCIサウンドカードって存在するのかね? 標準サポート一覧を見ると、恐ろしく古い機種しか載ってないもんなあ…

●Sound Blaster Live!用ドライバ

未チェックではあるが、一応、Sound Blaster Live!用のドライバもHobbesから入手できる。2001年リリースのβ版が最後なので、どの程度期待できるかは疑問。また、当然のことながらLive!シリーズ全てで使えるわけではないだろう。たぶん、初代のLive!だけではないだろうか? 未チェックにつき何とも言えないが、もし、上手く動けばかなり有力な選択肢にはなるだろう。

●リソース競合?

我が家の主力サウンドカードはISAのSound Blaster 16 PnPで、ISAながらも一応PnPができる。事実、OS/2では何の問題もなく動作している。ところが、Windowsの方でリソースの設定に問題が出る。確かに正常動作をするときもあるのだが、かなりの確率でボリュームコントロールが効かなくなるのだ。

使用しているチップセットはPLE 133なのでサウンド機能も統合されている。ところが、こいつはCPU負荷が大きいので、BIOSで無効にして、わざわざISAのSound Blaster 16を使っている。どうもこの辺りに問題がありそうで、無効にしたはずのオンチップのサウンド機能がゾンビ化して、Windowsがそのゾンビ化したサウンドチップをコントロールしようとしているような気がする。

原因ははっきりしないが、ともかく、デバイスマネージャでIRQの設定を強制的に変更すると、この現象は解消される。リブートは不要。ただし、何度かシステムの再起動をしていると、やはり再発する。その場合は再度IRQを変更する。具体的には、発症する度にIRQ=5と9を交互に切り替えるということになるだろう。

それはそれとして、OS/2ではいったんPnPで設定されたリソースを、意図的に変更する方法ってないのかね? 上記の問題があったので、一度IRQ 5をLegathy/ISA(非PnP)に設定して試したことがある。すると、確かにBIOSもWindowsもIRQ 5を避けてくれるのに、OS/2だけは頑固にSound Blaster 16 PnPにIRQ 5を割り振るもんなんぁ…。動作に支障はないからいいけど……

●アンインストール

MINSTALLでインストールしたドライバの場合、アンインストールにもMINSTALLを使う。実に判りにくいのだが、インストールするデバイスの数を「0」とすると、アンインストールになるのだそうだ。まったく、いい加減にしなさい。ちなみに、ドライバ自体はCONFIG.SYSの中で、
    DEVICE=D:\MMOS2\YMF724.SYS /N:YM7241$ /O:NoHWTimer
    DEVICE=D:\MMOS2\VYMF724.SYS YM7241$          ←仮想ドライバ
というように組み込まれる(仮想ドライバがない場合もある)。だから、この行をコメントアウトすれば、とりあえず使わない設定にもできるが、だからと言ってCONFIG.SYSの書き換えだけでドライバの導入/削除ができるわけではない。DLLのコピーなどの問題があるので、やはりMINSTALLを使った導入/削除が必須。

●MMOS2の重複インストール対策

インストールされているサウンドカードが一枚であるにも拘らず、[マルチメディア・セットアップ]にDigital AudioやDigital Videoの項目が複数出てきてしまうことがある。恐らく、古いドライバの削除処理をしないまま、新しいドライバをインストールしたため、複数のカードがあるものと認識されてしまったのだろう。その場合、各項目を1つずつにする方法が判らない。ピュアDOSでMMOS2ディレクトリを削除してしまい、再度MMOS2をインストールするという荒業もないことはないが…

なお、この設定自体は\MMOS2\MMPM2.INIに書き込まれているが、このファイルは迂闊にいじらないこと。システムがブートしなくなることがある。

●MIDI音源サポート

上記のドライバは、たいていWave(IBMの互換表で言う所の“Audio Chip”)だけをサポートしていて、MIDI音源のドライバは含まれていない。MIDIサポートには別途MPU-401のようなMIDI音源ドライバが必要になる。……で、この分野はまったく無知なもんでよくわからんのだが、音源チップってMPU-401およびその互換チップしか存在しないのかなあ? だって、ドライバはそれしかないもん…。う〜ん。

ちなみに、Intel 815EGにインストールしてみたけど全然鳴らず。そ〜だね〜、Windowにインストールして見て、チップ名を確認することから始めないといけないかなあ…ああ、情けない。

ということで、MIDIに関してはこれから調べる。そうそう、YMF724のドライバにはMIDIMAP.DLLが含まれているんだが…。CONTROL.SCRでは、なぜかこのDLLをコピーする設定がコメントアウトされている。

【逆襲のOS/2目次】 【ホーム】