P13.1: fix README cue-capture recipe — terminate before each env-pinned relaunch
The M3TE_* capture pins are read only at app startup, so a second `simctl launch` against the still-running app reused its PID and silently ignored the new pin (the win->lose cue recipe only ever produced `cue win`). Add `--terminate-running-process` to every pinned launch across all capture recipes and document the startup-only rule explicitly. Docs-only; no .sx change.
This commit is contained in:
47
README.md
47
README.md
@@ -80,14 +80,22 @@ the launched app, so prefix them on the `simctl launch`:
|
||||
- `M3TE_SELECT=<cellIndex 0..63>` (= `row*8 + col`) force-selects a cell at
|
||||
startup, so the selection highlight + pop can be captured without a tap.
|
||||
|
||||
> **Every `M3TE_*` pin is read once, at app startup.** A `simctl launch` against
|
||||
> an already-running copy just foregrounds the existing process (the launch prints
|
||||
> the *same* PID) and the new `SIMCTL_CHILD_*` value is ignored. So every
|
||||
> multi-launch recipe below passes `--terminate-running-process` on each pinned
|
||||
> launch — it kills the running copy first, so the fresh process re-reads the new
|
||||
> pin. (`xcrun simctl terminate booted co.swipelab.m3te` before each relaunch does
|
||||
> the same.) A *changed* PID between launches confirms the new pin took.
|
||||
|
||||
```bash
|
||||
# Resting board (idle at rest): goldens/p6_idle_t0.png
|
||||
SIMCTL_CHILD_M3TE_ANIM_TIME=0 xcrun simctl launch booted co.swipelab.m3te
|
||||
SIMCTL_CHILD_M3TE_ANIM_TIME=0 xcrun simctl launch --terminate-running-process booted co.swipelab.m3te
|
||||
# Mid-breath idle: goldens/p6_idle_mid.png
|
||||
SIMCTL_CHILD_M3TE_ANIM_TIME=1.0 xcrun simctl launch booted co.swipelab.m3te
|
||||
SIMCTL_CHILD_M3TE_ANIM_TIME=1.0 xcrun simctl launch --terminate-running-process booted co.swipelab.m3te
|
||||
# Selection pop on cell (3,3): goldens/p6_select.png
|
||||
env SIMCTL_CHILD_M3TE_ANIM_TIME=0.17 SIMCTL_CHILD_M3TE_SELECT=27 \
|
||||
xcrun simctl launch booted co.swipelab.m3te
|
||||
xcrun simctl launch --terminate-running-process booted co.swipelab.m3te
|
||||
```
|
||||
|
||||
With no variable set the game runs fully live (the clock advances by
|
||||
@@ -111,13 +119,13 @@ idle clock:
|
||||
```bash
|
||||
# Win banner + restart over the board: goldens/p7_win.png
|
||||
env SIMCTL_CHILD_M3TE_TARGET=0 SIMCTL_CHILD_M3TE_ANIM_TIME=0 \
|
||||
xcrun simctl launch booted co.swipelab.m3te
|
||||
xcrun simctl launch --terminate-running-process booted co.swipelab.m3te
|
||||
# Lose banner ("OUT OF MOVES") + restart: goldens/p7_lose.png
|
||||
env SIMCTL_CHILD_M3TE_MOVE_LIMIT=0 SIMCTL_CHILD_M3TE_ANIM_TIME=0 \
|
||||
xcrun simctl launch booted co.swipelab.m3te
|
||||
xcrun simctl launch --terminate-running-process booted co.swipelab.m3te
|
||||
# Fresh in_progress board after restart: goldens/p7_restart.png
|
||||
env SIMCTL_CHILD_M3TE_TARGET=0 SIMCTL_CHILD_M3TE_RESTART=1 SIMCTL_CHILD_M3TE_ANIM_TIME=0 \
|
||||
xcrun simctl launch booted co.swipelab.m3te
|
||||
xcrun simctl launch --terminate-running-process booted co.swipelab.m3te
|
||||
```
|
||||
|
||||
While a banner is up the board freezes (only the restart button is live, per
|
||||
@@ -148,10 +156,10 @@ on this seed) used to capture the escalated combo emphasis (next section).
|
||||
```bash
|
||||
# Punchy match burst + "+30" popup, pinned mid-clear: goldens/p6_fx_match.png
|
||||
env SIMCTL_CHILD_M3TE_FX=3 SIMCTL_CHILD_M3TE_ANIM_TIME=0.22 \
|
||||
xcrun simctl launch booted co.swipelab.m3te
|
||||
xcrun simctl launch --terminate-running-process booted co.swipelab.m3te
|
||||
# Same match, later phase — FX fully gone over the settled board (no golden):
|
||||
env SIMCTL_CHILD_M3TE_FX=3 SIMCTL_CHILD_M3TE_ANIM_TIME=2.0 \
|
||||
xcrun simctl launch booted co.swipelab.m3te
|
||||
xcrun simctl launch --terminate-running-process booted co.swipelab.m3te
|
||||
```
|
||||
|
||||
### Escalating combo emphasis (P11.2)
|
||||
@@ -169,13 +177,13 @@ seed 1337, contrasted against the depth-1 single clear `M3TE_FX=3`:
|
||||
```bash
|
||||
# Escalated COMBO x5 + gold "+1050" + bigger burst: goldens/p11_combo_deep.png
|
||||
env SIMCTL_CHILD_M3TE_FX=11 SIMCTL_CHILD_M3TE_ANIM_TIME=0.22 \
|
||||
xcrun simctl launch booted co.swipelab.m3te
|
||||
xcrun simctl launch --terminate-running-process booted co.swipelab.m3te
|
||||
# Single clear for contrast — plain white "+30", no COMBO label (goldens/p6_fx_match.png):
|
||||
env SIMCTL_CHILD_M3TE_FX=3 SIMCTL_CHILD_M3TE_ANIM_TIME=0.22 \
|
||||
xcrun simctl launch booted co.swipelab.m3te
|
||||
xcrun simctl launch --terminate-running-process booted co.swipelab.m3te
|
||||
# Deep cascade at a later phase — all combo FX gone over the settled board (no golden):
|
||||
env SIMCTL_CHILD_M3TE_FX=11 SIMCTL_CHILD_M3TE_ANIM_TIME=3.0 \
|
||||
xcrun simctl launch booted co.swipelab.m3te
|
||||
xcrun simctl launch --terminate-running-process booted co.swipelab.m3te
|
||||
```
|
||||
|
||||
The combo emphasis is purely visual and self-pruning: it never gates input
|
||||
@@ -197,10 +205,10 @@ Capture it with the same P6.3 hooks — no new env var:
|
||||
```bash
|
||||
# Glossy candy selection on cell (3,3), pinned mid-pop: goldens/p6_select.png
|
||||
env SIMCTL_CHILD_M3TE_ANIM_TIME=0.17 SIMCTL_CHILD_M3TE_SELECT=27 \
|
||||
xcrun simctl launch booted co.swipelab.m3te
|
||||
xcrun simctl launch --terminate-running-process booted co.swipelab.m3te
|
||||
# Same selection at exact rest (no pop) — isolates the overlay:
|
||||
env SIMCTL_CHILD_M3TE_ANIM_TIME=0 SIMCTL_CHILD_M3TE_SELECT=27 \
|
||||
xcrun simctl launch booted co.swipelab.m3te
|
||||
xcrun simctl launch --terminate-running-process booted co.swipelab.m3te
|
||||
```
|
||||
|
||||
The selection gloss is purely visual: it never gates input (`BoardAnim.active`
|
||||
@@ -273,13 +281,16 @@ sequence:
|
||||
|
||||
```bash
|
||||
# Deep cascade, live — fires combo1..combo5 one per round on the timeline:
|
||||
xcrun simctl terminate booted co.swipelab.m3te
|
||||
SIMCTL_CHILD_M3TE_FX=11 xcrun simctl launch booted co.swipelab.m3te
|
||||
SIMCTL_CHILD_M3TE_FX=11 xcrun simctl launch --terminate-running-process booted co.swipelab.m3te
|
||||
xcrun simctl spawn booted log show --last 20s \
|
||||
--predicate 'eventMessage CONTAINS "[sx] audio"' --style compact
|
||||
# Win / lose stingers (also live so the banner edge-triggers the cue):
|
||||
SIMCTL_CHILD_M3TE_TARGET=0 xcrun simctl launch booted co.swipelab.m3te # cue win
|
||||
SIMCTL_CHILD_M3TE_MOVE_LIMIT=0 xcrun simctl launch booted co.swipelab.m3te # cue lose
|
||||
# Win / lose stingers (also live so the banner edge-triggers the cue). Each pinned
|
||||
# launch passes --terminate-running-process: the M3TE_* pins are read only at
|
||||
# startup, so relaunching a still-running copy reuses its PID and the new pin is
|
||||
# ignored — without it the lose launch reuses the win process and only `cue win`
|
||||
# ever prints. A changed PID between the two launches confirms each pin took:
|
||||
SIMCTL_CHILD_M3TE_TARGET=0 xcrun simctl launch --terminate-running-process booted co.swipelab.m3te # cue win
|
||||
SIMCTL_CHILD_M3TE_MOVE_LIMIT=0 xcrun simctl launch --terminate-running-process booted co.swipelab.m3te # cue lose
|
||||
```
|
||||
|
||||
## Asset regeneration
|
||||
|
||||
Reference in New Issue
Block a user