Raspberry Pi 2B に RetroPie 4.0 を導入する その4 (3/4) PC-8801
2017/05/23追記 RetroPie 4.2より、実験用(EXPERIMENTAL)という位置づけで、RetroPie-Setup ScriptからQUASI88をインストールできるようになりました。以下の作業は行う必要はありませんが、参考のために残します。
その3:PC-8801(QUASI88)の場合
Raspberry Pi上でも動作するPC-8801エミュレータ『QUASI88』はRetroPie Setupにはリストアップされていないため、ソースの取得からEmulationStationへの追加までを自力で行う必要がある。
QUASI88 - PC-8801 Emulator for UNIX/X11+SDL -
QUASI88をインストールする
まずはmakeするために必要なパッケージをapt-getする。
$ cd ~/Dev $ sudo apt-get update $ sudo apt-get upgrade $ sudo apt-get install gcc g++ make libsdl-mixer1.2 libsdl-mixer1.2-dev libsdl1.2-dev
QUASI88のソースをwgetして展開する。
$ wget http://www.eonet.ne.jp/~showtime/quasi88/release/quasi88-0.6.4.tgz $ tar zxf quasi88-0.6.4.tgz $ cd quasi88-0.6.4
エミュレータ本体は/opt/retropie/emulators/に置かれているので、QUASI88もこれに倣って配置したい。
$ ls /opt/retropie/emulators/ mame4all mupen64plus openmsx pifba px68k retroarch
Makefileを編集する
Makefileを編集する。EUC-JPな日本語がコメントに入っているので、nano以外のエディタを使うなどすること。
19行目から、SDL_VERSIONのみ有効にする。
# X11_VERSION = 1 SDL_VERSION = 1 # GTK_VERSION = 1
「基本設定」の35行目から、ディレクトリ設定を3箇所修正。
ROMDIR = /home/pi/RetroPie/BIOS/quasi88 ... DISKDIR = /home/pi/RetroPie/roms/pc88 ... TAPEDIR = /home/pi/RetroPie/roms/pc88
「サウンド関連の設定」の191行目から、FreeBSDをコメントアウトしてLinuxに切り替える。
#---------------------- FreeBSD # ARCH = freebsd #---------------------- Linux ARCH = linux
# SOUND_ARTS_SMOTEK = 1
SOUND_SDL = 1
# SOUND_WAVEOUT = 1
237行目も有効にする。
USE_OLD_MAME_SOUND = 1
「インストールの設定」の370行目を修正。
BINDIR = /opt/retropie/emulators/quasi88
515行目を修正。
# SDLバージョンでの設定 CFLAGS += -Isrc/FUNIX -Isrc/SDL `$(SDL_CONFIG) --cflags` LIBS += -lm `$(SDL_CONFIG) --libs`
以上でMakefileの修正は終了。
make/make installする
インストール先のフォルダをあらかじめ作成してからmake/make installしよう。
$ sudo mkdir /opt/retropie/emulators/quasi88 $ sudo make $ sudo make install
make/make installが無事に動けば、以下に実行ファイルが置かれているはずである。
$ ls -l /opt/retropie/emulators/quasi88/quasi88.sdl -rwxr-xr-x 1 root root 1359544 9月 2 23:36 /opt/retropie/emulators/quasi88/quasi88.sdl
BIOSを配置する
QUASI88で必要なROMイメージファイル一覧を参考にして、実機から吸い出すか念写して以下のフォルダに配置する。
/home/pi/RetroPie/BIOS/quasi88
BIOSフォルダ直下ではなくquasi88フォルダを作成しているのは、FONT.ROMの名称が他のエミュ用のそれと被る恐れがあるため。
ディスク(orテープ)イメージを配置する
ディスクイメージは以下に配置する。
/home/pi/RetroPie/roms/pc88
今回は動作確認のために、ボーステックの商業ゲーム『ザ・スキーム』の作曲者(古代祐三)とプログラマ(おにたま)が自ら二次創作している同人ソフト『ワンダラーズ・フロム・スーパースキーム』を使用した。
PC8801 soft page (ONION software)
ディスクイメージ(sscheme.d88)設置後、EmulationStationを終了(再起動ではない)してシェルに移動する。ターミナル(SSH)からは起動できないので、Raspberry Pi本体に挿したキーボードから以下のコマンドを入力する。
$ /opt/retropie/emulators/quasi88/quasi88.sdl ~/RetroPie/roms/pc88/sscheme.d88
上手くいけばタイトル画面が表示され、FM音源の音楽が流れるはずである。
F12キーを押すと設定画面が表示されるので、さらにF12キーを2回押すと終了できる。
QUASI88をEmulationStationに追加する
前回イントールしたpx68kは、実験用とはいえEmulationStationから直接起動できるところまでセットアップしてくれた。今回は、EmulationStationにQUASI88を手動で追加する。
ここからはターミナルから操作する。
テーマを追加する
※2016/12/13追記 以下のエントリの「carbonの修正」に記載されている通りにカスタムテーマ『carbon-mod』を導入すると、この作業は省略できる。
eagle0wl.hatenadiary.jp
前回(px68k)の時と同じ方法で、carbonテーマをPC-8801対応にする。
前回作成したx68000フォルダ以下をコピーしてpc88のベースとする。
$ cd /etc/emulationstation/themes/carbon/ $ sudo cp -r x68000 pc88
このような画像を用意した。前回と同様に、PC-8801のロゴは白抜きと黒抜きの2種類用意している。
この画像は、GALAPAGOS STOREから入手できる高解像度のカタログ画像を加工してベクター画像にした。Inkscapeのトレース機能を使うと、ロゴのような単色のビットマップ画像は容易にベクター化できるので便利である。
galapagosstore.com
テーマの編集方法は前回と同じなので省略する。
es_systems.cfgにpc88を追加する
続いて、メインメニューからPC-8801を選択できるようにするため、es_systems.cfgを編集する。
$ sudo nano /etc/emulationstation/es_systems.cfg
様々な機種が定義されているが、以下の記述を追記する。
<system> <name>ngpc</name> <fullname>Neo Geo Pocket (Color)</fullname> <path>/home/pi/RetroPie/roms/ngpc</path> <extension>.ngc .zip .NGC .ZIP</extension> <command>/opt/retropie/supplementary/runcommand/runcommand.sh 0 _SYS_ ngpc %ROM%</command> <platform>ngpc</platform> <theme>ngpc</theme> </system> <system> <name>pc88</name> <fullname>PC-88</fullname> <path>/home/pi/RetroPie/roms/pc88</path> <extension>.d88 .D88</extension> <command>/opt/retropie/supplementary/runcommand/runcommand.sh 0 _SYS_ pc88 %ROM%</command> <platform>pc88</platform> <theme>pc88</theme> <directlaunch/> </system> <system> <name>pcengine</name> <fullname>TurboGrafx 16 (PC Engine)</fullname> <path>/home/pi/RetroPie/roms/pcengine</path> <extension>.pce .ccd .cue .zip .PCE .CCD .CUE .ZIP</extension> <command>/opt/retropie/supplementary/runcommand/runcommand.sh 0 _SYS_ pcengine %ROM%</command> <platform>pcengine</platform> <theme>pcengine</theme> </system>
emulators.cfgを追加する
これでメインメニューにPC-8801が表示されるようになったが、まだEmulationStationにQUASI88の実行ファイルの在り処を教えていないので起動はできない。最後の仕上げに入る。
/opt/retropie/configs/ 以下に機種ごとの設定がある。
$ cd /opt/retropie/configs/ $ ls all atari7800 fds gbc megadrive nes ports segacd wonderswan amstradcpc atarilynx gamegear mame-libretro msx ngp psp sg-1000 wonderswancolor arcade dreamcast gb mame-mame4all n64 ngpc psx snes x68000 atari2600 fba gba mastersystem neogeo pcengine sega32x vectrex zxspectrum
例によってnesとx68000の両フォルダを参考にしてみる。
$ ls -la nes 合計 20 drwxr-xr-x 2 pi pi 4096 8月 31 00:23 . drwxr-xr-x 38 pi pi 4096 9月 1 00:37 .. -rw-r--r-- 1 pi pi 3047 8月 31 00:23 content_history.lpl -rw-r--r-- 1 pi pi 382 8月 27 07:03 emulators.cfg -rw------- 1 pi pi 221 8月 31 00:23 retroarch.cfg
content_history.lpl は動作ログなので見る必要はない。retroarch.cfgは、lr-で始まるパッケージ(lr-fceummなど)に共通して見られる設定ファイル。emulators.cfgが超重要である。
$ ls -la x68000 合計 32 drwxr-xr-x 2 pi pi 4096 9月 4 18:33 . drwxr-xr-x 38 pi pi 4096 9月 1 00:37 .. lrwxrwxrwx 1 root root 32 9月 1 00:37 cgrom.dat -> /home/pi/RetroPie/BIOS/cgrom.dat -rw-r--r-- 1 pi pi 1172 9月 4 19:11 config -rw-r--r-- 1 pi pi 70 9月 1 00:37 emulators.cfg lrwxrwxrwx 1 root root 33 9月 1 00:37 iplrom.dat -> /home/pi/RetroPie/BIOS/iplrom.dat lrwxrwxrwx 1 root root 35 9月 1 00:37 iplromco.dat -> /home/pi/RetroPie/BIOS/iplromco.dat lrwxrwxrwx 1 root root 35 9月 1 00:37 iplromxv.dat -> /home/pi/RetroPie/BIOS/iplromxv.dat lrwxrwxrwx 1 root root 34 9月 1 00:37 plrom30.dat -> /home/pi/RetroPie/BIOS/plrom30.dat -rw-r--r-- 1 pi pi 16384 9月 4 19:11 sram.dat
こうして見比べると分かる通り、emulators.cfg以外はエミュレータ固有の設定ファイルであることが理解できるはず。
emulators.cfgをのぞき見てみよう。まずnesから。
$ cat nes/emulators.cfg lr-fceumm = "/opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-fceumm/fceumm_libretro.so --config /opt/retropie/configs/nes/retroarch.cfg %ROM%" default = "lr-fceumm" lr-nestopia = "/opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-nestopia/nestopia_libretro.so --config /opt/retropie/configs/nes/retroarch.cfg %ROM%"
2種類のエミュレータ、lr-fceumm(FCEUX)、lr-nestopia(Nestopia)の設定が見える。default = "lr-fceumm" から、変数名defaultに起動パスを指定する必要がありそうだ。
続いてx68000。
$ cat x68000/emulators.cfg px68k = "/opt/retropie/emulators/px68k/px68k %ROM%" default = "px68k"
非常にシンプルである。これを真似すれば良さそうである。
それではEmulationStationのPC-8801エミュとして、QUASI88を起動するための設定を書く。
$ cd /opt/retropie/configs/ $ sudo mkdir pc88 $ sudo nano pc88/emulators.cfg
quasi88 = "/opt/retropie/emulators/quasi88/quasi88.sdl %ROM%" default = "quasi88"
正しく記述して再起動すれば、EmulationStationに追加されたPC-8801からQUASI88が起動し、ゲームタイトルが立ち上がるはずである。これで終了である。
参考
本エントリを書くにあたり、以下のサイトを参考にした。
PC-88 emulation on Raspberry Pi | computerwelt
QUASI88 ビルドのメモ - Tako can fry!