Hello, everyone! Thanks for testing my mod and all of the feedback! If you do not enable DirectX 11, the game will crash on load due to DXVK requirements. Check the main description for information on how to enable DirectX 11. You may experience some occasional textures loading slowly in highly populated areas such as the slums or wall market, this is normal. If r.Streaming.PoolSize is at the recommended size (2850 for Low texture/shadow resolution or 5700 for High), texture loading delay should be rare or nonexistent, and only in highly populated areas.
Information for lower VRAM requirements: The game stutters when the VRAM gets full, and you need ~1GB free at all times for dynamic special effects. If you monitor your VRAM usage on the title screen, this should give you a rough estimate of what's left for r.Streaming.PoolSize (texture streaming pool in MB), just make sure to leave ~1GB of memory available for dynamic special effects. Unfortunately, the game is not very optimized for texture loading, so this is a tradeoff of stutter and texture fidelity if you do not have a large amount of VRAM.
If you lower texture and shadow resolution (through built-in graphics options menu) to Low instead of High, the memory requirement for the texture pool is halved.
Play at a higher FPS: If your monitor supports a higher refresh rate than 60Hz for VSync, and your system can perform well, you may see more success at a higher framerate due to more granularity with texture loading and better frame stability. Just make sure you adjust r.Streaming.MaxNumTexturesToStreamPerFrame according to your framerate. Divide by 1.5 for 90 FPS, 2 for 120 FPS, 2.4 for 144 FPS, etc. and then round the number. The value to divide by is your framerate divided by 60 FPS. You may want to round up to be safe, but you may have better performance by rounding down. It must be a minimum of 1. Also, adjust the in-game framerate setting to be as close as possible. r.Streaming.NumStaticComponentsProcessedPerFrame should be adjusted similarly, but won't have as large of a performance impact.
Additional tweaks: If you change r.Streaming.HiddenPrimitiveScale to 0, this will improve performance by delaying texture loading for hidden objects. This will cause some textures to (visibly and noticeably) take longer to load in certain circumstances.r.Streaming.HiddenPrimitiveScale is essentially a decimal percentage of texture resolution for hidden objects, e.g., 0.5 halves the resolution of them. (0.5 is the game's default value.) Combine with r.Streaming.MaxHiddenPrimitiveViewBoost=0 for maximum effect.
If you set r.Streaming.Boost to a value between 0 and 1, it will slow the loading of textures. For example, setting it to 0.5 will dramatically delay texture loading which may reduce stutter. There will be a visible delay with textures loading in with this setting.
Option to try (may not affect performance much): This doesn't appear to make a big difference for me, but you can try this: The game overwrites the s.LevelStreamingActorsUpdateTimeLimit setting in Engine.ini with 2.5. You can fix this by opening up the console in game (press tilde) and entering the following command: s.LevelStreamingActorsUpdateTimeLimit 0.1 (Press Enter to submit the command.) Unfortunately, you will have to reinput this every time you boot the game until a fix is found.
Testing options at runtime: You can change settings at runtime using the console (press tilde to open and close). Press tilde again without entering a command to open the output of the console. Enter just the name of the variable to view the value. For example, enter the following to view the value of r.Streaming.MaxNumTexturesToStreamPerFrame: r.Streaming.MaxNumTexturesToStreamPerFrame Use variable value to set a value, for example to set r.Streaming.MaxNumTexturesToStreamPerFrame to 3: r.Streaming.MaxNumTexturesToStreamPerFrame 3 Copy-pasting saves a lot of typing with this. And press up and down arrow keys to scroll through input history. If you change variables at runtime, they will only persist until you exit the game. To make them permanent, you must change Engine.ini.
If you add dxvk.conf to FFVIIRemakeIntergrade\End\Binaries\Win64, it's a config file for DXVK. You can enable VSync without having to use any outside settings with this: dxgi.syncInterval = 1 d3d9.presentInterval = 1 I recommend these settings as well (uses less memory and has more responsive gameplay): dxgi.maxFrameLatency = 1 d3d9.maxFrameLatency = 1 dxgi.numBackBuffers = 2 d3d9.numBackBuffers = 2 And you can use this as a handy option to show some stats monitoring on the screen: dxvk.hud = fps,frametimes,memory,compiler
Anyone found this mod causes a huge delay in all NPC interactions? Like Cloud and the NPCs just stare at each other for 10 seconds before the text or cutscene starts. It works perfectly otherwise.
Would love to know if there's a setting alter to address this issue.
before using this i got 60fps with stuttering and after using this i got 46fps with even more stuttering even tho only in crowded area. tried adjusting the poolsize is working but ruin the enviromental textures such as building.
tried DXVK Only is the same, the game is even smoother but so is the stutter in crowded area, weird i know.
for now playing this game with 30fps in-game cap is my go.
EDIT: Gotta downgrade the exe file to the one from v1.0.0.0, look up how to downgrade the game and you'll find out. FF7Hook now works without an error message with the older exe.
Launching the game (with -dx11 and latest FF7Hook) results in a popup saying that the game's version doesn't support FF7Hook and it will be disabled, asking me to get the latest version (Which I do have). This does not work at all it would seem. I have the dll files next to the game's exe and nothing is renamed.
352 comments
If you do not enable DirectX 11, the game will crash on load due to DXVK requirements. Check the main description for information on how to enable DirectX 11.
You may experience some occasional textures loading slowly in highly populated areas such as the slums or wall market, this is normal. If r.Streaming.PoolSize is at the recommended size (2850 for Low texture/shadow resolution or 5700 for High), texture loading delay should be rare or nonexistent, and only in highly populated areas.
Information for lower VRAM requirements:
The game stutters when the VRAM gets full, and you need ~1GB free at all times for dynamic special effects. If you monitor your VRAM usage on the title screen, this should give you a rough estimate of what's left for r.Streaming.PoolSize (texture streaming pool in MB), just make sure to leave ~1GB of memory available for dynamic special effects. Unfortunately, the game is not very optimized for texture loading, so this is a tradeoff of stutter and texture fidelity if you do not have a large amount of VRAM.
If you lower texture and shadow resolution (through built-in graphics options menu) to Low instead of High, the memory requirement for the texture pool is halved.
Play at a higher FPS:
If your monitor supports a higher refresh rate than 60Hz for VSync, and your system can perform well, you may see more success at a higher framerate due to more granularity with texture loading and better frame stability. Just make sure you adjust r.Streaming.MaxNumTexturesToStreamPerFrame according to your framerate. Divide by 1.5 for 90 FPS, 2 for 120 FPS, 2.4 for 144 FPS, etc. and then round the number. The value to divide by is your framerate divided by 60 FPS. You may want to round up to be safe, but you may have better performance by rounding down. It must be a minimum of 1. Also, adjust the in-game framerate setting to be as close as possible. r.Streaming.NumStaticComponentsProcessedPerFrame should be adjusted similarly, but won't have as large of a performance impact.
Additional tweaks:
If you change r.Streaming.HiddenPrimitiveScale to 0, this will improve performance by delaying texture loading for hidden objects. This will cause some textures to (visibly and noticeably) take longer to load in certain circumstances. r.Streaming.HiddenPrimitiveScale is essentially a decimal percentage of texture resolution for hidden objects, e.g., 0.5 halves the resolution of them. (0.5 is the game's default value.)
Combine with r.Streaming.MaxHiddenPrimitiveViewBoost=0 for maximum effect.
If you set r.Streaming.Boost to a value between 0 and 1, it will slow the loading of textures. For example, setting it to 0.5 will dramatically delay texture loading which may reduce stutter. There will be a visible delay with textures loading in with this setting.
Option to try (may not affect performance much):
This doesn't appear to make a big difference for me, but you can try this:
The game overwrites the s.LevelStreamingActorsUpdateTimeLimit setting in Engine.ini with 2.5. You can fix this by opening up the console in game (press tilde) and entering the following command:
s.LevelStreamingActorsUpdateTimeLimit 0.1
(Press Enter to submit the command.) Unfortunately, you will have to reinput this every time you boot the game until a fix is found.Testing options at runtime:
You can change settings at runtime using the console (press tilde to open and close). Press tilde again without entering a command to open the output of the console.
Enter just the name of the variable to view the value. For example, enter the following to view the value of r.Streaming.MaxNumTexturesToStreamPerFrame:
r.Streaming.MaxNumTexturesToStreamPerFrame
Use variable value to set a value, for example to set r.Streaming.MaxNumTexturesToStreamPerFrame to 3:r.Streaming.MaxNumTexturesToStreamPerFrame 3
Copy-pasting saves a lot of typing with this. And press up and down arrow keys to scroll through input history.If you change variables at runtime, they will only persist until you exit the game. To make them permanent, you must change Engine.ini.
These are the graphics quality enhancements I personally use: https://pastebin.com/PC8PTDmz (Based upon a mod, check it out for more options.)
Some common options:
r.DepthOfFieldQuality=0 ; Disable depth of field blur used in cinematics, up to your personal preference
This is a useful website for looking up UE4 console variables.r.DefaultFeature.MotionBlur=0 ; Disable motion blur, the game is very blurry with motion blur on
r.ScreenPercentage=100 ; Enable super sampling by raising this above 100, however there is a graphical 'green light' bug if the internal resolution is above 4096, i.e., the maximum is 200% at 1080p and 150% at 1440p, unusable at 4K
This a list of the console variables supported by the game. (Taken from FFVIIHook mod page.)
You can enable VSync without having to use any outside settings with this:
dxgi.syncInterval = 1
I recommend these settings as well (uses less memory and has more responsive gameplay):d3d9.presentInterval = 1
dxgi.maxFrameLatency = 1
And you can use this as a handy option to show some stats monitoring on the screen:d3d9.maxFrameLatency = 1
dxgi.numBackBuffers = 2
d3d9.numBackBuffers = 2
dxvk.hud = fps,frametimes,memory,compiler
Would love to know if there's a setting alter to address this issue.
before using this i got 60fps with stuttering and after using this i got 46fps with even more stuttering even tho only in crowded area.
tried adjusting the poolsize is working but ruin the enviromental textures such as building.
tried DXVK Only is the same, the game is even smoother but so is the stutter in crowded area, weird i know.
for now playing this game with 30fps in-game cap is my go.
Launching the game (with -dx11 and latest FF7Hook) results in a popup saying that the game's version doesn't support FF7Hook and it will be disabled, asking me to get the latest version (Which I do have). This does not work at all it would seem. I have the dll files next to the game's exe and nothing is renamed.