COB-exact: timeline 1:1 from corroy.cob (aim/fire (COB VM), disassembled with _cob_dis.py). StateChg staged-deploy family: 1 open stages, then the compiled close order — not a reversed activate. Fire/hit/death/smoke scripts are engine-driven or firing-only and not part of this loop.
Animation

PNG frames

Frame 0 / 1430.00 s
COB timeline (CORROY.COB)
- 0.00–0.40 s — Rest pose (3DO zero point)
- 0.40–1.04 s — AimPrimary(8192, 3641): +45° yaw / +20° pitch at the COB aim speeds (concurrent)
- 1.04–10.87 s — salvo: 4 shots at the weapon reloadtime (1530 ms) — barrels/flares alternate per the compiled toggle (barrel1, barrel2, barrel1, barrel2)
- 10.87–10.87 s — AimPrimary(0, 0): back to the rest aim (the aim call the engine sends next; RestoreAfterDelay pacing is engine-driven)
- 10.87–11.47 s — rest again — loop restarts seam-clean (frame N = frame 0, pixel-verified)
Every stage duration equals its COB sleep exactly; values are raw COB units (turns: BAM 65536 = 360°, moves: elmo × 163840). Renderer conversions follow the proven family conventions (_cob_anim.py).