rebtd7 / FF13Fix

Performance and bug fixes for the PC versions of FF13 and FF13-2
GNU General Public License v3.0
329 stars 22 forks source link

Gameplay is near constant sub-30fps #99

Closed Sveppi closed 1 year ago

Sveppi commented 1 year ago

Hi, I've been trying to get this to run properly. Cutscenes go to 60 but the gameplay is only in the range of 20-35, staying near 20 for most of it and I've had drops to sub-20. The fix seems to be properly installed. I'm running a Ryzen 2700X and a 2070 Super. Usage of cpu, memory and gpu barely hits 20%, with the game set to 1440p, and trying all the shadow res and AA options.

I've scoured for solutions and tried forcing a bunch of options in the GeForce panel but no dice.

Here's the log:

[TIME] [THREAD] [LOG] 23:10:07.915 00016576 FF13Fix 1.6.4 https://github.com/rebtd7/FF13Fix 23:10:07.915 00016576 Enabling hooks: 23:10:07.916 00016576 initializeHooks = 0 23:10:07.922 00016576 Loaded C:\WINDOWS\system32\d3d9.dll 23:10:07.922 00016576 createHookDirect3DCreate9 = 0 23:10:08.052 00016576 enableHookDirect3DCreate9 = 0 23:10:08.052 00016576 createHookDirect3DCreate9Ex = 0 23:10:08.172 00016576 enableHookDirect3DCreate9Ex = 0 23:10:08.172 00016576 createHookCreateWindowExA = 0 23:10:08.294 00016576 enableHookCreateWindowExA = 0 23:10:08.295 00016576 createHookCreateWindowExW = 0 23:10:08.421 00016576 enableHookCreateWindowExW = 0 23:10:08.422 00016576 createHookSetWindowLongA = 0 23:10:08.547 00016576 enableHookSetWindowLongA = 0 23:10:08.547 00016576 createHookSetWindowLongW = 0 23:10:08.667 00016576 enableHookSetWindowLongW = 0 23:10:08.667 00016576 AutoFix for "Final Fantasy XIII" enabled 23:10:08.667 00016576 Base Addr = 400000 23:10:08.667 00016576 LargeAddressAwarePatch found. ff13_exe_large_address_aware_flag = 0x23; ff13_exe_checksum = 0x02391369 23:10:08.668 00016576 createHookCreateFileA = 0 23:10:08.783 00016576 enableHookCreateFileA = 0 23:10:08.783 00016576 createHookCreateFileW = 0 23:10:08.899 00016576 enableHookCreateFileW = 0 23:10:08.899 00016576 LargeAddressAware patched back. ff13_exe_large_address_aware_flag = 0x03; 23:10:08.899 00016576 Checksum patched back. ff13_exe_checksum = 0x00000000 23:10:08.899 00016576 LargeAddressAwarePatch handled 23:10:08.985 00016576 HookCreateFileA Before Replacement: D:\SteamLibrary\steamapps\common\FINAL FANTASY XIII\white_data\prog\win\bin\ffxiiiimg.exe 23:10:08.985 00016576 HookCreateFileA After Replacement: D:\SteamLibrary\steamapps\common\FINAL FANTASY XIII\white_data\prog\win\bin\untouched.exe 23:10:09.103 00016576 disableHookCreateFileA = 0 23:10:09.222 00016576 disableHookCreateFileW = 0 23:10:09.223 00016576 Returning File Handle for D:\SteamLibrary\steamapps\common\FINAL FANTASY XIII\white_data\prog\win\bin\untouched.exe 23:10:09.807 00016576 HWND 0x000A0498: ClassName "OleMainThreadWndClass", WindowName: "OleMainThreadWndName" 23:10:13.794 00016576 MainContext::HookDirect3DCreate9 23:10:13.895 00016576 hkIDirect3D9::GetAdapterIdentifier 23:10:14.025 00016576 MainContext::HookDirect3DCreate9Ex 23:10:14.411 00016576 HWND 0x009108D6: ClassName "Static", WindowName: "test" 23:10:14.413 00016576 MainContext::HookDirect3DCreate9 23:10:14.493 00016576 hkIDirect3D9::CreateDevice 23:10:14.493 00016576 hkIDirect3D9::ApplyCreateDeviceFix 23:10:14.494 00016576 BehaviorFlags: 00000056 D3DCREATE_FPU_PRESERVE D3DCREATE_HARDWARE_VERTEXPROCESSING D3DCREATE_MULTITHREADED D3DCREATE_PUREDEVICE 23:10:14.494 00016576 BackBufferCount: BackBufferCount set to 3 23:10:14.494 00016576 PresentationInterval: PresentationInterval set to 0x80000000 23:10:14.678 00016576 HWND 0x000B0498: ClassName "SQEX.CDev.Engine.Framework.MainWindow", WindowName: "" 23:10:14.688 00016576 MainContext::HookDirect3DCreate9 23:10:14.779 00016576 hkIDirect3D9::CreateDevice 23:10:14.779 00016576 hkIDirect3D9::ApplyCreateDeviceFix 23:10:14.779 00016576 BehaviorFlags: 00000056 D3DCREATE_FPU_PRESERVE D3DCREATE_HARDWARE_VERTEXPROCESSING D3DCREATE_MULTITHREADED D3DCREATE_PUREDEVICE 23:10:14.779 00016576 BackBufferCount: BackBufferCount set to 3 23:10:14.779 00016576 PresentationInterval: PresentationInterval set to 0x80000000 23:10:15.551 00016576 HWND 0x00040912: ClassName "CicMarshalWndClass", WindowName: "CicMarshalWnd" 23:10:15.796 00014484 HWND 0x000D0966: ClassName "DIEmWin", WindowName: "DIEmWin" 23:10:15.861 00004356 HWND 0x000C090E: ClassName "OleMainThreadWndClass", WindowName: "OleMainThreadWndName" 23:10:16.937 00012704 Waited 2003.763300 ms 23:10:16.940 00012704 Starting FFXIII one time RAM patches. 23:10:16.940 00012704 NOPing the in-game instruction that sets the frame rate. 23:10:16.940 00012704 Removing game slow and synchronous controller continuous controller scanning... 23:10:16.941 00012704 Fixing ScissorRect... 23:10:16.941 00012704 Enabling controller vibration... 23:10:16.941 00012704 Frame pacer target frame rate is at address 185ac070 23:10:16.941 00012704 Frame pacer disabled. 23:10:16.941 00012704 Finished FF13 One Time Fixes 23:11:06.349 00016576 hkIDirect3DDevice9::Reset 23:11:06.352 00016576 BackBufferCount: BackBufferCount set to 3 23:11:06.353 00016576 PresentationInterval: PresentationInterval set to 0x80000000 23:12:02.769 00016576 HWND 0x000808EE: ClassName "SystemUserAdapterWindowClass", WindowName: "" 23:12:02.927 00016576 Unloaded C:\WINDOWS\system32\d3d9.dll

