From 3e7176fe75b6f03f0384288f1f5ec7d6bac05365 Mon Sep 17 00:00:00 2001 From: Vauff Date: Fri, 1 Aug 2025 05:52:51 -0400 Subject: [PATCH 01/12] Update signatures for 2025-07-28 CS2 update --- MovementUnlocker.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/MovementUnlocker.cpp b/MovementUnlocker.cpp index 64be005..666d1a9 100644 --- a/MovementUnlocker.cpp +++ b/MovementUnlocker.cpp @@ -29,12 +29,12 @@ MovementUnlocker g_MovementUnlocker; #ifdef _WIN32 -const unsigned char *pPatchSignature = (unsigned char *)"\x76\x2A\xF2\x0F\x10\x4F\x2A\x41\x0F\x28\xC1\x0F\x28\xD1\xF3\x0F\x59\xC0"; -const char *pPatchPattern = "x?xxxx?xxxxxxxxxxx"; +const unsigned char *pPatchSignature = (unsigned char *)"\x76\x2A\xF2\x0F\x10\x4E\x2A\x41\x0F\x28\xD2\x0F\x28\xC1"; +const char *pPatchPattern = "x?xxxx?xxxxxxx"; int PatchLen = 1; #elif __linux__ -const unsigned char * pPatchSignature = (unsigned char *)"\x0F\x87\x2A\x2A\x2A\x2A\x49\x8B\x7C\x24\x2A\xE8\x2A\x2A\x2A\x2A\x66\x0F\xEF\xED\x66\x0F\xD6\x85"; -const char* pPatchPattern = "xx????xxxx?x????xxxxxxxx"; +const unsigned char * pPatchSignature = (unsigned char *)"\x0F\x87\x2A\x2A\x2A\x2A\x49\x8B\x7C\x24\x2A\x48\x85\xFF"; +const char* pPatchPattern = "xx????xxxx?xxx"; int PatchLen = 6; #endif @@ -151,7 +151,7 @@ const char *MovementUnlocker::GetLicense() const char *MovementUnlocker::GetVersion() { - return "1.4"; + return "1.5"; } const char *MovementUnlocker::GetDate() From ce00eec29c0c8a6b88f308cf1cfe636cf9b5de8e Mon Sep 17 00:00:00 2001 From: Vauff Date: Fri, 19 Sep 2025 01:40:49 -0400 Subject: [PATCH 02/12] Update patches for recent CS2 updates --- MovementUnlocker.cpp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/MovementUnlocker.cpp b/MovementUnlocker.cpp index 666d1a9..90acbb3 100644 --- a/MovementUnlocker.cpp +++ b/MovementUnlocker.cpp @@ -29,12 +29,12 @@ MovementUnlocker g_MovementUnlocker; #ifdef _WIN32 -const unsigned char *pPatchSignature = (unsigned char *)"\x76\x2A\xF2\x0F\x10\x4E\x2A\x41\x0F\x28\xD2\x0F\x28\xC1"; -const char *pPatchPattern = "x?xxxx?xxxxxxx"; -int PatchLen = 1; +const unsigned char *pPatchSignature = (unsigned char *)"\x0F\x86\xB8\x2A\x2A\x2A\xF3\x0F\x58\xD4"; +const char *pPatchPattern = "xxx???xxxx"; +int PatchLen = 6; #elif __linux__ -const unsigned char * pPatchSignature = (unsigned char *)"\x0F\x87\x2A\x2A\x2A\x2A\x49\x8B\x7C\x24\x2A\x48\x85\xFF"; -const char* pPatchPattern = "xx????xxxx?xxx"; +const unsigned char * pPatchSignature = (unsigned char *)"\x0F\x87\x2A\x2A\x2A\x2A\xF3\x0F\x10\x3D\x2A\x2A\x2A\x2A\xF3\x0F\x11\xBD"; +const char* pPatchPattern = "xx????xxxx????xxxx"; int PatchLen = 6; #endif @@ -113,7 +113,10 @@ bool MovementUnlocker::Load(PluginId id, ISmmAPI *ismm, char *error, size_t maxl SourceHook::SetMemAccess((void*)pPatchAddress, PatchLen, SH_MEM_READ | SH_MEM_WRITE | SH_MEM_EXEC); #ifdef _WIN32 - *(unsigned char*)(pPatchAddress) = ((unsigned char*)"\xEB")[0]; + const char* patchBytes[] = {"\xE9", "\xB9", "\x00", "\x00", "\x00", "\x90"}; + + for (int i = 0; i < PatchLen; i++) + *(unsigned char*)(pPatchAddress + i) = ((unsigned char*)patchBytes[i])[0]; #elif __linux__ for (int i = 0; i < PatchLen; i++) *(unsigned char*)(pPatchAddress + i) = ((unsigned char*)"\x90")[0]; @@ -151,7 +154,7 @@ const char *MovementUnlocker::GetLicense() const char *MovementUnlocker::GetVersion() { - return "1.5"; + return "1.6"; } const char *MovementUnlocker::GetDate() From b5807e27cfb4269c808a4a7ccdebd294a775c60d Mon Sep 17 00:00:00 2001 From: Vauff Date: Wed, 24 Sep 2025 00:05:15 -0400 Subject: [PATCH 03/12] Update patches for 2025-09-23 CS2 update --- MovementUnlocker.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/MovementUnlocker.cpp b/MovementUnlocker.cpp index 90acbb3..f06c751 100644 --- a/MovementUnlocker.cpp +++ b/MovementUnlocker.cpp @@ -29,12 +29,12 @@ MovementUnlocker g_MovementUnlocker; #ifdef _WIN32 -const unsigned char *pPatchSignature = (unsigned char *)"\x0F\x86\xB8\x2A\x2A\x2A\xF3\x0F\x58\xD4"; +const unsigned char *pPatchSignature = (unsigned char *)"\x0F\x86\xB7\x2A\x2A\x2A\xF3\x0F\x58\xD4"; const char *pPatchPattern = "xxx???xxxx"; int PatchLen = 6; #elif __linux__ -const unsigned char * pPatchSignature = (unsigned char *)"\x0F\x87\x2A\x2A\x2A\x2A\xF3\x0F\x10\x3D\x2A\x2A\x2A\x2A\xF3\x0F\x11\xBD"; -const char* pPatchPattern = "xx????xxxx????xxxx"; +const unsigned char * pPatchSignature = (unsigned char *)"\x0F\x87\x2A\x2A\x2A\x2A\xF3\x0F\x10\x35\x2A\x2A\x2A\x2A\xF3\x0F\x11\xB5\x2A\x2A\x2A\x2A\x48\x89\xDE"; +const char* pPatchPattern = "xx????xxxx????xxxx????xxx"; int PatchLen = 6; #endif @@ -113,7 +113,7 @@ bool MovementUnlocker::Load(PluginId id, ISmmAPI *ismm, char *error, size_t maxl SourceHook::SetMemAccess((void*)pPatchAddress, PatchLen, SH_MEM_READ | SH_MEM_WRITE | SH_MEM_EXEC); #ifdef _WIN32 - const char* patchBytes[] = {"\xE9", "\xB9", "\x00", "\x00", "\x00", "\x90"}; + const char* patchBytes[] = {"\xE9", "\xB8", "\x00", "\x00", "\x00", "\x90"}; for (int i = 0; i < PatchLen; i++) *(unsigned char*)(pPatchAddress + i) = ((unsigned char*)patchBytes[i])[0]; @@ -154,7 +154,7 @@ const char *MovementUnlocker::GetLicense() const char *MovementUnlocker::GetVersion() { - return "1.6"; + return "1.7"; } const char *MovementUnlocker::GetDate() From 850d144232644a784aca9c74caf310b884f5b76e Mon Sep 17 00:00:00 2001 From: Vauff Date: Fri, 26 Sep 2025 22:32:51 -0400 Subject: [PATCH 04/12] Update Windows patch for 2025-09-25 CS2 update Co-authored-by: xen --- MovementUnlocker.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/MovementUnlocker.cpp b/MovementUnlocker.cpp index f06c751..3fdd83e 100644 --- a/MovementUnlocker.cpp +++ b/MovementUnlocker.cpp @@ -29,7 +29,7 @@ MovementUnlocker g_MovementUnlocker; #ifdef _WIN32 -const unsigned char *pPatchSignature = (unsigned char *)"\x0F\x86\xB7\x2A\x2A\x2A\xF3\x0F\x58\xD4"; +const unsigned char *pPatchSignature = (unsigned char *)"\x0F\x86\xB0\x2A\x2A\x2A\xF3\x0F\x58\xD4"; const char *pPatchPattern = "xxx???xxxx"; int PatchLen = 6; #elif __linux__ @@ -113,7 +113,7 @@ bool MovementUnlocker::Load(PluginId id, ISmmAPI *ismm, char *error, size_t maxl SourceHook::SetMemAccess((void*)pPatchAddress, PatchLen, SH_MEM_READ | SH_MEM_WRITE | SH_MEM_EXEC); #ifdef _WIN32 - const char* patchBytes[] = {"\xE9", "\xB8", "\x00", "\x00", "\x00", "\x90"}; + const char* patchBytes[] = {"\xE9", "\xB1", "\x00", "\x00", "\x00", "\x90"}; for (int i = 0; i < PatchLen; i++) *(unsigned char*)(pPatchAddress + i) = ((unsigned char*)patchBytes[i])[0]; @@ -154,7 +154,7 @@ const char *MovementUnlocker::GetLicense() const char *MovementUnlocker::GetVersion() { - return "1.7"; + return "1.8"; } const char *MovementUnlocker::GetDate() From 0193cd340a90bd1bb0e7b2ec836b835082f9dd06 Mon Sep 17 00:00:00 2001 From: Vauff Date: Tue, 4 Nov 2025 23:00:21 -0500 Subject: [PATCH 05/12] Update patches for 2025-11-04 CS2 update --- MovementUnlocker.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/MovementUnlocker.cpp b/MovementUnlocker.cpp index 3fdd83e..b25d820 100644 --- a/MovementUnlocker.cpp +++ b/MovementUnlocker.cpp @@ -29,11 +29,11 @@ MovementUnlocker g_MovementUnlocker; #ifdef _WIN32 -const unsigned char *pPatchSignature = (unsigned char *)"\x0F\x86\xB0\x2A\x2A\x2A\xF3\x0F\x58\xD4"; +const unsigned char *pPatchSignature = (unsigned char *)"\x0F\x86\xB0\x2A\x2A\x2A\xF3\x0F\x58\xD3"; const char *pPatchPattern = "xxx???xxxx"; int PatchLen = 6; #elif __linux__ -const unsigned char * pPatchSignature = (unsigned char *)"\x0F\x87\x2A\x2A\x2A\x2A\xF3\x0F\x10\x35\x2A\x2A\x2A\x2A\xF3\x0F\x11\xB5\x2A\x2A\x2A\x2A\x48\x89\xDE"; +const unsigned char * pPatchSignature = (unsigned char *)"\x0F\x87\x2A\x2A\x2A\x2A\xF3\x0F\x10\x35\x2A\x2A\x2A\x2A\xF3\x0F\x11\xB5\x2A\x2A\x2A\x2A\x4C\x89\xEE"; const char* pPatchPattern = "xx????xxxx????xxxx????xxx"; int PatchLen = 6; #endif @@ -154,7 +154,7 @@ const char *MovementUnlocker::GetLicense() const char *MovementUnlocker::GetVersion() { - return "1.8"; + return "1.9"; } const char *MovementUnlocker::GetDate() From a2673ddd75e1a3ef9c166c9da122e8a1dc54e823 Mon Sep 17 00:00:00 2001 From: Vauff Date: Sat, 24 Jan 2026 20:49:15 -0500 Subject: [PATCH 06/12] Update patches for 2026-01-21 CS2 update --- MovementUnlocker.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/MovementUnlocker.cpp b/MovementUnlocker.cpp index b25d820..f4eef7d 100644 --- a/MovementUnlocker.cpp +++ b/MovementUnlocker.cpp @@ -29,11 +29,11 @@ MovementUnlocker g_MovementUnlocker; #ifdef _WIN32 -const unsigned char *pPatchSignature = (unsigned char *)"\x0F\x86\xB0\x2A\x2A\x2A\xF3\x0F\x58\xD3"; -const char *pPatchPattern = "xxx???xxxx"; +const unsigned char *pPatchSignature = (unsigned char *)"\x0F\x86\xAF\x2A\x2A\x2A\x0F\x57\xC0\x0F\x2E\xC2"; +const char *pPatchPattern = "xxx???xxxxxx"; int PatchLen = 6; #elif __linux__ -const unsigned char * pPatchSignature = (unsigned char *)"\x0F\x87\x2A\x2A\x2A\x2A\xF3\x0F\x10\x35\x2A\x2A\x2A\x2A\xF3\x0F\x11\xB5\x2A\x2A\x2A\x2A\x4C\x89\xEE"; +const unsigned char * pPatchSignature = (unsigned char *)"\x0F\x87\x2A\x2A\x2A\x2A\xF3\x0F\x10\x3D\x2A\x2A\x2A\x2A\xF3\x0F\x11\xBD\x2A\x2A\x2A\x2A\x48\x89\xDE"; const char* pPatchPattern = "xx????xxxx????xxxx????xxx"; int PatchLen = 6; #endif @@ -113,7 +113,7 @@ bool MovementUnlocker::Load(PluginId id, ISmmAPI *ismm, char *error, size_t maxl SourceHook::SetMemAccess((void*)pPatchAddress, PatchLen, SH_MEM_READ | SH_MEM_WRITE | SH_MEM_EXEC); #ifdef _WIN32 - const char* patchBytes[] = {"\xE9", "\xB1", "\x00", "\x00", "\x00", "\x90"}; + const char* patchBytes[] = {"\xE9", "\xB0", "\x00", "\x00", "\x00", "\x90"}; for (int i = 0; i < PatchLen; i++) *(unsigned char*)(pPatchAddress + i) = ((unsigned char*)patchBytes[i])[0]; @@ -154,7 +154,7 @@ const char *MovementUnlocker::GetLicense() const char *MovementUnlocker::GetVersion() { - return "1.9"; + return "1.10"; } const char *MovementUnlocker::GetDate() From 221a9de3b225fb80c4a08a629985bdbde151442f Mon Sep 17 00:00:00 2001 From: Vauff Date: Sat, 24 Jan 2026 20:59:27 -0500 Subject: [PATCH 07/12] Fix missing setuptools in Windows CI --- .github/workflows/ci.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8e38a0d..dfd6ba7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -44,7 +44,11 @@ jobs: path: ambuild - name: Install AMBuild + shell: bash run: | + if [ "$RUNNER_OS" == "Windows" ]; then + pip install setuptools + fi cd ambuild && python setup.py install && cd .. - name: Build From d08776f5cf9078e72b1eb84c0d87f50cb97c02dd Mon Sep 17 00:00:00 2001 From: Vauff Date: Tue, 21 Apr 2026 17:11:36 -0400 Subject: [PATCH 08/12] Update patches for AnimGraph2 CS2 update --- MovementUnlocker.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/MovementUnlocker.cpp b/MovementUnlocker.cpp index f4eef7d..35d35da 100644 --- a/MovementUnlocker.cpp +++ b/MovementUnlocker.cpp @@ -29,12 +29,12 @@ MovementUnlocker g_MovementUnlocker; #ifdef _WIN32 -const unsigned char *pPatchSignature = (unsigned char *)"\x0F\x86\xAF\x2A\x2A\x2A\x0F\x57\xC0\x0F\x2E\xC2"; +const unsigned char *pPatchSignature = (unsigned char *)"\x0F\x86\xB0\x2A\x2A\x2A\x0F\x57\xC0\x0F\x2E\xC2"; const char *pPatchPattern = "xxx???xxxxxx"; int PatchLen = 6; #elif __linux__ -const unsigned char * pPatchSignature = (unsigned char *)"\x0F\x87\x2A\x2A\x2A\x2A\xF3\x0F\x10\x3D\x2A\x2A\x2A\x2A\xF3\x0F\x11\xBD\x2A\x2A\x2A\x2A\x48\x89\xDE"; -const char* pPatchPattern = "xx????xxxx????xxxx????xxx"; +const unsigned char * pPatchSignature = (unsigned char *)"\x0F\x87\x2A\x2A\x2A\x2A\xF3\x0F\x10\x35\x2A\x2A\x2A\x2A\xF3\x0F\x11\xB5"; +const char* pPatchPattern = "xx????xxxx????xxxx"; int PatchLen = 6; #endif @@ -113,7 +113,7 @@ bool MovementUnlocker::Load(PluginId id, ISmmAPI *ismm, char *error, size_t maxl SourceHook::SetMemAccess((void*)pPatchAddress, PatchLen, SH_MEM_READ | SH_MEM_WRITE | SH_MEM_EXEC); #ifdef _WIN32 - const char* patchBytes[] = {"\xE9", "\xB0", "\x00", "\x00", "\x00", "\x90"}; + const char* patchBytes[] = {"\xE9", "\xB1", "\x00", "\x00", "\x00", "\x90"}; for (int i = 0; i < PatchLen; i++) *(unsigned char*)(pPatchAddress + i) = ((unsigned char*)patchBytes[i])[0]; @@ -154,7 +154,7 @@ const char *MovementUnlocker::GetLicense() const char *MovementUnlocker::GetVersion() { - return "1.10"; + return "1.11"; } const char *MovementUnlocker::GetDate() From a2a78ed01bbe70b41f833c8454e655e675b2b28a Mon Sep 17 00:00:00 2001 From: Vauff Date: Mon, 18 May 2026 21:58:06 -0400 Subject: [PATCH 09/12] Update patches for 2026-05-18 CS2 update --- MovementUnlocker.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/MovementUnlocker.cpp b/MovementUnlocker.cpp index 35d35da..9cb5e08 100644 --- a/MovementUnlocker.cpp +++ b/MovementUnlocker.cpp @@ -29,12 +29,12 @@ MovementUnlocker g_MovementUnlocker; #ifdef _WIN32 -const unsigned char *pPatchSignature = (unsigned char *)"\x0F\x86\xB0\x2A\x2A\x2A\x0F\x57\xC0\x0F\x2E\xC2"; +const unsigned char *pPatchSignature = (unsigned char *)"\x0F\x86\xAF\x2A\x2A\x2A\x0F\x57\xC0\x0F\x2E\xC2"; const char *pPatchPattern = "xxx???xxxxxx"; int PatchLen = 6; #elif __linux__ -const unsigned char * pPatchSignature = (unsigned char *)"\x0F\x87\x2A\x2A\x2A\x2A\xF3\x0F\x10\x35\x2A\x2A\x2A\x2A\xF3\x0F\x11\xB5"; -const char* pPatchPattern = "xx????xxxx????xxxx"; +const unsigned char * pPatchSignature = (unsigned char *)"\x0F\x87\x2A\x2A\x2A\x2A\xF3\x0F\x10\x25\x2A\x2A\x2A\x2A\xF3\x0F\x11\xA5\x2A\x2A\x2A\x2A\x48\x89\xDE"; +const char* pPatchPattern = "xx????xxxx????xxxx????xxx"; int PatchLen = 6; #endif @@ -113,7 +113,7 @@ bool MovementUnlocker::Load(PluginId id, ISmmAPI *ismm, char *error, size_t maxl SourceHook::SetMemAccess((void*)pPatchAddress, PatchLen, SH_MEM_READ | SH_MEM_WRITE | SH_MEM_EXEC); #ifdef _WIN32 - const char* patchBytes[] = {"\xE9", "\xB1", "\x00", "\x00", "\x00", "\x90"}; + const char* patchBytes[] = {"\xE9", "\xB0", "\x00", "\x00", "\x00", "\x90"}; for (int i = 0; i < PatchLen; i++) *(unsigned char*)(pPatchAddress + i) = ((unsigned char*)patchBytes[i])[0]; @@ -154,7 +154,7 @@ const char *MovementUnlocker::GetLicense() const char *MovementUnlocker::GetVersion() { - return "1.11"; + return "1.12"; } const char *MovementUnlocker::GetDate() From 6148f39ad305b1436eb4e5dd6b8bd2a78e6c6e08 Mon Sep 17 00:00:00 2001 From: Vauff Date: Mon, 17 Aug 2026 00:01:34 -0400 Subject: [PATCH 10/12] Migrate to build containers & start SteamRT4 builds --- .github/workflows/{ci.yml => build.yml} | 49 ++++++++++++++----------- hl2sdk-manifests | 2 +- 2 files changed, 29 insertions(+), 22 deletions(-) rename .github/workflows/{ci.yml => build.yml} (63%) diff --git a/.github/workflows/ci.yml b/.github/workflows/build.yml similarity index 63% rename from .github/workflows/ci.yml rename to .github/workflows/build.yml index dfd6ba7..9734978 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/build.yml @@ -4,26 +4,31 @@ on: [push, pull_request] jobs: build: - name: Build + name: ${{ matrix.name }} Build runs-on: ${{ matrix.os }} container: ${{ matrix.container }} strategy: fail-fast: false matrix: - os: [windows-2022, ubuntu-latest] include: - - os: windows-2022 + - os: windows-latest + name: Windows - os: ubuntu-latest - container: registry.gitlab.steamos.cloud/steamrt/sniper/sdk + name: SteamRT3 + container: ghcr.io/source2ze/build-containers:steamrt3 + - os: ubuntu-latest + name: SteamRT4 + container: ghcr.io/source2ze/build-containers:steamrt4 steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v7 with: path: MovementUnlocker submodules: recursive + fetch-depth: 0 - name: Checkout Metamod - uses: actions/checkout@v4 + uses: actions/checkout@v7 with: repository: alliedmodders/metamod-source ref: master @@ -31,38 +36,35 @@ jobs: submodules: recursive - name: Checkout HL2SDK - uses: actions/checkout@v4 + uses: actions/checkout@v7 with: repository: alliedmodders/hl2sdk ref: cs2 path: hl2sdk-cs2 - name: Checkout AMBuild - uses: actions/checkout@v4 + if: matrix.os == 'windows-latest' + uses: actions/checkout@v7 with: repository: alliedmodders/ambuild path: ambuild - name: Install AMBuild - shell: bash - run: | - if [ "$RUNNER_OS" == "Windows" ]; then - pip install setuptools - fi - cd ambuild && python setup.py install && cd .. + if: matrix.os == 'windows-latest' + run: pip install setuptools && cd ambuild && python setup.py install && cd .. - name: Build working-directory: MovementUnlocker shell: bash run: | mkdir build && cd build - python ../configure.py --enable-optimize --symbol-files --sdks cs2 + python ../configure.py --enable-optimize --sdks cs2 ambuild - name: Upload artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: - name: ${{ runner.os }} + name: ${{ matrix.name }} path: MovementUnlocker/build/package release: @@ -73,15 +75,20 @@ jobs: steps: - name: Download artifacts - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 - name: Package run: | version=`echo $GITHUB_REF | sed "s/refs\/tags\///"` ls -Rall - if [ -d "./Linux/" ]; then - cd ./Linux/ - tar -czf ../${{ github.event.repository.name }}-${version}-linux.tar.gz * + if [ -d "./SteamRT3/" ]; then + cd ./SteamRT3/ + tar -czf ../${{ github.event.repository.name }}-${version}-steamrt3.tar.gz * + cd - + fi + if [ -d "./SteamRT4/" ]; then + cd ./SteamRT4/ + tar -czf ../${{ github.event.repository.name }}-${version}-steamrt4.tar.gz * cd - fi if [ -d "./Windows/" ]; then diff --git a/hl2sdk-manifests b/hl2sdk-manifests index a57b309..20b3a01 160000 --- a/hl2sdk-manifests +++ b/hl2sdk-manifests @@ -1 +1 @@ -Subproject commit a57b3095a6fc31a98b13e2d73ebb668dac4f1300 +Subproject commit 20b3a014264b38908c4a5d4eb263ba2c488f3dc1 From b418365b5b8cb0cb68099fe0485e9f23c818b2e9 Mon Sep 17 00:00:00 2001 From: Vauff Date: Tue, 8 Sep 2026 17:02:27 -0400 Subject: [PATCH 11/12] Migrate to KHook --- AMBuildScript | 2 +- MovementUnlocker.cpp | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/AMBuildScript b/AMBuildScript index 77353ac..cc5c402 100644 --- a/AMBuildScript +++ b/AMBuildScript @@ -278,7 +278,7 @@ class MMSPluginConfig(object): cxx.cxxincludes += [ os.path.join(context.currentSourcePath), os.path.join(mms_core_path), - os.path.join(mms_core_path, 'sourcehook'), + os.path.join(self.mms_root, 'third_party', 'khook', 'include'), ] defines = [] diff --git a/MovementUnlocker.cpp b/MovementUnlocker.cpp index 9cb5e08..97d55be 100644 --- a/MovementUnlocker.cpp +++ b/MovementUnlocker.cpp @@ -19,7 +19,7 @@ #include #include "MovementUnlocker.h" -#include +#include "khook/memory.hpp" #ifdef _WIN32 #include #elif __linux__ @@ -110,7 +110,7 @@ bool MovementUnlocker::Load(PluginId id, ISmmAPI *ismm, char *error, size_t maxl return false; } - SourceHook::SetMemAccess((void*)pPatchAddress, PatchLen, SH_MEM_READ | SH_MEM_WRITE | SH_MEM_EXEC); + KHook::Memory::SetAccess((void*)pPatchAddress, PatchLen, KHook::Memory::READ | KHook::Memory::WRITE | KHook::Memory::EXECUTE); #ifdef _WIN32 const char* patchBytes[] = {"\xE9", "\xB0", "\x00", "\x00", "\x00", "\x90"}; @@ -122,7 +122,7 @@ bool MovementUnlocker::Load(PluginId id, ISmmAPI *ismm, char *error, size_t maxl *(unsigned char*)(pPatchAddress + i) = ((unsigned char*)"\x90")[0]; #endif - SourceHook::SetMemAccess((void*)pPatchAddress, PatchLen, SH_MEM_READ | SH_MEM_EXEC); + KHook::Memory::SetAccess((void*)pPatchAddress, PatchLen, KHook::Memory::READ | KHook::Memory::EXECUTE); META_CONPRINTF( "[Movement Unlocker] Successfully patched Movement Unlocker!\n" ); return true; @@ -154,7 +154,7 @@ const char *MovementUnlocker::GetLicense() const char *MovementUnlocker::GetVersion() { - return "1.12"; + return "2.0"; } const char *MovementUnlocker::GetDate() From 4ea3794248f961fd0fbdccf893c49f7c7436572d Mon Sep 17 00:00:00 2001 From: Vauff Date: Thu, 24 Sep 2026 13:16:53 -0400 Subject: [PATCH 12/12] Update Linux patch for 2026-09-22 CS2 update --- MovementUnlocker.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/MovementUnlocker.cpp b/MovementUnlocker.cpp index 97d55be..2781173 100644 --- a/MovementUnlocker.cpp +++ b/MovementUnlocker.cpp @@ -33,9 +33,9 @@ const unsigned char *pPatchSignature = (unsigned char *)"\x0F\x86\xAF\x2A\x2A\x2 const char *pPatchPattern = "xxx???xxxxxx"; int PatchLen = 6; #elif __linux__ -const unsigned char * pPatchSignature = (unsigned char *)"\x0F\x87\x2A\x2A\x2A\x2A\xF3\x0F\x10\x25\x2A\x2A\x2A\x2A\xF3\x0F\x11\xA5\x2A\x2A\x2A\x2A\x48\x89\xDE"; -const char* pPatchPattern = "xx????xxxx????xxxx????xxx"; -int PatchLen = 6; +const unsigned char * pPatchSignature = (unsigned char *)"\x76\x2A\xF3\x0F\x51\xC0\xF3\x0F\x7E\xDB\x49\x8B\x06"; +const char* pPatchPattern = "x?xxxxxxxxxxx"; +int PatchLen = 1; #endif // From https://git.botox.bz/CSSZombieEscape/sm-ext-PhysHooks @@ -119,7 +119,7 @@ bool MovementUnlocker::Load(PluginId id, ISmmAPI *ismm, char *error, size_t maxl *(unsigned char*)(pPatchAddress + i) = ((unsigned char*)patchBytes[i])[0]; #elif __linux__ for (int i = 0; i < PatchLen; i++) - *(unsigned char*)(pPatchAddress + i) = ((unsigned char*)"\x90")[0]; + *(unsigned char*)(pPatchAddress + i) = ((unsigned char*)"\xEB")[0]; #endif KHook::Memory::SetAccess((void*)pPatchAddress, PatchLen, KHook::Memory::READ | KHook::Memory::EXECUTE); @@ -154,7 +154,7 @@ const char *MovementUnlocker::GetLicense() const char *MovementUnlocker::GetVersion() { - return "2.0"; + return "2.0.1"; } const char *MovementUnlocker::GetDate()