ReShade + SpecialK: Improve installing SpecialK on top of ReShade #921
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The last major piece of work required for #894.
Overview
Currently if a user installs ReShade and then tries to install SpecialK, the ReShade DLLs from the standalone install will be left over. Likewise, if a user installs ReShade and SpecialK together with ReShade as a SpecialK plugin, and then either disables this option OR disables SpecialK entirely, the previous ReShade DLLs will not get cleaned up.
This gets messy, pollutes game files, and gets in the way of some duplicate DLL detection logic.
This PR adds logic to do the following:
This cleans up the game files a lot and makes for a cleaner experience.
Future Work
I am not too sure how the INI file cleanup should work, for now it's a toggle in the ReShade remove functions. For now they're left as-is, but in future, we may need to rename them somehow, so configuration can be preserved. A user can do this manually for now, though.
I tested this with HoloCure and NieR:Automata, so I am confident it works. It also won't get in the way of the DLL duplicate checking logic. This is pretty much ready for merging after some quick code review!