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