Darkside(リンクエラー修正しました)

2015年3月2日(月) 21:28

アナログとネジコンの差

 ところで、PSXjin 標準搭載のコントローラーコンフィグでは自作USBネジコンが使えない。接続してキーを割り当てようとすれば、キーに触っていないのに勝手に「J0_AXIS1_MIN」が入力されたことになってしまう。設定不能である。これでは、選択肢にネジコンを追加しても設定不能だろう。
 pcsx-rr のプラグイン padGnneco では設定可能だったが、ちゃんと動くような設定ファイルを作るのに恐ろしく苦労した記憶がある。
 そこで、どうして勝手に「J0_AXIS1_MIN」が設定されてしまうのか、原因を調査することにした。

 こうして、大いなる見落としに気付いた。
 まずは、ゲームコントローラーの設定画面を見て欲しい。これは、一切のキーに手を触れていない状態である。見ての通り、Y axis が最初からマイナス側に振れている。だから、「J0_AXIS1_MIN」が押されたという判定になっていたのだ。

 Windows のゲームAPIでパッドの状態を取得すると、axis に関しては -128 から +128 までの値が返るようである。
 PSXjin の設定では、axis の値が -64 より小さければマイナス側に動かされたと判定する。+ 64 より大きければプラス側に動かされたと判定する。つまり、手を振れない場合の axis は0近辺であると想定しているのだ。
 アナログパッドでは、左右にアナログスティックを備えている。この場合、手を触れないとスティックはニュートラルである。

 これに対しネジコンは、ハンドル(ツイスト)こそニュートラルだがそれ以外の3つのアナログ(LとIとII)に関しては押しボタンである。手を振れない場合はニュートラルではなく、「最小値」なのだ。
 アナログとネジコンのこの差異を適切に処理せねば、パッド設定はできないしエミュレーターでネジコンを正確に動作させることもできない。

written by higashino [ゲーム] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

Comments

TrackBacks

Darkside(リンクエラー修正しました)

Generated by MySketch GE 1.4.1

Remodelling origin is MySketch 2.7.4