読者です 読者をやめる 読者になる 読者になる

ど~もeagle0wlです(再)

140文字では収まらないネタを記録するブログ

Raspberry Pi 2B に RetroPie 4.0 を導入する その4 (2/4) X68000

f:id:eagle0wl:20160905011012p:plain

その2:X68000(px68k)の場合

シャープのX68000エミュレータpx68kは、RetroPieでは実験用(EXPERIMENTAL)という位置づけである。残念ながら、動作がとても遅いためゲームは遊べない

px68kをインストールする

RetroPieメニューからRetroPie Setupを選択するか、以下のコマンドを打つ。

$ sudo ~/RetroPie-Setup/retropie_setup.sh

RetroPie-Setup Scriptが起動するので、[Manage package] [Manage experimental packages] [px68k] [Install from source] と選択するとpx68kがインストールされる。

BIOSを配置する

インストール後、ホームディレクトリにシンボリックリンクが追加されていることが確認できる。

$ cd ~
$ ls -la
...
lrwxrwxrwx 1 pi   pi     28  9月  1 00:37 .keropi -> /opt/retropie/configs/x68000
...

/opt/retropie/configs/x68000 には何が入っているのかというと、エミュレータの動作に必要なBIOS ROMファイルのシンボリックリンクである。

$ ls -l .keropi/
合計 4
lrwxrwxrwx 1 root root 32  9月  1 00:37 cgrom.dat -> /home/pi/RetroPie/BIOS/cgrom.dat
-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
$

これに合わせる形で、/home/pi/RetroPie/BIOS/ フォルダに以下のファイルを配置する。ファイル名は小文字。OSやBIOS ROMファイルは公式に無償公開されているのでネットから入手可能。

BIOS ROMファイル:iplrom.dat、iplrom30.dat、iplromco.dat、iplromxv.dat
IPL-ROM - 無償公開されたシャープのソフトウェア - ソフトウェアライブラリ - X68000 LIBRARY

フォントイメージ:cgrom.dat (cgrom.tmpをリネームしても良い)
→実機から吸い出すか、WinX68k高速版を使って代替フォントイメージcgrom.tmpを生成しリネームするか、念写する

ROMを配置する

ROMイメージは以下に配置する。

/home/pi/RetroPie/roms/x68000

今回は『超連射68k』(CH68_101.2HD)と、これの起動に必須となる『Human68k』システムディスク(HUMAN302.XDF)を配置した。
CHO_REN_SHA 68K
Human68k version 3.02 のシステムディスク - 無償公開されたシャープのソフトウェア - ソフトウェアライブラリ - X68000 LIBRARY

EmulationStationで再起動するとメニューが…恐らく出ないはずである。読み込み対象となる拡張子が .dim, .DIM だけしか設定されていないためである。px68kはもっと多くの拡張子に対応しているので、EmulationStationの設定ファイルを編集してこれを増やす。

$ sudo nano /etc/emulationstation/es_systems.cfg

extensionタグの要素が.dim, .DIM だけになっているはずなので追記する。

  ...
  <system>
    <name>x68000</name>
    <fullname>X68000</fullname>
    <path>/home/pi/RetroPie/roms/x68000</path>
    <extension>.dim .DIM .d88 .D88 .88d .88D .hdm .HDM .dup .DUP .2hd .2HD .xdf .XDF .img .IMG .hdf .HDF</extension>
    <command>/opt/retropie/supplementary/runcommand/runcommand.sh 0 _SYS_ x68000 %ROM%</command>
    <platform>x68000</platform>
    <theme>x68000</theme>
  </system>
  ...

EmulationStationを再起動すると、メインメニューにX68000が現れるはずである。
f:id:eagle0wl:20160905010336p:plain
f:id:eagle0wl:20160905010356p:plain
f:id:eagle0wl:20160905010425p:plain

ただし、デフォルトテーマのcarbonはX68000用のデータが無いため、専用ロゴのない簡素なものになっている。これはあとからゴージャスにする。

いきなり『超連射68k』を選んでも、デフォルトでは割り当てメモリが1MBしかないので、Human68Kは立ち上がるがゲームが起動しない状況に遭遇する。割り当て変更のため、まずはHuman68Kシステムディスクを起動する。

switchコマンドを入力してSRAMの設定を行う。
f:id:eagle0wl:20160905010559p:plain

A>switch

MEMORY→12288KBを選んでメニューを抜ける。
f:id:eagle0wl:20160905010624p:plain

