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 $