忍者ブログ
ホムペもみてね。 かにかにクラブ http://kani.no.coocan.jp/
上段メニュー開閉(JAVAスクリプト有効時のみ)
カレンダー
10 2024/11 12
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
最新記事
最新コメント
タイトル横の画像は管理人から返信ありマークです
無題  [10/29 AWJ]
無題  [10/29 AWJ]
無題  [10/28 AWJ]
無題  [10/28 AWJ]
無題  [10/27 AWJ]
無題  [10/25 yasu]
無題  [07/15 まい''ん]
無題  [04/17 まい'ん]
無題  [03/13 km]
無題  [03/13 km]
アーカイブ
[119] [118] [117] [116] [115] [114] [113] [112] [111] [110] [109]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

怪しい所をだいぶ絞り込めた。

--------------------
と思う……。
起動オプションを付け忘れてるとか、そういう間違いがない前提なら……。
元々アナログスティックで操作するゲームを
アナログスティックでプレイする場合は、
 -joystick
 -adstick_device joystick
この2つのどっちかを付けるだけでいいんだよね?
--------------------

それでは、メモ程度に本題。

●関数 update_analog_port()
  (ファイル src\emu\inptport.c の 3058行目から )

まず、アナログスティックを監視している。
前回監視と比較して、スティックが動いていれば、新しい値をターゲットプログラムへ渡して、おしまい。
動いてなければ、スティックを繋いでない時のデジタル入力(キーボードとか)で代用する処理に移る。
この次が怪しい。

3140行目 座標値を減らすキーを押したかどうか監視している
  if (input_seq_pressed(input_port_seq(info->portentry, SEQ_TYPE_DECREMENT)))
3152行目 座標値を増やすキーを押したかどうか監視している
  if (input_seq_pressed(input_port_seq(info->portentry, SEQ_TYPE_INCREMENT)))

これら2箇所で呼ばれてる関数 input_seq_pressed() が、
スティックがニュートラル以外なら、押してなくても、押したという返答している気がする。
この判定の部分を、常に押してない状態に、無理矢理書き換えると期待通りの動きになった。
当然、前回の日記に書いた、一時しのぎの設定は解除して実験した。

--------------------
アナログスティックをちょっとだけ傾けて止める。
動かさないとデジタル処理に突入。
スティックは傾けてあるわけだからそこで反応してしまう。
座標が暴れる。
--------------------

こんな感じか?
あくまでも、起動オプションに間違いがないなら……。
PR
この記事へのコメント
この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード
この記事へのトラックバック:
リンク
最新トラックバック
RSS
QRコード
プロフィール
HN:
かに凹・_・凹かに
下段メニュー開閉(JAVAスクリプト有効時のみ)
忍者ブログ [PR]