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.
This commit is contained in:
72
docs/port/f6-what-starts-the-sweep.md
Normal file
72
docs/port/f6-what-starts-the-sweep.md
Normal file
@@ -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.
|
||||||
Reference in New Issue
Block a user