1diff --git a/src/core/retroarch.cpp b/src/core/retroarch.cpp
2index c2a2c47..97fa782 100644
3--- a/src/core/retroarch.cpp
4+++ b/src/core/retroarch.cpp
5@@ -102,7 +102,7 @@ static void loadConfig( std::map<string, string> &configs ) {
6
7 const fs::path basePath = RetroArch::getBasePath();
8 configs["system_directory"] = (basePath / _NFS("system")).u8string();
9- configs["libretro_directory"] = (basePath / _NFS("cores")).u8string();
10+ configs["libretro_directory"] = "@retroArchCoresPath@";
11 configs["savefile_directory"] = (basePath / _NFS("saves")).u8string();
12 configs["savestate_directory"] = (basePath / _NFS("states")).u8string();
13 configs["libretro_info_path"] = (basePath / _NFS("info")).u8string();
14@@ -110,7 +110,7 @@ static void loadConfig( std::map<string, string> &configs ) {
15 #if defined(FLATPAK_VERSION)
16 configs["assets_directory"] = "/app/share/libretro/assets/";
17 #elif defined(__linux__)
18- configs["assets_directory"] = (BaseDir::data() / "retro-data" / "assets").u8string();
19+ configs["assets_directory"] = "@retroArchAssetsPath@";;
20 configs["osk_overlay_directory"] = (BaseDir::data() / "retro-data" / "overlays" / "keyboards").u8string();
21 configs["overlay_directory"] = (BaseDir::data() / "retro-data" / "overlays").u8string();
22 configs["audio_filter_dir"] = (BaseDir::data() / "retro-data" / "filters" / "audio").u8string();
23@@ -845,13 +845,7 @@ fs::path RetroArch::getBasePath() {
24 }
25
26 fs::path RetroArch::getCorePath() {
27-#if defined(_WIN32)
28- return RetroArch::getBasePath() / L"cores" / L"parallel_n64_next_libretro.dll";
29-#elif defined(__APPLE__)
30- return RetroArch::getBasePath() / "cores" / "parallel_n64_next_libretro.dylib";
31-#else
32- return RetroArch::getBasePath() / "cores" / "parallel_n64_next_libretro.so";
33-#endif
34+ return "@parallelN64CorePath@";
35 }
36
37 fs::path RetroArch::getConfigPath() {
38@@ -866,7 +860,7 @@ fs::path RetroArch::getExePath() {
39 #elif defined(FLATPAK_VERSION)
40 return BaseDir::program() / "retroarch";
41 #else
42- return BaseDir::data() / "appimage" / "RetroArch-Linux-x86_64.AppImage";
43+ return "@retroArchExePath@";
44 #endif
45 }
46
47diff --git a/src/main.cpp b/src/main.cpp
48index 3ca39b2..f3c14ba 100644
49--- a/src/main.cpp
50+++ b/src/main.cpp
51@@ -200,6 +200,7 @@ int main( int argc, char **argv ) {
52 fs::path( "/usr/local/share/parallel-launcher/translations/" ),
53 fs::path( "/usr/share/parallel-launcher/translations/" )
54 #else
55+ fs::read_symlink( "/proc/self/exe" ).parent_path().parent_path() / "share/parallel-launcher/translations/",
56 fs::path( "/usr/share/parallel-launcher/translations/" ),
57 fs::path( "/usr/local/share/parallel-launcher/translations/" ),
58 BaseDir::program() / "lang"
59diff --git a/src/polyfill/base-directory.cpp b/src/polyfill/base-directory.cpp
60index 720a754..db607ca 100644
61--- a/src/polyfill/base-directory.cpp
62+++ b/src/polyfill/base-directory.cpp
63@@ -134,7 +134,7 @@ static Locations getLocations() {
64 #if defined(FLATPAK_VERSION)
65 fs::path( "/app/share/parallel-launcher" )
66 #elif defined(__linux__)
67- fs::path( "/usr/share/parallel-launcher" )
68+ fs::read_symlink( "/proc/self/exe" ).parent_path().parent_path() / "share/parallel-launcher"
69 #endif
70 };
71 }