aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrobinsch <hello@robinsch.com>2023-11-27 14:17:39 +0100
committerrobinsch <hello@robinsch.com>2023-11-27 14:17:39 +0100
commit0be449624b39c923c6c1de6084e96d6cc6a34bf7 (patch)
tree437a807ea7deb0970cc85c388577d9c130c83134
parent221a486e73917140a67c2d8b17e1e8a9efcc083b (diff)
Added fix for mouse flickering issue when report rate is > 250
-rw-r--r--Patcher.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/Patcher.cpp b/Patcher.cpp
index d8328f6..d3200fd 100644
--- a/Patcher.cpp
+++ b/Patcher.cpp
@@ -52,6 +52,40 @@ int main(int argc, char** argv)
for (size_t i = 0; i < 22; ++i)
wow_exe << static_cast<char>(0x90);
+ // mouse flickering and camera snapping issue when mouse has high report rate
+ // credits to bonbigz
+ {
+ wow_exe.clear();
+ wow_exe.seekg(0);
+ wow_exe.seekp(0x369A2F);
+ for (char b : { 0x8B, 0x15, 0xF8, 0x13, 0xD4, 0x00, 0x8B, 0x1D, 0xFC, 0x13, 0xD4, 0x00 })
+ wow_exe << b;
+
+ wow_exe.clear();
+ wow_exe.seekg(0);
+ wow_exe.seekp(0x369A2C);
+ for (char b : { 0xE9, 0x71, 0xF0, 0x0B, 0x00 })
+ wow_exe << b;
+
+ wow_exe.clear();
+ wow_exe.seekg(0);
+ wow_exe.seekp(0x428AA2);
+ for (char b : { 0x8D, 0x4D, 0xF0, 0x51, 0x57, 0xFF, 0x15, 0xDC, 0xF5, 0x9D, 0x00, 0x8B, 0x45, 0xF0, 0x8B, 0x15, 0xF8, 0x13, 0xD4, 0x00, 0xE9, 0x7A, 0x0F, 0xF4, 0xFF })
+ wow_exe << b;
+
+ wow_exe.clear();
+ wow_exe.seekg(0);
+ wow_exe.seekp(0x3691B0);
+ for (char b : { 0x55, 0x89, 0xE5, 0x8B, 0x05, 0xFC, 0x13, 0xD4, 0x00, 0x8B, 0x0D, 0xF8, 0x13, 0xD4, 0x00, 0xEB, 0xC2, 0x7D, 0x03, 0x83, 0xC1, 0x01, 0x83, 0xC0, 0x32, 0x83, 0xC1, 0x32, 0x3B, 0x0D, 0xEC, 0xBC, 0xCA, 0x00, 0x7E, 0x03, 0x83, 0xE9, 0x01, 0x3B, 0x05, 0xF0, 0xBC, 0xCA, 0x00, 0x7E, 0x03, 0x83, 0xE8, 0x01, 0x83, 0xE9, 0x32, 0x83, 0xE8, 0x32, 0x89, 0x0D, 0xF8, 0x13, 0xD4, 0x00, 0x89, 0x05, 0xFC, 0x13, 0xD4, 0x00, 0x89, 0xEC, 0x5D, 0xE9, 0xB4, 0xF7, 0xFF, 0xFF })
+ wow_exe << b;
+
+ wow_exe.clear();
+ wow_exe.seekg(0);
+ wow_exe.seekp(0x369183);
+ for (char b : { 0x83, 0xF8, 0x32, 0x7D, 0x03, 0x83, 0xC0, 0x01, 0x83, 0xF9, 0x32, 0xEB, 0x31 })
+ wow_exe << b;
+ }
+
std::cout << "World of Warcraft exe has been patched!\n";
return 0;
}