agents: P5's gate is MET, and four findings from the same walk
Some checks failed
Some checks failed
"Menu walk and navigation is fine. Video skips too. Extras open. New Game shows new game intro video." -- 2026-09-02 P5 is done. Its gate was "a human clicks through it", the retro said it had been waiting on that and not on code for the whole milestone, and it has happened. PORT-MISSION.md updated. The NEW GAME gap is accepted as-is. Four findings, three of them the Decoder's: F1 THE MENU REPEATS ON A HELD DIRECTION AND OURS DOES NOT. One step per deflection was authored as the conservative choice because nobody knew; a human has now watched the real game and it repeats, "at a medium pace... slow enough to see which item is selected". That settles the existence half of H1 against us. The RATE is still unmeasured and must not be guessed -- the description bounds it and supplies no number. Decoder measures initial delay and repeat interval as frame counts; the port implements the mechanism and waits for the numbers. F2 THE SFX ARE TOO LOUD BECAUSE THERE IS NO MIX AT ALL. Measured: confirm -17.7 dB mean / -0.0 dB peak, 3 dB hotter in mean than the music and 6.4 dB above move. No volume or gain value exists anywhere in export/ or authored/, so every clip plays at unity on one bus. Decoder: is per-cue or per-bus gain on the disc -- the cue table is the obvious place and cue 1103 is already decoded. Port: gains at PLAYBACK as data, and explicitly NOT normalisation in the exporter, which destroys the relationship between clips and cannot be undone by a modder. F3 SOMETHING IS MISSING ON THE TITLE SCREEN. The export carries one music file and the port plays nothing on the title. Which cue does the title play, and is there a sting on the plate or on accept? A negative needs a positive control: find the menu's cue by the same method first. F4 (A) SKIPS FORWARD THROUGH THE BOOT AND WE IMPLEMENT TWO OF THREE PRESSES. In the game: skip video, reveal plate immediately, accept plate. The middle one is missing here. Whether the game snaps both clocks forward or only reveals the plate is a question, not a detail -- and it is a cheap second route to the plate-arrival question, since a press that skips to the plate says where the game thinks the plate belongs. H3, the plate delay, is ACCEPTED -- "feels the same... sufficient". Left unattributed rather than closed green.
This commit is contained in:
127
docs/agents/PLAYTEST-2026-09-02-menus.md
Normal file
127
docs/agents/PLAYTEST-2026-09-02-menus.md
Normal file
@@ -0,0 +1,127 @@
|
|||||||
|
# Play-test, 2026-09-02 (second) — **P5 IS MET**, and four findings
|
||||||
|
|
||||||
|
## ✅ P5's gate is MET — the human clicked through it
|
||||||
|
|
||||||
|
> *"Menu walk and navigation is fine. Video skips too. Extras open. New Game
|
||||||
|
> shows new game intro video."*
|
||||||
|
|
||||||
|
**P5 is done.** Its gate was *"a human clicks through it"*, the retro said it had
|
||||||
|
been waiting on that and not on code for the whole milestone, and it has now
|
||||||
|
happened. `PORT-MISSION.md` is updated.
|
||||||
|
|
||||||
|
The human also confirmed the NEW GAME gap is understood and acceptable:
|
||||||
|
*"Deliberate AFAIK, in actual game the difficulty select comes first."* The port
|
||||||
|
announces the two screens it skips; that stays as it is.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## F1 — 🔴 The menu DOES repeat on a held direction. Ours does not.
|
||||||
|
|
||||||
|
> *"Moving stick up/down and holding only moves one item. In game it actually
|
||||||
|
> continues to move when holding up/down, just at a medium pace so player does
|
||||||
|
> not need to move pad middle↔up/down, but also slow enough to see which item is
|
||||||
|
> selected and move to target."*
|
||||||
|
|
||||||
|
**This settles the existence half of H1, and it settles it against us.** One step
|
||||||
|
per deflection was authored as the conservative choice precisely because nobody
|
||||||
|
knew. Now somebody has watched the real game: **it repeats.**
|
||||||
|
|
||||||
|
⚠️ **The RATE is still not measured, and it must not be guessed.** The human's
|
||||||
|
description bounds it usefully and does not supply a number: fast enough that a
|
||||||
|
player need not return the stick to centre, slow enough to read the selection as
|
||||||
|
it passes. That is a range, not a value.
|
||||||
|
|
||||||
|
* **Decoder — measure it.** Hold a direction in Canary and count. Two numbers:
|
||||||
|
the **initial delay** before the first repeat, and the **repeat interval**
|
||||||
|
after it. Frames between cursor moves, at a stated present rate — a count, not
|
||||||
|
a stopwatch reading ([`TEMPORAL-VERIFICATION.md`](TEMPORAL-VERIFICATION.md)).
|
||||||
|
Also: does the d-pad differ from the stick? Does the rate accelerate while
|
||||||
|
held, or stay flat?
|
||||||
|
* **Port — implement the mechanism, take the number from the Decoder.** Do not
|
||||||
|
ship a placeholder rate: an invented interval here is indistinguishable from a
|
||||||
|
measured one a month from now, and this is the exact field where that has
|
||||||
|
already cost us once.
|
||||||
|
|
||||||
|
## F2 — 🔴 The sound effects are too loud. There is no mix at all.
|
||||||
|
|
||||||
|
> *"Largely OK. Biggest notice is the volume, many effects are too loud."*
|
||||||
|
|
||||||
|
**Measured, and the human is right.** Every clip plays at unity gain, because
|
||||||
|
**no volume or gain value exists anywhere** — not in `export/`, not in
|
||||||
|
`authored/`, not in the manifest:
|
||||||
|
|
||||||
|
| | mean | max |
|
||||||
|
|---|---|---|
|
||||||
|
| **`se/confirm`** | **−17.7 dB** | **−0.0 dB** — at full scale |
|
||||||
|
| `se/move` | −24.1 | −1.4 |
|
||||||
|
| `se/back` | −21.0 | −5.7 |
|
||||||
|
| `bgm/main_menu` | −20.7 | −4.2 |
|
||||||
|
|
||||||
|
`confirm` is the loudest thing in the export: **3 dB hotter in mean than the
|
||||||
|
music** and 6.4 dB above `move`. A game mixes SE against BGM on separate buses;
|
||||||
|
this port has one bus and no gains.
|
||||||
|
|
||||||
|
* **Decoder — is the mix ON THE DISC?** The obvious place is the cue table: a
|
||||||
|
cue record commonly carries volume alongside the wave index, and
|
||||||
|
`sub_821C5580` is already known to play cue 1103. If per-cue or per-bus gain is
|
||||||
|
there, it is **decoded** and nobody has to choose. If it is provably not, say
|
||||||
|
so with reach and it becomes an authored mix.
|
||||||
|
* **Port — do not normalise in the exporter to fix this.** Re-levelling the file
|
||||||
|
destroys the relationship between clips and cannot be undone by a modder.
|
||||||
|
Gains belong at playback, as data, where a measured value can replace a chosen
|
||||||
|
one without re-exporting.
|
||||||
|
|
||||||
|
## F3 — ❔ Something is missing on the title screen
|
||||||
|
|
||||||
|
> *"I also think that there is a sound track or effect missing at the title
|
||||||
|
> screen."*
|
||||||
|
|
||||||
|
The export carries exactly one music track, `bgm/main_menu.ogg`, and the port
|
||||||
|
plays nothing on the title. Whether the game does is unestablished.
|
||||||
|
|
||||||
|
* **Decoder:** which cue, if any, does the **title** play? The menu's is decoded
|
||||||
|
(cue 1103 = `BGM_103` via `sub_821C5580`); the same route should answer the
|
||||||
|
title. And is there a one-shot **sting** when the plate appears, or when Ⓐ is
|
||||||
|
accepted? Either would read as "something missing" to a player.
|
||||||
|
* ⚠️ A negative here needs a positive control (R4): show the method finding the
|
||||||
|
menu's cue before concluding the title has none.
|
||||||
|
|
||||||
|
## F4 — 🔴 Ⓐ SKIPS FORWARD through the boot. We only implement one of the three.
|
||||||
|
|
||||||
|
> *"In the game one can get the plate to immediately show by pressing Ⓐ,
|
||||||
|
> essentially skip to it. So after the logos one can immediately skip to the main
|
||||||
|
> menu by pressing Ⓐ three times: 1. skip intro video, 2. show plate, 3. the
|
||||||
|
> plate itself."*
|
||||||
|
|
||||||
|
A measured behaviour of the real game, and a good one — it is how a returning
|
||||||
|
player gets past the boot.
|
||||||
|
|
||||||
|
| press | in the game | in the port |
|
||||||
|
|---|---|---|
|
||||||
|
| Ⓐ #1 | skips the intro video | ✅ implemented |
|
||||||
|
| **Ⓐ #2** | **completes the title build-in and shows the plate immediately** | ❌ **missing** |
|
||||||
|
| Ⓐ #3 | activates the plate → main menu | ✅ implemented |
|
||||||
|
|
||||||
|
* **Port:** Ⓐ during the title build-in should jump the sequence to the plate's
|
||||||
|
arrival rather than being swallowed. ⚠️ **Careful what "jump" means** — the
|
||||||
|
plate has a declared arrival at `t=238` and the title a build-in ending at
|
||||||
|
`t≈118`. Whether the game *snaps* both clocks forward, or only reveals the
|
||||||
|
plate and leaves the title where it is, is a question, not a detail. Ask if
|
||||||
|
the capture does not say.
|
||||||
|
* **Decoder:** what does Ⓐ do to the clocks? This is also a **second, cheap route
|
||||||
|
to the plate-arrival question** — a press that skips to the plate tells you
|
||||||
|
where the game thinks the plate belongs.
|
||||||
|
* 📌 And it bears on `REFUTED.md`: *"any title after the first one refuses
|
||||||
|
input"* is already narrowed to the attract-returned title. This is a third
|
||||||
|
input the boot title accepts.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## H3 — the plate delay is ACCEPTED
|
||||||
|
|
||||||
|
> *"Delay feels the same. Cannot verify it is exact same, but is sufficient."*
|
||||||
|
|
||||||
|
Good enough to stop working on, **not** established as correct. Leave the row as
|
||||||
|
unattributed rather than closing it green; if the duration question is ever
|
||||||
|
settled by the pipeline work, check it against this rather than re-opening it
|
||||||
|
from scratch.
|
||||||
@@ -37,9 +37,39 @@ The three load-bearing questions stand, and the first is now the most valuable:
|
|||||||
3. **What Canary does to it** before a capture records it — present cadence,
|
3. **What Canary does to it** before a capture records it — present cadence,
|
||||||
resolve, scale, gamma.
|
resolve, scale, gamma.
|
||||||
|
|
||||||
Also open and yours: **H1** — does a held direction repeat in the menus, and at
|
### 🔴 Four asks from the 2026-09-02 menu play-test — [`PLAYTEST-2026-09-02-menus.md`](PLAYTEST-2026-09-02-menus.md)
|
||||||
what rate? The 61 % arm threshold you decoded is adopted; one step per deflection
|
|
||||||
is still authored.
|
P5's gate is **met** (a human walked the menus). These came out of the same
|
||||||
|
session, and three of the four are yours. They are ahead of the pipeline work
|
||||||
|
because the port is blocked on two of them.
|
||||||
|
|
||||||
|
1. **F1 — MEASURE THE MENU REPEAT RATE.** The human watched the real game: a held
|
||||||
|
direction **repeats**, *"at a medium pace… slow enough to see which item is
|
||||||
|
selected"*. That settles the existence half of H1 against our authored
|
||||||
|
one-step-per-deflection. Two numbers, and the port will not move without
|
||||||
|
them: the **initial delay** before the first repeat, and the **repeat
|
||||||
|
interval** after it. Frames between cursor moves at a stated present rate — a
|
||||||
|
count, not a stopwatch. Also: does the d-pad differ from the stick? Does it
|
||||||
|
accelerate while held, or stay flat?
|
||||||
|
2. **F2 — IS THE AUDIO MIX ON THE DISC?** The SFX are too loud and there is **no
|
||||||
|
gain value anywhere** in the export; `confirm` peaks at −0.0 dBFS and sits
|
||||||
|
3 dB above the music in mean. A cue record commonly carries a volume beside
|
||||||
|
its wave index, and you already decoded `sub_821C5580` playing cue 1103. If
|
||||||
|
per-cue or per-bus gain is there it is **decoded** and nobody has to choose.
|
||||||
|
If it provably is not, say so with reach.
|
||||||
|
3. **F3 — WHAT DOES THE TITLE PLAY?** A human says something is missing there.
|
||||||
|
Which cue, if any, does the title screen play, and is there a **sting** when
|
||||||
|
the plate appears or when Ⓐ is accepted? ⚠️ A negative needs a positive
|
||||||
|
control (R4): show the method finding the *menu's* cue before concluding the
|
||||||
|
title has none.
|
||||||
|
4. **F4 — WHAT DOES Ⓐ DO TO THE CLOCKS?** In the real game, Ⓐ during the title
|
||||||
|
build-in **reveals the plate immediately** — so the boot takes three presses:
|
||||||
|
skip video, reveal plate, accept plate. Does the game snap both clocks
|
||||||
|
forward, or only reveal the plate? 📌 This is also a **cheap second route to
|
||||||
|
the plate-arrival question**: a press that skips to the plate tells you where
|
||||||
|
the game thinks the plate belongs. And it is a third input the boot title
|
||||||
|
accepts, which narrows `REFUTED.md`'s *"any title after the first refuses
|
||||||
|
input"* further.
|
||||||
|
|
||||||
⚠️ Deliver a **series, not a settled value** — see
|
⚠️ Deliver a **series, not a settled value** — see
|
||||||
[`TEMPORAL-VERIFICATION.md`](TEMPORAL-VERIFICATION.md), and note that the port's
|
[`TEMPORAL-VERIFICATION.md`](TEMPORAL-VERIFICATION.md), and note that the port's
|
||||||
|
|||||||
@@ -17,17 +17,25 @@ drawn rather than frames different. Ask of any new check: **what would this stil
|
|||||||
report if the feature were entirely absent?** `tools/motion-census` exists for
|
report if the feature were entirely absent?** `tools/motion-census` exists for
|
||||||
exactly that question; keep it in `check-all`.
|
exactly that question; keep it in `check-all`.
|
||||||
|
|
||||||
⚠️ **P5's gate is "a human clicks through it" and is NOT claimed.** They signed
|
## ✅ P5's GATE IS MET — the human walked it, 2026-09-02
|
||||||
off the logos, and separately confirmed Ⓐ, the stick and the submenus work.
|
|
||||||
Nobody has said the milestone is met — **do not record it as met on their
|
|
||||||
behalf.** If you believe it is ready, say so and ask.
|
|
||||||
|
|
||||||
Still open, none of it blocking: **H1** (does a held direction repeat, and how
|
> *"Menu walk and navigation is fine. Video skips too. Extras open. New Game
|
||||||
fast — one step per deflection stays authored) and **H3** (the plate; every named
|
> shows new game intro video."*
|
||||||
cause is dead and the observation is unattributed — ⚠️ worth re-asking, since the
|
|
||||||
animation fix changed what the whole boot looks like and the original observation
|
`PORT-MISSION.md` is updated. The NEW GAME gap is accepted as-is — they know the
|
||||||
may no longer reproduce). Both are in
|
difficulty select comes first in the real game and that the port announces it.
|
||||||
[`../agents/PLAYTEST-2026-09-02.md`](../agents/PLAYTEST-2026-09-02.md).
|
|
||||||
|
### 🔴 Four findings from the same session — read [`../agents/PLAYTEST-2026-09-02-menus.md`](../agents/PLAYTEST-2026-09-02-menus.md)
|
||||||
|
|
||||||
|
| | | yours to do |
|
||||||
|
|---|---|---|
|
||||||
|
| **F1** | **The menu REPEATS on a held direction. Ours does not.** One step per deflection was authored as the safe choice; the human has now watched the real game and it repeats. | **Implement the mechanism. Take the RATE from the Decoder — do NOT ship a placeholder interval.** An invented rate here is indistinguishable from a measured one later, and this is the exact field where that already cost us. |
|
||||||
|
| **F2** | **SFX too loud, and there is no mix at all.** Measured: `confirm` −17.7 dB mean / **−0.0 dB peak**, 3 dB hotter than the music; no gain value exists anywhere in `export/` or `authored/`. | Add gains **at playback, as data** — a bus per kind. ⚠️ **Do NOT normalise in the exporter**: re-levelling destroys the relationship between clips and a modder cannot undo it. The Decoder is checking whether the mix is on the disc. |
|
||||||
|
| **F3** | **Something is missing on the title screen** — a track or a sting. The export has one music file and the port plays nothing on the title. | Wait for the Decoder; nothing to author yet. |
|
||||||
|
| **F4** | **Ⓐ skips FORWARD through the boot, and we implement two of three presses.** Ⓐ#1 skips the video ✅, **Ⓐ#2 reveals the plate immediately ❌ missing**, Ⓐ#3 activates it ✅. | Make Ⓐ during the title build-in jump to the plate. ⚠️ Whether the game snaps **both** clocks forward or only reveals the plate is a question — ask rather than choose. |
|
||||||
|
|
||||||
|
**H3, the plate delay, is ACCEPTED** — *"feels the same… sufficient"*. Stop
|
||||||
|
working on it. Leave the row unattributed rather than closing it green.
|
||||||
|
|
||||||
## Previous sole focus, 2026-09-02 — RESOLVED, kept for the method
|
## Previous sole focus, 2026-09-02 — RESOLVED, kept for the method
|
||||||
|
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ A milestone is done when its **artifact** exists, not when the code compiles.
|
|||||||
| **P2** | Keyframe animation | Buttons slide in. **Blocked on HANDOFF Q1** (the time unit). Do not invent it |
|
| **P2** | Keyframe animation | Buttons slide in. **Blocked on HANDOFF Q1** (the time unit). Do not invent it |
|
||||||
| **P3** | Splash → title, with the transition | Both screens back to back, unattended |
|
| **P3** | Splash → title, with the transition | Both screens back to back, unattended |
|
||||||
| **P4** | Intro video | `ADV.wmv` plays with audio (§6) |
|
| **P4** | Intro video | `ADV.wmv` plays with audio (§6) |
|
||||||
| **P5** | Main menu: navigation, focus states, Ⓐ into a submenu, B back | A human clicks through it |
|
| **P5** | Main menu: navigation, focus states, Ⓐ into a submenu, B back | ~~A human clicks through it~~ — ✅ **GATE MET 2026-09-02.** A human walked it: *"Menu walk and navigation is fine. Video skips too. Extras open."* [`../agents/PLAYTEST-2026-09-02-menus.md`](../agents/PLAYTEST-2026-09-02-menus.md) |
|
||||||
| **P6** | Audio — menu BGM and move/confirm SFX | Sound on the P5 gate. **Looping is blocked on HANDOFF Q10** |
|
| **P6** | Audio — menu BGM and move/confirm SFX | Sound on the P5 gate. **Looping is blocked on HANDOFF Q10** |
|
||||||
| **P7** | New-game intro video after NEW GAME | Plays, then returns to a defined state |
|
| **P7** | New-game intro video after NEW GAME | Plays, then returns to a defined state |
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user