Anonymous edits have been disabled on the wiki. If you want to contribute please login or create an account.

Difference between revisions of "Special K"

From PCGamingWiki, the wiki about fixing PC games
m (d)
m (dev -> postdev)
 
(87 intermediate revisions by 23 users not shown)
Line 1: Line 1:
{{state|dev|application}}
+
{{state|postdev|application}}
 
{{Infobox software
 
{{Infobox software
|cover       = Special K cover.jpg
+
|cover           = Special K cover.png
|developers   =  
+
|developers       =  
 
{{Infobox game/row/developer|Kaldaien}}
 
{{Infobox game/row/developer|Kaldaien}}
 
{{Infobox game/row/developer|Contributors|ref={{Note|Special K also includes contributions from other developers, mostly related to various game-specific fixes, features, or changes.}}}}
 
{{Infobox game/row/developer|Contributors|ref={{Note|Special K also includes contributions from other developers, mostly related to various game-specific fixes, features, or changes.}}}}
 
|release dates=  
 
|release dates=  
 
{{Infobox game/row/date|Windows|July 29, 2015}}
 
{{Infobox game/row/date|Windows|July 29, 2015}}
|steam appid = 1157970
+
|steam appid     = 1157970
 
|steam appid side =  
 
|steam appid side =  
|license     = freeware
+
|official site    = https://special-k.info/
 +
|license         = freeware
 
}}
 
}}
  
Line 19: Line 20:
 
