Skip to content

SpecialK

frostworx edited this page Oct 4, 2021 · 40 revisions

("Special K is an extensive game modifying framework allowing for various forms of in-depth tweaking of a game.")

Currently (2021.10) SpecialK stable and testing (see below) don't seem to work via Proton - so stl uses the old version - see end of text @DISABLED

Additionally SpecialK old does not work with current stable Proton 6.3-7, because it is missing several required dlls - f.e. api-ms-win-crt-string-l1-1-0.dll, api-ms-win-crt-stdio-l1-1-0.dll... Looks like any newer Proton version does have those dlls (latest official experimental, TKG, GE and even STL do). Tested successful with Proton-GE-6.18-GE-2! stl won't switch the proton version automatically, but just launch a warning notifier when the first DLL wasn't found in the Wineprefix and skip the SpecialK function, so the game can be started anyway!

Using SpecialK can lead to a ban, so make sure to check this Compatibility List before using!

SpecialK can be enabled in stl by enabling USESPECIALK either in the Game Menu, directly in the Game Config or by adding the game to a SpecialK Steam Category.

Additionally the version SPEKVERS used can be configured. SpecialK doesn't have versioned releases (anymore), so the options are

  • stable
  • test
  • old
  • discord

Where stable and test are used from here and the old version 0.8.66 from here

discord Version

The newest SpecialK version can only be found on the SpecialK discord channel and therefore needs to be installed manually to ~/.config/stl/downloads/specialk/discord/SpecialK.7z when using discord This version does work, as it has a UsingWINE configuration option, which disables all non-working functions automatically.

When SpecialK is enabled for a game, stl will

  • download and extract (requires 7zip) the corresponding version SPEKVERS if not available yet (download also available via Command Line)
  • determine the architecture of the game exe
  • download/update the Compatibility List if required
  • read the Render Api used by the game from above List
  • copy the matching (32 or 64 bit) SpecialK dll under the correct name (depending on the render api dxgi.dll, d3d9.dll or opengl32.dll) into the gamedir
  • install dxsetup (and vcrun2019) from Steamworks-Shared

DISABLED The default version used by stl is (currently) the old version, because both stable and test need (at least) this missing function: wine: Call from 7BC321D0 to unimplemented function POWRPROF.dll.PowerSettingRegisterNotification, aborting (see @DISABLED below) That's why the copied stable and test destination dll is disabled by appending DISABLED suffix to the filename (else the game would crash on start) (for testing stable or test just comment out the SPEKDST="${SPEKDST}_DISABLED" line in stl)

I'm not interested in spending more time in enhancing the current implementation for obvious reasons, so I only tested 4 games, two 64-bit and 2 32-bit games: both 64-bit games worked:

  • Witcher 3
  • Saints Row The Third Remastered

both 32-bit games did not work:

  • Alien: Isolation
  • Bayonetta
Clone this wiki locally