diff --git a/pkgs/applications/emulators/nuked-md/default.nix b/pkgs/applications/emulators/nuked-md/default.nix new file mode 100644 index 0000000000000..883d62b89832d --- /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: + # + # /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; + }; +}) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 7e6b96914a03f..55fa0ccfc307e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2613,6 +2613,8 @@ with pkgs; np2kai = callPackage ../applications/emulators/np2kai { }; + nuked-md = callPackage ../applications/emulators/nuked-md { }; + oberon-risc-emu = callPackage ../applications/emulators/oberon-risc-emu { }; openmsx = callPackage ../applications/emulators/openmsx { };