seuvah commented 1 year ago

Also post FF13Fix.ini. Maybe you have external fps limiter enabled.

My ini below. I have perfect 60fps zero drops.

[Options] PresentationInterval = 1 TripleBuffering = 1 FullScreenRefreshRate = 0 SwapEffect = -1 AlwaysActive = false AutoFix = true Multisample = 0 HideCursor = false ForceHideCursor = false BehaviorFlags = 0

IngameFrameRateLimit = -1 DiscardUIVertexBuffer = true DisableIngameControllerHotSwapping = true EnableControllerVibration = true VibrationStrengthFactor = 4.000000

[Adapter] Adapter = false VendorId = 0 DeviceId = 0

[Window] TopMost = false WindowClass = WindowName =

[Borderless] Borderless = false ForceWindowedMode = false AllWindows = false

[Version] Config = 6

Sveppi commented 1 year ago

Here's my .ini, no external frame limiter that I'm aware of. I'm on a 165Hz monitor.

[Options]

PresentationInterval = -1

TripleBuffering = -1

FullScreenRefreshRate = 0 SwapEffect = -1 AlwaysActive = false AutoFix = true Multisample = 0 HideCursor = false ForceHideCursor = false BehaviorFlags = 0

[FFXIII]

IngameFrameRateLimit = 0

DiscardUIVertexBuffer = false

DisableIngameControllerHotSwapping = true

EnableControllerVibration = true

VibrationStrengthFactor = 2.000000

[Adapter] Adapter = false VendorId = 0 DeviceId = 0

[Window] TopMost = false WindowClass = WindowName =

[Borderless] Borderless = false ForceWindowedMode = false AllWindows = false

[Version] Config = 6

Sveppi commented 1 year ago

I'll try your settings when I get home

seuvah commented 1 year ago

IngameFrameRateLimit = 0 change to -1 That will disable ingame limiter. And it should work )

Also if you have screen tearing change PresentationInterval = -1 to 1

TripleBuffering = -1 to 1

Sveppi commented 1 year ago

It's still all over the place :/ goes above 30 more now, but it's really inconsistent :(

Nucleoprotein commented 1 year ago

23:10:08.899 00016576 LargeAddressAware patched back. ff13_exe_large_address_aware_flag = 0x03; 23:10:08.899 00016576 Checksum patched back. ff13_exe_checksum = 0x00000000

Wrong checksum! Disable 4GB patch or use it properly! https://github.com/rebtd7/FF13Fix#usage-with-the-4gb-large-address-aware-patch-recommended

Sveppi commented 1 year ago

Updated my BIOS and now it's running basically perfectly 🤷🏻‍♂️ I re-did the FF13Fix and 4GB patcher so it should be correct now, at least not running into any issues with HD models yet. However I am noticing that text in the menu is getting cut-off (for instance the inventory, I can only see three weapons)

Nucleoprotein commented 1 year ago

Problem was 4GB patch.

Text cut off is strange... can you post some screenshot? and new log file.

Sveppi commented 1 year ago

Apparently my PC just runs on magic or something, the text isn't cut off anymore after a restart 🤷🏻‍♂️ guess that's everything resolved. Thanks!