ずいぶん長い間放置されていたが、最近、ようやくLCDの初期化が出来た。
画像は出ているようだが、「赤」、「青」、「緑」、「白」、「チェッカー」、
「ストライプ」などと、数秒おきに画面が自動で切り替わるナゾ動作が続く。
RX65NのGLCDC関係の部分を読んでも、この「現象」に対するヒント
は見つけられなかった。
この動作は、GLCDCの何かの機能なのだと思って、それを「OFF」にす
る方法をひたすら探したが、それらしい記述はどこにも載っていない。
結局、BGENレジスタを設定したら、このテストモードのような状態を抜け
て、想定した表示が得られた・・・
※BGENレジスタの設定が抜けていただけだった・・・
とりあえず、フレームバッファに適当に書いて、表示してみた。
ちゃんと表示するようだが、ガンマ補正がちゃんとしていない為か発色が少し変
な感じがする。(これは、これから解析するとして・・)
また、LCDは、そこそこコントラストがあるが、視野角が狭いようだ・・
もっとダイナミックな表示が欲しくなり、スペースインベーダーのエミュレータ
ーを動かしてみた。(あまりにあっさり動作したので拍子抜けだ・・)
このエミュレーターは「side」と言うオープンソースで、8080CPUと、
スペースインベーダーのアーケード基板をエミュレーションするもので、メモリ
ーも、内蔵メモリで足りるので動作の確認に便利だと思う。
※動作には、スペースインベーダーのROMデータが必要。
・invaders.h, invaders.g, invaders.f, invaders.e (invaders.zip)
今回は、それを、SDカードに書き込んで、SDカードから読み出している。
・inv_roms/
※コンパイルは「-O3」で最適化してある。
・エミュレーションにかかる処理負荷を計測したら、およそ60%程度を消費し
ているようだ、8080、2MHz程度でこの負荷は思ったより大きいが、その
気になって最適化すれば、20%くらいは下げられる感じはある。
現状では、音も無いし、操作も出来ないが、今後、それらを実装したい。
少し苦労したけど、音は鳴るようにした。
ソースコードは、GitHubへコミット済み。
-----
このボードは5000円くらいで買えて、非常に使い勝手が良い、これから、
グラフィックス関係を強化して、色々なガジェットを作ってみたい!
追記:
・GLCDCのVPOS割り込みを設定して、画面更新の同期を行った。
・LCDの表示タイミングを調整して、画面の更新レートを60Hz近くにした。
追記:
・ファミコンパッド接続で、操作できるようにした。
※「SELECT」でコイン、「START」1Pスタート、左右キー、Aボタン