ツイッター上で教えていただいたジャンプ入力について、自分でもちゃんと調べてみようとレコード、リプレイ機能を使う形で事前に作った入力データを再生できる仕組みを追加しました。
あとジャンプ入力の9Fの全入力パターンを起こしてみましたが、ニュートラルを含む、レバー全方向+ボタン全パターンで144通り、1Fめは上方向なのでそれより少なめですが、プラスそれの8条で法外なパターン数になりそうで全部試すのはやめようと思いました。処理アドレスをログに残せるようにもしているので、いくつかためしてみて処理の遷移と実際のコードみてみてはっきりさせてようかなと思います。
データは↓みたいな感じ。エミュレータと実機とで動きが違うのかどうかちょっと不安です。
{ { _9 , _9 , _9 , _9, _5 , _5 , _5 , _5 , _5 , }, await, -- 小ジャンプ { _9a, _9 , _9 , _9, _5 , _5 , _5 , _5 , _5 , }, await, -- 通常ジャンプ { _9 , _9a, _9 , _9, _5 , _5 , _5 , _5 , _5 , }, await, -- 通常ジャンプ { _9 , _9 , _9a, _9, _5 , _5 , _5 , _5 , _5 , }, await, -- 通常ジャンプ { _9 , _9 , _9 , _9a, _5 , _5 , _5 , _5 , _5 , }, await, -- 通常ジャンプ { _9 , _9 , _9 , _9 , _9 , _8 , _9 , _6 , _9a, }, await, -- 通常ジャンプ { _9 , _8 , _5 , _5 , _8 , _8b, _5 , _5 , _5 , }, await, -- 小ジャンプ { _9 , _7 , _5 , _4 , _7 , _8 , _7 , _4 , _7c, }, await, -- 小ジャンプ { _9 , _5 , _5 , _4 , _1 , _2 , _3 , _6 , _9 , }, await, -- 小ジャンプ { _7 , _7 , _4 , _4 , _1 , _1 , _2 , _2 , _5 , }, await, -- 小ジャンプ { _9 , _9 , _9 , _9 , _6 , _8 , _9 , _6 , _9a, }, await, -- 小ジャンプ { _9 , _8 , _5 , _5 , _5 , _8b, _5 , _5 , _5 , }, await, -- 小ジャンプ { _9 , _7 , _5 , _4 , _7 , _8 , _7 , _4 , _4c, }, await, -- 小ジャンプ -- 小ジャンプ } ||< 実際の入力どうしようというところですが、小ジャンプは早めに987にレバーいれつつボタン遅めで安定しそうです。試しにギースの小ジャンプCで試してみましたが今までにない精度で出せるようになれました。 通常ジャンプは入れっぱか、空対空時は最初のジャンプ入力同タイミングでボタン押しで大丈夫そうです。 あと個人的によさげだなと思ったのは、9+D63でガード仕込み振り向き前方通常ジャンプが出せて、振りむき動作の12Fの隙はできますが、CPU戦では空対空をちょいちょい防げたりして便利でした。飛び越せなかったときは地上ガードへの切り替えがちょっとめんどいので、飛び越し前提で使うのがいいのかなとか。