Special K "หรือที่เรียกกันด้วยความรักว่า Swiss Army Knife สำหรับเกมพีซี Special K ทำทุกอย่างเพียงเล็กน้อย เป็นที่รู้จักกันดีที่สุดในด้านการแก้ไขและปรับปรุงกราฟิก การวิเคราะห์ประสิทธิภาพโดยละเอียดและม็อดการแก้ไข และเครื่องมือที่เติบโตอย่างต่อเนื่อง แก้ไขปัญหาต่างๆ มากมายที่ส่งผลต่อเกมพีซี"
เนื้อหาของพื้นที่เก็บข้อมูล
พื้นที่เก็บข้อมูลนี้มีซอร์สโค้ดสำหรับเพย์โหลดการแทรกโค้ดของ Special K (
SpecialK(32|64).dll
)การสนับสนุนสาธารณูปโภคเช่น SKIF ( S pecial K I njection F rontend) และ SKIM ที่เลิกใช้แล้วในขณะนี้ ( S pecial K I nstall M anger) ได้รับการดูแลเป็นโปรเจ็กต์แยกกัน นอกจากนี้ ม็อดรุ่นเก่าบางตัวที่สร้างโดยใช้ Special K นั้นมีอยู่ใน DLLs ปลั๊กอินแบบสแตนด์อโลน ปลั๊กอินและ SKIM ไม่ได้รับการบำรุงรักษาอีกต่อไป แต่สามารถเข้าถึงได้ผ่านโปรไฟล์ GitHub ของ Kaldaien
สร้างการพึ่งพาการพึ่งพาบิวด์ของ Special K ทั้งหมดจะรวมอยู่ด้วยเมื่อคุณโคลน repo ที่เริ่มต้นด้วย 23.5.7 เวอร์ชันเก่ามีการพึ่งพาเพิ่มเติมกับ DirectX SDK เดือนมิถุนายน 2010
Special K ต้องใช้ Visual C++ 2022 หรือใหม่กว่าในการคอมไพล์เนื่องจากฟีเจอร์ภาษาที่ไม่มีอยู่ในคอมไพเลอร์รุ่นเก่า
การพึ่งพาแพลตฟอร์มSpecial K ไม่รองรับสิ่งที่เก่ากว่า Windows 8.1 แม้ว่า (ณ วันที่ 23.5.7) ยังคงสร้างและรัน (ลดคุณสมบัติลงอย่างมาก) บน Windows 7 (อัพเดตแพลตฟอร์ม)
มันทำงานใน WINE และเข้ากันได้กับ DXVK แต่ต้องกำหนดค่าด้วย
UsingWINE=true
ในไฟล์ INI ต่อเกมจึงจะทำงานบน Linux
เบ็ดเตล็ดมีโอกาสที่ดีที่โปรเจ็กต์จะไม่คอมไพล์อย่างถูกต้องหากคุณใช้การกำหนดค่าบิลด์ Debug โดย Special K ได้รับการออกแบบมาเพื่อสร้างบิลด์ Release ที่สามารถดีบั๊กได้
DLL ของ Special K สามารถแทรกโค้ดได้ด้วยวิธีใดวิธีหนึ่งจากสองวิธี:
Local Injection Proxy / Wrapper DLL
SpecialK(32|64).dll
เป็น (dxgi|d3d11|d3d9|d3d8|ddraw|dinput8|OpenGL32).dll
และดำเนินการผ่าน Static Imports หรือเรียกใช้ LoadLibrary (...)
Global Injection Win32 Global Hookchain
นี่เป็นเทคนิคที่ต้องการ และ DLL สามารถบูตเครื่อง hook ได้โดยไม่ต้องอาศัยความช่วยเหลือจากภายนอกผ่าน
RunDLL_InjectionManager (...)
( rundll32.exe จะโฮสต์ DLL เป็นกระบวนการ Win32 UI ปกติ)
มีหลายวิธีที่เป็นไปได้ในการแทรก DLLs โดยทั้งสองวิธีที่อธิบายไว้ข้างต้นสามารถใช้งานได้โดยไม่ต้องมีเครื่องมือเพิ่มเติมใดๆ
Special K จะแทรกเข้าไปในเกมที่กำลังทำงานอยู่แล้วอย่างมีความสุข หากคุณต้องการสร้างเครื่องมือของคุณเองโดยใช้บางอย่างเช่น CreateRemoteThread (...)
แต่โปรดจำไว้ว่าการฉีดล่าช้าจะป้องกันคุณสมบัติบางอย่างของ Special K (โดยเฉพาะอย่างยิ่งที่เกี่ยวข้องกับ D3D แทนที่และ mod shader/texture) จากการทำงาน
CBT Hooks ถูกเลือกเนื่องจากลำดับของ hookchain เนื่องจาก API กราฟิกส่วนใหญ่บน Windows ต้องการหน้าต่างก่อนจึงจะสามารถเริ่มต้นได้โดยไม่สำคัญ CBT hook จึงนำเราเข้าสู่แอปพลิเคชันได้อย่างน่าเชื่อถือ ก่อน การสร้าง Swapchain D3D9/11/12