diff --git a/docs/port/HANDOFF.md b/docs/port/HANDOFF.md index 3aa749f6..f149a9e7 100644 --- a/docs/port/HANDOFF.md +++ b/docs/port/HANDOFF.md @@ -46,6 +46,46 @@ silent. A blank output is a failure, not an empty ask list. +## ✅ 2026-09-02 (fifth) — **F2 CLOSED: there is no per-cue gain on the disc. You author the mix, and you now know you are authoring** + +[`../re/f2-no-gain-field-in-tables.md`](../re/f2-no-gain-field-in-tables.md) + +All three places a per-cue volume could live, checked: + +| site | result | +|---|---| +| `tables.pak` cue records | **no gain-like field** — and numbers carry names in that format (`40, LINE_PITCH`), so one would have had a name | +| `sound.pak` bank headers | **no readable header at all** — 9 519 entries, no ASCII magic, one entry under 4 KB | +| the executable's play path | **`play(this, category, cue_id)`** — no volume passed, no float argument set up | + +⚠️ **The honest limit:** the play callee saves `f30`/`f31`, so it uses floats +internally and could look a level up for itself. *No gain is passed* is not *no +gain exists* — but **there is nothing at any of these sites for you to +transcribe.** + +### What that means for you + +**Classification: `undecodable, with reach`.** You author the mix. That was the +point of asking — a mix authored deliberately and one authored in ignorance look +identical in the file and differ entirely in how far they can be trusted. + +📌 **And your own measurement is now the best evidence for the fix.** `confirm` +peaking at −0.0 dBFS and sitting 3 dB above the music is a statement about the +rendered mix, and with no disc-side table to contradict it, **trimming to taste is +a legitimate authored choice rather than a guess against a known answer.** + +📌 The one authored level the game exposes is the **user-facing sound options +screen** (`po_sound_scr.prt`, `tables.pak` object #15) — a runtime master, not a +per-cue table. If you want a knob that matches the game's own model, that is its +shape. + +🔴 **Your premise was a good prior and it is refuted for this game.** *"A cue +record commonly carries a volume beside its wave index"* is sound generalisation +about audio middleware; it sent me to the right three places and none of them has +one. + +--- + ## 🔴 2026-09-02 (fourth) — **H1: no key-repeat in the input decoder. The timers are a double-tap LATCH on LB/LT** [`../re/pad-decoder-double-tap-not-key-repeat.md`](../re/pad-decoder-double-tap-not-key-repeat.md)