Runtime Timing

Timing API: KERNEL32.dll!GetTickCount IAT 0x005a0464

GetTickCount refs: 0x00401946, 0x0040197c, 0x00401a18

Frame interval: 48 ms at 0x0059e37c; nominal tick: 20.833 fps; catch-up cap: 3

Web tile step: 48 ms from 1 actor-controller command * 48 ms.

Historical four-frame step: 192 ms from 4 moving frames * 48 ms.

actor movement consumer still inferred: False

The original executable uses KERNEL32!GetTickCount around the main update loop and stores a 0x30 ms frame interval at 0x0059e37c. The loop waits until elapsed time covers the current frame count, computes a catch-up count, caps it at 3, and calls 0x00411476 with that count. The browser runtime therefore uses 48 ms as the original timing tick and, with the actor-controller tile mutation evidence from runtime_movement, maps one actor-controller pass to one tile step. The old four-moving-frame 192 ms browser default is retained only as historical context.

Verification

checkvalue
frameIntervalMatchesExpectedTrue
frameIntervalGlobalMatchesExpectedTrue
frameCapMatchesExpectedTrue
getTickIatMatchesExpectedTrue