aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Wong <wongandj@icloud.com>2025-03-04 14:01:00 -0500
committerLiliana Marie Prikler <liliana.prikler@gmail.com>2025-03-23 15:42:26 +0100
commit204954e7d5efd05a77091e83406d126df2369736 (patch)
treeb6db77a69e8808615777243315a7c8d602b327e8
parent4ea012fc6ddcb32574fbd4a854b11808c34fbca8 (diff)
downloadguix-204954e7d5efd05a77091e83406d126df2369736.tar.gz
guix-204954e7d5efd05a77091e83406d126df2369736.zip
gnu: Add flycast.
* gnu/packages/emulators.scm (flycast): New variable. Change-Id: I358235492a3493c3126f7ca9f738ed2706e36105 Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
-rw-r--r--gnu/packages/emulators.scm69
1 files changed, 69 insertions, 0 deletions
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index 2bed105653..e71c2803a3 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -23,6 +23,7 @@
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; Copyright © 2025 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2025 Andrew Wong <wongandj@icloud.comg>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -4063,6 +4064,74 @@ on a Commodore C64, C128 etc.")
;; zlib license with an (non-)advertising clause.
(license license:zlib)))
+(define-public flycast
+ (package
+ (name "flycast")
+ (version "2.4")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/flyinghead/flycast")
+ (commit (string-append "v" version))
+ ;; There are many bundled packages here included as git
+ ;; submodules. Removing many of them would require patching the
+ ;; source code and repository layout.
+ (recursive? #t)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0ainy75gkrvilcm89hq6wq9md41w0mxgp6l27q5fzrxxykpjh6ym"))
+ (modules '((guix build utils)))
+ (snippet #~(begin
+ (substitute* "CMakeLists.txt"
+ (("add_subdirectory\\(core/deps/Vulkan-Headers\\)")
+ "find_package(VulkanHeaders)"))
+ (with-directory-excursion "core/deps"
+ (for-each delete-file-recursively
+ '("SDL"
+ "Spout"
+ "Syphon"
+ "Vulkan-Headers"
+ "breakpad"
+ "discord-rpc"
+ "libzip"
+ "oboe")))))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:tests? #f ; no test suite
+ #:configure-flags
+ #~(list "-DUSE_ALSA=ON"
+ "-DUSE_BREAKPAD=OFF"
+ "-DUSE_DX11=OFF"
+ "-DUSE_DX9=OFF"
+ ;; The USE_HOST_GLSLANG option is not implemented correctly.
+ ;; (see: https://github.com/flyinghead/flycast/issues/1843)
+ "-DUSE_HOST_GLSLANG=OFF"
+ "-DUSE_HOST_LIBZIP=ON"
+ "-DUSE_HOST_SDL=ON"
+ "-DUSE_LIBAO=ON"
+ "-DUSE_LUA=ON"
+ "-DUSE_PULSEAUDIO=ON"
+ "-DUSE_VULKAN=ON")))
+ (inputs (list alsa-lib
+ ao
+ curl
+ glslang
+ libzip
+ lua
+ miniupnpc
+ pulseaudio
+ sdl2
+ spirv-tools
+ vulkan-headers
+ pkg-config))
+ (home-page "https://github.com/flyinghead/flycast")
+ (synopsis "Sega Dreamcast, Naomi, Naomi 2, and Atomiswave emulator")
+ (description "Flycast is a multi-platform Sega Dreamcast, Naomi, Naomi 2,
+and Atomiswave emulator derived from reicast.")
+ (license license:gpl2+)))
+
(define-public freedisksysrom
;; There is no release; use the latest commit.
(let ((commit "0d5f95f109bb3aadf2bb9510bfda13879bbd5266")