Ruputer用ToHeart2「腕このみ(フェイク)」
かみのとさんの日記から。
おー何気に凄い。試したくなったが、実機は電池切れなのと母艦と通信する手段が無いのでエミュレータで試してみる。……残像にならない。なんでだろう。開発環境でのスクリーン・ショットのエミュレータに、絵が2プレーン映っているが、それを見て気付いた。そう、gv_place の切り替えでは、残像効果にならない。
現在の Aurex もそうだし、次期の Aurex2 も同じ理由。それが以下
(a) (b) (c)
+-----+ +-----+ +-----+
| | (1) | | (2) | |
| | ==========> | | ===========> | |
| | | | | |
+-----+ +-----+ +-----+
本当のピクセル情報 残映ピクセル情報 各ウィジェットの画面
(320x240) (320x240) (102x64) or (320x240)
というように3段構成になっているが、(2) のピクセル転送では、「gv_place してあった場合、(b)のどこのピクセルの情報を持ってくるか」ということだけなので、既に表示されている (c) の画面に対しての残映効果が働かない。
ここで、102×64 の場合は (b) も 102×64 にして、(1) で (a) のピクセルの位置を選択し (b) のプレーンとの残映処理を行なえば、gv_place でも残映することに気づいた。そしてそれをやってみたのが以下のスクリーンショット
また修正したバイナリ