From b500e32ca2b35fbefbdd5c94a1cf782e309ed20a Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Sat, 18 Jul 2026 08:54:52 +0400 Subject: docs(evidence): correct Terrain camera receiver --- docs/reference/render-frame.md | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'docs/reference/render-frame.md') diff --git a/docs/reference/render-frame.md b/docs/reference/render-frame.md index 32abc6d..54bcf9a 100644 --- a/docs/reference/render-frame.md +++ b/docs/reference/render-frame.md @@ -50,6 +50,13 @@ the frame, and clears it before return. `sendEndOfRender` is a separate export at RVA `0x13D90`. This is frame-order evidence only: the camera ABI, matrices and viewport values still require dynamic capture or further decompilation. +Receiver-side GOG Terrain evidence refines this contract. `stdSetCurrentCamera2` +(RVA `0x4FD40` in Terrain SHA-256 +`af87d1b2e728a0be73c52be3b44cc196ab46da7799f25a15d40f8c9b0b425ead`) queries +selector `18` on the supplied object and invokes slot `+12` on that result. It +does not store the supplied pointer in `stdGetCurrentCamera2`; that getter +returns a Terrain global populated by selector `8` during Terrain initialization. + ## Parity risks - x87 precision and rounding; -- cgit v1.2.3