Drrun.exe makes some games run in turbo mode (even with vsync and framecaps).
When I run some games through drrun.exe, they appear to run in turbo mode, for example the game says 60 fps but the characters and environments run at like 800 fps, initially I thought it was the tool I created (to convert F16c to standard CPU instructions to make the game more compatible with old CPUs), but even without the tool it runs fast, it's like messing with the internal timing of the game, I was testing it on StarOcean The Divine Force.
Nothing special to reproduce just drrun.exe -- SO6.exe, not sure if it affects other games I will test more later, on a side note I did test dynamorio version 9 to version 11, all versions are affected, version 8 makes it run in slowmo :)
Hi @gigabyte-1000 !
This is an interesting case, I don't think we ever tried to attach DynamoRIO to a game like StarOcean. This might be a timing transparency issue (https://dynamorio.org/transparency.html#sec_trans_pretend), which is hard to obtain:
Timing Transparency We would like to make it impossible for the application to determine whether it is executing inside of DynamoRIO. However, this may not be attainable for some aspects of execution, such as the exact timing of certain operations. This brings efficiency into the transparency equation.
However, DynamoRIO usually slows down the application it attaches to, rather than speeding it up!
I'm not sure about the overhead of your tool, but drrun.exe -- SO6.exe only attaches DynamoRIO to the application without running anything, so it should add very low overhead (still doesn't explain why it runs faster).
When you say:
the game says 60 fps but the characters and environments run at like 800 fps
Do you mean that the in-game (or are you using an external software to count fps?), on-screen counter displays 60 fps, but actually playing the game feels much faster? If so, is it 800 fps (or however many) smooth or does the game seem to be skipping frames (which would indicate more than a timing transparency issue)? Does the in-game fps counter still display 60 fps when running without DynamoRIO?
Something that we always suggest is to run drrun with -debug -loglevel 4 (make sure you have a debug build) and look at the logs/ subdirectory of your DynamoRIO install or build directory (https://dynamorio.org/page_debugging.html#autotoc_md139). It contains more information about what's happening.
Also, you can start a post in the DynamoRIO Google group: https://groups.google.com/g/DynamoRIO-Users, to reach a wider audience that might have tried something similar in the past.