|release history  = The framework traces its origin back to 2015<ref>{{Refurl|url=https://steamcommunity.com/app/377160/discussions/0/496881136898870103/#c496881136899025618|title=Steam Community - Fallout 4 - Fallout 4 "Works"|date=2020-06-14|snippet=I've built this whole DLL up over several months and used it to fix Arkham Knight originally and then Tales of Zestiria. At the rate things are going I'm probably going to have to add new features to it every time a console game is ported to PC, lol.}}</ref> and attempts to fix and improve the state of [[Batman: Arkham Knight]],<ref>{{Refurl|url=https://github.com/Kaldaien/BMF|title=GitHub - Kaldaien - Batman "Fix" (BMF)|date=2020-06-14}}</ref> [[Fallout 4]],<ref>{{Refurl|url=https://github.com/Kaldaien/FO4W|title=GitHub - Kaldaien - Fallout "Works" (FO4W)|date=2020-06-14}}</ref> and [[Tales of Zestiria]].<ref name="TZFix">{{Refurl|url=https://github.com/Kaldaien/TZF/|title=GitHub - Kaldaien - Tales of Zestiria "Fix" (TZFix)|date=2020-06-14}}</ref> Over the years Special K have introduced a number of improvements and fixes for both less known games as well as extremely popular ones, and are often most known for its work on titles such as the ''Tales of'' series of games<ref name="TZFix"/><ref>{{Refurl|url=https://github.com/Kaldaien/TBF|title=GitHub - Kaldaien - Tales of Berseria "Fix" (TBFix)|date=2020-06-14}}</ref><ref>{{Refurl|url=https://github.com/Kaldaien/TSF|title=GitHub - Kaldaien - Tales of Symphonia "Fix" (TSFix)|date=2020-06-14}}</ref> between 2015 and 2017, [[NieR: Automata]]<ref>{{Refurl|url=https://github.com/Kaldaien/FAR|title=GitHub - Kaldaien - Fix (NieR) Automata Resolution (FAR)|date=2020-06-14}}</ref> in 2017, [[Monster Hunter: World]]<ref>{{Refurl|url=https://steamcommunity.com/app/582010/discussions/3/1745594817439431537/|title=Steam Community - Monster Hunter: World - (Special K) Monster Hunter: World (Dead Mod)|date=2020-06-14}}</ref> in 2018, or from one of the multitude of other less known games that has seen a few tweaks or fixes across the years.
 
|release history  = The framework traces its origin back to 2015<ref>{{Refurl|url=https://steamcommunity.com/app/377160/discussions/0/496881136898870103/#c496881136899025618|title=Steam Community - Fallout 4 - Fallout 4 "Works"|date=2020-06-14|snippet=I've built this whole DLL up over several months and used it to fix Arkham Knight originally and then Tales of Zestiria. At the rate things are going I'm probably going to have to add new features to it every time a console game is ported to PC, lol.}}</ref> and attempts to fix and improve the state of [[Batman: Arkham Knight]],<ref>{{Refurl|url=https://github.com/Kaldaien/BMF|title=GitHub - Kaldaien - Batman "Fix" (BMF)|date=2020-06-14}}</ref> [[Fallout 4]],<ref>{{Refurl|url=https://github.com/Kaldaien/FO4W|title=GitHub - Kaldaien - Fallout "Works" (FO4W)|date=2020-06-14}}</ref> and [[Tales of Zestiria]].<ref name="TZFix">{{Refurl|url=https://github.com/Kaldaien/TZF/|title=GitHub - Kaldaien - Tales of Zestiria "Fix" (TZFix)|date=2020-06-14}}</ref> Over the years Special K have introduced a number of improvements and fixes for both less known games as well as extremely popular ones, and are often most known for its work on titles such as the ''Tales of'' series of games<ref name="TZFix"/><ref>{{Refurl|url=https://github.com/Kaldaien/TBF|title=GitHub - Kaldaien - Tales of Berseria "Fix" (TBFix)|date=2020-06-14}}</ref><ref>{{Refurl|url=https://github.com/Kaldaien/TSF|title=GitHub - Kaldaien - Tales of Symphonia "Fix" (TSFix)|date=2020-06-14}}</ref> between 2015 and 2017, [[NieR: Automata]]<ref>{{Refurl|url=https://github.com/Kaldaien/FAR|title=GitHub - Kaldaien - Fix (NieR) Automata Resolution (FAR)|date=2020-06-14}}</ref> in 2017, [[Monster Hunter: World]]<ref>{{Refurl|url=https://steamcommunity.com/app/582010/discussions/3/1745594817439431537/|title=Steam Community - Monster Hunter: World - (Special K) Monster Hunter: World (Dead Mod)|date=2020-06-14}}</ref> in 2018, or from one of the multitude of other less known games that has seen a few tweaks or fixes across the years.
  
In 2018 the framework innovated a general-purpose method of "retrofitting" [[Glossary:High dynamic range (HDR)#HDR output on a HDR display|HDR output]] support for existing Direct3D 11-based SDR games in Windows,<ref>{{Refurl|url=https://steamcommunity.com/groups/SpecialK_Mods/discussions/17/1746720717354579471/|title=Steam Group - Special K - "Kaldaien's Mod" - HDR FAQ|date=2020-06-14}}</ref> a feature that has since continued to evolve and in 2020 was updated to support most D3D11 based games compatible with [[#Flip model presentation|flip model presentation]].<ref>{{Refurl|url=https://store.steampowered.com/newshub/app/1157970/view/2197135853639318572|title=Steam - Special K v 0.11.0.28 - Improved HDR Retrofit|date=2020-06-14}}</ref><ref>{{Refurl|url=https://store.steampowered.com/newshub/app/1157970/view/2181375791424967991|title==Steam - Special K v. 0.11.0.30 - Added support for HDR to NieR: Automata|date=2020-06-14}}</ref>
+
In 2018 the framework innovated a general-purpose method of "retrofitting" [[Glossary:High dynamic range (HDR)#HDR output on an HDR display|HDR output]] support for existing Direct3D 11-based SDR games in Windows,<ref>{{Refurl|url=https://steamcommunity.com/groups/SpecialK_Mods/discussions/17/1746720717354579471/|title=Steam Group - Special K - "Kaldaien's Mod" - HDR FAQ|date=2020-06-14}}</ref> a feature that has since continued to evolve and in 2020 was updated to support most D3D11 based games compatible with [[#Flip model presentation|flip model presentation]],<ref>{{Refurl|url=https://store.steampowered.com/newshub/app/1157970/view/2197135853639318572|title=Steam - Special K v 0.11.0.28 - Improved HDR Retrofit|date=2020-06-14}}</ref><ref>{{Refurl|url=https://store.steampowered.com/newshub/app/1157970/view/2181375791424967991|title==Steam - Special K v. 0.11.0.30 - Added support for HDR to NieR: Automata|date=2020-06-14}}</ref> including some emulators such as [https://discourse.differentk.fyi/t/dolphin-emulator-compatibility-list/435 Dolphin] and [https://discourse.differentk.fyi/t/pcsx2-emulator-comatibility-list/359/1 PCSX2]. By leveraging a wrapper for older APIs such as [[dgVoodoo 2]] it is also possible to retrofit some earlier DirectX titles with HDR support.
  
 
In late 2019<ref>{{Refurl|url=https://steamdb.info/app/1157970/history/?changeid=U:13054713|title=SteamDB - Special K - Displaying change #U:13054713|date=2020-06-14}}</ref> after years of having its development be focused on and around the Steam platform and games without itself being an official part of the platform, [https://store.steampowered.com/app/1157970/Special_K/ Special K] was submitted and approved for publication on Steam. This change opened up possibilities for more advanced features that leveraged the Steam platform, and development of Special K transitioned over to using Steam as the delivery method for updates and development branches. A new frontend called '''Special K Injection Frontend (SKIF)''' began development to serve as such on Steam, and the legacy '''Special K Install Manager (SKIM)''' was officially seen as obsolete.
 
In late 2019<ref>{{Refurl|url=https://steamdb.info/app/1157970/history/?changeid=U:13054713|title=SteamDB - Special K - Displaying change #U:13054713|date=2020-06-14}}</ref> after years of having its development be focused on and around the Steam platform and games without itself being an official part of the platform, [https://store.steampowered.com/app/1157970/Special_K/ Special K] was submitted and approved for publication on Steam. This change opened up possibilities for more advanced features that leveraged the Steam platform, and development of Special K transitioned over to using Steam as the delivery method for updates and development branches. A new frontend called '''Special K Injection Frontend (SKIF)''' began development to serve as such on Steam, and the legacy '''Special K Install Manager (SKIM)''' was officially seen as obsolete.
Line 25: Line 26:
 
In July 2020 the product was submitted to Valve for final approval before release, but was denied citing the way it used the Steamworks API as well as marketing that used copyrighted third-party IPs to display its functionality.<ref>{{Refurl|url=https://steamcommunity.com/groups/SpecialK_Mods/discussions/0/3570700856110421443/?ctp=535#c2798376099468708942|title=Steam Group - Special K - Special K - v 0.10.3 - (HDR stuff probably) - Reply #8021 by GPUnity|date=2020-07-30|snippet=After review, we will not be able to ship your game on Steam. While we strive to ship most titles submitted to us, we found that this title contains content that we won’t distribute, including the way it uses the Steamworks API, and marketing that uses copyrighted third-party IP.}}</ref> Following this event as well as the simultaneous but unrelated community bans{{Note|Community bans prevents almost all forms of participation in features tied to the Steam Community, including but not limited to posting on any public forums and Steam Groups (including those related to the user) as well as screenshot sharing, cloud save synchronization, etc.}} for its developer on the platform, Special K left the Steam platform in favor of [https://discourse.differentk.fyi/ a dedicated forum.]  
 
In July 2020 the product was submitted to Valve for final approval before release, but was denied citing the way it used the Steamworks API as well as marketing that used copyrighted third-party IPs to display its functionality.<ref>{{Refurl|url=https://steamcommunity.com/groups/SpecialK_Mods/discussions/0/3570700856110421443/?ctp=535#c2798376099468708942|title=Steam Group - Special K - Special K - v 0.10.3 - (HDR stuff probably) - Reply #8021 by GPUnity|date=2020-07-30|snippet=After review, we will not be able to ship your game on Steam. While we strive to ship most titles submitted to us, we found that this title contains content that we won’t distribute, including the way it uses the Steamworks API, and marketing that uses copyrighted third-party IP.}}</ref> Following this event as well as the simultaneous but unrelated community bans{{Note|Community bans prevents almost all forms of participation in features tied to the Steam Community, including but not limited to posting on any public forums and Steam Groups (including those related to the user) as well as screenshot sharing, cloud save synchronization, etc.}} for its developer on the platform, Special K left the Steam platform in favor of [https://discourse.differentk.fyi/ a dedicated forum.]  
  
|current state    = The graphics API that development is focused on is '''Direct3D 11''' (DirectX 11), with '''Direct3D 9''' (DirectX 9) and '''OpenGL''' being of a lower priority. '''Direct3D 8 (DirectX 8) and older''' versions of DirectX are supported through [[dgVoodoo 2]]. '''Direct3D 12''' (DirectX 12) as well as '''Vulkan''' are currently not supported, however some preliminary development have been made for both. '''Direct3D 10''' (DirectX 10) is neither supported nor planned.
+
|current state    = The graphics API that development is focused on is '''Direct3D 11''' (DirectX 11), with '''Direct3D 12''' (DirectX 12), '''Direct3D 9''' (DirectX 9), and '''OpenGL''' being of a lower priority. '''Direct3D 8 (DirectX 8) and older''' versions of DirectX are supported through [[dgVoodoo 2]]. '''Vulkan''' is currently not supported, however some preliminary development has been made for it. '''Direct3D 10''' (DirectX 10) is neither supported nor planned, though Special K's [[#Flip model presentation|DXGI flip model presentation override]] has been shown to be compatible with D3D10 games as well.  
 
 
As of early August 2020 focus is on getting the new dedicated forum up and running as well as adjust Special K and its supporting tools for being managed outside of the Steam platform.
 
 
}}
 
}}
  
 
'''Key points'''
 
'''Key points'''
{{++}} An open beta for the Steam release of Special K is currently ongoing [https://steamcommunity.com/app/1157970/discussions/2/2270319347580265040/ and can be applied to here.]
+
{{ii}} '''As with other third-party software, Special K can have an adverse effect if used in multiplayer titles with anti-cheat protection.'''
{{ii}} '''As with other third-party stuff, Special K can have an adverse effect if used in multiplayer titles where anti-cheat protection exist.'''
 
 
{{mm}} [[List of games compatible with Special K]] covers the state of support for Special K in various games.
 
{{mm}} [[List of games compatible with Special K]] covers the state of support for Special K in various games.
  
 
'''General information'''
 
'''General information'''
 +
{{mm}} [https://discord.gg/specialk Official Discord server]
 
{{mm}} [https://discourse.differentk.fyi/ Official forum]
 
{{mm}} [https://discourse.differentk.fyi/ Official forum]
 +
{{mm}} [https://wiki.special-k.info/ Official wiki]
 +
{{mm}} [https://github.com/SpecialKO/SpecialK/blob/-/CHANGELOG.txt Changelog]
 +
{{mm}} [https://github.com/SpecialKO/SpecialK Official repository]
 +
<!--
 +
{{mm}} [https://gitlab.special-k.info/Kaldaien/SpecialK/-/blob/21.x.y/CHANGELOG.txt Changelog] and [https://discourse.differentk.fyi/tag/release-notes Release notes]
 +
{{mm}} [https://gitlab.special-k.info/groups/special-k/-/shared Source code] {{Note|Source code for older releases can be found on [https://gitlab.com/Kaldaien/SpecialK/tags GitLab.com].}}
 
{{mm}} [https://steamcommunity.com/app/1157970/discussions/ Steam Community Discussions] (retired)
 
{{mm}} [https://steamcommunity.com/app/1157970/discussions/ Steam Community Discussions] (retired)
 
{{mm}} [https://steamcommunity.com/groups/SpecialK_Mods Official Steam Group] (retired)
 
{{mm}} [https://steamcommunity.com/groups/SpecialK_Mods Official Steam Group] (retired)
{{mm}} [https://steamcommunity.com/sharedfiles/filedetails/?id=933337066 Unofficial Guide]
+
{{mm}} [https://steamcommunity.com/sharedfiles/filedetails/?id=933337066 Unofficial Guide] (retired)-->
~~{{mm}} [https://store.steampowered.com/newshub/app/1157970 Changelog] {{Note|Changelog for older non-Steam releases can be found on [https://gitlab.com/Kaldaien/SpecialK/tags GitLab.com].}}~~
 
{{mm}} Source code ([http://gitlab.special-k.info/Kaldaien/SpecialK Special K], [http://gitlab.special-k.info/Kaldaien/skif SKIF]) {{Note|Source code for older releases can be found on [https://gitlab.com/Kaldaien/SpecialK/tags GitLab.com].}}
 
  
 
==Availability==
 
==Availability==
 
{{Availability|
 
{{Availability|
{{Availability/row|1= Official |2= https://discourse.differentk.fyi/ |3= DRM-Free |4= GPL v2 prohibits DRM on all distributions of Special K. |5=  |6= Windows }}
+
{{Availability/row|1= Official |2= https://special-k.info/ |3= DRM-Free |4= |5=  |6= Windows }}
 +
{{Availability/row|1= Steam |2= 1157970 |3= DRM-Free |4= Delisted by Valve in July 2020. |5=  |6= Windows |7= unavailable }}
 
}}
 
}}
{{ii}} Earlier releases are available on [https://github.com/Kaldaien/SpecialK/releases GitHub.]
+
{{ii}} Development releases are available on [https://discord.gg/specialk the Discord server.]
 +
{{ii}} Earlier releases are available on [https://wiki.special-k.info/en/SpecialK/Tools#previous-versions-of-special-k the wiki.]
  
 
==Installation==
 
==Installation==
  
===SKIF vs. SKIM===
+
===Normal===
'''Special K Injection Frontend (SKIF)''' is the new frontend developed along with {{Store link|Steam|1157970|the Steam distributed version}} of Special K and is used to manage the local Special K install. Features includes toggling global injection, disable individual games, or change the whitelist or blacklist for non-Steam games. As the tool is still under constant development in 2020 it often sees new features or functionality arrive monthly. As of August 2020 following the delisting of Special K on Steam the focus for the tool changed to become a cross-platform solution and is now provided through [https://discourse.differentk.fyi/ the Special K forums.]
 
 
 
'''Special K Install Manager (SKIM)''' is the old frontend used and distributed before the Steam version of Special K was introduced. SKIM is limited to toggling global injection as well as supports automated install of some game-specific mods.
 
 
 
===Global (system-wide)===
 
 
{{Image|Special K Injection Frontend (SKIF).png|The modern launcher [[#SKIF vs. SKIM|Special K Injection Frontend (SKIF)]]}}
 
{{Image|Special K Injection Frontend (SKIF).png|The modern launcher [[#SKIF vs. SKIM|Special K Injection Frontend (SKIF)]]}}
{{Image|Special K Install Manager (SKIM) Launcher.png|The legacy launcher [[#SKIF vs. SKIM|Special K Install Manager (SKIM)]]}}
+
{{ii}} The recommended mode of installation.<ref>{{Refcheck|user=Aemony|date=2023-06-14|comment=This is the mode we recommend constantly nowadays.}}</ref>
 
 
{{ii}} '''Stop the global injection before starting a multiplayer game where Special K might have an adverse effect.'''
 
  
The global injection feature of Special K allows it to initialize its functionality automatically in all Steam games/applications it detects, as well as non-Steam games the user manually allows. This feature is also sometimes referred to as the "system-wide" injection method. See [[#Local (game-specific)|Local (game-specific)]] for how to install Special K for a single game.
+
{{Fixbox|description=Install Special K:|fix=
 
 
As with other third-party tools (e.g RTSS) with similar system-wide injection functionality, Special K relies on so called [https://docs.microsoft.com/en-us/windows/win32/winmsg/about-hooks CBT hooks] in Windows to get its DLL files loaded ("injected") into processes within the same security context (the user space) that makes use of some sort of window. This injection method is necessary to inject Special K early enough within game processes to apply some of its more advance functionality, such as HDR retrofits, flip model presentation, full render modding capabilities, and more. After the DLL file have been injected into a process Special K checks what process it finds itself in to determine whether to initialize its functionality or not; either by detecting the process as having been launched through Steam or by matching an entry on the user-managed whitelist of Special K. If Special K finds itself within a non-whitelisted process, it will not initialize itself fully and instead remain idle within the process until either the process is terminated or the global injection is stopped.
 
 
 
Earlier versions of Special K (circa 2017) also unloaded ("uninjected") themselves from the process they found themselves in if the process was detected as non-whitelisted, however the way CBT hooks functioned meant that Windows would within milliseconds reload ("reinject") the DLL files of Special K within the process again. This behavior created an endless loop where the Special K DLL files got loaded and unloaded hundreds if not thousands of times per second in some processes. Shortly after the release of the CBT-based injection method the behavior was discovered to cause various unexpected issues in some third-party application, leading eventually to the behavior of Special K being changed to allow its DLL file remain in an uninitialized state within non-whitelisted processes instead.<ref>{{Refcheck|user=Aemony|date=2020-06-14|comment=This endless loop of Windows injecting the DLL files of Special K within non-whitelisted processes and Special K unloading itself did not cause issues with all applications, however those that did would experience weird and unexplained behaviors. For example, [https://winscp.net/ WinSCP] would mostly work, however when performing some actions a ''massive'' delay of 5-10 seconds could occur.}}</ref>
 
 
 
{{Fixbox|description=Install the global injector of Special K:|fix=
 
 
# Start by downloading the latest version available of either of the two:
 
# Start by downloading the latest version available of either of the two:
#* The latest [[#SKIF vs. SKIM|SKIF]]-based version is available through the [https://discourse.differentk.fyi/ Special K forums.]
+
#* The latest development version which includes the latest features and changes is available through [https://discord.gg/specialk the Discord server.]
#* An older [[#SKIF vs. SKIM|SKIM]]-based version, v0.10.3, is available on [https://github.com/Kaldaien/SpecialK/releases/tag/sk_0_10_2 GitHub.]
+
#* The [https://sk-data.special-k.info/SpecialK.exe latest stable] [[#SKIF vs. SKIM|SKIF]]-based version which gets updated every couple of months is available through the [https://discourse.differentk.fyi/ Special K forums.]
# Now continue based on what version you use:
+
# Download and run the installer.
#* '''Special K Injection Frontend (SKIF)''':
+
# Launch '''Special K''' at the end of the installation or through the start menu of Windows.
#*# Extract the archive you downloaded at a location of your choice.
+
# Navigate to the '''Library''' tab of the application to see detected games.
#*# Run the '''Special K Injection Frontend (SKIF)''' using '''SKIF.exe''' located within the extracted files.
+
#* SKIF detects and lists Epic, GOG, Steam, and Xbox games automatically.
#*# Click on '''Start Service'''.
+
# Select and launch the game through the application.
#* '''Special K Install Manager (SKIM)''':
+
# Use {{Key|Ctrl|Shift|Backspace}} to access the control panel while in-game.
#*# Extract the archive you downloaded at a location of your choice.
 
#*# Run the '''Special K Install Manager (SKIM)''' using either '''SKIM.exe''' (32-bit) or '''SKIM64.exe''' (64-bit) located within the extracted files.
 
#*# Select '''Special K (Global Injector)''' in the product list.
 
#*# Click '''Install'''.
 
#*#* Note that some antivirus/internet security suites can cause the installation to fail.
 
#*# After the global injector have been installed injection should automatically have started. To stop the injection, click on '''Stop Injecting''' in SKIM.
 
#*# Use {{Key|Ctrl|Shift|Backspace}} to access the control panel while in-game.
 
#*# Use the '''Special K Install Manager''' (aka SKIM) icon in the notification area of Windows to start/stop the global injector. A shortcut on the start menu should've also been created during the installation. Global injection is only enabled while SKIM is running and injection have been started.
 
 
}}
 
}}
  
{{Fixbox|description=Enable for non-Steam games:|fix=
+
{{Fixbox|description=Enable for other games:|fix=
 +
# Launch '''Special K''' through the start menu of Windows.
 
# Start the global injection.
 
# Start the global injection.
# Navigate to {{p|game}} and the appropriate subfolder containing the game executable.
+
# Use the '''+ Add Game''' option at the bottom left corner of the application window to add a game to the app library.
# Look up what API the game uses. Refer to game-specific articles for details.
 
# Create a new empty file based on what API the game uses out of these:
 
#* OpenGL: <code>SpecialK.OpenGL32</code>
 
#* DirectX 11.x: <code>SpecialK.dxgi</code> or <code>SpecialK.d3d11</code>
 
#* DirectX 9: <code>SpecialK.d3d9</code>
 
#* DirectX 8: <code>SpecialK.d3d8</code> - ''Requires the '''dgVoodoo''' plugin installed for Special K.''
 
#* DirectDraw: <code>SpecialK.ddraw</code> - ''Requires the '''dgVoodoo''' plugin installed for Special K.''
 
#* DirectInput 8: <code>SpecialK.DInput8</code> - ''Alternative injection method for titles that supports DirectInput 8.''
 
 
# Launch the game. Special K should now detect and hook it.
 
# Launch the game. Special K should now detect and hook it.
 
# Use {{Key|Ctrl|Shift|Backspace}} to access the control panel while in-game.
 
# Use {{Key|Ctrl|Shift|Backspace}} to access the control panel while in-game.
 
}}
 
}}
  
===Local (game-specific)===
+
===Advanced (local)===
 
{{ii}} '''Use at own risk in multiplayer games where Special K might have an adverse effect.'''
 
{{ii}} '''Use at own risk in multiplayer games where Special K might have an adverse effect.'''
  
A local (game-specific) install refers to an install where the DLL files of Special K is locally added to the folder of the game executable and renamed accordingly to the API Special K should use to inject itself into the game, in a manor identical to that of [[ReShade]], [[dgVoodoo 2]], and other DLL-based mods or tools. This method allows the use of Special K for one or more games without having the global injection running, as well as using static versions of Special K that is not updated alongside the global injection. This can enhance compatibility with games where newer versions of Special K does not work as well for games as an older version of Special K might do.
+
A local (game-specific) install refers to an install where the DLL files of Special K is locally added to the folder of the game executable and renamed accordingly to the API Special K should use to inject itself into the game, in a manner identical to that of [[ReShade]], [[dgVoodoo 2]], and other DLL-based mods or tools. This method allows the use of Special K for one or more games without having the global injection running, as well as using static versions of Special K that is not updated alongside the global injection. This can enhance compatibility with games where newer versions of Special K does not work as well for games as an older version of Special K might do.
  
 
{{Fixbox|description=Convert global injection to local wrapper DLLs:|fix=
 
{{Fixbox|description=Convert global injection to local wrapper DLLs:|fix=
Line 120: Line 97:
 
#* The latest [[#SKIF vs. SKIM|SKIF]]-based version is available through the [https://discourse.differentk.fyi/ Special K forums.]
 
#* The latest [[#SKIF vs. SKIM|SKIF]]-based version is available through the [https://discourse.differentk.fyi/ Special K forums.]
 
#* An older [[#SKIF vs. SKIM|SKIM]]-based version, v0.10.3, is available on [https://github.com/Kaldaien/SpecialK/releases/tag/sk_0_10_2 GitHub.]
 
#* An older [[#SKIF vs. SKIM|SKIM]]-based version, v0.10.3, is available on [https://github.com/Kaldaien/SpecialK/releases/tag/sk_0_10_2 GitHub.]
# Extract the archive you downloaded at a location of your choice, and then open the folder.
+
#* The latest stand-alone release is available on the Special K forum [https://discourse.differentk.fyi/tag/release-notes here]
 +
#** Extract the stand-alone archive to the same location of the games Application (EXE) file to install.
 +
# Extract the SKIF or SKIM archive you downloaded, to a location of your choice and then open the folder.
 
# You should now be in the Special K folder where a {{file|SpecialK32.dll}} and {{file|SpecialK64.dll}} files should be present. Note these files, as they will be used later.
 
# You should now be in the Special K folder where a {{file|SpecialK32.dll}} and {{file|SpecialK64.dll}} files should be present. Note these files, as they will be used later.
# Navigate to {{p|game}} or its appropriate subfolder where the game executable is located in.
+
# Navigate to {{folder|{{p|game}}}} or its appropriate subfolder where the game executable is located in.
 
# Look up if the game uses a 32-bit or 64-bit executable, as well as what API is used. Refer to game-specific articles for details.
 
# Look up if the game uses a 32-bit or 64-bit executable, as well as what API is used. Refer to game-specific articles for details.
# Move the appropriate Special K DLL file to the folder where the game executable was located: <code>SpecialK32.dll</code> for 32-bit, and <code>SpecialK64.dll</code> for 64-bit.
+
# Move the appropriate Special K DLL file to the folder where the game executable was located: {{file|SpecialK32.dll}} for 32-bit, and {{file|SpecialK64.dll}} for 64-bit.
 
# Rename the DLL file to match the API used by the game:
 
# Rename the DLL file to match the API used by the game:
#* OpenGL: <code>opengl32.dll</code>
+
#* OpenGL: {{file|opengl32.dll}}
#* DirectX 11.x: <code>dxgi.dll</code> or <code>d3d11.dll</code>
+
#* DirectX 12: {{file|dxgi.dll}}
#* DirectX 9: <code>d3d9.dll</code>
+
#* DirectX 11: {{file|dxgi.dll}} or {{file|d3d11.dll}}
#* DirectX 8: <code>d3d8.dll</code> - ''Requires the '''dgVoodoo''' plugin installed for Special K.''
+
#* DirectX 9: {{file|d3d9.dll}}
#* DirectDraw: <code>ddraw.dll</code> - ''Requires the '''dgVoodoo''' plugin installed for Special K.''
+
#* DirectX 8: {{file|d3d8.dll}} - ''Requires the '''dgVoodoo''' plugin installed for Special K.''
#* DirectInput 8: <code>dinput8.dll</code> - ''Alternative injection method for titles that supports DirectInput 8.''
+
#* DirectDraw: {{file|ddraw.dll}} - ''Requires the '''dgVoodoo''' plugin installed for Special K.''
 +
#* DirectInput 8: {{file|dinput8.dll}} - ''Alternative injection-method for titles that support DirectInput 8.''
 
# Launch the game.
 
# Launch the game.
 
# Use {{Key|Ctrl|Shift|Backspace}} to access the control panel while in-game.
 
# Use {{Key|Ctrl|Shift|Backspace}} to access the control panel while in-game.
Line 137: Line 117:
  
 
===Custom game-specific mods===
 
===Custom game-specific mods===
{{ii}} There are also custom versions available of Special K tailored to certain games. These often features more in-depth changes or fixes that might not exist in the main branch, or are essentially "frozen" versions of Special K guaranteed to have the highest compatibility with their respective game. All game-specific mods are usually also embedded into the main Special K project, although future compatibility can suffer as the main project evolves.
+
{{ii}} There are also custom versions available of Special K tailored to certain games. These often feature more in-depth-changes or fixes that might not exist in the main branch, or are essentially "frozen" versions of Special K guaranteed to have the highest compatibility with their respective game. All game-specific mods are usually also embedded into the main Special K project, although future compatibility can suffer as the main project evolves.
 
{{++}} Some of these mods supports automatic updates despite being a local install of Special K; although as the update channel is separate from the main release channel these mods might not be frequently updated, if ever.
 
{{++}} Some of these mods supports automatic updates despite being a local install of Special K; although as the update channel is separate from the main release channel these mods might not be frequently updated, if ever.
 
{{mm}} In the below table, <code>Manual</code> refers to a game-specific mod that requires the user to manually download, install, and update the mod. <code>Automatic (SKIM)</code> refers to a game-specific mod that supports automatic installation through the Special K Install Manager (see instructions below the table) as well as auto-updates post-install.
 
{{mm}} In the below table, <code>Manual</code> refers to a game-specific mod that requires the user to manually download, install, and update the mod. <code>Automatic (SKIM)</code> refers to a game-specific mod that supports automatic installation through the Special K Install Manager (see instructions below the table) as well as auto-updates post-install.
Line 147: Line 127:
 
| [[.hack//G.U. Last Recode]] || [https://steamcommunity.com/groups/SpecialK_Mods/discussions/16/1480982971178019745/ Automatic (SKIM)] || Fixes texture shimmering, performance issues, and over-powered bloom lightning.
 
| [[.hack//G.U. Last Recode]] || [https://steamcommunity.com/groups/SpecialK_Mods/discussions/16/1480982971178019745/ Automatic (SKIM)] || Fixes texture shimmering, performance issues, and over-powered bloom lightning.
 
|-
 
|-
| [[Assassin's Creed Odyssey]] || [https://github.com/Kaldaien/SpecialK/releases/tag/sk_odyssey Manual] || Thread scheduling changes.
+
| [[Assassin's Creed Odyssey]] || [https://github.com/Kaldaien/SpecialK/releases/tag/sk_odyssey Manual] || Thread scheduling changes. Latest release of Special_K should also work, when UPlay Overlay is disabled (same goes for Assassins Creed Valhalla).
 
|-
 
|-
 
| [[Dark Souls III]] || [https://steamcommunity.com/groups/SpecialK_Mods/discussions/7/2741975115064728501/ Automatic (SKIM)] || Focuses on render and usability enhancements.
 
| [[Dark Souls III]] || [https://steamcommunity.com/groups/SpecialK_Mods/discussions/7/2741975115064728501/ Automatic (SKIM)] || Focuses on render and usability enhancements.
Line 189: Line 169:
 
{{Fixbox|description=Install a "Manual" game-specific mod:|fix=
 
{{Fixbox|description=Install a "Manual" game-specific mod:|fix=
 
# Download the latest version available, refer to the mod link in the table above.
 
# Download the latest version available, refer to the mod link in the table above.
# Extract the archive to {{p|game}} where the executable resides.
+
# Extract the archive to {{folder|{{p|game}}}} where the executable resides.
 
# Launch the game.
 
# Launch the game.
 
# Use {{Key|Ctrl|Shift|Backspace}} to access the control panel while in-game.
 
# Use {{Key|Ctrl|Shift|Backspace}} to access the control panel while in-game.
Line 198: Line 178:
 
# Download the latest [[#SKIF vs. SKIM|SKIM]]-based version, v0.10.3, from [https://github.com/Kaldaien/SpecialK/releases/tag/sk_0_10_2 GitHub.]
 
# Download the latest [[#SKIF vs. SKIM|SKIM]]-based version, v0.10.3, from [https://github.com/Kaldaien/SpecialK/releases/tag/sk_0_10_2 GitHub.]
 
# Extract the archive to a location of your choice.
 
# Extract the archive to a location of your choice.
# Run the '''Special K Install Manager''' using either '''SKIM.exe''' (32-bit) or '''SKIM64.exe''' (64-bit) located within the extracted files.
+
# Run the '''Special K Install Manager''' using either {{file|SKIM.exe}} (32-bit) or {{file|SKIM64.exe}} (64-bit) located within the extracted files.
 
# Select the appropriate game-specific mod in the product list:
 
# Select the appropriate game-specific mod in the product list:
 
#* '''Ni no Stutter''' - [[Ni no Kuni II: Revenant Kingdom]]
 
#* '''Ni no Stutter''' - [[Ni no Kuni II: Revenant Kingdom]]
Line 263: Line 243:
 
* {{file|CEGUI.log}} - Stores logs related to the '''Crazy Eddie's GUI System''' component used for custom achievement popups and the on-screen display monitoring.
 
* {{file|CEGUI.log}} - Stores logs related to the '''Crazy Eddie's GUI System''' component used for custom achievement popups and the on-screen display monitoring.
 
* {{file|'''crash.log'''}} - Stores captured crash data if the crash handler of Special K were able to capture data related to the crash.
 
* {{file|'''crash.log'''}} - Stores captured crash data if the crash handler of Special K were able to capture data related to the crash.
* {{file|'''SpecialK.log'''}} or {{file|'''[[#Local (game-specific)|<wrapper-DLL>]].log'''}} - Main log file for Special K, stores injection, render pipeline, and other related events.
+
* {{file|'''SpecialK.log'''}} or {{file|'''[[#Advanced (local)|<wrapper-DLL>]].log'''}} - Main log file for Special K, stores injection, render pipeline, and other related events.
 
* {{file|dxgi_budget.log}} - Stores DXGI memory statistics at shutdown.
 
* {{file|dxgi_budget.log}} - Stores DXGI memory statistics at shutdown.
 
* {{file|'''game_output.log'''}} - Stores everything the game outputs to the standard output stream of the operating system.
 
* {{file|'''game_output.log'''}} - Stores everything the game outputs to the standard output stream of the operating system.
Line 270: Line 250:
 
* {{file|ReShade.log}} - Stores logs related to the custom [[ReShade]] plug-in of Special K, if used.
 
* {{file|ReShade.log}} - Stores logs related to the custom [[ReShade]] plug-in of Special K, if used.
 
* {{file|steam_api.log}} - Stores logs related to the Steam API and enhancements.
 
* {{file|steam_api.log}} - Stores logs related to the Steam API and enhancements.
 +
 +
===Custom default configuration===
 +
{{ii}} A beta version for Special K v 0.11.1.0 released on October 25, 2020<ref name="sk-global-settings">{{Refurl|url=https://discourse.differentk.fyi/t/global-main-settings/965/11?u=aemony|title=Special K Discussion - Global "main" settings|date=2020-10-31}}</ref> introduced the ability to set default settings (either global or game-specific) for Special K that will automatically be applied the first time a game is launched or after resetting the Special K config for the game.
 +
 +
{{Fixbox|description=Configure the {{file|default_<DLLName>.ini}} file:|ref=<ref name="sk-global-settings"/>|fix=
 +
# Browse to the following location based on whether the default configuration should be applied for all games, or only one, and whether local or global injection is used:
 +
#* '''All games''' - {{folder|{{p|userprofile\documents}}\My Mods\SpecialK\Global\}}
 +
#* '''Game-specific (global injection)''' - {{folder|{{p|userprofile\documents}}\My Mods\SpecialK\Profiles\<game-name>}}
 +
#* '''Game-specific (local injection)''' - {{folder|{{p|game}}}}
 +
# Create a new file called {{file|default_<DLLName>.ini}} where {{Code|<DLLName>}} is replaced with the name of the DLL the settings should be used for:
 +
#* Global injection: <code>SpecialK</code>
 +
#* OpenGL: <code>OpenGL32</code>
 +
#* DirectX 12: <code>DXGI</code>
 +
#* DirectX 11: <code>DXGI</code> or <code>D3D11</code>
 +
#* DirectX 9: <code>D3D9</code>
 +
#* DirectX 8: <code>D3D8</code>
 +
#* DirectDraw: <code>DDRAW</code>
 +
#* DirectInput 8: <code>DInput8</code>
 +
# Add the desired parameters (along with the appropriate section headers) that you want applied on all games that uses said DLL filename.
 +
 +
'''Notes'''
 +
{{mm}} The '''All games''' defaults are loaded first followed by the '''Game-specific''' default config if one exists.
 +
{{mm}} The more parameters are being set, the more likely it is that things will break.
 +
}}
  
 
===Shared master configuration===
 
===Shared master configuration===
Special K v 0.11.0.40 released on June 13, 2020 on Steam introduced the ability to set master settings for Special K that will automatically be applied for games.
+
{{ii}} Special K v 0.11.0.40 released on June 13, 2020 on Steam introduced the ability to set master settings for Special K that will automatically be applied for games. These settings will override any unique game configuration that may otherwise be set in the Special K profile for a game.
  
{{Fixbox|description=Configure the master_<DLLName>.ini file:|ref=<ref>{{Refurl|url=https://steamcommunity.com/groups/SpecialK_Mods/discussions/0/3570700856110421443/?ctp=455#c2451595019862495600|title=Steam Group - Special K - v 0.10.3 - (HDR stuff probably) - Reply #6818|date=2020-06-14}}</ref>|fix=
+
{{Fixbox|description=Configure the {{file|master_<DLLName>.ini}} file:|ref=<ref>{{Refurl|url=https://steamcommunity.com/groups/SpecialK_Mods/discussions/0/3570700856110421443/?ctp=455#c2451595019862495600|title=Steam Group - Special K - v 0.10.3 - (HDR stuff probably) - Reply #6818|date=2020-06-14}}</ref>|fix=
# Browse to {{file|{{p|userprofile\documents}}\My Mods\SpecialK\Global\}}
+
# Browse to {{folder|{{p|userprofile\documents}}\My Mods\SpecialK\Global\}}
 
# Create a new file called {{file|master_<DLLName>.ini}} where {{Code|<DLLName>}} is replaced with the name of the DLL the settings should be used for:
 
# Create a new file called {{file|master_<DLLName>.ini}} where {{Code|<DLLName>}} is replaced with the name of the DLL the settings should be used for:
 
#* Global injection: <code>SpecialK</code>
 
#* Global injection: <code>SpecialK</code>
 
#* OpenGL: <code>OpenGL32</code>
 
#* OpenGL: <code>OpenGL32</code>
#* DirectX 11.x: <code>DXGI</code> or <code>D3D11</code>
+
#* DirectX 12: <code>DXGI</code>
 +
#* DirectX 11: <code>DXGI</code> or <code>D3D11</code>
 
#* DirectX 9: <code>D3D9</code>
 
#* DirectX 9: <code>D3D9</code>
 
#* DirectX 8: <code>D3D8</code>
 
#* DirectX 8: <code>D3D8</code>
Line 285: Line 290:
 
#* DirectInput 8: <code>DInput8</code>
 
#* DirectInput 8: <code>DInput8</code>
 
# Add the desired parameters (along with the appropriate section headers) that you want applied on all games that uses said DLL filename.
 
# Add the desired parameters (along with the appropriate section headers) that you want applied on all games that uses said DLL filename.
#* Note that the more parameters are being set, the more likely it is that things will break.
+
 
 +
'''Notes'''
 +
{{mm}} These configurations overrides any and all unique game-specific configurations that may otherwise be set. '''Use at your own risk!'''
 +
{{mm}} The more parameters are being set, the more likely it is that things will break.
 
}}
 
}}
  
==Video settings==
+
==Video==
 
{{ii}} Compatibility for features varies for games; most usually works, but at times a game might not function properly with some. Hold down {{key|Ctrl|Shift}} while launching a game if you need to reset the config file of Special K.
 
{{ii}} Compatibility for features varies for games; most usually works, but at times a game might not function properly with some. Hold down {{key|Ctrl|Shift}} while launching a game if you need to reset the config file of Special K.
  
Line 322: Line 330:
 
#* <code>0</code> - Disable vertical sync.
 
#* <code>0</code> - Disable vertical sync.
 
#* <code>1</code> - Vertical sync occurs each refresh cycle (e.g. 60 FPS on a 60 Hz monitor; or 144 FPS on a 144 Hz monitor).
 
#* <code>1</code> - Vertical sync occurs each refresh cycle (e.g. 60 FPS on a 60 Hz monitor; or 144 FPS on a 144 Hz monitor).
#* <code>2</code> - Vertical sync occurs every second refresh cycle (e.g. 30 FPS on a 60 Hz monitor; or 77 FPS on a 144 Hz monitor).
+
#* <code>2</code> - Vertical sync occurs every second refresh cycle (e.g. 30 FPS on a 60 Hz monitor; or 72 FPS on a 144 Hz monitor).
 
#* <code>3</code> - Vertical sync occurs every third refresh cycle (e.g. 20 FPS on a 60 Hz monitor; or 48 FPS on a 144 Hz monitor).
 
#* <code>3</code> - Vertical sync occurs every third refresh cycle (e.g. 20 FPS on a 60 Hz monitor; or 48 FPS on a 144 Hz monitor).
 
# Save and close the file.
 
# Save and close the file.
Line 356: Line 364:
  
 
===Frame rate limiter===
 
===Frame rate limiter===
{{ii}} Limits the FPS of a game to the desired value, potentially improving frame pacing and timing consistency at the loss of a somewhat lower averaged FPS.
+
{{ii}} Limits the FPS of a game to the desired value, improving frame pacing and timing consistency.
  
 
{{Fixbox|description=Instructions|fix=
 
{{Fixbox|description=Instructions|fix=
Line 372: Line 380:
  
 
===[[High dynamic range (HDR)]]===
 
===[[High dynamic range (HDR)]]===
{{ii}} Special K allows for injecting HDR in many DirectX 11/Direct3D 11 based titles and supports remastering 8-bit, 11-bit, and 12-bit render passes.
+
{{ii}} Special K allows for injecting HDR in many DirectX 11-12 and OpenGL based titles and supports remastering 8-bit, 10-bit, and 11-bit <!-- 11-bit; not 12-bit ---> render passes in DirectX 11 titles.
{{ii}} Includes a '''HDR Visualization''' feature that visualizes what elements of a scene is within the higher dynamic range.
+
{{ii}} Includes a '''HDR Visualization''' feature that visualizes the brightness output of the game in various ways.
{{mm}} When injecting HDR, Special K will automatically attempt to force the game to use [[#Flip model presentation|flip model presentation]], as this is a requirement for the HDR injection to work.
 
{{mm}} See the Steam guide [https://steamcommunity.com/sharedfiles/filedetails/?id=1866205777 HDR - The Big Book of Bright Ideas] for further information on the topic of HDR and best practices when injecting it.
 
  
{{Fixbox|description=Inject HDR into a DirectX 11 game:|fix=
+
{{Fixbox|description=Inject HDR into a game:|fix=
 
# Open the '''Settings''' app of Windows, and navigate to '''System''' > '''Display'''.
 
# Open the '''Settings''' app of Windows, and navigate to '''System''' > '''Display'''.
 
# Select the HDR monitor and toggle '''Use HDR''' to '''On'''.
 
# Select the HDR monitor and toggle '''Use HDR''' to '''On'''.
 
#* Ideally the display driver settings should also be set to a bit depth of at minimum '''10-bit''' and use '''RGB''' or '''YCbCr 4:4:4''' if possible. Use the '''Advanced display settings''' at the bottom of the '''Display''' settings page to identify what the display is currently set to.
 
#* Ideally the display driver settings should also be set to a bit depth of at minimum '''10-bit''' and use '''RGB''' or '''YCbCr 4:4:4''' if possible. Use the '''Advanced display settings''' at the bottom of the '''Display''' settings page to identify what the display is currently set to.
# Install Special K for the game, either globally or locally.
+
# [[#Installation|Install]] Special K for the game, either globally or locally.
 
# Launch the game.
 
# Launch the game.
 
# If the game supports a borderless window mode, select it in the preferences.
 
# If the game supports a borderless window mode, select it in the preferences.
Line 392: Line 398:
 
#* If the game does not launch properly, remove the [[#Configuration file(s) location|the game-specific config file]].
 
#* If the game does not launch properly, remove the [[#Configuration file(s) location|the game-specific config file]].
 
# Click on '''HDR''' at the top menu bar of the Special K control panel, and adjust the luminance of Special K's UI as well as the Steam overlay (if playing a Steam game).
 
# Click on '''HDR''' at the top menu bar of the Special K control panel, and adjust the luminance of Special K's UI as well as the Steam overlay (if playing a Steam game).
# In the '''HDR Calibration''' widget, adjust <code>Peak White Luminance</code> to set the luminance of the game to a comfortable level.
+
# In the '''HDR Calibration''' widget, make any necessary adjustments to improve the visual results.
#* To avoid clipping extremely bright details, leave '''Enable FULL HDR Luminance''' disabled and instead work within the default slider limits for peak white luminance.
 
# If the colors are wrong, some of the following options might have to be adjusted:
 
#* <code>SDR -> HDR Gamma</code> - This has the effect of moving the minimum brightness an object is required to have before it qualifies for HDR processing. Temporarily set <code>Horz. (%) HDR Processing</code> to <code>50%</code> and then move the gamma slider to a point where the difference between the left HDR side and the right SDR side of the screen is as minimal as possible. Restore <code>Horz. (%) HDR Processing</code> to <code>100%</code> when finished.
 
#* <code>Source ColorSpace</code> - Changed the color space of the input signal.
 
#* <code>Output ColorSpace</code> - Changed the color space of the output signal.
 
#* A few games ([[NieR: Automata]] in particular) also requires the <code>Remaster 8-bit Render Passes</code> option to be enabled, or occasionally one of the other remaster options to be disabled.
 
 
# When finished, disable <code>HDR Display</code> in the '''Widgets''' section to hide the HDR widget.
 
# When finished, disable <code>HDR Display</code> in the '''Widgets''' section to hide the HDR widget.
 +
 +
'''Notes'''
 +
{{ii}} {{Key|Ctrl|Mouse Click}} any UI slider to set a specific value. Values outside of the range is also acceptable.
 +
{{mm}} DirectX 11 titles also has remaster options for the render passes which can further improve the visual look. Note that a few games ([[NieR: Automata]] in particular) also requires the <code>Remaster 8-bit Render Passes</code> option to be enabled, or occasionally one of the other remaster options to be disabled.
 +
{{mm}} If Special K's HDR feature is used alongside the native HDR mode of a game the tonemap mode must often be set to '''HDR10 Passthrough (Native HDR)'''. Sometimes the peak white and paper white luminance sliders must also be lowered to '''80 nits''' to leave the native HDR look untouched.
 
}}
 
}}
  
Line 449: Line 454:
 
{{ii}} Windows 10's [[Microsoft Windows#Fullscreen optimizations|fullscreen optimizations]] (FSO) for DirectX 9-11 tries to automatically convert some games configured to use "fullscreen exclusive" mode into using flip model presentation in a maximized borderless window instead.
 
{{ii}} Windows 10's [[Microsoft Windows#Fullscreen optimizations|fullscreen optimizations]] (FSO) for DirectX 9-11 tries to automatically convert some games configured to use "fullscreen exclusive" mode into using flip model presentation in a maximized borderless window instead.
 
{{++}} Allows the use of [[Glossary:Variable refresh rate (VRR)|variable refresh rate]] (''VRR'', G-Sync, FreeSync, VESA Adaptive-Sync, HDMI 2.1 VRR) in borderless maximized windows even without the display driver configured to allow VRR in windowed mode.
 
{{++}} Allows the use of [[Glossary:Variable refresh rate (VRR)|variable refresh rate]] (''VRR'', G-Sync, FreeSync, VESA Adaptive-Sync, HDMI 2.1 VRR) in borderless maximized windows even without the display driver configured to allow VRR in windowed mode.
{{mm}} Special K only supports forcing flip model presentation for games using DirectX 11, and even then it might not function properly for all games.
+
{{++}} On Windows 11 the use of Special K's flip model override also enables Auto-HDR for many games.
 +
{{mm}} Special K typically only supports forcing flip model presentation for games using DirectX 11, and even then it might not function properly for all games.
  
{{Fixbox|description=Force a game to use flip model presentation:|fix=
+
{{Fixbox|description=For DirectX 11 titles:|fix=
 +
# Configure the game to run in borderless fullscreen windowed mode (it is often called just '''borderless mode''') first to ensure highest compatibility.
 
# Install Special K for the game, either globally or locally.
 
# Install Special K for the game, either globally or locally.
 
# Launch the game.
 
# Launch the game.
 +
# On newer versions of Special K the flip model presentation override is enabled by default, and should engage automatically.
 +
<!--
 
# Configure the in-game options to borderless fullscreen windowed mode (it is often called just '''borderless mode''').
 
# Configure the in-game options to borderless fullscreen windowed mode (it is often called just '''borderless mode''').
 
#* See [[#Borderless fullscreen windowed|Borderless fullscreen windowed]] for how to force borderless fullscreen windowed mode for games that do not expose it.
 
#* See [[#Borderless fullscreen windowed|Borderless fullscreen windowed]] for how to force borderless fullscreen windowed mode for games that do not expose it.
Line 463: Line 472:
 
#* If everything works the popup shown while hovering over '''Window/Fullscreen Resolution''' at the top of the Special K control panel should show '''''Discard (flip)'''''.
 
#* If everything works the popup shown while hovering over '''Window/Fullscreen Resolution''' at the top of the Special K control panel should show '''''Discard (flip)'''''.
 
#* If the game does not launch properly, open [[#Configuration file(s) location|the game-specific config file]] and change <code>UseFlipDiscard</code> to '''false'''.
 
#* If the game does not launch properly, open [[#Configuration file(s) location|the game-specific config file]] and change <code>UseFlipDiscard</code> to '''false'''.
# Input latency can be lowered by configuring the following parameters in the '''SwapChain Management''' section:
+
# Frame latency might be further improved by configuring the parameters in the SwapChain Management section according to the [https://wiki.special-k.info/en/SwapChain#recommended-settings recommended settings] based on your personal use case.
#* '''BackBuffer Count''': <code>4</code>
 
#* '''Maximum Device Latency''': <code>5</code> (generally always keep this at <code>BackBuffer Count + 1</code>)
 
#* Enable <code>Waitable SwapChain</code>.
 
#** Note that this parameter makes it impossible to change resolution, and might not be compatible with all games.
 
 
# Restart the game again to verify that the changes were successful.
 
# Restart the game again to verify that the changes were successful.
 +
-->
 +
}}
 +
 +
{{Fixbox|description=For a few DirectX 9 titles:|fix=
 +
This method only works in some games.
 +
 +
# Install Special K for the game, either globally or locally.
 +
# Launch and close the game once to allow the Special K config file to be created.
 +
# Open the game-specific config file, see [[#Configuration file(s) location|Configuration file(s) location]] for details.
 +
# Change <code>ForceD3D9Ex</code> to '''true'''.
 +
# Save and close the file.
 +
# Launch the game again. If everything works you can hover the mouse over the '''Framebuffer Resolution''' row at the top of the Special K control panel and the popup that appears should say '''Flip''' in the swap effect row.
 
}}
 
}}
  
==Input settings==
+
==Input==
  
 
===[[Glossary:Mouse locking|Mouse locking]]===
 
===[[Glossary:Mouse locking|Mouse locking]]===
Line 506: Line 523:
 
}}
 
}}
  
==Audio settings==
+
===Disable the use of input APIs in Special K===
{{Audio settings
+
{{ii}} This will prevent Special K from making use of various input APIs which may solve issues related those APIs that occurs solely when Special K is injected into the game.
 +
 
 +
{{Fixbox|description=Disable the use of input APIs in Special K (does not affect the game):|fix=
 +
<ol>
 +
  <li>Open the game-specific config file, see [[#Configuration file(s) location|Configuration file(s) location]] for details.</li>
 +
  <li>Add the following lines to the config file:</li>
 +
    <ul>
 +
      <li>To disable the use of '''XInput''' API used by Xbox-style controllers:
 +
        <pre>[Input.XInput]
 +
Enable=false
 +
</pre>
 +
      <li>To disable the use of '''native PS4''' API used by DualShock 4 controllers:
 +
        <pre>
 +
[Input.Gamepad]
 +
EnableNativePS4=false
 +
</pre>
 +
      <li>To disable the use of '''DirectInput''' and/or '''HID''' API used by various input devices:
 +
        {{ii}} '''Warning!''' This can disable the ability to interface with the UI of Special K using a keyboard and mouse.
 +
        <pre>
 +
[Input.Gamepad]
 +
EnableDirectInput7=false
 +
EnableDirectInput8=false
 +
EnableHID=false
 +
</pre>
 +
      </li>
 +
    </ul>
 +
  </li>
 +
  <li>Save and close the file.</li>
 +
</ol>
 +
}}
 +
 
 +
==Audio==
 +
{{Audio
 
|separate volume          = true
 
|separate volume          = true
 
|separate volume notes    = Customize individual speaker volume in games, see [[#Separate volume controls|Separate volume controls]].
 
|separate volume notes    = Customize individual speaker volume in games, see [[#Separate volume controls|Separate volume controls]].
Line 519: Line 568:
 
|mute on focus lost notes = For games without native support, see [[#Mute on focus lost|Mute on focus lost]].
 
|mute on focus lost notes = For games without native support, see [[#Mute on focus lost|Mute on focus lost]].
 
|eax support              =  
 
|eax support              =  
|eax support notes        =  
+
|eax support notes         =
 +
|royalty free audio       = n/a
 +
|royalty free audio notes  =  
 
}}
 
}}
  
Line 620: Line 671:
 
==Issues fixed==
 
==Issues fixed==
 
===Game crashes with Special K injected===
 
===Game crashes with Special K injected===
{{ii}} Occurs most commonly at launch of a game, and is usually caused by conflict(s) with other running third-party tool(s) or application(s).
+
{{ii}} Occurs most commonly at launch of a game, and is usually caused by conflict(s) with other running third-party tool(s) or application(s) like the UPlay Connect Overlay for an example.
 
{{mm}} Note that the crash handler of Special K is capable of capturing data for crashes that occurred unrelated to the mod itself.
 
{{mm}} Note that the crash handler of Special K is capable of capturing data for crashes that occurred unrelated to the mod itself.
 
{{--}} '''Disable FRAPS if it is being used!''' FRAPS is known to conflict with Special K, and the nature of the crash prevents Special K from properly logging its presence ({{file|modules.log}} will be partially incomplete).
 
{{--}} '''Disable FRAPS if it is being used!''' FRAPS is known to conflict with Special K, and the nature of the crash prevents Special K from properly logging its presence ({{file|modules.log}} will be partially incomplete).
  
 
{{Fixbox|description=Troubleshoot the issue:|fix=
 
{{Fixbox|description=Troubleshoot the issue:|fix=
# Temporarily disable/remove Special K from the game (either disable global injection or rename the local {{file|[[#Local (game-specific)|<wrapper-DLL>]].dll}}) and see if the issue reoccurs. If it does then the crash was unrelated to Special K and there is no reason to troubleshoot further using the below instructions.
+
# Temporarily disable/remove Special K from the game (either disable global injection or rename the local {{file|[[#Advanced (local)|<wrapper-DLL>]].dll}}) and see if the issue reoccurs. If it does then the crash was unrelated to Special K and there is no reason to troubleshoot further using the below instructions.
 
# Navigate to the game-specific log files, see [[#Log file(s) location|Log file(s) location]] for details.
 
# Navigate to the game-specific log files, see [[#Log file(s) location|Log file(s) location]] for details.
# Consult the {{file|crash.log}}, {{file|SpecialK.log}}/{{file|[[#Local (game-specific)|<wrapper-DLL>]].log}} and the {{file|modules.log}} to find more information related to the crash.
+
# Consult the {{file|crash.log}}, {{file|SpecialK.log}}/{{file|[[#Advanced (local)|<wrapper-DLL>]].log}} and the {{file|modules.log}} to find more information related to the crash.
 
#* Does {{file|crash.log}} indicate that the crash was related to a Special K related function (<code>SK_*</code>)?
 
#* Does {{file|crash.log}} indicate that the crash was related to a Special K related function (<code>SK_*</code>)?
 
#** If a Special K related function were involved then it could be a bug in Special K itself.
 
#** If a Special K related function were involved then it could be a bug in Special K itself.
Line 635: Line 686:
 
#** {{file|{{p|game}}\*.dll}} are safe to ignore, unless using other non-Special K related third-party mods located in the game folder which can cause conflicts as well.
 
#** {{file|{{p|game}}\*.dll}} are safe to ignore, unless using other non-Special K related third-party mods located in the game folder which can cause conflicts as well.
 
#** Other locations (such as inside the '''Program Files''' folder(s)) indicates the presence of a third-party DLL file that might be causing the conflict.
 
#** Other locations (such as inside the '''Program Files''' folder(s)) indicates the presence of a third-party DLL file that might be causing the conflict.
#* Does {{file|SpecialK.log}}/{{file|[[#Local (game-specific)|<wrapper-DLL>]].log}} list additional third-party DLL files injected into the game that matches the list of things to look out for? Or does the log file indicate that the crash seemingly occurred at a specific point (i.e. what is the last thing logged)?
+
#* Does {{file|SpecialK.log}}/{{file|[[#Advanced (local)|<wrapper-DLL>]].log}} list additional third-party DLL files injected into the game that matches the list of things to look out for? Or does the log file indicate that the crash seemingly occurred at a specific point (i.e. what is the last thing logged)?
 
# Use the name of the DLL file(s) found in the previous step, their path, and/or search online to locate what application or tool the DLL file is related to. Then proceed to exit/disable those applications/tools one by one until either the issue is fixed, or all of the third-part DLL files are excluded from the new logs that are generated from Special K.
 
# Use the name of the DLL file(s) found in the previous step, their path, and/or search online to locate what application or tool the DLL file is related to. Then proceed to exit/disable those applications/tools one by one until either the issue is fixed, or all of the third-part DLL files are excluded from the new logs that are generated from Special K.
 
# When all third-party DLL files have been excluded, various Special K components and modules can be disabled for troubleshooting purposes. Start by opening the game-specific config file, see [[#Configuration file(s) location|Configuration file(s) location]] for details.
 
# When all third-party DLL files have been excluded, various Special K components and modules can be disabled for troubleshooting purposes. Start by opening the game-specific config file, see [[#Configuration file(s) location|Configuration file(s) location]] for details.
#: '''General:'''
+
#* '''General:'''
#* Disable Steam enhancements by changing the parameter <code>Silent</code> to '''true''' in the the '''Steam.Log''' section. See [[#Disable all enhancements|Disable all enhancements]] for details.
+
#** Disable Steam enhancements by changing the parameter <code>Silent</code> to '''true''' in the the '''Steam.Log''' section. See [[#Disable all enhancements|Disable all enhancements]] for details.
#* Disable the On-Screen Display and custom achievement popups by changing the parameter <code>EnableCEGUI</code> to '''false''' in the the '''SpecialK.System''' section.
+
#** Disable all unrelated render API hooks by changing <code>[[#API|<API>]]</code> to '''false''' in the the '''API.Hook''' section.
#* Disable all unrelated API hooks by changing <code>[[#API|<API>]]</code> to '''false''' in the the '''API.Hook''' section.
+
#** Disable all unused input API hooks by following [[#Disable the use of input APIs in Special K|Disable the use of input APIs in Special K]].
#: '''DirectX 11 related:'''
+
#* '''DirectX 11 related:'''
#* Disable the texture cache by changing the parameter <code>Cache</code> to '''false''' in the the '''Textures.D3D11''' section.
+
#** Disable the texture cache by changing the parameter <code>Cache</code> to '''false''' in the the '''Textures.D3D11''' section.
#* Disable the hooks cache by setting <code>EnableGlobalCache</code> and <code>EnableLocalCache</code> to '''false''' in the the '''D3D11.Hooks''' and '''DXGI.Hooks''' sections. Also remove all existing hooks in those sections (basically everything else beneath both sections).
+
#** Disable the hooks cache by setting <code>EnableGlobalCache</code> and <code>EnableLocalCache</code> to '''false''' in the the '''D3D11.Hooks''' and '''DXGI.Hooks''' sections. Also remove all existing hooks in those sections (basically everything else beneath both sections).
 
# If the above did not solve the issue, upload the latest logs to a thread or reply over on the [https://discourse.differentk.fyi/ Special K Forums] and request further help from the community.
 
# If the above did not solve the issue, upload the latest logs to a thread or reply over on the [https://discourse.differentk.fyi/ Special K Forums] and request further help from the community.
 
}}
 
}}
Line 653: Line 704:
  
 
{{Fixbox|description=Troubleshoot according to [[#Game crashes with Special K injected|Game crashes with Special K injected]].}}
 
{{Fixbox|description=Troubleshoot according to [[#Game crashes with Special K injected|Game crashes with Special K injected]].}}
 +
 +
===Controller does not work properly with Special K injected===
 +
{{ii}} This applies to all types of controllers, from regular gamepads, steering wheels, arcade sticks, etc.
 +
 +
{{Fixbox|description=See the [[#Disable the use of input APIs in Special K|Disable the use of input APIs in Special K]] section.}}
  
 
===Jumbled or overly bright in-game text===
 
===Jumbled or overly bright in-game text===
Line 685: Line 741:
  
 
===Less than 1 FPS in some Unreal Engine 3 games===
 
===Less than 1 FPS in some Unreal Engine 3 games===
{{ii}} Some [[Engine:Unreal Engine 3|Unreal Engine 3]] games (mostly found in UE3 games using D3D9/DirectX 9) will experience an issue where the game renders in less than 1 FPS when Special K is injected at launch.
+
{{Fixbox|description=Update to a version of Special K dated March 2021 (21.03.xx) or newer.|ref=<ref>{{Refurl|url=https://wiki.special-k.info/en/Compatibility/Issues|title=Special K Wiki - Common Issues|date=2023-02-14}}</ref>
{{ii}} The issue can be worked around by delay the injection of Special K some seconds.<ref name="ue3-dx9-issue">{{Refurl|url=https://steamcommunity.com/groups/SpecialK_Mods/discussions/0/1653297026048424282/#c1644290549106173874|title=Steam Group - Special K - less than 1 FPS with the Special K: Global Injector|date=2020-06-17|snippet=I've been looking into this issue recently, and it has to do with the UE3 engine's response to window dimension changes. It handles them synchronously and creates a kind of feedback loop where one change to a game's window size coming from anything other than the operating system itself creates hundreds of resize events.
 
 
 
I'm virtually positive this was an unintended design bug in UE3 because it doesn't exist in UE4. I have no idea how to fix it other than the following:
 
 
 
: Start your game with Special K global injection turned off, let it run for 15 seconds or so, then enable Special K injection.
 
 
 
It requires that delay to prevent the infinite resize event loop that would happen at game startup, but this is far from a perfect solution because it only gets rid of one source of this problem. The problem can pop up at any time if you were to enable Special K's borderless window or window positioning features.
 
}}</ref>
 
 
 
{{Fixbox|description=Delay inject Special K (requires global injection)|ref=<ref name="ue3-dx9-issue"/>|fix=
 
# Ensure the global injection of Special K is stopped.
 
# Launch the game.
 
# Wait some 15 seconds.
 
# Start the global injection of Special K.
 
 
}}
 
}}
  
 
==Issues unresolved==
 
==Issues unresolved==
===Direct3D 9 issues===
 
====Injecting Special K caps the frame rate to the refresh rate====
 
{{ii}} Injecting Special K globally (including delayed) or locally into a DirectX 9 game will cause the frame rate to cap to the refresh rate of the monitor.<ref name="SK_D3D9_FPS_Cap_Win7_DWM_Issue">{{Refurl|url=https://steamcommunity.com/groups/SpecialK_Mods/discussions/0/1693785035817147509/?ctp=419#c1736588252386487523|title=Steam Group - Special K - Special K - v 0.9.24 <Alpha> (Ryzen CPU Driver) - (7/31/18) - Reply #6277|date=2018-08-20}}</ref>
 
{{ii}} A workaround is to use '''Disable fullscreen optimizations''' and configure the game to '''exclusive fullscreen mode'''.
 
  
===Windows 10 v1803 and 'Disable fullscreen optimizations' issues===
+
===Using d3d9.dll prevents games from launching===
====Using d3d9.dll prevents games from launching====
 
 
{{ii}} Underlying cause of the issue seems to be a change in how Windows 10 handles the '''Disable fullscreen optimizations''' option in the application compatibility engine.<ref>{{Refurl|url=https://steamcommunity.com/groups/SpecialK_Mods/discussions/1/1736588252384465942/#c1736588252387977752|title=Steam Group - Special K -  Local injection to any DX9 title causes crash - Reply #11|date=2018-08-20}}</ref>
 
{{ii}} Underlying cause of the issue seems to be a change in how Windows 10 handles the '''Disable fullscreen optimizations''' option in the application compatibility engine.<ref>{{Refurl|url=https://steamcommunity.com/groups/SpecialK_Mods/discussions/1/1736588252384465942/#c1736588252387977752|title=Steam Group - Special K -  Local injection to any DX9 title causes crash - Reply #11|date=2018-08-20}}</ref>
{{ii}} A workaround is to uncheck '''Disable fullscreen optimizations''' or use another {{file|[[#Local (game-specific)|<wrapper-DLL>]].dll}} as injection point.
+
{{ii}} A workaround is to uncheck '''Disable fullscreen optimizations''' or use another {{file|[[#Advanced (local)|<wrapper-DLL>]].dll}} as injection point.
 
{{mm}} This issue also affects [[ReShade]], although SweetFX is not affected.
 
{{mm}} This issue also affects [[ReShade]], although SweetFX is not affected.
  
====Using dxgi.dll prevents fullscreen optimizations from being disabled====
+
===Using dxgi.dll prevents fullscreen optimizations from being disabled===
 
{{ii}} Underlying cause of the issue seems to be a change in how Windows 10 handles the '''Disable fullscreen optimizations''' option in the application compatibility engine.<ref>{{Refurl|url=https://steamcommunity.com/groups/SpecialK_Mods/discussions/1/1736588252384465942/#c1736588252387977752|title=Steam Group - Special K -  Local injection to any DX9 title causes crash - Reply #10|date=2018-08-20}}</ref>
 
{{ii}} Underlying cause of the issue seems to be a change in how Windows 10 handles the '''Disable fullscreen optimizations''' option in the application compatibility engine.<ref>{{Refurl|url=https://steamcommunity.com/groups/SpecialK_Mods/discussions/1/1736588252384465942/#c1736588252387977752|title=Steam Group - Special K -  Local injection to any DX9 title causes crash - Reply #10|date=2018-08-20}}</ref>
{{ii}} A workaround is to uncheck '''Disable fullscreen optimizations''' or use another {{file|[[#Local (game-specific)|<wrapper-DLL>]].dll}} as injection point.
+
{{ii}} A workaround is to uncheck '''Disable fullscreen optimizations''' or use another {{file|[[#Advanced (local)|<wrapper-DLL>]].dll}} as injection point.
 
{{mm}} This issue also affects [[ReShade]].
 
{{mm}} This issue also affects [[ReShade]].
 
===Windows 7 issues===
 
====Special K causes performance issues when used with DWM disabled====
 
{{ii}} Using Special K with a game when DWM is disabled on Windows 7 causes immense performance issues.<ref name="SK_D3D9_FPS_Cap_Win7_DWM_Issue" />
 
  
 
==Other information==
 
==Other information==
Line 742: Line 775:
 
|mantle support notes  =  
 
|mantle support notes  =  
 
|vulkan versions        = hackable
 
|vulkan versions        = hackable
|vulkan notes          = Rendering is not available;{{Note|While rendering through the Vulkan API itself is not supported as of June 2020, Special K can in some HDR enabled Vulkan games on Nvidia GPUs hook the DXGI interop layer used by Nvidia's drivers to enable HDR support, and render through that instead. This allows the use of Special K in games such as [[Doom Eternal]] and [[Red Dead Redemption 2]].<ref>{{Refcheck|user=Aemony|date=2020-06-21}}</ref>}} manual edit of the [[#Configuration file(s) location |config file]] is required.
+
|vulkan notes          = Rendering is not available;{{Note|While rendering through the Vulkan API itself is not supported as of June 2020, Special K can in some HDR enabled Vulkan games on Nvidia GPUs hook the DXGI interop layer used by Nvidia's drivers to enable HDR support, and render through that instead. This allows the use of Special K in games such as [[Doom Eternal]] and [[Red Dead Redemption 2]].<ref>{{Refcheck|user=Aemony|date=2020-06-21}}</ref>}} manual edit of the [[#Configuration file(s) location|config file]] is required.
 
|dos modes              =  
 
|dos modes              =  
 
|dos modes notes        =  
 
|dos modes notes        =  
Line 749: Line 782:
 
|windows 32-bit exe    = true
 
|windows 32-bit exe    = true
 
|windows 64-bit exe    = true
 
|windows 64-bit exe    = true
 +
|windows arm app        = unknown
 
|windows exe notes      =  
 
|windows exe notes      =  
 
|macos 32-bit app      =  
 
|macos 32-bit app      =  
 
|macos 64-bit app      =  
 
|macos 64-bit app      =  
 +
|macos arm app          = unknown
 
|macos app notes        =  
 
|macos app notes        =  
 
|linux 32-bit executable=  
 
|linux 32-bit executable=  
 
|linux 64-bit executable=  
 
|linux 64-bit executable=  
 +
|linux arm app          = unknown
 
|linux executable notes =  
 
|linux executable notes =  
 
}}
 
}}
Line 762: Line 798:
  
 
===Configuration file(s) parameters===
 
===Configuration file(s) parameters===
{{ii}} See [https://gitlab.com/Kaldaien/SpecialK/blob/0.10.xdr/src/config.cpp#L814 config.cpp] for a list of all parameters that can be used, as well as their section and configuration file.
+
{{ii}} See [https://github.com/SpecialKO/SpecialK/blob/NOCEGUI/src/config.cpp#L1109 config.cpp] for a list of all parameters that can be used, as well as their section and configuration file.
 
{{mm}} Below is a table of what the tab-based columns of the source code correspond to.
 
{{mm}} Below is a table of what the tab-based columns of the source code correspond to.
  
Line 834: Line 870:
 
| {{Key|Ctrl|Shift|I}} || ''N/A'' || Toggle I/O monitor
 
| {{Key|Ctrl|Shift|I}} || ''N/A'' || Toggle I/O monitor
 
|-
 
|-
| {{Key|Ctrl|Shift|D}} || ''N/A'' || Toggle disk monitor
+
| {{Key|Ctrl|Shift|Alt|D}} || ''N/A'' || Toggle disk monitor
 
|-
 
|-
| {{Key|Ctrl|Shift|P}} || ''N/A'' || Toggle page file monitor
+
| {{Key|Ctrl|Shift|Alt|P}} || ''N/A'' || Toggle page file monitor
 
|-
 
|-
 
| {{Key|Ctrl|Shift|R}} || ''N/A'' || Toggle D3D11 shader analytics
 
| {{Key|Ctrl|Shift|R}} || ''N/A'' || Toggle D3D11 shader analytics
Line 850: Line 886:
 
|-
 
|-
 
|}
 
|}
 +
 +
===SKIF vs. SKIM===
 +
{{Image|Special K Injection Frontend (SKIF).png|The modern launcher [[#SKIF vs. SKIM|Special K Injection Frontend (SKIF)]]}}
 +
{{Image|Special K Install Manager (SKIM) Launcher.png|The legacy launcher [[#SKIF vs. SKIM|Special K Install Manager (SKIM)]]}}
 +
 +
'''Special K Injection Frontend (SKIF)''' is the new frontend developed along with {{Store link|Steam|1157970|the Steam distributed version}} of Special K and is used to manage the local Special K install. Features includes toggling global injection, disable individual games, or change the whitelist or blacklist for non-Steam games. As the tool is still under constant development in 2020 it often sees new features or functionality arrive monthly. As of August 2020 following the delisting of Special K on Steam the focus for the tool changed to become a cross-platform solution and is now provided through [https://discourse.differentk.fyi/ the Special K forums.]
 +
 +
'''Special K Install Manager (SKIM)''' is the old frontend used and distributed before the Steam version of Special K was introduced. SKIM is limited to toggling global injection as well as supports automated install of some game-specific mods.
 +
 +
===The global injection service===
 +
The global injection feature of Special K allows it to initialize its functionality automatically in all Steam games/applications it detects, as well as non-Steam games the user manually allows. This feature is also sometimes referred to as the "system-wide" injection method. See [[#Advanced (local)|Advanced (local)]] for how to install Special K for a single game.
 +
 +
As with other third-party tools with similar system-wide injection functionality, Special K relies on so called [https://docs.microsoft.com/en-us/windows/win32/winmsg/about-hooks CBT hooks] in Windows to get its DLL files loaded ("injected") into processes within the same security context (the user space) that makes use of some sort of window. This injection method is necessary to inject Special K early enough within game processes to apply some of its more advanced functionality, such as HDR retrofits, flip model presentation, full render modding capabilities, and more. After the DLL file have been injected into a process Special K checks what process it finds itself in to determine whether to initialize its functionality or not; either by detecting the process as having been launched through Steam or by matching an entry on the user-managed whitelist of Special K. If Special K finds itself within a non-whitelisted process, it will not initialize itself fully and instead remain idle within the process until either the process is terminated or the global injection is stopped.
 +
 +
Earlier versions of Special K (circa 2017) also unloaded ("uninjected") themselves from the process they found themselves in if the process was detected as non-whitelisted, however the way CBT hooks functioned meant that Windows would within milliseconds reload ("reinject") the DLL files of Special K within the process again. This behavior created an endless loop where the Special K DLL files got loaded and unloaded hundreds if not thousands of times per second in some processes. Shortly after the release of the CBT-based injection method the behavior was discovered to cause various unexpected issues in some third-party application, leading eventually to the behavior of Special K being changed to allow its DLL file remain in an uninitialized state within non-whitelisted processes instead.<ref>{{Refcheck|user=Aemony|date=2020-06-14|comment=This endless loop of Windows injecting the DLL files of Special K within non-whitelisted processes and Special K unloading itself did not cause issues with all applications, however those that did would experience weird and unexplained behaviors. For example, [https://winscp.net/ WinSCP] would mostly work, however when performing some actions a ''massive'' delay of 5-10 seconds could occur.}}</ref>
  
 
==System requirements==
 
==System requirements==
Line 875: Line 926:
 
|notes    =  
 
|notes    =  
 
{{ii}} A 64-bit operating system is required.
 
{{ii}} A 64-bit operating system is required.
{{ii}} Requires Visual C++ 2015-2019 Redistributables ([https://aka.ms/vs/16/release/vc_redist.x86.exe 32-bit], [https://aka.ms/vs/16/release/vc_redist.x64.exe 64-bit]) and the [https://www.microsoft.com/en-us/download/details.aspx?id=35 DirectX End-User Runtime.]
+
{{ii}} Requires Visual C++ 2015-2022 Redistributables ([https://aka.ms/vs/17/release/vc_redist.x86.exe 32-bit], [https://aka.ms/vs/17/release/vc_redist.x64.exe 64-bit]).
{{ii}} Windows 7 is not officially supported nor is support provided for issues related to it. The OS may be supported on some systems, however several optional Windows Updates are required, [https://www.microsoft.com/en-us/download/details.aspx?id=36805 KB2670838] and [https://support.microsoft.com/en-us/help/2533623/microsoft-security-advisory-insecure-library-loading-could-allow-remote-code-execution KB2533623] (although one/both might be [https://docs.microsoft.com/en-us/windows/deployment/update/windows-update-troubleshooting#the-update-is-not-applicable-to-your-computer superseded] by another already installed update), and even with them installed Windows 7 is considered unreliable at best.
 
 
}}
 
}}
  

Latest revision as of 18:34, 22 September 2023

Dev general icon.svg
Although this product has been released, it remains under active development - information may change frequently and could be outdated or irrelevant.
Special K
Special K cover
Developers
Kaldaien
Contributors[Note 1]
Release dates
Windows July 29, 2015

For a crowdsourced list of support across various games, see games compatible with Special K.

Special K is an extensive game modifying framework allowing for various forms of in-depth tweaking of a game. The focus is primarily on the graphics pipeline but the tool also includes features such as input device blocking/configuring, window and volume management, enhancements for some of the in-game functionality of Steam, and more. On top of this the framework includes a number of game-specific changes and optimizations that its developer have come across and fixed over the years, although minor ones are not always exposed to the user.

The framework traces its origin back to 2015[1] and attempts to fix and improve the state of Batman: Arkham Knight,[2] Fallout 4,[3] and Tales of Zestiria.[4] Over the years Special K have introduced a number of improvements and fixes for both less known games as well as extremely popular ones, and are often most known for its work on titles such as the Tales of series of games[4][5][6] between 2015 and 2017, NieR: Automata[7] in 2017, Monster Hunter: World[8] in 2018, or from one of the multitude of other less known games that has seen a few tweaks or fixes across the years.

In 2018 the framework innovated a general-purpose method of "retrofitting" HDR output support for existing Direct3D 11-based SDR games in Windows,[9] a feature that has since continued to evolve and in 2020 was updated to support most D3D11 based games compatible with flip model presentation,[10][11] including some emulators such as Dolphin and PCSX2. By leveraging a wrapper for older APIs such as dgVoodoo 2 it is also possible to retrofit some earlier DirectX titles with HDR support.

In late 2019[12] after years of having its development be focused on and around the Steam platform and games without itself being an official part of the platform, Special K was submitted and approved for publication on Steam. This change opened up possibilities for more advanced features that leveraged the Steam platform, and development of Special K transitioned over to using Steam as the delivery method for updates and development branches. A new frontend called Special K Injection Frontend (SKIF) began development to serve as such on Steam, and the legacy Special K Install Manager (SKIM) was officially seen as obsolete.

In July 2020 the product was submitted to Valve for final approval before release, but was denied citing the way it used the Steamworks API as well as marketing that used copyrighted third-party IPs to display its functionality.[13] Following this event as well as the simultaneous but unrelated community bans[Note 2] for its developer on the platform, Special K left the Steam platform in favor of a dedicated forum.

The graphics API that development is focused on is Direct3D 11 (DirectX 11), with Direct3D 12 (DirectX 12), Direct3D 9 (DirectX 9), and OpenGL being of a lower priority. Direct3D 8 (DirectX 8) and older versions of DirectX are supported through dgVoodoo 2. Vulkan is currently not supported, however some preliminary development has been made for it. Direct3D 10 (DirectX 10) is neither supported nor planned, though Special K's DXGI flip model presentation override has been shown to be compatible with D3D10 games as well.

Key points

As with other third-party software, Special K can have an adverse effect if used in multiplayer titles with anti-cheat protection.
List of games compatible with Special K covers the state of support for Special K in various games.

General information

Official Discord server
Official forum
Official wiki
Changelog
Official repository

Availability

Source DRM Notes Keys OS
Official website
DRM-free
Windows
Steam (unavailable)
DRM-free after installation through Steam client (notes may include more details)
Delisted by Valve in July 2020.
Windows
Development releases are available on the Discord server.
Earlier releases are available on the wiki.

Installation

Normal

The modern launcher Special K Injection Frontend (SKIF)
The modern launcher Special K Injection Frontend (SKIF)
The recommended mode of installation.[14]
Install Special K:
  1. Start by downloading the latest version available of either of the two:
  2. Download and run the installer.
  3. Launch Special K at the end of the installation or through the start menu of Windows.
  4. Navigate to the Library tab of the application to see detected games.
    • SKIF detects and lists Epic, GOG, Steam, and Xbox games automatically.
  5. Select and launch the game through the application.
  6. Use Ctrl+ Shift+← Backspace to access the control panel while in-game.
Enable for other games:
  1. Launch Special K through the start menu of Windows.
  2. Start the global injection.
  3. Use the + Add Game option at the bottom left corner of the application window to add a game to the app library.
  4. Launch the game. Special K should now detect and hook it.
  5. Use Ctrl+ Shift+← Backspace to access the control panel while in-game.

Advanced (local)

Use at own risk in multiplayer games where Special K might have an adverse effect.

A local (game-specific) install refers to an install where the DLL files of Special K is locally added to the folder of the game executable and renamed accordingly to the API Special K should use to inject itself into the game, in a manner identical to that of ReShade, dgVoodoo 2, and other DLL-based mods or tools. This method allows the use of Special K for one or more games without having the global injection running, as well as using static versions of Special K that is not updated alongside the global injection. This can enhance compatibility with games where newer versions of Special K does not work as well for games as an older version of Special K might do.

Convert global injection to local wrapper DLLs:
  1. Start the global injection of Special K.
  2. Launch the game.
  3. Use Ctrl+ Shift+← Backspace to access the control panel while in-game.
  4. Click on File > Install wrapper DLL for this game.
  5. Exit the game, stop global injection and then start the game again. Local injection should now occur instead.
Manually install local wrapper DLLs:
  1. Start by downloading the latest version available of either of the two:
    • The latest SKIF-based version is available through the Special K forums.
    • An older SKIM-based version, v0.10.3, is available on GitHub.
    • The latest stand-alone release is available on the Special K forum here
      • Extract the stand-alone archive to the same location of the games Application (EXE) file to install.
  2. Extract the SKIF or SKIM archive you downloaded, to a location of your choice and then open the folder.
  3. You should now be in the Special K folder where a SpecialK32.dll and SpecialK64.dll files should be present. Note these files, as they will be used later.
  4. Navigate to <path-to-game> or its appropriate subfolder where the game executable is located in.
  5. Look up if the game uses a 32-bit or 64-bit executable, as well as what API is used. Refer to game-specific articles for details.
  6. Move the appropriate Special K DLL file to the folder where the game executable was located: SpecialK32.dll for 32-bit, and SpecialK64.dll for 64-bit.
  7. Rename the DLL file to match the API used by the game:
    • OpenGL: opengl32.dll
    • DirectX 12: dxgi.dll
    • DirectX 11: dxgi.dll or d3d11.dll
    • DirectX 9: d3d9.dll
    • DirectX 8: d3d8.dll - Requires the dgVoodoo plugin installed for Special K.
    • DirectDraw: ddraw.dll - Requires the dgVoodoo plugin installed for Special K.
    • DirectInput 8: dinput8.dll - Alternative injection-method for titles that support DirectInput 8.
  8. Launch the game.
  9. Use Ctrl+ Shift+← Backspace to access the control panel while in-game.

Custom game-specific mods

There are also custom versions available of Special K tailored to certain games. These often feature more in-depth-changes or fixes that might not exist in the main branch, or are essentially "frozen" versions of Special K guaranteed to have the highest compatibility with their respective game. All game-specific mods are usually also embedded into the main Special K project, although future compatibility can suffer as the main project evolves.
Some of these mods supports automatic updates despite being a local install of Special K; although as the update channel is separate from the main release channel these mods might not be frequently updated, if ever.
In the below table, Manual refers to a game-specific mod that requires the user to manually download, install, and update the mod. Automatic (SKIM) refers to a game-specific mod that supports automatic installation through the Special K Install Manager (see instructions below the table) as well as auto-updates post-install.
Game Install Type Comment
.hack//G.U. Last Recode Automatic (SKIM) Fixes texture shimmering, performance issues, and over-powered bloom lightning.
Assassin's Creed Odyssey Manual Thread scheduling changes. Latest release of Special_K should also work, when UPlay Overlay is disabled (same goes for Assassins Creed Valhalla).
Dark Souls III Automatic (SKIM) Focuses on render and usability enhancements.
Disgaea PC Automatic (SKIM) Focuses on render, usability, performance, and stability enhancements.
Dragon's Dogma: Dark Arisen Manual Fixes UI/aspect ratio scaling for ultra-widescreen resolutions.
Fallout 4 Automatic (SKIM) Improves frame pacing.
Final Fantasy X/X-2 HD Remaster Automatic (SKIM) A ton of changes, improvements, and features.
Final Fantasy XV Manual Improves frame pacing.
Lego City Undercover Manual Solves issues with fullscreen mode, uncap the framerate and fixes multi-threading performance problems.
Monster Hunter: World Manual Enables HDR10/scRGB output, improves frame pacing and CPU utilization.
Ni no Kuni II: Revenant Kingdom Automatic (SKIM) Fixes timing issues and frame pacing. Not fully functional with v1.03 of the game.
Nier: Automata Automatic (SKIM) Increases performance, fixes cutscene stuttering, and various other improvements.
Sekiro: Shadows Die Twice Manual NVidia HDR improvements, improves performance, and unlocks framerate.
Shenmue I & II Manual Anisotropic filtering, mipmap generation, pillarbox remover for cutscenes.
Tales of Berseria Automatic (SKIM) A ton of stuff.
Tales of Symphonia Automatic (SKIM) A ton of stuff.
Tales of Vesperia Manual Eliminate most micro-stutter, disable DoF, Bloom, and Blur. adds MSAA support and HDR display output.
Tales of Zestiria Automatic (SKIM) A ton of stuff.
Yakuza 0 Manual Toggles for disabling blur, depth of field, ambient occlusion. Allows HUD-less screenshots. Not working with latest game version.
Yakuza Kiwami 2 Manual Toggles for disabling depth of field and various other minor stuff.
Install a "Manual" game-specific mod:
  1. Download the latest version available, refer to the mod link in the table above.
  2. Extract the archive to <path-to-game> where the executable resides.
  3. Launch the game.
  4. Use Ctrl+ Shift+← Backspace to access the control panel while in-game.
  5. Refer to the game-specific article here on PCGW or the mod-specific thread for instructions about features included in the mod.
Install an "Automatic (SKIM)" game-specific mod:
  1. Download the latest SKIM-based version, v0.10.3, from GitHub.
  2. Extract the archive to a location of your choice.
  3. Run the Special K Install Manager using either SKIM.exe (32-bit) or SKIM64.exe (64-bit) located within the extracted files.
  4. Select the appropriate game-specific mod in the product list:
  5. Click Install to install the selected mod.
    • Note that some antivirus/internet security suites can cause the installation to fail.
  6. Use Ctrl+ Shift+← Backspace to access the control panel while in-game.
  7. Refer to the game-specific article here on PCGW or the mod-specific thread for instructions about features included in the mod.

Disable for specific executables

Disable injection for a specific executable if it is found to cause issues.
Only available for global injection. Local injection requires removal of the local wrapper DLL files.
Do either of the following:
  • 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.

Supported games

See the separate page for a list of known games as well as the state of support in Special K.

Game data

game-specific in the below tables refers to either the title of the game (Steam releases) or the executable filename of the game (other platforms).

Configuration file(s) location

Some game-specific mods use a separate *.ini file to store the configuration for game-specific tweaks, such as FAR.ini for the "FAR" (Fix Automata Res.) mod for Nier: Automata.
Configuration for some modules (e.g. achievements, macros, on-screen display) are stored in %USERPROFILE%\Documents\My Mods\SpecialK\Global\*.ini
Type of install Location
Global
Local (converted from global)
%USERPROFILE%\Documents\My Mods\SpecialK\Profiles\game-specific\SpecialK.ini
Local
(manual / game-specific mod)
<path-to-game>; in the game executable folder. Filename mirrors DLL file, e.g. dxgi.ini.

Log file(s) location

The crash handler of Special K will move all logs related to a crash to a time-specific <path-to-game>\logs\crash\<timestamp>\*.log folder if it manages to capture data about the crash.
Type of install Location
Global
Local (converted from global)
%USERPROFILE%\Documents\My Mods\SpecialK\Profiles\game-specific\logs\*.log
Local
(manual / game-specific mod)
<path-to-game>\logs\*.log

List of log files and what they capture:

Log files marked with bold formatting are generally more important.
  • CEGUI.log - Stores logs related to the Crazy Eddie's GUI System component used for custom achievement popups and the on-screen display monitoring.
  • crash.log - Stores captured crash data if the crash handler of Special K were able to capture data related to the crash.
  • SpecialK.log or <wrapper-DLL>.log - Main log file for Special K, stores injection, render pipeline, and other related events.
  • dxgi_budget.log - Stores DXGI memory statistics at shutdown.
  • game_output.log - Stores everything the game outputs to the standard output stream of the operating system.
  • modules.log - Stores DLL files loaded by the game that Special K was able to detect and log.
    • Note that tools or applications using more obscure ways of injecting themselves to avoid detection will not listed in this log file.
  • ReShade.log - Stores logs related to the custom ReShade plug-in of Special K, if used.
  • steam_api.log - Stores logs related to the Steam API and enhancements.

Custom default configuration

A beta version for Special K v 0.11.1.0 released on October 25, 2020[15] introduced the ability to set default settings (either global or game-specific) for Special K that will automatically be applied the first time a game is launched or after resetting the Special K config for the game.
Configure the default_<DLLName>.ini file:[15]
  1. Browse to the following location based on whether the default configuration should be applied for all games, or only one, and whether local or global injection is used:
    • All games - %USERPROFILE%\Documents\My Mods\SpecialK\Global\
    • Game-specific (global injection) - %USERPROFILE%\Documents\My Mods\SpecialK\Profiles\<game-name>
    • Game-specific (local injection) - <path-to-game>
  2. Create a new file called default_<DLLName>.ini where <DLLName> is replaced with the name of the DLL the settings should be used for:
    • Global injection: SpecialK
    • OpenGL: OpenGL32
    • DirectX 12: DXGI
    • DirectX 11: DXGI or D3D11
    • DirectX 9: D3D9
    • DirectX 8: D3D8
    • DirectDraw: DDRAW
    • DirectInput 8: DInput8
  3. Add the desired parameters (along with the appropriate section headers) that you want applied on all games that uses said DLL filename.

Notes

The All games defaults are loaded first followed by the Game-specific default config if one exists.
The more parameters are being set, the more likely it is that things will break.

Shared master configuration

Special K v 0.11.0.40 released on June 13, 2020 on Steam introduced the ability to set master settings for Special K that will automatically be applied for games. These settings will override any unique game configuration that may otherwise be set in the Special K profile for a game.
Configure the master_<DLLName>.ini file:[16]
  1. Browse to %USERPROFILE%\Documents\My Mods\SpecialK\Global\
  2. Create a new file called master_<DLLName>.ini where <DLLName> is replaced with the name of the DLL the settings should be used for:
    • Global injection: SpecialK
    • OpenGL: OpenGL32
    • DirectX 12: DXGI
    • DirectX 11: DXGI or D3D11
    • DirectX 9: D3D9
    • DirectX 8: D3D8
    • DirectDraw: DDRAW
    • DirectInput 8: DInput8
  3. Add the desired parameters (along with the appropriate section headers) that you want applied on all games that uses said DLL filename.

Notes

These configurations overrides any and all unique game-specific configurations that may otherwise be set. Use at your own risk!
The more parameters are being set, the more likely it is that things will break.

Video

Compatibility for features varies for games; most usually works, but at times a game might not function properly with some. Hold down Ctrl+ Shift while launching a game if you need to reset the config file of Special K.

Windowed

Force window mode for games that do not natively support it:
  1. Launch the game with Special K enabled and confirmed working for the game.
  2. Press Ctrl+ Shift+← Backspace to open the control panel of Special K.
  3. Open the Display menu on the top.
  4. Change Fullscreen Mode to Windowed Mode.
    • The Force Override option might be required as well for some titles and automatically applying the override on next launch.
  5. Restart the game to confirm everything works. See Mouse locking if the cursor is not locked to the game window.

Borderless fullscreen windowed

Force borderless fullscreen windowed for games that do not natively support it:
  1. Launch the game with Special K enabled and confirmed working for the game.
  2. Configure the in-game options to window mode and the resolution of the monitor.
    • See Windowed for how to force window mode for games that do not expose it.
  3. Press Ctrl+ Shift+← Backspace to open the control panel of Special K.
  4. Open the Display menu on the top.
  5. Change Window style to Borderless Fullscreen.
    • The Force Override option might be required as well for some titles and automatically applying the override on next launch.
  6. Restart the game to confirm everything works. See Mouse locking if the cursor is not locked to the game window.

Vertical sync (Vsync)

Force a custom vertical sync behavior:
  1. Install Special K for the game, either globally or locally.
  2. Launch and close the game once to allow the Special K config file to be created.
  3. Open the game-specific config file, see Configuration file(s) location for details.
  4. Find and change the parameter PresentationInterval to the desired vertical sync behavior:
    • -1 - Disable the override; use the default behavior of the game.
    • 0 - Disable vertical sync.
    • 1 - Vertical sync occurs each refresh cycle (e.g. 60 FPS on a 60 Hz monitor; or 144 FPS on a 144 Hz monitor).
    • 2 - Vertical sync occurs every second refresh cycle (e.g. 30 FPS on a 60 Hz monitor; or 72 FPS on a 144 Hz monitor).
    • 3 - Vertical sync occurs every third refresh cycle (e.g. 20 FPS on a 60 Hz monitor; or 48 FPS on a 144 Hz monitor).
  5. Save and close the file.

Refresh rate (Hz)

Force a custom refresh rate:
  1. Install Special K for the game, either globally or locally.
  2. Launch and close the game once to allow the Special K config file to be created.
  3. Open the game-specific config file, see Configuration file(s) location for details.
  4. Find and change the parameter RefreshRate to the desired refresh rate (e.g. RefreshRate=120).
  5. Save and close the file.

Notes

RefreshRate=0 will automatically use the highest available refresh rate.
RefreshRate=-1 will disable the override and use whatever the game requests.

Scan type

Controls if the game outputs in progressive or interlaced scanning. This is normally more relevant for a television than a computer monitor, as typically computer monitors only support progressive display modes.
This override should only be used if the game does not properly output to the correct scan mode.
Force a custom scanning method:
  1. Install Special K for the game, either globally or locally.
  2. Launch and close the game once to allow the Special K config file to be created.
  3. Open the game-specific config file, see Configuration file(s) location for details.
  4. Find and change the parameter ScanlineOrder to one of the below values:
    • Progressive for progressive scan.
    • UpperFieldFirst for interlaced even scan.
    • LowerFieldFirst for interlaced odd scan.
    • DontCare to retain the game default.
  5. Save and close the file.

Frame rate limiter

Limits the FPS of a game to the desired value, improving frame pacing and timing consistency.
Instructions
  1. Launch the game with Special K enabled.
  2. Press Ctrl+ Shift+← Backspace to open the control panel of Special K.
  3. Expand Framerate Limiter.
  4. Enable Framerate Limit and configure a desired value (Ctrl+MouseClick to type in an exact value).
  5. Press Ctrl+ Shift+← Backspace to close the control panel of Special K.
  6. (Optional) Clicking on Advanced to the right side of the Framerate Limit slider exposes in-depth configuration of the limiter:
    • Use Multimedia Class Scheduling enables MCMCSS to ensure the limiter receives prioritized access to CPU resources.

Notes

Limit the FPS to 3 below the maximum refresh rate if using a variable refresh rate monitor such as G-Sync/FreeSync.

High dynamic range (HDR)

Special K allows for injecting HDR in many DirectX 11-12 and OpenGL based titles and supports remastering 8-bit, 10-bit, and 11-bit render passes in DirectX 11 titles.
Includes a HDR Visualization feature that visualizes the brightness output of the game in various ways.
Inject HDR into a game:
  1. Open the Settings app of Windows, and navigate to System > Display.
  2. Select the HDR monitor and toggle Use HDR to On.
    • Ideally the display driver settings should also be set to a bit depth of at minimum 10-bit and use RGB or YCbCr 4:4:4 if possible. Use the Advanced display settings at the bottom of the Display settings page to identify what the display is currently set to.
  3. Install Special K for the game, either globally or locally.
  4. Launch the game.
  5. If the game supports a borderless window mode, select it in the preferences.
  6. Press Ctrl+ Shift+← Backspace to open the control panel of Special K.
  7. Expand the Widgets section and enable HDR Display.
  8. In the top right corner a new widget called HDR Calibration will appear.
  9. Enable the scRGB HDR (16-bit) option.
  10. Restart the game to confirm everything works.
    • If everything works the Framebuffer Resolution row at the top of the Special K control panel should show (HDR).
    • If the game does not launch properly, remove the the game-specific config file.
  11. Click on HDR at the top menu bar of the Special K control panel, and adjust the luminance of Special K's UI as well as the Steam overlay (if playing a Steam game).
  12. In the HDR Calibration widget, make any necessary adjustments to improve the visual results.
  13. When finished, disable HDR Display in the Widgets section to hide the HDR widget.

Notes

Ctrl+Mouse Click any UI slider to set a specific value. Values outside of the range is also acceptable.
DirectX 11 titles also has remaster options for the render passes which can further improve the visual look. Note that a few games (NieR: Automata in particular) also requires the Remaster 8-bit Render Passes option to be enabled, or occasionally one of the other remaster options to be disabled.
If Special K's HDR feature is used alongside the native HDR mode of a game the tonemap mode must often be set to HDR10 Passthrough (Native HDR). Sometimes the peak white and paper white luminance sliders must also be lowered to 80 nits to leave the native HDR look untouched.

Limit resolution

Limits the minimum and maximum reported resolution to a game. In some games, this can be used to override the resolution to one not supported by the game.
DirectX 11 only.
Limit the minimum and maximum reported resolution for a DirectX 11 game:
  1. Launch the game with Special K enabled and confirmed working for the game.
  2. Press Ctrl+ Shift+← Backspace to open the control panel of Special K.
  3. Expand DirectX 11 Settings > Resolution Limiting.
  4. Change Minimum/Maximum Resolution to the desired resolution(s).
  5. Restart the game to evaluate whether the resolution limiting is effective or not.

Notes

Remove the resolution limit by changing the Minimum/Maximum Resolution values to 0, followed by a game restart.

Override resolution

Overrides the framebuffer resolution in windowed modes, forcing games to render at a higher resolution than what they might natively support.
Force an override resolution in windowed modes for games that do not natively support it:
  1. Launch the game with Special K enabled and confirmed working for the game.
  2. Configure the in-game options to window mode.
    • See Windowed for how to force window mode for games that do not expose it.
  3. Press Ctrl+ Shift+← Backspace to open the control panel of Special K.
  4. Expand Window Management > Style and Position.
  5. Enable Borderless and Center.
    • Do not enable Fullscreen (Borderless Upscale) as this will disable the override resolution.
  6. Change Override Resolution to the desired resolution.
  7. Restart the game to confirm everything works. See Mouse locking if the cursor is not locked to the game window.

Notes

Remove the override resolution by changing the Override Resolution values to 0, followed by a game restart.

Continue rendering

Prevents games from pausing when they lose focus.
Instructions
  1. Launch the game with Special K enabled.
  2. Press Ctrl+ Shift+← Backspace to open the control panel of Special K.
  3. Expand Window Management > Input/Output Behavior.
  4. Enable Continue Rendering.
  5. Press Ctrl+ Shift+← Backspace to close the control panel of Special K.

Flip model presentation

Flip model is a presentation model designed to make windowed mode effectively equivalent or better when compared to the classic "fullscreen exclusive" mode.[17]
Windows 10's fullscreen optimizations (FSO) for DirectX 9-11 tries to automatically convert some games configured to use "fullscreen exclusive" mode into using flip model presentation in a maximized borderless window instead.
Allows the use of variable refresh rate (VRR, G-Sync, FreeSync, VESA Adaptive-Sync, HDMI 2.1 VRR) in borderless maximized windows even without the display driver configured to allow VRR in windowed mode.
On Windows 11 the use of Special K's flip model override also enables Auto-HDR for many games.
Special K typically only supports forcing flip model presentation for games using DirectX 11, and even then it might not function properly for all games.
For DirectX 11 titles:
  1. Configure the game to run in borderless fullscreen windowed mode (it is often called just borderless mode) first to ensure highest compatibility.
  2. Install Special K for the game, either globally or locally.
  3. Launch the game.
  4. On newer versions of Special K the flip model presentation override is enabled by default, and should engage automatically.
For a few DirectX 9 titles:

This method only works in some games.

  1. Install Special K for the game, either globally or locally.
  2. Launch and close the game once to allow the Special K config file to be created.
  3. Open the game-specific config file, see Configuration file(s) location for details.
  4. Change ForceD3D9Ex to true.
  5. Save and close the file.
  6. Launch the game again. If everything works you can hover the mouse over the Framebuffer Resolution row at the top of the Special K control panel and the popup that appears should say Flip in the swap effect row.

Input

Mouse locking

Lock the mouse to the game window for games that do not natively support it:
  1. Launch the game with Special K enabled.
  2. Press Ctrl+ Shift+← Backspace to open the control panel of Special K.
  3. Expand Window Management > Input/Output Behavior and set Cursor Boundaries to Keep Inside Window.
  4. Restart the game to confirm everything is working as intended.

Haptic feedback

The control panel of Special K uses haptic UI feedback; this can cause a controller to rumble even if the keyboard/mouse is being used to navigate the UI.
Toggle haptic feedback:
  1. Launch the game with Special K enabled.
  2. Press Ctrl+ Shift+← Backspace to open the control panel of Special K.
  3. Expand Input Management > Gamepad and toggle the following settings as desired:
    • Haptic UI Feedback affects only the built-in UI feedback of Special K.
    • Disable ALL Rumble affects all haptic feedback.
  4. Press Ctrl+ Shift+← Backspace to close the control panel of Special K.

Disable type(s) of input

This will block the game from receiving input of the blocked type. It can be used to e.g. prevent input devices from messing with the game. The block only affects the game itself and not Special K.
Instructions
  1. Launch the game with Special K enabled.
  2. Press Ctrl+ Shift+← Backspace to open the control panel of Special K.
  3. Expand Input Management > Enable / Disable Devices and disable the desired type of input:
    • Disable Mouse Input to Game
    • Disable Keyboard Input to Game
    • Disable Gamepad Input to Game
  4. Press Ctrl+ Shift+← Backspace to close the control panel of Special K.

Disable the use of input APIs in Special K

This will prevent Special K from making use of various input APIs which may solve issues related those APIs that occurs solely when Special K is injected into the game.
Disable the use of input APIs in Special K (does not affect the game):
  1. Open the game-specific config file, see Configuration file(s) location for details.
  2. Add the following lines to the config file:
    • To disable the use of XInput API used by Xbox-style controllers:
      [Input.XInput]
      Enable=false
      
    • To disable the use of native PS4 API used by DualShock 4 controllers:
      [Input.Gamepad]
      EnableNativePS4=false
      
    • To disable the use of DirectInput and/or HID API used by various input devices:
      Warning! This can disable the ability to interface with the UI of Special K using a keyboard and mouse.
      [Input.Gamepad]
      EnableDirectInput7=false
      EnableDirectInput8=false
      EnableHID=false
      
  3. Save and close the file.

Audio

Audio feature State Notes
Separate volume controls
Customize individual speaker volume in games, see Separate volume controls.
Surround sound
Subtitles
Closed captions
Mute on focus lost
For games without native support, see Mute on focus lost.
Royalty free audio

Localizations

Language UI Audio Sub Notes
English

Separate volume controls

Special K allows muting or changing the volume per individual speakers for a game.
While using a 7.1 audio output device (virtual or physical) this can be helpful to determine what surround sound a game supports.
Instructions
  1. Launch the game with Special K enabled.
  2. Press Ctrl+ Shift+← Backspace to open the control panel of Special K.
  3. Expand Volume Management.
  4. All speakers used by the game will be listed, and the volume through each can be controlled or muted individually.
  5. Press Ctrl+ Shift+← Backspace to close the control panel of Special K.

Mute on focus lost

This will mute the game when it does not have focus.
Instructions
  1. Launch the game with Special K enabled.
  2. Press Ctrl+ Shift+← Backspace to open the control panel of Special K.
  3. Expand Window Management > Input/Output Behavior.
  4. Enable Mute Game.
  5. Press Ctrl+ Shift+← Backspace to close the control panel of Special K.

Steam enhancements

Special K makes heavy use of the Steam API to enhance the experience of Steam players with various features, including custom notifications for unlocked achievement, smarter screenshot capturing, real-time player count, and various other enhancements.
Due to the nature of these enhancements, third-party Steam API emulators is known to cause conflicts and crashes unless the enhancements are disabled.

Change position of Steam Overlay notifications

This allows changing what corner the default Steam Overlay notifications appear in.
There is no way to disable or hide the notifications, as this option is not exposed through the Steam API.
Instructions
  1. Launch the game with Special K enabled.
  2. Press Ctrl+ Shift+← Backspace to open the control panel of Special K.
  3. Expand Steam Enhancements > Overlay Notifications.
  4. Configure the setting appropriately.
  5. Press Ctrl+ Shift+← Backspace to close the control panel of Special K.

Customize achievement enhancements

Instructions
  1. Launch the game with Special K enabled.
  2. Press Ctrl+ Shift+← Backspace to open the control panel of Special K.
  3. Expand Steam Enhancements > Achievements, as well as the Enhanced Popup section.
  4. Configure the settings appropriately.
  5. Press Ctrl+ Shift+← Backspace to close the control panel of Special K.

Notes

Use the Test Unlock button to test the current settings by faking an achievement unlock.
Set Draw Mode to Disabled to disable the custom notification from appearing.
Ctrl+ Shift+T is a hotkey that can be used to trigger a test unlock, however note that this is also used to toggle the clock/version row in the OSD.

Throttle Steam API callbacks

Some games might not be limiting the number of callbacks performed to the Steam API, which can have an adverse effect on other parts of the game.
The effect of throttling the callbacks differ between games. Some might not see a difference at all, while other games might see a noticeable improvement. For example, in Final Fantasy XV throttling the Steam API callbacks saw a decrease in loading times and minor improvements to frame pacing when data were streamed from the drive.
Throttle the Steam API callbacks for a game:
  1. Install Special K for the game, either globally or locally.
  2. Launch and close the game once to allow the Special K config file to be created.
  3. Open the game-specific config file, see Configuration file(s) location for details.
  4. Find the [Steam.System] section and change the parameter CallbackThrottle to a value between 8 and 30.
  5. Save and close the file.

Notes

Set the parameter to -1 to disable the throttling.
Do not use a lower value than 8, as this can affect achievement unlocks.
The change can be observed on the SteamAPI Frame value at the bottom of the in-game control panel of Special K.

Disable all enhancements

The Steam enhancements can be disabled if troubleshooting compatibility issues with a game, or if not desired.
Note that this also prevents game-specific fixes that rely on the enhancements from being applied, such as the Steam API callback throttling for Final Fantasy XV.
Disable Steam enhancements for a game:
  1. Install Special K for the game, either globally or locally.
  2. Launch and close the game once to allow the Special K config file to be created.
  3. Open the game-specific config file, see Configuration file(s) location for details.
  4. Find the [Steam.Log] section and change the parameter Silent to true:
  5. [Steam.Log]
    Silent=true
  6. Save and close the file.

Issues fixed

Game crashes with Special K injected

Occurs most commonly at launch of a game, and is usually caused by conflict(s) with other running third-party tool(s) or application(s) like the UPlay Connect Overlay for an example.
Note that the crash handler of Special K is capable of capturing data for crashes that occurred unrelated to the mod itself.
Disable FRAPS if it is being used! FRAPS is known to conflict with Special K, and the nature of the crash prevents Special K from properly logging its presence (modules.log will be partially incomplete).
Troubleshoot the issue:
  1. Temporarily disable/remove Special K from the game (either disable global injection or rename the local <wrapper-DLL>.dll) and see if the issue reoccurs. If it does then the crash was unrelated to Special K and there is no reason to troubleshoot further using the below instructions.
  2. Navigate to the game-specific log files, see Log file(s) location for details.
  3. Consult the crash.log, SpecialK.log/<wrapper-DLL>.log and the modules.log to find more information related to the crash.
    • Does crash.log indicate that the crash was related to a Special K related function (SK_*)?
      • If a Special K related function were involved then it could be a bug in Special K itself.
      • If no Special K related function was involved then it is possible the game crashed completely independent of Special K.
    • Does modules.log indicate that non-Special K, non-Windows, non-driver, non-game, and non-Steam (or other platforms) related DLLs were injected into the game?
      • C:\Windows\system32\*.dll typically indicates a DLL file related to either Windows or a display drivers. These can typically be ignored, however do note that apphelp.dll, AcLayers.dll, or AcGenral.dll indicates that the application compatibility engine of Windows is influencing the game in some way, which can cause conflicts for Special K as well.
      • <path-to-game>\*.dll are safe to ignore, unless using other non-Special K related third-party mods located in the game folder which can cause conflicts as well.
      • Other locations (such as inside the Program Files folder(s)) indicates the presence of a third-party DLL file that might be causing the conflict.
    • Does SpecialK.log/<wrapper-DLL>.log list additional third-party DLL files injected into the game that matches the list of things to look out for? Or does the log file indicate that the crash seemingly occurred at a specific point (i.e. what is the last thing logged)?
  4. Use the name of the DLL file(s) found in the previous step, their path, and/or search online to locate what application or tool the DLL file is related to. Then proceed to exit/disable those applications/tools one by one until either the issue is fixed, or all of the third-part DLL files are excluded from the new logs that are generated from Special K.
  5. When all third-party DLL files have been excluded, various Special K components and modules can be disabled for troubleshooting purposes. Start by opening the game-specific config file, see Configuration file(s) location for details.
    • General:
    • DirectX 11 related:
      • Disable the texture cache by changing the parameter Cache to false in the the Textures.D3D11 section.
      • Disable the hooks cache by setting EnableGlobalCache and EnableLocalCache to false in the the D3D11.Hooks and DXGI.Hooks sections. Also remove all existing hooks in those sections (basically everything else beneath both sections).
  6. If the above did not solve the issue, upload the latest logs to a thread or reply over on the Special K Forums and request further help from the community.

The Alert (!) sound from Metal Gear Solid plays when the game crashed

The crash handler of Special K plays the iconic Alert (!) sound from Metal Gear Solid if it managed to capture data related to a crash.
This does not mean that Special K was involved in the crash; it just means a crash occurred and Special K was able to capture data related to it.
Troubleshoot according to Game crashes with Special K injected.

Controller does not work properly with Special K injected

This applies to all types of controllers, from regular gamepads, steering wheels, arcade sticks, etc.
See the Disable the use of input APIs in Special K section.

Jumbled or overly bright in-game text

Often caused by incompatibility with the texture cache of Special K.
Disable the texture cache of Special K[18]
  1. Launch the game with Special K enabled.
  2. Press Ctrl+ Shift+← Backspace to open the control panel of Special K.
  3. Expand Direct3D 11 Settings section and the Texture Management subsection.
  4. Uncheck Enable Texture Caching.
  5. Restart the game to confirm everything works.

Problematic XInput software detected (infinite haptic feedback loop)

Special K throws this warning if it detects a circular dependency issue involving different versions of XInput.[19]
Restart all applications drawing an overlay (e.g. Steam, Origin, Uplay) and/or disable said overlays.
Disable the use of XInput in Special K (does not affect the game):
  1. Open the game-specific config file, see Configuration file(s) location for details.
  2. Find the [Input.XInput] section and add a new line below that says Enable=false:
  3. [Input.XInput]
    Enable=false
    Rehook=false
    PlaceholderMask=0
    UISlot=0
    SlotReassignment=0,1,2,3
  4. Save and close the file.

Less than 1 FPS in some Unreal Engine 3 games

Update to a version of Special K dated March 2021 (21.03.xx) or newer.[20]

Issues unresolved

Using d3d9.dll prevents games from launching

Underlying cause of the issue seems to be a change in how Windows 10 handles the Disable fullscreen optimizations option in the application compatibility engine.[21]
A workaround is to uncheck Disable fullscreen optimizations or use another <wrapper-DLL>.dll as injection point.
This issue also affects ReShade, although SweetFX is not affected.

Using dxgi.dll prevents fullscreen optimizations from being disabled

Underlying cause of the issue seems to be a change in how Windows 10 handles the Disable fullscreen optimizations option in the application compatibility engine.[22]
A workaround is to uncheck Disable fullscreen optimizations or use another <wrapper-DLL>.dll as injection point.
This issue also affects ReShade.

Other information

API

This refers to the APIs supported by and compatible with Special K as an injection point.
DirectInput 8 is also supported as an injection point.
Technical specs Supported Notes
Direct3D 2, 3, 5, 6, 7, 8, 9, 11 D3D8 and earlier requires dgVoodoo 2.
DirectDraw
Requires dgVoodoo 2.
OpenGL
Vulkan
Rendering is not available;[Note 3] manual edit of the config file is required.
Executable 32-bit 64-bit Notes
Windows

Render API support

This is a general overview of the level of support Special K has for different render APIs, as well as what additional features might be available for each API.
Direct3D refers to the 3D render API of DirectX. In general, the terms 'Direct3D' and 'DirectX' are often interchangeable when discussing games.
Render API Notes
DirectDraw
DDraw
Requires dgVoodoo 2 to wrap the calls to Direct3D 11.
Direct3D 2-8 Requires dgVoodoo 2 to wrap the calls to Direct3D 11.
Direct3D 9 Basic support as well as texture modding support.
Direct3D 10 Unsupported, although flip model override is known to work in some games.
Direct3D 11 Enhanced support, including HDR injection, texture modding, flip model override, and shader debugging.
Direct3D 12 Enhanced support like D3D11, though no texture mods yet.
OpenGL Promoted to OpenGL-IK (uses an interop system where D3D11 is used for final presentation), which brings enhancements such as flip model and HDR injection.
Vulkan No support, except in HDR enabled modes running on Nvidia hardware, where Special K hooks the Nvidia DXGI/Direct3D 11 interop layer instead.

Configuration file(s) parameters

See config.cpp for a list of all parameters that can be used, as well as their section and configuration file.
Below is a table of what the tab-based columns of the source code correspond to.
Column Comment
1 Internal parameter name.
2 Description of what the parameter does.
3 Lists what configuration file the parameter resides in (e.g. dll_ini for dxgi.ini/dinput8.ini/etc).
4 Lists the section of said configuration file (e.g. [Input.Cursor]).
5 Lists the key for the parameter used in the configuration file (e.g. UseHardwareCursor)

Keybindings

General

Keyboard Controller Function
Ctrl+ Shift+← Backspace Back/Select+ Win Toggle the control panel
Ctrl+ Shift+O N/A Toggle the on-screen display (OSD)
Hold Ctrl+ Shift while launching game N/A Opens the injection compatibility options

Control Panel

Keyboard Controller Function
Caps Lock Hold Back/Select for 0.5 seconds Toggle exclusive input mode (game vs. control panel)
+++ +++ Cycle through UI items
Enter A / × Activate selected item
Ctrl+ Shift+← Backspace B / ○ Exit control panel
Ctrl+Alt++++
(exclusive keyboard mode only)
X / □+Left Analog Stick Move the control panel window

On-Screen Display (OSD)

Color and scale config is stored in %USERPROFILE%\Documents\My Mods\SpecialK\Global\osd.ini
Keyboard Controller Function
Ctrl+ Shift+O N/A Toggle the on-screen display (OSD)
Ctrl+ Shift++ / - N/A Resize the on-screen display (OSD)
Ctrl+ Shift+F N/A Toggle framerate counter
Ctrl+ Shift+T N/A Toogle clock / version
Ctrl+ Shift+G N/A Toggle GPU monitor
Ctrl+ Shift+C N/A Toggle CPU monitor
Ctrl+ Shift+M N/A Toggle memory monitor
Ctrl+ Shift+I N/A Toggle I/O monitor
Ctrl+ Shift+Alt+D N/A Toggle disk monitor
Ctrl+ Shift+Alt+P N/A Toggle page file monitor
Ctrl+ Shift+R N/A Toggle D3D11 shader analytics

Advanced

Keyboard Controller Function
Ctrl+ Shift+Tab N/A Toggle the command console. See the console documentation for more information.

SKIF vs. SKIM

The modern launcher Special K Injection Frontend (SKIF)
The modern launcher Special K Injection Frontend (SKIF)
The legacy launcher Special K Install Manager (SKIM)
The legacy launcher Special K Install Manager (SKIM)

Special K Injection Frontend (SKIF) is the new frontend developed along with the Steam distributed version of Special K and is used to manage the local Special K install. Features includes toggling global injection, disable individual games, or change the whitelist or blacklist for non-Steam games. As the tool is still under constant development in 2020 it often sees new features or functionality arrive monthly. As of August 2020 following the delisting of Special K on Steam the focus for the tool changed to become a cross-platform solution and is now provided through the Special K forums.

Special K Install Manager (SKIM) is the old frontend used and distributed before the Steam version of Special K was introduced. SKIM is limited to toggling global injection as well as supports automated install of some game-specific mods.

The global injection service

The global injection feature of Special K allows it to initialize its functionality automatically in all Steam games/applications it detects, as well as non-Steam games the user manually allows. This feature is also sometimes referred to as the "system-wide" injection method. See Advanced (local) for how to install Special K for a single game.

As with other third-party tools with similar system-wide injection functionality, Special K relies on so called CBT hooks in Windows to get its DLL files loaded ("injected") into processes within the same security context (the user space) that makes use of some sort of window. This injection method is necessary to inject Special K early enough within game processes to apply some of its more advanced functionality, such as HDR retrofits, flip model presentation, full render modding capabilities, and more. After the DLL file have been injected into a process Special K checks what process it finds itself in to determine whether to initialize its functionality or not; either by detecting the process as having been launched through Steam or by matching an entry on the user-managed whitelist of Special K. If Special K finds itself within a non-whitelisted process, it will not initialize itself fully and instead remain idle within the process until either the process is terminated or the global injection is stopped.

Earlier versions of Special K (circa 2017) also unloaded ("uninjected") themselves from the process they found themselves in if the process was detected as non-whitelisted, however the way CBT hooks functioned meant that Windows would within milliseconds reload ("reinject") the DLL files of Special K within the process again. This behavior created an endless loop where the Special K DLL files got loaded and unloaded hundreds if not thousands of times per second in some processes. Shortly after the release of the CBT-based injection method the behavior was discovered to cause various unexpected issues in some third-party application, leading eventually to the behavior of Special K being changed to allow its DLL file remain in an uninitialized state within non-whitelisted processes instead.[24]

System requirements

Windows
Minimum Recommended
Operating system (OS) 8.1
Processor (CPU)
System memory (RAM) 512 MB
Hard disk drive (HDD) 128 MB
Video card (GPU) DirectX 9 compatible
A 64-bit operating system is required.
Requires Visual C++ 2015-2022 Redistributables (32-bit, 64-bit).


Notes

  1. Special K also includes contributions from other developers, mostly related to various game-specific fixes, features, or changes.
  2. Community bans prevents almost all forms of participation in features tied to the Steam Community, including but not limited to posting on any public forums and Steam Groups (including those related to the user) as well as screenshot sharing, cloud save synchronization, etc.
  3. While rendering through the Vulkan API itself is not supported as of June 2020, Special K can in some HDR enabled Vulkan games on Nvidia GPUs hook the DXGI interop layer used by Nvidia's drivers to enable HDR support, and render through that instead. This allows the use of Special K in games such as Doom Eternal and Red Dead Redemption 2.[23]

References

  1. Steam Community - Fallout 4 - Fallout 4 "Works" - last accessed on 2020-06-14
    "I've built this whole DLL up over several months and used it to fix Arkham Knight originally and then Tales of Zestiria. At the rate things are going I'm probably going to have to add new features to it every time a console game is ported to PC, lol."
  2. GitHub - Kaldaien - Batman "Fix" (BMF) - last accessed on 2020-06-14
  3. GitHub - Kaldaien - Fallout "Works" (FO4W) - last accessed on 2020-06-14
  4. 4.0 4.1 GitHub - Kaldaien - Tales of Zestiria "Fix" (TZFix) - last accessed on 2020-06-14
  5. GitHub - Kaldaien - Tales of Berseria "Fix" (TBFix) - last accessed on 2020-06-14
  6. GitHub - Kaldaien - Tales of Symphonia "Fix" (TSFix) - last accessed on 2020-06-14
  7. GitHub - Kaldaien - Fix (NieR) Automata Resolution (FAR) - last accessed on 2020-06-14
  8. Steam Community - Monster Hunter: World - (Special K) Monster Hunter: World (Dead Mod) - last accessed on 2020-06-14
  9. Steam Group - Special K - "Kaldaien's Mod" - HDR FAQ - last accessed on 2020-06-14
  10. Steam - Special K v 0.11.0.28 - Improved HDR Retrofit - last accessed on 2020-06-14
  11. =Steam - Special K v. 0.11.0.30 - Added support for HDR to NieR: Automata - last accessed on 2020-06-14
  12. SteamDB - Special K - Displaying change #U:13054713 - last accessed on 2020-06-14
  13. Steam Group - Special K - Special K - v 0.10.3 - (HDR stuff probably) - Reply #8021 by GPUnity - last accessed on 2020-07-30
    "After review, we will not be able to ship your game on Steam. While we strive to ship most titles submitted to us, we found that this title contains content that we won’t distribute, including the way it uses the Steamworks API, and marketing that uses copyrighted third-party IP."
  14. Verified by User:Aemony on 2023-06-14
    This is the mode we recommend constantly nowadays.
  15. 15.0 15.1 Special K Discussion - Global "main" settings - last accessed on 2020-10-31
  16. Steam Group - Special K - v 0.10.3 - (HDR stuff probably) - Reply #6818 - last accessed on 2020-06-14
  17. Microsoft - Programming Guide for DXGI - For best performance, use DXGI flip model - last accessed on 2018-07-25
  18. Steam Group - Special K - Special K - v 0.10.3 - HDR stuff probably - Reply #7892 - last accessed on 2020-07-24
  19. Steam Group - Special K - Special K - v 0.9.24 <Alpha> Ryzen CPU Driver - (9/28/18) - Reply #7998 - last accessed on 2018-10-16
  20. Special K Wiki - Common Issues - last accessed on 2023-02-14
  21. Steam Group - Special K - Local injection to any DX9 title causes crash - Reply #11 - last accessed on 2018-08-20
  22. Steam Group - Special K - Local injection to any DX9 title causes crash - Reply #10 - last accessed on 2018-08-20
  23. Verified by User:Aemony on 2020-06-21
  24. Verified by User:Aemony on 2020-06-14
    This endless loop of Windows injecting the DLL files of Special K within non-whitelisted processes and Special K unloading itself did not cause issues with all applications, however those that did would experience weird and unexplained behaviors. For example, WinSCP would mostly work, however when performing some actions a massive delay of 5-10 seconds could occur.