top of page
face.jpg
follow me
  • White YouTube Icon
  • 執筆者の写真

続・内蔵音源の整備

更新日:2019年6月5日

前にWavestarを導入したのですが、PCMの鳴りがどうにもおかしいのです。

ていうか鳴ってない?

色々試行錯誤してみたのですが、どう頑張ってもまともな音が鳴りません。

SICを用いて音量変更とかやってみたのですが、聞こえてくるのは「恐らくPCMを発声しているであろう」リズムで「ボソッ、ボソッ」と何かが鳴っているのが分かる程度でした。


壊れているとは思いたくないのでもう1台音源の無い98を買おうかと思いましたが、このPC-9821Cxは100MHz駆動でDOSで遊ぶには過ぎない程度に速い部類ですし、もう1台買ったところで検証した後はゴミ化するのが見えていたのでやめておきました。


そこで、本体買うよりは若干費用はかかりますが「PC-9801-86」通称86音源を購入し、検証よりも実用を優先します。大人なのでお金で解決です。


検証には以下を使用しました。

<再生>

・FMP(4.28u)+PPZ8(1.08) 本文中では「FMP」と記載しています。

・MXDRV98(2.03+3) 本文中では「MDX」を記載しています。


FMPは一見PCMが鳴ってるように聞こえて実は(PCMには違いないけど)リズム音(YM2608の内蔵音)だったりするので、*.OZIの曲をいくつか鳴らしてます。

MXDRV(MDX)はリズム音を使用していないのでPCMドラムの音さえ聞こえればまずは問題ありません。

P.M.Dも試しに鳴らしていますが、P.M.Dは割とテキトーな環境でも乗り越えて鳴ってくれるのでとりあえずという感じで(上記2つが鳴れば確実に鳴るが、P.M.Dで鳴っても上記2つが鳴るとは限らない)。


音源については以下の通りです。

本体音源・・・PC-9821Cxに搭載されているオンボード音源。通称「CanBe音源」と言われています。Windows上での使用に注力した「WSS」と呼ばれるCS4231を使用したものです。86PCMとはデータの転送方式が異なるため、FMPで鳴らすにはPPZ8のバージョンを1.07以降にする必要があります。

FM音源チップや付随するDACも86とは異なりますが、FMの音そのものは同じと言って差し支えないでしょう。FM音源による音声合成(CSM)が使えない以外は互換性もバッチリです。

86音源・・・言わずと知れたPC-9821時代のデファクトスタンダード。説明不要。

Wavestar・・・86互換音源ボードで、PCM部分はチップこそWSS用のものですが動作そのものは86をエミュレーションするため(本来なら)特に意識せず86と同じ挙動を見せます。


<環境変更>

音源周りのI/Oポートアドレスを書き換えるフリーソフト。

SICの実行ファイルはあらかじめパスの通ったディレクトリに格納しておいてください。


<参考>


1.86音源単体

・ハード(ディップスイッチ)設定

本体:サウンドを使用しない

86音源:8番のみOFF(標準。サウンドBIOS/INT5/INT ON/0188h)


これで鳴らなかったらボードが壊れてると言って差し支えないでしょう。

問題なく鳴りました。まずは一安心。


2.本体音源と86音源の同居

対応ソフト次第ではFM12音を再現できる可能性を見出してみます。


2.1 本体音源をプライマリで使用する

・ハード設定

本体:BIOSを切り離す/INT5(I/Oポートはディップスイッチによる変更不可(0188h))

86音源:1,2,3,6,8をOFF(サウンドBIOS OFF/INT6/INT ON/0288h)


(1)MDX

すべて本体音源から再生されます。

(2)FMP

すべて本体音源から再生されます。

FMP常駐時に「/I2」オプション追加ですべて86音源から再生されます。


なお、この状態で以下の2行を実行すると、FMPでは「/I2」を指定しなくても86音源から出力されますがMDXは再生時に本体フリーズしますので本体音源をプライマリで使用するならSICでアドレスを移すよりFMPで直接ポート指定した方が良いでしょう。

  SIC /FMMOVE:0388

  SIC /86B /OPNA


2.2 86音源をプライマリで使用する

互換性や曲データ製作者の意図通り鳴らすことを考えたら2.1よりはこちらを目指すべきでしょう。


・ハード設定

本体:BIOSを切り離す/INT41(I/Oポートはディップスイッチによる変更不可(0188h))

86音源:2,8をOFF(サウンドBIOS OFF/INT5/INT ON/0188h)(サウンドBIOS OFF/INT5/INT ON/0188h)


本体音源と86音源でI/Oポートアドレスが被っていますので本体音源のI/Oポートアドレスを移し、86音源を有効にします。次の2行のコマンドを入力してください。

  SIC /FMMOVE:0388

  SIC /86B /OPNA

なお、「/FMMOVE:0388」のみですとFMP起動時に「ASBを認識」と出て、FM音源部分のみ(リズム音やSSG部分を除く)が86音源から出力され、その他(PCM含む)は本体音源から出力されるという無駄に器用な鳴り方をします。


(1)MDX

すべて86音源から再生されます。

(2)FMP

すべて86音源から再生されます。

FMP常駐時に「/I3」オプション追加ですべて本体音源から再生されます。


3.86音源+本体音源+Wavestar

最大でFM18音が鳴らせる夢のある環境の実現を目指しましたが、Wavestarが一体どのI/Oポートを使っているのか全く見えないため、現時点では断念し、最低限、3つの音源を特に無効にしないまま互いに害を与えないことを目的とします。


・ハード設定

本体:BIOSを切り離す/INT41(I/Oポートはディップスイッチによる変更不可(0188h))

86音源:2,8をOFF(サウンドBIOS OFF/INT5/INT ON/0188h)

WaveStar:1~6をON(PnP有効、86互換、INT6、0288h)


Wavestarの挙動がなかなか謎で、単体の場合はディップスイッチの設定どおりのリソース割り当てになるのですが、他の音源が有効になっていると他の有効な音源の割り当てと同じになりSICから雲隠れしてしまいます。

非PnPの時は86音源にべったりくっついてしまうため、PnPにして本体音源ぽくしてやるととりあえずは86音源から離すことができるようになります。

  SIC /wssc /FMMOVE:0388 /86B


(1)MDX

すべて86音源から再生されます。

(2)FMP

すべて86音源から再生されます。

FMP常駐時に「/I3」オプション追加ですべて本体音源から再生されます。


なお、「SIC /I」での表示で3つの音源を分けて表示させることは可能なのですが、PCMが正常に鳴らず(再生データにて指定された音長が無視され、PCMデータの最大長で再生→同一データの次のキーONまでループ再生される)またそれを解決できそうな手段が無いことからWavestarを区別することはあきらめ、とりあえずIOポートアドレスの直接指定なしで86が、有りで86以外の何かが鳴らせる形として一旦は決着しておきます。

従って現時点でWaveStarは物理的にCバスに刺さっているだけの状態ですが、他の音源の再生に害が無いようですのでこれで良しとしておきます。


FMPやMDXでFM多チャンネル化できることがベストですが、前者は複数のFM音源ボードを同時に使えるバージョン自体が(ベータ版までリリースされたものの)開発中止、後者は2枚目のボードをどうやらそれなりに選ぶようでこれまたうまくいかず、98を外部音源として使う荒業をどこかで見つけてきて対処することも考え始めました。

閲覧数:1,566回0件のコメント

最新記事

すべて表示
bottom of page