WakuWakuPadoru / WuWa_Simple_FPSUnlocker

A simple FPS Unlocking Tool built for Wuthering Waves! Simple and easy to use, the program takes care of the hard work for you. Designed to be easily used by anyone regardless of your technical ability.
67 stars 4 forks source link

Latest patch broke things. Reverts back to 60 FPS. #15

Closed a1chera closed 3 months ago

a1chera commented 4 months ago

Not sure what is causing this but after latest patch yesterday the game launches in 60 FPS. I ran the unlocker and it fixed things, but after logging in again this morning it reverted back to 60 FPS. I checked out the database file and it's still set to 120 FPS but it's not applying in game for some reason. Seems like they are doing something that is disabling this mod.

Constrat commented 4 months ago

They announced they were unlocking it and allowing 120 directly from the settings, but by the looks of it... They just removed the 120 lmao... "Unlocking for everyone" -> No one can get 120 even when bypassing. Way to go. I love to play this game with gsync locked at 60.

EDIT: No idea what happened, but image

Didn't restart or anything. In Jinzhou I was locked at 60. I entered a domain and I came out unlocked(?) lol

a1chera commented 4 months ago

If you enter a domain instance (Character Tutorial, or Boss Rush event for example), the FPS will get locked to 60 and you will have to restart the game to go back to 120. This sucks, I don't think there is anything we can do about it because it's bypassing the changes made to the game's database file.

Constrat commented 4 months ago

Yeah that I can confirm. Before it was always 120 cap anywhere at any time. Now it seems to be linked with something

StrixROX commented 3 months ago

Post 1.2 Update They changed the setting names in this update. GameQualitySetting -> CustomFrameRate

If this is changed to 120, you can unlock 120FPS without issue. Entering/exiting domains doesn't reset FPS cap.

Here is a little script I made using the repo's code that you can use until this is fixed. Just change the game directory location as per your installation.

import sqlite3
from pathlib import Path

GAME_DIR = "C:\Wuthering Waves\Wuthering Waves Game" # <---- Your game directory location goes here
LOCAL_STORAGE_DIR = Path(GAME_DIR).joinpath("Client", "Saved", "LocalStorage")

NEW_FRAME_RATE = 120

db = sqlite3.connect(Path(LOCAL_STORAGE_DIR).joinpath("LocalStorage.db"))
cursor = db.cursor()

#####
##
## Prints all available settings
##
#####
##cursor.execute("SELECT * FROM LocalStorage")
##for row in cursor.fetchall():
##  print(row)

#####
##
## The new frame rate setting is called CustomFrameRate
##
#####
q = input("Press ENTER to update FrameRate to 120...")
cursor.execute(f"UPDATE LocalStorage SET Value = {NEW_FRAME_RATE} WHERE Key = 'CustomFrameRate'")
db.commit()

cursor.close()
db.close()

print("FrameRate updated to 120 successfully!")
q = input("Press ENTER to exit...")
WakuWakuPadoru commented 3 months ago

Post 1.2 Update They changed the setting names in this update. GameQualitySetting -> CustomFrameRate

If this is changed to 120, you can unlock 120FPS without issue. Entering/exiting domains doesn't reset FPS cap.

Here is a little script I made using the repo's code that you can use until this is fixed. Just change the game directory location as per your installation.

import sqlite3
from pathlib import Path

GAME_DIR = "C:\Wuthering Waves\Wuthering Waves Game" # <---- Your game directory location goes here
LOCAL_STORAGE_DIR = Path(GAME_DIR).joinpath("Client", "Saved", "LocalStorage")

NEW_FRAME_RATE = 120

db = sqlite3.connect(Path(LOCAL_STORAGE_DIR).joinpath("LocalStorage.db"))
cursor = db.cursor()

#####
##
## Prints all available settings
##
#####
##cursor.execute("SELECT * FROM LocalStorage")
##for row in cursor.fetchall():
##    print(row)

#####
##
## The new frame rate setting is called CustomFrameRate
##
#####
q = input("Press ENTER to update FrameRate to 120...")
cursor.execute(f"UPDATE LocalStorage SET Value = {NEW_FRAME_RATE} WHERE Key = 'CustomFrameRate'")
db.commit()

cursor.close()
db.close()

print("FrameRate updated to 120 successfully!")
q = input("Press ENTER to exit...")

Much thanks! Will test and push an update within the day :)

UnluckyKitsune commented 3 months ago

I tried the script, but first I got an Error "the database is readonly", I changed the permission of it and then I got an I/O Error, both happened in line 29 (cursor.execute...)

StrixROX commented 3 months ago

I tried the script, but first I got an Error "the database is readonly", I changed the permission of it and then I got an I/O Error, both happened in line 29 (cursor.execute...)

try this:

UnluckyKitsune commented 3 months ago

thank you, it worked, still need to change permissions, cause it was readonly after recreation

UnluckyKitsune commented 3 months ago

nvm, as soon as I change any setting, it goes to 60 and the script goes back to the I/O Error but I cant play with the default settings, they are on medium, controller vibration, wrong resolution and wrong language, I have to change them

WakuWakuPadoru commented 3 months ago

nvm, as soon as I change any setting, it goes to 60 and the script goes back to the I/O Error

but I cant play with the default settings, they are on medium, controller vibration, wrong resolution and wrong language, I have to change them

You need to do it in order. Adjust your settings first before doing any sort of frame unlock.

UnluckyKitsune commented 3 months ago

When any setting is changed and I try running the script, it gives me the I/O Error, I just tried it again

WakuWakuPadoru commented 3 months ago

When any setting is changed and I try running the script, it gives me the I/O Error, I just tried it again

Can I know where is the game installed for you? Drive letter too.

UnluckyKitsune commented 3 months ago

C:\Program Files\Wuthering Waves\Wuthering Waves Game

UnluckyKitsune commented 3 months ago

sqlite3.OperationalError: disk I/O error this is the exact error I receive, in the "cursor.execute..." line

WakuWakuPadoru commented 3 months ago

sqlite3.OperationalError: disk I/O error this is the exact error I receive, in the "cursor.execute..." line

Make sure to ONLY use the unlocker and/or script when the game isn't running.

UnluckyKitsune commented 3 months ago

the game is always closed when I run it, yes I even looked in task manager and didnt see any wuwa related background tasks

WakuWakuPadoru commented 3 months ago

the game is always closed when I run it, yes I even looked in task manager and didnt see any wuwa related background tasks

When you check the DB file, is it still read only?

UnluckyKitsune commented 3 months ago

no, the permission are still how I changed them

WakuWakuPadoru commented 3 months ago

no, the permission are still how I changed them

Then that means that some application is somehow accessing the config file. Make sure that the unlocker and script aren't running either and try again! Make sure SqLite explorer or anything like that isn't open too.

UnluckyKitsune commented 3 months ago

I restarted my PC and before opening anything else, I run the script, still got the I/O Error

WakuWakuPadoru commented 3 months ago

I restarted my PC and before opening anything else, I run the script, still got the I/O Error

Can you try the latest release of the unlocker? I have updated it to work with the latest version and fixed a few issues with resolution and full screen mode.

WakuWakuPadoru commented 3 months ago

To all looking at this, the Unlocker has been updated to v0.7!

WakuWakuPadoru commented 3 months ago

And sorry for the wait, everyone! Was a bit busy.

After updating the game and the unlocker, I made sure to test that everything is working so if you have some issues, don't be afraid to ask :)

UnluckyKitsune commented 3 months ago

yep, this works now, thank you