私の状況は次のとおりです。 RaspbianがインストールされたRaspberry Piがあります。 RetroArchもインストールし、簡単なUSBゲームパッドも接続しました。すべてがうまく機能しますが、キーの組み合わせ(例:L1 + L2 + R1 + R2)を押すと、エミュレータが正常に終了するように設定してキーボードを保持する必要がないようにしたいと思います。 RetroArchの一般的な終了の主キーはESCです。 RetroArchの制限により、キーの組み合わせに再マップすることはできません(ただし、単一のゲームパッドキーに再マップすることはできます)。
だから、ゲームパッドのキー押下を受け取り、特定の組み合わせを押したときにタスク(ESCキーをエミュレータに送信)を実行するユーティリティがあるかどうか疑問に思います。それとも私が望むことを達成するより簡単な方法はありますか?私はばかだ。
編集:今考えてみると、キーボードなしで起動できるように、さまざまなキーの組み合わせを使用してエミュレータを起動するbashスクリプトを実行できれば幸いです。
答え1
試してjstest
みてください。この資料では、次のタイトルでその使用法について説明します。Flightgear.org - 入力デバイス。ほとんどのディストリビューションにデフォルトでインストールされているようです。また、ここにリンクがありますjstest
マニュアルページ。
デフォルトでは、ジョイスティックがどのデバイスに割り当てられているかを確認する必要があります。dmesg
この情報を挿入したら、ログファイルを確認してください。おそらくそうです/dev/input0
。
$ dmesg | grep Joystick
input0: USB HID v1.00 Joystick [SAITEK CYBORG 3D USB] on usb2:3.0
次に、次のコマンドを実行します。
$ jstest /dev/input0
答え2
これはRetroPie /エミュレーションステーションの一般的な問題のようです。
RetroPie-Setup Wikiでこの問題を解決します。 https://github.com/petrockblog/RetroPie-Setup/wiki/EmulationStation#my-emulator-wont-close-through-my-gamepad
1行を追加するには、RetroArch設定ファイルを編集するだけです。
input_exit_emulator_btn = “6″
ここで、「6」はゲームパッドボタン識別子です。
キーの組み合わせを使用するには、次の行を追加します。http://forum.themaister.net/viewtopic.php?pid=1065#p1065)
input_enable_hotkey_btn = 1
input_exit_emulator_btn = 2
ショートカットを「ロック解除」するにはボタン1を押し、終了するにはボタン2を同時に押す必要があります。
答え3
ファイルに入れてください.rc
(.bashrc
bashユーザーの場合source .bashrc
)。
joyst () {
js='/dev/input/js0'
jscal $js
jstest $js
}
答え4
少し更新されたjstest
回答... 例で構成したジョイスティックを使用します。
Debian(およびほとんどの派生製品)はパッケージjstest
にあります。joystick
apt install joystick
次に、カーネルメッセージを調べて、ジョイスティックデバイスが提供する人が読める説明が何であるかを確認します。角かっこの間にあります。 (このメッセージの安定した仕様が見つからなかったため、出力に括弧のペアが多いか少ないか、ない場合があります。)
dmesg | grep -i joystick
[14265.976322] logitech 0003:046D:C215.0005: input,
hidraw4: USB HID v1.10 Joystick [Logitech Logitech
Extreme 3D] on usb-0000:22:00.3-1.1.1/input0
(上記の出力は1行に表示されます。読みやすくするために分類されました。)
入力デバイスセットからこの文字列を検索します。 (このコマンドは1行に入力されます。ここでは読みやすくするために2行に分かれています。)
grep -A 10 -B 2 "Logitech Logitech Extreme 3D"
/proc/bus/input/devices | grep ^H
H: Handlers=event13 js1
これで、特別なファイルをどのデバイスに提供するかを知りましたjstest
。
jstest /dev/input/js1