神サイトのほうで書かれている投げ無敵を調べてみました。色々手順をミスったりしてごたつきましたが、いったん調べたことを書いときます。
まず前回(これも神サイトのほうで書かれている)ホンフゥと山崎の当身の攻撃部分空振り時に投げられない現象の原因を調べたときに投げの成否判定の処理部分がそれとなく分かったんで、その辺をデバッガでとめてみてみました。
アセンブラ読むのに自身はありませんが、自分で判断ついたものでいうと、見ているデータは以下でした。
- 状態(通常、ガード、くらい、投げられ)
- お互いのY軸
- ライン移動状態
- なんかわからんカウンタ
このうち「なんかわからんカウンタ」がだいたいFFなんですが、攻撃をくらったりガードしたりするとこれがゼロになって、次からカウントアップされてまたFFになっていました。
このカウンタなんですがブレイクポイントで止めてチェック部分をみていると、どこからか読んできた別データと突き合わせて、0か1を返すみたいなルーチンで使われておりもしかしたらとチェック時に値を変えてやると投げできたり、投げできなかったりしました。
RB2はくらいやガードなど一定の動作のあと数フレーム間投げられないんですが、それを判定するためのカウンタだなと思いました。
で、潜在仕込みのときにはこのカウンタがゼロにリセットされるのもわかり、また、カウンタと突き合わせている別データのほうとあわせて画面に表示できるようにしてごちゃごちゃ調べていました。
裏どりのため、レコーディングで大鉄人ガード後のフォロースルーでマジンガを入力、そのあとガードした側は投げ(手動)を入力するで、投げ判定処理のときにカウンタの値を常に25になるようにしたのがこちら。