Steam

Steam

252 ratings
An Unofficial Guide to Special K
By Aemony
An unofficial collection of guides and instructions for Kaldaien's Special K framework/mod.
2
   
Award
Favorite
Favorited
Unfavorite
Introduction
Special K[discourse.differentk.fyi] is an extensible game modifying framework created by Kaldaien. This framework can be used to modify graphics related settings of games. The framework supports both local (game-specific) and global (system-wide) injection, whatever matches the user's need the best.

    This Steam Guide is not really kept up to date any longer. Refer to the official Special K wiki[wiki.special-k.info] for updated instructions.

Injection Methods
Special K supports being injected locally (game-specific) or globally (system-wide in every Steam game/tool using a supported API). There isn't a huge difference between the two methods right now. A local installation of Special K is a bit trickier to set up as it involves more than simply extracting the archive and running a file or two, but it gives the user an assurance that the injection starts automatically with the game and doesn't inject itself into unwanted applications.

Simplified comparison
Local (game-specific)
Global (system-wide)
Pros
+ Automatic injection on game launch
+ Ensures injection into only specific games
+ More stable and better support
+ Might work in cases where global does not
+ Automatic injection in supported Steam games
+ Supports delayed injecting into already running games
+ No additional files needed in game folder
+ Central folder for all configuration and logs
Cons
- Requires some extra steps setting up
- Might inject the mod in unwanted executables

Global (system-wide)
The following subsections are dedicated to the global (system-wide) wrapper installation of Special K.

The global injector only injects itself into games using steam_api or have SteamApps in its path by default. Please see the Enable for non-Steam games subsection for how to enable for non-Steam games.

├ Install (auto)
The below guide will help you install Special K using the automated installer called SKIM (Special K Install Manager).

  1. Start by installing the prerequisites for Special K to work. See the Prerequisites chapter above for what's needed.

  2. Download the latest version of Special K Install Manager (SKIM) from GitHub[github.com].

    Note: The old version of SKIM64.exe (v 0.7.5.1) is available from here[github.com].

  3. Run the installer from a folder of your choosing.

  4. Confirm that Special K (Global Injector) is the selected product and then click Install:



  5. Within a couple of seconds the window below will open and show the download progress of the Install DLL file.



  6. You should now get the following window. Click on Yes to begin the automatic download and install of the latest stable version of Special K.



    If this window doesn't show and SKIM only indicates "Mod Not Installed" at the bottom then something went wrong. Please try the following:
    • Click on Uninstall, followed by Install again and see if the window shows up now.
    • Run the following command in CMD/Run to clear your Internet Explorer cache:
      RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 4
    • If any of the above didn't work then read the chapter Manual Installation on how to install the global injector manually.

  7. After the download and install have been completed, click on Finish Install.



  8. SKIM defaults with Start With Windows enabled. Uncheck it if you don't want it to autostart when Windows starts up. Then click on OK.

    I recommend disabling autostarting with Windows if you play an online game that might not like having Special K injected into it, as that could very well result in an account ban of said game. Use Special K in online games at your own risk.



  9. SKIM will now enable global injection and minimize itself to the notification area of Windows.



  10. Launch a game through Steam.

  11. If everything works correctly you should have a yellow On-Screen Display in the upper left corner of the game you launched.



    If the OSD doesn't show up then something is interfering with Special K. Navigate to Documents\My Mods\SpecialK\Profiles\[game_executable].exe and upload copies of:
    • logs/SpecialK.log
    • logs/modules.log
    • logs/crash.log (may be empty)
    to a new thread over on the on the Special K Forum[discourse.differentk.fyi]. It will hopefully allow the community to help you find and resolve the issue.

  12. While in-game, use the control panel of Special K (Ctrl + Shift + Backspace) to tweak the settings to your liking.

  13. Closing Notes:

    • The Enable for non-Steam games section of this guide might be relevant to some.

    • Right click on SKIM in the notification area to quickly toggle injection status.


