ど~もeagle0wlです(再)

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

RetroPie 4.3 を少し見回してEmulationStationを日本語対応させた

最新版のEmulationStationを日本語対応させた

既存のEmulationStationは2バイト文字を一切考慮しないワードラップなので、簡易的に実装したことがある。
eagle0wl.hatenadiary.jp

本ブログのコメントで最新版が出ていると教えてもらったので、GitHubをチェックして差分を取ってみたが自分が書いたコード以外に変更点はなかった。もう一度よく見てみたら、なんと大本のバージョンをベースにしていたのであった。

つまり、オリジナルのEmulationStation(Aloshi版)があって、私はこれをベースにして変更を加えていた。Aloshi版は2年以上更新されていない。一方で、このAloshi版をforkしたEmulationStation(RetroPie版)は随時更新され続けている。私はAloshi版ばかり見ており、このRetroPie版をずーっと見落としていたのであった。やられた!

だって、RetroPieのリンク先、emulationstation.orgを見ると、Aloshi版でビルドしているんですよ。でもRetroPieのwikiを見るとAloshi版をベースに云々という記載があった。まあ当然か…。
www.emulationstation.org

ということで、最新版のEmulationStationに日本語対応の折り返し処理を実装した。ただし日本語固有の禁則処理は未実装、ラベル("Publisher:", "Developer:", "Released:" など)も日本語にはしていない。pull requestしたいので、折り返し処理のmore better版のみにして、ローカライズは今は行わないことにした。

日本語対応版EmulationStationに差し替える

f:id:eagle0wl:20171024001359p:plain
以下の作業は、メニューから "QUIT EMULATIONSTATION" を選択して、EmulationStationを終了させてコンソールが表示されていることを確認してから行うこと。
バイナリ版を直接ダウンロードする方法と、ソースからビルドする方法を用意した。どちらか好きな方を選んでほしい。

バイナリ版を直接ダウンロードする

単に使いたい場合はこちらの手順を推奨(Raspberry Pi専用)。

wgetでバイナリを直接ダウンロードする。

$ cd ~/
$ wget https://github.com/eagle0wl/EmulationStation/releases/download/v2.6.2-mod/emulationstation

元のEmulationStationをリネームしてビルドした版に置き換える。

$ sudo mv /usr/bin/emulationstation /usr/bin/emulationstation.master
$ sudo mv emulationstation /usr/bin/

再起動する。

$ sudo reboot


※元のEmulationStationに戻したい場合は以下の処理を行う。

$ sudo rm /usr/bin/emulationstation
$ sudo mv /usr/bin/emulationstation.master /usr/bin/emulationstation

ソースからビルドする

ビルドのための下準備
$ sudo nano /boot/config.txt
gpu_mem=32

この1行を置き換えるか追記する。これを怠ると "out of memory" が出てEmulationStationのビルドに失敗する場合があるが、RPi2Bではこの追記を行わなくてもビルドできた。

ビルドに必要なライブラリをapt-getする。RetroPieのイメージを使った場合、最初から全部入っているはずなので新規インストールは発生しない(と思う)が、一応やっておく。

$ sudo apt-get install -y libudev-dev libasound2-dev libdbus-1-dev libraspberrypi0 libraspberrypi-bin libraspberrypi-dev
$ sudo apt-get install -y libboost-system-dev libboost-filesystem-dev libboost-date-time-dev libboost-locale-dev libfreeimage-dev libfreetype6-dev libeigen3-dev libcurl4-openssl-dev libasound2-dev cmake g++-4.7

作業用フォルダを作ってからgit cloneする。

$ cd ~/
$ mkdir Dev
$ cd Dev
$ git clone https://github.com/eagle0wl/EmulationStation.git
$ cd EmulationStation
$ git submodule update --init
(中略)
Submodule path 'external/pugixml': checked out 'd2deb420bc70369faa12785df2b5dd4d390e523d'
$ sudo cmake .

EmulationStationのビルドを行う。RPi2Bでは1時間かかった。

$ sudo make
(中略)
[100%] Built target emulationstation

ビルドに成功すると上記のメッセージが出る。

EmulationStationのバイナリが生成されたので、元のEmulationStationをリネームしてビルドした版をコピーする。

$ sudo mv /usr/bin/emulationstation /usr/bin/emulationstation.master
$ sudo cp emulationstation /usr/bin/

再起動する。

$ sudo reboot


※元のEmulationStationに戻したい場合は以下の処理を行う。

$ sudo rm /usr/bin/emulationstation
$ sudo mv /usr/bin/emulationstation.master /usr/bin/emulationstation

比較画像

carbon

デフォルトテーマ。

before

f:id:eagle0wl:20171024002629p:plain
f:id:eagle0wl:20171024002646p:plain

after

f:id:eagle0wl:20171024002709p:plain
f:id:eagle0wl:20171024002727p:plain

carbon-mod

github.com

before

f:id:eagle0wl:20171024002740p:plain
f:id:eagle0wl:20171024002753p:plain

after

f:id:eagle0wl:20171024002815p:plain
f:id:eagle0wl:20171024002829p:plain

既知の問題

carbon-mod のパス指定ミスを発見した。後で直す。

他にももう少し見直す必要がありそうだ。ひとまずこんな所で。