オレ仕様のゲーム機を作ろう(その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ヶ月もかかっていますが、少しずつ進めていきたいと思います。
それでは、次回へ続きます…。