├ Install (manual)
The below guide will allow you to install the global injector of Special K manually if the automated installer doesn't work as intended.
  1. Start by installing the prerequisites for Special K to work. See the Prerequisites chapter above for what's needed.

  2. Download the latest stable version listed in the official forum thread.

    You can also download the SpecialK_x_y_z.7z archives manually from GitHub's release tab[github.com], however doing so will not give you any insight in what branch (testing/stable) the versions are in.

    Please note that on GitHub, the oldest version of the current release is just called "SpecialK.7z."

  3. Open your Documents folder and create the folders My Mods\SpecialK. If you've done it correctly you should have an empty folder and a folder structure that looks like this:



  4. Extract the archive you downloaded previously to the newly created SpecialK folder:



  5. Launch SKIM64.exe and select the product Special K (Global Injector).

  6. Click on Start Injecting to enable the global injection.



  7. Minimize the window to put SKIM in the notification area of Windows.



  8. Launch a game through Steam.

  9. If everything works correctly you should have a yellow On-Screen Display in the upper left corner of the game you launched.



    If the OSD doesn't show up then something is interfering with Special K. Navigate to Documents\My Mods\SpecialK\Profiles\[game_executable].exe and upload copies of:
    • logs/SpecialK.log
    • logs/modules.log
    • logs/crash.log (may be empty)
    to a new thread over on the on the Special K Forum[discourse.differentk.fyi]. It will hopefully allow the community to help you find and resolve the issue.

  10. While in-game, use the control panel of Special K (Ctrl + Shift + Backspace) to tweak the settings to your liking.

  11. Closing Notes:

    • The Enable for non-Steam games section of this guide might be relevant to some.

    • Right click on SKIM in the notification area to quickly toggle injection status.


├ Autostart with Windows
  1. Launch SKIM64.

  2. Right click on the SKIM icon in the notification area of Windows.

  3. Enable Start With Windows.


├ Convert to local install
See the following chapter: Local (game-specific) -> Install (auto).

├ Disable for certain executables
You can disable Special K auto-injection by one of the following methods:

  • Hold down Ctrl + Shift while the process is starting up. This should open the Special K Injection Compatibility Options where you can disable the auto-injection.

  • Create an empty file called SpecialK.deny.[executable_name] in the same folder as the executable file you want to disable injection for.

    Examples:
    • To disable injection for ui32.exe we'll create an empty file called SpecialK.deny.ui32

├ Enable for non-Steam games
The global injector only injects itself into games using steam_api or have SteamApps in its path. The below steps are required to get the injector to inject into non-Steam games launched outside of Steam.

  1. Install the global injector of Special K.

  2. Browse to the folder of the executable file of the game you want to opt-in the global injector for.

    If you need help locating the folder do the following:
    1. Launch the game you want to install the local injector for.
    2. Alt+Tab out into Windows and open the Task Manager.
    3. Navigate to the Processes (Win7) or Details (Win8+) tab.
    4. Right click on the game process anc click Open file location.
    5. A File Explorer window will now open to the folder of the executable file.

  3. Create a new empty file called SpecialK.[GraphicsAPI] according to the graphics API the game uses, see below for a

    Graphics API
    Filename to Use
    DirectX 9
    SpecialK.d3d9
    DirectX 11
    SpecialK.dxgi
    OpenGL
    SpecialK.OpenGL32

    Examples:
    • HuniePop is a DirectX 9 game, hence we'll create an empty file called SpecialK.d3d9
    • Overwatch is a DirectX 11 game, hence we'll create an empty file called SpecialK.dxgi

    Be sure to disable Hide exentions for known file types[www.thewindowsclub.com] in File Explorer to be sure that the file is named correctly.

  4. Launch your game with the global injector enabled.

  5. If everything works correctly you should have a yellow On-Screen Display in the upper left corner of the game and a new folder matching the name of the executable of the game will be created in Documets\My Mods\SpecialK\Profiles. Game-specific settings and logs will be stored in this folder.

    If the OSD doesn't show up then something is interfering with Special K. Navigate to Documets\My Mods\SpecialK\Profiles\[executable_name.exe] and upload copies of:
    • logs/dxgi.log
    • logs/modules.log
    • logs/crash.log (may be empty)
    to a new thread over on the on the Special K Forum[discourse.differentk.fyi]. It will hopefully allow the community to help you find and resolve the issue.

  6. While in-game, use the control panel of Special K (Ctrl + Shift + Backspace) to tweak the settings to your liking.

└ Uninstall
Steps to uninstall the global (system-wide) wrapper of Special K.

  1. Navigate to Documents\Mods\SpecialK and run SKIM64.exe.

  2. Verify that Special K (Global Injector) is selected in the product list.



  3. Click on Uninstall.



    If Uninstall is not available then continue on to the next step.

  4. Remove the Documents\Mods\SpecialK folder to remove any data that might be remaining.

