相変わらず、AVRスプライト用の横スクロール対応です。
進展しました!
一通りコーディングを終え、シミュレーターにかけて
ダンプリストとにらめっこ。
ダンプリストの内容的には、多分想定した通りの機能が
実現できているはず。
それと、実行時間のシミュレートをしてみて、実際の
使用時にどうなるかを考えてみたところ、UARTの
ダブルバッファを使用しつつ、通常のスクロール処理
を行っていく範囲内では実用上何の問題もないと判明。
→処理の重いコマンド…横8ドット毎のスクロールコマンド
…を連続して行わない限り、UARTがオーバーフロー
することはないと判明。通常は1ドット単位、もしくは
2ドットかせいぜい4ドット単位でスクロールする
だろうから、その範囲内では全く問題なし。
そもそも、ウェイトを置かずに横8ドット単位でスクロール
してしまったら、横120ドットしかないスクリーンは
4ミリ秒弱でスクロールし尽くしてしまう計算。
それって、垂直同期の1/4の時間でしかありません。
そんなのまともに表示できないジャン! 考慮不要!
というわけで、当初想定したとおりの使い方をすれば、
縦横自由自在にスクロールができるようになりました。
追加機能として、背景表示器からもUART出力が可能と
しました。スプライト表示器と同様に、専用のコマンドを
送ると、バイパスしてUARTに1バイト出力するという
もの。
これを使えば、背景表示器の後ろに背景表示器を次々と
チェーン接続して、理論上は無限枚の背景を多重スクロール
することも可能です。(ワルノリしすぎですね)
時間ができたら、テストプログラムも用意し、実機に
ダウンロードして確認してみたいところです。
…いや、コーディングイメージが頭に残っているうちにと
いうのが自分への言い訳だったので、実験するのは
ひとまずこの忙しさから逃れてからにすべきかな…
まぁ、あとは実機確認さえ取れれば、ゼビウスみたいな
縦スクロールだって、グラディウスみたいな横スクロール
だって、いや、組み合わせれば斜めスクロールだって
当然可能。
さらには、背景にインベーダーやギャラクシアンのキャラ
を背景に埋め込んでスクロールによって動かせば、
その手の「軍団がズンズン侵略する系」のゲームだって
実現可能なはず。
ようやく、AVRを使うことで70年代までタイプスリップ
が可能となったわけです。よかった、よかった。
ここまでできちゃえばもうスプライトには未練は無いな…
|