はじめに:
Android11はファイルのアクセス方法に変更が入ったらしく、Android上のエミュアプリから直接外部ストレージ上のROMファイルが読み込めないアプリがある。解決方法としてDIGというエミュレータのランチャーを使う手もあるのだが、僕はランチャー使うのはあまり好きでない。という事で、少し調べてみた結果、Android11+RetroArchだけでも、なんとか外部ストレージ上のROMを読み込めるようになったので紹介する。
ランチャーアプリDIGを使って外部ストレージのROMを読み込む方法は以下の記事参照:
configファイルの変更:
まず、Android端末をPCに接続して~Android/data/com.retroarch.aarch64/fileにアクセスする。
ちなみに、Android端末上のファイルブラウザーで~Android/data/を開いてもdata以下のファイルは隠しファイルになっていて見えない。
余談になるが、Total Commanderというアプリを使うと、PCに繋がないでも隠しファイルが見えるようにはなる。僕は試してないが、Total commanderを使えばPCに接続しないでも以下でやっている事と同じことができるかもしれない。
PCに戻って、~Android/data/com.retroarch.aarch64/file内の「retroarch.cfg」というファイルを、テキストエディタで開く。(念のためバックアップはとっておいた方が良い)
テキストエディタで開いたら、rgui_browser_directory = "/storage" という行を探す。
で、この行の"/storage"の部分を自分の端末に刺さっているSDカードのPATHに変更する。
僕の場合、/storage/0000-0000がSDカードのPATHになるのでこれに書き換える。0000-0000の部分はSDカードのIDみたいなので、使っているSDカードによって異なるので注意。
基本的にはこれで完了。
RetroArchから外部ストレージのROMにアクセスする。
retroarch.cfgを書き換えたら保存して、Android端末に戻ってRetroArchを起動する。
RetroArchを開いたら、「コンテンツをロード」を選択すると以下の画面になる。
外部ストレージのPATHは/storage/0000-0000なので、上から5つ目の/storageを選べば、/0000-0000が見えてもよさそうなもんだがアクセス制限がかかっているようで、何も見えない。
これでは、外部ストレージにはアクセスできないので、左上の←を押して前の画面に戻る。そしたら、今度は一番上の「お気に入り」を選択する。retroarch.cfgで指定したPATHがあっていれば外部ストレージの中が表示されるはずだ。
これで外部ストレージ内のROMファイルを読み込めるようになる。
もし、ROMデータを外部ストレージ/ROMとかにしているなら初めからそこまでのPATH(/storage/0000-0000/ROM)をretroarch.cfgに指定しておく方が早いかもしれない。
一度ROMを読み込めば「履歴」に残るので、次回からは「履歴」からゲームを起動すれば良い。
一応これで、ランチャーアプリを経由しないでも、外部ストレージのROMデータにRetroArch単体でアクセスできるようになるはずだ。
この方法を応用すれば他のエミュアプリでもランチャー無しで外部ストレージにアクセスできる気がするので、ほかのエミュアプリでも試して成功したらまた記事にする予定。