忍者ブログ
コンピューターとかゲームの最新ニュースはまとめるのが面倒なので Twitter を追ってください。もしくは1日分のツイートをまとめて簡素な HTML にするスクリプトください。

Steam Controller 解体新書 その1 (簡単にわかるところ編)

USB のデバイスドライバを自作する人ってあんまりいないようで、情報が少なくて困っております。
Windows10 のドライバは VisualStudio + WDK で開発するようなんですが、こいつがよくわからない…


そんな感じで、Steam Controller について判ったことをまとめていくことにします。



USB 接続したときの Steam Controller

Steam Controller は下図のように、3つのUSBデバイスが一つにまとまった USB Composite Device として認識されます。


 


この3つの Windows / OSX (Linux は知らない) デバイスドライバは Valve 社から提供されておらず、
steam client 起動中にのみ全機能が使えるようになっているようです。


steam client にはライブラリに steam で配信していないアプリも登録できる機能があるので、そうしたら遊べるよ
だから steam 使ってね♡ というのが Valve の主張のようです。

steam client を起動していない状態での挙動

steam client を起動していない状態では、ほとんど何もできません。
以下のようにしか使えない Windows 標準の HID デバイスドライバで動きます。

  • キーボード
    • 左トラックパッド(押し込むと反応): カーソルキー
    • アナログスティック: カーソルキー
    • A ボタン: Enter
    • B ボタン: Esc
    • >ボタン: Esc
    • <ボタン: Tab
  • マウス
    • 右トラックパッド: カーソル移動
      • トラックパッドの奥にあるモーターは動くのでハプティクス(触覚)効果は確認できる。
    • L2: 右クリック
    • R2: 左クリック
  • Valve

    • 特に何もしないっぽい


物凄くショボい・・・
steam を経由しない場合には本当に最低限のことしかできないです。

steam client を起動していない状態での挙動

steam client を起動すると

  1. steam client が謎の Vendor Specivic HID Device "Valve” と通信を開始する
  2. Steam Controller からピロリ音が流れる
  3. USB Composite Device のマウスとキーボードが通信をやめる
  4. Valve が高頻度な通信を行うようになる


という感じに切り替わります。
steam client には JoyToKey と同じような仕組みが用意されていて Valve デバイスとのやり取りをマウス操作やキーボード入力に置換してくれるんですね。


Steam Controller は中にあるファームウェアを更新できるようになっており、 steam client が Steam Contoller を認識したときに必要に応じてファームウェア更新が行われます。


このとき steam client を Big Picture モードにしなくてはいけないので面倒くさい


なお、steam client が起動中には、全てのアプリケーションでも使えるようになります。
実はもう、それでいいんじゃないかと思い始めていますが、引き続き研究を続けます。



PR