「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ



以前youtubeでみつけて度肝を抜かれた
http://brown.ap.teacup.com/nekosan0/310.html
このスーパーマリオクローンのお話。

公式サイトが出来てるようです。↓ここ。
http://avga.prometheus4.com/

すんさんのサイトの掲示板や、makeブログでも話題に
なってますね。AVGAっていう名前なんですね。

元々はPAL専用だったんですが、バージョンアップして
NTSCにも対応しつつあるようです。

それにしても、MEGA88以降以上といってもSRAMは
少ないモデルでは1kB。
1ドット4ビットで192×144ドットなら10kB
以上のVRAMが必要になるはずなんですが、1kBに
収めているということは、私の作ったスプライト表示器
http://picavr.uunyan.com/avr_m_sprite.html
や、背景表示器
http://picavr.uunyan.com/avr_m_bg.html
などのようにVRAMは1ライン分だけしか持たない
ことになっているんだろうなぁ。

スプライト表示器や背景表示器も、128バイトしかない
TINY2313に押し込むために、1ライン分デコードして
おいて(その間は表示しない)、次の1ラインで表示する、
みたいな感じに処理したんですが、youtubeの画面を
見る限りはそういう1ライン間引くようなことは
行ってないみたい。

その方法がずーーーーーっと引っかかっていたんですよね。
どうやって処理してるんだろうなぁ…って。

デコードしながら表示もやっているというのが真相
なのでしょうが、表示のタイミングを狂わさずに
デコードもやっちゃうって言うのは、かつて
スプライト表示器で苦労した経験から言うと相当
難しいはず。

ならどうやっているのか…?

一つには、デコードと表示を数クロック毎に切り替え
ながらやる方法。これは超難しい…。

もう一つは、表示処理以外のところにデコード処理を
詰め込む方法。

AVGAのスペック詳細がわかっていないのでなんとも
言えないんですが、後者は許容できるクロック数的に
考えると大した処理が出来ないはずなんだけどなぁ。

まぁ、外部ICとのI/Fを考える必要が無いので、
ある程度融通は利くのかも知れないなぁ。


そうそう。NTSC版ではY軸120ドットという
ことなので、いずれにしても2ラインで1ドット表示
ということは間違えないんだろうなぁ。

それにしても、表示とデコード、どうやって両立
してるんだろうなぁ。


そうそう。最近VHDLでCPLD弄ってたり12.318Mhzの
オシレータを買い漁っていたりするわけですが、これは
まさにAVGAに触発されて、カラーのビデオ表示を
さらに推進したいなぁという作戦をひそかに考えている
からだったんですねぇ。

マイコンからはRGBで出力しておいて、それをひとまず
CPLD(XC9536XLみたいな安いやつ想定)でカラーバースト
やサブキャリア信号を生成し、コンポジット信号にして
しまおうっていう目論見です。

自由自在の背景スクロールと、大量のスプライト同時表示。
これを両立させたいなぁというのが当面の目標。
どうなることやら…。



コメント ( 2 )