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

2015年3月3日(火) 21:06

ネジコン対応成功

 最初に考えたのは、設定ダイアログに入った最初にパッドの状態を読んでおくこと。これでアナログ入力の初期値を保存しておき、設定本番ではそれと異なった状態にならないと認識させないようにする。
 設定ダイアログに入った瞬間にボタンを押してしまっていると判断を誤るが、それぐらいは運用上の注意として逃げるしかないだろう。

 ところがいざ試すと、パッドの状態をうまく取得できない。どうやら元ソースのパッド状態取得関数は、別関数と共同作業している。自作ではなく改造の場合、オリジナルの流儀に逆らうと工数が激増するものだ。
 元ソースでは設定したいボタンを押すと、10秒の時間待ちになる。その間にキーなりパッドなり操作すれば、押したものに設定される。50ミリ秒ごとに、タイマー割り込みで「押されたかどうか」を確認している。
 そこで、何度目の確認かをカウントし、アナログ入力された場合でも4回以下であれば無視するようにした。無視する代わりに、それを初期値として保存する。

 簡易な処理だが、うまく行った。無事に、自作USBネジコンの設定に成功。
 純正アナログパッドとネジコンは、通信フォーマットがほぼ同一である。いずれもアナログ入力は4系統で、ネジコンの II がアナログパッドの左Xに対応する。以下、↑の表記通りで、置き換えて設定する。

 ランナバウト1で、動作確認。

 オプションメニューに入ると、ちゃんとネジコンになっている。
 プレイも正常にできた。

 実のところ、ネジコンを使えるようにする改造に関して、完全には把握できていない部分がある。特殊なケースで、ネジコン設定だと動作不良が起きる可能性は残っている。それば、使い込んでみないと分からない。

 かなり感動した。
 元のソフトに全く存在しない機能を追加するのに成功すると、達成感が大きい★
 この改造は、MinGW のままだったら非常に苦労しただろう。開発環境が Visual c++ に移行してくれていたのが幸いだった。

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