Special K 「被親切地稱為 PC 遊戲中的瑞士軍刀,Special K 無所不能。它以修復和增強圖形、許多詳細的性能分析和校正模組以及不斷增長的工具面板而聞名。解決影響電腦遊戲的各種問題。
儲存庫的內容
此儲存庫包含 Special K 的程式碼注入負載 (
SpecialK(32|64).dll
) 的原始程式碼。支援實用程序,例如 SKIF(特殊K注入前端)和現已棄用的 SKIM(特殊K安裝管理器)作為單獨的專案進行維護。此外,一些使用 Special K 建構的舊模組作為獨立插件 DLL 存在;插件和 SKIM 不再主動維護,但可以透過 Kaldaien 的 GitHub 設定檔存取。
建構依賴關係當您複製從 23.5.7 開始的儲存庫時,將包含 Special K 的所有建置依賴項。舊版對 2010 年 6 月的 DirectX SDK 有額外的依賴。
由於舊版編譯器中不存在語言功能,Special K 需要 Visual C++ 2022 或更高版本才能編譯。
平台依賴性儘管(自 23.5.7 起)Windows 8.1 之前的任何版本均不支援 Special K,但仍可在 Windows 7(平台更新)上建置和運行(功能大幅減少)。
它確實在 WINE 中運行並且與 DXVK 相容,但必須在其每個遊戲 INI 檔案中配置
UsingWINE=true
才能在 Linux 上運行。
各種各樣的如果您使用「偵錯」建置配置,則專案很可能無法正確編譯,Special K 旨在產生可偵錯的「發布」建置。
Special K 的 DLL 能夠透過以下兩種方式之一注入程式碼:
本地註入代理/包裝 DLL
SpecialK(32|64).dll
重新命名為(dxgi|d3d11|d3d9|d3d8|ddraw|dinput8|OpenGL32).dll
並透過靜態匯入或呼叫LoadLibrary (...)
搭車。全域注入Win32全域Hookchain
這是首選技術,並且 DLL 能夠在沒有任何外部幫助的情況下透過
RunDLL_InjectionManager (...)
引導掛鉤( rundll32.exe將作為普通 Win32 UI 進程託管 DLL)。
還有更多可能的方法來注入 DLL,上面概述的兩種方法無需任何其他工具即可使用。
如果您想使用CreateRemoteThread (...)
之類的工具來建立自己的工具,Special K 會很樂意注入到已經運行的遊戲中,但請記住,後期注入會阻止Special K 的某些功能(特別是與D3D 相關的功能)覆蓋和著色器/紋理 mods)工作。
由於鉤鏈順序而選擇 CBT 掛鉤。由於 Windows 上的大多數圖形 API 需要一個視窗才能進行重要的初始化,因此 CBT 掛鉤可以在 D3D9/11/12 交換鏈建立之前可靠地讓我們進入應用程式。