PIC AVR 工作室->TopPage->AVRの工作->スプライトデモ
スプライトデモ
スプライトデモ概要

AVRスプライトとAVR背景表示器 を使ったデモ作品です。昔懐かしい感じのゲームを真似た画面が次々表示されるデモです。(プレイできません)
スプライト表示と背景表示の動作確認も兼ねて、30分くらいで適当にでっち上げたプログラムです。 簡単なサンプルなので、ソースを見ればどんなことをしているかすぐに解ると思います。
製作したPLAYERがちゃんと動くかどうかの確認に使うとか、 何かオリジナル品を作るときにこのソースから切ったり貼ったりといった用途にお使いください。
サンプルムービー:スプライトデモのキャプチャ画面
キャプチャー画面をフラッシュムービーにしました。画面をクリックすると再生します。
フラッシュで再生すると、なんかちょっとカクカクする時ありますが、
実物はちゃんとスムーズに動きます。念のため。
使い方
PLAYER用のプログラムです。 スプライト表示には 「AVRスプライトV4」を、背景表示には 「AVR背景表示器V2」を使います。PLAYER上のそれぞれのtiny2313に書き込んでおいてください。
メインCPUにはMEGA48を想定していますが、それ以上のメモリを持つ88や168ならソースはそのまま動作可能だと思います。
下のダウンロードからアーカイブをダウンロードし、hexファイルを書き込んでください。 あとはRCA端子をテレビに繋ぐだけで画面が表示されます。
デモの内容は、以下のとおり。
- タイトルロゴ
- ギャラクシーウォーズ的画面
- ディープスキャン的画面
- パックマン的画面(横倒し)
- ドンキーコング75m的画面
デモとデモの間はボタンの入力待ちになってます。上下左右でもABボタンでもなんでもいいので 適当にボタンを押すと次のデモに進みます。すべて終るとまた最初に戻ります。ただそれだけのプログラム。
…でも、コンパイラってたったこれだけの処理させるのに4kBのメモリほとんど食っちゃうのね…。コンパイラって大食いです。
コメント
ご覧のとおり、大した内容は盛り込んでません。(というか、MEGA48は4kBぽっち。メモリが少なすぎてこれ以上入らない)
見ていただきたいところは、まずは一度に表示できるスプライトの数とその速度。 潜水艦のデモを見ていただければお判りのとおり、結構な数のスプライトを同時に高速に動かせます。(これでも相当ウェイトを入れてます)
1つのスプライトの座標とスプライトパターンを設定するには「X座標」「Y座標」「スプライト番号」の3つの指定で6バイトの転送が必要。 (スプライト表示器経由で3バイト転送する場合です。スプライト表示器の仕様上そうなります)
で、スプライト25個なら6×25=150バイト。150バイトをUART送信する時間は約0.013秒(115.2kbsで計算)。 なんだかんだでこれだけの速度でスプライトを動かせるなら、実用には充分耐えるでしょう!(で、実用って何?)
ダウンロード
スプライトデモ用アーカイブ(クリックすると開きます)
(注)PLAYER上で動作します。スプライト表示器はV4を、 背景表示器はV2を使用してください。