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



avr背景表示器スクロールのプログラム。バグ取りが完了
しました!

凄くバカらしいバグでした…(^_^)

ソースプログラムの一部をコピー&ペーストで流用した際、
直さないとならない部分を直し忘れていたという恥ずか
しいミスです。

直したつもりで直し忘れてたって場合、頭が「正しい
はずだ!」って思いこんでいるので、なかなか疑って
考えられず、発見が遅れるんですね…。という言い訳。

判ってしまえばたいしたこと無いわけで、サクッと直して
テストしてみると、無事上手く動きました。

ひとまず、上下にスクロールするデモムービーを作って
みました。ドキュメント類やデモプログラムまできちんと
整備しようとすると暫く時間がかかるので、ひとまず
ムービーだけでも載せようと思います。

明日か明後日にでも、時間が取れたら新たなページを
作ってアップしようと思います。

これまでの背景処理機と違って、下側と右側のそれぞれ
1キャラクター分ほど表示領域が狭くなりました。
表示領域の外側に1キャラクター分のバッファを持た
せておかないとならないのですが、そもそも2313
ではVRAMに充てるメモリが一杯一杯なので、仕方
なく下と右の1キャラクター分を削ってそのバッファー
に充てました。

その分当然背景の表示領域が狭くなりましたが
(16×12キャラ → 15×11キャラへ)、
スクロールできるということは、実画面の外に世界が
広がっているということであり、まぁいいや…と。

なぜ右側まで?と言うと、今後横スクロールを実現する
際、このプログラムの上位互換にして、置き換えて
しまおうと企んでいるからです。
(いつになるかわかりませんけどね…)

縦スクロールは、1ライン1ラインのデコード処理時に
ライン数にオフセット値を加味するだけでよく、
プログラムは簡単だったんですが、横スクロールと
なると、8ビット単位のデータをリアルタイムでビット
シフトさせる必要があり、なかなか厄介。

走査線1本=約64usの中に、どうやったらビット
シフトの処理を組むことができるのか、どうやったら
残りの数百バイトの中に押し込めるのか、どうやったら
残ったSRAMやレジスタの中で実現できるのか、
これまで以上に複雑なパズルに挑む難しさです。
(これまでのプログラムも充分変態的ですけどね…)



コメント ( 0 )




AVRの背景表示器に縦スクロール機能を持たせる野望の
続きです。

朱書きして、アセンブルもサクッ通って、シミュレータ
でおよそのパスを通してみて、想定どおりに動いたので、
実機に書き込みをしてみました。

疎通確認のために、デモプログラムも用意してみました。
(以前作ったデモプログラムの使いまわしですが)

で、スクロール自体は思ったよりもあっさり動いて
くれました。スクロール処理が画面走査のタイミングと
下手にかち合ったら、汚いスクロールになっちゃうん
じゃないか?と心配していたんですが、取り越し苦労でした。
綺麗にスクロールできてます。

速度を下げたり上げたりもしてみましたが、結構速い
スクロールさせても、波打ったりかすれたりしません。
なかなかなモノです。( ̄ー ̄)

ちなみに、上にも下にもスクロールします。

ただ、まだ画面上下のクリア処理(例えば、上に
スクロールしていく時の最下行の初期化)が思った
ように動いておらず、ゴミが表示されてしまう…

ひとまず今日はこれで終了!
バグ取りは明日以降に…



コメント ( 0 )