about summary refs log tree commit diff
path: root/pkgs/by-name/me/melonDS/package.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/by-name/me/melonDS/package.nix')
-rw-r--r--pkgs/by-name/me/melonDS/package.nix93
1 files changed, 93 insertions, 0 deletions
diff --git a/pkgs/by-name/me/melonDS/package.nix b/pkgs/by-name/me/melonDS/package.nix
new file mode 100644
index 0000000000000..3ccecc1bab337
--- /dev/null
+++ b/pkgs/by-name/me/melonDS/package.nix
@@ -0,0 +1,93 @@
+{ lib
+, SDL2
+, cmake
+, extra-cmake-modules
+, fetchFromGitHub
+, libGL
+, libarchive
+, libpcap
+, libsForQt5
+, libslirp
+, pkg-config
+, stdenv
+, unstableGitUpdater
+, wayland
+, zstd
+}:
+
+let
+  inherit (libsForQt5)
+    qtbase
+    qtmultimedia
+    wrapQtAppsHook;
+in
+stdenv.mkDerivation (finalAttrs: {
+  pname = "melonDS";
+  version = "0.9.5-unstable-2024-05-15";
+
+  src = fetchFromGitHub {
+    owner = "melonDS-emu";
+    repo = "melonDS";
+    rev = "a72b79a55ad2d61811af11b1b911f6af863f66c2";
+    hash = "sha256-cdKfJ316iuRajdrRESt68oR8vkHISFRdHXxVuvGSUqE=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    wrapQtAppsHook
+  ];
+
+  buildInputs = [
+    SDL2
+    extra-cmake-modules
+    libarchive
+    libslirp
+    libGL
+    qtbase
+    qtmultimedia
+    wayland
+    zstd
+  ];
+
+  strictDeps = true;
+
+  qtWrapperArgs = [
+    "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libpcap ]}"
+  ];
+
+  passthru = {
+    updateScript = unstableGitUpdater { };
+  };
+
+  meta = {
+    homepage = "https://melonds.kuribo64.net/";
+    description = "Work in progress Nintendo DS emulator";
+    longDescription = ''
+      melonDS aims at providing fast and accurate Nintendo DS emulation. While
+      it is still a work in progress, it has a pretty solid set of features:
+
+      - Nearly complete core (CPU, video, audio, ...)
+      - JIT recompiler for fast emulation
+      - OpenGL renderer, 3D upscaling
+      - RTC, microphone, lid close/open
+      - Joystick support
+      - Savestates
+      - Various display position/sizing/rotation modes
+      - (WIP) Wifi: local multiplayer, online connectivity
+      - (WIP) DSi emulation
+      - DLDI
+      - (WIP) GBA slot add-ons
+      - and more are planned!
+    '';
+    license = with lib.licenses; [ gpl3Plus ];
+    mainProgram = "melonDS";
+    maintainers = with lib.maintainers; [
+      AndersonTorres
+      artemist
+      benley
+      shamilton
+    ];
+    platforms = lib.platforms.linux;
+  };
+})