グラディウス総合スレ@レゲー板

このエントリーをはてなブックマークに追加
278*
【ついで】フォースフィールドの判定対象バグについて(逆アセによる検証含む)。

沙羅曼蛇のフォースフィールド(FF)の仕様は、企画段階で

「1個目(先頭)は敵・敵弾・ユニットに反応」「2個目以降(サイド・後尾)は敵のみに反応」

だったので、先頭に張り付くFFのキャラクタID:便宜上A1 は、他のID:同A2 と別物扱いとして処理されている。
両者の張り分けは、メモリのワークエリア上に用意されたフラグ(1個目が既に存在すると1になる)によって選別される。
FFのユニットを拾ったときに、それが1個目かどうかを調べるためにフラグを参照し、それが0だった場合に
1個目のFFとみなしてA1を張り付け、フラグを1にして2個目以降の選別に備える。
FFを装着した状態で{自機が死亡|1周クリア|ザップ}して先頭のFFを失った場合は、当該フラグを0に戻す処理があるため、
{次機|次周|ザップ先}で先頭に装着したFFは正しくA1としてセットされるが、

 「A1のFFが自然消滅した場合、フラグを0に戻し忘れている」

ために、その周の中で最初に張ったFFを自然消滅させてしまった場合、フラグが0に戻されない。
それが原因で、最初の先頭FF(例:1面の奴)を自然消滅させた後、ノーミスで次に出現するFF(例:4面の奴)を拾うと、
本来A1でなければならないところ、誤ってA2が装着されてしまう。つまり敵弾やユニットに反応しない先頭FFが張りつく。

だから通常ノーミスプレイの場合、1面のFFは敵弾やユニットに反応し、4面のFFは反応しなくなるのだ。
嘘だと思うなら1面のFFを取らずに4面のFFを取ってみれば、即座に納得できると思う。
あとついでに1面でFFを取って、消滅する前に死亡してみるとかね。

# 例のごとく、ライフフォースでは修復されとります。
279*:2001/05/06(日) 15:52 ID:auPI7zxA
追加
PS,SS,X68版でも修復されてます。