-
Notifications
You must be signed in to change notification settings - Fork 81
SpecialK: Allow Custom SpecialK Versions #979
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
Conversation
* Fix stable DL URL being wrong * Fix auto-update SpecialK not using nightly * Replace 'default' and 'latest' with 'stable' for auto update SpecialK * Add logic to remove anything from the SpecialK Version DL dir that isn't SpecialK32/64.dll
…g archive We remove the archive now, so we should only redownload if the DLLs are missing
Unused now, we have specific versions, not a versions dropdown list
|
Added notifier (no extra logging was needed), we also now auto-create the SpecialK The langfiles needed updated for the notifier commit, so now we have to bump them too. Next up, resolve conflicts, update wiki, and then bump langfiles. Then we can merge. |
|
SpecialK wiki page has been updated. |
|
Feature has been tested and seems to work, refactor to use simply |
Implements #975.
Overview
This PR adds a new SpecialK version called "custom", and removes the old
defaultandlatestversions in favour of simplystablewhich is equivalent to the olderlatest. Previously,defaultpointed to GitHub andlatestpointed to the fixed download link on the SpecialK website. There is a minor (1 month?) difference in these versions.We also remove the
createDLSpekListsince it isn't used anymore. This was created when we downloaded the SpecialK versions list from the GitHub versions, but now we instead have a fixed list of versions we download from since a while ago (before even this PR), so we never needed to use this. It would just default to appendinglatest, since the version list was supposed to look likelatest!x.y.z!a.b.c!d.e.fetc. Just a bit of cleanup that should not cause any regressions :-) Hopefully...Custom SpecialK
When using the
customversion, either selected on the Game Menu or when "downloaded" withsteamtinkerlaunch specialk download custom, SteamTinkerLaunch will attempt to do the following:SpecialK32.dllandSpecialK64.dllin the SpecialK download directory, in a folder calledcustomThe idea behind this is to allow more flexibility with installing SpecialK versions that STL may not be able to fetch, such as those with hardcoded URLs, Discord previews, or other custom builds. This also allows for restoring the ability to use the older GitHub releases, as someone can drop the DLLs or installer into this folder, and STL will pick it up.
This also allows for using an older nightly, since we always point to the latest nightly and there may be a regression. A user can get the previously working build artifact and put the DLLs from it into the
customfolder.There is no fallback if a custom version is not found, so SpecialK will simply not be used.
Stable SpecialK
The
stableoption replaces the oldlatestoption. This makes the dropdown cleaner and since there is probably no real reason a lot of the time to usedefault, this change streamlines the SpecialK version selection.SpecialK Download Checks
The logic for checking existing SpecialK downloads has also changed in two main ways.
First, if
AUTOSPEKis off, instead of checking if the archive exists (which a user may manually remove) we instead now check ifSpecialK32.dllandSpecialK64.dllare downloaded. This acts as a better valid download check, since we need these DLLs. It makes more sense to check that the two files we need are already present instead of checking on the archive name.The only other change around this is that after a download, we remove anything from SPEKVERS folder that isn't
SpecialK32.dllorSpecialK64.dllto clean up after ourselves. There's no reason to keep the archive hanging around.This PR was tested pretty well in #975. But before I merge this PR I will need to give the wiki a touch up to reflect the new versions, what they point to, and how to use them. The SpecialK wiki probably just needs a revamp at this point 😅
TODO:
customfolder?