Skip to content

Protect Boss Rush bosses from Gravity Well during entrances - #131

Merged
mstan merged 3 commits into
mainfrom
fix/gravity-entrance-zero-saber-performance
Oct 20, 2026
Merged

mstan merged 3 commits into
mainfrom
fix/gravity-entrance-zero-saber-performance

Conversation

@mstan

@mstan mstan commented Oct 20, 2026 •

Copy link
Copy Markdown
Owner

An active Gravity Well could capture Boss Rush bosses while their entrances used ordinary-enemy state and damage-category bytes, then dissolve or lift them into a false defeat. Check the Rush boss body's identity from allocation onward when selecting victims, validating retained captures, and supplying their renderer/AI override. Older snapshots containing an illegal boss capture release it safely. Ordinary minions sharing a boss's ownership tag remain eligible.

Adds a ROM-backed regression for normal/charged fields across all eight bosses in both seats, illegal-capture save/load, and deterministic entrance replay. Also adds an X3 Zero saber timing probe for campaign/Boss Rush and solo/local co-op: idle, repeated swings, real boss hits, and the full charge/two-buster/saber input chain, comparing diagnostics off/on after warming caches. The reported saber slowdown was not reproduced in these probes; this PR makes no speculative saber behavior change.

Validated on current main with its exact engine/UI/library pins:

  • All 32 Gravity Well entrance cases: full boss HP, completed native entrances, zero false defeats.
  • Illegal-capture load/release and byte-exact replay; ordinary X/Zero Gravity Well pull/lift/dissolve/charge/energy/replay, including ordinary enemies with boss ownership tags.
  • Renderer, Zero, Boss Rush queue and current-main Boss Rush report CTest checks.
  • All 28 distinct boss pairs in both Add Zero solo and fully registered local co-op: entrances, native weapon finishing hits, snapshot replay, replacements preserving the survivor, death/Retry/Main Menu.
  • Saber scenarios complete with diagnostics off/on and byte-identical final game states in all four scene/player configurations. Real Boss Rush hits and the normal full-charge/two-buster/saber chain are verified.

Mean CPU time per game update plus compositor draw during the full X3 combo (768 frames per logging mode, warmed caches; this shared Windows host):

Scene Players Diagnostics off Diagnostics on
Campaign 1 6.21 ms 6.19 ms
Campaign 2 6.83 ms 7.29 ms
Boss Rush 1 10.71 ms 10.79 ms
Boss Rush 2 11.39 ms 11.63 ms

Some individual frames spike with either logging setting. The affected user's replay and setup are still needed to identify their slowdown.

Tracking: beads-8wg.1.136.

@mstan
mstan marked this pull request as ready for review October 20, 2026 14:22
@mstan
mstan merged commit 687988f into main Oct 20, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant