diag(cdb): flap-cam-measure.cdb — retail eye-hover + CameraManager smoothing capture

Attaches to live retail, dumps CameraManager/SmartBox type offsets, captures viewer eye origin per frame (pub+sought) to measure boom jitter vs acdream. Used to pin the indoor flicker to the camera's published/swept eye (retail settled ~tens of um vs acdream ~1.3mm).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Erik 2026-06-08 23:14:54 +02:00
parent 2ec189c106
commit 3c178b28e6

View file

@ -0,0 +1,18 @@
* Retail camera-boom measurement (2026-06-08): confirm the eye-hover jitter at rest AND read the
* CameraManager smoothing (stiffness) + SmartBox boom offset, so R-A4 matches retail rather than guesses.
* HOLD THE CAMERA STILL during this capture (~300 frames, a few seconds).
* SmartBox+0x08 viewer Position; frame.m_fOrigin x/y/z = ecx+0x44 / +0x48 / +0x4c (raw float bits).
* viewer_sought_position+origin (pre-collision desired eye) = ecx+0x94 / +0x98 / +0x9c. cell = ecx+0x0c.
.logopen C:\Users\erikn\source\repos\acdream\.claude\worktrees\thirsty-goldberg-51bb9b\flap-cam-measure.log
.sympath C:\Users\erikn\source\repos\acdream\refs
.symopt+ 0x40
.reload /f acclient.exe
.echo ==== CameraManager TYPE (field offsets: t_stiffness / r_stiffness / viewer_offset) ====
dt acclient!CameraManager
.echo ==== SmartBox TYPE (find camera_manager + viewer_offset fields) ====
dt acclient!SmartBox
r $t0 = 0
bp acclient!SmartBox::update_viewer "r $t0 = @$t0 + 1; .if (@$t0 == 1) { .echo ==== LIVE SmartBox @ first hit ====; dt acclient!SmartBox @ecx }; .printf \"[eye] h=%d cell=%x pub=(%08x,%08x,%08x) sought=(%08x,%08x,%08x)\\n\", @$t0, poi(@ecx+0x0c), poi(@ecx+0x44), poi(@ecx+0x48), poi(@ecx+0x4c), poi(@ecx+0x94), poi(@ecx+0x98), poi(@ecx+0x9c); .if (@$t0 >= 300) { .detach } .else { gc }"
g