mirror of
https://github.com/sal063/AC6_recomp
synced 2026-08-27 00:43:39 -04:00
Added modern present pacing + dt-snap: smooth fps unlock
Guest swap thread blocks on real GPU delivery (NotifyGuestPresent feeds the delivery counter) + an absolute-deadline limiter at ac6_fps_target, not the vblank grid (no sub-harmonic staircase). dt-snap locks the sim delta to the exact target at steady rate (kills the shake). Guest vblank forced to free-run during gameplay so pacing needs zero config. ac6_unlock_fps is the single master switch, ON by default (folded in timing-hooks/vblank-auto/delta-precision/dt-snap-tolerance AND the flight-model framerate-independence fix).
This commit is contained in:
+6
-1
@@ -6,7 +6,6 @@
|
||||
#include <rex/ppc/types.h>
|
||||
|
||||
REXCVAR_DECLARE(bool, ac6_unlock_fps);
|
||||
REXCVAR_DECLARE(bool, ac6_timing_hooks_enabled);
|
||||
REXCVAR_DECLARE(bool, ac6_cutscene_clamp);
|
||||
|
||||
namespace ac6 {
|
||||
@@ -24,6 +23,12 @@ FrameStats GetFrameStats();
|
||||
// off this so it stays in lockstep with the frame-delta hooks.
|
||||
bool TimingHooksActive();
|
||||
|
||||
// ac6_min_sim_fps clamped to its supported range [10, 30]. Single source for
|
||||
// the low-fps floor shared by the frame-delta clamp (ac6DeltaPrecisionHook)
|
||||
// and the physics step cap (StepRatio) - the two must saturate at the same
|
||||
// framerate or the dynamics desync from the kinematics below 30fps.
|
||||
double ClampedMinSimFps();
|
||||
|
||||
// True while an in-engine cutscene (NU::FW::IngameCinematics, driven by
|
||||
// CAce6DemoManager::Exec) has ticked within the last decay window. Used by the
|
||||
// timing hooks to suspend the 60fps unlock so cutscenes play at native cadence.
|
||||
|
||||
Reference in New Issue
Block a user