Windows Sound System Mixer

PC-9800 のサウンドボードあれこれ

■ 目次

  1. Sound ID
  2. Windows Sound System 搭載機のサウンド事情
    1. PC-9801-86
    2. PC-9801-118
    3. WaveStar
    4. WaveStar ROM TYPE B
  3. PC-9800 サウンドボード各種

Sound ID

Sound ID 一覧
0 PC-98DO+ 1 PC-98GS
2 PC-9801-73(188) 3 PC-9801-73(288)
4 PC-9801-86(188) 5 PC-9801-86(288)
6 WSS Np,Nf,Xa 7 WSS Xa??
8 WSS CanBe - -

Sound ID とは NEC 系サウンドカードの PCM 部分を示す ID で、A460 ポートの上位 4bit に格納されています。このポートの下位 2bit は OPNA マスクフラグとなっており、共有しています。また WSS では、書き込みに関して上位 4bit は保存されません。

要するに Sound ID はあくまで PCM の種別であり、OPN(A) の存在検査を Sound ID でするのはやめましょう。

この構造から明らかなことですが Sound ID を参照している限り、同時に2種類の PCM 音源を利用することは出来ないことになります。

I/O A460 R/W
76543210
Sound ID --- OPNA mask

Windows Sound System 搭載機のサウンド事情

WSS 搭載機にサウンドボードを搭載する際にはいろいろ問題が発生します。代表的問題として、内蔵音源が無効になるために CD-ROM の音声出力が MUTE される問題があります。WSSMIX では PC-9821Xa/K 以前のモデルでは無効状態からいったん有効状態にしてミキサをいじって回避できますが、PC-9821Xa/W 以降のモデルではより完璧な PnP となっており、起動後の操作で有効にする方法を私は知らないので BIOS セットアップメニューで内蔵音源を有功にしておかない限りミキサが操作できません。(どなたか教えてください〜)

また、サウンドボードによっては全二重サウンドが構築できることがあります。具体的には、98 の WSS 実装には IO 再配置というものがあり、先に述べた Sound ID の A460 ポート(WSS 使用分)を移動させることで、IO のバッティングを回避できるのです。もちろん、IRQ や DMA も重ならないよう設定しなくてはなりません。

Windows で使用する場合、WSS のドライバは Sound ID を見ていないので使用できますが、INF ファイルで A460 が使用されていることになっているので、これを書き換えたものを認識させる必要があるかもしれません。

では、ケースごとに列挙してみましょう。

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

PC-9801-86

このボードは非 PnP なので BIOS での WSS の設定によらず認識されます(多分)。しかし、WSS を有効にしていると Sound ID ポートが競合して、読み出すと WSS の Sound ID が読み出されてしまいます。それにより、ものによっては 86 を認識しないかもしれません。

そこで、WSS を有効のまま使いたい場合は、WSS の Sound ID IO を適当な場所へ移動させると OK です。WSSMIX /H オプションではデフォルトで B460 に移動させます。これにより、ものによっては WSS を認識しないかもしれませんが、 時と場合で使い分けてください。

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

PC-9801-118

このボードを装着する際にはマニュアルどおり 118 側の設定で WSS を切り離します。さもないと本体側と 118 側の WSS の IO 再配置ポート(C2x)までもが重なってしまい、これを分離するすべはありません。つまり本体側 WSS と 118側 WSS による全二重化は不可能です。でも、これだけで終わらないのが、このボードの嫌なところです。

まず、PnP モードでは FM 音源が意味不明に配置されます。素直に非 PnP モードにしましょう。

非 PnP モードで FM音源を 188 に割り当てると大体 OK なのですが、後述の仕組みによりなんと起動時には A460 から 73h(FM が存在しない)と読み出されるので、正しく設定してやります。具体的には A460 の下位 2bit に 01b を書き込むのですが、WSS 系 A460 では上位 4bit を保存しなくてはいけないことに注意してください。WSSMIX はオプションがなくても OPNA を検出してこの処理を実行します。

