hfsd -- Flight Stick 用デバイスドライバ
Introduction
「hfsd」は、HORI社製 Flight Stick 2用デバイスドライバです。このドライ
バは、HID (Human Interface Device) miniriver として動作し、最大8軸32ボ
タン2Hatデバイスとして見えます。
このソフトウェアは、無償、無保証、無制限にて公開します。
(つまり、パブリックドメインソフトウェア (PDS) と同等ということ。)
Requirements
OS : Windows XP/2000
Device: Flight Stick 2
Install
- 圧縮ファイルを展開します。
- Flight Stick 2 を USB ポートに接続します。
- デバイスドライバウィザードが表示されたら、`hfsd.inf' を選択し、ドラ
イバをインストールします。
- 必要に応じて、プログラム hfsdldr.exe を任意の場所に置き、ショートカッ
トをスタートアップに登録して下さい。
詳細については、Profile Loader の項を参照。
Upgrade
- 圧縮ファイルを展開します。
- デバイスマネージャから `Flight Stick 2' を選択し、プロパティーのド
ライバタブにある「ドライバの更新」 ボタンを押します。
- デバイスドライバのアップグレードウィザードが開始されるので、「この
デバイスの既知のドライバを表示して、その一覧から選択する」-> 「ディ
スク使用」 -> 「参照」で `hfsd.inf' を選択し、ドライバをインストー
ルしなおします。
Profile Loader
同梱のプログラム hfsdldr.exe は、デバイスドライバに現在の設定を読み込
むよう指示するものです。
デバイスを PC に接続した状態で OS を起動すると、設定をデフォルト状態
から変更してあっても、それが反映されずにデフォルト設定となってしまい
ます。その場合でも、このプログラムを OS 起動後に実行することで設定の
読み込みをドライバに指示することができます。
スタートアップに登録する等しておくとよいかもしれません。
また、以下のオプションを指定することもできます。
- hfsdldr FILENAME
hfsdldr -l FILENAME : 指定されたファイルをプロファイルとして読み込
み、ドライバへ適用します。
"-l" オプションは省略することができます。
- hfsdldr -s FILENAME : 指定されたファイルへ現在のプロファイルを保存
します。
オプションを指定しない場合は、現在の設定の読み込み指示のみ行ないます。
Axes and Buttons
デフォルト設定での軸/ボタンの割り当て。モディファイア指定は特に無し。
- Axes: Stick => X, Y
Rudder => Rz
Hat => Rx, Ry
Throttle => Z
- POVs:
- POV 1: D-PAD 1
- POV 2: D-PAD 2
- Buttons:
- Button 1: TRIGGER
- Button 2: FIRE C
- Button 3: LAUNCH
- Button 4: A
- Button 5: B
- Button 6: HAT press
- Button 7: SW 1
- Button 8: D
- Button 9: ST
- Button 10: M1
- Button 11: M2
- Button 12: M3
- Button 13: D-PAD 3 left
- Button 14: D-PAD 3 middle
- Button 15: D-PAD 3 right
* Axis Slider, Throttle はデフォルトでは未割り当て。
* Button 16-32 はデフォルトでは未割り当て。
Modifiers
ON/OFF 状態を持つモディファイアが16個あり、それぞれの状態に合わせて、
軸/ボタン等の設定を変更可能です。
設定例については Samples の項を参照。
Samples
samples/ 以下に設定サンプルとしてプロファイルを同梱しています。カスタ
マイズ方法の参考に多少はなるかもしれません。
以下はそれぞれのファイルの簡単な説明です。
- axis.sdp 軸設定の例です。
Stick にデフォルトと同じ X, Y 軸を、
Hat にデフォルトとは向きが逆の Rx, Ry 軸を、
Throttle に範囲を中央付近に限定した Slider 軸を、
Rudder の左側に Z 軸を、右側に Rz 軸を、
A ボタンに Throttle 軸を割り当て。
(A, B ボタンはアナログボタン)
- buttons.sdp ボタン設定の例です。
TRIGGER にボタン 1 を、
LAUNCH に on/off が逆のボタン 2 を、
A ボタンを押したときにボタン 3 の on を、
B ボタンを押したときにボタン 3 の off を、
Rudder の左側にボタン 4 を、
Rudder の右側にボタン 5 を割り当て。
- modifiers.sdp モディファイア設定の例です。
M1/2/3 と SW1 がそれぞれ mod 1 から 4 に対応し
ており、それぞれの ON/OFF 状態の組合せによって
TRIGGER と LAUNCH を押したときに有効となるボタ
ンが変化します。
また、A ボタンを押すごとに mod 8 の on/off を
切り替え、B ボタンを押すごとに mod 9/10 の
on/off を切り替えます。
- delay.sdp 遅延実行 (delay) の例です。
LAUNCH を押すと、
ボタン 1 on -> 1秒ウェイト -> ボタン 1 off
を実行します。
- apply.sdp Action list から他の Action list を実行する例
です。
TRIGGER を押すと、
ボタン 9 on -> 1秒ウェイト -> ボタン 9 off ->
ボタン 10 on -> 1秒ウェイト -> ボタン 10 off
を実行します (前半と後半で別の Action list)。
また、LAUNCH を押すと、ボタン 1 から 8 までを
順に on/off し、これを繰り返します。実行中に D
ボタンを押すと mod 1 が on となり、繰り返しが
中断されます。
- mouse.sdp マウス設定の例です。
Hat にカーソル移動を、TRIGGER と LAUNCH にそれ
ぞれボタン 1、2 (左右クリック) を割り当て。
- keyboard.sdp キーボード設定の例です。
TRIGGER にキー A を、
LAUNCH にキー A、B、C の連続入力を割り当て。
How to build driver from source
- Cygwin 及び開発パッケージをインストール (binutils, fileutils, gcc,
make, w32api)。
w32api パッケージは最新のものを CVS からとってくる必要があるかも。
- Cygwin 用 DirectX ヘッダのインストール。
- Borland C++ Compiler 5.5 をインストール (日本語リソースを利用する場
合のみ)。
- ソースファイルを展開。
- 展開されたディレクトリへ移動し、`make'。
(日本語リソースを利用しない場合は `make USE_BRCC=no')
TODO
- カスタマイズ
- ボタン順序
- 軸とスティックの対応
- D-PAD をハット以外にボタンとして
- ゲームコントローラのプロパティーから
-> 対応 (Ver 0.2.1)
- キーボード入力への割り当て
- マウス入力への割り当て
-> 対応 (Ver 0.3.1)
- 設定の保存/読み込み
-> 対応 (Ver 0.4.1)
- XD-Profile 形式の設定ファイルを読み込み
-> X36/X45 を持っておらず、必要性を感じていないので優先度低。
2つのダイアルが無く、スティック上部のボタン類が異なっていたり、
スロットル裏の 4-way HAT が 3-way HAT だったりと、色々な部分が
違うため、既存の profile を適用することに意味があるのかも疑問。
- キャリブレーション
- ドキュメント
- カスタマイズについて
- 振動機能
- Force Feedback driver として
- 単純な振動のため方向のある force はできない
- デジタルボタンが誤作動するので直す
-> 修正 (Ver 0.1.2)
-> モードスイッチ (M1-3) が誤作動する場合があったので修正 (Ver 0.2.1)
Link
- USB.org - HID Tools:
- Microsoft Windows Driver Development Kits:
- HID Game Controllers and DirectInput:
- Xbox コントローラ用デバイスドライバ:
- XID:
- Dhauzimmer's X36/X45 USB filter driver:
- vtchid:
- hfsd:
$Id: README.txt,v 1.16 2004/06/10 16:08:35 hos Exp $