xjoypad を使う

Linuxでゲームをする時に、USBゲームパッドを使いたいと思うことがある。でも、ゲームパッド(ジョイスティック)に対応していないゲームも多い。
ゲームパッドのボタン入力をキー入力に置き換えるソフトは無いものか?

Joy-Device to X mapping


Joy2Keyはとても有名らしいが、使い方がいまいちわからん。。。ので! xjoypadを使うことにした。


xjoypad インストール

  1. 上の↑リンクよりダウンロード
  2. unzipコマンドにて展開
  3. README.txtを良く読んで使い方を知る
  4. 展開されたディレクトリ内に実行形式 xjoypad があるのでそれを好きなところに置いて実行する
$ unzip xjoypad.zip
$ cd xjoypad/
$ less README.txt
$ ./xjoypad -butonns 53 39 54 40 38 52 65 36 & ←最後に&を
↑必要なだけキーコードを指定する
これで、フォーカスウインドウに対してjoypadが有効になる。
(例: 8個のボタンを指定。十字キーはデフォルト。)
毎回コマンドで指定して起動するのは面倒だと思えば、スクリプト書くなりすれば良い。

xjoypad の使い方

Running xjoypad
usage: xjoypad [-display display] [-devicefilename filename] [-verbose] [-up keycode] [-down keycode] [-left keycode] [-right keycode] [-buttons keycode keycode...]

There are reasonable default values for all paramters, see below.

Default Parameters:
[-display display] $DISPLAY
[-devicefilename filename] /dev/input/js0
[-verbose] report USB events
[-up keycode] 98
[-down keycode] 104
[-left keycode] 100
[-right keycode] 102
[-buttons keycode1 keycode2...] 10,11,...

十字ボタンはデフォルトで矢印キーになっている。
ボタンの指定にはkeycodeを知ることが必要になってくる。


xev を使って keycode を知る。

keycodeを知るには、xevを使う。
  1. xevを起動
  2. 太く囲まれた四角の中にマウスカーソルを置く
  3. そこで知りたいキーを押す
  4. keycodeをメモる

xev2.gif

$ xev

keycode 53 ←のように表示される。
押したキーは "x" ←のように表示される。

xev3.gif


補足 keycode

ゲームで良く使われるキーのキーコードなど。
  • [↑] : 98
  • [↓] : 104
  • [←] : 100
  • [→] : 102
  • [Enter] : 36
  • [Space] : 65
  • [Tab] : 23
  • [A] : 38
  • [S] : 39
  • [D] : 40
  • [Z] : 52
  • [X] : 53
  • [C] : 54


今回参考のリンク

http://ayamem.exblog.jp/i9
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/222dikeycode.html