F12キーを押してSYSTEM→QUITを選択するとエミュを終了できる。これで『超連射68k』を起動できるようになった。
f:id:eagle0wl:20160905010656p:plain
f:id:eagle0wl:20160905010705p:plain

しかしながら、とても動作が重く(2-4fpsぐらい?)ゲームにならないのが残念。RPi2Bで試しているが、RPi3Bでもあまり変わらないように思う。

carbonテーマにX68000を追加する

※2016/12/13追記 以下のエントリの「carbonの修正」に記載されている通りにカスタムテーマ『carbon-mod』を導入すると、この作業は省略できる。
eagle0wl.hatenadiary.jp

とりあえず動作確認はできたので、EmulationStationの簡素な表示をどうにかする。詳細はWikiに譲るとして、デフォルトテーマのcarbonがX68000に対応していないので、ありあわせで補完する。

$ cd /etc/emulationstation/themes/
$ ls
carbon  simple-dark  simplebigart
$

テーマを追加でインストールしている場合はcarbon以外にもフォルダがあるが、無視してcarbonに直行。

$ cd /etc/emulationstation/themes/carbon/
$ ls
3do         atari800      daphne        gbc            mess      oric        retropie   supergrafx  wonderswan
ags         atarijaguar   desktop       gc             misc      pc          samcoupe   tg-cd       wonderswancolor
amiga       atarilynx     dragon32      genesis        msx       pce-cd      saturn     tg16        zmachine
amstradcpc  atarist       dreamcast     intellivision  n64       pcengine    scummvm    theme.xml   zxspectrum
apple2      bbcmicro      fba           kodi           nds       ports       sega32x    ti99
arcade      c64           fds           love           neogeo    ps2         segacd     trs80
art         carbon.xml    gameandwatch  macintosh      nes       psp         sg-1000    vectrex
atari2600   channelf      gamegear      mame           ngp       psx         snes       videopac
atari5200   coco          gb            mastersystem   ngpc      readme.txt  steam      virtualboy
atari7800   colecovision  gba           megadrive      odyssey2  residualvm  stratagus  wii
$

機種ごとにフォルダが分けられているが、ファイル構造はほぼ同じである。nesフォルダを例に挙げる。

$ find /etc/emulationstation/themes/carbon/nes/
/etc/emulationstation/themes/carbon/nes/
/etc/emulationstation/themes/carbon/nes/art
/etc/emulationstation/themes/carbon/nes/art/system.svg
/etc/emulationstation/themes/carbon/nes/art/system2.svg
/etc/emulationstation/themes/carbon/nes/art/controller.svg
/etc/emulationstation/themes/carbon/nes/theme.xml

f:id:eagle0wl:20160905010848p:plain

nesフォルダをベースに画像だけを差し替えたい。

nesフォルダ以下をコピーしてx68000のベースとする。

$ cd /etc/emulationstation/themes/carbon/
$ sudo cp -r nes x68000

このような差し替え画像を用意した。
f:id:eagle0wl:20160905010941p:plain

X68000のロゴは、白抜きと黒抜きの2種類用意している。コントローラの画像はテンキーをイメージして自作してみた。X68000のロゴについてはggrと出てくる。SVG形式の画像編集はInkscapeが便利である。

FileZillaで/tmp/artにアップロードしてからコピーする。

$ cd x68000
$ sudo mv art art.old
$ sudo mv /tmp/art art

theme.xmlを少しだけ編集する。

$ sudo nano theme.xml

該当箇所のファイル名を変更(黒抜きのsystem.svg→白抜きのsystem2.svg)する。

...
       <view name="basic, detailed">

                <image name="logo">
                        <path>./art/system2.svg</path>
                        <pos>0.266 0.074</pos>
                        <maxSize>0.460 0.126</maxSize>
                        <origin>0.5 0.5</origin>
                </image>
...

再起動すると、X68000のロゴが表示されてカッコ良くなった。
f:id:eagle0wl:20160905011012p:plain
f:id:eagle0wl:20160905011022p:plain

これでX68000対応を終わりにしたい。

余談ではあるが、carbonテーマに限らずメインメニューに表示されるゲーム機のロゴの大半は海外版である。愛着のある方は、各フォルダのsystem.svgを日本版のロゴに替えてみると面白い。

次回は、RetroPie Setupでサポートされていないエミュレータソースコードの取得からインストールしてみる。