Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Special K: Remove dxsetup and vc2022 installation #898

Merged
merged 5 commits into from
Sep 6, 2023

Conversation

sonic2kk
Copy link
Owner

@sonic2kk sonic2kk commented Sep 6, 2023

Should resolve the final parts of #893. In short, this PR should make SpecialK work out-of-the-box now.

When installing Special K, SteamTinkerLaunch performs two additional steps: Install dxsetup and vc2022 (previously vc2019 before some recent changes). It installs these packages by using the Steamworks Shared packages to do so, which are the packages Steam uses to install these components when required by a game.

These must have been required previously, but in testing, I found that vc2022 specifically causes games to crash. When this package is not installed, SpecialK works as normal. dxsetup will be installed if required by a game, as this sets up Direct3D.

Currently on master, for Special K to work, one must install the vcredist2022 package. This creates a duplicate prefix for some reason, and I suspect this is why SpecialK works during this step. When the prefix is entirely unmodified as part of the SpecialK installation (that is, dxsetup and vc2022 are not installed), SpecialK works with our existing logic which is mostly just fetching the correct DLLs/INI files and putting them into the same folder as the game executable.

This PR also does two other minor things:

  1. Adds a notifier for when SpecialK is being installed (currently a hardcoded string, not in the langfiles yet)
  2. Removes the d3dcompiler_47 DLL installation, as this is not required for SpecialK to run -- It is required to use SpecialK and ReShade (which is problematic but that's for another time), but STL will install this as part of its ReShade installation, so there is no case where this DLL has to be installed just to use SpecialK.

I tested this with NieR:Automata and it works. I will test NieR:Replicant as it is the only other SpecialK compatible game I am willing to test with at the moment.

TODO:

  • Test with more games
  • Remove commented code
  • Put notifier string in langfiles

dxsetup will be installed if required by a game, and vc2022 actually breaks games in testing.
@sonic2kk
Copy link
Owner Author

sonic2kk commented Sep 6, 2023

User confirmed in #893 that this resolves the remaining issues with installing and using SpecialK (aside from problems with ReShade+SpecialK, which are tracked separately at #894).

I'm going to test NieR:Replicant with SpecialK and see if the install process works for it, too. So far NieR:Automata is the main game that has been tested, and NieR:Replicant is the only other one I'm comfortable testing for now. If issues crop up we can address them separately.

It's worth noting that some parts of SpecialK may not work, but this is likely outside of the scope of SteamTinkerLaunch (ex: the FPS cap remover for NieR:Automata). It could be the case that SpecialK, for compatibility reasons perhaps, disables some tweaks for compatibility on Linux.

@sonic2kk
Copy link
Owner Author

sonic2kk commented Sep 6, 2023

Everything except for a version bump is ready for this PR to be merged, just waiting on NieR:Replicant to download so I can test it :-) Once I confirm SpecialK installs correctly with it, I will bump the version and merge this.

@sonic2kk
Copy link
Owner Author

sonic2kk commented Sep 6, 2023

Confirmed that this worked with NieR:Replicant. Ready to merge after a version bump!

@sonic2kk sonic2kk merged commit d7add4c into master Sep 6, 2023
@sonic2kk sonic2kk deleted the specialk-remove-steamworks-install branch September 10, 2023 02:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant