From 3c178b28e64401b83f95ba9c5880b7b06fbaf254 Mon Sep 17 00:00:00 2001 From: Erik Date: Mon, 8 Jun 2026 23:14:54 +0200 Subject: [PATCH] =?UTF-8?q?diag(cdb):=20flap-cam-measure.cdb=20=E2=80=94?= =?UTF-8?q?=20retail=20eye-hover=20+=20CameraManager=20smoothing=20capture?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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) --- tools/cdb/flap-cam-measure.cdb | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 tools/cdb/flap-cam-measure.cdb diff --git a/tools/cdb/flap-cam-measure.cdb b/tools/cdb/flap-cam-measure.cdb new file mode 100644 index 00000000..75362e65 --- /dev/null +++ b/tools/cdb/flap-cam-measure.cdb @@ -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