Closed Zzyxz closed 7 years ago
If you have vsync, wouldn't the actual FPS always be a division of 60? So 60, 30, 20, etc..? I don't think you'd be able to have a "target" fps of 48 (unless I'm missing something). I use g-sync myself, so its less critical, but I don't mind trying to make this work for more people. In the meantime, you could try setting the Target FPS to 60, and then the target load to 120. That might behave the way you want.
I've also thought about trying to enable v-sync selectively for the remainder of the frame-time, if the amount of work time < target frame-time. Unfortunately I don't actually know enough about DirectX to do that.
As for CheatEngine, I just had to restart the game a few times with different ShadowDirDistance values (FO4 doesn't use ShadowDistance). The relative addresses remain the same, and CheatEngine can scan across multiple runs of the same app.
My target fps is of course 60 FPS. But its quite impossible to get 60 FPS all the time. I'm looking for a balance between quality and FPS.
I have no problem to sacrifice 5 FPS to increase my shadowdistance from 3000 to 8000 as long as i have more than 48 FPS. If i play with 55 FPS or 50 FPS, it doesnt matter, as i won't reach the 60 FPS anyway in that area. The quality gain from the lost 5 FPS is much bigger than the 5 FPS itself. Shadows add a lot of atmosphere and when you have a buffer of 10 FPS, shadows also don't jump all the time up and down. which can be quite distracting, when you see them moving all the time.
a targetFPS 60 and targetLoad 120 won't help there. targetLoad, is the loading screen fps or is it the shadowdistance value that is increased/decreased?
As for CheatEngine, I just had to restart the game a few times with different ShadowDirDistance values (FO4 doesn't use ShadowDistance). The relative addresses remain the same, and CheatEngine can scan across multiple runs of the same app.
Ah, ok, thanks. pretty interesting to know. I'm also new to all that stuff and i want to dig in deeper and learn more, as its a pretty interesting field. I also thought about writing my own F4SE plugins etc, but till then i need to study more source codes.
targetload isn't at all what you think it is. It is the "target percentage of amount of time to work during the frame" If the target FPS = 60, that then having a targetLoad of 120 would mean that "target the work time to be no lower than 48 FPS"
So, try my suggestion, let me know if it doesn't help.
I've added support to disable frame capping in 0.9.1.
One feature i liked from the mainbranch was that the FPS was uncapped in simpleMode (as im using Fallout 4 Vsync to keep my FPS at 60) and my FPS target was 48. ShadowDistance was adjusted only when i hit below 48 FPS.
Splitting fTargetFPS into an additional fFPSLock or fFPSBuffer: AdjustDistance() = fTargetFPS-fFPSBuffer , so that fTargetFPS no longer caps the FPS would be "better" at least for people that play with vsync and want to keep a buffer before it gets adjusted.
Just wanted to throw that in, thanks for updating the project!
Something additionally, how do you track down the adresses of for example the shadowDistance, using CheatEngine? Tried that in the past days for several hours, but its not that easy. Used CE in the past but only for small games.