オレ仕様のゲーム機を作ろう(その8)

前回は、BG 画面を表示する回路を作成し、8×8 ドット、8 色中 2 色のパターンが表示できるようになりました。

オレ仕様のゲーム機を作ろう(その7)

 

今回は、前回の予定通り、左側の空いているスペースに、音源チップを実装し、サウンド回路を作成したいと思います。

 

音源チップは、YMZ294 という PSG

搭載する音源チップは、以前も使用したことのある、PSG(プログラマブル・サウンド・ジェネレータ)です。

PSG の概要は、過去の記事をご覧ください。

Z80 マイコンシステムを作ろう(その6)

 

元祖は、AY-3-8910 というチップです。矩形波とノイズを 3 チャンネル出力でき、8bit の汎用入出力ポートが 2 つあります。

入出力ポートが 2 つ分あるので、全体で 40 ピンと少し大きめのチップです。

 

この AY-3-8910 から、入出力ポートを取っ払って、ピン数を少なく、サイズを小さくしたものが、AY-3-8913 です。

 

…で、今回使用するのは、AY-3-8913 とほぼ同等機能ですが、さらにピン数を少なく、サイズを小さくした、ヤマハの YMZ294 というチップです。

ヤマハ製なので、PSG と言うよりは、SSG と言った方がいいかもしれません。

 

大きさを比較するとこんな感じです。

 

PSG との主な違い

違いと言っても、聞いた感じはほとんど同じで区別できません。

AY-3-89XX は、音声を 3 チャンネル分出力できるのですが、3 チャンネル分の出力ピンが独立して 3 本出ています。

これに対して、YMZ294 は、チップ内部で 3 チャンネルをミキシングした音声が 1 本のピンから出力されています。

ですので、3 チャンネルの音をそれぞれ左右のスピーカーに振るといったことが簡単にはできなくなってしまいました。

 

入力クロックは、内部で 2 分周されるので、AY-3-89XX の倍のクロックを入力します。

取り敢えず、MSX と合わせておこうと思い、3.58MHz を入力しています。内部 1.79MHz ですね。

YMZ294 の説明書通り、4MHz を入力すると、内部 2MHz で動作します。(設定により 3 分周もできるようです)

 

また、アクセス方法も、チップセレクト端子と、書き込み端子のみになっているので、とてもシンプルにアクセスできるようになっていますが、内部レジスタの読み込みができなくなっています。

まぁ、入力ポートがないので、読み込む必要性もありませんね。

 

BG 基板に実装してみる

BG 基板の左側の空いているスペースに実装してみました。

 

今までの、I/O デバイスはメモリマップト I/O で、メモリアドレス空間にマッピングしていましたが、今回は、I/O ポートに接続しました。

出力は、アナログ回路なので、電源を分けた方がいいのですが、面倒なので、同じ電源ラインから取っています(笑)。

 

適当に鳴らしてみる

まずは、肝八のセルフテストのプログラムを流用して、一定の周波数をセットして矩形波を鳴らしてみます。

(音量注意!)

 

まぁ、いつもの音ですね…(笑)。

 

サンプル曲を再生してみる

せっかくなので、適当な音源ドライバとそのサンプル曲を再生してみます。

画面にスペクトラム・アナライザっぽいのを表示するとカッコイイと思ったのですが、それを作る時間ももったいないので、各チャンネルのボリューム値を画面に表示してみました。

(音量注意!)

 

矩形波の PSG 音源と言っても、鳴らし方次第で、だいぶカッコよくなりますよね。

 

次回は…

と言うことで、2 枚目の基板が完成しました。

BG 画面と、ユーザー入力と、サウンド機能ができましたので、この後は、スプライトの表示回路を作成しようと思います。

回路規模が大きいので、結構時間がかかると思いますが、いつものように気長に進めます。

それでは、次回へ続きます。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA