こんな感じ。
ボードを買ったら取説も何もないし取説通りやってもゲーム画面出てこないし、、、とまぁまぁ試行錯誤したので上手くいく方法をメモします。
大まかな流れは次の通り。
Imager の使い方は非常にわかりやすいので説明を省略します。
ここでインストールするOSは普通の Raspbian ではなくてこれです。
Emulation and game OS → Retropie → Retropie 4.8 (RP 1/Zero)
液晶の表示は真っ白ですがこの時点では気にしなくてOKです。
WiFi の設定が上手くいっていれば、しばらくして PCから「retropie.local」というホスト名に ping を打つと応答が返ってきます。
デフォルトパスワードは「raspberry」ですね。
https://www.waveshare.com/wiki/1.44inch_LCD_HAT
この手順を実行するとようやく画面にコンソールが表示されます、、、が、あまりに文字が小さすぎて全く読めません。
そこで、raspi-config で「Advanced > GL Driver」から「Fake KMS」を有効化します。
うまくいかない場合は「Full KMS」でもいいらしいです。
設定後に再起動するとemulation stationの起動画面が出るようになるはず。
ところが、コントローラーの設定画面になってしまい、ジョイスティックが認識されていないために何もできません。
もしUSB接続のコントローラーが手元にあるようなら、Raspberry Pi Zero W の Micro USB に接続すると操作できます。
「てきとうにブログ 〜 ラズパイZEROのたとえ(例) 」
MELTWATER's RASPBERRY PI HARDWARE
実際には再起動後にジョイスティックとボタンが動作するようになり、改めてキーアサインを設定する画面が表示されるので後から変更可能です。
サンプルの ROM は retropie のイメージなどに入っていることがあるのでそれを使うのが手っ取り早いです。
手持ちのファミコンカセットから抜く方法は他のサイトをご参照。
- SDカードにゲームエミュレータ(Retropie)同梱の OS(Raspbian)をインストール
- WiFi & SSH を設定してRaspberry Pi Zero W に接続
- 液晶のドライバをインストール
- 液晶基板に付いているジョイスティックを有効化
- 遊ぶ
材料
Pi Zero でも良いのですが WiFi 付いていた方が作業が楽です。
Amazon は無茶苦茶ぼったくりの値段になっていることがあるので要注意。
Amazon は無茶苦茶ぼったくりの値段になっていることがあるので要注意。
今回のメインのパーツです。
Amazon の説明には取説付きと書いてありますが一切ついておらず、チップの種類も不明。
何も情報なしでぶつかると手も足も出なくて詰みます。
Amazon の説明には取説付きと書いてありますが一切ついておらず、チップの種類も不明。
何も情報なしでぶつかると手も足も出なくて詰みます。
そのほか、SDカードとかモバイルバッテリー、USBケーブルは適当に。
Raspberry Pi に Retropie をインストールする
Raspberry Pi の公式サイトからOS Imagerをダウンロードして PCにインストールします。Imager の使い方は非常にわかりやすいので説明を省略します。
ここでインストールするOSは普通の Raspbian ではなくてこれです。
Emulation and game OS → Retropie → Retropie 4.8 (RP 1/Zero)
WiFi & SSH を有効化する
SDカードにOSを書き込んだら自動でアンマウントされるので、SDカードを抜き差しして再度PCにマウントします。- 「boot」フォルダがマウントされるので、フォルダ直下にwpa_supplicant.confという名前のファイルを作成し、以下の内容をコピペ。
country=JP ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="{SSID}" psk="{平文のWiFiパスワード}" }
- 「boot」フォルダ直下に「ssh」という名前の空のテキストファイルを作成。
これでRaspberry Pi の初回起動時に SSH が有効化されます。
Raspberry Pi Zero W に SSH 接続する
SDカードを Raspberry Pi Zero W に挿入してモバイルバッテリーを接続。液晶の表示は真っ白ですがこの時点では気にしなくてOKです。
WiFi の設定が上手くいっていれば、しばらくして PCから「retropie.local」というホスト名に ping を打つと応答が返ってきます。
ping retropie.localさらにその後、SSH が起動すれば「pi@retropie.local」にSSH接続するとログインできます。
デフォルトパスワードは「raspberry」ですね。
液晶モニタのドライバをインストール
Waveshare のマニュアルに沿ってドライバを入れていきます。https://www.waveshare.com/wiki/1.44inch_LCD_HAT
- raspi-config でSPI Interfaceを有効化
sudo raspi-config 「Interfacing Options > SPI > Yes」を選択 sudo reboot
- BCM2835ライブラリをインストール
wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.71.tar.gz tar zxvf bcm2835-1.71.tar.gz cd bcm2835-1.71/ sudo ./configure && sudo make && sudo make check && sudo make install
- wiringPiライブラリをインストール
sudo apt-get install wiringpi wget https://project-downloads.drogon.net/wiringpi-latest.deb sudo dpkg -i wiringpi-latest.deb gpio -v # v2.5.xのバージョンが表示されればOK git clone https://github.com/WiringPi/WiringPi cd WiringPi ./build gpio -v # v2.6かv2.7が表示されればOK
FBCPドライバをインストール
フレームバッファーの制御をするドライバらしいですがよく分かりません。この手順を実行するとようやく画面にコンソールが表示されます、、、が、あまりに文字が小さすぎて全く読めません。
- ドライバをビルド
cd ~ sudo apt-get install cmake -y sudo apt-get install p7zip-full -y wget https://www.waveshare.com/w/upload/f/f9/Waveshare_fbcp.7z 7z x Waveshare_fbcp.7z -o./waveshare_fbcp cd waveshare_fbcp mkdir build cd build cmake -DSPI_BUS_CLOCK_DIVISOR=20 -DWAVESHARE_1INCH44_LCD_HAT=ON -DBACKLIGHT_CONTROL=ON -DSTATISTICS=0 .. make -j sudo ./fbcp
- 起動時に読み込まれるように設定
sudo cp ~/waveshare_fbcp/build/fbcp /usr/local/bin/fbcp sudo nano /etc/rc.local # rc.local 末尾の「exit 0」の手前に「fbcp &」を追記
- 画面解像度を設定
/boot/config.txt の末尾に設定を追記。
Raspberry Pi 4 の場合は追加の設定が必要なので適宜 Waveshare のマニュアルに従ってください。
hdmi_force_hotplug=1 hdmi_cvt=300 300 60 1 0 0 0 hdmi_group=2 hdmi_mode=87 display_rotate=0
- 再起動
sudo reboot
Retropie の画面を液晶に表示する
ここまでの手順で液晶にコンソールは表示されるのですが、Retropie (emulation station)の画面は表示されません。そこで、raspi-config で「Advanced > GL Driver」から「Fake KMS」を有効化します。
うまくいかない場合は「Full KMS」でもいいらしいです。
設定後に再起動するとemulation stationの起動画面が出るようになるはず。
ところが、コントローラーの設定画面になってしまい、ジョイスティックが認識されていないために何もできません。
もしUSB接続のコントローラーが手元にあるようなら、Raspberry Pi Zero W の Micro USB に接続すると操作できます。
ジョイスティックを有効化する
emulation station にジョイスティックを認識させるのに地味に手間取ったのですが、このページが参考になりました。「てきとうにブログ 〜 ラズパイZEROのたとえ(例) 」
curl -O https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/retrogame.sh sudo bash retrogame.sh # よくわからないけど「3」を選択再起動後に「/boot/retrogame.cfg」に次のように記載します。
LEFT 5 # Joypad left RIGHT 26 # Joypad right UP 6 # Joypad up DOWN 19 # Joypad down LEFTCTRL 13 # 'A' button JOY PRESS LEFTALT 16 # 'B' button BTN3 Z 20 # 'X' button BTN2 X 21 # 'Y' button BTN1 ESC 13 16 # Exit ROM JOY + BTN3この記載内容はここからパクりました。
MELTWATER's RASPBERRY PI HARDWARE
実際には再起動後にジョイスティックとボタンが動作するようになり、改めてキーアサインを設定する画面が表示されるので後から変更可能です。
遊ぶ
retropie.local をファイル共有で参照し「roms」フォルダに ROM ファイルをコピーします。サンプルの ROM は retropie のイメージなどに入っていることがあるのでそれを使うのが手っ取り早いです。
手持ちのファミコンカセットから抜く方法は他のサイトをご参照。