アフィリエイト広告を利用しています
 

2024年10月03日

Laboratoryテーマ29「メッセージを1ドットスムーズスクロールで流したい」そのA







Laboratoryテーマ29「メッセージを1ドットスムーズスクロールで流したい」そのAです。
画面のチラつきと言うかガタつきの解消方法を考えます。

なぜチラついたり、ガタついたりするのか?
チラつきは、「空白になっていた大文字にパターンを戻す」、「文字パターンのある小文字を空白にする」時の書き換え処理に時間的ズレがあり、描き換え中の状態が一瞬でも表示されてしまうため。
ガタつきは、上記状態と併せて24行分(最大32×24=768バイト)のメッセージの書き換えを行っているからです。

チラつきを抑えるには、どうすればよいか?
文字パターンデータを一気に戻さなければいいです。
では、どうするか?
大文字から小文字へ8バイト上シフトした後、今度は小文字から大文字にシフトするようにします。
24_9_23_1.png
これで、大文字と小文字間で永久ループする形になります。

24_10_3_2.png

次に、ガタつきを抑えるには、書き換えデータ数を減らせばいいです。
上記変更で、大文字と小文字間をシフトループするようにしたので、8ドット上にシフトした時(小文字に文字パターン、大文字は空白状態)、最初は大文字行だけを2行上にスクロールさせます。
24_9_23_2.png
24_9_23_3.png

次に8ドット上にシフトした時(小文字は空白、大文字に文字パターン)、今度は小文字行だけを2行上にスクロールさせます。
24_9_23_4.png
24_9_23_5.png
これだと1回のメッセージ書き換えは、12行分(最大32×12=384バイト)で済みます。
更にこの方法だと、常に空白行と空白行を入れ替えるだけなので、チラつきません。

ちなみにVRAMの描き換えは、BIOS(&H005C)を使っています。
OUT命令を使えば、より一層綺麗にできるはず。

24_10_3_3.png

次回、テストデータを用意します。
駿河屋
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | Laboratory
検索
<< 2024年10月 >>
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
広告
最新記事
ブログランキング
にほんブログ村 ゲームブログ ゲーム制作へ
プロフィール
J-JSOFTさんの画像
J-JSOFT
高校時代、あれほど熱心に取り組んだMSXに触れなくなって30年余…。 MSXエミュレータとの出会いで、MSX愛が再燃中。
プロフィール
カテゴリーアーカイブ
ファン
QRコード