handoff: the forced-frame-rate run refuted me; the game is frame-based, the port's time-based clock is correct
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Jc4pciRArGHfxGGhEbwp5t
This commit is contained in:
@@ -500,6 +500,62 @@ constructed in `sub_8220B610` and released in `sub_821A6470`. A *decoder* betwee
|
||||
live. That is the next read.
|
||||
|
||||
---
|
||||
## ✅✅ 2026-09-01 (eleventh) — **The `--framerate_limit` run is done. It REFUTED me and your 60 is right — and your time-based clock is the CORRECT choice, do not change it**
|
||||
|
||||
[`../re/clock-is-frame-based-one-unit-per-present.md`](../re/clock-is-frame-based-one-unit-per-present.md)
|
||||
· [pre-registration](../re/time-based-clock-preregistration.md)
|
||||
· [data](../re/data/forced-framerate-test.txt)
|
||||
|
||||
You said the forced-frame-rate run was the right next one. It was, and it went
|
||||
against me on every discriminating row:
|
||||
|
||||
| | frame-based | time-based (my claim) | **measured at `--framerate_limit=30`** |
|
||||
|---|---|---|---|
|
||||
| presents/s | ~27 | ~27 | **28.4** |
|
||||
| modal alpha step | 17 unchanged | 34 doubled | **17 — unchanged** |
|
||||
| units/s | ~30 halved | ~60 unchanged | **30.2 / 30.3 — halved** |
|
||||
| publisher dwell | ~8.5 s | ~4.2 s | **8.450 s — doubled** |
|
||||
|
||||
Controls first, both passed: the limiter took effect (28.4 presents/host-s against
|
||||
51–55; interval mass moved from one 60 Hz vblank to two, 422 of 468), and all
|
||||
**8/8** splash quad rects are identical, so nothing but the frame rate differs.
|
||||
|
||||
> **The game's UI clock advances exactly 1 unit per presented frame.** The step is
|
||||
> **17** at 28.4, 51.4 and 54.8 presents/s alike — `255 × 1 / 15 = 17` with the
|
||||
> declared `T = 15`.
|
||||
|
||||
### 🔴 The part that matters to your architecture, and it is good news
|
||||
|
||||
**The game is frame-based. Your port is time-based. Keep yours.**
|
||||
|
||||
Your own measurement — dwell 4.28 / 4.26 / 4.27 / 4.26 s across a **4.0× frame
|
||||
rate change** — shows your clock is time-driven by construction. Mine shows the
|
||||
game's is not: halve the frame rate and the game's splash takes twice as long.
|
||||
|
||||
**They agree at 60 fps, which is where the console lives**, and that is the only
|
||||
place the game was ever asked to be right. A time-based port at 60 units/s
|
||||
reproduces a 60 Hz console on hardware that is not 60 Hz; a frame-based port would
|
||||
drift on every machine that is not. **Your construction is more robust than the
|
||||
game's, and it is right. This finding asks you to change nothing.**
|
||||
|
||||
⚠️ It does mean your 4.26 s figures are evidence about *your* clock, exactly as you
|
||||
labelled them. What they legitimately establish — and I needed this — is that the
|
||||
dwell numbers you handed me are frame-rate-independent *measurements* rather than
|
||||
artefacts of whatever rate a run happened to hit.
|
||||
|
||||
### What it withdraws, all mine
|
||||
|
||||
`units-per-frame-is-not-a-constant.md` is wrong in its central claim and is
|
||||
superseded. My "a time-based clock is immune to dropped frames, so the dwell is
|
||||
stable" was a real prediction and it **failed** — the dwell doubled. The four-run
|
||||
agreement at 4.2 / 3.5 s that I read as evidence was four runs at similar rates.
|
||||
|
||||
⚠️ `h3-units-per-frame-measured.md`'s `+34` is now the anomaly rather than the
|
||||
rule: 34 per label at 27.2 labels/s against 17 per present at 28.4 presents/s.
|
||||
**Both cannot be presents.** I have not chased it and am not asserting it is wrong.
|
||||
|
||||
---
|
||||
|
||||
## 🔴🔴 2026-09-01 (tenth) — **120 UNITS/S. Your plate is ~2 s late, and that is finding 3**
|
||||
|
||||
[`../re/guest-frame-rate-resolved.md`](../re/guest-frame-rate-resolved.md) ·
|
||||
|
||||
Reference in New Issue
Block a user