LibretroのAndroidコア(FBNeo)をビルドする
ドハマりしました
忘備録かねてメモ。おそらくWSL2なUbuntu環境でも、たぶんOK
VMwareで動作させたUbuntu 22.04.1 LTSで確認
ビルドしたコアは32bit版のRetroArch(Android)で動作確認できました。
aarch64ではコアが読み込めませんでした・・・
詳しい人がいたらコメントで教えてくれると大喜びします。
SDKとNDKの導入
Android studio を参考にしてインストールして下さい
初回起動であれこれインストールされます
NDKもインストールしておきます
バージョン指定せずにSide by SideのままでOKでした。
解説サイトがたくさんあるので、詳細は検索してください。
ソースのダウンロードと下準備
こちらを参考にして手順を進めます。
$ git clone https://github.com/libretro/libretro-super.git
$ cd libretro-super
libretro-super $ ./libretro-fetch.sh fbneo
./libretro-fetch.shの後にコア名を入れると
任意のコアのソースを単体でダウンロードできます
なしのままで実行すると、ありとあらゆる全てのコア他を
ダウンロードするので要注意。
libretro-fbneoフォルダーの中は2023年3月1日時点では
m72(IREM MCU)未更新なソースがダウンロードされました。(いつまで保持されるかは不明)
ROMのCRCチェックを緩くするなら、この時点でlibretro.cppを書き換えましょう。
書き換えポイントは前回の記事に記載してあります
単に旧コア欲しくてビルドしたい人はそのままでOKです。
NDKとndk-buildにパスを通す
/home/al/Android/Sdk/ndk の中にあるバージョン名のフォルダーは変化するので
各自の環境に合わせて書き換えるようにして下さい。
$ export PATH=/home/(ユーザー名)/Android/Sdk/ndk/NDKのバージョン(数字):$PATH
$ export PATH=/home/(ユーザー名)/Android/Sdk/ndk/NDKのバージョン(数字)/build:$PATH
以下、自環境の場合
$ export PATH=/home/al/Android/Sdk/ndk/25.2.9519653:$PATH
$ export PATH=/home/al/Android/Sdk/ndk/25.2.9519653/build:$PATH
パスを通しても一時的で、別端末からの作業や
ターミナルを閉じたりすると設定は消えてしまいます
恒常的にするなら.bashrcに書き込んで下さい。
ndk-buildでビルドする
libretro-super$ cd /libretro-fbneo/src/burner/libretro/jni
~/libretro-super/libretro-fbneo/src/burner/libretro/jni$ ndk-build
通常のビルド方法はエラーが出てどうにもなりません
jniフォルダに移動したのち、ndk-buildでビルドします
ここでエラーが出るのはndk-buildが見つからないってパターン
すぐ上に記載のパスをもういちど確認してください。
もうひとつはANDROID_NDK_HOMEがどうのこうの言われる例
これは.bashrcにANDROID_NDK_HOMEを追記してみて下さい。
export ANDROID_NDK_HOME=/home/(ユーザー名)/Android/Sdk/ndk/NDKのバージョン(数字)
例
export ANDROID_NDK_HOME=/home/al/Android/Sdk/ndk/25.2.9519653
公式の解説サイトには、ビルドできないコアがあって例外はこうしろと
いちおう手順の記載がありましたが、どのコアが該当するかくらいまとめてほしいものです・・・
aarch64に関してもいっさいの言及がありませんし。
無事にビルドが完了すると4つのバリエーションでコアが作られています
場所は~/libretro-super/libretro-fbneo/src/burner/libretro/libsになります
ちなみにファイル名がlibretro.soと言う無味乾燥な名称なので
ここで任意に管理しやすい名前にリネームすることをオススメします。
動作確認
いつものディグダグで動作確認です。通常のコアではロードに失敗しますが
CRCチェックを無視させた自ビルドコアは問題なく遊べました。
GooglePixel4a(Android OS13) で公式配布のRetroArch(32bit)から
v8aとv7aの両方のコアで動作確認しました
検証はクリーンインストールした環境で行っています
既存のfbneoコアなどが導入されてるとおかしくなるかも。
〆
ビルドめんどくさいですね(直球)
試してみたい人はダウンロードしてみて下さい。(ただし無保証です)
/libretro-fbneo/src/burner/libretro/libsにフォルダが4つありコアが含まれています
libretro.cppも書換済、オリジナルはlibretro.cpp.bakになります
コア単体で配布したいんですが、FBNeoのライセンスからソース込みです。
ディスカッション
コメント一覧
まだ、コメントがありません