Special K "PC 게임의 스위스 군용 칼이라고 사랑스럽게 불리는 Special K는 모든 작업을 수행합니다. 그래픽 수정 및 향상, 수많은 상세한 성능 분석 및 수정 모드, 지속적으로 성장하는 도구 팔레트로 가장 잘 알려져 있습니다. PC 게임에 영향을 미치는 다양한 문제를 해결합니다."
저장소의 내용
이 저장소에는 Special K의 코드 삽입 페이로드(
SpecialK(32|64).dll
)에 대한 소스 코드가 포함되어 있습니다.SKIF( S pecial K Injection Frontend ) 및 현재 더 이상 사용되지 않는 SKIM( S pecial K Install Manger )과 같은 지원 유틸리티는 별도의 프로젝트로 유지 관리됩니다. 또한 Special K를 사용하여 구축된 일부 이전 모드는 독립형 플러그인 DLL로 존재합니다. 플러그인과 SKIM은 더 이상 적극적으로 유지 관리되지 않지만 Kaldaien의 GitHub 프로필을 통해 액세스할 수 있습니다.
의존성 구축23.5.7부터 시작하는 저장소를 복제하면 Special K의 모든 빌드 종속성이 포함됩니다. 이전 버전에는 2010년 6월 DirectX SDK에 대한 추가 종속성이 있습니다.
Special K를 컴파일하려면 이전 컴파일러에 없는 언어 기능으로 인해 Visual C++ 2022 이상이 필요합니다.
플랫폼 종속성Special K는 Windows 8.1 이전 버전에서는 지원되지 않지만(23.5.7 기준) Windows 7(플랫폼 업데이트)에서는 여전히 빌드 및 실행됩니다(대규모 기능 감소).
WINE에서 실행되고 DXVK와 호환되지만 Linux에서 작동하려면 게임별 INI 파일에서
UsingWINE=true
로 구성해야 합니다.
여러 가지 잡다한디버그 빌드 구성을 사용하면 프로젝트가 올바르게 컴파일되지 않을 가능성이 높습니다. 특수 K는 디버그 가능한 릴리스 빌드를 생성하도록 설계되었습니다.
Special K의 DLL은 다음 두 가지 방법 중 하나로 코드를 삽입할 수 있습니다.
로컬 주입 프록시/래퍼 DLL
SpecialK(32|64).dll
의 이름을 (dxgi|d3d11|d3d9|d3d8|ddraw|dinput8|OpenGL32).dll
로 바꾸고 Static Imports 또는 LoadLibrary (...)
호출을 통해 탑승해 보세요.글로벌 인젝션 Win32 글로벌 훅체인
이것이 선호되는 기술이며 DLL은
RunDLL_InjectionManager (...)
통해 외부 지원 없이 후크를 부트스트래핑할 수 있습니다( rundll32.exe는 DLL을 일반 Win32 UI 프로세스로 호스팅합니다).
DLL을 삽입하는 데는 더 많은 방법이 있으며, 위에 설명된 두 가지 방법은 추가 도구 없이 사용할 수 있습니다.
CreateRemoteThread (...)
와 같은 것을 사용하여 자신만의 도구를 만들고 싶다면 Special K가 이미 실행 중인 게임에 기꺼이 주입할 것입니다. 하지만 늦게 주입하면 Special K의 일부 기능(특히 D3D와 관련된 기능)을 방해할 수 있다는 점을 명심하세요. 재정의 및 셰이더/텍스처 모드)가 작동하지 않습니다.
CBT 후크는 후크체인 주문으로 인해 선택되었습니다. Windows의 대부분의 그래픽 API는 중요한 초기화를 수행하기 전에 창이 필요하므로 CBT 후크는 D3D9/11/12 스왑 체인 생성 전에 안정적으로 애플리케이션에 연결됩니다.