レイフォースで連射が不安定になる原因について

 NRS-1という連射基板を作ったのですが、その際にレイフォースの連射が不安定になるということを知り、なぜそうなるのかを調べて原因が分かりましたので簡単に記載しておきます。


 原因はレイフォースは入力を取り込むタイミングが処理内容により変わり、従来のシンクロ連射回路でボタンの更新をするタイミングと入力を取り込むタイミングがほぼ同じタイミングになり、安定してON->OFF->ON->OFF...と取り込めなくなるため、でした。


 簡単にタイミングチャートっぽいのを踏まえて書くと、デモ画面や普通に背景などの処理がある程度ある場合は

 上記のようにボタンの更新タイミングと、入力を取り込むタイミングが異なるため問題無くON->OFF->ON->OFF...とボタン入力が変化します。


 3面冒頭の雑魚が出てくるシーンでは処理が軽くなり、ボタン入力が下記のようになります。

 ボタンの更新タイミングはVSYNCの立ち上がりのため変わりませんが、入力を取り込むタイミングが前後するためON->OFF->ON->OFF...とならず、ON->ON->OFF->ON->OFF...などのようになってしまい、規則正しく入力を行うことが出来なくなります。
 そのためある特定の場面で連射が効かなくなるようになってしまいます。


 NRS-1ではその他基板に関しても調査を行い、問題が無いであろうタイミングで入力の更新を行っています。そのためレイフォースでも連射が途切れるようなことはありません。
 従来のシンクロ連射回路でもタイミングを変更することにより問題無く動作するようになるのではないかと思われます。