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

オレ仕様のゲーム機」、なかなか先に進みません(笑)。

前回は、Z80-CPU を実装したシステム基板を作成し、メモリのバンク切り替え、ディップスイッチの読み込み、発光ダイオードへの出力などができるようになりました。

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

 

今回は、予定通り、BG 画面の表示基板を作成します。BG を表示する回路は、以前にも作成したことがあるので、仕組みなどは、過去の記事をご覧ください。

Z80 ゲーム機を作ろう(その6)

 

主な機能

以下、主な機能になります。

  • 一つのセルは 8×8 ドットで 16 色中 2 色まで
  • 大きさは横に 2 画面分あり、上下左右にハードウェアスクロール可能
  • セルに定義できるパターン数は 512 種類

 

パターン数が 512 種類までなので、残念ながらフルビットマップ表示はできません。

また、当初、ハードウェアスクロールはなしで考えていましたが、結局実装することにしました。

色は、最大 16 色表示できるようにしていますが、まだパレット機能を付けていないので、デジタル 8 色としてモニターに出力しています。

基板全体図

以下の写真が作成した基板です。

 

Z80 CPU を使用したアーケード基板などは、そのゲーム専用基板と言うこともあり、プログラムコードや、キャラクターパターンなどは、ROM に入れてあることが多いです。

今回作成した、BG 表示基板は、キャラクターパターンを CPU から書き換えられるように、SRAM に格納するようにしました。

256kbit の SRAM に、セルデータとパターンデータが格納されます。

容量的に それぞれ 256kbit も必要ないのですが、手頃な SRAM がなかったので…。ちょっと勿体無いかも。

キャラクターパターンが ROM になっていると、表示する回路に直結できるのですが、SRAM として書き換え可能にすると、表示する回路と CPU 回路の間で、バスを切り替える回路が必要になります。

また、上下左右にスクロールできるようにしたので、スクロールレジスタとの加算回路も必要になり、その分の IC も必要になります。

そのため、思ったより、IC の数が増えてしまい、面積も二倍くらいになってしまいました…。

 

入力回路

ゲーム機なので、将来的にはジョイスティックを接続できるようにする予定ですが、テスト段階ではちょっと邪魔になるので、同等の機能を基板上にタクトスイッチで実装しました。

十字に並んでいるとゲーム機っぽい感じがしますね。

 

動作確認

前回作成した Z80 システム基板と接続してみます。基板同士の信号線は 40 芯フラットケーブル 2 つで接続します。

 

動作確認は、いつも適当な Z80 コードを書いてテストするのですが、この BG表示回路をユニバーサル基板で作成する前に、同等回路を FPGA で試作していました。

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

 

その時のテストプログラムをそのまま使用してみます。

 

画面スクロールを含めて、意図通りに動作しているようです!

次回は…

左側の空いているスペースに音源回路を付けてみようと思います。

画面と音が出力できれば、ゲームが作れるようになりますね。

FPGA で作ると、数時間でできるものが、実基板になると、ここまでで4ヶ月もかかっていますが、少しずつ進めていきたいと思います。

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

コメントを残す

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

CAPTCHA