kodiのLeiaからゲームクライアントがサポートされている。
自身でも、関連するゲームアドオンをインストールして動くのを確認するまでは出来ている。
あくまでも「動く」である。

自身はTVゲームをすることがなく、ゲームといえばスマホでツムツムをする位である。
よって操作するためのコントローラがなく、このためだけに買うまでには至らず。
せめてキーボードを使って遊べればと思ったのだが、あれこれと手を尽しても静かにデモを繰り返すのみ。
そう「動く」だけで「遊べ」ないまま。

ネットを調べると、Leiaにおいて一部エミュレータではキーボードが使用できない旨が記されていたようないないような...。
そんな事で長らくスルーしていたのだがラズパイでMatrixも動作する今、腰を据えて調べてみようと思いたつ。

ゲームアドオンについては、過去のブログで記している。

kodiでレトロゲーム、その1

kodiでレトロゲーム、その2

kodiのLeiaからレトロゲームを再生するためのRetroPlayerが実装されている。
これに対応したゲームアドオンを使用することでkodiからシームレスにゲームを遊べる。
よって、TV視聴中に長いCMが入れば簡単なゲームで時間を潰すこともできる。

自身はlibretroをコアライブラリとしたエミュレータを使用した。

そして、ここから本題。
なぜキーボードが使えないのか?

とりあえずは、kodiからRetroPlayerを起動させてログを確認。
早速、ヒントが見つかる。
「buttonmap.xmlが読み込めない」と叱られている。

ここでピンと来る。
なるほど、キーのマッピング情報を用意する必要があるのか!
ネットで確認すると、使用するデバイス情報を含んだtopology.xmlも必要らしい。

そうなれば話は早い。

キーボードのキー割り当てなんて、どれも同じだろう。
そういうことで、ネットから適当な二つのファイルを拾ってっくる。

topology.xml
buttonmap.xml

これらを使用するエミュレータのaddonデータとしてコピーする。

再びRetroPlayerを起動する。

キーボードが使えた。
なんと、あっさり...。

問題を確認するために少し遊んでみるが、問題無し。
そして、終了...んっ。
ESC...ESC、ESC、ESC...;

終了するためのキー入力がゲーム入力側に取られてRetroPlayerが終了しない;
かろうじてkodiの終了ダイアログは表示できた。
これに割り当てていたキーはマッピングされていないようだ。
しかたなく、kodiを一旦終了させる。

少なくとも、RetroPlayerを終了するためのキーはマッピングから外す必要がある。
いずれにしても目的は達成できた。

kodi v18、v19いずれもwindows、ラズパイ共に問題なくキーボード操作で遊べるのを確認。

ちなみにwindows版はリポジトリからアドオンをインストールしたので依存を気にすることなく動作した。
しかし、ビルドからインストールしたラズパイkodiでは、その限りではなかった。(aptインストールのものは不明)
もし動作しない場合は、足りてないものが無いか確認すると良いかもしれん。