re: a third menu-outgoing gap, and leaving the archive costs no extra black
sylpheed-port's BLOCKED row asks for a second value on one outgoing screen --
what would make "the gap tracks the outgoing screen" predictive rather than a
restatement of the data.
First, a correction their ask surfaced without needing a run: THE MENU ALREADY
HAD TWO VALUES AND THEY DIFFER -- 0 leaving for the title, 1 leaving for EXTRAS.
So "the outgoing screen determines the gap" was too strong and is withdrawn; what
holds is an ordering, not a determination. Also recorded: their ask is answerable
only from the menu, since the title's sole exit is (A) to the menu and EXTRAS's
sole exit is (B) to the menu.
Then took a third menu-outgoing measurement, to a screen outside GP_TITLE.
Confound named in advance rather than after: that transition leaves the ARCHIVE,
so a pak load could inflate the gap for reasons unrelated to the outgoing screen.
Result: outgoing quad rises across frames 24-28 (4-5 frames, matching build 5's
declared 10-unit close), then ONE empty frame at 30. Gap = 1, identical to
menu -> EXTRAS. So the confound is measured ABSENT -- leaving the archive costs no
extra black, which is worth having on its own.
Six transitions now group as: menu {0, 1, 1} over three different destinations
including another pak, EXTRAS {2}, title {3, 3, 3}. The ordering rests on 3+1+3
measurements and the menu's three agree to within one frame.
Still not predictive: outgoing closes are 5, 5, 4 frames against gaps {0,1}, {2},
{3}, and EXTRAS has n=1 with no way to obtain a second value.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wuu56cE8vJGTBtn1ppsk8v
This commit is contained in:
@@ -35,9 +35,17 @@ transition orders them. [`data/fade-four-transitions.txt`](../re/data/fade-four-
|
||||
| EXTRAS → menu (Ⓑ) | **2** | EXTRAS |
|
||||
| title → menu (Ⓐ) ×3 | **3, 3, 3** | title |
|
||||
|
||||
📌 **The gap is a property of the screen being LEFT.** Two transitions leaving the
|
||||
menu give 0 and 1; the one leaving `EXTRAS` gives 2; the three leaving the title
|
||||
give 3 every time.
|
||||
📌 **The gap tracks the screen being LEFT — but CONSTRAINS rather than determines
|
||||
it.** ⚠️ Corrected the same day, prompted by `sylpheed-port` asking for *"a second
|
||||
value on any one outgoing screen"*: **the menu already has two, and they differ** —
|
||||
0 leaving for the title, 1 leaving for `EXTRAS`. So "the outgoing screen determines
|
||||
the gap" is too strong and I withdraw that phrasing. What holds is an ordering:
|
||||
menu {0, 1} < `EXTRAS` {2} < title {3, 3, 3}.
|
||||
|
||||
⚠️ **And their ask is answerable only from the menu.** The title's sole exit is Ⓐ
|
||||
to the menu and `EXTRAS`'s sole exit is Ⓑ to the menu, so neither can supply a
|
||||
second destination. The menu is the only screen in this archive with more than one
|
||||
way out, which caps what these five transitions can establish.
|
||||
|
||||
* **Direction is ruled out** — `EXTRAS → menu` (2) and `menu → EXTRAS` (1) are the
|
||||
same pair both ways and differ.
|
||||
|
||||
@@ -173,3 +173,41 @@ frame untextured full-screen textured (distinct) draws tex
|
||||
# the data; a rule would PREDICT. And nothing declared does: the outgoing close is
|
||||
# 5, 5, 5, 4 frames against gaps 0/1, 2, 3 -- if anything inverted, on three
|
||||
# points. Recorded as a narrowing of WHERE to look, not as a rule.
|
||||
|
||||
################################################################################
|
||||
# SIXTH TRANSITION: menu -> a screen OUTSIDE GP_TITLE, via (A). 2026-08-30.
|
||||
#
|
||||
# Taken because sylpheed-port's BLOCKED row asks for a SECOND VALUE ON ONE
|
||||
# OUTGOING SCREEN -- the thing that would make "the gap tracks the outgoing
|
||||
# screen" predictive rather than a restatement. ⚠️ The menu is the only screen in
|
||||
# GP_TITLE that can supply it: the title's sole exit is (A) to the menu and
|
||||
# EXTRAS's sole exit is (B) to the menu, so neither has a second destination.
|
||||
#
|
||||
# ⚠️ CONFOUND NAMED IN ADVANCE, before the result was seen: this transition leaves
|
||||
# the ARCHIVE, so a pak load could inflate the gap for reasons having nothing to
|
||||
# do with the outgoing screen.
|
||||
#
|
||||
# frames 4-21 menu settled ([64] = pteff02.prm)
|
||||
# frames 24-28 outgoing quad 25, 127, 255 -- 4-5 frames, matching build 5's
|
||||
# declared close of 10 units = 5 frames
|
||||
# frame 30 EMPTY: 3 draws, 0 textured
|
||||
# frames 32+ the new screen builds ([127] primitive, not the menu's [64])
|
||||
#
|
||||
# ✅ GAP = 1, the same as menu -> EXTRAS. So the confound is MEASURED ABSENT:
|
||||
# leaving the archive costs no extra black. That is worth having on its own.
|
||||
#
|
||||
################################################################################
|
||||
# SIX TRANSITIONS, GROUPED BY OUTGOING SCREEN
|
||||
#
|
||||
# outgoing screen gaps n
|
||||
# menu (build 5) 0, 1, 1 3 -> title, -> EXTRAS, -> another archive
|
||||
# EXTRAS (build 6) 2 1 -> menu
|
||||
# title (build 4) 3, 3, 3 3 -> menu (three runs)
|
||||
#
|
||||
# 🟡 The ordering menu {0,1} < EXTRAS {2} < title {3} now rests on 3 + 1 + 3
|
||||
# measurements rather than 2 + 1 + 3, and the menu's three values agree to within
|
||||
# ONE frame across three different destinations, one of them in another pak.
|
||||
#
|
||||
# 🔴 Still not predictive. Nothing declared separates 0/1 from 2 from 3: the
|
||||
# outgoing closes are 5, 5, 4 frames for menu, EXTRAS, title against gaps of
|
||||
# {0,1}, {2}, {3}. And EXTRAS still has n=1 with no way to get a second value.
|
||||
|
||||
@@ -76,6 +76,31 @@ if [ "$WHERE" = "menu" ]; then
|
||||
done
|
||||
[ "$s" = "menu" ] || { echo "NO MENU (screen=$s)"; exit 2; }
|
||||
BTN=B
|
||||
elif [ "$WHERE" = "menu2other" ]; then
|
||||
# A THIRD value for the menu as outgoing screen. The menu is the only screen in
|
||||
# GP_TITLE with more than one exit, so it is the only place the port's ask -- a
|
||||
# second value on one outgoing screen -- can be tested at all. Here we take an
|
||||
# exit that LEAVES the archive (NEW GAME / LOAD / TUTORIAL / OPTIONS), which the
|
||||
# discriminator reports as "neither" with a collapsed margin.
|
||||
BRANCH="menu2other: arm on the MENU with focus on a non-EXTRAS item -> press (A)"
|
||||
python3 "$SD/pad.py" tap A 0.5
|
||||
for _ in 1 2 3 4 5 6; do
|
||||
sleep 4; s="$(screen)"; echo " after A: $s"
|
||||
[ "$s" = "menu" ] && break
|
||||
done
|
||||
[ "$s" = "menu" ] || { echo "NO MENU (screen=$s)"; exit 2; }
|
||||
# Confirm the focused item is NOT extras: press (A), check, (B) back. If it WAS
|
||||
# extras, step the cursor once so the armed press goes somewhere else.
|
||||
python3 "$SD/pad.py" tap A 0.5; sleep 5
|
||||
shot "$OUT/probe.png"
|
||||
w="$(python3 "$SD/which_title_screen.py" "$OUT/probe.png")"
|
||||
echo " probe: $w"
|
||||
python3 "$SD/pad.py" tap B 0.5; sleep 6
|
||||
case "$w" in extras*) echo " focus was EXTRAS — stepping once"
|
||||
python3 "$SD/pad.py" dpad UP 0.3; sleep 2;; esac
|
||||
shot "$OUT/armed-on-menu.png"
|
||||
echo " arming on: $(python3 "$SD/which_title_screen.py" "$OUT/armed-on-menu.png")"
|
||||
BTN=A
|
||||
elif [ "$WHERE" = "extras" ] || [ "$WHERE" = "menu2extras" ]; then
|
||||
BRANCH="extras-family: navigate to EXTRAS"
|
||||
python3 "$SD/pad.py" tap A 0.5
|
||||
|
||||
Reference in New Issue
Block a user