find_matrices
Locate and classify 4x4 matrices in GPU traces, distinguishing projection, view, and rigid transforms to pinpoint FOV, camera, and HUD matrices.
Instructions
Find and classify every 4x4 matrix the game sends to the driver.
This is the core VR/camera-hacking tool. It covers:
fixed-function transforms -- SetTransform(D3DTS_VIEW/PROJECTION/WORLD), glLoadMatrixf/glMultMatrixf, glFrustum/glOrtho;
shader constants -- SetVertexShaderConstantF and friends, tracked through a shadow register file so matrices uploaded piecemeal still resolve, and reported as the register range that holds them (e.g. vs_c[8..11]);
uniform/constant buffer uploads -- glBufferData, UpdateSubresource and the memcpy calls apitrace records for writes to mapped memory, reported as a byte offset into the buffer (set scan_buffers=false to skip);
both storage orders, since D3D9 shader constants usually hold the transpose.
Results are grouped by slot. Read them as: kind=projection -> the game's FOV, near and far planes kind=rigid + changes_per_frame -> camera candidate; confirm with track_camera kind=viewproj in vs_c[...] -> the register range a VR patch rewrites kind=viewproj at a buffer offset -> the bytes a VR patch rewrites kind=ortho -> HUD/UI or shadow pass
Scope with calls (a single frame is usually enough and far faster).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| calls | No | ||
| kinds | No | projection,viewproj,rigid,ortho | |
| limit | No | ||
| trace | Yes | ||
| scan_buffers | No | ||
| min_confidence | No | ||
| scan_constants | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||