17.大き目画像表示対応のちょっとした改造のはずだったのにドはまり
画像サイズが 320x240を超えない前提を何とかしようと、まずはjpeg画像サイズをチェックしてから再生するようにpython側のコード改造を始めた。
すると動いていたはずのデコーダが落ちる落ちる。pythonコードを元に戻したつもりでも落ちる落ちる。
まぁ、ちゃんとプログラムとか一式バックアップしときなさいって話なんですが。
何が悪いんだと延々と探しまくってpicodisplayの怪しいところを発見。
LCDとのSPI通信ではデータ転送終了後にCS(Chip Select) 信号をネゲートしているが、データをレジスタに書き込んだ直後はまだSPIデータが送られて最中。
そのためSPIのステータスレジスタをチェックするべきだが、そのチェックが漏れている箇所があった。
チェック漏れてたのは、LCD制御コマンドを送る処理だったので、ページ切り替えしまくってた時に、データを取りこぼすことがあったのかなぁ?とか予想。
jpegデコーダ側では、前のフレームが一瞬だけ表示されるとか、画面切り替えしない表示モードで白い線が一瞬だけ入るとかの謎現象だらけ。
pythonの表示プログラム側のちょっとした改造だったはずなのに。
ようやく安定してきたから一晩連続再生してから、デバッグコード削除してgithub投げたい。
でも steam がオータムセール中なので、ゲームタイトル確認に時間取られてますが。
Ozymandias と Transport Fever 2 は買った。