summaryrefslogtreecommitdiffstats
path: root/pkgs/applications/emulators/retroarch
diff options
context:
space:
mode:
authorgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>2022-10-19 12:01:22 +0000
committerGitHub <noreply@github.com>2022-10-19 12:01:22 +0000
commitbbaff9a043d0bea6eef68b7e87ee71caafe50d5c (patch)
treeded704aba47a6169e5f5ac7531802f23004ea7eb /pkgs/applications/emulators/retroarch
parentcea1c3f0cddbd290d326e9dccb3fbb56d4d49578 (diff)
parent678b994771c7fadfb3d7d3d96ee63fdf6fc574d0 (diff)
Merge master into staging-next
Diffstat (limited to 'pkgs/applications/emulators/retroarch')
-rw-r--r--pkgs/applications/emulators/retroarch/cores.nix2
-rw-r--r--pkgs/applications/emulators/retroarch/default.nix93
-rw-r--r--pkgs/applications/emulators/retroarch/disable-menu_show_core_updater.patch25
-rw-r--r--pkgs/applications/emulators/retroarch/fix-config.patch26
-rw-r--r--pkgs/applications/emulators/retroarch/fix-libretro-paths.patch28
-rw-r--r--pkgs/applications/emulators/retroarch/hashes.json52
-rw-r--r--pkgs/applications/emulators/retroarch/use-fixed-paths-on-libretro_info_path.patch84
-rw-r--r--pkgs/applications/emulators/retroarch/use-fixed-paths.patch154
8 files changed, 237 insertions, 227 deletions
diff --git a/pkgs/applications/emulators/retroarch/cores.nix b/pkgs/applications/emulators/retroarch/cores.nix
index 1224aa74f29c..65b117629306 100644
--- a/pkgs/applications/emulators/retroarch/cores.nix
+++ b/pkgs/applications/emulators/retroarch/cores.nix
@@ -55,7 +55,7 @@ let
, stdenvOverride ? stdenv
, src ? (getCoreSrc core)
, broken ? false
- , version ? "unstable-2022-10-01"
+ , version ? "unstable-2022-10-18"
, platforms ? retroarch.meta.platforms
# The resulting core file is based on core name
# Setting `normalizeCore` to `true` will convert `-` to `_` on the core filename
diff --git a/pkgs/applications/emulators/retroarch/default.nix b/pkgs/applications/emulators/retroarch/default.nix
index 1754ad5eccb6..a8a20682afd4 100644
--- a/pkgs/applications/emulators/retroarch/default.nix
+++ b/pkgs/applications/emulators/retroarch/default.nix
@@ -4,6 +4,7 @@
, enableNvidiaCgToolkit ? false
, withGamemode ? stdenv.isLinux
, withVulkan ? stdenv.isLinux
+, withWayland ? stdenv.isLinux
, alsa-lib
, AppKit
, dbus
@@ -33,19 +34,20 @@
, udev
, vulkan-loader
, wayland
-, which
}:
let
- version = "1.11.0";
+ version = "1.12.0";
libretroCoreInfo = fetchFromGitHub {
owner = "libretro";
repo = "libretro-core-info";
- sha256 = "sha256-46T87BpzWUQHD7CsCF2sZo065Sl8Y4Sj1zwzBWmCiiU=";
- rev = "v${version}";
+ sha256 = "sha256-9Sfp/JkMJIe34YGNRxf93fONOBuQxR2pduoJU+xtuF0=";
+ # Upstream didn't tag a new libretro-core-info in 1.12.0 release
+ rev = "v1.11.1";
};
- runtimeLibs = lib.optional withVulkan vulkan-loader
- ++ lib.optional withGamemode gamemode.lib;
+ runtimeLibs =
+ lib.optional withVulkan vulkan-loader ++
+ lib.optional withGamemode (lib.getLib gamemode);
in
stdenv.mkDerivation rec {
pname = "retroarch-bare";
@@ -54,60 +56,77 @@ stdenv.mkDerivation rec {
src = fetchFromGitHub {
owner = "libretro";
repo = "RetroArch";
- sha256 = "sha256-/rOf85TQTXbY9kIETaO5E58f2ZvKPqEFLsbNne/+/lw=";
+ sha256 = "sha256-doLWNA8aTAllxx3zABtvZaegBQEPIi8276zbytPSdBU=";
rev = "v${version}";
};
patches = [
- ./disable-menu_show_core_updater.patch
- ./use-fixed-paths-on-libretro_info_path.patch
+ ./use-fixed-paths.patch
];
postPatch = ''
substituteInPlace "frontend/drivers/platform_unix.c" \
- --replace "@libretro_directory@" "$out/lib" \
- --replace "@libretro_info_path@" "$out/share/libretro/info"
+ --subst-var-by libretro_directory "$out/lib" \
+ --subst-var-by libretro_info_path "$out/share/libretro/info" \
+ --subst-var-by out "$out"
substituteInPlace "frontend/drivers/platform_darwin.m" \
- --replace "@libretro_directory@" "$out/lib" \
- --replace "@libretro_info_path@" "$out/share/libretro/info"
+ --subst-var-by libretro_directory "$out/lib" \
+ --subst-var-by libretro_info_path "$out/share/libretro/info"
'';
nativeBuildInputs = [ pkg-config ] ++
- lib.optional stdenv.isLinux wayland ++
+ lib.optional withWayland wayland ++
lib.optional (runtimeLibs != [ ]) makeWrapper;
- buildInputs = [ ffmpeg_4 freetype libxml2 libGLU libGL python3 SDL2 which ] ++
- lib.optional enableNvidiaCgToolkit nvidia_cg_toolkit ++
- lib.optional withVulkan vulkan-loader ++
- lib.optionals stdenv.isDarwin [ libobjc AppKit Foundation ] ++
- lib.optionals stdenv.isLinux [
- alsa-lib
- dbus
- libX11
- libXdmcp
- libXext
- libXxf86vm
- libdrm
- libpulseaudio
- libv4l
- libxkbcommon
- mesa
- udev
- wayland
- ];
+ buildInputs = [
+ ffmpeg_4
+ freetype
+ libGL
+ libGLU
+ libxml2
+ python3
+ SDL2
+ ] ++
+ lib.optional enableNvidiaCgToolkit nvidia_cg_toolkit ++
+ lib.optional withVulkan vulkan-loader ++
+ lib.optional withWayland wayland ++
+ lib.optionals stdenv.isDarwin [ libobjc AppKit Foundation ] ++
+ lib.optionals stdenv.isLinux [
+ alsa-lib
+ dbus
+ libX11
+ libXdmcp
+ libXext
+ libXxf86vm
+ libdrm
+ libpulseaudio
+ libv4l
+ libxkbcommon
+ mesa
+ udev
+ ];
enableParallelBuilding = true;
- configureFlags = lib.optionals stdenv.isLinux [ "--enable-kms" "--enable-egl" "--enable-dbus" ];
+ configureFlags = [
+ "--disable-update_cores"
+ ] ++
+ lib.optionals stdenv.isLinux [
+ "--enable-dbus"
+ "--enable-egl"
+ "--enable-kms"
+ ];
postInstall = ''
- mkdir -p $out/share/libretro/info
# TODO: ideally each core should have its own core information
+ mkdir -p $out/share/libretro/info
cp -r ${libretroCoreInfo}/* $out/share/libretro/info
- '' + lib.optionalString (runtimeLibs != [ ]) ''
+ '' +
+ lib.optionalString (runtimeLibs != [ ]) ''
wrapProgram $out/bin/retroarch \
--prefix LD_LIBRARY_PATH ':' ${lib.makeLibraryPath runtimeLibs}
- '' + lib.optionalString stdenv.isDarwin ''
+ '' +
+ lib.optionalString stdenv.isDarwin ''
# https://github.com/libretro/RetroArch/blob/master/retroarch-apple-packaging.sh
app=$out/Applications/RetroArch.app
mkdir -p $app/Contents/MacOS
diff --git a/pkgs/applications/emulators/retroarch/disable-menu_show_core_updater.patch b/pkgs/applications/emulators/retroarch/disable-menu_show_core_updater.patch
deleted file mode 100644
index 427cb4871dc9..000000000000
--- a/pkgs/applications/emulators/retroarch/disable-menu_show_core_updater.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 546b343294209abbb193883ab76b679b7f99c6d3 Mon Sep 17 00:00:00 2001
-From: Thiago Kenji Okada <thiagokokada@gmail.com>
-Date: Sat, 20 Nov 2021 16:03:50 -0300
-Subject: [PATCH] Disable "menu_show_core_updater"
-
----
- retroarch.cfg | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/retroarch.cfg b/retroarch.cfg
-index cdcb199c9f..ab72f3920f 100644
---- a/retroarch.cfg
-+++ b/retroarch.cfg
-@@ -681,7 +681,7 @@
- # menu_show_online_updater = true
-
- # If disabled, will hide the ability to update cores (and core info files) inside the menu.
--# menu_show_core_updater = true
-+menu_show_core_updater = false
-
- # If disabled, the libretro core will keep running in the background when we
- # are in the menu.
---
-2.31.1
-
diff --git a/pkgs/applications/emulators/retroarch/fix-config.patch b/pkgs/applications/emulators/retroarch/fix-config.patch
deleted file mode 100644
index 1a71bf43cb11..000000000000
--- a/pkgs/applications/emulators/retroarch/fix-config.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git a/retroarch.cfg b/retroarch.cfg
-index cdcb199c9f..08b9b1cf10 100644
---- a/retroarch.cfg
-+++ b/retroarch.cfg
-@@ -681,7 +681,7 @@
- # menu_show_online_updater = true
-
- # If disabled, will hide the ability to update cores (and core info files) inside the menu.
--# menu_show_core_updater = true
-+menu_show_core_updater = false
-
- # If disabled, the libretro core will keep running in the background when we
- # are in the menu.
-@@ -823,10 +823,10 @@
- # rgui_browser_directory =
-
- # Core directory for libretro core implementations.
--# libretro_directory =
-+libretro_directory = @libretro_directory@
-
- # Core info directory for libretro core information.
--# libretro_info_path =
-+libretro_info_path = @libretro_info_path@
-
- # Path to content database directory.
- # content_database_path =
diff --git a/pkgs/applications/emulators/retroarch/fix-libretro-paths.patch b/pkgs/applications/emulators/retroarch/fix-libretro-paths.patch
deleted file mode 100644
index 203ce836533d..000000000000
--- a/pkgs/applications/emulators/retroarch/fix-libretro-paths.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-diff --git a/configuration.c b/configuration.c
-index e6a3841324..afb1d6e2ce 100644
---- a/configuration.c
-+++ b/configuration.c
-@@ -1456,7 +1456,7 @@ static struct config_path_setting *populate_settings_path(
- SETTING_PATH("core_options_path",
- settings->paths.path_core_options, false, NULL, true);
- SETTING_PATH("libretro_info_path",
-- settings->paths.path_libretro_info, false, NULL, true);
-+ settings->paths.path_libretro_info, false, NULL, false);
- SETTING_PATH("content_database_path",
- settings->paths.path_content_database, false, NULL, true);
- SETTING_PATH("cheat_database_path",
-diff --git a/frontend/drivers/platform_unix.c b/frontend/drivers/platform_unix.c
-index 722e1c595c..e7313ee038 100644
---- a/frontend/drivers/platform_unix.c
-+++ b/frontend/drivers/platform_unix.c
-@@ -1825,8 +1825,8 @@ static void frontend_unix_get_env(int *argc,
- fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE_INFO], base_path,
- "core_info", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE_INFO]));
- #else
-- fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE_INFO], base_path,
-- "cores", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE_INFO]));
-+ fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE_INFO], "@libretro_info_path@",
-+ "", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE_INFO]));
- #endif
- fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_AUTOCONFIG], base_path,
- "autoconfig", sizeof(g_defaults.dirs[DEFAULT_DIR_AUTOCONFIG]));
diff --git a/pkgs/applications/emulators/retroarch/hashes.json b/pkgs/applications/emulators/retroarch/hashes.json
index fac926c9062b..af63572e61c0 100644
--- a/pkgs/applications/emulators/retroarch/hashes.json
+++ b/pkgs/applications/emulators/retroarch/hashes.json
@@ -153,8 +153,8 @@
"fbneo": {
"owner": "libretro",
"repo": "fbneo",
- "rev": "8678b0fcd02c4049c0cfa40a0ab87fded1bbedd8",
- "sha256": "MiLYaURj17Sq8V31SDFQ93XH4DAYMQQelVq+4EBmtro="
+ "rev": "758f24740d81ff833c1868befd98ccd11909255f",
+ "sha256": "VhfsvohRWICWqKWry0fgUS76kiXBsnjY9DytxEvulKA="
},
"fceumm": {
"owner": "libretro",
@@ -219,8 +219,8 @@
"mame": {
"owner": "libretro",
"repo": "mame",
- "rev": "fcacbc7811a9b69874fd09b91e7217e44c6a0980",
- "sha256": "WiBmqBcqxXmeQOmTN4FDDUv680uqAkpYUOnvJ7FXn4k="
+ "rev": "0d935696dce53a13eaf0705f4a108ee348f3c613",
+ "sha256": "HnJ3eHzTpR7Lsi1ATn3B314y0KNKJ0+qNGcDbFvmZEA="
},
"mame2000": {
"owner": "libretro",
@@ -237,8 +237,8 @@
"mame2003-plus": {
"owner": "libretro",
"repo": "mame2003-plus-libretro",
- "rev": "982db57b325b54aa90a60bd2e512b624d3b6642c",
- "sha256": "uyysUD/PULHyaOw42GJoBsT9fYdYuAl4eLCVNRU8/Sw="
+ "rev": "d88d5c118e8d7075ec0a4e6deebb4cd3f18a8dd1",
+ "sha256": "9offucQMCpMqo4StYscS6kivXCYHy4Sn+Cs/3MoNwsw="
},
"mame2010": {
"owner": "libretro",
@@ -261,8 +261,8 @@
"melonds": {
"owner": "libretro",
"repo": "melonds",
- "rev": "6a03f3f11a729dbf698ec53954c735a0680aca01",
- "sha256": "GH/G/UzwjNqHwtIwx6VohP4XsJKe+EFU2n+GX43IByM="
+ "rev": "5e52c245fb38cabe881fbfa6513280ee44fc5bd8",
+ "sha256": "jWBZ5wg1dKEgoEV09VTGJ+I4+8uiivAHhpTiD9tPaYg="
},
"mesen": {
"owner": "libretro",
@@ -285,8 +285,8 @@
"mgba": {
"owner": "libretro",
"repo": "mgba",
- "rev": "db7ace387cdc87d9f2bd4f9f5211c26ce0b07867",
- "sha256": "i/U5yrnGQBRHqBu8c/mQ7Eov43+6IOOs+H8pSKXNM1E="
+ "rev": "199a03e719436018779fe9299706c597fb2e9231",
+ "sha256": "3Q3MBzezCvl1Er45AeUM/QI0a+JiGn/PfYpqMaaiuds="
},
"mupen64plus": {
"owner": "libretro",
@@ -346,28 +346,28 @@
"pcsx_rearmed": {
"owner": "libretro",
"repo": "pcsx_rearmed",
- "rev": "5b406fd9567c0829171af44b3325dae6dd155732",
- "sha256": "V+z58fRSaLurDiu4Y/xQjndkMKPSmEGjay3foDkppM0="
+ "rev": "5ced3945423cda0010597b27b7da6bce77b12baa",
+ "sha256": "8O2XyEr40HqQf8mHxmvB6/UT837HZw8SrKBy/JH66p4="
},
"picodrive": {
"owner": "libretro",
"repo": "picodrive",
- "rev": "26719f348eb579a8372e2c58ef0132d95d9dc817",
- "sha256": "xD8RxFHeKOltIc35Zudj29x+vkq2AXfSKu0/ZzQQHi4=",
+ "rev": "0a4ec83cbfaebb65fb1c40f26ffaf28131f9003b",
+ "sha256": "NOMQoDmXGrxrquAcSLo6Otcz8bH4gnhqcG/zzet3Dtk=",
"fetchSubmodules": true
},
"play": {
"owner": "jpd002",
"repo": "Play-",
- "rev": "1129440ab6ede8263275dc3a5eec1624d20442fb",
- "sha256": "nTJjxVPGOofnIZbjGe3GZDIj4YnC73IbSdGsSuVIjEA=",
+ "rev": "1126c39cd8ebf56af347c475139d4db97fc7cc19",
+ "sha256": "H/cYFWl8rA/ZdoygEjr7h1y6Z0n29Z+OCzzVMvIuVyo=",
"fetchSubmodules": true
},
"ppsspp": {
"owner": "hrydgard",
"repo": "ppsspp",
- "rev": "16f93a26844b26e11cf9becfd275c4a637bfd1ab",
- "sha256": "k1URDPE4kRMY1LUeR2zcLJFGt0Gnt5N8gTQHpIxDdRw=",
+ "rev": "4af4b0dddc638b00205d9943f17a2806e438fe83",
+ "sha256": "5n+Mg2ZDTJd5fk1OZAiYnCT13G3LAWahXPA+MwaOF08=",
"fetchSubmodules": true
},
"prboom": {
@@ -385,8 +385,8 @@
"puae": {
"owner": "libretro",
"repo": "libretro-uae",
- "rev": "1b7dd443ff89d667d99f8c44454a91ed59bcabd9",
- "sha256": "YJiZEtB0rBFffEZj/hB7zEFBUp02kCzblq4CtCmygKo="
+ "rev": "4d8ebafe3f91c4998e8d73940e9558d863ecf93b",
+ "sha256": "dzfZFm7L+Qe3WwSYiMLp3cQm8zk0pWVB68nBe/H1Hvc="
},
"quicknes": {
"owner": "libretro",
@@ -439,8 +439,8 @@
"stella": {
"owner": "stella-emu",
"repo": "stella",
- "rev": "65115cc3a133d68979f3096bdecb067bcaedb493",
- "sha256": "letOnjaIGIjC9xwj5C156VkBhMPFtVq12FG7SuC5+OY="
+ "rev": "7193c405327e0f2156d24d53836162f4b44af079",
+ "sha256": "A9icQON+0WrknjGp/0wiFNSWs2ot2s0X5lucCdk4O/s="
},
"stella2014": {
"owner": "libretro",
@@ -451,8 +451,8 @@
"swanstation": {
"owner": "libretro",
"repo": "swanstation",
- "rev": "b6a18318bd7bf0d3b28b50d2b554810ea11b30cb",
- "sha256": "jZ6SfiHFJyaTFvINrEe61yhUtWYoqRzaAi0vLuDnMuo="
+ "rev": "ff0b451a573885a5b3a4f291f7b22f3ffc667a17",
+ "sha256": "jz8tkvgonc4icRt12tt1BBCCiwec0ucix7Hp7PNPl8E="
},
"tgbdual": {
"owner": "libretro",
@@ -476,8 +476,8 @@
"vba-m": {
"owner": "libretro",
"repo": "vbam-libretro",
- "rev": "7c25d64d6903c6d859cce781c52da0671c4f7d3e",
- "sha256": "U+jBM34sZxny9lpuegQ8YDKBwYrWOAyLBMKumoQCok4="
+ "rev": "7e30b038893de63e674944f75581d57c7685ea3a",
+ "sha256": "CmmiKiy0mFqAiagUHFV5wRSZ0MkzADrHRAG+h82dWAQ="
},
"vba-next": {
"owner": "libretro",
diff --git a/pkgs/applications/emulators/retroarch/use-fixed-paths-on-libretro_info_path.patch b/pkgs/applications/emulators/retroarch/use-fixed-paths-on-libretro_info_path.patch
deleted file mode 100644
index fd3913ea157e..000000000000
--- a/pkgs/applications/emulators/retroarch/use-fixed-paths-on-libretro_info_path.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-From 7bf021529ff15ca2580b15b3c0bfdc137d5beffe Mon Sep 17 00:00:00 2001
-From: Thiago Kenji Okada <thiagokokada@gmail.com>
-Date: Wed, 9 Mar 2022 18:24:15 +0000
-Subject: [PATCH] Use fixed paths on "libretro_info_path"
-
-This patch sets "libretro_info_path" to `handle = false`, so instead of
-using the values from `retroarch.cfg`, it will always use the default.
-
-Also, it patches the default "libretro_info_path" to the
-`@libretro_info_path` string, so we can substitute it with the full path
-to it during build.
----
- configuration.c | 2 +-
- frontend/drivers/platform_darwin.m | 9 ++-------
- frontend/drivers/platform_unix.c | 12 ++++--------
- 3 files changed, 7 insertions(+), 16 deletions(-)
-
-diff --git a/configuration.c b/configuration.c
-index 7e346ff6e9..c4b2100203 100644
---- a/configuration.c
-+++ b/configuration.c
-@@ -1466,7 +1466,7 @@ static struct config_path_setting *populate_settings_path(
- SETTING_PATH("core_options_path",
- settings->paths.path_core_options, false, NULL, true);
- SETTING_PATH("libretro_info_path",
-- settings->paths.path_libretro_info, false, NULL, true);
-+ settings->paths.path_libretro_info, false, NULL, false);
- SETTING_PATH("content_database_path",
- settings->paths.path_content_database, false, NULL, true);
- SETTING_PATH("cheat_database_path",
-diff --git a/frontend/drivers/platform_darwin.m b/frontend/drivers/platform_darwin.m
-index 6c5fdca400..552dcb7e2b 100644
---- a/frontend/drivers/platform_darwin.m
-+++ b/frontend/drivers/platform_darwin.m
-@@ -388,14 +388,9 @@ static void frontend_darwin_get_env(int *argc, char *argv[],
- home_dir_buf, "shaders_glsl",
- sizeof(g_defaults.dirs[DEFAULT_DIR_SHADER]));
- #endif
--#ifdef HAVE_UPDATE_CORES
- fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE],
-- home_dir_buf, "cores", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE]));
--#else
-- fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE],
-- bundle_path_buf, "modules", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE]));
--#endif
-- fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE_INFO], home_dir_buf, "info", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE_INFO]));
-+ "@libretro_directory@", "", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE]));
-+ fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE_INFO], "@libretro_info_path@", "", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE_INFO]));
- fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_OVERLAY], home_dir_buf, "overlays", sizeof(g_defaults.dirs[DEFAULT_DIR_OVERLAY]));
- #ifdef HAVE_VIDEO_LAYOUT
- fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_VIDEO_LAYOUT], home_dir_buf, "layouts", sizeof(g_defaults.dirs[DEFAULT_DIR_VIDEO_LAYOUT]));
-diff --git a/frontend/drivers/platform_unix.c b/frontend/drivers/platform_unix.c
-index b3b5dad173..7f1561e523 100644
---- a/frontend/drivers/platform_unix.c
-+++ b/frontend/drivers/platform_unix.c
-@@ -1820,12 +1820,8 @@ static void frontend_unix_get_env(int *argc,
- strcpy_literal(base_path, "retroarch");
- #endif
-
-- if (!string_is_empty(libretro_directory))
-- strlcpy(g_defaults.dirs[DEFAULT_DIR_CORE], libretro_directory,
-- sizeof(g_defaults.dirs[DEFAULT_DIR_CORE]));
-- else
-- fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE], base_path,
-- "cores", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE]));
-+ fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE], "@libretro_directory@",
-+ "", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE]));
- #if defined(DINGUX)
- /* On platforms that require manual core installation/
- * removal, placing core info files in the same directory
-@@ -1834,8 +1830,8 @@ static void frontend_unix_get_env(int *argc,
- fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE_INFO], base_path,
- "core_info", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE_INFO]));
- #else
-- fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE_INFO], base_path,
-- "cores", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE_INFO]));
-+ fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE_INFO], "@libretro_info_path@",
-+ "", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE_INFO]));
- #endif
- fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_AUTOCONFIG], base_path,
- "autoconfig", sizeof(g_defaults.dirs[DEFAULT_DIR_AUTOCONFIG]));
---
-2.32.0
-
diff --git a/pkgs/applications/emulators/retroarch/use-fixed-paths.patch b/pkgs/applications/emulators/retroarch/use-fixed-paths.patch
new file mode 100644
index 000000000000..a4837e63af7f
--- /dev/null
+++ b/pkgs/applications/emulators/retroarch/use-fixed-paths.patch
@@ -0,0 +1,154 @@
+From 8a1cffebb23f9d2a28228cd8cbf4fd80836157e8 Mon Sep 17 00:00:00 2001
+From: Thiago Kenji Okada <thiagokokada@gmail.com>
+Date: Tue, 18 Oct 2022 17:41:33 +0100
+Subject: [PATCH] Use fixed paths
+
+---
+ configuration.c | 2 +-
+ frontend/drivers/platform_darwin.m | 4 +--
+ frontend/drivers/platform_unix.c | 56 +++++++++++++++---------------
+ 3 files changed, 31 insertions(+), 31 deletions(-)
+
+diff --git a/configuration.c b/configuration.c
+index ac4779b2d7..d980892dda 100644
+--- a/configuration.c
++++ b/configuration.c
+@@ -1468,7 +1468,7 @@ static struct config_path_setting *populate_settings_path(
+ SETTING_PATH("core_options_path",
+ settings->paths.path_core_options, false, NULL, true);
+ SETTING_PATH("libretro_info_path",
+- settings->paths.path_libretro_info, false, NULL, true);
++ settings->paths.path_libretro_info, false, NULL, false);
+ SETTING_PATH("content_database_path",
+ settings->paths.path_content_database, false, NULL, true);
+ SETTING_PATH("cheat_database_path",
+diff --git a/frontend/drivers/platform_darwin.m b/frontend/drivers/platform_darwin.m
+index c771ec0f55..d5e21a1f4d 100644
+--- a/frontend/drivers/platform_darwin.m
++++ b/frontend/drivers/platform_darwin.m
+@@ -400,9 +400,9 @@ static void frontend_darwin_get_env(int *argc, char *argv[],
+ home_dir_buf, "cores", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE]));
+ #else
+ fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE],
+- bundle_path_buf, "modules", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE]));
++ "@libretro_directory@", "", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE]));
+ #endif
+- fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE_INFO], home_dir_buf, "info", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE_INFO]));
++ fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE_INFO], "@libretro_info_path@", "", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE_INFO]));
+ fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_OVERLAY], home_dir_buf, "overlays", sizeof(g_defaults.dirs[DEFAULT_DIR_OVERLAY]));
+ #ifdef HAVE_VIDEO_LAYOUT
+ fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_VIDEO_LAYOUT], home_dir_buf, "layouts", sizeof(g_defaults.dirs[DEFAULT_DIR_VIDEO_LAYOUT]));
+diff --git a/frontend/drivers/platform_unix.c b/frontend/drivers/platform_unix.c
+index 29e9a0d633..dba8abe941 100644
+--- a/frontend/drivers/platform_unix.c
++++ b/frontend/drivers/platform_unix.c
+@@ -1792,8 +1792,8 @@ static void frontend_unix_get_env(int *argc,
+ strlcpy(g_defaults.dirs[DEFAULT_DIR_CORE], libretro_directory,
+ sizeof(g_defaults.dirs[DEFAULT_DIR_CORE]));
+ else
+- fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE], base_path,
+- "cores", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE]));
++ fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE], "@libretro_directory@",
++ "", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE]));
+ #if defined(DINGUX)
+ /* On platforms that require manual core installation/
+ * removal, placing core info files in the same directory
+@@ -1802,27 +1802,27 @@ static void frontend_unix_get_env(int *argc,
+ fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE_INFO], base_path,
+ "core_info", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE_INFO]));
+ #else
+- fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE_INFO], base_path,
+- "cores", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE_INFO]));
++ fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE_INFO], "@libretro_info_path@",
++ "", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE_INFO]));
+ #endif
+ fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_AUTOCONFIG], base_path,
+ "autoconfig", sizeof(g_defaults.dirs[DEFAULT_DIR_AUTOCONFIG]));
+
+- if (path_is_directory("/usr/local/share/retroarch/assets"))
++ if (path_is_directory("@out@/local/share/retroarch/assets"))
+ fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_ASSETS],
+- "/usr/local/share/retroarch",
++ "@out@/local/share/retroarch",
+ "assets", sizeof(g_defaults.dirs[DEFAULT_DIR_ASSETS]));
+- else if (path_is_directory("/usr/share/retroarch/assets"))
++ else if (path_is_directory("@out@/share/retroarch/assets"))
+ fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_ASSETS],
+- "/usr/share/retroarch",
++ "@out@/share/retroarch",
+ "assets", sizeof(g_defaults.dirs[DEFAULT_DIR_ASSETS]));
+- else if (path_is_directory("/usr/local/share/games/retroarch/assets"))
++ else if (path_is_directory("@out@/local/share/games/retroarch/assets"))
+ fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_ASSETS],
+- "/usr/local/share/games/retroarch",
++ "@out@/local/share/games/retroarch",
+ "assets", sizeof(g_defaults.dirs[DEFAULT_DIR_ASSETS]));
+- else if (path_is_directory("/usr/share/games/retroarch/assets"))
++ else if (path_is_directory("@out@/share/games/retroarch/assets"))
+ fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_ASSETS],
+- "/usr/share/games/retroarch",
++ "@out@/share/games/retroarch",
+ "assets", sizeof(g_defaults.dirs[DEFAULT_DIR_ASSETS]));
+ else
+ fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_ASSETS], base_path,
+@@ -1834,41 +1834,41 @@ static void frontend_unix_get_env(int *argc,
+ fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_VIDEO_FILTER], base_path,
+ "filters/video", sizeof(g_defaults.dirs[DEFAULT_DIR_VIDEO_FILTER]));
+ #else
+- if (path_is_directory("/usr/local/share/retroarch/filters/audio"))
++ if (path_is_directory("@out@/local/share/retroarch/filters/audio"))
+ fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_AUDIO_FILTER],
+- "/usr/local/share/retroarch",
++ "@out@/local/share/retroarch",
+ "filters/audio", sizeof(g_defaults.dirs[DEFAULT_DIR_AUDIO_FILTER]));
+- else if (path_is_directory("/usr/share/retroarch/filters/audio"))
++ else if (path_is_directory("@out@/share/retroarch/filters/audio"))
+ fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_AUDIO_FILTER],
+- "/usr/share/retroarch",
++ "@out@/share/retroarch",
+ "filters/audio", sizeof(g_defaults.dirs[DEFAULT_DIR_AUDIO_FILTER]));
+- else if (path_is_directory("/usr/local/share/games/retroarch/filters/audio"))
++ else if (path_is_directory("@out@/local/share/games/retroarch/filters/audio"))
+ fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_AUDIO_FILTER],
+- "/usr/local/share/games/retroarch",
++ "@out@/local/share/games/retroarch",
+ "filters/audio", sizeof(g_defaults.dirs[DEFAULT_DIR_AUDIO_FILTER]));
+- else if (path_is_directory("/usr/share/games/retroarch/filters/audio"))
++ else if (path_is_directory("@out@/share/games/retroarch/filters/audio"))
+ fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_AUDIO_FILTER],
+- "/usr/share/games/retroarch",
++ "@out@/share/games/retroarch",
+ "filters/audio", sizeof(g_defaults.dirs[DEFAULT_DIR_AUDIO_FILTER]));
+ else
+ fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_AUDIO_FILTER], base_path,
+ "filters/audio", sizeof(g_defaults.dirs[DEFAULT_DIR_AUDIO_FILTER]));
+
+- if (path_is_directory("/usr/local/share/retroarch/filters/video"))
++ if (path_is_directory("@out@/local/share/retroarch/filters/video"))
+ fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_VIDEO_FILTER],
+- "/usr/local/share/retroarch",
++ "@out@/local/share/retroarch",
+ "filters/video", sizeof(g_defaults.dirs[DEFAULT_DIR_VIDEO_FILTER]));
+- else if (path_is_directory("/usr/share/retroarch/filters/video"))
++ else if (path_is_directory("@out@/share/retroarch/filters/video"))
+ fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_VIDEO_FILTER],
+- "/usr/share/retroarch",
++ "@out@/share/retroarch",
+ "filters/video", sizeof(g_defaults.dirs[DEFAULT_DIR_VIDEO_FILTER]));
+- else if (path_is_directory("/usr/local/share/games/retroarch/filters/video"))
++ else if (path_is_directory("@out@/local/share/games/retroarch/filters/video"))
+ fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_VIDEO_FILTER],
+- "/usr/local/share/games/retroarch",
++ "@out@/local/share/games/retroarch",
+ "filters/video", sizeof(g_defaults.dirs[DEFAULT_DIR_VIDEO_FILTER]));
+- else if (path_is_directory("/usr/share/games/retroarch/filters/video"))
++ else if (path_is_directory("@out@/share/games/retroarch/filters/video"))
+ fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_VIDEO_FILTER],
+- "/usr/share/games/retroarch",
++ "@out@/share/games/retroarch",
+ "filters/video", sizeof(g_defaults.dirs[DEFAULT_DIR_VIDEO_FILTER]));
+ else
+ fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_VIDEO_FILTER], base_path,
+--
+2.37.3
+