Batocera.linux: 28ボタン対応 Part 2
前回は、EmulationStationだけ28ボタンに仮対応しました。
ただそれだけでは実際に使えるコアが限られるので、
一番のキモであるRetroArchへの対応を進めていきます。
今回は中身が濃ゆいので有料となります。
(作業ブランチこんなだし)
主に、エミュレータを改良してみたい人向け。
なお、EmulationStationはC++ですが、RetroArchは素のCで
いろいろややこしい上、ソースファイル行数普通に
4桁とかあるので覚悟よろしぅ。
まず公式パッチ適用
前回と同様に、Batocera38相当のブランチを用意して
公式パッチを適用していくわけですが…
おもむろに手動で。
ひとまず、パッチ済ブランチは用意できました。
では、ハック開始しましょうか…といったところで…
バグっぽいの
input/input_driver.h に
なんちう定義ありますが、用途的にUSERSには見えない。
ていうか添字はボタンですね。
公式にはどっちも16なので一応問題ないんですが、
ボタン増やすとやばいので RARCH_FIRST_CUSTOM_BIND
に変更しときます。
併せて input/input_driver.c の方にも。
というわけで、対応ブランチ。
それでは改めて、ハック開始。
これは非互換の魔改造だよ
まず今回のハックはデータ構造的に非互換であり、
特にNetPlayで支障をきたすので、バージョン表記で忠告しておきます。
機能として別物なので、ブランチも分けときます。
version.all
PACKAGE_VERSION には NullPopPoCustom38 サフィクスを付けときます。
(ほんとはBatocera本体のretroarch.mkで指定すべきなんですが、
コンパイラオプションでの文字列指定うまくいかなかった)
また、NetPlay用バージョン表記として NET_VERSION を用意し、
非互換であることを強調しておきます。
network/netplay/netplay_frontend.c
3箇所ある PACKAGE_VERSION を NET_VERSION に差し替えておきます。
では本題
ボタン数を16個増やすだけのお仕事、楽勝ですね。
…んなアホな。
そりゃもう、いろんな罠でいっぱい。
書き換え箇所わんさか。
ここから先は
Amazonギフトカード5,000円分が当たる
この記事が気に入ったらチップで応援してみませんか?