Answered against the pre-registration committed before the capture.
Units per second was the last open number on the PRESS (A) plate, and both
prior measurements of it were wall-clock readings off an emulator that runs
the guest slow by an unknown factor. They disagreed by 2.9x, because a 30 Hz
guest at full speed and a 60 Hz guest at half speed look identical on a wall
clock.
The ruler here is not a clock. ADV.wmv declares 30.0000 fps in its own ASF
header, so a decoded movie frame is a tick the emulator's speed cannot
stretch. Presented frames per decoded movie frame is guest_fps/30 with no
wall clock in the chain.
predicted H_A 30 fps -> 60 units/s -> 1.0
H_B 60 fps -> 120 units/s -> 2.0
measured 1.0000
Both pre-registered guards pass. Guard 2: a perfect repeating 3-buffer
cycle, 52 uses each (exactly 156/3), 2 chroma planes per luma on 156 of 156.
Guard 1: run lengths are 156 runs ALL of length 1 -- no smear, so the
dropped-movie-frame bias that would have pushed the answer toward 120 is
measurably absent rather than argued away.
So H_A. The port keeps its 60 and changes nothing.
REFUTES the live H3 hypothesis that 120 units/s explains the play-test's
late plate. That hypothesis was well-formed and attractive precisely because
it would have explained the complaint, which is why it needed a ruler that
is not a clock.
Which means finding 3 still has no cause. The strongest remaining candidate
is decoded rather than speculative: the plate's declared onset is t=214, not
t=236 -- a 22-unit fade, matching the T=22 the oracle confirmed by measuring
+23 alpha per presented frame on that element.
The pre-registered control could NOT be run: this logger build emits vb=
addresses, not vertex contents, so there was no alpha to check +34 against.
A weaker control is substituted and labelled -- the splash shader/blend
census, which validates the log's structure (what this measurement uses) and
not alpha extraction (which it does not).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Jc4pciRArGHfxGGhEbwp5t
42 lines
2.0 KiB
Plaintext
42 lines
2.0 KiB
Plaintext
# Guest presentation cadence against ADV.wmv's declared 30.000 fps.
|
|
# One presented frame = one RESOLVE to dest=0x14570000 (595 of them here,
|
|
# against the logger's own FRAMES=600 budget, so the two agree).
|
|
|
|
presented frames in log : 595
|
|
movie luma draws : 156
|
|
movie spans frames : 439..594 (156 frames)
|
|
presented frames per movie fr: 1.0000
|
|
|
|
distinct luma bases : 3 ['0x11590000', '0x11720000', '0x118B0000']
|
|
uses of each : [('118B0000', 52), ('11720000', 52), ('11590000', 52)]
|
|
perfect repeating 3-cycle : True (pattern ['0x118B0000', '0x11720000', '0x11590000'])
|
|
chroma planes per luma draw : {2: 156} (YUV420 -> expect 2)
|
|
|
|
run lengths (frames holding one luma base):
|
|
1 frame(s): 156
|
|
|
|
RATIO = 1.0000 labels per movie frame
|
|
H_A 30 fps guest -> 60 units/s predicted 1.0 (band 0.85-1.15)
|
|
H_B 60 fps guest -> 120 units/s predicted 2.0 (band 1.70-2.30)
|
|
VERDICT: H_A
|
|
|
|
=> guest presents at 30 x 1.0000 = 30.00 fps ; units/s = 2 x that = 60.00
|
|
|
|
# CONTROL -- the splash era of this SAME log, frames 4..226.
|
|
# The PRE-REGISTERED control was the +34/frame alpha step. It could NOT be
|
|
# run: this logger build emits vb= addresses, not vertex contents. A weaker
|
|
# control is substituted and labelled as such -- the three splash pixel
|
|
# shaders and their blend states must reproduce.
|
|
# Committed, splash-draw-pass-census.txt, an INDEPENDENT boot:
|
|
# 0xE59B2B3DA4AA9008 blend=0x07010701 the sprite shader
|
|
# 0x2E372EA28CC404B7 blend=0x00010001 the clear
|
|
# 0x5773DC18083C4C20 blend=0x07010701 the black backdrop
|
|
# This capture:
|
|
# 0xE59B2B3DA4AA9008 blend=0x07010701 x446
|
|
# 0x2E372EA28CC404B7 blend=0x00010001 x223
|
|
# 0x5773DC18083C4C20 blend=0x07010701 x223
|
|
# Same three, same blends, on an independent boot. This validates the log's
|
|
# STRUCTURE -- frame delimitation, shader and blend fields -- which is what
|
|
# the cadence measurement uses. It does NOT validate alpha extraction, and
|
|
# the cadence measurement does not use alpha.
|