Local (game-specific)
The following subsections are dedicated to the local (game-specific) wrapper installation of Special K. This method works for non-Steam games without any additional tweaks.

├ Install (auto)
Newer versions of the global (system-wide) wrapper of Special K includes an option to easily install a local (game-specific) wrapper for a game.

  1. Ensure that SKIM is running and that global injection has been started.

  2. Launch the game you want to convert to a local wrapper.

  3. While in-game, open the control panel of Special K (Ctrl + Shift + Backspace).

  4. Open the File menu and click on Install wrapper DLL for this game:



  5. What this does is automatically create the appropriate [graphicsAPI].dll file in the folder of the game executable as well as a SpecialK.central file that tells the local wrapper to use the game profile in the Documents\My Mods\SpecialK\Profiles\[executable].exe folder.

  6. Restart the game to use the new local wrapper instead.

├ Install (manual)
The below guide will allow you to install the local injector of Special K for a specific game.

  1. Start by installing the prerequisites for Special K to work. See the Prerequisites chapter above for what's needed.

  2. Download the latest stable version listed in the official forum thread.

    You can also download the SpecialK_x_y_z.7z archives manually from GitHub's release tab[github.com], however doing so will not give you any insight in what branch (testing/stable) the versions are in.

    Please note that on GitHub, the oldest version of the current release is just called "SpecialK.7z."

  3. Browse to the folder of the executable file of the game you want to install the local injector for.

    If you need help locating the folder do the following:
    1. Launch the game you want to install the local injector for.
    2. Alt+Tab out into Windows and open the Task Manager.
    3. Navigate to the Processes (Win7) or Details (Win8+) tab.
    4. Right click on the game process anc click Open file location.
    5. A File Explorer window will now open to the folder of the executable file.

  4. Extract the archive you downloaded to the folder of the game executable you located.

    Do not extract any steam_api[64].dll file contained within the archive to the game folder! If you happen to do as much, revalidate the game file through Steam to get the original back.

    You should now have the following selected files and folders in the folder of the game executable:


  5. Rename the appropriate Special K DLL file according to the game architecture and graphics API it uses.

    Game
    DLL To Use
    32-bit
    SpecialK32.dll
    64-bit
    SpecialK64.dll

    Graphics API
    Rename DLL To
    Comment
    DirectX 8
    d3d8.dll
    Requires Plug-In: dgVoodoo installed
    DirectX 9
    d3d9.dll
    DirectX 11
    dxgi.dll or d3d11.dll
    Newer versions supports injection through d3d11.dll
    OpenGL
    OpenGL32.dll
    DInput8
    dinput8.dll
    Alternative injection method for titles that uses DirectInput 8.

    Examples:
    • HuniePop is a 32-bit DirectX 9 game, hence we'll rename SpecialK32.dll to d3d9.dll
    • Fallout 4 is a 64-bit DirectX 11 game, hence we'll rename SpecialK64.dll to dxgi.dll

    If you're unsure what CPU architecture and/or graphics API the game uses please use Google or the PCGamingWiki[pcgamingwiki.com] to look that up.

  6. Launch your game.

  7. If everything works correctly you should have a yellow On-Screen Display in the upper left corner of the game and one additional file (an ini file matching the DLL file) as well as two folders (logs and Version) will be created in the game folder.

    If the OSD doesn't show up then something is interfering with Special K. Navigate to the game folder and upload copies of:
    • logs/[GraphicsAPI].log
    • logs/modules.log
    • logs/crash.log (may be empty)
    to a new thread over on the on the Special K Forum[discourse.differentk.fyi]. It will hopefully allow the community to help you find and resolve the issue.

  8. While in-game, use the control panel of Special K (Ctrl + Shift + Backspace) to tweak the settings to your liking.

  9. Optional: Remove unnecessary Special K files from the game folder:
    • ReadMe (folder)
    • inject.bat
    • SKIM64.exe
    • SpecialK[32/64].dll (not the renamed DLL file necessary for the injection to work)
    • SpecialK[32/64].pdb (only if you've downloaded the Debug Symbols archive)
    • uninject.bat

├ Store config/logs in Documents
A local installation will by default store its configuration and logs in the game folder itself. However it's possible to tell Special K to use the same folder as the global installation uses.

  1. Navigate to the folder of the game executable that the local install of Special K resides in.

  2. Create a new file called SpecialK.central in that folder.

  3. Special K will now look for its configuration and logs under the Documents\My Mods\SpecialK\Profiles\[executable_name].exe folder instead.

  4. If you have customized the settings of Special K for the game then move the configuration file for Special K ([graphicsAPI].ini, e.g. d3d9.ini, dxgi.ini etc) to the new folder under Documents.

└ Uninstall
Steps to uninstall the local (game-specific) wrapper of Special K.

  1. Navigate to the folder of the executable file of the game you installed the local wrapper in.

  2. Remove Special K related files and folders:

    • /CEGUI/
    • /logs/
    • /Version/
    • d3d9.[dll/ini], dxgi.[dll/ini], or OpenGL32.[dll/ini]
    • SpecialK.central
    • SpecialK.[d3d9/dxgi/OpenGL32] (only exists for non-Steam games using the global injector)

  3. If a file called SpecialK.central existed, remove the Documents\My Mods\SpecialK\Profiles\[executable_name].exe folder as well as all of its contents.

< >
88 Comments
DoublePlusUngood Mar 5 @ 10:03am 
Crap, no editing comments but for me.
Make sure to NOT be in fullscreen mode. If all this was already mentioned sorry but I ain't got time to go through 9 pages.
DoublePlusUngood Mar 5 @ 10:00am 
Also HIGHLY recommend a ReShade, just using legacy Colorfullness and Curves alone on default take away the absolute horrible desaturation this game has and brings back the contrast. Reds look red not sun-bleach barely pink...
I mention cuz this white haze trend drives me nuts but can confirm the fix and special K didn't conflict with ReShade.
DoublePlusUngood Mar 5 @ 9:55am 
For anybody info my onscreen framerate monitor (have only used Nvidia) still shows the game at 60 fps after this fix.
Make sure Vsync is turned OFF in options.
Will still say 60 fps onscreen but upon checking my monitor menu (hopefully yours has one) it says 144hz with Gsync on.
With Vsync on my monitor reports 60hz so I know it's working.
SPQR_Jack Nov 26, 2020 @ 10:37am 
Sup man, I've been trying to use the Special K to fix the Final Fantasy VIII remastered frame rate problem. I downloaded the 0.10.3.7 version from: https://github.com/Kaldaien/SpecialK/releases/tag/sk_0_10_2 , did a manual local instalation (copied the SpecialK32.pdb and SpecialK32.dll to the game folder and renamed the dll to OpenGL32.dll), but when I try running the game I get an error message saying:The procedure entry point wglGetProcAddress could not be located in the dynamic vehicle library Final Fantasy VIII Remastered\FFVIII_EFIGS.dll.
When I delete the specialK files from the game folder the games starts normaly again, but whenever I try using SpecialL's file I get this error message.
Any idea how to fix this?
adnan? Aug 7, 2020 @ 4:41pm 
Just did my bad
Aemony  [author] Aug 7, 2020 @ 4:35pm 
@adnasn, please post over on the dedicated forum for Special K: https://discourse.differentk.fyi/
adnan? Aug 7, 2020 @ 4:22pm 
adnan? Aug 7, 2020 @ 4:20pm 
Hello! i've been having a lot of issues with RE4, each time i run it the "metal gear detected" sound plays and game crashes then a crash log appears. Anyone know anything about this?
Aemony  [author] May 26, 2020 @ 10:45pm 
@One Eyed Leftist: You probably had rundll32.exe processes running in the background that were responsible for the global injection.

SKIM64.exe and the new SKIF.exe tool in the Steam release is basically just frontends that loads the DLL files through rundll32.exe processes that runs in the background. Often times, when a user is unable to remove the Documents\My Mods\SpecialK folder, its because either one of those processes are running with a lock on the Special K DLL files, or the DLL file is injected in a process which then retains a lock on the files.

The usual recommendation I have to work around this is the following

1. Disable auto-start in SKIM (or SKIF, if that's being used).
2. Restart your system.
3. Remove the SpecialK folder.
One Eyed Leftist May 26, 2020 @ 6:45pm 
I don't know if there is a virus (I just read down and saw somebody had a positive, and the explanation of it), but I only got the virus notification after I was trying to uninstall it and nothing I did would get rid of it. This made me think it was a virus, because it kept loading after I thought it was uninstalled!

It seems until I told Windows Defender to delete something, Special K was welded to my system. Once I did that and found the Special K directory and deleted that it seemed to get rid of it. I still want to use it but I'm using the Steam version instead... Trying to run that one with SKIM64 stuck was causing a nasty issue of Special K trying to run in Special K, which nearly ripped a hole in the space/time continuum!!