オレ仕様のゲーム機を作ろう(その31)
前回は BG やスプライトの画面を合成して,モニターに出力する基板を作成しました。
ただ,合成元の画面がまだなく,実際にモニターにピクセルデータを出力することができなかったので,今回は BG 画面を表示する基板を作っていきたいと思います。
これも基本的には「鶏八」のときに作った基板と回路構成は同じです。
BG の仕様
「鶏八」とほぼ同じです。
変更した箇所というと,ジャンパーピンを差し替えることによって,同じ基板で最大 4 面の BG を切り替えることができることです。
ですので,この基板を 4 枚用意することで,BG 画面を 4 画面重ねて表示することができます。
その他は「鶏八」と変わらず
- パターンは,BG 1 面ごとに 8 x 8 のパターンを 2048 パターン定義可能で,これらを BG ネームテーブルに BG セルとして指定します。
- 色数は,BG セルごとに 16色で,8 本ある 16 色パレットから 1 本を割り当て可能です。
- BG セル単位で,上下フリップ,左右フリップを指定可能です。
- BG の広さは 512 x 512 ドットで,スクロールレジスタで指定した 320 x 224 ドット分が画面に表示されます。
作成した基板

(クリックで拡大します)
いつものように,ロジック IC と SRAM のみで構成されています。
今回は,回路にミスはなく,一発で動作しました。
基板を接続
4階建てになりました。

BG 1 面分しか組み立てていないので,はたして複数の BG を正しく重ね合わせて表示できるかわかりません。(多分大丈夫だと思うのですが…)
そして動作テスト
この基板自体は,回路にミスはなかったのですが,最初,意図通りに表示されず,かなり悩みました。

波形を順番に確認していくと,BG のピクセルデータは正しく出力できているような感じだったので,さらにそこから先を調べていったら,実は,この前に作成していた画面合成基板にミスがあったのでした…。
これは,基板裏面にロジック IC を追加したり,ジャンパ配線したりして修正はできましたが,今まで同じように修正した他の基板もあるので,まとめてプリント基板業者に発注し直すことにしました。
また,何千箇所とあるハンダ付けするのが,チョット面倒ですけどね(笑)。
そして,適当にテストプログラムを作りました。
まずは,クロスハッチ画面。これは “┌” のような形のパターンを上下左右フリップして 4 つ組み合わせて四角い格子状にして表示します。
正しく表示できれば,上下左右フリップが意図通りに動いていることになります。
次は,(どこかで見たような文字パターンで)適当な文字列表示です。本来はもう一つの BG 面に表示して重ね合わせたいところですが,それは次回以降になりそうです。
そして,BG のスクロールテストです。以前,水平帰線割り込みが正しく動作していなくて,それも修正しました。
16 ラインごとに割り込みをかけて,スクロール値を符号反転しています。
すべて意図通りに動いているので,BG 画面の基板はおそらく大丈夫だと思います。
今回はここまでです。
次回は,スプライトを表示する基板を作成したいのですが,BG の重ね合わせを確認したいので,BG 基板をもう何枚か組み立てる予定です。
同じ基板を組み立てるのって結構大変というか…根気がいる作業なんですよね(笑)。
それでは,次回に続きます。