re: the last keyframe time is the chunk terminator -- observed, not

assumed

Continuing the pulse's cycle length, which I had called a structural
limit of the format. It is, and now I can show it rather than assert it.

Dumping past what I thought was the final keyframe found an EIGHTH block:
fade 0x00ffffff at the same position, so the glow returns to fully
transparent and the pulse is a closed cycle rather than a one-shot ramp.
That is worth having on its own -- the port knows the animation ends
where it starts.

And the eighth block's time slot contains the four bytes "end ", the
record's ASCII terminator. So the corpus's rule that a group's last block
has no time of its own holds here in a second form: not the next group's
element index, but the chunk terminator. The value does not exist. That
goes into ui-rat-layout.md, because it generalises beyond this record.

The measured 2.3 s would need a final step of about 33 units. I have
written that number down explicitly labelled as fitted to the measurement
rather than read from the file, so nobody later re-derives it as a
decode.

One thing I had half-assumed and can now rule out: the word at +0x004 is
not a keyframe count. It reads 60 here with 8 keyframes and 30 in the
loop records with 3. Unknown, and marked so.
This commit is contained in:
Sylpheed RE agent
2026-08-28 21:02:14 +00:00
parent c176fa53bc
commit 1b95001feb
3 changed files with 43 additions and 10 deletions

View File

@@ -72,11 +72,16 @@ authored version can be deleted.
screen — a capture's per-tile amplitude map puts **sd 7.65** in the band
x ≈ 318–954, y ≈ 560–672 against **0.06** on the wordmark. It is
`ptbtn00f.rat`, the plate's highlight variant (build **2**, not build 4),
whose alpha ramps **`0x00 → 0x06 → 0x4a → 0x50` (hold) `→ 0x4a → 0x06`**
across `t = 6 … 105` — a glow that fades in and back out.
🟡 Its full cycle is **not** readable: the keyframe group's last block carries no
time (that slot belongs to the next group), so the declared span is **≥ 105
units = 1.75 s** against a measured **≈ 2.3 s**. Consistent, not confirmed.
whose alpha ramps **`0x00 → 0x06 → 0x4a → 0x50` (hold) `→ 0x4a → 0x06 → 0x00`**
over **eight** keyframes at `t = 6, 29, 35, 50, 58, 97, 105, ?` — a glow that
fades in and back out, **closing on fully transparent**, so it is a complete
cycle rather than a one-shot ramp.
🟡 Its cycle **length** is not readable, and this is now observed rather than
assumed: the eighth block's time slot literally contains the ASCII terminator
`end `, so the record ends there and the value does not exist. Declared span is
therefore **≥ 105 units = 1.75 s** against a measured **≈ 2.3 s** — which would
need a final step of ≈ 33 units. That number is **fitted to the measurement, not
read**; the port should take ≈ 2.3 s as measured.
⚠️ An earlier version of this bullet said "the title screen loops at ≈ 2.2 s"
and attributed it to `ptloop01/02`. Both halves were wrong: it is the **plate**,
and it is a different build.