Lyall / FFXVIFix

A fix for Final Fantasy XVI that adds ultrawide/narrower support, uncaps framerate in cutscenes, lets you adjust gameplay FOV and much more.
MIT License
496 stars 10 forks source link

Gameplay Framerate Limited With Mod #16

Open pixelshaded opened 2 months ago

pixelshaded commented 2 months ago

I have been playing on a 4k TV with frame gen on and getting 120fps (gsync etc).

I added this mod to play on a 32:9 gsync monitor. The cutscenes are great now, running at 60fps, but now the gameplay is capped at 60fps and is feeling hella sluggish. Is the mod assuming no one is playing at fps above 60fps?

pixelshaded commented 2 months ago

Seems that if I turn frame generation off my gameplay framerate goes back up.

pixelshaded commented 2 months ago

Also seems to unlock the framerate in cutscenes as well when I turn off framegen

pixelshaded commented 2 months ago

I'm losing about 30 fps in some areas running this mod. I also noticed that without the mod, camera movement is smooth while with the mod it is choppy. Cutscenes look great though like I said haha.

Lyall commented 2 months ago

I have been playing on a 4k TV with frame gen on and getting 120fps (gsync etc).

I added this mod to play on a 32:9 gsync monitor. The cutscenes are great now, running at 60fps, but now the gameplay is capped at 60fps and is feeling hella sluggish. Is the mod assuming no one is playing at fps above 60fps?

What kind of settings are you using. Is it Nvidia frame generation? Are you using an external framerate cap? What do you have your framerate set to in-game?

Also it'd be handy if you can post your FFXVIFix.log file too.

I'm losing about 30 fps in some areas running this mod. I also noticed that without the mod, camera movement is smooth while with the mod it is choppy. Cutscenes look great though like I said haha.

Losing framerate is to be expected given that it was running at a 16:9 resolution before. It's not like it's rendering under black bars or anything.

pixelshaded commented 2 months ago

Yes Nvidia framegen on a 4090. I do have an external framerate cap to keep the monitor within gsync ranges. I use 118fps max. In game I think is set to 120.

