オレ仕様のゲーム機を作ろう(その32)
なんと,前回更新から 1 年近く経ってしまいました。
しかし,オレ仕様ゲーム機の制作はかろうじて続いています!(笑)
さて,前回は BG 画面を表示する基板を作成しました。
ジャンパーピンを差し替えることによって,最大 4 面の BG 画面を重ね合わせて表示できるようにしましたが,今回は,この BG 表示基板を 4 枚使って,実際に BG の重ね合わせを行いたいと思います。
ですので,残念ながら今回は新規基板の紹介はありません。
同じ基板を 4 枚も作るのって,結構飽きるんですよね…。
基板を接続
前回から BG 表示基板を 3 枚追加したので,7 階建てになりました。
(クリックで拡大します)

それぞれの BG を選択するジャンパーピンは,違う色にしてみました(笑)。
回路ミスを発見
Z80 を使ったゲーム機「鶏八」を作ったときは,かろうじて動作はしていたものの,結構不安定な動作でしたので,今回は動作タイミングやマージンを実際の波形を調べて意図通りに動いているか改めて確認してみました。
68000 のバスサイクル周りで, 15MHz 動作させたときのアクセスタイミングのマージンが結構怪しかったので, 余裕をもたせたり, パレットレジスタのアドレスマッピングが間違っているのを修正したりしました。
そのついでに BG 表示基板も回路図を目視確認していたら,スクロールレジスタへのバス配線が間違っているのを発見しました。
BG 画面の全体の大きさは 512 x 512 ドットで,スクロールレジスタは X 方向,Y 方向それぞれ 9bit のレジスタです。68000 であれば,1 回のワードアクセスで設定できます。
今まで Z80 の癖があったと言うか,9bit 目のデータバスは 68000 の D8 を接続すべきところを, D0 を接続していました。Z80 は 8bit データバスですので, 2 バイトのデータは 2 回に分けてアクセスするんですね。
ところが,BG のテストプログラムは,縦横 256 ドット単位見ると,同じパターンを敷き詰めていて,しかも,文字列も横 256 ドット単位で繰り返していたので, スクロールレジスタの 9bit 目が 0 だろうが 1 だろうが見た目は同じになるというオチでした(笑)。
これは気づきにくいミスではあるのですが,まぁ,あるあるなミスなのかもしれません。
改めて動作テスト
前回のテストプログラムを少し修正して, BG を 4 枚重ねて表示するようにしてみました。
“HELLO WORLD” という文字列と “SHIGEROKU” という文字列は,それぞれ別のBG 画面で表示しています。
4 面ある BG 画面の表示優先順位は固定ですが,今後作成するであろうスプライト画面は,それぞれの BG 画面の任意の位置に挟み込むことができる予定です。
スクロール可能な BG 画面を 4 面表示できますが,X68000 は,BG 画面の他にグラフィック画面とテキスト画面がありますので,残念ながら表示機能では張り合うことができませんでした。(もういいから…)
今回はここまでになります。
次回は,毎回鬼門(笑)のスプライト表示基板の作成に入ります。
鶏八のスプライト表示とスペック的には大差ないのですが,多少機能アップを予定しているので,基板枚数が 4 枚になる予定です。
また,4 枚揃わないと,スプライト画面の表示ができないので,うまくいくかどうか…。
それでは,次回に続きます。
