summary refs log tree commit diff
path: root/gnu/packages/games.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/games.scm')
-rw-r--r--gnu/packages/games.scm258
1 files changed, 158 insertions, 100 deletions
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 8cc29b3487..83c75e8dcf 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -59,7 +59,7 @@
 ;;; Copyright © 2020 Tomás Ortín Fernández <tomasortin@mailbox.org>
 ;;; Copyright © 2021 Olivier Rojon <o.rojon@posteo.net>
 ;;; Copyright © 2021 Stefan Reichör <stefan@xsteve.at>
-;;; Copyright © 2021 Greg Hogan <code@greghogan.com>
+;;; Copyright © 2021, 2022 Greg Hogan <code@greghogan.com>
 ;;; Copyright © 2021 David Pflug <david@pflug.io>
 ;;; Copyright © 2021, 2022 Felix Gruber <felgru@posteo.net>
 ;;; Copyright © 2021 Solene Rapenne <solene@perso.pw>
@@ -69,6 +69,7 @@
 ;;; Copyright © 2021 Christopher Baines <mail@cbaines.net>
 ;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
 ;;; Copyright © 2022 Yovan Naumovski <yovan@gorski.stream>
+;;; Copyright © 2022 Roman Riabenko <roman@riabenko.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -2250,6 +2251,38 @@ utilizing the art assets from the @code{SuperTux} project.")
                      license:gpl2+
                      license:gpl3+)))))
 
