Skip to content

SpecialK

frostworx edited this page Oct 6, 2021 · 40 revisions

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

NOTE: SpecialK currently requires a Proton version which ships at least the api-ms-win-crt-string-l1-1-0.dll, only tested with Proton-6.18-GE-2, but latest Experimental, TKG, STL probably work as well. stl won't automatically change the Proton version, but warns (log & notifier) that above dll wasn't found.

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.

Features

When SpecialK is enabled for a game, stl will

  • download and extract (requires 7zip) the corresponding version SPEKVERS (!=discord - see above) 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

Sucessfully tested so far (with the discord version):

  • Witcher 3
  • Alien: Isolation
  • Saints Row The Third Remastered
  • Bayonetta
  • Dishonored 2
  • Fallout 4
  • Thief

(looks like all games from the Compatibility List to work)

Versions

stl distinguishes between four different SpecialK versions SPEKVERS:

  • stable (automatically downloadable, but doesn't work via Proton currently - see DISABLED below)
  • test (automatically downloadable, but doesn't work via Proton currently - see DISABLED below)
  • old (automatically downloadable, pretty ancient, but works via Proton. This version is used by default, but stl automatically switches to discord if that is available)
  • discord (not automatically downloadable, needs to be manually downloaded from SpecialK discord and placed into ~/.config/stl/downloads/specialk/discord/SpecialK.7z)

stable and test Version

DISABLED, 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)

old Version

The default version used by stl, because it is the only (partily) working version which can be downloaded automatically. It is recommended to use the discord-Version though. I only tested 4 games, two 64-bit and 2 32-bit games with the old version: both 64-bit games worked:

  • Witcher 3
  • Saints Row The Third Remastered

both 32-bit games did not work:

  • Alien: Isolation
  • Bayonetta

discord Version

recommended 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 When found there it is used automatically, no matter which Version is currently configured for the game. This version does work, as it has a UsingWINE configuration option, which disables all non-working functions automatically. stl auto-enables the UsingWINE configuration option.

using ReShade and SpecialK together

SpecialK supports loading ReShade as a plugin, but unfortunately this leads to a crash (currently). The functionality is already implemented (apart from auto-adding ReShade to the SpecialK ini if enabled), but commented out because it crashes. Edit function setShadDestDir if you want to play with it.

Clone this wiki locally