aboutsummaryrefslogtreecommitdiff
path: root/LauncherInjector/main.cpp
diff options
context:
space:
mode:
authorp0358 <p0358@users.noreply.github.com>2021-12-31 22:25:40 +0100
committerGitHub <noreply@github.com>2021-12-31 22:25:40 +0100
commitdcba96bcc4b02639e859b0dcdc863391cb54684f (patch)
tree99d129460365774ae011d83b3765e7d9388c44a7 /LauncherInjector/main.cpp
parent4f7c3d02943a38941b79a638c5607b2b7f668956 (diff)
parentd658c0c8374f8491e062fabe031f79185169c414 (diff)
downloadNorthstarLauncher-dcba96bcc4b02639e859b0dcdc863391cb54684f.tar.gz
NorthstarLauncher-dcba96bcc4b02639e859b0dcdc863391cb54684f.zip
Merge pull request #1 from geniiii/p0358-refactor-fixes
Fixes, removal of fallback linear allocator
Diffstat (limited to 'LauncherInjector/main.cpp')
-rw-r--r--LauncherInjector/main.cpp36
1 files changed, 14 insertions, 22 deletions
diff --git a/LauncherInjector/main.cpp b/LauncherInjector/main.cpp
index 1eca067a..761f443e 100644
--- a/LauncherInjector/main.cpp
+++ b/LauncherInjector/main.cpp
@@ -18,7 +18,7 @@ HMODULE hHookModule;
HMODULE hTier0Module;
wchar_t exePath[4096];
-wchar_t buffer[8196];
+wchar_t buffer[8192];
DWORD GetProcessByName(std::wstring processName)
{
@@ -173,24 +173,18 @@ bool LoadNorthstar()
int main(int argc, char* argv[]) {
// checked to avoid starting origin, Northstar.dll will check for -dedicated as well on its own
- bool isDedicated = false;
- for (int i = 0; i < argc; i++)
- if (!strcmp(argv[i], "-dedicated"))
- isDedicated = true;
-
bool noOriginStartup = false;
for (int i = 0; i < argc; i++)
- if (!strcmp(argv[i], "-noOriginStartup"))
+ if (!strcmp(argv[i], "-noOriginStartup") || !strcmp(argv[i], "-dedicated"))
noOriginStartup = true;
- if (!isDedicated && !noOriginStartup)
+ if (!noOriginStartup)
{
EnsureOriginStarted();
}
{
-
- if (!GetExePathWide(exePath, 4096))
+ if (!GetExePathWide(exePath, sizeof(exePath)))
{
MessageBoxA(GetForegroundWindow(), "Failed getting game directory.\nThe game cannot continue and has to exit.", "Northstar Launcher Error", 0);
return 1;
@@ -198,6 +192,15 @@ int main(int argc, char* argv[]) {
PrependPath();
+ printf("[*] Loading tier0.dll\n");
+ swprintf_s(buffer, L"%s\\bin\\x64_retail\\tier0.dll", exePath);
+ hTier0Module = LoadLibraryExW(buffer, 0, LOAD_WITH_ALTERED_SEARCH_PATH);
+ if (!hTier0Module)
+ {
+ LibraryLoadError(GetLastError(), L"tier0.dll", buffer);
+ return 1;
+ }
+
bool loadNorthstar = ShouldLoadNorthstar(argc, argv);
if (loadNorthstar)
{
@@ -210,23 +213,12 @@ int main(int argc, char* argv[]) {
printf("[*] Loading launcher.dll\n");
swprintf_s(buffer, L"%s\\bin\\x64_retail\\launcher.dll", exePath);
- hLauncherModule = LoadLibraryExW(buffer, 0i64, 8u);
+ hLauncherModule = LoadLibraryExW(buffer, 0, LOAD_WITH_ALTERED_SEARCH_PATH);
if (!hLauncherModule)
{
LibraryLoadError(GetLastError(), L"launcher.dll", buffer);
return 1;
}
-
- printf("[*] Loading tier0.dll\n");
- // this makes zero sense given tier0.dll is already loaded via imports on launcher.dll, but we do it for full consistency with original launcher exe
- // and to also let load callbacks in Northstar work for tier0.dll
- swprintf_s(buffer, L"%s\\bin\\x64_retail\\tier0.dll", exePath);
- hTier0Module = LoadLibraryW(buffer);
- if (!hTier0Module)
- {
- LibraryLoadError(GetLastError(), L"tier0.dll", buffer);
- return 1;
- }
}
printf("[*] Launching the game...\n");