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 を起動しています。
ディスカッション
コメント一覧
まだ、コメントがありません