Batocera.linux: 28ボタン対応 Part 3
前回、RetroArchを頑張って28ボタンに対応しました。
しかし、コア側にも越えなければならない壁がありまして、
今回その部分を続々対応させていきたいところですが、
従来のNullPopPoCustomには他にも多くの独自機能があり、
それらの移行がまだ済んでいません。
というわけで、今回は28ボタン対応だけで済むNintendo64コアを
対象に進めていきます。
なお、前回同様ハック部分は有料となります。
mupen64系コア
libretroじゃない方のコアは3種類ありますが、共通で対応できます。
また、コア側の書き換え不要、全てBatocera本体の変更のみで適用可。
作業ブランチこんなもん。
package/batocera/emulators/mupen64plus/mupen64plus-core/controllers/input.xml
このXML編集でボタンアサインを変更できますが、適用するには
mupen64plus-core の再ビルドが要るようです。
なお、公式では右親指域は4ボタンな前提で足りないので、
ゲームに応じてdefaultInputListとn64InputListの切り替えで凌いでいます。
NullPopPoCustomにおいてはちゃんと6ボタンあること前提なので、
実機のコントローラ使用形態に応じて
default: ファミコンポジション想定 L2=Zボタン
analog: ライトポジション想定 L1=Zボタン L2=Lボタン
dual: レフトポジション想定 R1=Zボタン R2=Rボタン スティックは右側
から選択できるように変更してみました。
それでXMLこんな感じ。
package/batocera/emulationstation/batocera-es-system/es_features.xml
上記選択肢変更をEmulationStationに反映させます。
mupenで検索すると3575行あたりで引っかかりますが、
こちらはlibretro版なのでハズレ。
7586行以降にあるやつが正解。
で、mupen64-controller1~4それぞれ選択肢を変更したら
batocera-es-systemを再ビルドよろし。
package/batocera/core/batocera-configgen/configgen/configgen/generators/mupen/mupenControllers.py
いろいろハードコードされてるので要是正。
まず getMupenMapping() はboolで渡してdefaultかn64かで選択するように
なってますが、ちゃんと設定名で渡せるように整えます。
もひとつ、70~95行区間でいろいろ勝手なことやってんので除去あるのみ。
で、batocera-configgenを再ビルドよろし。
これでmupen側は対応できました。
それでは、ちと厄介なlibretro側に着手いたしましょうか。
ここから先は
この記事が気に入ったらサポートをしてみませんか?