+(define-public robotfindskitten
+  (package
+    (name "robotfindskitten")
+    (version "2.8284271.702")            ; 1600003_201b is older, see ChangeLog
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/" name "/" name
+                                  "/releases/download/" version "/"
+                                  name "-" version ".tar.gz"))
+              (sha256
+                (base32
+                 "1bwrkxm83r9ajpkd6x03nqvmdfpf5vz6yfy0c97pq3v3ykj74082"))))
+    (build-system gnu-build-system)
+    (arguments
+     (list
+      #:tests? #f                       ; there are no tests
+      #:make-flags
+      #~(list
+         ;; Required for colorized output, see <http://bugs.gnu.org/54607>.
+         "CFLAGS=-D_XOPEN_SOURCE=600"
+         (string-append "execgamesdir=" #$output "/bin"))))
+    (inputs (list ncurses))
+    (outputs (list "out" "debug"))
+    (synopsis "Thematic meditative game")
+    (description
+     "You are a robot moving around in a realm filled with ASCII characters.
+Examine humourously described though useless items as you search for a kitten
+among them.  The theme of this Zen simulation is continued in its
+documentation.")
+    (home-page "http://robotfindskitten.org/")
+    (license license:gpl2+)))
+
 (define-public roguebox-adventures
   (package
     (name "roguebox-adventures")
@@ -4229,15 +4262,15 @@ world}, @uref{http://evolonline.org, Evol Online} and
                "1qz7ld55m9cvgr4mkv6c11y0zf2aph3ba605l45qj41hk2wzb2r5"))))
     (build-system cmake-build-system)
     (inputs
-     `(("allegro" ,allegro)
-       ("fontconfig" ,fontconfig)
-       ("freetype" ,freetype)
-       ("icu4c" ,icu4c)
-       ("libpng" ,libpng)
-       ("lzo" ,lzo)
-       ("sdl" ,sdl)
-       ("xz" ,xz)
-       ("zlib" ,zlib)))
+     (list allegro
+           fontconfig
+           freetype
+           icu4c
+           libpng
+           lzo
+           sdl
+           xz
+           zlib))
     (synopsis "Transportation economics simulator game")
     (description "OpenTTD is a game in which you transport goods and
 passengers by land, water and air.  It is a re-implementation of Transport
@@ -4267,22 +4300,24 @@ engine.  When you start it you will be prompted to download a graphics set.")
          "0nhzlk6s73qvznm5fdwcs1b42g2plf26s5ag39fvck45zm7m48jk"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:make-flags (list (string-append "CC=" ,(cc-for-target))
-                          (string-append "INSTALL_DIR="
-                                         (assoc-ref %outputs "out")
-                                         "/share/games/openttd/baseset/opengfx"))
-       #:phases
-       (modify-phases %standard-phases
-         (replace 'configure
-           (lambda _
-             ;; Make sure HOME is writable for GIMP.
-             (setenv "HOME" (getcwd))
+     (list
+      #:make-flags
+      #~(list (string-append "CC=" #$(cc-for-target))
+              (string-append "INSTALL_DIR="
+                             #$output
+                             "/share/games/openttd/baseset/opengfx"))
+      #:phases
+      #~(modify-phases %standard-phases
+          (replace 'configure
+            (lambda _
+              ;; Make sure HOME is writable for GIMP.
+              (setenv "HOME" (getcwd))
 
-             ;; Redirect stdout, not stderr, to /dev/null. This prevents
-             ;; dos2unix from receiving its version information as a flag.
-             (substitute* "Makefile"
-               (("\\$\\(UNIX2DOS\\) -q --version 2>/dev/null")
-                "$(UNIX2DOS) -q --version 1>/dev/null")))))
+              ;; Redirect stdout, not stderr, to /dev/null. This prevents
+              ;; dos2unix from receiving its version information as a flag.
+              (substitute* "Makefile"
+                (("\\$\\(UNIX2DOS\\) -q --version 2>/dev/null")
+                 "$(UNIX2DOS) -q --version 1>/dev/null")))))
        ;; The check phase for this package only checks the md5sums of the built
        ;; GRF files against the md5sums of the release versions. Because we use
        ;; different software versions than upstream does, some of the md5sums
@@ -4290,12 +4325,13 @@ engine.  When you start it you will be prompted to download a graphics set.")
        ;; to disable this test.
        #:tests? #f
        #:parallel-build? #f))
-    (native-inputs `(("dos2unix" ,dos2unix)
-                     ("gimp" ,gimp)
-                     ("grfcodec" ,grfcodec)
-                     ("nml" ,nml)
-                     ("which" ,which)
-                     ("python" ,python)))
+    (native-inputs
+     (list dos2unix
+           gimp
+           grfcodec
+           nml
+           which
+           python))
     (home-page "http://dev.openttdcoop.org/projects/opengfx")
     (synopsis "Base graphics set for OpenTTD")
     (description
@@ -4327,34 +4363,34 @@ OpenGFX provides you with...
          "0aym026lg0r7dp3jxxs9c0rj8lwy1fz3v9hmk3mml6sycsg3fv42"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("catcodec" ,catcodec)
-       ("python" ,python)
-       ("tar" ,tar)))
+     (list catcodec
+           python
+           tar))
     (arguments
-     `(#:make-flags
-       (list (string-append "DIR_NAME=opensfx")
-             (string-append "TAR="
-                            (search-input-file %build-inputs "/bin/tar")))
-       ;; The check phase only verifies md5sums, see openttd-opengfx.
-       #:tests? #f
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'make-reproducible
-           (lambda _
-             ;; Remove the time dependency of the installed tarball by setting
-             ;; the modification times if its members to 0.
-             (substitute* "scripts/Makefile.def"
-               (("-cf") " --mtime=@0 -cf"))
-             #t))
-         (delete 'configure)
-         (add-before 'build 'prebuild
-           (lambda _ (invoke "make" "opensfx.cat")))
-         (replace 'install
-           (lambda* (#:key outputs #:allow-other-keys)
-             (copy-recursively "opensfx"
-                               (string-append (assoc-ref outputs "out")
-                                              "/share/games/openttd/baseset"
-                                              "/opensfx")))))))
+     (list
+      #:make-flags
+      #~(list (string-append "DIR_NAME=opensfx")
+              (string-append "TAR="
+                             (search-input-file %build-inputs "/bin/tar")))
+      ;; The check phase only verifies md5sums, see openttd-opengfx.
+      #:tests? #f
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'make-reproducible
+            (lambda _
+              ;; Remove the time dependency of the installed tarball by setting
+              ;; the modification times if its members to 0.
+              (substitute* "scripts/Makefile.def"
+                (("-cf") " --mtime=@0 -cf"))))
+          (delete 'configure)
+          (add-before 'build 'prebuild
+            (lambda _ (invoke "make" "opensfx.cat")))
+          (replace 'install
+            (lambda* (#:key outputs #:allow-other-keys)
+              (copy-recursively "opensfx"
+                                (string-append (assoc-ref outputs "out")
+                                               "/share/games/openttd/baseset"
+                                               "/opensfx")))))))
     (home-page "http://dev.openttdcoop.org/projects/opensfx")
     (synopsis "Base sounds for OpenTTD")
     (description "OpenSFX is a set of free base sounds for OpenTTD which make
@@ -4377,27 +4413,28 @@ the original Transport Tycoon Deluxe.")
          "0h583d8fxy78kc3jvpp78r76a48qhxrhm4q7jbnj74aw0kwrcl8g"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("grfcodec" ,grfcodec)
-       ; Scripts are Python3 compatible, but call the interpreter as
-       ; python instead of python3.
-       ("python" ,python-wrapper)
-       ("tar" ,tar)))
+     (list grfcodec
+           ;; Scripts are Python3 compatible, but call the interpreter as
+           ;; python instead of python3.
+           python-wrapper
+           tar))
     (arguments
-     `(#:make-flags
-       (list (string-append "DIR_NAME=openmsx")
-             (string-append "TAR="
-                            (search-input-file %build-inputs "/bin/tar")))
-       ;; The check phase only verifies md5sums, see openttd-opengfx.
-       #:tests? #f
-       #:phases
-       (modify-phases %standard-phases
-         (delete 'configure)
-         (replace 'install
-           (lambda* (#:key outputs #:allow-other-keys)
-             (copy-recursively "openmsx"
-                               (string-append (assoc-ref outputs "out")
-                                              "/share/games/openttd/baseset"
-                                              "/openmsx")))))))
+     (list
+      #:make-flags
+      #~(list (string-append "DIR_NAME=openmsx")
+              (string-append "TAR="
+                             (search-input-file %build-inputs "/bin/tar")))
+      ;; The check phase only verifies md5sums, see openttd-opengfx.
+      #:tests? #f
+      #:phases
+      #~(modify-phases %standard-phases
+          (delete 'configure)
+          (replace 'install
+            (lambda* (#:key outputs #:allow-other-keys)
+              (copy-recursively "openmsx"
+                                (string-append (assoc-ref outputs "out")
+                                               "/share/games/openttd/baseset"
+                                               "/openmsx")))))))
     (home-page "http://dev.openttdcoop.org/projects/openmsx")
     (synopsis "Music set for OpenTTD")
     (description "OpenMSX is a music set for OpenTTD which makes it possible
@@ -4410,26 +4447,36 @@ Transport Tycoon Deluxe.")
     (inherit openttd-engine)
     (name "openttd")
     (arguments
-     `(#:configure-flags
-       (let* ((out (assoc-ref %outputs "out")))
-         (list (string-append "-DCMAKE_INSTALL_BINDIR=" out "/bin")))
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'install-data
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (for-each
-              (lambda (input)
-                (copy-recursively (assoc-ref inputs input)
-                                  (assoc-ref outputs "out")))
-              (list "opengfx" "openmsx" "opensfx")))))))
+     (list
+      #:configure-flags
+      #~(list (string-append "-DCMAKE_INSTALL_BINDIR=" #$output "/bin"))
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'patch-sources
+            (lambda* (#:key inputs #:allow-other-keys)
+              (substitute* "src/music/fluidsynth.cpp"
+                (("default_sf\\[\\] = \\{" all)
+                 (string-append all "
+\t/* Guix hardcoded :P */
+\t\"" (search-input-file inputs "/share/soundfonts/FreePatsGM.sf2") "\",
+")))))
+          (add-before 'check 'install-data
+            (lambda* (#:key inputs outputs #:allow-other-keys)
+              (let ((base "/share/games/openttd"))
+                (for-each
+                 (lambda (dir)
+                   ;; Copy the entire input, so as to not omit documentation
+                   ;; etc.
+                   (copy-recursively
+                    (string-drop-right dir (string-length base))
+                    (assoc-ref outputs "out")))
+                 (search-path-as-list (list base) (map cdr inputs)))))))))
     (inputs
      (modify-inputs (package-inputs openttd-engine)
-       (prepend timidity++)))
+       (prepend fluidsynth freepats-gm)))
     (native-inputs
-     `(("opengfx" ,openttd-opengfx)
-       ("openmsx" ,openttd-openmsx)
-       ("opensfx" ,openttd-opensfx)
-       ,@(package-native-inputs openttd-engine)))))
+     (modify-inputs (package-native-inputs openttd-engine)
+       (prepend openttd-opengfx openttd-openmsx openttd-opensfx)))))
 
 (define openrct2-title-sequences
   (package
@@ -11910,10 +11957,10 @@ etc.  You can also play games on FICS or against an engine.")
     (license license:gpl2+)))
 
 (define-public stockfish
-  (let ((neural-network-revision "13406b1dcbe0")) ; also update hash below
+  (let ((neural-network-revision "6877cd24400e")) ; also update hash below
     (package
       (name "stockfish")
-      (version "14.1")
+      (version "15")
       (source
        (origin
          (method git-fetch)
@@ -11922,7 +11969,7 @@ etc.  You can also play games on FICS or against an engine.")
                (commit (string-append "sf_" version))))
          (file-name (git-file-name name version))
          (sha256
-          (base32 "0apqqcgpcflm3c6mcl13ln2y04f6zksnljmk4ys7naf7xk4vdgkd"))))
+          (base32 "1v19v6qhwbf31wpc3qcih4dvqxwqkh0p426skgjin6ags31hkbmh"))))
       (build-system gnu-build-system)
       (inputs
        `(("neural-network"
@@ -11932,19 +11979,25 @@ etc.  You can also play games on FICS or against an engine.")
                                  neural-network-revision ".nnue"))
              (sha256
               (base32
-               "0vr3hcmlqqm74pn7hc54gmfs9drqvgc53nh7bvy6v8z0rcfnnh0k"))))))
+               "1qyna598c0v7gdpycc6kpl12h5a2wa50dqray6gv208f80jcsxv8"))))))
       (arguments
        `(#:tests? #f
          #:make-flags (list "-C" "src"
                             "build"
                             (string-append "PREFIX="
                                            (assoc-ref %outputs "out"))
+                            ,@(if (target-ppc32?)
+                                `("EXTRALDFLAGS=-latomic")
+                                `())
                             (string-append "ARCH="
                                            ,(match (%current-system)
                                               ("x86_64-linux" "x86-64")
                                               ("i686-linux" "x86-32")
                                               ("aarch64-linux" "armv8")
                                               ("armhf-linux" "armv7")
+                                              ("powerpc-linux" "ppc-32")
+                                              ("powerpc64le-linux" "ppc-64")
+                                              ("riscv64-linux" "general-64")
                                               ("mips64el-linux" "general-64")
                                               (_ "general-32"))))
          #:phases (modify-phases %standard-phases
@@ -11955,7 +12008,12 @@ etc.  You can also play games on FICS or against an engine.")
                       (lambda* (#:key inputs #:allow-other-keys)
                         (copy-file (assoc-ref inputs "neural-network")
                                    (format #f "src/nn-~a.nnue"
-                                           ,neural-network-revision)))))))
+                                           ,neural-network-revision))))
+                    ;; Guix doesn't use a multiarch gcc.
+                    (add-after 'unpack 'remove-m-flag
+                      (lambda _
+                        (substitute* "src/Makefile"
+                          (("-m\\$\\(bits\\)") "")))))))
       (synopsis "Strong chess engine")
       (description
        "Stockfish is a very strong chess engine.  It is much stronger than the