スターソルジャー (FC) 解析資料

Published on: 2021-06-15

敵弾

敵弾には自機狙い弾と方向指定弾がある。両者には以下の共通点がある:

敵弾ランク

敵弾の最大数および発射間隔は敵弾ランクによって決まる(敵編隊ランクとは異なる)。

敵弾ランクは周回数、面、自機パワーに依存し、次式で計算される:

(敵弾ランク) = min(28, 2*(自機パワー) + (面) + ((2周目) ? 12 : 0))

敵弾の最大数は (敵弾ランク)/4 + 1 となる(切り捨て除算。値の範囲は 1..=8)。

敵弾の発射間隔は -((敵弾ランク)+2)/4 + 7 となる(切り捨て除算。値の範囲は 0..=7)。
敵が弾を撃った後、この値と同じ回数だけ敵弾の発射がキャンセルされる。

自機狙い弾

敵編隊パラメータにより計算されたスピード、誘導弾フラグがパラメータとして渡される。

自機狙い弾の方向は近似計算され、さらにパラメータで渡されたスピードが OR される。

自機狙い弾が誘導弾になることがある。条件は以下の通り:

方向指定弾

方向指定弾を撃つのはビッグスターブレインの砲台のみ。
敵AIバイトコードにも方向指定弾命令はあるが、ゲーム内では使われていない。

方向指定弾は敵編隊パラメータの影響を受けない。
また、プログラム中には自機パワーによって方向指定弾を高速化する意図と思われるコードがあるが、実際には機能していない(((自機パワー)<<2) & 0x30 を方向に OR しているが、これではシフト量が足りない)。

方向指定弾が誘導弾になることがある。条件は以下の通り: