PC-386BookLにYM2203を内蔵
- 2025/02/12 14:57
- カテゴリー:マニアックなおはなし, make:
PC-9801の標準的な環境を再現するに,私のPC-386BookLで不足している最後のピースはサウンド機能でしょう。1980年代を代表するデジタル音源であるFM音源はPC-9801UV2という家庭用を意図したモデルで初搭載,その後小型モデルを中心に内蔵されて来ましたが,PC-9801の本流であるビジネスマシンのPC-9801DAシリーズにも標準搭載するに至り,4オペレータFM3声+SSG3声は日本のDOSマシンの「当たり前」になりました。
PC-9801シリーズに内蔵されたFM音源はOPNと呼ばれたYM2203です。PC-8801mk2SRにいち早く搭載され,音楽機能が弱かったPC-8801シリーズを一気に国産機トップの能力を持つ機種に引き上げた立役者です。
アーケードゲーム基板にも採用されたこのチップは,8音ポリのYM2151,6音ポリのYM2608等に比べると見劣りしますが,1980年代中頃において,本格的なデジタルシンセサイザで音作りが出来て,しかも和音を演奏出来るというのは衝撃的で,これが本体に標準搭載されることで,用途の柱の1つであったゲームが新しい時代に入ったと言えるでしょう。
とはいえ,当時の私は,8ビット時代にはX1でYM2151を使い,16ビット時代にはMIDIに流れていましたので,YM2203を自分の手で鳴らしたことは一度もありません。当時使っていたPC-98RLにPC-9801-26K互換のボードを一応突っ込んでありましたが,どこかで馬鹿にしていた気もしますし,音が出るという事だけで済ませていた気がします。
さて話は現在に戻ります。
PC-386BookLは,ここまでコツコツと修理と改造を繰り返していますが,LCDがカラーになったことでレトロゲームマシンとしても期待出来るようになりました。実はフロッピーディスクドライブが2台入っていることも,ゲームには向いているんですよね。
こうなってくると足りないものはサウンド機能です。残念な事にビジネスマシンのPC-386BookLにはFM音源は内蔵されていません。
なにも1990年代のPC-9801-86と同じ水準のサウンド機能が欲しいとは思いませんが,色鮮やかなゲームの画面を見ていると,そのチープさがかえって当時を強く思い出させるPC-9801-26K程度のものがあるといいなと思うようになりました。
しかしLスロットで拡張することは絶望的なので最初から無理と決めつけていたのですが,冷静に考えると大した規模の回路ではありませんし,部品さえ揃えればなんとかなるだろうとジャンク箱を漁ってみると,YM2203もYM3014もすぐに見つかりました。
これは作るしかありません。
早速手元の資料を調べてみると,YM2203は0188hと018Ahにマッピングされ,INT5に割り込みを突っ込めば良いらしいです。26Kに搭載されていたROMはBASICから使う場合に必要なだけで,独自のドライバがあれば必要がないので,EMSが使えないなどの弊害もあることから,実際にはほとんどのケースで切り離されています。
結局YM2203を8ビットのデータバスでI/Oに繋ぐだけ,と言う簡単な話だとわかったところでちょっと考えてみると,アドレスデコーダはORゲート3つと74HC138で簡単に作れそうです。データバスとIOWとIOR,そしてRESETは面倒なので直結です。ここにバスバッファを入れるのが正しいのでしょうが,配線は短くしますし,YM2203以外にぶら下がりませんから,苦労してバスバッファを入れてもPC-386側のバスの負荷は変わりません。ならば省略です。
そうそう,クロックは本体からもらってもいいんですが,決まった周波数(4MHz)が欲しかったので,これも手持ちの水晶発振器で手間をかけずに解決しました。
IRQは,YM2203がオープンドレインで,本体にもオープンドレインで突っ込む必要があるのですが,あいにく論理が逆なので,トランジスタ1つで反転しオープンコレクタで突っ込んでやります。机の上をちらっと見たら,どこかから外した2SC945が出てきたのでこれでいきましょう。
てことで,YM2203と74HC138,74HC32に4MHzのオシレータでデジタル部は出来そうです。
次にアナログ部をどうするかですが,YM3014にOP-AMPが2つ必要,これにローパスフィルタとSSGとの合成にもう1つ必要なので,3つ必要になります。さらにPC-386BookLにはPC-9801シリーズのように26Kからのオーディオ出力を受けて本体のスピーカでならすコネクタもないので,スピーカを自前で持つ必要もあります。
OP-AMPは手持ちの関係から最終的にTL082を2つ,パワーアンプは手軽で便利なHT82V739を使うことにしました。5Vで動いて外付け部品も少なく,ノイズも小さくて高音質ということで大変便利なICです。
実はこのIC,ゲインが小さい事が唯一の難点なのですが,今回はノイズまみれの環境で使いますので,むしろゲインは小さい方が良く,これも好都合でした。
電源のうち,OP-AMP用の±12Vは綺麗な方がいいので,LDOを使うのが正しいのですが,面倒なので大きめのパスコンを繋ぐだけで直結します。
とまあ,ここまでは順調だったのですが,最大の問題は実装です。本体への取付はどうするのか,どこに収納するのか,そしてどんな基板に組み立てるのか,いいアイデアが浮かびません。
思案した結果,2MBのメモリボードから信号をもらう事にしました。まず,小型の基板に回路を組み立てておき,メモリ基板の下側にビス留めします。2階建てのごっついモジュールになりますが,仕方がありません。
そしてFM音源ボードをメモリ基板に来ているバスの信号と繋ぐという作戦でいくことにしました。ここで,Lスロットに転がしてあったバックアップ電池(単三x5のNi-MH)が邪魔になり,空っぽにしてあったバッテリーパックにバックアップ電池を移設しました。
さて,一日1.5時間程度の作業で3日ほど,配線が終わったので本体に取り付けて起動してみました。
すると,なんということか,2MBのメモリが認識しなくなりました。まさかの展開です。メモリボードが壊れたんじゃないかと焦りましたが,もしかするとFM音源は動くかもとゲームを試したところ,スピーカーからはギャギャーとおかしな音が出続けています。
画面に合わせて音が変化するので,YM2203を叩いているんだろうと思いましたが,それにしても正常に動作していないものを放置するわけにはいきません。かといって,2階建てにしてしまったFM音源ボードは,プローブをあてて波形を見ることも出来なくなっていたので,なにが起きているかさっぱりわかりません。
とにかくメモリが無事かどうかを知りたかったので,バス周りの配線を全部外して。メモリボードと分離して元通りにしました。
これでメモリボードを試すと問題なく2MBを認識し,元通り動作するようになりました。まずは一安心ですが,振り出しに戻っただけです。
FM音源ボードはもう一度配線チェックを行うと同時に,アドレスデコーダの設計をミスってないか確認しました。とりあえず問題はなさそうで,これでもう一度試してみることにします。
今度は,Lスロットのコネクタのハンダ面に直接配線し,基板はLスロットのレールに差し込んで固定することにしました。
今回は動作チェックにゲームではなく,FMPというサウンドドライバを使わせて頂くことにします。FMPは常駐型のドライバで,組み込み時に搭載音源やアドレス,割り込みを自動的に認識するというありがたいもので,組み込み時のメッセージでFM音源ボードが正常に動作するかがわかります。
配線後,あまり期待しないで電源を入れると,以前は変な音が出ていたスピーカーは静かなままです。メモリも2MBが正常に認識されて,動作しています。
しかし残念な事に,FMPではFM音源ボードは認識されませんでした。
もう一度配線をチェックすると,一部に配線忘れがありました。ここを配線し最終チェックを行って試すと,設計通りのアドレスと割り込みにYM2203を認識し,軽快な起動音を鳴らして常駐することに成功しました。
こうなるともう話は早くて,スピーカを固定し,さっさと本体を組み立てて完成です。
これで私のPC-386BookLは,FM音源内蔵になりました。これでゲームにも対応します。
早速名作,マーブルマッドネスを遊んでみました。懐かしいです。音があるとこんなに楽しいのかと,改めて思いました。
ということで,私のPC-386BookLはこれ以上機能を追加することもないでしょう。本当にここで一区切りです。現在のスペックをまとめてみます。
CPU : Cx486SLC-25MHz
FPU : i387SX
メモリ : 2.6Mバイト
HDD : 1Gバイト
FDD : 3.5インチ 2HD/2DD 2機
ディスプレイ : 640x400ドット,4096色中16色,10.1インチTFTカラー
サウンド : YM2203(FM3声 + SSG3声)
マウス : USBマウス対応
1990年代初頭のモデル,例えばPC-9801ES2やPC-386M等のマシンをCx486SLCに換装したかんじのマシンになっていると思います。DOSで使うならこれでもう十分でしょう。
私の場合,1990年代中頃はMacintoshに完全に移行していましたので,640x480で256色と86ボードのPC-9821の時代は完全に未経験で,このあたりのスペックが私にとってのPC-9801の到達点ということになりそうです。
強いて言うなら,メモリをもう1MBほど増やせればと思う事,メモリとCPUの速度をもう少し上げたいという事,CD-ROMやMOなどのSCSIを使いたいと言うこと,Ethernetに繋ぎたいなあ,くらいでしょうか。どれも必須ではありませんし,特にSCSIなんて,データの移行がおわったら用済みですから・・・
さあ,このマシンで遊ぶぞ。