電子趣味の部屋

電子系のガジェットやアプリ開発等の趣味の話題を書いてます

Raspberry pi 400で遊ぶ MSX編

Raspberry pi 400 (日本語キーボード)を手に入れました。

キーボード一体型なので、サーバにしてssh接続で使うにはスペースを取りすぎて無駄なので、普通のデスクトップPCとして使うことにしました。
普段は最新のRaspbberry Pi OSで使用しているんのですが、キーボード一体型と言えばMSXということで、MSX専用環境を作って遊んでみました。

Raspberry Pi OS Lite

MSXに特化して最小構成にしたいので、Raspberry Pi OS Liteを使用しました。
最新のBullseyeでは起動時に失敗して何回試してもうまく動作しなかったので、前バージョンのBusterを使用しました。
Raspberry Pi Imagerからは、Raspberry Pi OS (Other) から Raspberry Pi OS Lite (Legacy) を選択してインストールします。

初期設定

作業は一通りユーザ「pi」で進めていきます。

raspi-configで設定

raspi-config起動
sudo raspi-config
Wifi設定

[1 System Options] - [Wireless LAN] からWifiを設定

SSH有効化

[2 Interface Options] - [P2 SSH] から を選択してsshを有効化

キーボード設定 (日本語キーボードの場合)

[5 Location Options] - [L3 Keyboard]-[Generic 105-key PC (intl.)] から [Japanese - Japanese (OADG 109A)] を選択

自動ログイン

[1 System Options] - [Boot/Auto Login] から [B2 Console AutoLogin] を選択して自動ログイン

OpenMSXをインストール

aptでインストールできました。

sudo apt install openmsx

OpenMSX起動

openmsx

これだけで起動できます。

日本語レイアウトのキーボードでは、メニューキーでOpenMSXのメニューを開くことができます。
ここからOpenMSXを終了させることができます。

ただこの状態では、FullHDのデイスプレイでは写真のように右上だけに表示されてしまいました。

openmsxの設定ではフルスクリーンにできず、Raspberry Piの設定で変更しました。

画面解像度の設定

/bootにあるconfig.txtを編集します

sudo vi /boot/config.txt

編集するコマンドはnanoでも慣れてるもので大丈夫です。

下の定義の部分のコメント"#"を削除します。

#hdmi_group=1
#hdmi_mode=1

hdmi_group=1
hdmi_mode=1

詳細な意味は省略しますが、これでVGA(640x480)表示になります。
設定後はリブート

sudo reboot

これでopenmsxを実行すると画面いっぱいに表示されました。

ここで画面中央に小さく表示される場合は、一旦openmsxを終了し、設定ファイルを修正します。

vi ~/.openMSX/share/settings.xml

下の設定があると思うので、1を2に変更します。

<setting id="scale_factor">1</setting>

<setting id="scale_factor">2</setting>

これで起動するとちょうど良いサイズになります。

自動起動

実機のMSXと同様に電源を入れたらOpenMSXの起動まで自動で行えるようにします。
.bashrcの最後にopenmsxを追加します。

.bashrc編集

vi ~/.bashrc

最後の行に追加

openmsx

raspi-configの設定で自動ログインも有効化してるので、これで電源オンの後は自動でログインしてopenmsxを起動されるようになります。

OpenMSXの各種操作

日本語レイアウトのキーボードでは、メニューキーでOpenMSXのメニューを開くことができます。
ここでROMファイルを開いたりディスクファイル(ディレクトリ)を開いたりできます。
またBIOSを用意すれば特定の機種をエミュレートし、BASICも扱えるようになります。

BIOSファイルは下のディレトリに入れてください。
/home/pi/.openMSX/share/machines

BIOSの吸出し方法はここでは説明しませんが、FS-A1STの場合は http://bluemsx.msxblue.com/resource.html にある Panasonic dump tools で行いました。
何年か前のファイルを使いまわしてるので、手順は覚えてません。


ゲームコントローラ(ゲームパッド)について

ゲームコントローラはPS4用のものをのUSB接続でそのまま使用できました。
他のUSB接続のものなら使用できそうです。

最後に

Raspberry Pi 用のMSXエミュレータは他にも blueberrymsx 等ありますが、XウィンドウではなくSDLライブラリでの場合は、メニューが表示されないので、操作方法がわかりませんでした。
OpenMSXは独自でメニューを表示してキーボードだけで操作できるので、今回はこちらを選択しました。

今回は特に行わなかったですが、必要のないサービスは起動しないようにし、電源を入れてからのMSX起動までの高速化も行いたいと思います。