この組み合わせのシステムではおろらく A460 R/W を本体 WSS と 118 FM マスク回路が共有していて、Write 時には両方に通知され、Read 時には本体 WSS の値が読まれているとおもいます。本体 WSS は初期値として 73h が設定されていて、118 の存在を検知しないのでこのようなことになるのでしょうね。

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Wave Star

PC-9821Xa/K モデル以前ならば、このボードは PnP モードで使用しましょう。PnP モードだと BIOS セットアップメニューで WSS を OFF にしなくては認識されませんが、Xa/K モデル以前の WSS は起動後いとも簡単に有効に出来る(WSSMIX /ON)のです。

あとは PC-9801-86 同様、WSS の Sound ID IO を B460 に移せば OK です。

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Wave Star - ROM TYPE B

QVision の ROM update サービスで売られているこの ROM では、実際には A460 を使用しているにもかかわらず、PnP モードで内蔵 WSS を有効にしたままでも認識されてしまいます。逆に言えばそれ以外のハードウェア的違いはないのですが、Xa/W 以降の機種で全二重するには有効でしょう。

また、Win95 のドライバ面では普通(TYPE A)のものと INF と VXD が異なっていて A460 を使わないような記述になっています。実際、新しい TYPE A のドライバの INF をいじって、さらに VXD は古い TYPE B のものをつかえば動作しています。

このシステム構成では、起動時 A460 で読めるのは内蔵 WSS のものなので、FreeBSD(98) 2.2.8 では WaveStar を(PC-9801-86として)認識してくれませんでした。WSS を考慮した PC-9801-86 認識では、いったん WSS の Sound ID IO を動かしてから A460 を読まなくてはなりません。

[WSS A460->B460][WSS B460->A460]
mov   dx,0C24h
mov   al,0F1h
out   dx,al
add   dx,7
mov   ax,0B460h
out   dx,al
xchg  al,ah
add   dx,2
out   dx,al
mov   dx,0C24h
mov   al,0F1h
out   dx,al
add   dx,7
mov   ax,0A460h
out   dx,al
xchg  al,ah
add   dx,2
out   dx,al

PC-9800 サウンドボード各種

今まで私が直接触ってきたサウンドボードは購入順に PC-9801DA2内蔵FM(OPN), SoundBLASTER16/98, PC-9801-86, PC-9801-118, PC-9821Xa13/K12内蔵WSS(CS4231), WaveStar ですが、これらのサウンドカードの特徴を書いてみます。

PC-9801-26K

仕様 YM-2203(OPN), ATARI JOY STICK
特徴 FM3 SSG3
I/O x88-x8F (x:0-3)
IRQ 3,10,12*,13
DMA none

PC-9800 における FM(OPN) 音源実装のリファレンスです。X68000 の OPM などに比べ、とにかく音数が足りなかったので同人ハードなどを2枚差ししたりしていろいろやってました。

PC-9801DA/DS/DX シリーズで OPN が内蔵されましたが、JOY STICK ポートは実装されませんでした。以降 JOY STICK は冷遇されていきます。

PC-9801-73/86

仕様 YM-2608(OPNA), ATARI JOY STICK
ちっこいよ MIC
特徴 FM6 SSG3 RHY6 PCM(FIFO)
Sound DSP(73のみ)
I/O x88-x8F (x:1-2), A460-A46C, A66E
IRQ 3,10,12*,13
DMA none

PC-9801GS/MATE A に内蔵されていた音源です。FM も6音&ステレオになりゲームなどでは多用されました。73 はなんだかよくわかんない DSP 搭載のためか高価だったので普及しませんでしたが、86 は今でも事実上スタンダード音源です。

極悪な EPSON チェックのせいで、PCM はゲームメーカでは一般化しませんでしが、Win3.1で「ふぁふぁーん」となるのが一種のステータスでした。また、Win95初期のドライバのタコさ加減はひどいものでした。

PC-9801-118

仕様 YMF-297(OPL?), CS4231, MPU-401
SB互換 MIDI DB, GAME PORT
特徴 FM6 SSG3 RHY6 PCM(DMA)
MIDI I/F (UART)
I/O 188-18E, A460-A461, C24-C2D
F40-F47, 480-487, 1480-148F
IRQ PnP 3,5,6,10* (MIDI)
PnP 3,10,12* (FM & WSS)
DMA PnP 0*,3

