今回は『Raspberry pi 400で遊ぶ MSX編』に続いて、Raspberry pi 400 (日本語キーボード)へX68000の環境を構築しました。
Raspberry Pi OS Lite
今回も最小構成にしたいので、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] を選択して自動ログイン
前準備
SDL 1.2、SDL_gfx 1.2、gitをインストールします
sudo apt install -y libsdl1.2-dev sudo apt install -y libsdl-gfx1.2-dev sudo apt install -y git
ファイルの展開のため、unzipとlhasaと7zをインストールします。
sudo apt install -y unzip sudo apt install -y lhasa sudo apt install -y p7zip-full
px68kの構築
ここではX68000のエミュレータpx68kの環境を構築する手順を書いていきます。
px68kはpiユーザのホーム以下のpx68kディレクトリ(/home/pi/px68k)へインストールすることを想定して進めます
cd git clone https://github.com/hissorii/px68k cd px68k make
ここでmakeのエラーが発生すると思います。
gcc -o x68k/adpcm.o -m32 -g -O0 -fno-strict-aliasing -DUSE_SDLGFX -DNO_MERCURY -DPX68K_VERSION=0.15 -I./x11 -I./x68k -I./fmgen -I./win32api `sdl-config --cflags` -c x68k/adpcm.c gcc: error: unrecognized command line option ‘-m32’; did you mean ‘-mbe32’? make: *** [Makefile:112: x68k/adpcm.o] Error 1
Makeファイルの編集をします。
vi Makefile
編集するコマンドはnanoでも慣れてるもので大丈夫です。
"-m32"と書いてある箇所があるので"-mbe32"に変更します。
MOPT= -m32
↓
MOPT= -mbe32
保存して再度makeします。
make
いくつかワーニングが表示されましたが、無事に動作しているようです。
BIOSファイル配置
実行にはiplrom.datとcgrom.datが必要。
色々なサイトを参考にX68000 LIBRARYとXM6 Pro-68kから拝借
mkdir ~/.keropi wget http://www.retropc.net/x68000/software/sharp/x68bios/X68BIOSE.LZH lhasa x X68BIOSE.LZH iplrom.dat mv iplrom.dat ~/.keropi/iplrom.dat chmod 644 ~/.keropi/iplrom.dat wget https://mijet.eludevisibility.org/XM6%20Pro-68k/XM6%20Pro-68k%20DLL%20Package.7z 7z x "XM6 Pro-68k DLL Package.7z" CGROM.DAT mv CGROM.DAT ~/.keropi/cgrom.dat chmod 644 ~/.keropi/cgrom.dat
動作確認
X68000 LIBRARYからHuman68kのディスクイメージを取得して起動してみます。
wget http://www.retropc.net/x68000/software/sharp/human302/HUMN302I.LZH lhasa x HUMN302I.LZH human302.xdf chmod 644 human302.xdf ./px68k human302.xdf
MSXの場合と同じように、FullHDのデイスプレイでは写真のように右上だけに表示されてしまいました。
/bootにあるconfig.txtを編集します
sudo vi /boot/config.txt
下の定義の部分のコメント"#"を削除して、設定できる画面モードのなかからなるべく全画面に近い解像度を設定しました。
#hdmi_group=1 #hdmi_mode=1
↓
hdmi_group=2 hdmi_mode=9
詳細な意味は省略しますが、これで800x600表示になります。
設定後はリブート
sudo reboot
まだ余白がありますが、これ以上小さい解像度に設定すると、px68kの起動で失敗しました。
自動起動
電源を入れたらpx68kの起動まで自動で行えるようにします。
.bashrcの最後にpx68kの起動コマンドを追加します。
.bashrc編集
vi ~/.bashrc
最後の行に追加
cd px68k ./px68k
raspi-configの設定で自動ログインも有効化してるので、これで電源オンの後は自動でログインしてpx68kを起動されるようになります。
メニュー
[F12]でメニューを開いてディスクの入れ替えや、リセット、終了を行うことができます。
問題点
現在マウスカーソルが表示されてしまいます。
コンソールだけで扱いたいので、邪魔なのですが非表示にする方法が不明です。