Raspberry Pi 3B+でミニX68000
なんでか
2020正月の予定が全く無いのと仕事でMC68000コードの逆アセンブルを行っているためアセンブラにも慣れておこうと思ってちょうどヘルメッツのX68000バッグの存在を教えてもらった時についでにラズパイ用のX68000を模した激かわいいケースがあることを発見したので。
予定が無いと思ったが結局ラズパイ触れる時間がエリート休暇最終日の1日だけになってしまった。ありがたいことです。1日でどこまでできるかやってみる。
原理主義者なのでファミコンミニとかのミニシリーズはあまり興味が無かったのですが、現存しているX68000は電源に使用されている電解コンデンサがほとんど劣化して潰れているものばかりだそうなので金も時間もかかるしラズパイでいいやという気持ちになりました。
参考サイト
Raspberry Pi 3B+とX68000ケースの入手
そもそもなんで4じゃなくて3B+なんだよということですが、X68000ケースが2/3しか対応してないからですね。ということで3で一番ハイスペックな3B+を必然的に選択するわけですが、いかんせん型落ちなので通販はほぼ在庫が無かったためメルカリで購入。購入の経路はいつぞやの日報を参照。最低な買い方をしました。
X68000ケースはヘルメッツの公式オンライン通販かamazonとかで買えます。
あとmicroSDは家に転がってた32GBのやつにしました。そもそもラズパイ自体がFAT32しか対応してないっぽいので32GBでちょうどよかったんですが、なんかwindowsでFAT32でフォーマットしたら64GBでもイケたみたいな話もあるようですが今回の趣旨と離れるしトラブル起きてもだるいので32GBにしましょう。
RetroPieのインストール
ラズパイ用エミュレーターはいろいろあるようですが、情報量の多いデファクトスタンダードなRetroPieを選択します。
公式サイトからRaspberry Pi 2/3用のイメージをダウンロードします。2020/1/6時点でのイメージファイル名は”retropie-4.5.1-rpi2_rpi3.img.gz”でした。
microSDをFAT32でフォーマットします。最近のmicroSDはexFATでフォーマットされている可能性があるのでやっておいたほうがよいです。フォーマットにはSD card formatterを使用することをオススメします。勝手にFAT32になりました。
ダウンロードした”retropie-4.5.1-rpi2_rpi3.img.gz”を解凍すると.imgファイルが出てくるのでイメージファイルを焼けるツールでmicroSDに焼きます。balenaEtcherを使用しました。
焼いたらwindowsからフォーマットしますかみたいなこと聞かれますがしません。
ラズパイにRetroPieを焼いたmicroSDとHDMIとUSBキーボードとUSBゲームパッドを接続し、最後にmicroUSBケーブルを指して電源を入れます。
ゲームパッドを使ってキー設定を行います。ゲームパッドのAボタンにしたいボタンを押し続けるとキー設定へ遷移します。
設定画面に遷移したら、画面に従ってキーに割り当てるボタンを押していき、割り当てたくないキーはAボタンを長押しするとスキップします。
HOTKEYにボタンを割り当て無かった場合はSELECTをHOTKEYにするかどうか聞かれます。
ボタン設定を終えたらメニュー画面が起動します。
ファイルシステム拡張
RetroPieイメージをmicroSDに書き込んだ際に未割り当てのパーティーションが存在するためそれを使用できるようにします。
メニュー画面でRetro Pie CONFIGURATION を起動し、RASPI CONFIGを選択します。
“7 Advanced Options” -> “A1 Expand Filesystem” を選択し、Finishすると再起動を行います。
これで32GBまるまる使用できます。
ロケーションの設定
RetroPieインストール時は英語キーボード設定になっているので、日本語キーボードを使用している場合は正しく設定を行います。またタイムゾーンもあわせて設定します。
CONFIGURATION画面から”RASPI CONFIG”を選択します。
“4 Localisation Options”->” I1 Change Locale”を選択します。
デフォルトで”en_GB.UTF-8 UTF-8″が選択されていますがその設定は外さずに、”Ja_JP.UTF-8 UTF-8″にカーソルをあわせてスペーキーで設定追加します。
Enterキーで次に進むとConfiguring locales画面になるので、”en_GB.UTF-8″を選択したままにしておきます。そうしないとところどころ文字化けが発生します。
RASPI-CONFIGの画面に戻るので、”4 Localisation Options”->”I2 Change Timezone”を選択し、タイムゾーン設定を行います。
“Asia”->”Tokyo”を選択します。
RASPI-CONFIGの画面に戻り”4 Localisation Options”->”I3 Change Keyboard Layout”を選択し、日本語キーボード設定を行います。英語キーボードの場合は必要ありません。
“Generic 105-key (Intl) PC”->”Other”->”Japanese”->”Japanese”->”The default for the keyboard layout”->”No compose key”を選択します。
RASPI-CONFIGの画面に戻り”4 Localisation Options”->”I4 Change Wi-Fi Country”を選択し、Wi-Fiのロケーション設定を行います。
“JP Japan”を選択します。
以上で終わりなので”Finish”で終了します。
日本語フォントのインストール
後に追加するゲームのROMファイル名などを日本語で表示するために必要です。
F4キーでシェルを開き、ログインが必要な場合は、ユーザー名がpi、パスワードがraspberryでログインする。
以下コマンドで日本語フォントをインストールします。
1 |
sudo apt-get install -y fonts-droid-fallback |
インストールしたら”exit”コマンドで終了し、STARTメニューの”QUIT”->”RESTART EMULATIONSTATION”を再起動すると日本語ファイル名が表示可能です。
Wifiの設定
Raspberry Pi 3B+はせっかくwifiモジュールが搭載されているので設定しましょう。
メニュー画面でRetro Pie CONFIGURATION を起動し、WIFIを選択します。
ここからはキーボードで操作を行います。Connect to WiFi networkを選択します。
選択したら自動的にSSIDの一覧が表示されるので接続するSSIDを選択し、画面の指示に従ってパスワードなどを設定し、接続が完了したらIPが表示されます。
SSHの設定
RetroPieにファイルの転送などを行う際にSSHがあると便利なのでSSHを設定しておきます。RetroPieではデフォルトでSSHログインがOFFになっているのでONにしましょう。
CONFIGURATION画面から”RASPI-CONFIG”->”Interfacing Options”->”F2 SSH”を選択し、”YES”を選択します。これでSSHでリモートログインができます。
メニュー画面の”SHOW IP”よりラズパイのローカルIPアドレスを確認し、適当なPCでSSHログインしてみます。デフォルトでユーザー名がpi、パスワードがraspberryとなっています。
X68000エミュレーター(lr-px68k)のインストール
wifiを設定し、インターネットが使用可能となればX68kのエミュレーターがインストール可能となります。
RETROPIE SETUPより、”Manage packages”->”Manage experimental packages”->”lr-px68k”->”Install from binary”で、X68000エミュレータがバイナリパッケージでインストールされます。簡単。
BIOSのROMイメージを入れる必要があります。
IPL-ROM と cgrom.dat を入手して、SSHでラズパイに接続し、以下のパスに格納します。
1 |
/home/pi/RetroPie/BIOS/keropi |
IPL-ROMは買ったケースがXVIだったのでバージョン 1.1にしました。IPL-ROM別に以下の表に従ってファイル名を設定する必要があります。
Filename | IPL-ROM種別 |
---|---|
iplrom.dat | X68000 EXPERT に搭載されている IPL-ROM バージョン 1.0 |
iplromxv.dat | X68000 XVI に搭載されている IPL-ROM バージョン 1.1 |
iplromco.dat | X68000 XVI Compact に搭載されている IPL-ROM バージョン 1.2 |
iplrom30.dat | X68030 に搭載されている IPL-ROM バージョン 1.3 |
cgrom.datはフォントROMイメージとなります。”XM6 Pro-68k DLL Package”に格納されているのでそれを使用します。IPL-ROMと同じくファイル名は全部小文字にリネームして下さい。
超連射68kで遊ぶ
X68000といえば超連射68kを遊ばないわけにはいかないので、ここからfor X68Kのゲームイメージをダウンロードします。
SSH経由で以下のパスにROMイメージの.2HDファイルを配置します。ファイル名がそのままリストで表示されるので”超連射68k.2HD”としました。
1 |
/home/pi/RetroPie/roms/x68000 |
STARTメニューより、”QUIT”->”RESTART EMULATIONSTATION”でエミュレーターを再起動するとX68000のロゴが追加されています。
しっかりパッドで遊べました。 HOTKEYとSTARTを同時押しするとエミュレーターが終了します。
Human68kの導入
本来の目的は完全なミニX68000を作ることなのでX68000用DOSである Human68kのディスクイメージを起動する必要があります。
ここよりHuman68kのディスクイメージファイルを入手します。ディスクイメージ版の HUMN302I.LZH をダウンロードして下さい。
解凍した中身の”HUMAN302.XDF”を以下のパスにSSH経由で格納します。
1 |
/home/pi/RetroPie/roms/x68000 |
.XDFファイルはデフォルトでイメージデータと認識しないため、以下ファイルの設定を書き換えます。
1 |
/etc/emulationstation/es_systems.cfg |
以下のコマンドで書き換えます。
1 |
sudo sed -i -e 's/\.dim/.xdf .hdm .dim/;s/\.DIM/.XDF .HDM .DIM/' /etc/emulationstation/es_systems.cfg |
1 2 3 4 5 6 7 8 9 10 11 |
... <system> <name>x68000</name> <fullname>X68000</fullname> <path>/home/pi/RetroPie/roms/x68000</path> <extension>.xdf .hdm .dim .hdf .2hd .d88 .m3u .XDF .HDM .DIM .HDF .2HD .D88 .M3U</extension> <command>/opt/retropie/supplementary/runcommand/runcommand.sh 0 _SYS_ x68000 %ROM%</command> <platform>x68000</platform> <theme>x68000</theme> </system> ... |
extensionタグに .xdf .hdm .XDF .HDM が追加されていたらOKです。.HDMもよく使われるため追加しています。
“RESTART EMULATIONSTATION”を行い、再起動するとx68000のROMリストにHUMAN302が追加されていたら起動可能です。
実はいうとここから、HDDにHuman68kをインストールしてHDDからシステム起動したかったんですが何回やっても”Human.sys が 見つかりません”とでて観念してしまいました。XM6だとうまくいくのに…
lr-px68kのキー割り当て
- F11 : HELP
- 半角/全角 : @
- @ : [
- [ : ]
- ] : ¥
- 英数 : CAPS
- 左Alt : OPT.1
- 右Alt : OPT.2
- Pause : BREAK
- End : UNDO
- Num Lock : CLR
- F12 : lr-px68kメニューのON/OFF。上下左右で選択、Zキー決定、Xでキャンセル
- HOTKEY+START : 終了
- HOTKEY+B : リセット
- HOTKEY+X : QUICK MENUのON/OFF
ケース組み立て
これがないと締まらないでしょう。やりますか…
買ったのはXVIモデルなので初めから黒いです。
説明書どおりに組み立てればすぐ完成しますが、プラモデル制作経験が年齢に伴っていないとデカール貼りで苦戦します。①のデカールはストック3つあったけど2つちぎって3つ目は曲がったまま貼ってしまった…
あとやりたいこと
今回はRetroPie使いましたが、X68k専用機としては機能過多なためRaspbian Buster Liteをつかってpx68kのみ起動できる環境にしたいですね。
あと、px68kには WindrvXMみたいに、ラズパイ側のファイルシステムに直接アクセスできるようなやつがないか調べないといけないです。これがあると母艦PCからSambaかSSH経由でアセンブル書いて即実行みたいなことができるので…
んで肝心のHuman68k上でアセンブルしたりするとこまでやりたかったのですが、HDDからシステム起動ができてないためまた今度試してできたら手順記載させていただこうと思います。
おわい