続々・ONScripterの起動アイコン

前回作ったのは色々勘違いしてたので作り直し。
http://www.areanine.gr.jp/~nyano/archives/slzaurus/onscripter-auto_0.0.2_arm.ipk

そんな訳で、以下のような仕様に修正。

onscripter-auto 0.0.2の仕様

ONScripterで起動可能なゲームデータおよびTrueTypeフォントを自動的に検索してゲームを起動する。
既にONScripterが起動していた場合は何もせずに、現在実行中のONScripterに画面を切り替えます。
ONScripter自体のアイコンも用意しているので、ONScripterを他のアイコンやターミナルから起動した場合もタスクバーにアイコンが表示され、タスク切り替えが可能。また、切り替え時にQVGAに切り替わって画面が乱れることもない。これはKeyHelper AppletのTaskSelectorを使った場合も同様。
ゲームデータが複数ある場合はCFカード、SDカード、本体メモリーの順に探して起動するので、SDカードや本体メモリーのゲームを起動させたい場合はCFカードやSDカードを抜いておけば良い。1つのメディアに複数のゲームが入っている場合は、最初に見つかったものしか起動させられないので注意。

  • NScripterのゲームデータ“nscript.dat”または“0.txt”を、CFカード“/mnt/cf”、SDカード“/mnt/card”、本体メモリー(または本体ディスク)“~/Documents”の順番に検索する。検索時、大文字、小文字は区別しない。
  • ONScripterが読めない“0.TXT”などの大文字を含むファイル名*1は“0.txt”でシンボリックリンクを張ることで読み込み可能としている。ただし、VFATフォーマット上であればシンボリックリンクを張らなくても読み込めるので問題ない。ちなみに“arc.nsa”など、他のファイルの大文字、小文字の問題でゲームが動作しない場合は、別途ファイル名を変更する必要がある。
  • TrueTypeフォントは“default.ttf”でなくても、拡張子が“ttf”または“ttc”のファイルをゲームデータが見つかったフォルダから探す。見つからなければ、CFカード、SDカード、本体メモリーの順番で検索する。検索時、大文字、小文字は区別しない。尚、日本語を含むファイル名はONScripterが認識できない*2ので、存在する場合は予め英数字のみのファイル名に変更する必要がある。

見つけたゲームデータのファイル名からフォルダ名を抽出するために、変数の値から、パターンに右から最小マッチしたものを取り去ったものを返す「${NAME%/*}」って記述を使っている。
http://deb.dip.jp/~nao/d/?200405b&to=200405162#200405162
この方法は以前 xmame や dgen の Z Emu FrontEnd Ex 用シェルスクリプトを作った時にも使った便利なテク。

*1:泡沫(うたかた)など

*2:みかちゃんフォントなど