Win95 の発売に合わせて NEC が投入してきたボードです。機能的には方向性は間違っていなかったと思いますが、その実装が互換性を無視したあまりにお粗末なものだったため、苦労しました

機能だけ見るとすごいんですが、MPU(UART) のポートが違う、FM 音源(YMF297=OPNA+OPL3)には特殊な初期化が必要、PnP が互換性を無視した配置をするなどと散散です(118 の PnP OFF は基本です)。ただ、音質(ノイズ)対策はがんばったらしい形跡が認められるのが救いです。

ちなみに、本体に WSS や FM 音源を搭載しているマシンでは、118 の「WSS」もしくは「WSS+YMF297」を切り離して本体の資源を使用します。CD-ROM の Audio 出力などの配線の関係もありますが、最悪ただの MIDI I/F になるんですよね...

Windows Sound System (PC-9801XE-B02)

仕様 CS4231
特徴 PCM(DMA)
I/O A460, C24-C2D, F40-F47
IRQ 3,5,10,12
DMA 0,1,3

MATE-X 以降の機種に内蔵されている PCM 音源 (CS4231, CS4232) のことです。一部機種(Xe)では専用スロットにオプションとなっています。

PCM 音源に振られる SoundID が A460 に出ていますが、これを含めた IO を再配置できる点がポイントです。

WaveStar

仕様 YMF-288(OPN3), CS4231, MPU-401
SB互換 MIDI DB, GAME PORT
特徴 FM6 SSG3 RHY6 PCM(FIFO,DMA)
MIDI I/F (Intelligence & UART)
I/O 188-18F, A460-A46D
E0D0-E0D3, 4D2
IRQ PnP 6,10* (MIDI)
PnP 12*,13 (FM & WSS)
DMA PnP 0*,3

PC-9801-118 を素直にして、かつ PC-9801-86 互換 PCM を持たせたカードです。個人的には大満足サウンドカードです。

具体的には MIDI が MPU98 互換(Intelligence モード対応)、FM が素直に鳴る、PnP でも常識的な資源配置をする、WSS で 86PCM をハードウェアエミュレートといった QVision のお家芸の集大成です。

ROM update サービスで TYPE B にするとさらにあやしいカードになります(笑)。ただ、QVision のホームページの内容がまだまだ充実していないのが少し難点ですかね。ここはぜひ ROM TYPE B のドライバを載せるか TYPE A に統合するかしていただきたい!!

Sound BLASTER 16/98

仕様 YMF262(OPL3), MPU-401
SB本家 MIDI DB, GAME PORT
CDROM I/F, でかい MIC
オプション: YM2203, DSP
特徴 FM20(2オペレータ) PCM(DMA)
MIDI I/F (UART) CD-ROM I/F
I/O 20Dx-33Dx, 04Dx-07Dx, 80Dx-81Dx
C8D2 (x:2,4,6,8,A,C,E)
IRQ 3,5*,10,12
DMA 0,3*

AT 機ではデファクトスタンダードなボードの 98 版。PCM や MIDI I/F では多少の対応ソフトはあったものの、86 で述べたように 98 ゲームの大半は 86FM しか使わなかったためほとんど DOS では使いみちがありませんでした。

ドライバを組み込まないと初期化されず使用できないとか、環境変数 BLASTER 設定しろとかいうのまで輸入したのは大顰蹙でした。adddev/deldev で一生懸命がんばってましたが、付属ソフトはドライバが常駐してないと使えませんでした(T^T)。

Win(3.1,95) では 86 のドライバよりは軽いドライバなのと、MIDI I/F があるにもかかわらず使用リソースが少ない点で利用価値はあるかもしれません。あと、でかいマイクがアメリカンで特徴的です。

[戻る]

This page is described in HTML 4.01 Transitional & CSS 1.0.
Copyright © 1997- takas / All rights reserved.