Skip to content

screenmarks ​

Tool tools/triage/screenmarks.py (program, Triage). Mark positions read from the game's memory on a screenshot, through the camera's matrices.

Run it with ./gameframe run screenmarks ARGS or python3 tools/triage/screenmarks.py. Source on GitHub.

Its own help ​

This is the help text in the tool itself, as ./gameframe tool screenmarks prints it.

text
Mark positions read from the game's memory on a screenshot, through the camera's matrices.

Usage: screenmarks.py SCREENSHOT.png --view 16FLOATS --proj 16FLOATS [--column]
                      (--point X,Y,Z[=LABEL] ... | --points FILE) [--out marks.svg]

Each position is multiplied by the view matrix, then the projection matrix, divided by its
last component, and scaled to the screenshot's size. The result is an SVG with the screenshot
inside it and a labelled circle at each position. If the circles sit on the objects, the
positions, the matrices and their layout are right. If they do not, one of the three is wrong.

Matrices are 16 numbers in memory order, as `readdata.py f32 ADDRESS --count 16` prints them,
separated by commas or spaces. Direct3D programs multiply a row vector by the matrix (the
default). OpenGL programs multiply the matrix by a column vector: give --column. --points
reads a file of lines "x y z [label]". Points behind the camera are listed and left off.

Code: Apache 2.0. Content: CC0 1.0. No game material: bring your own copy.