From 8d5ae4b0c869a8bad3f1b0bc8d3542969c0fc788 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Tue, 14 Jan 2025 23:24:31 +0900 Subject: [PATCH] gnu: Add libretro-dolphin-emu. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/emulators.scm (libretro-dolphin-emu): New variable. Reviewed-by: Sou Bunnbu (宋文武) Change-Id: Id05e1d17ff6927bb1492ce2816790f7d94f9e1b8 --- gnu/packages/emulators.scm | 51 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm index 46a7ee370778cac9248a8199f1487c3587bc11ee..aa03f0550cac04fabb51bb2e16d354b8dd41560b 100644 --- a/gnu/packages/emulators.scm +++ b/gnu/packages/emulators.scm @@ -482,6 +482,57 @@ turbo speed, networked multiplayer, and graphical enhancements.") ;; dolphin/Data/Sys/GC/font_*.bin: Licensed under ASL2.0. (license (list license:gpl2+ license:asl2.0 license:fdl1.2+))))) +(define-public libretro-dolphin-emu + ;; There are no tag or release; use the latest commit. + (let ((commit "89a4df725d4eb24537728f7d655cddb1add25c18") + (revision "0")) + (package + (inherit dolphin-emu) + (name "libretro-dolphin-emu") + (version (git-version "5.0" revision commit)) + (source (origin + (inherit (package-source dolphin-emu)) + (method git-fetch) + (uri (git-reference + (url "https://github.com/libretro/dolphin") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1fvm6hy0ihc0j3sgv88a7ak08c0kyikmmiif827j981fy7zvglvz")))) + (arguments + (substitute-keyword-arguments (package-arguments dolphin-emu) + ((#:configure-flags flags ''()) + #~(cons "-DLIBRETRO=ON" #$flags)) + ((#:phases phases '%standard-phases) + #~(modify-phases #$phases + (add-after 'unpack 'deregister-bundled-sources + (lambda _ + (substitute* "CMakeLists.txt" + ((".*add_subdirectory.*Externals/curl.*") "") + ((".*add_subdirectory.*Externals/libpng.*") "")))) + (replace 'install + (lambda _ + (install-file "dolphin_libretro.so" + (string-append #$output "/lib/libretro")) + ;; The system data files are also required for the proper + ;; functioning of dolphin; without them, it crashes with + ;; segmentation faults and cannot save files to the memory + ;; card. + (let ((sysdir (string-append + #$output + "/share/libretro/system/dolphin-emu"))) + (mkdir-p sysdir) + (copy-recursively "../source/Data/Sys" + (string-append sysdir "/Sys"))))))))) + (inputs + ;; Delete large and extraneous inputs. + (modify-inputs (package-inputs dolphin-emu) + (delete "ffmpeg" + "gtk+" + "qtbase"))) + (synopsis "Libretro port of Dolphin, the Nintendo Wii/GameCube emulator")))) + (define-public dosbox (package (name "dosbox")