はじめに
HyperPixel4 squareという正方形のラズパイ向け液晶ディスプレイを友人から譲り受け、縦横どちらでも行けそうなので、久々にレトロゲームプレイヤーを作ってみることにしました。昔はretroPie一択だったように思うのですが、Batocera linuxというのがあることを知り、使ってみようとしたところ大ハマりしたので、メモを兼ねて記事にしました。(解決するとどってことないのですが・・・)なぜはまったかというと、公式でraspberry pi osなどに組み込まれているdtoverlay(vc4-kms-dpi-hyperpixel4sq)がバグっているらしくて、表示が出ないことによります。下記の記事によると、他の方でも表示できなかったようです。
ちなみに今回はBatocera linux上でのHyperPixel4 squareの表示が出るまでの記事です。ゲームのプレイ方法は、大量に他に記事があるので、そちらを参照してください。
準備するもの
- ラズパイ4
- HyperPixel4 Square
- micro SDカード お試しだけなら16GBでも可能ですが入れられるゲーム数が少なくなる
- ゲームコントローラ or キーボード
- スピーカー(表示お試しだけならいりません)
手順
動作するドライバの作成
Batocera linuxはユーザに中身をいじらせないような思想で作られているらしく、基礎的なパッケージが欠損しており、パッケージ管理のpacmanもarch linuxのレポジトリを追加するなどのことがうまくできませんでした(実力のある方はできるのでしょうが)。なので、まずはraspberry pi os 64bit上でHyperPixel4 squareのドライバを作成し、ついでにテストをいたします。
raspberry pi os imagerでRaspberry Pi OS(64bit)を選択してインストールしてください。liteでもいいのですが、GUI立ち上がるテストをしたいので、desktop版をインストールしています。インストール後、ラズパイ4にSDカードを挿し起動して初期設定をします。その後、以下のコマンドでgitからドライバインストーラをダウンロードして実行、ドライバのインストールしてください。
git clone https://github.com/pimoroni/hyperpixel4 -b square-pi4
cd hyperpixel4
sudo ./install.sh
ドライバファイルは以下のように確認できます。
ls /boot/overlay/hyperpixel4.dtbo
次にテストのために、/boot/config.txtを編集します。
まず、今のドライバをコメントアウトします。
before
dtoverlay=vc4-kms-v3d-pi4
after
#dtoverlay=vc4-kms-v3d-pi4
次にファイルの最後に以下の行を追加します。
dtoverlay=vc4-fkms-v3d-pi4
dtoverlay=hyperpixel4
enable_dpi_lcd=1
dpi_group=2
dpi_mode=87
dpi_output_format=0x7f226
dpi_timings=720 0 15 15 15 720 0 10 10 10 0 0 0 60 0 35113500 6
これで再起動すると、HyperPixel4 squareのスクリーンにraspberry pi OSのGUIが表示されます。
ドライバはPCなどへscpするか、一度シャットダウンしてmicro SDカードをPCに挿し、bootドライブ内の \overlay\hyperpixel4.dtboをPCに保存してください。
Batocera linuxへのインストール
ラズパイに慣れている方であれば、あとは、Batocera linuxにも同じ環境を作ればいいといえばわかると思います。以下繰り返し臭が強くなりますが、手順を示します。
まずは、Batocera linuxのラズパイ版を入手し、micro SDカードにインストールします。ダウンロードは以下から行います。
ダウンロードしたら、balenaEtcherなどでmicro SDカードにインストールしてください。インストールが終了したら、出来上がったBATOCERAドライブ内の\ovelay\ディレクトリに先ほどPCに保存したhyperpixel4.dtboをコピーしてください。
次にBATOCERRAドライブ内のconfig.txtをメモ帳などで編集します。
以下のラインをコメントアウトします。
before
dtoverlay=vc4-kms-v3d-pi4
after
#dtoverlay=vc4-kms-v3d-pi4
次にファイル最後に以下を追加します。
dtoverlay=vc4-fkms-v3d-pi4
dtoverlay=hyperpixel4
enable_dpi_lcd=1
dpi_group=2
dpi_mode=87
dpi_output_format=0x7f226
dpi_timings=720 0 15 15 15 720 0 10 10 10 0 0 0 60 0 35113500 6
これを保存し、ラズパイ4に挿して起動し、Batcera linuxのロゴと本体GUIが立ち上がれば成功です。お疲れさまでした。
最後に
久々にレトロゲームを小さな画面でやってみるとたまには楽しいものです。ラズパイの方もなかなかいじる機会が減っているので、何とか時間確保してやっていきたいと思います。今回かなり久しぶりの投稿となりましたが、時間ができ次第、いろいろと実験やって、知見が得られたら投稿して以降と思います。
おまけ
上記方法は方法を探る過程で、一度Batocera linuxをあきらめて、retroPieでの動作確認をしていた時に、retorPieでうまくいった方法をBatocera linuxに適用したらうまくいったものです。趣味とはいえ、やり方に詰まったときは、思い切ってほかのことをやっていると、解決策が見つかるという体験ができたのでした。