First, let me start with I'm interested in reverse engineering the in game timing of both offline and online games, and experimenting with the dependencies these games have on local system clocks and - if it's online - the online clock, and seeing what happens with these games should I speed up or slow down the clock on a Microsoft Windows based system.
I found this utility (https://www.nirsoft.net/utils/run_as_date.html) which intercepts GetSystemTime, GetLocalTime, GetSystemTimeAsFileTime, NtQuerySystemTime, GetSystemTimePreciseAsFileTime calls made to Windows and returns back a corresponding date and time that I set - which can be in the future or the past.
The problem with this utility is - the time runs in complete synchronization with my system clock, so should I set the date and time for precisely one year in the future for this application - every second on my clock is one second on the intercepted call's clock.
What I would LIKE to do is decouple time a little more. Same type of application, where when I set the start date and time - and then - I set a 'relative speed' where 1/1 would be one second for every second in my real world or 1/5 might be for every one second in the real world is five seconds in the game world.
Any advice, hints, or clues where I can achieve the desired results?