Index: pcsx2/Pcsx2Config.cpp
--- pcsx2/Pcsx2Config.cpp.orig
+++ pcsx2/Pcsx2Config.cpp
@@ -2133,6 +2133,10 @@ void EmuFolders::SetAppRoot()
 
 bool EmuFolders::SetResourcesDirectory()
 {
+#ifdef PCSX2_RESOURCES_PATH
+	// Resources' path specified at compile time
+	EmuFolders::Resources = Path::Canonicalize(PCSX2_RESOURCES_PATH);
+#else
 #ifndef __APPLE__
 #ifndef PCSX2_APP_DATADIR
 	// On Windows/Linux, these are in the binary directory.
@@ -2147,6 +2151,7 @@ bool EmuFolders::SetResourcesDirectory()
 	else
 		Resources = Path::Combine(AppRoot, "resources");
 #endif
+#endif // PCSX2_RESOURCES_PATH
 
 	Console.WriteLnFmt("Resources Directory: {}", Resources);
 
@@ -2194,7 +2199,7 @@ bool EmuFolders::SetDataDirectory(Error* error)
 				DataRoot = Path::Combine(StringUtil::WideStringToUTF8String(documents_directory), "PCSX2");
 			CoTaskMemFree(documents_directory);
 		}
-#elif defined(__linux__) || defined(__FreeBSD__)
+#elif defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__)
 		// Use $XDG_CONFIG_HOME/PCSX2 if it exists.
 		const char* xdg_config_home = getenv("XDG_CONFIG_HOME");
 		if (xdg_config_home && Path::IsAbsolute(xdg_config_home))
