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.
This commit is contained in:
		
							parent
							
								
									65c9d25739
								
							
						
					
					
						commit
						9af704c59c
					
				
					 2 changed files with 948 additions and 922 deletions
				
			
		| 
						 | 
				
			
			@ -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+)))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Reference in a new issue