RetroPie で ONScripter の一括登録
GPiCASE の RetroPie に ONScripter のゲームをコピーしました。結構ありましたが作業的には機械的な作業なので、SHELL スクリプトで一括登録できるようにしました。
登録する名前とかは、ディレクトリ名で登録することにすれば、作業内容はほとんど一緒になります。
以下のような 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
~/RetroPie/roms/ports にあるディレクトリを対象に、ゲームデータがあれば登録して、無ければ再帰的に辿ります。既に起動用の .sh ファイルがあれば登録済みとしてスキップします。
GPiCASE にコピーした ONSCripter のゲームを一気に登録することができました。
起動コマンドや、ファイルのチェックを変えれば、ONScripter 以外でも使えると思いますが、今の所、一気に登録したいゲームデータがあるのは ONScripter だけです。
また、起動コマンドが sudo /usr/local/bin/onscripter になっているのは、アクセス権の関係か pi ユーザでは起動できなかったので、sudo コマンドを通して ONScripter を起動しています。

ディスカッション
コメント一覧
まだ、コメントがありません