summary refs log tree commit diff
path: root/gnu/packages/emulators.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/emulators.scm')
-rw-r--r--gnu/packages/emulators.scm106
1 files changed, 101 insertions, 5 deletions
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index f6da7f2d25..72a9b6e40d 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -9,6 +9,8 @@
 ;;; Copyright © 2017, 2018, 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
+;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
+;;; Copyright © 2019 David Wilson <david@daviwil.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -26,6 +28,7 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages emulators)
+  #:use-module (ice-9 match)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
@@ -39,6 +42,7 @@
   #:use-module (gnu packages base)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages backup)
+  #:use-module (gnu packages cdrom)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages elf)
@@ -82,6 +86,7 @@
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages web)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system gnu))
 
 (define-public desmume
@@ -161,7 +166,7 @@
                       (string-append (assoc-ref inputs "vulkan-loader")
                                      "/lib/libvulkan.so")))
                  (chdir "docs")
-                 (invoke "bash" "-c" "g++ -O2 -std=c++11 $(freetype-config \
+                 (invoke "bash" "-c" "g++ -O2 $(freetype-config \
 --cflags --libs) gc-font-tool.cpp -o gc-font-tool")
                  (invoke "./gc-font-tool" "a" fontfile "font_western.bin")
                  (invoke "./gc-font-tool" "s" fontfile "font_japanese.bin")
@@ -1048,7 +1053,7 @@ emulation community.  It provides highly accurate emulation.")
 (define-public retroarch
   (package
     (name "retroarch")
-    (version "1.7.8.4")
+    (version "1.8.1")
     (source
      (origin
        (method git-fetch)
@@ -1057,7 +1062,7 @@ emulation community.  It provides highly accurate emulation.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1i3i23xwvmck8k2fpalr49np7xjzfg507243mybqrljawlnbxvph"))))
+        (base32 "0y7rcpz7psf8k3agsrq277jdm651vbnn9xpqvmj2in1a786idya7"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no tests
@@ -1183,7 +1188,7 @@ play them on systems for which they were never designed!")
 (define-public mame
   (package
     (name "mame")
-    (version "0.214")
+    (version "0.215")
     (source
      (origin
        (method git-fetch)
@@ -1193,7 +1198,7 @@ play them on systems for which they were never designed!")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "129yk3ybcviscy2xk1mkkzxm4h4nh5p6ndfgqbmcx547p1s6hbja"))
+         "1fj2qahi0fpn41zxph06wdgjashy6vsgj0gqfly8hvcmv99r3d65"))
        (modules '((guix build utils)))
        (snippet
         ;; Remove bundled libraries.
@@ -1366,3 +1371,94 @@ functions.  The source code to MAME serves as this documentation.")
     ;; However, over 90% of the files are under Expat license.  Also, artwork,
     ;; keymaps, languages and samples are under CC0.
     (license (list license:gpl2+ license:expat license:cc0))))
+
+(define-public pcsxr
+  ;; No release since 2017.
+  (let ((commit "6484236cb0281e8040ff6c8078c87899a3407534"))
+    (package
+      (name "pcsxr")
+      ;; Version is tagged here: https://github.com/frealgagu/PCSX-Reloaded
+      (version "1.9.95")
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/pcsxr/PCSX-Reloaded")
+               (commit commit)))
+         (sha256
+          (base32
+           "138mayp7zi9v4l3lm5f6xxkds619w1fgg769zm8s45c84jbz7dza"))
+         (file-name (git-file-name name commit))))
+      (build-system cmake-build-system)
+      (arguments
+       `(#:tests? #f                    ;no "test" target
+         #:configure-flags
+         (list "-DSND_BACKEND=pulse"
+               "-DENABLE_CCDDA='ON'"
+               "-DUSE_LIBARCHIVE='ON'"
+               "-DUSE_LIBCDIO='ON'")
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'cd-subdir
+             (lambda _ (chdir "pcsxr")))
+           (add-before 'configure 'fix-cdio-lookup
+             (lambda* (#:key inputs #:allow-other-keys)
+               (substitute* "cmake/FindCdio.cmake"
+                 (("/usr/include/cdio")
+                  (string-append (assoc-ref inputs "libcdio") "/include/cdio"))))))))
+      (native-inputs
+       `(("pkg-config" ,pkg-config)
+         ("intltool" ,intltool)
+         ("glib" ,glib "bin")))
+      (inputs
+       `(("libcdio" ,libcdio)
+         ("sdl2" ,sdl2)
+         ("gtk+" ,gtk+)
+         ("ffmpeg" ,ffmpeg)
+         ("libxv" ,libxv)
+         ("libarchive" ,libarchive)
+         ("pulseaudio" ,pulseaudio)))
+      (home-page "https://archive.codeplex.com/?p=pcsxr")
+      (synopsis "PlayStation emulator")
+      (description
+       "A PlayStation emulator based on PCSX-df Project with bugfixes and
+improvements.")
+      (license license:gpl2+))))
+
+(define-public gens-gs
+  (package
+    (name "gens-gs")
+    (version "7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://retrocdn.net/images/6/6d/Gens-gs-r"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "1ha5s6d3y7s9aq9f4zmn9p88109c3mrj36z2w68jhiw5xrxws833"))))
+    (build-system glib-or-gtk-build-system)
+    (arguments
+     `(#:system "i686-linux"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-CFLAGS
+           (lambda* _
+             ;; Remove GTK API deprecation flags that cause build errors.
+             (substitute* "configure"
+               (("GTK_CFLAGS=\"\\$GTK_CFLAGS .*\"") ""))
+             #t)))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("nasm" ,nasm)))
+    (inputs
+     `(("sdl" ,sdl)
+       ("gtk" ,gtk+-2)))
+    (home-page "https://segaretro.org/Gens/GS")
+    (synopsis "Emulator for Sega Genesis/Mega Drive systems")
+    (description
+     "Gens/GS is an emulator for the Mega Drive (also known as Sega Genesis),
+derived from Gens.  Project goals include clean source code, combined features
+from various forks of Gens, and improved platform portability.")
+    (supported-systems '("i686-linux" "x86_64-linux"))
+    (license license:gpl2+)))