summary refs log tree commit diff
path: root/pkgs/applications/emulators/nuked-md
diff options
context:
space:
mode:
authorOPNA2608 <christoph.neidahl@gmail.com>2023-08-11 14:02:05 +0200
committerOPNA2608 <christoph.neidahl@gmail.com>2023-08-11 14:02:05 +0200
commitd0eee4a5a72fc2a1c2a4fa3589e06a5a554da6b2 (patch)
treef0382aa12a55d10dc03e10be0a7767cf0e4f5445 /pkgs/applications/emulators/nuked-md
parentbb9707ef2ea4a5b749b362d5cf81ada3ded2c53f (diff)
downloadnixpkgs-d0eee4a5a72fc2a1c2a4fa3589e06a5a554da6b2.tar
nixpkgs-d0eee4a5a72fc2a1c2a4fa3589e06a5a554da6b2.tar.gz
nixpkgs-d0eee4a5a72fc2a1c2a4fa3589e06a5a554da6b2.tar.bz2
nixpkgs-d0eee4a5a72fc2a1c2a4fa3589e06a5a554da6b2.tar.lz
nixpkgs-d0eee4a5a72fc2a1c2a4fa3589e06a5a554da6b2.tar.xz
nixpkgs-d0eee4a5a72fc2a1c2a4fa3589e06a5a554da6b2.tar.zst
nixpkgs-d0eee4a5a72fc2a1c2a4fa3589e06a5a554da6b2.zip
nuked-md: init at 1.2
Diffstat (limited to 'pkgs/applications/emulators/nuked-md')
-rw-r--r--pkgs/applications/emulators/nuked-md/default.nix72
1 files changed, 72 insertions, 0 deletions
diff --git a/pkgs/applications/emulators/nuked-md/default.nix b/pkgs/applications/emulators/nuked-md/default.nix
new file mode 100644
index 00000000000..883d62b8983
--- /dev/null
+++ b/pkgs/applications/emulators/nuked-md/default.nix
@@ -0,0 +1,72 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, gitUpdater
+, cmake
+, SDL2
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "nuked-md";
+  version = "1.2";
+
+  src = fetchFromGitHub {
+    owner = "nukeykt";
+    repo = "Nuked-MD";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-Pe+TSu9FBUhxtACq+6jMbrUxiwKLOJgQbEcmUrcrjMs=";
+  };
+
+  # Interesting detail about our SDL2 packaging:
+  # Because we build it with the configure script instead of CMake, we ship sdl2-config.cmake instead of SDL2Config.cmake
+  # The former doesn't set SDL2_FOUND while the latter does (like CMake config scripts should), which causes this issue:
+  #
+  # CMake Error at CMakeLists.txt:5 (find_package):
+  #   Found package configuration file:
+  #
+  #     <SDL2.dev>/lib/cmake/SDL2/sdl2-config.cmake
+  #
+  #   but it set SDL2_FOUND to FALSE so package "SDL2" is considered to be NOT
+  #   FOUND.
+  postPatch = ''
+    substituteInPlace CMakeLists.txt \
+      --replace 'SDL2 REQUIRED' 'SDL2'
+  '';
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  buildInputs = [
+    SDL2
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm755 Nuked-MD $out/bin/Nuked-MD
+
+    runHook postInstall
+  '';
+
+  passthru = {
+    updateScript = gitUpdater {
+      rev-prefix = "v";
+    };
+  };
+
+  meta = with lib; {
+    description = "Cycle accurate Mega Drive emulator";
+    longDescription = ''
+      Cycle accurate Mega Drive core. The goal of this project is to emulate Sega Mega Drive chipset as accurately as
+      possible using decapped chips photos.
+    '';
+    homepage = "https://github.com/nukeykt/Nuked-MD";
+    license = licenses.gpl2Plus;
+    mainProgram = "Nuked-MD";
+    maintainers = with maintainers; [ OPNA2608 ];
+    platforms = platforms.all;
+  };
+})