Difference between revisions of "Special K"
m (→Installation: renamed sections) |
m (→High dynamic range (HDR): updated section) |
||
Line 380: | Line 380: | ||
===[[High dynamic range (HDR)]]=== | ===[[High dynamic range (HDR)]]=== | ||
− | {{ii}} Special K allows for injecting HDR in many DirectX 11 | + | {{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 | + | {{ii}} Includes a '''HDR Visualization''' feature that visualizes the brightness output of the game in various ways. |
− | |||
− | |||
{{Fixbox|description=Inject HDR into a DirectX 11/12 game:|fix= | {{Fixbox|description=Inject HDR into a DirectX 11/12 game:|fix= | ||
Line 389: | Line 387: | ||
# 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 400: | 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, | + | # In the '''HDR Calibration''' widget, make any necessary adjustments to improve the visual results. |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
# 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. | ||
Revision as of 16:46, 14 June 2023
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
Availability
Source | DRM | Notes | Keys | OS |
---|---|---|---|---|
Official website | ||||
Steam (unavailable) | Delisted by Valve in July 2020. |
- Development releases are available on the Discord server.
- Earlier releases are available on the wiki.
Installation
Normal
- The recommended mode of installation.[14]
Install Special K: |
---|
|
Enable for other games: |
---|
|
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: |
---|
|
Manually install local wrapper DLLs: |
---|
|
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: |
---|
|
Install an "Automatic (SKIM)" game-specific 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: |
---|
|
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 asFAR.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]
|
---|
Notes
|
- 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]
|
---|
Notes
|
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: |
---|
|
Borderless fullscreen windowed
Force borderless fullscreen windowed for games that do not natively support it: |
---|
|
Vertical sync (Vsync)
Force a custom vertical sync behavior: |
---|
|
Refresh rate (Hz)
Force a custom refresh rate: |
---|
Notes
|
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: |
---|
|
Frame rate limiter
- Limits the FPS of a game to the desired value, improving frame pacing and timing consistency.
Instructions |
---|
Notes
|
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 DirectX 11/12 game: |
---|
Notes
|
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: |
---|
Notes
|
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: |
---|
Notes
|
Continue rendering
- Prevents games from pausing when they lose focus.
Instructions |
---|
|
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: |
---|
|
For a few DirectX 9 titles: |
---|
This method only works in some games.
|
Input
Mouse locking
Lock the mouse to the game window for games that do not natively support it: |
---|
|
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: |
---|
|
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 |
---|
|
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): |
---|
|
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 |
---|
|
Mute on focus lost
- This will mute the game when it does not have focus.
Instructions |
---|
|
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 |
---|
|
Customize achievement enhancements
Instructions |
---|
Notes
|
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: |
---|
Notes
|
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: |
---|
[Steam.Log] Silent=true |
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: |
---|
|
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] |
---|
|
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): |
---|
[Input.XInput] Enable=false Rehook=false PlaceholderMask=0 UISlot=0 SlotReassignment=0,1,2,3 |
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+D | N/A | Toggle disk monitor |
Ctrl+⇧ Shift+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
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 Local (game-specific) 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 | 10 |
Processor (CPU) | ||
System memory (RAM) | 512 MB | 2 GB |
Hard disk drive (HDD) | 128 MB | 512 MB |
Video card (GPU) | DirectX 9 compatible | DirectX 11 compatible |
Notes
- ↑ Special K also includes contributions from other developers, mostly related to various game-specific fixes, features, or changes.
- ↑ 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.
- ↑ 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
- ↑ 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."
- ↑ GitHub - Kaldaien - Batman "Fix" (BMF) - last accessed on 2020-06-14
- ↑ GitHub - Kaldaien - Fallout "Works" (FO4W) - last accessed on 2020-06-14
- ↑ 4.0 4.1 GitHub - Kaldaien - Tales of Zestiria "Fix" (TZFix) - last accessed on 2020-06-14
- ↑ GitHub - Kaldaien - Tales of Berseria "Fix" (TBFix) - last accessed on 2020-06-14
- ↑ GitHub - Kaldaien - Tales of Symphonia "Fix" (TSFix) - last accessed on 2020-06-14
- ↑ GitHub - Kaldaien - Fix (NieR) Automata Resolution (FAR) - last accessed on 2020-06-14
- ↑ Steam Community - Monster Hunter: World - (Special K) Monster Hunter: World (Dead Mod) - last accessed on 2020-06-14
- ↑ Steam Group - Special K - "Kaldaien's Mod" - HDR FAQ - last accessed on 2020-06-14
- ↑ Steam - Special K v 0.11.0.28 - Improved HDR Retrofit - last accessed on 2020-06-14
- ↑ =Steam - Special K v. 0.11.0.30 - Added support for HDR to NieR: Automata - last accessed on 2020-06-14
- ↑ SteamDB - Special K - Displaying change #U:13054713 - last accessed on 2020-06-14
- ↑ 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."
- ↑ Verified by User:Aemony on 2023-06-14
- This is the mode we recommend constantly nowadays.
- ↑ 15.0 15.1 Special K Discussion - Global "main" settings - last accessed on 2020-10-31
- ↑ Steam Group - Special K - v 0.10.3 - (HDR stuff probably) - Reply #6818 - last accessed on 2020-06-14
- ↑ Microsoft - Programming Guide for DXGI - For best performance, use DXGI flip model - last accessed on 2018-07-25
- ↑ Steam Group - Special K - Special K - v 0.10.3 - HDR stuff probably - Reply #7892 - last accessed on 2020-07-24
- ↑ 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
- ↑ Special K Wiki - Common Issues - last accessed on 2023-02-14
- ↑ Steam Group - Special K - Local injection to any DX9 title causes crash - Reply #11 - last accessed on 2018-08-20
- ↑ Steam Group - Special K - Local injection to any DX9 title causes crash - Reply #10 - last accessed on 2018-08-20
- ↑ Verified by User:Aemony on 2020-06-21
- ↑ 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.