Tags give the ability to mark specific points in history as being important
  • sk_0_10_3
    Release sk_0_10_3

    0.10.3 (Test):

     + Added Percentile Analysis to Framepacing Graph
     + Fixed issues with Unity games not correctly exiting due to the CSteamworks SteamAPI nonsense.


  • sk_0_10_2
    Release sk_0_10_2

     + Fixed shell32.dll hook issue in Steam client that prevented games from restarting


     + Ansel is automatically disabled in games that are whitelisted (many of them should not be).
         Although I cannot reproduce any compatibility issues whatsoever with Ansel, this was the
           most economical approach to solving rampant reports of Ansel crashing games.
        -- If, like me, Ansel doesn't cause any compatibility problems on your system, you may
             re-enable it from the Help menu.
     + Memory performance data acquisition no longer uses WMI
     + Added a Compact Working Set button to the thread widget, to reduce memory overhead;
         >> The ideal use-case would be prior to switching applications to Chrome or other memory
              intensive applications.
          > I may add an option to automatically do this on alt-tab in future versions
     + Added in-game link to PCGamingWiki for any Steam game (see Help menu)
     + Added resolution scaling preferences in terms of screen % to custom ReShade
     + Added an optional background framerate limit that applies when running in the background
     + Changed name of [SK] Primary Render Thread to [GAME] ... to clear up misconceptions that it
         is a thread created, owned or managed by Special K.
     + Fixed incorrect HDR detection in some Unreal Engine 4 games
     + Fixed buffer overrun when fetching > 384 friend achievements
     + Fixed mouse cursor auto-hide feature not actually auto-hiding in most games
     + Fixed achievements not unlocking in A Plague Tale: Innocence and possibly other games
     + Fixed issue preventing EULA from showing on screen if an assertion popup was triggered first
     + Fixed unresponsive text input in Special K's console when (to-game) input blocking is enabled
     + Fixed incorrect API auto-detect in many games if run for the first time with no config file in v 0.10.1
     + Fixed some games treating disabled keyboard input as though buttons were being held down constantly
       >> This problem only affects whether a game draws KB&M or Gamepad icons, actual gameplay is unaffected.
        > For future developer reference, if a game calls GetKeyState (...) and you wish to block it,
            the proper way to do this is to cast KF_UP to SHORT and then return it.
     + Refactored a ton of code to modern C++17, from what had been mostly C++ Duct Tape compliant code.
       >> This is an ongoing process, but the codebase needs all the new language features that
            I have been neglecting or it is going to collapse under its own unmanageable weight
              at some point.
  • TempCapcomFix   Test Release for Monster Hunter: World
    Release TempCapcomFix

    For best results, get the game to boot w/ Flip Model Presentation (Borderless Fullscreen)

    • Presentation Interval: 1
    • Backbuffers: 3
    • Maximum Device Latency: 4


    Mouse and keyboard frame time variance should improve.

  • sk_0_9_23
    Release sk_0_9_23

    Special K v 0.9.23

       ( D3D11 ReShade and various mod features for D3D11 games may not work
           correctly starting with 0.9.23, I will work to get that resolved as 
             quickly as I can )
     + Added CPU clock rate to CPU performance widget; will add core parking and
         thermal throttling details in a future release for Windows 10 users.
     + Improved recursive file search (SteamAPI DLL location) performance
     + If SpecialK32.pdb or SpecialK64.pdb are not present in a local install,
         SK will attempt to load these form Documents\My Mods\SpecialK\...
     + Sped up Special K boot procedure pretty singificantly
     + Tweaked inefficient Texture Residency driver queries
     + Fixed situations where SK would fetch vertsion info from GitHUb multiple times
     + Fixed sRGB -> RGBA buffer override for Unity games to use flip model
     + Fixed various inconsistent ANSI / Unicode text issues in Unity (debug log)
     + Added CPU core spoofing to the framerate limiter for broken Unity games
     + Added HDR luminance control to Special K's OSD so you can see it in an HDR game :P
  • sk_0_9_22
    Release sk_0_9_22

    Special K v 0.9.22

     + Added render-ahead option to framerate limiter to tradeoff latency vs. rate accuracy
     + Fixed achievement popup showing up twice in Smart Capture mode
     + Various D3D11 Deferred Context optimizations
     + Added button to rebalance thread -> CPU assignment to the Threads widget
     + Added data options to the GPU widget's config menu
     + Added Fan RPM to GPU widget
     + Config files only write to disk if they are changed now
  • sk_0_9_21
    Release sk_0_9_21

    Special K v 0.9.21

     + New "Smart Capture" Mode for Steam Screenshots
      + High-performance screenshot capture code that does not cause games to hitch
       *) Compress lossless .PNG screenshots with or without Special K's OSD
        >> Steam cannot store .PNG screenshots, so any lossless screenshots are stored
             separately and you can manage these files using SK's control panel.
       *) Set the default Steam screenshot behavior to show/hide SK's OSD
       *) Take HUDless screenshots in D3D11 games (not finished)
       *) Compresses the JPG image imported to Steam using a slightly more advanced
            compressor for better image quality.
      ** All of these features are orders of magnitude faster than the Steam overlay's
           built-in screenshot code is! Use them all and still get better performance :P
      @ Current support is limited to D3D11 with no on-screen MSAA, sRGB or HDR framebuffers
  • sk_0_9_20
    d90b5e51 · Staging updates for Ys 8 ·
    Release sk_0_9_20

    Special K v 0.9.20

     (.2): Fixed WMI Memory Perfmon not using the correct PID
     (.2): Added experimental SteamAPI callback thread-sync avoidance for AC:Origins
     (.2): Fixed SteamController issues in Nioh
     (.1): Added proper (keyboard layout-aware) tooltips for prev/next texture
             list in D3D11 render mod toolkit.
     + Added D3D11 Constant Buffer injection for Vertex/Pixel/Geometry/Hull/Domain shaders
      >> Allows the manipulation of a game's material system in real-time in the mod tools
      @ Compute Shader injection is disabled in this release for stability, it will be
          enabled in a future release.
     + Fixed Geometry Shader state leak in D3D11 UI render code for certain games
     + Bundled a new build of custom ReShade with improved support for games that render
         into different format / resolution rendertargets than they use for their swapcahain
     + Improved support for D3D11 texture resampling (mipmap generation, on-the-fly compression)
         incuding HyperThreading optimization.
     + Altered ImGui vertex processing code to align dynamic memory allocation to a 16-byte
         boundary for improved performance in games that use heavy CPU-side transform.
        D3D11 Constant Buffer injection is still experimental and will improve over time,
          it is almost identical in function to the D3D9 feature but D3D11 has significantly
            more complicated memory management requirements that make optimization harder.
        Altering vertex shader material state is not recommended due to the number of
          draw calls made and vertex instancing, focus most experimentation on pixel shaders
  • sk_0_9_19
    Release sk_0_9_19

    Special K v 0.9.18 / 0.9.19

     (.1): Fixed hook address cache invalidation if Windows updates a system DLL
     + Replaced SteamAPI battery monitoring with actual Win32 API code, and now indicate
         when a laptop battery is charging or discharging and how much runtime is left in
           the framepacing widget.
     + Fixed various issues with SpecialK.DENY files and local / global injection
         co-existence (Ctrl + Shift compat. menu works much better).
     + Improved support for BC7 texture dumping and injection
     + Added mipmap generation for Ys VIII
     + Added shadowmap resolution boost for Ys VIII
     + Fixed Ni no Kuni 2 memory patterns for anti-stutter mod
     + Added x64 DebugRegister listing to crash handler
     + Added bypass for broken Win32MiniDumpInit in Steam's latest DRM wrapper;
         ( affects 32-bit games only. )
     + Added preliminary Ansel overlay activation detection / prevention
     + More work on MinHook stability / performance -- planning a few pull requests!
     + Fixed D3D11 texture cache (missing descriptors) in Elex when trees become
        unbalanced; fullscreen mode transition in this and other games is safer now.
     + Fixed Steam achievement server->client callbacks in Star Ocean 4 and The Witcher 3
     + Turned D3D11 deferred isolation off by default since most games do not need it
     + Added real-time stack traces for all running threads to the thread debugger
     + Rewrote debug symbol loading code for better multi-threaded performance
     + Changed Thread-Local Storage to Fiber-Local Storage for UWP compliance
     + Added validation of NtLdr DLL paths
        >> Detects AppCompat shims that makes games behave unpredictably
     + Fixed NvAPI issues in some third-party (vidcap) software that could break
         hardware monitoring (fan RPM in particular).
      *** Fixed CBT Hook Teardown Broadcast -- it was not running in the 64-bit
            builds and caused many WER faults when upgrading Special K. ***
  • skk_0_9_17
    Release skk_0_9_17

    Special K v 0.9.17

     + Finished re-writing MinHook's injection core to use MUCH more efficient thread
         suspend / resume.
      >> Boot up in some applications is 2-3x faster now and that is 2-3x less time for
           third-party injection to poke its nose where it does not belong while Special K
             is rewriting application code :)
     + Fixed various CBT hook issues in global injection; for users who frequently start/stop
         (why?) injection, things should behave better.
     + Added Exceptions Raised counter to the Thread Monitor widget; debug feature.
      >> Any exception counted here is the "continuable" sort; they generally pose no threat
           to software stability but high exception counts usually indicate a software defect.
  • sk_0_9_16
    Release sk_0_9_16

    Special K v 0.9.16

     (.1): Switched to D3DCompiler_47.dll (built-in)
     (.1): Eliminated unnecessary lock contention during texture uploads
     (.1): Fixed Alt+F4 menu in games that mixup Virtual Key Codes with Character Codes
     + Added workaround for systems that do not dispatch user32.dll system calls
         through win32u.dll
     + Added D3D11 Texture Cache residency management, to reduce cache pressure on
         textures that the driver isn't storing in VRAM.
     + Added D3D11 Deferred Context Isolation checkbox to D3D11 settings
     + Added SteamAPI callback count to thread monitoring info
  • sk_0_9_15
    Release sk_0_9_15

    Special K v 0.9.15

     ** Substantial performance and stability gains by switching critical system call
         hooks from User32.dll to their NtUser* counterparts in win32u.dll **
  • sk_0_9_14
    Release sk_0_9_14

    Special K v 0.9.14

     + Added D3DCompiler_43.dll, D3DX11_43.dll and D3DX9_43.dll as compressed .7z
         archives that will be unpacked to a game's directory if a user does not
           have the June 2010 DirectX Redistributables installed.
       >> In theory I could now start using D3DCompiler_47.dll, but I'll stick
            with _43 until I need the more advanced features for D3D11 shader modding.
  • sk_0_9_13
    Release sk_0_9_13

    Special K v 0.9.13

     (.3): Added disk read/write info to thread tooltip
     (.2): Added memory info to thread tooltip
     (.1): Assigned names to unnamed threads using debug symbols
     + Added a new Threads widget, that lists performance per-thread (kernel/user)
         and can even allow you to suspend individual threads.
       >> Suspending threads is dangerous, I expect this feature will be used for
            mod developers only. There is a high likelihood that you will have to
             restart a game to recover after using that.
     + Moved SteamAPI support DLLs to PlugIns\ThirdParty\Steamworks\...
     + Added proper Unicode filesystem path translation to SKIM64 for Steam manifests
  • sk_0_9_12
    Release sk_0_9_12


     + Updated build of SKIM64 allows installation of standalone Ni No Stutter mod
      - Ni No Stutter is built-in to this release of the global injector
     + Reduced memory consumption for D3D11 shader state tracking
     + No longer write ReservePercent to ini files, it is being phased out
     + Remove Merge-Only Cache Policy from D3D11 Texture Cache
  • sk_0_9_11
    2fe49dfd · Compat. updates ·
    Release sk_0_9_11

    Special K v 0.9.11

     (.1): Fix D3D11 Shader Mod Commands (i.e. D3D11.ShaderMods.ToggleConfig ...)
      + Fixed injection-blacklisted games failing to start while global injection is active
      + Fixed DLL init. issues with Far Cry 5 (_after_ Easy Anti-Cheat is worked around)
      + Improved support for shader state tracking in multi-threaded D3D11 engines
      + Added audio gain control (+dB) to volume management for hardware that supports it
  • sk_0_9_10
    77b4d4cc · NiNoKuni2 Enhancements ·
    Release sk_0_9_10

    Special K v 0.9.9 (FFXV) / 0.9.10 (General)

      + Dynamically adjust NvAPI monitoring thread priority to prevent rare hitching
          when the render thread's priority is != NORMAL
      + Added various options to make Ni No Kuni 2 less annoying; refer to control panel
      + Rolled up all of the changes from the standalone FFXV version (0.9.9)
     (.15): Add logging of unexpected ref. counts on texture data to locate FFXV leaks
     (.14): TargetFPS applied at startup again
     (.13): Add merge mode to texture cache -- only prevents duplicate resources
     (.12): Sleep(0) on render thread -> SwitchToThread(); useful for i5 users
     (.11): Workaround for threads that try to skip attach notifications and corrupt TLS
     (.10): Alternate compiler options for better support with Ansel -- again
     (.8): Add persistent storage of settings introduced in .6, and explain them
            [They are actually applied when the engine starts said thread now]
     (.6): Add options for thread scheduling; can lower render and VSYNC threads
             to help people with fewer CPU cores in FFXV
     (.5): Anti-Debug Workaround for FFXV
     (.3): Correctly packed 64-bit version of CEGUI into 64-bit builds :P
     (.2): Fixed floating ImGui widgets not saving position in osd.ini
     (.1): Fix issue preventing Special K from identifying and assigning its own
             threads their initial priority (all were running NORMAL but most are
               designed to run at lower priority).
     + Disabled compiler options known to cause problems with Ansel; forced to
         replace them with options known to cause issues with MSI Nahimic.
     + Prevent FFXV from running SteamAPI with TIME_CRITICAL scheduling and
         starving more important threads that actually use the CPU productively
  • sk_0_9_9
    Release sk_0_9_9

    Special K v 0.9.9

     (.3): Correctly packed 64-bit version of CEGUI into 64-bit builds :P
     (.2): Fixed floating ImGui widgets not saving position in osd.ini
     (.1): Fix issue preventing Special K from identifying and assigning its own
             threads their initial priority (all were running NORMAL but most are
               designed to run at lower priority).
        + Performance may improve for some users
     + Disabled compiler options known to cause problems with Ansel; forced to
         replace them with options known to cause issues with MSI Nahimic.
     + Prevent FFXV from running SteamAPI with TIME_CRITICAL scheduling and
         starving more important threads that actually use the CPU productively
  • sk_0_9_8
    Release sk_0_9_8

    Special K v 0.9.8

     (.3): Added error message on systems missing June 2010 DirectX Runtimes
     (.1): Disable a user's ability to perform software updates using the in-game
             config menu on installs done without SKIM.
     (.1): Add option to disable DXGI_PRESENT_TEST swapchain present for FFXV
     + Added SteamAPI rate throttling to fix resource load hitches in FFXV
       >> Right-click the SteamAPI Frame counter in the control panel to access:
           -1 = Unlimited (will hitch)
            0 = Disabled  (no idea what will happen, but probably not good)
           *8 = (Suggested max. for FFXV)
     + DLL static initialization cleanup (most global scope data is now scoped)
        (Dramatic global injection performance speedup)
  • sk_0_9_7
    e4ac2994 · Various FFX fixes ·
    Release sk_0_9_7

    Special K v 0.9.7

     + Added DirectXTex DLL Exports:
       * SK_DXTex_GetMetadataFromDDSFile
       * SK_DXTex_LoadFromDDSFile
       * SK_DXTex_CreateTexture
         ( Plug-in Authors: Use these instead of D3DX11; refer to updated UnX
                              plug-in for example code )
     + Fixed ReShade shim loader ( not correctly invoking LoadLibraryW
     + Reduced volume of crash sound and added a MessageBox if sound is muted
     + Added version info to the kernel DLL unload trace log
     + Added render API and crash info to global DLL's shared data segment
  • sk_0_9_6
    Release sk_0_9_6

    Special K v 0.9.6

      If you opt to use texture caching, set the limit to your entire VRAM
        capacity, otherwise it will fight with the game's internal cache and
          cause stuttering.
      I cannot fix this in time for the game's launch and have disabled texture
         caching by default for this game as an interim solution.
     *** Texture modding in D3D11 requires caching to be enabled, so if you see
           no textures in the mod tools, it's probably because caching is OFF.
     + Re-enabled IsDebuggerAttached (...) spoofing to allow FFXV to be run
         through a normal debugger (i.e. not Cheat Engine) without bailing out
     + Optimized D3D11 shader cache for games that create the same shader
         concurrently across multiple threads