aboutsummaryrefslogtreecommitdiff
path: root/NorthstarDLL
diff options
context:
space:
mode:
authorEmma Miler <emma.pi@protonmail.com>2022-09-25 01:36:41 +0200
committerGitHub <noreply@github.com>2022-09-25 01:36:41 +0200
commitc3b61514eeaebe0d6e592437081f10d2f757cba1 (patch)
treece7ae53ec4e3734cbb9bdac85ed66a031df679ee /NorthstarDLL
parent122f84f14d6177cc4c78b817ab71712185e0b47f (diff)
downloadNorthstarLauncher-c3b61514eeaebe0d6e592437081f10d2f757cba1.tar.gz
NorthstarLauncher-c3b61514eeaebe0d6e592437081f10d2f757cba1.zip
Replace XInput library with updated one (#278)
* Replace XInput library with updated one This code adds better compatibility with newer controllers and different controller types Also adds ASLR to the loaded library * Formatting
Diffstat (limited to 'NorthstarDLL')
-rw-r--r--NorthstarDLL/hooks.cpp27
1 files changed, 21 insertions, 6 deletions
diff --git a/NorthstarDLL/hooks.cpp b/NorthstarDLL/hooks.cpp
index 7f1d3b84..72ae727a 100644
--- a/NorthstarDLL/hooks.cpp
+++ b/NorthstarDLL/hooks.cpp
@@ -210,14 +210,29 @@ void CallAllPendingDLLLoadCallbacks()
HMODULE LoadLibraryExAHook(LPCSTR lpLibFileName, HANDLE hFile, DWORD dwFlags)
{
- HMODULE moduleAddress = LoadLibraryExAOriginal(lpLibFileName, hFile, dwFlags);
-
- if (moduleAddress)
+ if (!strncmp(lpLibFileName, "XInput1_3.dll", 14))
{
- CallLoadLibraryACallbacks(lpLibFileName, moduleAddress);
+ HMODULE moduleAddress = LoadLibraryExAOriginal("XInput9_1_0.dll", hFile, dwFlags);
+ if (moduleAddress)
+ {
+ CallLoadLibraryACallbacks(lpLibFileName, moduleAddress);
+ }
+ else
+ {
+ MessageBoxA(0, "Could not find XInput9_1_0.dll", "Northstar", MB_ICONERROR);
+ exit(-1);
+ }
+ return moduleAddress;
+ }
+ else
+ {
+ HMODULE moduleAddress = LoadLibraryExAOriginal(lpLibFileName, hFile, dwFlags);
+ if (moduleAddress)
+ {
+ CallLoadLibraryACallbacks(lpLibFileName, moduleAddress);
+ }
+ return moduleAddress;
}
-
- return moduleAddress;
}
HMODULE LoadLibraryAHook(LPCSTR lpLibFileName)