From c0ae460af7c79f665a0a4ba7331f11085a3c1090 Mon Sep 17 00:00:00 2001 From: Sylpheed port agent Date: Wed, 2 Sep 2026 18:19:48 +0000 Subject: [PATCH] port: F6 unit a -- what starts the title sweep, and the gate that does not exist No behaviour change. The start mechanism is one expression, screen_view.gd:684: var t := leaf_time_units if leaf_time_units >= 0.0 else time_units leaf_time_units is set only by the --leaf-time diagnostic and is -1.0 on every real boot, so the sweep rides the title's own clock from 0 with no offset. Refuted the obvious reading, which was mine before checking: ptloop01/02 declare 0:0 70:0 100:255, so the parents LOOK like the gate. They are not -- the leaf is what reaches the screen and the parent's alpha is decoded as not multiplied in. pteff03's leaf declares 0:255 and is travelling from t=0; the plate arrives at t=214-236, so the port starts the sweep ~150 units (~2.5 s) early, which is the size and direction the human reported. A start time is an OFFSET and leaf_time_units is an ABSOLUTE override; the one-line edit is a subtraction at 684 fed by one authored value. --- docs/port/f6-what-starts-the-sweep.md | 72 +++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 docs/port/f6-what-starts-the-sweep.md diff --git a/docs/port/f6-what-starts-the-sweep.md b/docs/port/f6-what-starts-the-sweep.md new file mode 100644 index 00000000..c39109d7 --- /dev/null +++ b/docs/port/f6-what-starts-the-sweep.md @@ -0,0 +1,72 @@ +# F6 unit a — what the port currently uses to start the title sweep + +**Status:** ✅ answered. **No behaviour changed** — this unit exists so that when +the Decoder says *when* the glow should start, the edit is one line. +Port at `937f055`, 2026-09-02. + +## The answer, in one line + +`port/scripts/screen_view.gd:684` + +```gdscript +var t := leaf_time_units if leaf_time_units >= 0.0 else time_units +``` + +**That is the whole start mechanism, and it is not a start mechanism.** +`leaf_time_units` is set in exactly one place — `boot.gd:359`, the `--leaf-time` +diagnostic flag — and is `-1.0` on every real boot. So the travelling glow runs +on `view.time_units`, the title screen's own clock, which `_advance` sets to +`0.0` when the title is raised. **Zero offset, no gate.** + +## 🔴 And the obvious gate does not exist + +The natural reading — mine, before checking — is that the parents gate it: +`ptloop01`/`ptloop02` declare `0:0 70:0 100:255 238:255 250:0`, invisible until +t=70. **That is not what happens**, because what reaches the screen is the LEAF, +and `screen_view.gd` records as decoded that *"the leaf runs on its OWN timeline +and the parent's alpha is NOT multiplied in"*. The parent ramp gates nothing. + +The leaves' own declarations: + +| leaf | alpha | x position | +|---|---|---| +| `pteff03` | **`0:255`** 150:128 540:255 600:255 | −639 → −39 (t=150) → 1521 (t=540) | +| `pteff03a` | 0:0 150:128 630:255 720:255 | 1721 → 1111 (t=150) → −839 (t=630) | + +**`pteff03` is at full alpha from title t=0** and is travelling from t=0. It +clears the left edge (sprite is 399 wide) at around t≈60 and is well inside the +frame by t=150. + +The plate arrives at **t=214–236**. So the port starts the sweep roughly +**150+ units ≈ 2.5 s early** — which is the size and the direction of what the +human reported. + +## Corroborated on a film, not only read + +Filmed a real boot at 0.05 s and measured frame-to-frame change in the title art +band `1280x420+0+90`, which **excludes the plate's own rectangle** (y 550–600) so +the plate cannot be what registers: + +``` +view_units 22 54 69 86 118 134 214 341 406 +delta 31.8 39.9 30.8 9.4 12.6 0.2 0.2 0.1 0.4 +``` + +Motion is heavy through the build-in and the band is quiet by t≈134 — consistent +with `pteff03` having already crossed the measured band and with the coarse +resize washing a thin glow out. **The film neither adds to nor contradicts the +declaration; the declaration is the evidence here.** + +## What changes when the answer lands + +A start time is an **offset**, and `leaf_time_units` is an absolute override — +they are not the same field. The one-line edit at 684 becomes a subtraction, fed +by one authored value. Nothing else moves. + +## What this does NOT do + +* **It does not choose a start time.** That is the Decoder's, and this unit was + scoped to exclude it deliberately. +* It does not touch the glow. A boot looks exactly as it did. +* It says nothing about whether the *speed* or the *path* is right — only when it + begins.