Raspberry PiでFinalBurnNEOをビルドする方法
RetroArchがそんなに嫌い?
いいえ、CRCエラーのあるROMの挙動が
libRetro版であるLr-fbneoとSDL/Piビルドでは異なるからです
後は個人的な知的好奇心と探究心ということでひとつ
というかRetoro pieもこっち取り込んでよって話。
ただのへそ曲がりともいいます。
準備と作業
まずはFinalBurnNEOのソースをクローンします
$ sudo git clone https://github.com/finalburnneo/FBNeo.git
IremArcadeHitsや旧版のAndroidアプリから抽出したRType I・II等の
m72ドライバで動作するアイレムのゲームが遊べなくなるのを回避します
(関係ないという人は無視してOK)
2023年10月追記 最近の更新版ではRTYPEは動作するように変更されました。
$ wget https://raw.githubusercontent.com/finalburnneo/FBNeo/3ba841e35cc609aa7b15a5ab3aa6b1d0e302fcaa/src/burn/drv/irem/d_m72.cpp
Homeにd_m72.cppが保存されているので、クローンしたソースに上書きコピーして統合します
本来は必要部分だけ抜き出して、リバースパッチを当てるのが筋かと思います(お行儀よくない)
$ wget https://github.com/finalburnneo/FBNeo/commit/d62d5f512c6ad5e5fa0c72589438b0bc7655ae02.patch
そっちがしたい人は上記からm72updateをPatchで落として
ROM改変部分だけリバースパッチするのがよいと思います。
$ cp d_m72.cpp /FBNeo/src/burn/drv/irem/
もしもエラーが出たらsudo付けて再実行して下さい。
余談ですが、この記事を記載している時点ではfolkやポート物も
M72更新前のソースをもとにしているのがほとんどです
ビルドエラーが出る時は、手前のコミットを試してみるとよいかと思います。
ビルドの種類
Piビルド
Raspberry Pi1から3がメインで、いちおう4までの動作が確認ずみ
SDL1.2ベースで必要最低限、3までの動作は良好との記載があります
ターミナルからROM名で直起動するため 例)fbneo sf2
Emulator StationやPegasusフロントエンド等がないと不便です
SDLビルド
汎用LINUX用、SDL1.2/SDL2で分けてビルドできます
公式はSDL2版を推奨しています、SDL1.2版はほぼPi版と同じ挙動?
SDL2は最低限の機能を有したROM選択メニューが表示できます
ResChangerとの統合も可能で15khzなどのRGBモニターにも対応可能
Raspberry Pi4はSDL2でビルドが通るので、そちらを使います
コレは個々人の好き好きでOK、たぶん3でもSDL2で行けるかなと。(未確認)
準備とビルド
出典元
Pi用の説明が記載されたドキュメントになります
ビルド前にインストールしておけと記載があるので実行します
Pi版をビルド
注意)BullseyeでSdl1.Xをビルドする際に、通常のSDLをインストールすると
Xwindow上でしか動作しないバイナリができあがってしまう、と言う話がありました(未確認)
Retropie-setupに含まれるSDL1.2なら問題ないという話ですから
Bullseyeを使っている人は、前回の記事を参考に
Retropie-setupでBasic install後に行うことをオススメします
全てのRaspberry Pi機で行う下準備
$ sudo apt-get install libsdl1.2-dev
Pi4では追加でインストールが必要です
$ sudo apt-get install libgles2-mesa-dev libgbm-dev libdrm-dev
あとはMakeしてあげればOKです
$ sudo make pi
相応に時間がかかります、冷却に余裕があるなら-j3等の平行オプションを付けるとよいかと
問題なくビルドが終了すると、FBNeoフォルダーに実行可能なfbneoが増えているはずです。
SDL版をビルド
出典元
Raspberry Piの場合、SDLをインストールしておくとよいので
Pi版の下準備は同様にやっておいてください。
SDL2.0はretropie_setupをしていれば
ほとんどの必要なものは導入済みになっているはずですが
不足分や未導入の人は各自でお願いします。
sdl1.2はSDL1.2 と GCC、make、perl、nasm
sdl2.0はSDL2、SDL2_image、gcc、make、perl、nasmが必要です
SDL1.2
$ make sdl
SDL2.0
$ make sdl2
SDL1.2でのビルドを行う理由はあまりないですね
権限がありません、と言われたらSudo付けて再実行してください
時間が掛かるので注意、完了すればfbneoが実行形式で得られるはずです
SDL2.0でGroovyARCADE由来の
CRT切り替え機能を含めたビルドをしたい人は
出典元のREADME-SDL.mdを参照してください。
ビルドエラーが出る時に、ファイルコピーミスがなく修正してもダメな場合
単純にビルド通らないコミットがされてることがありますので、前後の版を試して下さい。
操作方法その他(一部抜粋)
README-SDL.mdかREADME-PI.mdを読めば全て記載されています
Pi版/SDL1.2版
fbneo ROM名 例)fbneo sf2
それ以外のオプションはありません、起動時にfbneo.iniが作られます
SDL2版
コマンドラインオプション
-menu メニュー付きで起動します。付けない場合はROM名指定で起動します。
-joy ジョイスティックを有効にします
-dat datを生成
-integerscale 最も近い整数倍に拡大、オリジナルと比率が異なる場合は黒枠が生じる
-full screen フルスクリーンで起動
fbneo -menu -joy で起動すれば
簡易メニュー付き&コントローラー有効で起動できます
もちろんfbneo rom名でも起動することは可能です。
SDL2版もfbneo.iniは生成されますが
/home/pi/.local/share/fbneo/config に作られるので注意(ドキュメントに記載なし)
ホットキー(ビルド共通)
TAB ポーズorメニュー F12 ゲームの終了
F11 FPSオン・オフ F6 スクリーンショット
余談
DipSwitchがないのでNEOGEO BIOSの国指定ができない
SDL2ビルドはゲーム中にTABキーからメニューで指定可能です
/home/pi/.local/share/fbneo/config/presets でpreset.iniを作っても無視される(参考)
neogeo.iniやcps.iniは認識する。ゲーム個別のゲーム名.iniを編集すればキーアサイン可能。
Xbox系Padで左アナログに十字キーが当てられてしまう場合
/home/pi/.local/share/fbneo/config/games内にあるゲーム名.iniを編集する
input "P1 Up" switch 0x4002 → 0x4012
input "P1 Down" switch 0x4003 → 0x4013
input "P1 Left" switch 0x4000 → 0x4010
input "P1 Right" switch 0x4001 → 0x4011
保存すればdpadに方向が割り当てられる。
次回予告
RetropieのEmulator StationにFBNeo(ビルド版)を追加します
さらに見分けが付くように、Lr-fbneoとビルド版でアイコンを変更します(Carbon2021)
ディスカッション
コメント一覧
まだ、コメントがありません