aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages
diff options
context:
space:
mode:
authorRutger Helling <rhelling@mykolab.com>2018-02-22 12:04:14 +0100
committerRutger Helling <rhelling@mykolab.com>2018-02-22 12:15:23 +0100
commit9af704c59cfbffd021f0e7420a57f7f2ed6c8c07 (patch)
tree7b665d73e813d2cbb0efe98609655f106628ef0b /gnu/packages
parent65c9d25739ae5ebad955c517aacc67cf3ad11f9a (diff)
downloadguix-9af704c59cfbffd021f0e7420a57f7f2ed6c8c07.tar
guix-9af704c59cfbffd021f0e7420a57f7f2ed6c8c07.tar.gz
gnu: Move emulation packages from games to emulators.
* gnu/packages/games.scm (desmume) (dosbox) (emulation-station) (higan) (mgba) (mupen64plus-audio-sdl) (mupen64plus-core) (mupen64plus-input-sdl) (mupen64plus-rsp-hle) (mupen64plus-rsp-z64) (mupen64plus-ui-console) (mupen64plus-video-arachnoid) (mupen64plus-video-glide64) (mupen64plus-video-glide64mk2) (mupen64plus-video-rice) (mupen64plus-video-z64) (nestopia-ue) (retroarch): Move to... * gnu/packages/emulators.scm: ... here.
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/emulators.scm951
-rw-r--r--gnu/packages/games.scm919
2 files changed, 948 insertions, 922 deletions
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index d0d0108115..79c570faf8 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -1,6 +1,14 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2018 David Thompson <dthompson2@worcester.edu>
-;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com>
+;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
+;;; Copyright © 2015, 2016 Sou Bunnbu <iyzsong@gmail.com>
+;;; Copyright © 2015, 2016 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
+;;; Copyright © 2015, 2018 David Thompson <dthompson2@worcester.edu>
+;;; Copyright © 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
+;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2017 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -20,31 +28,82 @@
(define-module (gnu packages emulators)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
+ #:use-module (guix download)
#:use-module (guix git-download)
+ #:use-module (guix svn-download)
+ #:use-module (gnu packages)
+ #:use-module (gnu packages algebra)
#:use-module (gnu packages audio)
+ #:use-module (gnu packages autotools)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages boost)
+ #:use-module (gnu packages backup)
#:use-module (gnu packages compression)
#:use-module (gnu packages curl)
+ #:use-module (gnu packages databases)
#:use-module (gnu packages fonts)
#:use-module (gnu packages fontutils)
+ #:use-module (gnu packages freedesktop)
#:use-module (gnu packages game-development)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages gtk)
#:use-module (gnu packages image)
+ #:use-module (gnu packages imagemagick)
+ #:use-module (gnu packages libedit)
#:use-module (gnu packages libusb)
#:use-module (gnu packages linux)
+ #:use-module (gnu packages ncurses)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages pulseaudio)
+ #:use-module (gnu packages python)
#:use-module (gnu packages qt)
#:use-module (gnu packages sdl)
#:use-module (gnu packages tls)
#:use-module (gnu packages upnp)
#:use-module (gnu packages video)
+ #:use-module (gnu packages vulkan)
#:use-module (gnu packages wxwidgets)
+ #:use-module (gnu packages xdisorg)
#:use-module (gnu packages xiph)
+ #:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
- #:use-module (guix build-system cmake))
+ #:use-module (guix build-system cmake)
+ #:use-module (guix build-system gnu))
+
+(define-public desmume
+ (package
+ (name "desmume")
+ (version "0.9.11")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://sourceforge/desmume/desmume/"
+ version "/desmume-" version ".tar.gz"))
+ (sha256
+ (base32
+ "15l8wdw3q61fniy3h93d84dnm6s4pyadvh95a0j6d580rjk4pcrs"))))
+ (build-system gnu-build-system)
+ (arguments
+ ;; Enable support for WiFi and microphone.
+ `(#:configure-flags '("--enable-wifi"
+ "--enable-openal")))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("intltool" ,intltool)))
+ (inputs
+ `(("zlib" ,zlib)
+ ("sdl" ,sdl)
+ ("glib" ,glib)
+ ("gtk+" ,gtk+-2)
+ ("glu" ,glu)))
+ (home-page "http://desmume.org/")
+ (synopsis "Nintendo DS emulator")
+ (description
+ "DeSmuME is an emulator for the Nintendo DS handheld gaming console.")
+ (license license:gpl2)))
;; Building from recent Git because the official 5.0 release no longer builds.
(define-public dolphin-emu
@@ -173,3 +232,889 @@ turbo speed, networked multiplayer, and graphical enhancements.")
(supported-systems '("x86_64-linux")) ; TODO: should also work on ARM64.
; dolphin/Data/Sys/GC/font_*.bin: Licensed under ASL2.0.
(license (list license:gpl2+ license:asl2.0 license:fdl1.2+)))))
+
+(define-public dosbox
+ (package
+ (name "dosbox")
+ (version "0.74.svn3947")
+ (source (origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url "http://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk/")
+ (revision 3947)))
+ (file-name (string-append name "-" version "-checkout"))
+ ;; Use SVN head, since the last release (2010) is incompatible
+ ;; with GCC 4.8+ (see
+ ;; <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=624976>).
+ (sha256
+ (base32
+ "1p918j6090d1nkvgq7ifvmn506zrdmyi32y7p3ms40d5ssqjg8fj"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases (modify-phases %standard-phases
+ (add-after
+ 'unpack 'autogen.sh
+ (lambda _
+ (zero? (system* "sh" "autogen.sh")))))))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)))
+ (inputs
+ `(("sdl" ,sdl)
+ ("libpng" ,libpng)
+ ("zlib" ,zlib)
+ ("alsa-lib" ,alsa-lib)
+ ("glu" ,glu)
+ ("mesa" ,mesa)))
+ (home-page "http://www.dosbox.com")
+ (synopsis "X86 emulator with CGA/EGA/VGA/etc. graphics and sound")
+ (description "DOSBox is a DOS-emulator that uses the SDL library. DOSBox
+also emulates CPU:286/386 realmode/protected mode, Directory
+FileSystem/XMS/EMS, Tandy/Hercules/CGA/EGA/VGA/VESA graphics, a
+SoundBlaster/Gravis Ultra Sound card for excellent sound compatibility with
+older games.")
+ (license license:gpl2+)))
+
+(define-public emulation-station
+ (let ((commit "646bede3d9ec0acf0ae378415edac136774a66c5"))
+ (package
+ (name "emulation-station")
+ (version "2.0.1")
+ (source (origin
+ (method git-fetch) ; no tarball available
+ (uri (git-reference
+ (url "https://github.com/Aloshi/EmulationStation.git")
+ (commit commit))) ; no version tag
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "0cm0sq2wri2l9cvab1l0g02za59q7klj0h3p028vr96n6njj4w9v"))))
+ (build-system cmake-build-system)
+ (arguments
+ '(#:tests? #f)) ; no tests
+ (inputs
+ `(("alsa-lib" ,alsa-lib)
+ ("boost" ,boost)
+ ("curl" ,curl)
+ ("eigin" ,eigen)
+ ("freeimage" ,freeimage)
+ ("freetype" ,freetype)
+ ("mesa" ,mesa)
+ ("sdl2" ,sdl2)))
+ (synopsis "Video game console emulator front-end")
+ (description "EmulationStation provides a graphical front-end to a large
+number of video game console emulators. It features an interface that is
+usable with any game controller that has at least 4 buttons, theming support,
+and a game metadata scraper.")
+ (home-page "http://www.emulationstation.org")
+ (license license:expat))))
+
+(define-public higan
+ (package
+ (name "higan")
+ (version "106")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://gitlab.com/higan/higan/repository/archive.tar.gz?ref=v"
+ version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0y42pra0dxzlbkyzcp3r8a39pji2bj3p9fl40425f60af2igr4rw"))
+ (patches (search-patches "higan-remove-march-native-flag.patch"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("alsa-lib" ,alsa-lib)
+ ("ao" ,ao)
+ ("eudev" ,eudev)
+ ("gtk+" ,gtk+-2)
+ ("gtksourceview-2" ,gtksourceview-2)
+ ("libxv" ,libxv)
+ ("mesa" ,mesa)
+ ("openal" ,openal)
+ ("pulseaudio" ,pulseaudio)
+ ("sdl" ,sdl)))
+ (arguments
+ '(#:phases
+ (let ((build-phase (assoc-ref %standard-phases 'build))
+ (install-phase (assoc-ref %standard-phases 'install)))
+ (modify-phases %standard-phases
+ ;; The higan build system has no configure phase.
+ (delete 'configure)
+ (add-before 'build 'chdir-to-higan
+ (lambda _
+ (chdir "higan")))
+ (add-before 'install 'create-/share/applications
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ ;; It seems the author forgot to do this in the Makefile.
+ (mkdir-p (string-append out "/share/applications")))))
+ (add-after 'install 'chdir-to-icarus
+ (lambda _
+ (chdir "../icarus")))
+ (add-after 'chdir-to-icarus 'build-icarus build-phase)
+ (add-after 'build-icarus 'install-icarus install-phase)
+ (add-after 'install-icarus 'wrap-higan-executable
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (higan (string-append bin "/higan"))
+ (higan-original (string-append higan "-original"))
+ (bash (string-append (assoc-ref inputs "bash")
+ "/bin/bash"))
+ (coreutils (assoc-ref inputs "coreutils"))
+ (mkdir (string-append coreutils "/bin/mkdir"))
+ (cp (string-append coreutils "/bin/cp"))
+ (cp-r (string-append cp " -r --no-preserve=mode")))
+ ;; First, have the executable make sure ~/.local/share/higan
+ ;; contains up to date files. Higan insists on looking there
+ ;; for these data files.
+ (rename-file higan higan-original)
+ (with-output-to-file higan
+ (lambda ()
+ (display
+ (string-append
+ "#!" bash "\n"
+ ;; higan doesn't respect $XDG_DATA_HOME
+ mkdir " -p ~/.local/share\n"
+ cp-r " " out "/share/higan ~/.local/share\n"
+ "exec " higan-original))))
+ (chmod higan #o555)
+ ;; Second, make sure higan will find icarus in PATH.
+ (wrap-program higan
+ `("PATH" ":" prefix (,bin))))))))
+ #:make-flags
+ (list "compiler=g++"
+ (string-append "prefix=" (assoc-ref %outputs "out")))
+ ;; There is no test suite.
+ #:tests? #f))
+ (home-page "http://byuu.org/emulation/higan/")
+ (synopsis "Nintendo multi-system emulator")
+ (description
+ "higan (formerly bsnes) is an emulator for multiple Nintendo video game
+consoles, including the Nintendo Entertainment System (NES/Famicom), Super
+Nintendo Entertainment System (SNES/Super Famicom), Game Boy, Game Boy
+Color (GBC), and Game Boy Advance (GBA). It also supports the subsystems
+Super Game Boy, BS-X Satellaview, and Sufami Turbo.")
+ ;; As noted in these files among more:
+ ;; - icarus/icarus.cpp
+ ;; - higan/emulator/emulator.hpp
+ (license license:gpl3)))
+
+(define-public mgba
+ (package
+ (name "mgba")
+ (version "0.6.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/mgba-emu/mgba/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0xmq1q1j71hnpd49wm91cqq8w5zdhb921cm17jchp4qjmaqgwy3w"))
+ (modules '((guix build utils)))
+ (snippet
+ ;; Make sure we don't use the bundled software.
+ '(for-each
+ (lambda (subdir)
+ (let ((lib-subdir (string-append "src/third-party/" subdir)))
+ (delete-file-recursively lib-subdir)))
+ '("libpng" "lzma" "sqlite3" "zlib")))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f ;no "test" target
+ #:configure-flags
+ (list "-DUSE_LZMA=OFF" ;do not use bundled LZMA
+ "-DUSE_LIBZIP=OFF" ;use "zlib" instead
+ (string-append "-DCMAKE_INSTALL_LIBDIR="
+ (assoc-ref %outputs "out") "/lib"))))
+ (native-inputs `(("pkg-config" ,pkg-config)))
+ (inputs `(("ffmpeg" ,ffmpeg)
+ ("imagemagick" ,imagemagick)
+ ("libedit" ,libedit)
+ ("libepoxy" ,libepoxy)
+ ("libpng" ,libpng)
+ ("mesa" ,mesa)
+ ("minizip" ,minizip)
+ ("ncurses" ,ncurses)
+ ("qtbase" ,qtbase)
+ ("qtmultimedia" ,qtmultimedia)
+ ("qttools" ,qttools)
+ ("sdl2" ,sdl2)
+ ("sqlite" ,sqlite)
+ ("zlib" ,zlib)))
+ (home-page "https://mgba.io")
+ (synopsis "Game Boy Advance emulator")
+ (description
+ "mGBA is an emulator for running Game Boy Advance games. It aims to be
+faster and more accurate than many existing Game Boy Advance emulators, as
+well as adding features that other emulators lack. It also supports Game Boy
+and Game Boy Color games.")
+ ;; Code is mainly MPL 2.0. "blip_buf.c" is LGPL 2.1+ and "inih.c" is
+ ;; BSD-3.
+ (license (list license:mpl2.0 license:lgpl2.1+ license:bsd-3))))
+
+(define-public mupen64plus-core
+ (package
+ (name "mupen64plus-core")
+ (version "2.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/mupen64plus/mupen64plus-core/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0dg2hksm5qni2hcha93k7n4fqr92888p946f7phb0ndschzfh9kk"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("which" ,which)))
+ (inputs
+ `(("freetype" ,freetype)
+ ("glu" ,glu)
+ ("libpng" ,libpng)
+ ("mesa" ,mesa)
+ ("sdl2" ,sdl2)
+ ("zlib" ,zlib)))
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ ;; The mupen64plus build system has no configure phase.
+ (delete 'configure)
+ ;; Makefile is in a subdirectory.
+ (add-before
+ 'build 'cd-to-project-dir
+ (lambda _
+ (chdir "projects/unix"))))
+ #:make-flags (let ((out (assoc-ref %outputs "out")))
+ (list "all" (string-append "PREFIX=" out)))
+ ;; There are no tests.
+ #:tests? #f))
+ ;; As per the Makefile (in projects/unix/Makefile):
+ (supported-systems '("i686-linux" "x86_64-linux"))
+ (home-page "http://www.mupen64plus.org/")
+ (synopsis "Nintendo 64 emulator core library")
+ (description
+ "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
+which is capable of accurately playing many games. This package contains the
+core library.")
+ (license license:gpl2+)))
+
+(define-public mupen64plus-audio-sdl
+ (package
+ (name "mupen64plus-audio-sdl")
+ (version "2.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/mupen64plus/mupen64plus-audio-sdl/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0ss6w92n2rpfnazhg9lbq0nvs3fqx93nliz3k3wjxdlx4dpi7h3a"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("which" ,which)))
+ (inputs
+ `(("mupen64plus-core" ,mupen64plus-core)
+ ("sdl2" ,sdl2)))
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ ;; The mupen64plus build system has no configure phase.
+ (delete 'configure)
+ ;; Makefile is in a subdirectory.
+ (add-before
+ 'build 'cd-to-project-dir
+ (lambda _
+ (chdir "projects/unix"))))
+ #:make-flags
+ (let ((out (assoc-ref %outputs "out"))
+ (m64p (assoc-ref %build-inputs "mupen64plus-core")))
+ (list "all"
+ (string-append "PREFIX=" out)
+ (string-append "APIDIR=" m64p "/include/mupen64plus")))
+ ;; There are no tests.
+ #:tests? #f))
+ (home-page "http://www.mupen64plus.org/")
+ (synopsis "Mupen64Plus SDL input plugin")
+ (description
+ "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
+which is capable of accurately playing many games. This package contains the
+SDL audio plugin.")
+ (license license:gpl2+)))
+
+(define-public mupen64plus-input-sdl
+ (package
+ (name "mupen64plus-input-sdl")
+ (version "2.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/mupen64plus/mupen64plus-input-sdl/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "11sj5dbalp2nrlmki34vy7wy28vc175pnnkdk65p8599hnyq37ri"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("which" ,which)))
+ (inputs
+ `(("mupen64plus-core" ,mupen64plus-core)
+ ("sdl2" ,sdl2)))
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ ;; The mupen64plus build system has no configure phase.
+ (delete 'configure)
+ ;; Makefile is in a subdirectory.
+ (add-before
+ 'build 'cd-to-project-dir
+ (lambda _
+ (chdir "projects/unix"))))
+ #:make-flags
+ (let ((out (assoc-ref %outputs "out"))
+ (m64p (assoc-ref %build-inputs "mupen64plus-core")))
+ (list "all"
+ (string-append "PREFIX=" out)
+ (string-append "APIDIR=" m64p "/include/mupen64plus")))
+ ;; There are no tests.
+ #:tests? #f))
+ (home-page "http://www.mupen64plus.org/")
+ (synopsis "Mupen64Plus SDL input plugin")
+ (description
+ "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
+which is capable of accurately playing many games. This package contains the
+SDL input plugin.")
+ (license license:gpl2+)))
+
+(define-public mupen64plus-rsp-hle
+ (package
+ (name "mupen64plus-rsp-hle")
+ (version "2.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/mupen64plus/mupen64plus-rsp-hle/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "15h7mgz6xd2zjzm6l3f96sbs8kwr3xvbwzgikhnka79m6c69hsxv"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("mupen64plus-core" ,mupen64plus-core)))
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ ;; The mupen64plus build system has no configure phase.
+ (delete 'configure)
+ ;; Makefile is in a subdirectory.
+ (add-before
+ 'build 'cd-to-project-dir
+ (lambda _
+ (chdir "projects/unix"))))
+ #:make-flags
+ (let ((out (assoc-ref %outputs "out"))
+ (m64p (assoc-ref %build-inputs "mupen64plus-core")))
+ (list "all"
+ (string-append "PREFIX=" out)
+ (string-append "APIDIR=" m64p "/include/mupen64plus")))
+ ;; There are no tests.
+ #:tests? #f))
+ (home-page "http://www.mupen64plus.org/")
+ (synopsis "Mupen64Plus SDL input plugin")
+ (description
+ "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
+which is capable of accurately playing many games. This package contains the
+high-level emulation (HLE) RSP processor plugin.")
+ (license license:gpl2+)))
+
+(define-public mupen64plus-rsp-z64
+ (package
+ (name "mupen64plus-rsp-z64")
+ (version "2.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/mupen64plus/mupen64plus-rsp-z64/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "10jz1w2dhx5slhyk4m8mdqlpsd6cshchslr1fckb2ayzb1ls3ghi"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("mupen64plus-core" ,mupen64plus-core)))
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ ;; The mupen64plus build system has no configure phase.
+ (delete 'configure)
+ ;; Makefile is in a subdirectory.
+ (add-before
+ 'build 'cd-to-project-dir
+ (lambda _
+ (chdir "projects/unix"))))
+ #:make-flags
+ (let ((out (assoc-ref %outputs "out"))
+ (m64p (assoc-ref %build-inputs "mupen64plus-core")))
+ (list "all"
+ (string-append "PREFIX=" out)
+ (string-append "APIDIR=" m64p "/include/mupen64plus")))
+ ;; There are no tests.
+ #:tests? #f))
+ (home-page "http://www.mupen64plus.org/")
+ (synopsis "Mupen64Plus SDL input plugin")
+ (description
+ "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
+which is capable of accurately playing many games. This package contains the
+Z64 RSP processor plugin.")
+ (license license:gpl2+)))
+
+(define-public mupen64plus-video-arachnoid
+ (package
+ (name "mupen64plus-video-arachnoid")
+ (version "2.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/mupen64plus/mupen64plus-video-arachnoid/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0jjwf144rihznm4lnqbhgigxw664v3v32wy94adaa6imk8z6gslh"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("which" ,which)))
+ (inputs
+ `(("mesa" ,mesa)
+ ("mupen64plus-core" ,mupen64plus-core)))
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ ;; The mupen64plus build system has no configure phase.
+ (delete 'configure)
+ ;; Makefile is in a subdirectory.
+ (add-before
+ 'build 'cd-to-project-dir
+ (lambda _
+ (chdir "projects/unix"))))
+ #:make-flags
+ (let ((out (assoc-ref %outputs "out"))
+ (m64p (assoc-ref %build-inputs "mupen64plus-core")))
+ (list "all"
+ (string-append "PREFIX=" out)
+ (string-append "APIDIR=" m64p "/include/mupen64plus")))
+ ;; There are no tests.
+ #:tests? #f))
+ (home-page "http://www.mupen64plus.org/")
+ (synopsis "Mupen64Plus Rice Video plugin")
+ (description
+ "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
+which is capable of accurately playing many games. This package contains the
+Arachnoid video plugin.")
+ (license license:gpl2+)))
+
+(define-public mupen64plus-video-glide64
+ (package
+ (name "mupen64plus-video-glide64")
+ (version "2.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/mupen64plus/mupen64plus-video-glide64/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "1rm55dbf6xgsq1blbzs6swa2ajv0qkn38acbljj346abnk6s3dla"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("which" ,which)))
+ (inputs
+ `(("mesa" ,mesa)
+ ("mupen64plus-core" ,mupen64plus-core)
+ ("sdl2" ,sdl2)))
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ ;; The mupen64plus build system has no configure phase.
+ (delete 'configure)
+ ;; Makefile is in a subdirectory.
+ (add-before
+ 'build 'cd-to-project-dir
+ (lambda _
+ (chdir "projects/unix")))
+ ;; XXX Should be unnecessary with the next release.
+ (add-before
+ 'build 'use-sdl2
+ (lambda _
+ (substitute* "Makefile"
+ (("SDL_CONFIG = (.*)sdl-config" all prefix)
+ (string-append "SDL_CONFIG = " prefix "sdl2-config"))))))
+ #:make-flags
+ (let ((out (assoc-ref %outputs "out"))
+ (m64p (assoc-ref %build-inputs "mupen64plus-core")))
+ (list "all"
+ (string-append "PREFIX=" out)
+ (string-append "APIDIR=" m64p "/include/mupen64plus")))
+ ;; There are no tests.
+ #:tests? #f))
+ (home-page "http://www.mupen64plus.org/")
+ (synopsis "Mupen64Plus Rice Video plugin")
+ (description
+ "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
+which is capable of accurately playing many games. This package contains the
+Glide64 video plugin.")
+ (license license:gpl2+)))
+
+(define-public mupen64plus-video-glide64mk2
+ (package
+ (name "mupen64plus-video-glide64mk2")
+ (version "2.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/mupen64plus/mupen64plus-video-glide64mk2/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "1ihl4q293d6svba26b4mhapjcdg12p90gibz79b4mx423jlcxxj9"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("which" ,which)))
+ (inputs
+ `(("boost" ,boost)
+ ("libpng" ,libpng)
+ ("mesa" ,mesa)
+ ("mupen64plus-core" ,mupen64plus-core)
+ ("sdl2" ,sdl2)
+ ("zlib" ,zlib)))
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ ;; The mupen64plus build system has no configure phase.
+ (delete 'configure)
+ ;; Makefile is in a subdirectory.
+ (add-before
+ 'build 'cd-to-project-dir
+ (lambda _
+ (chdir "projects/unix"))))
+ #:make-flags
+ (let ((out (assoc-ref %outputs "out"))
+ (m64p (assoc-ref %build-inputs "mupen64plus-core")))
+ (list "all"
+ (string-append "PREFIX=" out)
+ (string-append "APIDIR=" m64p "/include/mupen64plus")))
+ ;; There are no tests.
+ #:tests? #f))
+ (home-page "http://www.mupen64plus.org/")
+ (synopsis "Mupen64Plus Rice Video plugin")
+ (description
+ "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
+which is capable of accurately playing many games. This package contains the
+Glide64MK2 video plugin.")
+ (license license:gpl2+)))
+
+(define-public mupen64plus-video-rice
+ (package
+ (name "mupen64plus-video-rice")
+ (version "2.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/mupen64plus/mupen64plus-video-rice/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0rd2scjmh285w61aj3mgx71whg5rqrjbry3cdgicczrnyvf8wdvk"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("which" ,which)))
+ (inputs
+ `(("libpng" ,libpng)
+ ("mesa" ,mesa)
+ ("mupen64plus-core" ,mupen64plus-core)
+ ("sdl2" ,sdl2)))
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ ;; The mupen64plus build system has no configure phase.
+ (delete 'configure)
+ ;; Makefile is in a subdirectory.
+ (add-before
+ 'build 'cd-to-project-dir
+ (lambda _
+ (chdir "projects/unix"))))
+ #:make-flags
+ (let ((out (assoc-ref %outputs "out"))
+ (m64p (assoc-ref %build-inputs "mupen64plus-core")))
+ (list "all"
+ (string-append "PREFIX=" out)
+ (string-append "APIDIR=" m64p "/include/mupen64plus")))
+ ;; There are no tests.
+ #:tests? #f))
+ (home-page "http://www.mupen64plus.org/")
+ (synopsis "Mupen64Plus Rice Video plugin")
+ (description
+ "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
+which is capable of accurately playing many games. This package contains the
+Rice Video plugin.")
+ (license license:gpl2+)))
+
+(define-public mupen64plus-video-z64
+ (package
+ (name "mupen64plus-video-z64")
+ (version "2.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/mupen64plus/mupen64plus-video-z64/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "1x7wsjs5gx2iwx20p4cjcbf696zsjlh31qxmghwv0ifrq8x58s1b"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("which" ,which)))
+ (inputs
+ `(("glew" ,glew)
+ ("mupen64plus-core" ,mupen64plus-core)
+ ("sdl2" ,sdl2)))
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ ;; The mupen64plus build system has no configure phase.
+ (delete 'configure)
+ ;; Makefile is in a subdirectory.
+ (add-before
+ 'build 'cd-to-project-dir
+ (lambda _
+ (chdir "projects/unix")))
+ ;; XXX Should be unnecessary with the next release.
+ (add-before
+ 'build 'use-sdl2
+ (lambda _
+ (substitute* "Makefile"
+ (("SDL_CONFIG = (.*)sdl-config" all prefix)
+ (string-append "SDL_CONFIG = " prefix "sdl2-config"))))))
+ #:make-flags
+ (let ((out (assoc-ref %outputs "out"))
+ (m64p (assoc-ref %build-inputs "mupen64plus-core")))
+ (list "all"
+ (string-append "PREFIX=" out)
+ (string-append "APIDIR=" m64p "/include/mupen64plus")))
+ ;; There are no tests.
+ #:tests? #f))
+ (home-page "http://www.mupen64plus.org/")
+ (synopsis "Mupen64Plus Z64 video plugin")
+ (description
+ "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
+which is capable of accurately playing many games. This package contains the
+Z64 video plugin.")
+ (license license:gpl2+)))
+
+(define-public mupen64plus-ui-console
+ (package
+ (name "mupen64plus-ui-console")
+ (version "2.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/mupen64plus/mupen64plus-ui-console/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "04qkpd8ic7xsgnqz7spl00wxdygf79m7d1k8rabbygjk5lg6p8z2"))
+ (patches (search-patches "mupen64plus-ui-console-notice.patch"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("which" ,which)))
+ (inputs
+ `(("sdl2" ,sdl2)))
+ ;; Mupen64Plus supports a single data directory and a single plugin
+ ;; directory in its configuration, yet we need data and plugin files from
+ ;; a variety of packages. The best way to deal with this is to install
+ ;; all packages from which data and plugin files are needed into one's
+ ;; profile, and point the configuration there. Hence, propagate the most
+ ;; important packages here to save the user from the bother. The patch
+ ;; mupen64plus-ui-console-notice also gives users instructions on what
+ ;; they need to do in order to point the configuration to their profile.
+ (propagated-inputs
+ `(("mupen64plus-core" ,mupen64plus-core)
+ ("mupen64plus-audio-sdl" ,mupen64plus-audio-sdl)
+ ("mupen64plus-input-sdl" ,mupen64plus-input-sdl)
+ ("mupen64plus-rsp-hle" ,mupen64plus-rsp-hle)
+ ("mupen64plus-video-glide64" ,mupen64plus-video-glide64)
+ ("mupen64plus-video-glide64mk2" ,mupen64plus-video-glide64mk2)
+ ("mupen64plus-video-rice" ,mupen64plus-video-rice)))
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ ;; The mupen64plus build system has no configure phase.
+ (delete 'configure)
+ ;; Makefile is in a subdirectory.
+ (add-before
+ 'build 'cd-to-project-dir
+ (lambda _
+ (chdir "projects/unix"))))
+ #:make-flags
+ (let ((out (assoc-ref %outputs "out"))
+ (m64p (assoc-ref %build-inputs "mupen64plus-core")))
+ (list "all"
+ (string-append "PREFIX=" out)
+ (string-append "APIDIR=" m64p "/include/mupen64plus")
+ ;; Trailing slash matters here.
+ (string-append "COREDIR=" m64p "/lib/")))
+ ;; There are no tests.
+ #:tests? #f))
+ (home-page "http://www.mupen64plus.org/")
+ (synopsis "Mupen64Plus SDL input plugin")
+ (description
+ "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
+which is capable of accurately playing many games. This package contains the
+command line user interface. Installing this package is the easiest way
+towards a working Mupen64Plus for casual users.")
+ (license license:gpl2+)))
+
+(define-public nestopia-ue
+ (package
+ (name "nestopia-ue")
+ (version "1.47")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/rdanbrook/nestopia/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1dzrrjmvyqks64q5l5pfly80jb6qcsbj5b3dm40fijd5xnpbapci"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; We don't need libretro for the GNU/Linux build.
+ (delete-file-recursively "libretro")
+ ;; Use system zlib.
+ (delete-file-recursively "source/zlib")
+ (substitute* "source/core/NstZlib.cpp"
+ (("#include \"../zlib/zlib.h\"") "#include <zlib.h>"))))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("ao" ,ao)
+ ("glu" ,glu)
+ ("gtk+" ,gtk+)
+ ("libarchive" ,libarchive)
+ ("mesa" ,mesa)
+ ("sdl2" ,sdl2)
+ ("zlib" ,zlib)))
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ ;; The Nestopia build system consists solely of a Makefile.
+ (delete 'configure)
+ (add-before 'build 'remove-xdg-desktop-menu-call
+ (lambda _
+ (substitute* "Makefile"
+ (("xdg-desktop-menu install .*") ""))))
+ (add-before 'build 'remove-gdkwayland-include
+ (lambda _
+ (substitute* "source/unix/gtkui/gtkui.h"
+ (("#include <gdk/gdkwayland\\.h>") "")))))
+ #:make-flags (let ((out (assoc-ref %outputs "out")))
+ (list "CC=gcc" "CXX=g++" (string-append "PREFIX=" out)))
+ ;; There are no tests.
+ #:tests? #f))
+ (home-page "http://0ldsk00l.ca/nestopia/")
+ (synopsis "Nintendo Entertainment System (NES/Famicom) emulator")
+ (description
+ "Nestopia UE (Undead Edition) is a fork of the Nintendo Entertainment
+System (NES/Famicom) emulator Nestopia, with enhancements from members of the
+emulation community. It provides highly accurate emulation.")
+ (license license:gpl2+)))
+
+(define-public retroarch
+ (package
+ (name "retroarch")
+ (version "1.7.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/libretro/RetroArch/archive/v"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0fdribjfc5zz9brzhqcxw6m76kvyg13l67aiigszv4wsjd5j3gpz"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:tests? #f ; no tests
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (etc (string-append out "/etc"))
+ (vulkan (assoc-ref inputs "vulkan-icd-loader")))
+ ;; Hard-code the path to libvulkan.so.
+ (substitute* "gfx/common/vulkan_common.c"
+ (("libvulkan.so") (string-append vulkan "/lib/libvulkan.so")))
+ (substitute* "qb/qb.libs.sh"
+ (("/bin/true") (which "true")))
+ ;; The configure script does not yet accept the extra arguments
+ ;; (like ‘CONFIG_SHELL=’) passed by the default configure phase.
+ (zero? (system*
+ "./configure"
+ (string-append "--prefix=" out)
+ (string-append "--global-config-dir=" etc)))))))))
+ (inputs
+ `(("alsa-lib" ,alsa-lib)
+ ("ffmpeg" ,ffmpeg)
+ ("freetype" ,freetype)
+ ("libxinerama" ,libxinerama)
+ ("libxkbcommon" ,libxkbcommon)
+ ("libxml2" ,libxml2)
+ ("libxv" ,libxv)
+ ("mesa" ,mesa)
+ ("openal" ,openal)
+ ("pulseaudio" ,pulseaudio)
+ ("python" ,python)
+ ("sdl" ,sdl2)
+ ("udev" ,eudev)
+ ("vulkan-icd-loader" ,vulkan-icd-loader)
+ ("wayland", wayland)
+ ("zlib" ,zlib)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("which" ,which)))
+ (home-page "https://www.libretro.com/")
+ (synopsis "Reference frontend for the libretro API")
+ (description
+ "Libretro is a simple but powerful development interface that allows for
+the easy creation of emulators, games and multimedia applications that can plug
+straight into any libretro-compatible frontend. RetroArch is the official
+reference frontend for the libretro API, currently used by most as a modular
+multi-system game/emulator system.")
+ (license license:gpl3+)))
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 0ac7d992c9..a7c77a44a6 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -1619,69 +1619,6 @@ interactive fiction, also known as text adventures, which were implemented
either by Infocom or created using the Inform compiler.")
(license license:bsd-3)))
-(define-public retroarch
- (package
- (name "retroarch")
- (version "1.7.1")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "https://github.com/libretro/RetroArch/archive/v"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "0fdribjfc5zz9brzhqcxw6m76kvyg13l67aiigszv4wsjd5j3gpz"))))
- (build-system gnu-build-system)
- (arguments
- '(#:tests? #f ; no tests
- #:phases
- (modify-phases %standard-phases
- (replace 'configure
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (etc (string-append out "/etc"))
- (vulkan (assoc-ref inputs "vulkan-icd-loader")))
- ;; Hard-code the path to libvulkan.so.
- (substitute* "gfx/common/vulkan_common.c"
- (("libvulkan.so") (string-append vulkan "/lib/libvulkan.so")))
- (substitute* "qb/qb.libs.sh"
- (("/bin/true") (which "true")))
- ;; The configure script does not yet accept the extra arguments
- ;; (like ‘CONFIG_SHELL=’) passed by the default configure phase.
- (zero? (system*
- "./configure"
- (string-append "--prefix=" out)
- (string-append "--global-config-dir=" etc)))))))))
- (inputs
- `(("alsa-lib" ,alsa-lib)
- ("ffmpeg" ,ffmpeg)
- ("freetype" ,freetype)
- ("libxinerama" ,libxinerama)
- ("libxkbcommon" ,libxkbcommon)
- ("libxml2" ,libxml2)
- ("libxv" ,libxv)
- ("mesa" ,mesa)
- ("openal" ,openal)
- ("pulseaudio" ,pulseaudio)
- ("python" ,python)
- ("sdl" ,sdl2)
- ("udev" ,eudev)
- ("vulkan-icd-loader" ,vulkan-icd-loader)
- ("wayland", wayland)
- ("zlib" ,zlib)))
- (native-inputs
- `(("pkg-config" ,pkg-config)
- ("which" ,which)))
- (home-page "https://www.libretro.com/")
- (synopsis "Reference frontend for the libretro API")
- (description
- "Libretro is a simple but powerful development interface that allows for
-the easy creation of emulators, games and multimedia applications that can plug
-straight into any libretro-compatible frontend. RetroArch is the official
-reference frontend for the libretro API, currently used by most as a modular
-multi-system game/emulator system.")
- (license license:gpl3+)))
-
(define-public gnugo
(package
(name "gnugo")
@@ -1922,48 +1859,6 @@ next campaign.")
(description "This package contains a dedicated server for @emph{The
Battle for Wesnoth}.")))
-(define-public dosbox
- (package
- (name "dosbox")
- (version "0.74.svn3947")
- (source (origin
- (method svn-fetch)
- (uri (svn-reference
- (url "http://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk/")
- (revision 3947)))
- (file-name (string-append name "-" version "-checkout"))
- ;; Use SVN head, since the last release (2010) is incompatible
- ;; with GCC 4.8+ (see
- ;; <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=624976>).
- (sha256
- (base32
- "1p918j6090d1nkvgq7ifvmn506zrdmyi32y7p3ms40d5ssqjg8fj"))))
- (build-system gnu-build-system)
- (arguments
- `(#:phases (modify-phases %standard-phases
- (add-after
- 'unpack 'autogen.sh
- (lambda _
- (zero? (system* "sh" "autogen.sh")))))))
- (native-inputs
- `(("autoconf" ,autoconf)
- ("automake" ,automake)))
- (inputs
- `(("sdl" ,sdl)
- ("libpng" ,libpng)
- ("zlib" ,zlib)
- ("alsa-lib" ,alsa-lib)
- ("glu" ,glu)
- ("mesa" ,mesa)))
- (home-page "http://www.dosbox.com")
- (synopsis "X86 emulator with CGA/EGA/VGA/etc. graphics and sound")
- (description "DOSBox is a DOS-emulator that uses the SDL library. DOSBox
-also emulates CPU:286/386 realmode/protected mode, Directory
-FileSystem/XMS/EMS, Tandy/Hercules/CGA/EGA/VGA/VESA graphics, a
-SoundBlaster/Gravis Ultra Sound card for excellent sound compatibility with
-older games.")
- (license license:gpl2+)))
-
(define-public gamine
(package
(name "gamine")
@@ -2082,638 +1977,6 @@ world}, @uref{http://evolonline.org, Evol Online} and
;; The rest is under GPL2+.
(license (list license:gpl2+ license:zlib license:cc-by-sa4.0))))
-(define-public mupen64plus-core
- (package
- (name "mupen64plus-core")
- (version "2.5")
- (source
- (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/mupen64plus/mupen64plus-core/archive/"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "0dg2hksm5qni2hcha93k7n4fqr92888p946f7phb0ndschzfh9kk"))))
- (build-system gnu-build-system)
- (native-inputs
- `(("pkg-config" ,pkg-config)
- ("which" ,which)))
- (inputs
- `(("freetype" ,freetype)
- ("glu" ,glu)
- ("libpng" ,libpng)
- ("mesa" ,mesa)
- ("sdl2" ,sdl2)
- ("zlib" ,zlib)))
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- ;; The mupen64plus build system has no configure phase.
- (delete 'configure)
- ;; Makefile is in a subdirectory.
- (add-before
- 'build 'cd-to-project-dir
- (lambda _
- (chdir "projects/unix"))))
- #:make-flags (let ((out (assoc-ref %outputs "out")))
- (list "all" (string-append "PREFIX=" out)))
- ;; There are no tests.
- #:tests? #f))
- ;; As per the Makefile (in projects/unix/Makefile):
- (supported-systems '("i686-linux" "x86_64-linux"))
- (home-page "http://www.mupen64plus.org/")
- (synopsis "Nintendo 64 emulator core library")
- (description
- "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
-which is capable of accurately playing many games. This package contains the
-core library.")
- (license license:gpl2+)))
-
-(define-public mupen64plus-audio-sdl
- (package
- (name "mupen64plus-audio-sdl")
- (version "2.5")
- (source
- (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/mupen64plus/mupen64plus-audio-sdl/archive/"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "0ss6w92n2rpfnazhg9lbq0nvs3fqx93nliz3k3wjxdlx4dpi7h3a"))))
- (build-system gnu-build-system)
- (native-inputs
- `(("pkg-config" ,pkg-config)
- ("which" ,which)))
- (inputs
- `(("mupen64plus-core" ,mupen64plus-core)
- ("sdl2" ,sdl2)))
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- ;; The mupen64plus build system has no configure phase.
- (delete 'configure)
- ;; Makefile is in a subdirectory.
- (add-before
- 'build 'cd-to-project-dir
- (lambda _
- (chdir "projects/unix"))))
- #:make-flags
- (let ((out (assoc-ref %outputs "out"))
- (m64p (assoc-ref %build-inputs "mupen64plus-core")))
- (list "all"
- (string-append "PREFIX=" out)
- (string-append "APIDIR=" m64p "/include/mupen64plus")))
- ;; There are no tests.
- #:tests? #f))
- (home-page "http://www.mupen64plus.org/")
- (synopsis "Mupen64Plus SDL input plugin")
- (description
- "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
-which is capable of accurately playing many games. This package contains the
-SDL audio plugin.")
- (license license:gpl2+)))
-
-(define-public mupen64plus-input-sdl
- (package
- (name "mupen64plus-input-sdl")
- (version "2.5")
- (source
- (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/mupen64plus/mupen64plus-input-sdl/archive/"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "11sj5dbalp2nrlmki34vy7wy28vc175pnnkdk65p8599hnyq37ri"))))
- (build-system gnu-build-system)
- (native-inputs
- `(("which" ,which)))
- (inputs
- `(("mupen64plus-core" ,mupen64plus-core)
- ("sdl2" ,sdl2)))
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- ;; The mupen64plus build system has no configure phase.
- (delete 'configure)
- ;; Makefile is in a subdirectory.
- (add-before
- 'build 'cd-to-project-dir
- (lambda _
- (chdir "projects/unix"))))
- #:make-flags
- (let ((out (assoc-ref %outputs "out"))
- (m64p (assoc-ref %build-inputs "mupen64plus-core")))
- (list "all"
- (string-append "PREFIX=" out)
- (string-append "APIDIR=" m64p "/include/mupen64plus")))
- ;; There are no tests.
- #:tests? #f))
- (home-page "http://www.mupen64plus.org/")
- (synopsis "Mupen64Plus SDL input plugin")
- (description
- "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
-which is capable of accurately playing many games. This package contains the
-SDL input plugin.")
- (license license:gpl2+)))
-
-(define-public mupen64plus-rsp-hle
- (package
- (name "mupen64plus-rsp-hle")
- (version "2.5")
- (source
- (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/mupen64plus/mupen64plus-rsp-hle/archive/"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "15h7mgz6xd2zjzm6l3f96sbs8kwr3xvbwzgikhnka79m6c69hsxv"))))
- (build-system gnu-build-system)
- (inputs
- `(("mupen64plus-core" ,mupen64plus-core)))
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- ;; The mupen64plus build system has no configure phase.
- (delete 'configure)
- ;; Makefile is in a subdirectory.
- (add-before
- 'build 'cd-to-project-dir
- (lambda _
- (chdir "projects/unix"))))
- #:make-flags
- (let ((out (assoc-ref %outputs "out"))
- (m64p (assoc-ref %build-inputs "mupen64plus-core")))
- (list "all"
- (string-append "PREFIX=" out)
- (string-append "APIDIR=" m64p "/include/mupen64plus")))
- ;; There are no tests.
- #:tests? #f))
- (home-page "http://www.mupen64plus.org/")
- (synopsis "Mupen64Plus SDL input plugin")
- (description
- "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
-which is capable of accurately playing many games. This package contains the
-high-level emulation (HLE) RSP processor plugin.")
- (license license:gpl2+)))
-
-(define-public mupen64plus-rsp-z64
- (package
- (name "mupen64plus-rsp-z64")
- (version "2.0.0")
- (source
- (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/mupen64plus/mupen64plus-rsp-z64/archive/"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "10jz1w2dhx5slhyk4m8mdqlpsd6cshchslr1fckb2ayzb1ls3ghi"))))
- (build-system gnu-build-system)
- (inputs
- `(("mupen64plus-core" ,mupen64plus-core)))
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- ;; The mupen64plus build system has no configure phase.
- (delete 'configure)
- ;; Makefile is in a subdirectory.
- (add-before
- 'build 'cd-to-project-dir
- (lambda _
- (chdir "projects/unix"))))
- #:make-flags
- (let ((out (assoc-ref %outputs "out"))
- (m64p (assoc-ref %build-inputs "mupen64plus-core")))
- (list "all"
- (string-append "PREFIX=" out)
- (string-append "APIDIR=" m64p "/include/mupen64plus")))
- ;; There are no tests.
- #:tests? #f))
- (home-page "http://www.mupen64plus.org/")
- (synopsis "Mupen64Plus SDL input plugin")
- (description
- "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
-which is capable of accurately playing many games. This package contains the
-Z64 RSP processor plugin.")
- (license license:gpl2+)))
-
-(define-public mupen64plus-video-arachnoid
- (package
- (name "mupen64plus-video-arachnoid")
- (version "2.0.0")
- (source
- (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/mupen64plus/mupen64plus-video-arachnoid/archive/"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "0jjwf144rihznm4lnqbhgigxw664v3v32wy94adaa6imk8z6gslh"))))
- (build-system gnu-build-system)
- (native-inputs
- `(("pkg-config" ,pkg-config)
- ("which" ,which)))
- (inputs
- `(("mesa" ,mesa)
- ("mupen64plus-core" ,mupen64plus-core)))
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- ;; The mupen64plus build system has no configure phase.
- (delete 'configure)
- ;; Makefile is in a subdirectory.
- (add-before
- 'build 'cd-to-project-dir
- (lambda _
- (chdir "projects/unix"))))
- #:make-flags
- (let ((out (assoc-ref %outputs "out"))
- (m64p (assoc-ref %build-inputs "mupen64plus-core")))
- (list "all"
- (string-append "PREFIX=" out)
- (string-append "APIDIR=" m64p "/include/mupen64plus")))
- ;; There are no tests.
- #:tests? #f))
- (home-page "http://www.mupen64plus.org/")
- (synopsis "Mupen64Plus Rice Video plugin")
- (description
- "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
-which is capable of accurately playing many games. This package contains the
-Arachnoid video plugin.")
- (license license:gpl2+)))
-
-(define-public mupen64plus-video-glide64
- (package
- (name "mupen64plus-video-glide64")
- (version "2.0.0")
- (source
- (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/mupen64plus/mupen64plus-video-glide64/archive/"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "1rm55dbf6xgsq1blbzs6swa2ajv0qkn38acbljj346abnk6s3dla"))))
- (build-system gnu-build-system)
- (native-inputs
- `(("pkg-config" ,pkg-config)
- ("which" ,which)))
- (inputs
- `(("mesa" ,mesa)
- ("mupen64plus-core" ,mupen64plus-core)
- ("sdl2" ,sdl2)))
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- ;; The mupen64plus build system has no configure phase.
- (delete 'configure)
- ;; Makefile is in a subdirectory.
- (add-before
- 'build 'cd-to-project-dir
- (lambda _
- (chdir "projects/unix")))
- ;; XXX Should be unnecessary with the next release.
- (add-before
- 'build 'use-sdl2
- (lambda _
- (substitute* "Makefile"
- (("SDL_CONFIG = (.*)sdl-config" all prefix)
- (string-append "SDL_CONFIG = " prefix "sdl2-config"))))))
- #:make-flags
- (let ((out (assoc-ref %outputs "out"))
- (m64p (assoc-ref %build-inputs "mupen64plus-core")))
- (list "all"
- (string-append "PREFIX=" out)
- (string-append "APIDIR=" m64p "/include/mupen64plus")))
- ;; There are no tests.
- #:tests? #f))
- (home-page "http://www.mupen64plus.org/")
- (synopsis "Mupen64Plus Rice Video plugin")
- (description
- "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
-which is capable of accurately playing many games. This package contains the
-Glide64 video plugin.")
- (license license:gpl2+)))
-
-(define-public mupen64plus-video-glide64mk2
- (package
- (name "mupen64plus-video-glide64mk2")
- (version "2.5")
- (source
- (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/mupen64plus/mupen64plus-video-glide64mk2/archive/"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "1ihl4q293d6svba26b4mhapjcdg12p90gibz79b4mx423jlcxxj9"))))
- (build-system gnu-build-system)
- (native-inputs
- `(("pkg-config" ,pkg-config)
- ("which" ,which)))
- (inputs
- `(("boost" ,boost)
- ("libpng" ,libpng)
- ("mesa" ,mesa)
- ("mupen64plus-core" ,mupen64plus-core)
- ("sdl2" ,sdl2)
- ("zlib" ,zlib)))
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- ;; The mupen64plus build system has no configure phase.
- (delete 'configure)
- ;; Makefile is in a subdirectory.
- (add-before
- 'build 'cd-to-project-dir
- (lambda _
- (chdir "projects/unix"))))
- #:make-flags
- (let ((out (assoc-ref %outputs "out"))
- (m64p (assoc-ref %build-inputs "mupen64plus-core")))
- (list "all"
- (string-append "PREFIX=" out)
- (string-append "APIDIR=" m64p "/include/mupen64plus")))
- ;; There are no tests.
- #:tests? #f))
- (home-page "http://www.mupen64plus.org/")
- (synopsis "Mupen64Plus Rice Video plugin")
- (description
- "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
-which is capable of accurately playing many games. This package contains the
-Glide64MK2 video plugin.")
- (license license:gpl2+)))
-
-(define-public mupen64plus-video-rice
- (package
- (name "mupen64plus-video-rice")
- (version "2.5")
- (source
- (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/mupen64plus/mupen64plus-video-rice/archive/"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "0rd2scjmh285w61aj3mgx71whg5rqrjbry3cdgicczrnyvf8wdvk"))))
- (build-system gnu-build-system)
- (native-inputs
- `(("pkg-config" ,pkg-config)
- ("which" ,which)))
- (inputs
- `(("libpng" ,libpng)
- ("mesa" ,mesa)
- ("mupen64plus-core" ,mupen64plus-core)
- ("sdl2" ,sdl2)))
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- ;; The mupen64plus build system has no configure phase.
- (delete 'configure)
- ;; Makefile is in a subdirectory.
- (add-before
- 'build 'cd-to-project-dir
- (lambda _
- (chdir "projects/unix"))))
- #:make-flags
- (let ((out (assoc-ref %outputs "out"))
- (m64p (assoc-ref %build-inputs "mupen64plus-core")))
- (list "all"
- (string-append "PREFIX=" out)
- (string-append "APIDIR=" m64p "/include/mupen64plus")))
- ;; There are no tests.
- #:tests? #f))
- (home-page "http://www.mupen64plus.org/")
- (synopsis "Mupen64Plus Rice Video plugin")
- (description
- "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
-which is capable of accurately playing many games. This package contains the
-Rice Video plugin.")
- (license license:gpl2+)))
-
-(define-public mupen64plus-video-z64
- (package
- (name "mupen64plus-video-z64")
- (version "2.0.0")
- (source
- (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/mupen64plus/mupen64plus-video-z64/archive/"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "1x7wsjs5gx2iwx20p4cjcbf696zsjlh31qxmghwv0ifrq8x58s1b"))))
- (build-system gnu-build-system)
- (native-inputs
- `(("pkg-config" ,pkg-config)
- ("which" ,which)))
- (inputs
- `(("glew" ,glew)
- ("mupen64plus-core" ,mupen64plus-core)
- ("sdl2" ,sdl2)))
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- ;; The mupen64plus build system has no configure phase.
- (delete 'configure)
- ;; Makefile is in a subdirectory.
- (add-before
- 'build 'cd-to-project-dir
- (lambda _
- (chdir "projects/unix")))
- ;; XXX Should be unnecessary with the next release.
- (add-before
- 'build 'use-sdl2
- (lambda _
- (substitute* "Makefile"
- (("SDL_CONFIG = (.*)sdl-config" all prefix)
- (string-append "SDL_CONFIG = " prefix "sdl2-config"))))))
- #:make-flags
- (let ((out (assoc-ref %outputs "out"))
- (m64p (assoc-ref %build-inputs "mupen64plus-core")))
- (list "all"
- (string-append "PREFIX=" out)
- (string-append "APIDIR=" m64p "/include/mupen64plus")))
- ;; There are no tests.
- #:tests? #f))
- (home-page "http://www.mupen64plus.org/")
- (synopsis "Mupen64Plus Z64 video plugin")
- (description
- "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
-which is capable of accurately playing many games. This package contains the
-Z64 video plugin.")
- (license license:gpl2+)))
-
-(define-public mupen64plus-ui-console
- (package
- (name "mupen64plus-ui-console")
- (version "2.5")
- (source
- (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/mupen64plus/mupen64plus-ui-console/archive/"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "04qkpd8ic7xsgnqz7spl00wxdygf79m7d1k8rabbygjk5lg6p8z2"))
- (patches (search-patches "mupen64plus-ui-console-notice.patch"))))
- (build-system gnu-build-system)
- (native-inputs
- `(("pkg-config" ,pkg-config)
- ("which" ,which)))
- (inputs
- `(("sdl2" ,sdl2)))
- ;; Mupen64Plus supports a single data directory and a single plugin
- ;; directory in its configuration, yet we need data and plugin files from
- ;; a variety of packages. The best way to deal with this is to install
- ;; all packages from which data and plugin files are needed into one's
- ;; profile, and point the configuration there. Hence, propagate the most
- ;; important packages here to save the user from the bother. The patch
- ;; mupen64plus-ui-console-notice also gives users instructions on what
- ;; they need to do in order to point the configuration to their profile.
- (propagated-inputs
- `(("mupen64plus-core" ,mupen64plus-core)
- ("mupen64plus-audio-sdl" ,mupen64plus-audio-sdl)
- ("mupen64plus-input-sdl" ,mupen64plus-input-sdl)
- ("mupen64plus-rsp-hle" ,mupen64plus-rsp-hle)
- ("mupen64plus-video-glide64" ,mupen64plus-video-glide64)
- ("mupen64plus-video-glide64mk2" ,mupen64plus-video-glide64mk2)
- ("mupen64plus-video-rice" ,mupen64plus-video-rice)))
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- ;; The mupen64plus build system has no configure phase.
- (delete 'configure)
- ;; Makefile is in a subdirectory.
- (add-before
- 'build 'cd-to-project-dir
- (lambda _
- (chdir "projects/unix"))))
- #:make-flags
- (let ((out (assoc-ref %outputs "out"))
- (m64p (assoc-ref %build-inputs "mupen64plus-core")))
- (list "all"
- (string-append "PREFIX=" out)
- (string-append "APIDIR=" m64p "/include/mupen64plus")
- ;; Trailing slash matters here.
- (string-append "COREDIR=" m64p "/lib/")))
- ;; There are no tests.
- #:tests? #f))
- (home-page "http://www.mupen64plus.org/")
- (synopsis "Mupen64Plus SDL input plugin")
- (description
- "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
-which is capable of accurately playing many games. This package contains the
-command line user interface. Installing this package is the easiest way
-towards a working Mupen64Plus for casual users.")
- (license license:gpl2+)))
-
-(define-public nestopia-ue
- (package
- (name "nestopia-ue")
- (version "1.47")
- (source (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/rdanbrook/nestopia/archive/"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32
- "1dzrrjmvyqks64q5l5pfly80jb6qcsbj5b3dm40fijd5xnpbapci"))
- (modules '((guix build utils)))
- (snippet
- '(begin
- ;; We don't need libretro for the GNU/Linux build.
- (delete-file-recursively "libretro")
- ;; Use system zlib.
- (delete-file-recursively "source/zlib")
- (substitute* "source/core/NstZlib.cpp"
- (("#include \"../zlib/zlib.h\"") "#include <zlib.h>"))))))
- (build-system gnu-build-system)
- (native-inputs
- `(("pkg-config" ,pkg-config)))
- (inputs
- `(("ao" ,ao)
- ("glu" ,glu)
- ("gtk+" ,gtk+)
- ("libarchive" ,libarchive)
- ("mesa" ,mesa)
- ("sdl2" ,sdl2)
- ("zlib" ,zlib)))
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- ;; The Nestopia build system consists solely of a Makefile.
- (delete 'configure)
- (add-before 'build 'remove-xdg-desktop-menu-call
- (lambda _
- (substitute* "Makefile"
- (("xdg-desktop-menu install .*") ""))))
- (add-before 'build 'remove-gdkwayland-include
- (lambda _
- (substitute* "source/unix/gtkui/gtkui.h"
- (("#include <gdk/gdkwayland\\.h>") "")))))
- #:make-flags (let ((out (assoc-ref %outputs "out")))
- (list "CC=gcc" "CXX=g++" (string-append "PREFIX=" out)))
- ;; There are no tests.
- #:tests? #f))
- (home-page "http://0ldsk00l.ca/nestopia/")
- (synopsis "Nintendo Entertainment System (NES/Famicom) emulator")
- (description
- "Nestopia UE (Undead Edition) is a fork of the Nintendo Entertainment
-System (NES/Famicom) emulator Nestopia, with enhancements from members of the
-emulation community. It provides highly accurate emulation.")
- (license license:gpl2+)))
-
-(define-public emulation-station
- (let ((commit "646bede3d9ec0acf0ae378415edac136774a66c5"))
- (package
- (name "emulation-station")
- (version "2.0.1")
- (source (origin
- (method git-fetch) ; no tarball available
- (uri (git-reference
- (url "https://github.com/Aloshi/EmulationStation.git")
- (commit commit))) ; no version tag
- (file-name (string-append name "-" version "-checkout"))
- (sha256
- (base32
- "0cm0sq2wri2l9cvab1l0g02za59q7klj0h3p028vr96n6njj4w9v"))))
- (build-system cmake-build-system)
- (arguments
- '(#:tests? #f)) ; no tests
- (inputs
- `(("alsa-lib" ,alsa-lib)
- ("boost" ,boost)
- ("curl" ,curl)
- ("eigin" ,eigen)
- ("freeimage" ,freeimage)
- ("freetype" ,freetype)
- ("mesa" ,mesa)
- ("sdl2" ,sdl2)))
- (synopsis "Video game console emulator front-end")
- (description "EmulationStation provides a graphical front-end to a large
-number of video game console emulators. It features an interface that is
-usable with any game controller that has at least 4 buttons, theming support,
-and a game metadata scraper.")
- (home-page "http://www.emulationstation.org")
- (license license:expat))))
-
(define openttd-engine
(package
(name "openttd-engine")
@@ -3055,39 +2318,6 @@ players.")
(home-page "http://pio.sourceforge.net/")
(license license:gpl2+)))
-(define-public desmume
- (package
- (name "desmume")
- (version "0.9.11")
- (source
- (origin
- (method url-fetch)
- (uri (string-append
- "mirror://sourceforge/desmume/desmume/"
- version "/desmume-" version ".tar.gz"))
- (sha256
- (base32
- "15l8wdw3q61fniy3h93d84dnm6s4pyadvh95a0j6d580rjk4pcrs"))))
- (build-system gnu-build-system)
- (arguments
- ;; Enable support for WiFi and microphone.
- `(#:configure-flags '("--enable-wifi"
- "--enable-openal")))
- (native-inputs
- `(("pkg-config" ,pkg-config)
- ("intltool" ,intltool)))
- (inputs
- `(("zlib" ,zlib)
- ("sdl" ,sdl)
- ("glib" ,glib)
- ("gtk+" ,gtk+-2)
- ("glu" ,glu)))
- (home-page "http://desmume.org/")
- (synopsis "Nintendo DS emulator")
- (description
- "DeSmuME is an emulator for the Nintendo DS handheld gaming console.")
- (license license:gpl2)))
-
(define-public einstein
(package
(name "einstein")
@@ -3343,155 +2573,6 @@ Red Eclipse provides fast paced and accessible gameplay.")
license:cc-by3.0
license:cc0)))))
-(define-public higan
- (package
- (name "higan")
- (version "106")
- (source
- (origin
- (method url-fetch)
- (uri (string-append
- "https://gitlab.com/higan/higan/repository/archive.tar.gz?ref=v"
- version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "0y42pra0dxzlbkyzcp3r8a39pji2bj3p9fl40425f60af2igr4rw"))
- (patches (search-patches "higan-remove-march-native-flag.patch"))))
- (build-system gnu-build-system)
- (native-inputs
- `(("pkg-config" ,pkg-config)))
- (inputs
- `(("alsa-lib" ,alsa-lib)
- ("ao" ,ao)
- ("eudev" ,eudev)
- ("gtk+" ,gtk+-2)
- ("gtksourceview-2" ,gtksourceview-2)
- ("libxv" ,libxv)
- ("mesa" ,mesa)
- ("openal" ,openal)
- ("pulseaudio" ,pulseaudio)
- ("sdl" ,sdl)))
- (arguments
- '(#:phases
- (let ((build-phase (assoc-ref %standard-phases 'build))
- (install-phase (assoc-ref %standard-phases 'install)))
- (modify-phases %standard-phases
- ;; The higan build system has no configure phase.
- (delete 'configure)
- (add-before 'build 'chdir-to-higan
- (lambda _
- (chdir "higan")))
- (add-before 'install 'create-/share/applications
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- ;; It seems the author forgot to do this in the Makefile.
- (mkdir-p (string-append out "/share/applications")))))
- (add-after 'install 'chdir-to-icarus
- (lambda _
- (chdir "../icarus")))
- (add-after 'chdir-to-icarus 'build-icarus build-phase)
- (add-after 'build-icarus 'install-icarus install-phase)
- (add-after 'install-icarus 'wrap-higan-executable
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (bin (string-append out "/bin"))
- (higan (string-append bin "/higan"))
- (higan-original (string-append higan "-original"))
- (bash (string-append (assoc-ref inputs "bash")
- "/bin/bash"))
- (coreutils (assoc-ref inputs "coreutils"))
- (mkdir (string-append coreutils "/bin/mkdir"))
- (cp (string-append coreutils "/bin/cp"))
- (cp-r (string-append cp " -r --no-preserve=mode")))
- ;; First, have the executable make sure ~/.local/share/higan
- ;; contains up to date files. Higan insists on looking there
- ;; for these data files.
- (rename-file higan higan-original)
- (with-output-to-file higan
- (lambda ()
- (display
- (string-append
- "#!" bash "\n"
- ;; higan doesn't respect $XDG_DATA_HOME
- mkdir " -p ~/.local/share\n"
- cp-r " " out "/share/higan ~/.local/share\n"
- "exec " higan-original))))
- (chmod higan #o555)
- ;; Second, make sure higan will find icarus in PATH.
- (wrap-program higan
- `("PATH" ":" prefix (,bin))))))))
- #:make-flags
- (list "compiler=g++"
- (string-append "prefix=" (assoc-ref %outputs "out")))
- ;; There is no test suite.
- #:tests? #f))
- (home-page "http://byuu.org/emulation/higan/")
- (synopsis "Nintendo multi-system emulator")
- (description
- "higan (formerly bsnes) is an emulator for multiple Nintendo video game
-consoles, including the Nintendo Entertainment System (NES/Famicom), Super
-Nintendo Entertainment System (SNES/Super Famicom), Game Boy, Game Boy
-Color (GBC), and Game Boy Advance (GBA). It also supports the subsystems
-Super Game Boy, BS-X Satellaview, and Sufami Turbo.")
- ;; As noted in these files among more:
- ;; - icarus/icarus.cpp
- ;; - higan/emulator/emulator.hpp
- (license license:gpl3)))
-
-(define-public mgba
- (package
- (name "mgba")
- (version "0.6.1")
- (source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/mgba-emu/mgba/archive/"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32
- "0xmq1q1j71hnpd49wm91cqq8w5zdhb921cm17jchp4qjmaqgwy3w"))
- (modules '((guix build utils)))
- (snippet
- ;; Make sure we don't use the bundled software.
- '(for-each
- (lambda (subdir)
- (let ((lib-subdir (string-append "src/third-party/" subdir)))
- (delete-file-recursively lib-subdir)))
- '("libpng" "lzma" "sqlite3" "zlib")))))
- (build-system cmake-build-system)
- (arguments
- `(#:tests? #f ;no "test" target
- #:configure-flags
- (list "-DUSE_LZMA=OFF" ;do not use bundled LZMA
- "-DUSE_LIBZIP=OFF" ;use "zlib" instead
- (string-append "-DCMAKE_INSTALL_LIBDIR="
- (assoc-ref %outputs "out") "/lib"))))
- (native-inputs `(("pkg-config" ,pkg-config)))
- (inputs `(("ffmpeg" ,ffmpeg)
- ("imagemagick" ,imagemagick)
- ("libedit" ,libedit)
- ("libepoxy" ,libepoxy)
- ("libpng" ,libpng)
- ("mesa" ,mesa)
- ("minizip" ,minizip)
- ("ncurses" ,ncurses)
- ("qtbase" ,qtbase)
- ("qtmultimedia" ,qtmultimedia)
- ("qttools" ,qttools)
- ("sdl2" ,sdl2)
- ("sqlite" ,sqlite)
- ("zlib" ,zlib)))
- (home-page "https://mgba.io")
- (synopsis "Game Boy Advance emulator")
- (description
- "mGBA is an emulator for running Game Boy Advance games. It aims to be
-faster and more accurate than many existing Game Boy Advance emulators, as
-well as adding features that other emulators lack. It also supports Game Boy
-and Game Boy Color games.")
- ;; Code is mainly MPL 2.0. "blip_buf.c" is LGPL 2.1+ and "inih.c" is
- ;; BSD-3.
- (license (list license:mpl2.0 license:lgpl2.1+ license:bsd-3))))
-
(define-public grue-hunter
(package
(name "grue-hunter")