オレ仕様のゲーム機を作ろう(その2)
前回は,オレ仕様の概要を考え,画面タイミング試作回路を FPGA でテストするところまでやりました。
オレ仕様のゲーム機を作ろう(その1)
今回は,予定通り FPGA に,CPU と BG の回路を実装してみます。
BG の仕様
BG の仕様を決めていきますが,前回なんとなく考えたのは…
- BG は一面でハードウェアスクロールなし。
- 1 キャラは,8 x 8 ドットで,ライン単位に 2 色まで。
- パレットはナシで,デジタル 8 色。
こんな感じだったのですが…,ライン単位のカラーはやめて,キャラ単位にすることにしました。
FPGA 上で動作する VHDL で作る分には,多少コードが増えるだけで,そんなに問題にはならないのですが,最終的には部品を物理配線することになるので,
- 可能な限り,シンプルにしたい。
- スプライト回路がある程度の規模になることが予想されるので,今のうちに回路規模(…というか面積)をケチっておきたい。
- スプライトは単色にする予定なので,キャラ単位の色指定でも多分大丈夫でしょ…。
という理由です。MSX から ZX Spectrum っぽくなった感じですね。
FPGA に実装
…と言うことで,Z80 CPU と,BG 画面を,FPGA に実装しました。(Z80 は,今回も T80 という IP コアを使用させていただきました)
BG のキャラは,8 x 8 ドット単位,256 種類まで定義可能で,それをネームテーブルに 1 byte で指定,同時に対応するカラーテーブルに,0 のビットと,1 のビットの色を固定 8 色の中から指定してやります。
以下は,Z80 のコードを適当に書いて,BG 画面の表示テストをした結果です。
意図した表示になっているようです…多分。
ついでに,何か動きのあるものでも表示したいな…と思いましたが,絵心がないんですよね。…と言うことで…
どこかで見たような気がする…のは多分気のせいです(笑)。
今回はここまでです。
いよいよ,次回から実際にここまでの試作回路を IC や Z80 を使って組み上げていこうと思います。VHDL で書くのと比較すると,作業ペースが大幅に落ちる見込みです(笑)…が,気長にやっていこうと思います。