はじめに
このページの内容及び、ダウンロードしたものは無保証です。一切の責任を作成者は負いません。自己責任で利用してください。また、サポートも一切行いません。as is でお願いします。
GPiCASE

RetroPie で ONScripter が動くということを知り、GPiCASE で動かしてみました。
動くことは動くのですが、GPiCASE のパッドで操作することはできませんでした。bluetooth でキーボードやマウスをつなげれば使えると思いますが、せっかくパッドがついているので、GPiCASE だけで完結させたいと思いました。
パッケージソース
Raspberry Pi OS には、ONScripter のパッケージがあります。それを利用して GPiCASE を使えるようにします。
ソースリポジトリを追加
まず、パッケージのソースをダウンロードできるように設定します。/etc/apt/sources.list で deb-src のコメントを外すだけです。次のような内容になります。
deb http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi # Uncomment line below then 'apt-get update' to enable 'apt-get source' deb-src http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi
apt-src のインストール
パッケージをコンパイルするために、apt-src をインストールします。
$ sudo apt-get update -y ・ ・ $ sudo apt-get install -y apt-src ・ ・
ソースを取得し、コンパイルする
作業用のディレクトリを作成して、ソースを取得します。以降、このディレクトリで作業します。
$ mkdir work $ cd work $ apt-src install onscripter ・ ・
onscripter のコンパイルに必要なものをインストールします。
$ sudo apt-get build-dep onscripter ・ ・
コンパイルします。
$ apt-src build onscripter ・ ・
onscripter-20181218 の下に onscripter ができているはずです。
パッチ
パッチのダウンロード
当サイトからパッチをダウンロードします。
$ wget -O onscripter-20181218-GPiCASE-220201.zip "https://sirius10.net/Download/download.php?download=onscripter-20181218-GPiCASE-220201.zip" ・ ・
パッチを当てる
パッチを当てます。
$ cd onscripter-20181218 $ zip -p ../onscripter-20181218-GPiCASE-220201.zip | patch -p1 ・ ・ $ cd ..
rules ファイルを書き換える(GPi CASE 2 のみ)
GPi CASE 2 では、画面の解像度を取得できないので強制的に 640x480 にします。以下のように rules ファイル(onscripter-20181218/debian/rules) に PDA_WIDTH=640 を追加します。
CONFDEFS := -DLINUX -DGPICASE -DUSE_CDROM -DPDA_WIDTH=640
コンパイルする
コンパイルします。
$ apt-src build onscripter ・ ・
インストール
/usr/local/bin にインストールします。また、avi 再生に mplayer が必要なのでそれもインストールします。
$ sudo install -s onscripter-20181218/onscripter /usr/local/bin $ sudo apt-get install -y mplayer ・ ・
パッチの内容
- GPiCASE(2) のパッドを使えるようにする
GPiCASE のパッドが使えるように joystick の処理を追加しました。一部のゲームでは、マウス操作前提になっているので、十字キーは、マウスポインタの移動を、A ボタンはマウスの左ボタンクリック、B ボタンはマウスの右ボタンクリックをシミュレートするように修正しました。
X ボタンで次の選択肢、Y ボタンで前の選択肢へ移動します。start ボタンが終了です。 - 文字サイズの調整
GPiCASE の画面は小さいので、文字が小さくて読めないものがありました。文字サイズがデフォルトより小さい場合は、フォントサイズを大きくして、表示位置も調整するように修正しました。あまり大きくするとはみ出してしまうので、読めるギリギリのサイズにしましたが、それでもはみ出す場合があるかも知れません。 - avi再生
mplayer を使って、動画を再生するようにしました。ただし、Pi Zero では、再生する毎に、待ちが入ってしまいます。しばらく待ってみてください。動画があるスクリプトを動かす時は、mplayer をインストールしてください。
ゲームリストへ登録
RetroPie が使っている Emulationstation を設定し、ゲームリストにゲームを登録します
ports を有効にする
kodi や他の ports をインストール済みなら、以下の修正は必要ありません。
/etc/emulationstation/es_systems.cfg を編集して、ports のエントリを作成します。
$ sudo vi /etc/emulationstation/es_systems.cfg
次の内容がなければ追加します。
<system> <name>ports</name> <fullname>Ports</fullname> <path>/home/pi/RetroPie/roms/ports</path> <extension>.sh .SH</extension> <command>bash %ROM%</command> <platform>pc</platform> <theme>ports</theme> </system>
ゲームデータのコピー
ゲームデータを ~/RetroPie/roms/ports へコピーします。もし、ports ディレクトリがなければ作成してください。
ports の下に、ゲーム毎にディレクトリを作成します。例えば、ひとかた フリー版 であれば、ports 下にディレクトリを作成し、zip を解凍すればいいです。以下のようになります。
$ cd ~/RetroPie/roms $ mkdir ports $ cd ports $ mkdir hitokata $ cd hitokata $ unzip ~/Download/hitokata.zip
実行用の SHELL スクリプトの作成
起動用の SHELL スクリプトを作成します。今回は、ports の下に作成しましたが、ports のサブディレクトリに作成しても大丈夫です。必ず、拡張子 .sh を付けます。
$ vi ~/RetroPie/roms/ports/ひとかた.sh
内容は次のようになります。
#!/bin/bash "/opt/retropie/supplementary/runcommand/runcommand.sh" 0 _PORT_ "ひとかた" ""
Emulationstation の設定
/opt/retropie/configs/ports に起動用の設定をしていきます。ゲーム毎にディレクトリを作成します。
$ cd /opt/retropie/configs/ports $ mkdir ひとかた $ cd ひとかた $ vi emulators.cfg
emulators.cfg の内容は次のようにします。
ひとかた = "pushd /home/pi/RetroPie/roms/ports/hitokata; sudo /usr/local/bin/onscripter; popd" default = "ひとかた"
これで Emulationstation を再起動すればゲームリストに表示され、起動できると思います。
ports のゲームリスト
ひとかたのタイトル画面
ひとかたのゲーム画面
一括登録する Shell スクリプト
ONScripter のゲームが多かったので、一括で登録する SHELL スクリプトを作成しました。~/RetroPie/roms/ports にゲームをコピーした状態で実行します。ゲーム名は、ゲームがあるディレクトリ名を使います。
~/RetroPie/roms/ports にあるディレクトリを対象に、ゲームデータがあれば登録して、無ければ再帰的に辿ります。既に起動用の .sh ファイルがあれば登録済みとしてスキップします。次の内容の SHELL スクリプトです。
#!/bin/bash exec="sudo /usr/local/bin/onscripter" em_dir="/opt/retropie/configs/ports" add_ports() { cmd=$1 dir=$2 base=${PWD} echo "make ${base}/${cmd}" echo "#!/bin/bash" > "${cmd}" echo "" >> "${cmd}" echo "\"/opt/retropie/supplementary/runcommand/runcommand.sh\" 0 _PORT_ \"${dir}\" \"\"" >> "${cmd}" if [ ! -d "${em_dir}/${dir}" ]; then mkdir "${em_dir}/${dir}" fi title=$(echo "${dir}" | tr " " "_") edir=$(echo "${dir}" | sed -e 's/ /\\ /g' -e 's/(/\\(/g' -e 's/)/\\)/g') echo "make ${em_dir}/${dir}/emulators.cfg" echo "${title} = \"pushd ${base}/${edir}; ${exec}; popd\"" > "${em_dir}/${dir}/emulators.cfg" echo "default = \"${title}\"" >> "${em_dir}/${dir}/emulators.cfg" } search_dir() { for dir in * do if [ -d "${dir}" ]; then if [ -f "${dir}/arc.nsa" -o -f "${dir}/arc.sar" -o -f "${dir}/0.txt" -o -f "${dir}/nscript.dat" ]; then cmd="${dir}.sh" if [ ! -f "${cmd}" ]; then add_ports "${cmd}" "${dir}" fi else cd "${dir}" search_dir cd .. fi fi done } cd ~/RetroPie/roms/ports search_dir
ゲームをコピーしたら、このスクリプトを実行すれば登録されます。
パッド操作
GPiCASE のパッド操作は、以下のようになります。
- 十字キー:マウスポインタの移動
- A ボタン:マウスの左クリック(決定)
- B ボタン:マウスの右クリック(取り消し)
- X ボタン:次の選択肢
- Y ボタン:前の選択肢
- start ボタン:終了
- select ボタン:メッセージスキップ
免責
このパッチを使ったことによる一切の責任を sirius は負いません。使用は自己責任でお願いします。
著作権
本パッチの著作権は sirius(https://sirius10.net) にありますが、本パッチの著作権は主張いたしません。
保証
無保証です。
更新履歴
- 22/02/01 GPi CASE 2 対応
- 21/10/13 十字キーを押したままでマウスカーソルを連続して移動できるように修正し、パッチを更新
- 21/09/21 フォントサイズ関連を修正し、パッチを更新
- 21/09/18 一括登録の項目を追加
- 21/09/15 公開
ゲームは、ほとんどスムーズに動きます。一部のゲームで音声ファイルの形式が悪いのか音がもたつくものがありました。電池を確保できれば、携帯ゲーム機としてそこそこ使えるんじゃないかと思います。
GPi CASE 2 は、PC98 もスムーズに動きます。ONScripter で avi 再生もスムーズに再生できます。