This page features a collection of interesting tips and tricks based on posts made by members of the Special K community that do not fit anywhere else.
By AkiraJkr, based on their Discord message. Further edited with more details as of 15/03/2024.
DS4Windows to DS4Winn to avoid conflicts/detection with Steam and other software.HidHide Configuration Client hide your DualShock4, but make an exception for the renamed DS4Windows(DS4Winn.exe).Output Mode to Passthrough for your Touchpad & Gyro.Passthrough Output Mode.DS4 Profile as default BEFORE making a duplicate X360 profile with a emulated Xbox 360 Controller.X360 Profile, make the Lightbar green before switch it to Passthrough.DS4 Profile, and in the Other tab, change Emulated Controller to DualShock 4.DS4 Profile as your default, and switch to the X360 Profile for any emergencies.For Steam use:
Steam > Settings > Controller and disable Enable Steam Input for Playstation controllers. (Although, I recommend disabling it for them all, if your gamepad has native support to PC)If you wish to use Steam Input, enable it in a per-game case since global controller support is(thankfully) off;
Just go to your game’s Properties > Controller and Enable Steam Input instead of using default.
In some games, you might have no option but to USE Steam Input, as they have ZERO native support for the controllers, and Steam Input might automatically be force-enabled.
(Some games only support Steam Input but have HIDDEN native support fallback, so even if Steam Input is force-enabled, try disabling it and see if your controller is supported.
e.g. Tomb Raider I-II-III Remastered)
| Profile | Rumble Support | Gyro | Lightbar custom color |
|---|---|---|---|
| DS4 Profile | * | ||
| X360 Profile |
The Lightbar for the DS4 Profile will be blue like we’ve set before, until a game with proper DS4 support(or Steam Input) uses it.
Special K does not Unlock FPS in Sekiro properly anymore resulting in issues.
Use SekiroFpsUnlockDll instead
By Kaldaien, based on their their Discord message.
Special K calculates the G-Sync fps limit (or technically the fps limit that’s set by Nvidia reflex when using G-Sync + Vsync On) this way: Refresh - (Refresh * Refresh) / 3600.0.
Moved to dgVoodoo page
Special K’s Vulkan Bridge makes adjustments in the game’s Special K config file and sets Nvidia’s “Vulkan/OpenGL present method” driver option to “Prefer layered on DXGI Swapchain” in the game’s driver profile. Special K also sets additional driver flags in the game’s driver profile to improve compatibility, performance, and stability.
Nvidia’s DXGI interop uses a D3D11 swapchain. The Vulkan game (or D3D9 game using DXVK) still uses the Vulkan API, but Nvidia’s DXGI interop is used for final presentation. Special K can then hook into Nvidia’s DXGI interop layer, which provides enhancements such as DXGI flip model presentation and HDR injection.
DO NOT Use DXVK+Special K’s Vulkan Bridge (or the manual method) in DirectX 11 games.
Steps to enable Special K’s Vulkan Bridge:
Download a DXVK archive from the releases page which contains the compilled DLL files.
Extract the correct d3d9.dll from the archive depending on whether your game’s .exe is 32bit or 64bit (PCGamingWiki may have this information), and place the dll where the game’s primary .exe file is located.
Upon launching the game with Special K, a prompt asking if you want to enable native DXVK support should appear; press the Yes button.
OK button.On next launch, you should see the Special K startup banner in-game indicating that Special K is active.
Vulkan. If it says D3D11.4 (despite being a D3D9 game using DXVK), then something may have prevented Special K from detecting the API correctly or Special K may have injected too late and some Special K override or feature may not be available.By jooozek, based on their their Discord message. This was the method used before Special K’s Vulkan Bridge existed.
Might require drivers version >=526.98
The two nvidia driver settings in the guide might reset on every driver update.
As usual with Special K, don’t use fullscreen.
Download DXVK archive from the release page which contains the compilled dll files, as of now dxvk-2.0.tar.gz https://github.com/doitsujin/dxvk/releases/
Extract the appropriate d3d9.dll from archive, be it x32 for 32bit D3D9 games or x64 for 64bit D3D9 games to the place where the game exe file is located
Enable the the DXGI interop via NVCP Prefer layered on DXGI Swapchain
With Nvidia Profile Inspector change the value of OGL_DX_PRESENT_DEBUG to 0x000802A5 located under section 8 - Extra
<path-to-SpecialK>\Profiles\<game-specific>\custom_SpecialK.ini and insert the following in it:[API.Hook]
LastKnown=64
ddraw=false
d3d8=false
d3d9=false
d3d9ex=false
d3d11=true
OpenGL=false
[Window.System]
DontHookWndProc=true
custom_SpecialK.ini is an override, delete this file if you aren’t using this method anymore
[Window.System]
RenderInBackground=true
DXVK test:
Create dxvk.conf and add to it dxvk.hud = full
By Spodi, based on their their Discord message.
If the frametime is stable, latent sync pauses the rendering of the next frame, depending on the bias you set.
I can try to explain what I understood, but I don’t know if that is actually right.
Let’s say you set your limiter to 100 FPS and they are rock solid stable, that should be 10ms of total frametime from the start of the render to the actual presentation.
But the frame might actually always be finished after 3ms, which would be stable 333 FPS.
In such scenarios latent sync can delay the rendering of the next frame by a percentage of your total frametime you set the limiter at.
So e.g. 50% input bias at 10ms would be a delay by 5ms.
5ms + 3ms to render = 8ms.
Your frame is still ready in time.
So you can see the result of your action about 5ms sooner than normal.
Btw:
75% bias in this example would result in 7.5ms delay. 7.5ms + 3ms = 10.5ms bias. That would be too much and stutter/make things worse.
I hope this is the right math behind it and if it isn’t please correct me.
There are various variable refresh rate (VRR; G-Sync, FreeSync, VESA Adaptive-Sync) recommendations or tips shared online, many of them dated back to 2015ish and based on the limited variation of high refresh rate displays of that time. Many of these recommendations are either outdated or omit relevant warnings about critical side effects associated to them. So here is the general recommendation from the Special K team and community on how to configure VRR, with important context as to why:
Configure the display to use its highest refresh rate in either Windows (borderless/windowed mode) or the game itself (Fullscreen Exclusive mode).
Enable VRR (G-Sync/FreeSync) globally, but only for fullscreen mode, through the control panel of the display drivers (e.g. Nvidia Control Panel).
It also ensures that any DWM hacks that the display driver might have (i.e. G-Sync for “windowed mode”) is disabled and not used as those have a history of causing unexplained and hard-to-troubleshoot issues.
Note: Be sure to leave Special K’s flip model override enabled (the default) and/or enable Windows 11’s built-in windowed optimizations as they achieve the same. These optimizations ensure that VRR will be capable of engaging in pretty much any Direct3D 10 and 11 games regardless of display mode.
Enable the V-Sync toggle within the game so that no tearing will occur when VRR is active. Do not use any external or third-party overrides for this!
It is heavily discouraged to use third-party or global overrides when controlling the V-Sync behavior as many games ties other behaviors and changes to the in-game V-Sync toggle of the game. As such, using a third-party override (e.g. a global display driver override) puts the game in an unsupported state where unusual and unexpected issues might occur.
An example of this is the Unity Engine which has the V-Sync toggle double as a “built-in FPS limiter” toggle. When the in-game V-Sync toggle is enabled, Unity’s built-in FPS limiter is disabled and the game is allowed to render unrestricted up to refresh rate. When the in-game V-Sync toggle is disabled, Unity’s built-in FPS limiter gets enabled which often defaults to enforcing a 60 FPS cap.
Another example of one such issue is prolonged loading times within games as a result of different frame behaviors enforced upon the game due to the forced V-Sync override. In short: the game expects an uncapped frame rate and so paces the loading of resource accordingly, but then the frame rates are capped and results in longer loading times compared to having used the in-game V-Sync toggle.
The global V-Sync toggle also enforces the restriction upon other applications beyond games which might experience similarly side effects in unexpected ways.
If the game supports Nvidia Reflex, enable it as it might reduce input latency further, although this is not required for VRR to function properly.
Enable Special K’s FPS limiter and cap to the appropriate FPS according to the below table.
Special K’s FPS limiter is highly recommended (That’s why you are here, right! Right?!), however RivaTuner Statistics Server (RTSS) is recommended for games where Special K is not an option.
Note: Do not rely on a global FPS limit set through the display drivers as, once again, this will introduce unexpected issues in other applications that does not expect an FPS limit to be enforced.
PSA: The extremely dated “3 FPS below” suggestion is not applicable to modern high refresh rate displays due to the V-Sync window growing larger the higher the refresh rate goes as a result of the tighter timings involved.
| Refresh Rate | Max Frame Rate |
|---|---|
| 60 Hz | 59 FPS |
| 120 Hz | 116 FPS |
| 144 Hz | 138 FPS |
| 165 Hz | 157 FPS |
| 180 Hz | 171 FPS |
| 240 Hz | 224 FPS |
| 280 Hz | 258 FPS |
| 330 Hz | 299 FPS |
| 360 Hz | 324 FPS |
| 540 Hz | 467 FPS |
| 720 Hz | 576 FPS |
Play the game!
This toggle has historically been linked to enabling VRR support in earlier UWP games that otherwise does not make use of it, however in 2022 the Special K community realized it also impacted whether VRR remained engaged or not while an overlay were present above the game. This prompted a question in the official DirectX Discord server in early 2023 where a software engineer at Microsoft kindly provided the following detailed information about the toggle:
Hey. That toggle enables/disables Windows VRR for Games feature. This feature does two main things:
If a game is presenting on a VRR monitor with SyncInterval=1, then the OS promotes the SyncInterval to 0, so that the right levers in kernel and driver are activated for the game to leverage the benefits of VRR
If there is any passive content on top of the game (such as game bar), then it informs the compositor to lock its composition rate to the game’s presentation rate, so that the game continues to leverage VRR instead of dropping to a fixed rate composition mode
What you are seeing with gamebar overlay [ED: VRR remained synced to the game despite the presence of the gamebar overlay on top] is a result of #2.
The multi-mon weirdness when running VRR on primary is a known limitation of windows compositor for mixed refresh and mixed capabilities displays (i.e one display is running fixed rate content, and one is running VRR content). The compositor team is currently working on this problem to be shipped for a future OS release.
The information has been moved to its own page.