From 6525d34ee3b6b6eb0875a10a78730862f297fe0c Mon Sep 17 00:00:00 2001 From: Fergus Collins Date: Mon, 18 May 2026 04:03:52 +0200 Subject: [PATCH 1/2] libretro: add melonds-ds core this core supersedes melonds which is now deprecated see below libretro docs for information on the new core: https://github.com/libretro/docs/blob/master/docs/library/melonds_ds.md --- .../emulators/libretro/cores/melonds-ds.nix | 36 +++++++++++++++++++ .../emulators/libretro/default.nix | 2 ++ 2 files changed, 38 insertions(+) create mode 100644 pkgs/applications/emulators/libretro/cores/melonds-ds.nix diff --git a/pkgs/applications/emulators/libretro/cores/melonds-ds.nix b/pkgs/applications/emulators/libretro/cores/melonds-ds.nix new file mode 100644 index 0000000000000..008418e387831 --- /dev/null +++ b/pkgs/applications/emulators/libretro/cores/melonds-ds.nix @@ -0,0 +1,36 @@ +{ + lib, + cmake, + fetchFromGitHub, + mkLibretroCore, + libGLU, + libGL, + git, +}: +mkLibretroCore { + core = "melonds-ds"; + version = "0-unstable-2026-03-03"; + + src = fetchFromGitHub { + owner = "JesseTG"; + repo = "melonds-ds"; + rev = "bac0256dc6a8736c5a228f57c562257e45fd49f3"; + hash = "sha256-EeXYibPV9BPazC/i5UqXEd4BKlIZbNbPNgpsoo4ws7k="; + }; + + extraBuildInputs = [ + libGLU + libGL + ]; + + extraNativeBuildInputs = [ + cmake + git + ]; + + meta = { + description = "Enhanced remake of the melonDS core for libretro"; + homepage = "https://github.com/JesseTG/melonds-ds"; + license = lib.licenses.gpl3Plus; + }; +} diff --git a/pkgs/applications/emulators/libretro/default.nix b/pkgs/applications/emulators/libretro/default.nix index e4925f538cc77..e911c70ed1925 100644 --- a/pkgs/applications/emulators/libretro/default.nix +++ b/pkgs/applications/emulators/libretro/default.nix @@ -106,6 +106,8 @@ lib.makeScope newScope (self: { melonds = self.callPackage ./cores/melonds.nix { }; + melonds-ds = self.callPackage ./cores/melonds-ds.nix { }; + mesen = self.callPackage ./cores/mesen.nix { }; mesen-s = self.callPackage ./cores/mesen-s.nix { }; From 1fb1805b7d323dd79b3a959ff2dc4c0785508cf0 Mon Sep 17 00:00:00 2001 From: Fergus Collins Date: Mon, 18 May 2026 17:06:46 +0200 Subject: [PATCH 2/2] prefetch dependencies --- .../emulators/libretro/cores/melonds-ds.nix | 104 +++++++++++++++++- 1 file changed, 103 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/emulators/libretro/cores/melonds-ds.nix b/pkgs/applications/emulators/libretro/cores/melonds-ds.nix index 008418e387831..ca596bfa66c2a 100644 --- a/pkgs/applications/emulators/libretro/cores/melonds-ds.nix +++ b/pkgs/applications/emulators/libretro/cores/melonds-ds.nix @@ -7,10 +7,96 @@ libGL, git, }: +let + date = fetchFromGitHub { + owner = "HowardHinnant"; + repo = "date"; + rev = "1ead6715dec030d340a316c927c877a3c4e5a00c"; + hash = "sha256-0dlwfPFUpIUp45KxfJIcD7J7ls6csPGx//qSt9Wp2CI="; + }; + + embed-binaries = fetchFromGitHub { + owner = "andoalon"; + repo = "embed-binaries"; + rev = "078b62beba97e8192c99bfb16d5e17220cfc7598"; + hash = "sha256-EkK+ZCbrZ2Y9wJ864OIwRWDfHcmxzKMco0QAkLOQOwY="; + }; + + fmt = fetchFromGitHub { + owner = "fmtlib"; + repo = "fmt"; + rev = "11.0.2"; + hash = "sha256-IKNt4xUoVi750zBti5iJJcCk3zivTt7nU12RIf8pM+0="; + }; + + glm = fetchFromGitHub { + owner = "g-truc"; + repo = "glm"; + rev = "e7970a8b26732f1b0df9690f7180546f8c30e48e"; + hash = "sha256-VqNYg+rya0vUQ5dpvuz6hGAlVWiqArd/5yLxr9Vg8NA="; + }; + + libretro-common = fetchFromGitHub { + owner = "JesseTG"; + repo = "libretro-common"; + rev = "8e2b884db16711a999a0e46a02a3dc0be294b048"; + hash = "sha256-NYxi1BADUgMAtLfmYcOIhTAnmJ/LYd0OyfPKx6lorw4="; + }; + + libslirp = fetchFromGitHub { + owner = "JesseTG"; + repo = "libslirp-mirror"; + rev = "e61dbd459c8c06607b3a84694489427e8ec60f17"; + hash = "sha256-WQIJjnNJHF63gNfznnrGt4jAzrhHfslOATsjcbfbAg4="; + }; + + melonDS = fetchFromGitHub { + owner = "JesseTG"; + repo = "melonDS"; + rev = "f6692dff8c0c53f77639a08e5e746a286312bb41"; + hash = "sha256-EeXYibPV9BPazC/i5UqXEd4BKlIZbNbPNgpsoo4ws7k="; + }; + + pntr = fetchFromGitHub { + owner = "robloach"; + repo = "pntr"; + rev = "650237a524ea4fc953de7223a1587c83f2696794"; + hash = "sha256-qGWPlHkcW/wavxRN76SHiEKCl2b1VZR+O9YrZOFZL0I="; + }; + + span-lite = fetchFromGitHub { + owner = "martinmoene"; + repo = "span-lite"; + rev = "00afc281a8c3c7657bb9c5b000d6e7082c1bbc7f"; + hash = "sha256-EBSN8Bh1ymFyWTUPQ6OS9c75B/mJysNS2VIqR0qG9zI="; + }; + + # # tracy is not built by default + # tracy = fetchFromGitHub { + # owner = "wolfpld"; + # repo = "tracy"; + # rev = "v0.11.1"; + # hash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="; + # }; + + yamc = fetchFromGitHub { + owner = "yohhoy"; + repo = "yamc"; + rev = "4e015a7e8eb0d61c34e6928676c8c78881a72d73"; + hash = "sha256-J5wAqF5yQ5KYArJJyKzaqscWsXq+KAPKXybYfVgasXs="; + }; + + zlib = fetchFromGitHub { + owner = "madler"; + repo = "zlib"; + rev = "v1.3.1"; + hash = "sha256-TkPLWSN5QcPlL9D0kc/yhH0/puE9bFND24aj5NVDKYs="; + }; +in mkLibretroCore { core = "melonds-ds"; version = "0-unstable-2026-03-03"; - + src = fetchFromGitHub { owner = "JesseTG"; repo = "melonds-ds"; @@ -28,9 +114,25 @@ mkLibretroCore { git ]; + cmakeFlags = [ + "-DFETCHCONTENT_SOURCE_DIR_DATE=${date}" + "-DFETCHCONTENT_SOURCE_DIR_EMBED-BINARIES=${embed-binaries}" + "-DFETCHCONTENT_SOURCE_DIR_FMT=${fmt}" + "-DFETCHCONTENT_SOURCE_DIR_GLM=${glm}" + "-DFETCHCONTENT_SOURCE_DIR_LIBRETRO-COMMON=${libretro-common}" + "-DFETCHCONTENT_SOURCE_DIR_LIBSLIRP=${libslirp}" + "-DFETCHCONTENT_SOURCE_DIR_MELONDS=${melonDS}" + "-DFETCHCONTENT_SOURCE_DIR_PNTR=${pntr}" + "-DFETCHCONTENT_SOURCE_DIR_SPAN-LITE=${span-lite}" + # "-DFETCHCONTENT_SOURCE_DIR_TRACY=${tracy}" # not built by default + "-DFETCHCONTENT_SOURCE_DIR_YAMC=${yamc}" + "-DFETCHCONTENT_SOURCE_DIR_ZLIB=${zlib}" + ]; + meta = { description = "Enhanced remake of the melonDS core for libretro"; homepage = "https://github.com/JesseTG/melonds-ds"; license = lib.licenses.gpl3Plus; }; } +