nipkownix / re4_tweaks

Fixes and tweaks for the "UHD" port of Resident Evil 4
zlib License
346 stars 32 forks source link

1.9 - Can't change any settings in F1 menu, F2 menu is always open #499

Closed neatodev closed 1 year ago

neatodev commented 1 year ago

Validation

Describe your issue here (drag+drop ZIP to attach it)

Pretty much what the title says.

I did a complete reinstall of RE4HD and grabbed the new 1.9 re4_tweaks, but unlike previous versions, it seems that none of my settings are saved. After some digging, it turns out that they are saved to the dinput8.ini in the Bin32 folder, but upon launching the game none of my changes are activated or read.

I'm using the Steam version.

neatodev commented 1 year ago

I did some more digging, apparently 1.9 writes to d8input.ini, but reads the re4_tweaks\trainer.ini upon game launch.

Mister-Curious commented 1 year ago

Same problem here. Lots of confusion about what files do what, considering there are two trainer files, and three ini files. There wasn't much documentation on how any of this works, other than the headline of the 1.8 release that says:

" "Note: This update changed some sections of the .ini structure, so you will notice that some of your existing settings will revert to default."

Presently with 1.9 installed, I cant get some settings to save in game (or the ini files). I don't understand how the hierarchy of ini files work. To elucidate my confusion, here is what we presently have for settings files:

Resident Evil 4\Bin32\re4_tweaks\default_settings settings.ini trainer_settings.ini

Resident Evil 4\Bin32\re4_tweaks trainer.ini

(so the above confuses me why there are two different Trainer ini files, also the settings.ini file. (@emoose explained some of this, saying that the file was used for migrating data.. but I don't think I understand if this file is actually read or what. Some clarification on what this file does, and if it is presently working as intended would be helpful.

Also some confusion around these, (and the previously mentioned settings.ini):

Resident Evil 4\Bin32 xinput1_3.ini

Resident Evil 4\Bin32\re4_tweaks\setting_overrides MyCoolMod.ini

So as you can see, we have various files scattered throughout various directories, some of which seem to have the same parameters which is confusing without documentation. Some clarification on how these files work would be useful.

Thank you for all this amazing work!

nipkownix commented 1 year ago

The F2 console being always enabled was a silly mistake of mine. Should be fixed if you re-download it from the releases page.

About settings not being saved: I'm not sure about that. Could you post your dinput8.log here?

Also, @Mister-Curious,

So as you can see, we have various files scattered throughout various directories, some of which seem to have the same parameters which is confusing without documentation. Some clarification on how these files work would be useful.

.ini files in the default_settings shouldn't be touched by the user, and that's why there's no documentation for those. As emoose said, those are default values that are used if the main .ini files aren't present. Those being: dinput8.ini inside Bin32, and trainer.ini inside the re4_tweaks folder.

What exactly are you trying to change in the .ini and that's not being read by the game? Please give me an example.

neatodev commented 1 year ago

What exactly are you trying to change in the .ini and that's not being read by the game? Please give me an example.

Absolutely any setting. It correctly saves the desired changes to dinput8.ini, but upon restarting the game, those changes are not read, because it appears to read the re4_tweaks/trainer.ini instead. Notably, that file has the exact same structure as dinput8.

emoose commented 1 year ago

Seems we're copying default_settings\settings.ini into trainer.ini when it doesn't exist, instead of default_settings\trainer_settings.ini, could explain why it has those settings in there for you (last line of this block:)

https://github.com/nipkownix/re4_tweaks/blob/694dd3c07d9a10e97bd8233ea24ac1942d4e425e/dllmain/Settings.cpp#L760-L777

IIRC we do read in trainer.ini after the wrapper/user INI itself too, so guess those default settings that it copied in ends up overriding things.

@neatodev as a workaround for now, could you see if clearing re4_tweaks\trainer.ini of everything except [TRAINER] section lets the F1 menu save/load properly?

neatodev commented 1 year ago

@neatodev as a workaround for now, could you see if clearing re4_tweaks\trainer.ini of everything except [TRAINER] section lets the F1 menu save/load properly?

Just did. That apparently did the trick. When I loaded into the game, all the settings are read and written properly now to the expected file.

nipkownix commented 1 year ago

Seems we're copying default_settings\settings.ini into trainer.ini when it doesn't exist, instead of default_settings\trainer_settings.ini, could explain why it has those settings in there for you (last line of this block:)

Ah, the good old copy-paste trap I tend to fall into occasionally :p

Mister-Curious commented 1 year ago

I was able to get most things working with the workaround posted above, but many things still don't work in 1.9.

ShowGameOutput and SaveGameOutput still will not save when written to trainer.ini or when applied in-game and saved. I still need help HERE dealing with the crashes that this feature is causing, but until I can actually get it to load on startup, I cant really test it.

I can imagine that its lots of work to keep track of it all, so thanks for your time on this.

The camera movement is 1000 times better, so thanks for that as well!

nipkownix commented 1 year ago

dinput8.zip

Can you all check if this build fixes the settings issues?

@Mister-Curious, ShowGameOutput and SaveGameOutput aren't supposed to go into trainer.ini, they go into the main .ini.

neatodev commented 1 year ago

@nipkownix The file seems to work as expected. Settings are being read and written like previous versions. The console log seems to confirm this too:


Game version = 1.1.0

RE4 HD Project detected

Reading settings from: F:\SteamLibrary\steamapps\common\Resident Evil 4\Bin32\dinput8.ini

Reading settings from: F:\SteamLibrary\steamapps\common\Resident Evil 4\Bin32\re4_tweaks\trainer.ini

Reading settings from: F:\SteamLibrary\steamapps\common\Resident Evil 4\Bin32\re4_tweaks\setting_overrides\HDProject.ini

Game language: English

Config.ini frame rate = 60

New refresh rate = 60

ResX = 2560

ResY = 1440

Refrash rate = 60

Wrote default aspect ratio values

Cursor locked

Cursor locked

Cursor locked

Cursor locked

Writing main settings to: F:\SteamLibrary\steamapps\common\Resident Evil 4\Bin32\dinput8.ini

Writing trainer settings to: F:\SteamLibrary\steamapps\common\Resident Evil 4\Bin32\re4_tweaks\trainer.ini

Writing main settings to: F:\SteamLibrary\steamapps\common\Resident Evil 4\Bin32\dinput8.ini

Writing trainer settings to: F:\SteamLibrary\steamapps\common\Resident Evil 4\Bin32\re4_tweaks\trainer.ini

Writing main settings to: F:\SteamLibrary\steamapps\common\Resident Evil 4\Bin32\dinput8.ini

Writing trainer settings to: F:\SteamLibrary\steamapps\common\Resident Evil 4\Bin32\re4_tweaks\trainer.ini

Writing main settings to: F:\SteamLibrary\steamapps\common\Resident Evil 4\Bin32\dinput8.ini

Writing trainer settings to: F:\SteamLibrary\steamapps\common\Resident Evil 4\Bin32\re4_tweaks\trainer.ini

Writing main settings to: F:\SteamLibrary\steamapps\common\Resident Evil 4\Bin32\dinput8.ini

Writing trainer settings to: F:\SteamLibrary\steamapps\common\Resident Evil 4\Bin32\re4_tweaks\trainer.ini

Game log
Mister-Curious commented 1 year ago

ShowGameOutput = truehad always been in my xinput1_3.ini file, but using that last file you sent seems to have corrected the issue of the log not showing on load. Now for some tests! Thank you.

neatodev commented 1 year ago

Thanks for fixing this super quick.