diff --git a/config/ConfigFormUnit.cpp b/config/ConfigFormUnit.cpp
index 6a00eb9..790336a 100644
--- a/config/ConfigFormUnit.cpp
+++ b/config/ConfigFormUnit.cpp
@@ -23,6 +23,8 @@ int Savesettings;
 int Resolutions;
 int Minfps;
 
+#define GAME_PATH (TPath::GetDirectoryName(Application->ExeName) + "\\")
+
 //---------------------------------------------------------------------------
 __fastcall TConfigForm::TConfigForm(TComponent* Owner)
 	: TForm(Owner)
@@ -40,7 +42,7 @@ void __fastcall TConfigForm::CreateParams(TCreateParams & Params)
 
 void __fastcall TConfigForm::LanguageImgClick(TObject *Sender)
 {
-	auto *ini = new TIniFile(".\\ddraw.ini");
+	auto *ini = new TIniFile(GAME_PATH + "ddraw.ini");
 	ini->WriteString("ddraw", "configlang", IsEnglish ? "auto" : "english");
 	delete ini;
 
@@ -57,7 +59,7 @@ void __fastcall TConfigForm::LanguageImgClick(TObject *Sender)
 
 void __fastcall TConfigForm::ThemePnlClick(TObject *Sender)
 {
-	auto *ini = new TIniFile(".\\ddraw.ini");
+	auto *ini = new TIniFile(GAME_PATH + "ddraw.ini");
 	auto theme =
 		ThemePnl->Color == (TColor)RGB(31, 31, 31) ? "Cobalt XEMedia" : "Windows10";
 
@@ -86,7 +88,7 @@ void __fastcall TConfigForm::RestoreDefaultsBtnClick(TObject *Sender)
 		return;
 	}
 
-	auto *ini = new TIniFile(".\\Warcraft II BNE.ini");
+	auto *ini = new TIniFile(GAME_PATH + "Warcraft II BNE.ini");
 
 	ini->WriteString("Game", "Resolution", "4");
 	ini->WriteString("Game", "Width", "0");
@@ -94,7 +96,7 @@ void __fastcall TConfigForm::RestoreDefaultsBtnClick(TObject *Sender)
 
 	delete ini;
 
-	DeleteFile(".\\ddraw.ini");
+	DeleteFile(GAME_PATH + "ddraw.ini");
 
 	ShellExecute(
 		NULL,
@@ -685,11 +687,11 @@ void __fastcall TConfigForm::CompatibilityBtnClick(TObject *Sender)
 void __fastcall TConfigForm::FormCreate(TObject *Sender)
 {
 	/* Let cnc-ddraw create a new ddraw.ini if it doesn't exist */
-	if (FileExists(".\\ddraw.dll") && !FileExists(".\\ddraw.ini")) {
+	if (FileExists(GAME_PATH + "ddraw.dll") && !FileExists(GAME_PATH + "ddraw.ini")) {
 
 		SetEnvironmentVariableW(L"cnc_ddraw_config_init", L"1");
 
-		HMODULE ddraw = LoadLibraryW(L".\\ddraw.dll");
+		HMODULE ddraw = LoadLibraryW((GAME_PATH + "ddraw.dll").w_str());
 
 		if (ddraw) {
 
@@ -709,8 +711,8 @@ void __fastcall TConfigForm::FormCreate(TObject *Sender)
 		}
 	}
 
-	auto *ini = new TIniFile(".\\ddraw.ini");
-	auto *hd_ini = new TIniFile(".\\Warcraft II BNE.ini");
+	auto *ini = new TIniFile(GAME_PATH + "ddraw.ini");
+	auto *hd_ini = new TIniFile(GAME_PATH + "Warcraft II BNE.ini");
 
 	if (ini->ReadString("ddraw", "configtheme", "Windows10") == "Cobalt XEMedia") {
 
@@ -913,8 +915,8 @@ void __fastcall TConfigForm::FormCreate(TObject *Sender)
 	CompatibilityBtn->Visible = !GetBool(ini, "hide_compat_tab", false);
 
 	RestoreDefaultsBtn->Visible =
-		FileExists(".\\ddraw.dll") &&
-		FileExists(".\\ddraw.ini") &&
+		FileExists(GAME_PATH + "ddraw.dll") &&
+		FileExists(GAME_PATH + "ddraw.ini") &&
 		GetBool(ini, "allow_reset", true);
 
 	delete ini;
@@ -928,8 +930,8 @@ void TConfigForm::SaveSettings()
 	if (!Initialized)
 		return;
 
-	auto *ini = new TIniFile(".\\ddraw.ini");
-	auto *hd_ini = new TIniFile(".\\Warcraft II BNE.ini");
+	auto *ini = new TIniFile(GAME_PATH + "ddraw.ini");
+	auto *hd_ini = new TIniFile(GAME_PATH + "Warcraft II BNE.ini");
 
 	/* Display Settings */
 
diff --git a/config/cnc-ddraw config.cpp b/config/cnc-ddraw config.cpp
index 7cb64d5..0760b13 100644
--- a/config/cnc-ddraw config.cpp	
+++ b/config/cnc-ddraw config.cpp	
@@ -3,6 +3,7 @@
 #include <vcl.h>
 #pragma hdrstop
 #include <IniFiles.hpp>
+#include <IOUtils.hpp>
 #include <System.Hash.hpp>
 #include <tchar.h>
 //---------------------------------------------------------------------------
@@ -10,6 +11,9 @@
 #include <Vcl.Themes.hpp>
 USEFORM("ConfigFormUnit.cpp", ConfigForm);
 //---------------------------------------------------------------------------
+
+#define GAME_PATH (TPath::GetDirectoryName(Application->ExeName) + "\\")
+
 int WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
 {
 	try
@@ -31,7 +35,7 @@ int WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
 			return 0;
 		}
 
-		auto *ini = new TIniFile(".\\ddraw.ini");
+		auto *ini = new TIniFile(GAME_PATH + "ddraw.ini");
 		auto theme = ini->ReadString("ddraw", "configtheme", "Windows10");
 
 		TStyleManager::TrySetStyle(