mirror of
https://github.com/sal063/AC6_recomp
synced 2026-07-13 07:57:06 -04:00
2b52e5e2c8
With the unlock forcing single-vblank presents, frame-locked content (menus, hangar, in-engine cutscenes) free-runs far too fast while only gameplay should. Pace the guest vblank dynamically: free-run only while the 3D world is being rendered, otherwise force the native 60Hz. "World is rendering" is detected from the GPU side - the command processor stamps a heartbeat (NotifyWorldCompositorDraw) whenever a draw uses the world/effects compositor pixel shader (ucode 17e5e4ac3e713245), which runs every frame of 3D but never in the 2D front-end. The present timing hook then sets a guest-vblank Hz override via the new GraphicsSystem hook. Only engages under the unlock; ac6_dynamic_vblank=false restores the plain always-on unlock.