[2024-09-16 19:32:36.921] [FFXVIFix] [info] ----------
[2024-09-16 19:32:36.921] [FFXVIFix] [info] FFXVIFix v0.7.4 loaded.
[2024-09-16 19:32:36.921] [FFXVIFix] [info] ----------
[2024-09-16 19:32:36.921] [FFXVIFix] [info] Path to logfile: C:\Program Files (x86)\Steam\steamapps\common\FINAL FANTASY XVI DEMO\FFXVIFix.log
[2024-09-16 19:32:36.921] [FFXVIFix] [info] ----------
[2024-09-16 19:32:36.921] [FFXVIFix] [info] Module Name: ffxvi_demo.exe
[2024-09-16 19:32:36.921] [FFXVIFix] [info] Module Path: C:\Program Files (x86)\Steam\steamapps\common\FINAL FANTASY XVI DEMO\
[2024-09-16 19:32:36.921] [FFXVIFix] [info] Module Address: 0x140000000
[2024-09-16 19:32:36.921] [FFXVIFix] [info] Module Timestamp: 1725315295
[2024-09-16 19:32:36.921] [FFXVIFix] [info] ----------
[2024-09-16 19:32:36.926] [FFXVIFix] [info] Path to config file: C:\Program Files (x86)\Steam\steamapps\common\FINAL FANTASY XVI DEMO\FFXVIFix.ini
[2024-09-16 19:32:36.926] [FFXVIFix] [info] ----------
[2024-09-16 19:32:36.926] [FFXVIFix] [info] Config Parse: bFixResolution: true
[2024-09-16 19:32:36.926] [FFXVIFix] [info] Config Parse: bFixHUD: true
[2024-09-16 19:32:36.926] [FFXVIFix] [info] Config Parse: iHUDSize: 4
[2024-09-16 19:32:36.926] [FFXVIFix] [info] Config Parse: bFixFOV: true
[2024-09-16 19:32:36.926] [FFXVIFix] [info] Config Parse: fAdditionalFOV: 0
[2024-09-16 19:32:36.926] [FFXVIFix] [info] Config Parse: bUncapFPS: true
[2024-09-16 19:32:36.926] [FFXVIFix] [info] Config Parse: bCutsceneFramegen: false
[2024-09-16 19:32:36.926] [FFXVIFix] [info] Config Parse: bMotionBlurFramegen: false
[2024-09-16 19:32:36.926] [FFXVIFix] [info] Config Parse: iJXLThreads: 4
[2024-09-16 19:32:36.926] [FFXVIFix] [info] Config Parse: fJXLQuality: 99.5
[2024-09-16 19:32:36.926] [FFXVIFix] [info] ----------
[2024-09-16 19:32:36.930] [FFXVIFix] [info] Resolution Fix: Address is ffxvi_demo.exe+67ca46
[2024-09-16 19:32:36.930] [FFXVIFix] [info] Resolution Fix: Patched instruction.
[2024-09-16 19:32:36.942] [FFXVIFix] [info] Current Resolution: Address is ffxvi_demo.exe+a8d52d
[2024-09-16 19:32:36.948] [FFXVIFix] [info] FSR Framegen Aspect: Address is ffxvi_demo.exe+98a432
[2024-09-16 19:32:36.954] [FFXVIFix] [info] Vignette Strength: Address is ffxvi_demo.exe+ae2a1a
[2024-09-16 19:32:36.955] [FFXVIFix] [info] HUD Size: Address is ffxvi_demo.exe+2010b7
[2024-09-16 19:32:36.964] [FFXVIFix] [info] HUD Pillarboxing: Address is ffxvi_demo.exe+b8505c
[2024-09-16 19:32:36.971] [FFXVIFix] [info] Gameplay HUD Width: Address is ffxvi_demo.exe+bc42cc
[2024-09-16 19:32:36.979] [FFXVIFix] [info] Gameplay HUD Height: Address is ffxvi_demo.exe+bc426f
[2024-09-16 19:32:36.981] [FFXVIFix] [info] Eikon Cursor: Address is ffxvi_demo.exe+2c250a
[2024-09-16 19:32:36.987] [FFXVIFix] [info] Movies: Address is ffxvi_demo.exe+ac1f00
[2024-09-16 19:32:36.991] [FFXVIFix] [info] FOV: Address is ffxvi_demo.exe+587feb
[2024-09-16 19:32:36.995] [FFXVIFix] [info] Framerate Cap: Address is ffxvi_demo.exe+802563
[2024-09-16 19:32:36.995] [FFXVIFix] [info] Framerate Cap: Patched instruction.
[2024-09-16 19:32:36.995] [FFXVIFix] [info] JXL Tweaks: JxlEncoderDistanceFromQuality address = 7ffea23588d0
[2024-09-16 19:32:36.995] [FFXVIFix] [info] JXL Tweaks: JxlThreadParallelRunnerDefaultNumWorkerThreads address = 7ffef8d52080
[2024-09-16 19:32:36.995] [FFXVIFix] [info] JXL Tweaks: Hooked functions.
Lyall commented 2 months ago

Yes Nvidia framegen on a 4090. I do have an external framerate cap to keep the monitor within gsync ranges. I use 118fps max. In game I think is set to 120.

That may be causing issues. For DLSS frame generation I'd recommend enabling VSync for the game in the Nvidia control panel and then using the Reflex option in-game. This'll dynamically cap your framerate to keep it in the VRR range.

pixelshaded commented 2 months ago

I have vsync forced on in nvidia control panel. As far as I understand, this is not dynamic. When your fps is above your refresh rate, vsync kicks in. When below, gsync kicks in, which is the point of forcing the fps to be below your refresh rate.

https://blurbusters.com/gsync/gsync101-input-lag-tests-and-settings/14/

Lyall commented 2 months ago

I have vsync forced on in nvidia control panel. As far as I understand, this is not dynamic. When your fps is above your refresh rate, vsync kicks in. When below, gsync kicks in, which is the point of forcing the fps to be below your refresh rate.

https://blurbusters.com/gsync/gsync101-input-lag-tests-and-settings/14/

Yes the dynamic part is from reflex. If you enable nvidia control panel vsync and combine it with reflex, it will automatically keep you in the VRR range.

pixelshaded commented 2 months ago

Hmmm I can play with it. If nvidia reflex is an option in game, I turn it on. But not everything supports framegen/reflex, so I use those defaults for most games.

Lyall commented 2 months ago

That makes sense. Give it a try at least for FFXVI and if it doesn't help at all let me know. I've read quite a few reports of bad performance and crashing though (even without FFXVIFix installed) so I do wonder if it maybe is the game being variable to a certain extent.

On a tangentially related note, you can actually inject reflex support into most games these days using RTSS or SpecialK. They work pretty well in my experience.