バキュラが壊せない理由に対する別のアプローチ

突然なんだという話題ですが。縦スクロールシューティングの古典ゼビウスにおける無敵障害物バキュラは「ザッパー(対空中弾)を256発打ち込むと破壊できる」という噂がありました。コレに対する製作者の回答は「壊せません」で解決なのですが、実際には別に「256発で壊せる」という命題が真であれば「実際問題として破壊不可能」という回答が得られると思います。要するに、「256発打ち込む行為」自体が不可能。何を今頃そんなの大人気ない(いろんな意味で)っていう考察なんですが、このアプローチあんまり見たことない気がするのでエントリしてみたりする。

  • 大抵のビデオゲームは一般的なモニターの垂直同期に合わせた割り込み間隔で処理をする。つまり60flame/sec.(1intという)画像処理などが重いゲームであれば、実際の処理は1intであっても描画処理は30flame/sec.(2intという)のこともある
  • 弾を連射する。という行為は、ボタンのOn/Off切り替えをゲームが認識する必要がある。これは上の仕様(前提)と併せて「どんなに高速連射してもビデオゲームでは1秒に30回の連射(連打)しかできない」ということを意味する。要するに1/60秒ごとにOn/Off切り替えて一セット、一発弾が出るということ
  • つまり。256発の弾を撃つには8秒ちょっと必要

よって一番遅いスクロールのバキュラは何秒間滞空しているのか?というところが分岐点。エミュレータとか持ち出してきたら判るけど、もうここまでのエントリで情熱が薄れてきたので検証する気力ないっす。
ちなみに、不確かな要因としては以下のようなものもあるっす。

  • ファミコン版限定ではなかったと記憶しているが、自機の弾は自機当たり判定より下側から上に向かって発射される。よって、尻をぴったり貼り付けると後方の敵機に攻撃ができる。でも多分、これで攻撃可能時間は延びないと思う
  • 1intじゃなかったら議論に値しないくらい明白に無理だけど、1intだったと思うなぁ
  • 画面にザッパーの存在できる個数には上限が勿論あるけど、密着したら無視できるんでないかな

ところであんまりシューティングゲームに明るくない人は「正確に1/60単位でボタンをOn/Offできる訳ない」と思われるかもしれません。しかし、ゲームセンターでシューティングが全盛のころには「シンクロ連射装置」なるものがあって、これの助けで正確に「秒間30連射」が可能だったのだそうです。私も実物は見たことないのですが。どういうものかというと、前述の「画面書き換えの垂直同期」を利用していて、この周波数を取り出してスイッチをOn/Off切り替える装置です。これなら、1/60より短い単位で同期がずれることもなく正確にスイッチOn/Offが可能な訳です。