diff --git a/pkgs/by-name/em/emulationstation-de/001-add-nixpkgs-retroarch-cores.patch b/pkgs/by-name/em/emulationstation-de/001-add-nixpkgs-retroarch-cores.patch
new file mode 100644
index 000000000000..15938826ef80
--- /dev/null
+++ b/pkgs/by-name/em/emulationstation-de/001-add-nixpkgs-retroarch-cores.patch
@@ -0,0 +1,18 @@
+--- a/resources/systems/unix/es_find_rules.xml 2023-11-22 15:18:15.912747163 -0500
++++ b/resources/systems/unix/es_find_rules.xml 2023-11-22 15:20:38.628250448 -0500
+@@ -45,6 +45,8 @@
+ /usr/local/lib/libretro
+
+ /usr/pkg/lib/libretro
++
++ /run/current-system/sw/lib/retroarch/cores
+
+
+
+@@ -1079,4 +1081,4 @@
+ ~/bin/ZEsarUX/zesarux
+
+
+-
+\ No newline at end of file
++
diff --git a/pkgs/by-name/em/emulationstation-de/package.nix b/pkgs/by-name/em/emulationstation-de/package.nix
new file mode 100644
index 000000000000..1fca35aea153
--- /dev/null
+++ b/pkgs/by-name/em/emulationstation-de/package.nix
@@ -0,0 +1,59 @@
+{
+ lib,
+ stdenv,
+ cmake,
+ fetchzip,
+ pkg-config,
+ alsa-lib,
+ curl,
+ ffmpeg,
+ freeimage,
+ freetype,
+ libgit2,
+ poppler,
+ pugixml,
+ SDL2
+}:
+
+stdenv.mkDerivation {
+ pname = "emulationstation-de";
+ version = "2.2.1";
+
+ src = fetchzip {
+ url = "https://gitlab.com/es-de/emulationstation-de/-/archive/v2.2.1/emulationstation-de-v2.2.1.tar.gz";
+ hash = "sha256:1kp9p3fndnx4mapgfvy742zwisyf0y5k57xkqkis0kxyibx0z8i6";
+ };
+
+ patches = [ ./001-add-nixpkgs-retroarch-cores.patch ];
+
+ nativeBuildInputs = [
+ cmake
+ pkg-config
+ ];
+
+ buildInputs = [
+ alsa-lib
+ curl
+ ffmpeg
+ freeimage
+ freetype
+ libgit2
+ poppler
+ pugixml
+ SDL2
+ ];
+
+ installPhase = ''
+ install -D ../emulationstation $out/bin/emulationstation
+ cp -r ../resources/ $out/bin/resources/
+ '';
+
+ meta = {
+ description = "EmulationStation Desktop Edition is a frontend for browsing and launching games from your multi-platform game collection.";
+ homepage = "https://es-de.org";
+ maintainers = with lib.maintainers; [ ivarmedi ];
+ license = lib.licenses.mit;
+ platforms = lib.platforms.linux;
+ mainProgram = "emulationstation";
+ };
+}