0.10.2.1
+ Fixed shell32.dll hook issue in Steam client that prevented games from restarting
0.10.2
+ 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.