gnu: Add pioneers.
[jackhill/guix/guix.git] / gnu / packages / games.scm
CommitLineData
490c6528
JD
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2013 John Darrington <jmd@gnu.org>
3307c787 3;;; Copyright © 2014, 2015 David Thompson <dthompson2@worcester.edu>
e3f755f4 4;;; Copyright © 2014, 2015, 2016 Eric Bavier <bavier@member.fsf.org>
3cf118a1 5;;; Copyright © 2014 Cyrill Schenkel <cyrill.schenkel@gmail.com>
bb3b71ce 6;;; Copyright © 2014 Sylvain Beucler <beuc@beuc.net>
ce0614dd 7;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
72b703cd 8;;; Copyright © 2014, 2015 Sou Bunnbu <iyzsong@gmail.com>
e0a7d364 9;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
0565587c 10;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
fc936b65 11;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
67fa7a27 12;;; Copyright © 2015 Christopher Allan Webber <cwebber@dustycloud.org>
c23c50c7 13;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
4c896c91 14;;; Copyright © 2015, 2016 Alex Kost <alezost@gmail.com>
e11b2752 15;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
0c15230d 16;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
7e2e1155 17;;; Copyright © 2016 Rodger Fox <thylakoid@openmailbox.org>
490c6528
JD
18;;;
19;;; This file is part of GNU Guix.
20;;;
21;;; GNU Guix is free software; you can redistribute it and/or modify it
22;;; under the terms of the GNU General Public License as published by
23;;; the Free Software Foundation; either version 3 of the License, or (at
24;;; your option) any later version.
25;;;
26;;; GNU Guix is distributed in the hope that it will be useful, but
27;;; WITHOUT ANY WARRANTY; without even the implied warranty of
28;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
29;;; GNU General Public License for more details.
30;;;
31;;; You should have received a copy of the GNU General Public License
32;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
33
34(define-module (gnu packages games)
024e2c17
DT
35 #:use-module ((guix licenses) #:prefix license:)
36 #:use-module (guix utils)
490c6528
JD
37 #:use-module (guix packages)
38 #:use-module (guix download)
c23c50c7 39 #:use-module (guix git-download)
e11b2752 40 #:use-module (guix svn-download)
a83c6a64 41 #:use-module (gnu packages)
3307c787 42 #:use-module (gnu packages algebra)
e11b2752 43 #:use-module (gnu packages autotools)
03d521f9 44 #:use-module (gnu packages backup)
7e51e5bc 45 #:use-module (gnu packages base)
11c38cbe 46 #:use-module (gnu packages admin)
f2fac359 47 #:use-module (gnu packages audio)
7e2e1155 48 #:use-module (gnu packages avahi)
a83c6a64 49 #:use-module (gnu packages boost)
c23c50c7
RW
50 #:use-module (gnu packages fribidi)
51 #:use-module (gnu packages game-development)
490c6528
JD
52 #:use-module (gnu packages gettext)
53 #:use-module (gnu packages gl)
bf0018cd 54 #:use-module (gnu packages glib)
490c6528
JD
55 #:use-module (gnu packages gnome)
56 #:use-module (gnu packages gtk)
57 #:use-module (gnu packages guile)
bf0018cd 58 #:use-module (gnu packages libcanberra)
67fa7a27 59 #:use-module (gnu packages libunwind)
aa6f3912 60 #:use-module (gnu packages haskell)
c23c50c7 61 #:use-module (gnu packages mp3)
e55354b8 62 #:use-module (gnu packages image)
3cf118a1 63 #:use-module (gnu packages ncurses)
bf0018cd
JD
64 #:use-module (gnu packages python)
65 #:use-module (gnu packages readline)
490c6528
JD
66 #:use-module (gnu packages xorg)
67 #:use-module (gnu packages pkg-config)
5f96f303 68 #:use-module (gnu packages databases)
3da5dca3 69 #:use-module (gnu packages sdl)
ae9cb418 70 #:use-module (gnu packages texinfo)
bb3b71ce
SB
71 #:use-module (gnu packages check)
72 #:use-module (gnu packages fontutils)
c449a076 73 #:use-module (gnu packages gstreamer)
a6b55314 74 #:use-module (gnu packages bash)
a21b42e2 75 #:use-module (gnu packages perl)
13d18626
SB
76 #:use-module (gnu packages qt)
77 #:use-module (gnu packages compression)
19b396bf
DT
78 #:use-module (gnu packages pulseaudio)
79 #:use-module (gnu packages linux)
024e2c17 80 #:use-module (gnu packages zip)
6e206ac7
DT
81 #:use-module (gnu packages xiph)
82 #:use-module (gnu packages curl)
83 #:use-module (gnu packages lua)
72b703cd 84 #:use-module (gnu packages video)
72b703cd 85 #:use-module (gnu packages xml)
67fa7a27 86 #:use-module (gnu packages tcl)
159093a7 87 #:use-module (gnu packages fribidi)
7e51e5bc 88 #:use-module (guix build-system trivial)
a6b55314 89 #:use-module (guix build-system gnu)
aa6f3912 90 #:use-module (guix build-system haskell)
19b396bf 91 #:use-module (guix build-system cmake)
a6b55314 92 #:use-module (guix build-system trivial))
490c6528 93
bf0018cd
JD
94(define-public gnubg
95 (package
96 (name "gnubg")
97 (version "1.02")
98 (source
99 (origin
100 (method url-fetch)
101 (uri (string-append "http://files.gnubg.org/media/sources/gnubg-release-"
102 version ".000-sources." "tar.gz"))
103 (sha256
104 (base32
105 "015mvjk2iw1cg1kxwxfnvp2rxb9cylf6yc39i30fdy414k07zkky"))))
106 (build-system gnu-build-system)
107 (inputs `(("glib" ,glib)
108 ("readline" ,readline)
109 ("gtk+" ,gtk+-2)
110 ("mesa" ,mesa)
6a95024c 111 ("glu" ,glu)
bf0018cd
JD
112 ("gtkglext" ,gtkglext)
113 ("sqlite" ,sqlite)
114 ("libcanberra" ,libcanberra)))
115 (native-inputs `(("python-2" ,python-2)
116 ("pkg-config" ,pkg-config)))
07af3e5e 117 (home-page "http://gnubg.org")
bf0018cd
JD
118 (synopsis "Backgammon game")
119 (description "The GNU backgammon application can be used for playing, analyzing and
120teaching the game. It has an advanced evaluation engine based on artificial
121neural networks suitable for both beginners and advanced players. In
122addition to a command-line interface, it also features an attractive, 3D
123representation of the playing board.")
024e2c17 124 (license license:gpl3+)))
bf0018cd 125
490c6528
JD
126(define-public gnubik
127 (package
128 (name "gnubik")
e736cfce 129 (version "2.4.2")
490c6528
JD
130 (source
131 (origin
132 (method url-fetch)
133 (uri (string-append "mirror://gnu/gnubik/gnubik-"
134 version ".tar.gz"))
135 (sha256
136 (base32
e736cfce 137 "0mhpfnxzbns0wfrsjv5vafqr34770rbvkmdzxk0x0aq67hb3zyl5"))))
490c6528
JD
138 (build-system gnu-build-system)
139 (inputs `(("gtk+" ,gtk+-2)
140 ("mesa" ,mesa)
276a8f71 141 ("glu" ,glu)
490c6528
JD
142 ("libx11" ,libx11)
143 ("guile" ,guile-2.0)
144 ("gtkglext" ,gtkglext)))
145 (native-inputs `(("gettext" ,gnu-gettext)
146 ("pkg-config" ,pkg-config)))
147 (home-page "https://www.gnu.org/software/gnubik/")
e67f5551
LC
148 (synopsis "3d Rubik's cube game")
149 (description
150 "GNUbik is a puzzle game in which you must manipulate a cube to make
490c6528
JD
151each of its faces have a uniform color. The game is customizable, allowing
152you to set the size of the cube (the default is 3x3) or to change the colors.
c5779c93 153You may even apply photos to the faces instead of colors. The game is
490c6528 154scriptable with Guile.")
024e2c17 155 (license license:gpl3+)))
3da5dca3
DT
156
157(define-public abbaye
158 (package
159 (name "abbaye")
160 (version "1.13")
161 (source
162 (origin
163 (method url-fetch)
a124bbd2
SB
164 (uri (string-append "http://abbaye-for-linux.googlecode.com/files/"
165 "abbaye-for-linux-src-" version ".tar.gz"))
3da5dca3
DT
166 (sha256
167 (base32
168 "1wgvckgqa2084rbskxif58wbb83xbas8s1i8s7d57xbj08ryq8rk"))))
169 (build-system gnu-build-system)
170 (arguments
171 '(#:modules ((ice-9 match)
172 (guix build gnu-build-system)
173 (guix build utils))
aec05972
AK
174 #:phases (modify-phases %standard-phases
175 (add-after 'set-paths 'set-sdl-paths
61599438
AK
176 (lambda* (#:key inputs #:allow-other-keys)
177 (setenv "CPATH"
178 (string-append (assoc-ref inputs "sdl-union")
179 "/include/SDL"))))
aec05972
AK
180 (add-after 'patch-source-shebangs 'patch-makefile
181 (lambda* (#:key outputs #:allow-other-keys)
182 ;; Replace /usr with package output directory.
183 (for-each (lambda (file)
184 (substitute* file
185 (("/usr") (assoc-ref outputs "out"))))
186 '("makefile" "src/pantallas.c" "src/comun.h"))))
187 (add-before 'install 'make-install-dirs
188 (lambda* (#:key outputs #:allow-other-keys)
189 (let ((prefix (assoc-ref outputs "out")))
190 ;; Create directories that the makefile assumes exist.
191 (mkdir-p (string-append prefix "/bin"))
192 (mkdir-p (string-append prefix "/share/applications"))
193 (mkdir-p (string-append prefix "/share/pixmaps")))))
194 ;; No configure script.
195 (delete 'configure))
3da5dca3
DT
196 #:tests? #f)) ;; No check target.
197 (native-inputs `(("pkg-config" ,pkg-config)))
61599438 198 (inputs `(("sdl-union" ,(sdl-union))))
3da5dca3
DT
199 (home-page "http://code.google.com/p/abbaye-for-linux/")
200 (synopsis "GNU/Linux port of the indie game \"l'Abbaye des Morts\"")
201 (description "L'Abbaye des Morts is a 2D platform game set in 13th century
202France. The Cathars, who preach about good Christian beliefs, were being
203expelled by the Catholic Church out of the Languedoc region in France. One of
204them, called Jean Raymond, found an old church in which to hide, not knowing
205that beneath its ruins lay buried an ancient evil.")
024e2c17 206 (license license:gpl3+)))
a83c6a64
EB
207
208(define-public pingus
209 (package
210 (name "pingus")
211 (version "0.7.6")
212 (source
213 (origin
214 (method url-fetch)
215 (uri (string-append "http://pingus.googlecode.com/files/pingus-"
216 version ".tar.bz2"))
217 (sha256
218 (base32
219 "0q34d2k6anzqvb0mf67x85q92lfx9jr71ry13dlp47jx0x9i573m"))
220 (patches (list (search-patch "pingus-sdl-libs-config.patch")))))
221 (build-system gnu-build-system)
222 (native-inputs `(("pkg-config" ,pkg-config)
223 ("scons" ,scons)))
224 (inputs `(("sdl" ,sdl)
225 ("sdl-image" ,sdl-image)
226 ("sdl-mixer" ,sdl-mixer)
227 ("mesa" ,mesa)
00c09300 228 ("glu" ,glu)
a83c6a64
EB
229 ("libpng" ,libpng)
230 ("boost" ,boost)))
231 (arguments
232 '(#:tests? #f ;no check target
233 #:phases
234 (alist-delete
235 'configure
236 (alist-replace
237 'install
238 (lambda* (#:key outputs #:allow-other-keys)
239 (zero? (system* "make" "install"
240 (string-append "PREFIX="
241 (assoc-ref outputs "out")))))
242 %standard-phases))))
243 (home-page "http://pingus.seul.org/welcome.html")
244 (synopsis "Lemmings clone")
245 (description
246 "Pingus is a free Lemmings-like puzzle game in which the player takes
247command of a bunch of small animals and has to guide them through levels.
248Since the animals walk on their own, the player can only influence them by
249giving them commands, like build a bridge, dig a hole, or redirect all animals
250in the other direction. Multiple such commands are necessary to reach the
251level's exit. The game is presented in a 2D side view.")
252 ;; Some source files are under bsd-3 and gpl2+ licenses.
024e2c17 253 (license license:gpl3+)))
dff62423
JD
254
255(define-public talkfilters
256 (package
257 (name "talkfilters")
258 (version "2.3.8")
259 (source
260 (origin
261 (method url-fetch)
262 (uri (string-append "http://www.hyperrealm.com/" name "/"
10903356 263 name "-" version ".tar.gz"))
dff62423
JD
264 (sha256
265 (base32 "19nc5vq4bnkjvhk8srqddzhcs93jyvpm9r6lzjzwc1mgf08yg0a6"))))
266 (build-system gnu-build-system)
267 (home-page "http://www.gnu.org/software/talkfilters")
268 (synopsis "Convert English text to humorous dialects")
269 (description "The GNU Talk Filters are programs that convert English text
270into stereotyped or otherwise humorous dialects. The filters are provided as
271a C library, so they can easily be integrated into other programs.")
024e2c17
DT
272 (license license:gpl2+)))
273
3cf118a1
CS
274(define-public cmatrix
275 (package
276 (name "cmatrix")
277 (version "1.2a")
278 (source
279 (origin
280 (method url-fetch)
281 (uri (string-append "http://www.asty.org/cmatrix/dist/cmatrix-" version
282 ".tar.gz"))
283 (sha256
284 (base32
285 "0k06fw2n8nzp1pcdynhajp5prba03gfgsbj91bknyjr5xb5fd9hz"))))
286 (build-system gnu-build-system)
287 (arguments
288 '(#:phases
289 (alist-replace 'configure
290 (lambda* (#:key outputs #:allow-other-keys)
291 ;; This old `configure' script doesn't support
292 ;; variables passed as arguments.
293 (let ((out (assoc-ref outputs "out")))
294 (setenv "CONFIG_SHELL" (which "bash"))
295 (zero?
296 (system* "./configure"
297 (string-append "--prefix=" out)))))
298 %standard-phases)))
299 (inputs `(("ncurses" ,ncurses)))
07af3e5e 300 (home-page "http://www.asty.org/cmatrix")
3cf118a1
CS
301 (synopsis "Simulate the display from \"The Matrix\"")
302 (description "CMatrix simulates the display from \"The Matrix\" and is
303based on the screensaver from the movie's website. It works with terminal
304settings up to 132x300 and can scroll lines all at the same rate or
305asynchronously and at a user-defined speed.")
024e2c17 306 (license license:gpl2+)))
ae9cb418
JD
307
308(define-public chess
309 (package
310 (name "chess")
830d170e 311 (version "6.2.2")
ae9cb418
JD
312 (source
313 (origin
314 (method url-fetch)
315 (uri (string-append "mirror://gnu/chess/gnuchess-" version
316 ".tar.gz"))
317 (sha256
318 (base32
830d170e 319 "1a41ag03q66pwy3pjrmbxxjpzi9fcaiiaiywd7m9v25mxqac2xkp"))))
ae9cb418 320 (build-system gnu-build-system)
07af3e5e 321 (home-page "http://www.gnu.org/software/chess")
ae9cb418
JD
322 (synopsis "Full chess implementation")
323 (description "GNU Chess is a chess engine. It allows you to compete
324against the computer in a game of chess, either through the default terminal
325interface or via an external visual interface such as GNU XBoard.")
024e2c17 326 (license license:gpl3+)))
ae9cb418 327
a6b55314 328(define freedink-engine
bb3b71ce
SB
329 (package
330 (name "freedink-engine")
331 (version "108.4")
332 (source (origin
333 (method url-fetch)
334 (uri (string-append "mirror://gnu/freedink/freedink-" version
335 ".tar.gz"))
336 (sha256
337 (base32
338 "08c51imfjfcydm7h0va09z8qfw5nc837bi2x754ni2z737hb5kw2"))))
339 (build-system gnu-build-system)
340 (arguments `(#:configure-flags '("--disable-embedded-resources")))
341 (native-inputs `(("gettext" ,gnu-gettext)
342 ("pkg-config" ,pkg-config)))
343 (inputs `(("sdl" ,sdl)
344 ("sdl-image" ,sdl-image)
345 ("sdl-mixer" ,sdl-mixer)
346 ("sdl-ttf" ,sdl-ttf)
347 ("sdl-gfx" ,sdl-gfx)
348 ("fontconfig" ,fontconfig)
349 ("check" ,check)))
350 (home-page "http://www.gnu.org/software/freedink/")
351 (synopsis "Twisted adventures of young pig farmer Dink Smallwood")
352 (description
353 "GNU FreeDink is a free and portable re-implementation of the engine
354for the role-playing game Dink Smallwood. It supports not only the original
355game data files but it also supports user-produced game mods or \"D-Mods\".
356To that extent, it also includes a front-end for managing all of your D-Mods.")
024e2c17 357 (license license:gpl3+)))
bb3b71ce 358
a6b55314 359(define freedink-data
bb3b71ce
SB
360 (package
361 (name "freedink-data")
362 (version "1.08.20140901")
363 (source (origin
364 (method url-fetch)
365 (uri (string-append "mirror://gnu/freedink/freedink-data-"
366 version ".tar.gz"))
367 (sha256
368 (base32
369 "04f1aa8gfz30qkgv7chjz5n1s8v5hbqs01h2113cq1ylm3isd5sp"))))
370 (build-system gnu-build-system)
371 (arguments
372 `(#:phases (alist-delete 'configure (alist-delete 'check %standard-phases))
373 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))))
374 (home-page "http://www.gnu.org/software/freedink/")
375 (synopsis "Game data for GNU Freedink")
376 (description
377 "This package contains the game data of GNU Freedink.")
024e2c17 378 (license license:gpl3+)))
bb3b71ce
SB
379
380;; TODO: Add freedink-dfarc when there's a wxWidgets package.
381
a6b55314
LC
382(define-public freedink
383 ;; This is a wrapper that tells the engine where to find the data.
384 (package (inherit freedink-engine)
385 (name "freedink")
386 (build-system trivial-build-system)
387 (arguments
388 '(#:builder (begin
389 (use-modules (guix build utils))
390
391 (let* ((output (assoc-ref %outputs "out"))
392 (bin (string-append output "/bin"))
393 (executable (string-append bin "/freedink")))
394 (mkdir-p bin)
395 (call-with-output-file executable
396 (lambda (port)
397 (format port "#!~a/bin/sh
398exec ~a/bin/freedink -refdir ~a/share/dink\n"
399 (assoc-ref %build-inputs "bash")
400 (assoc-ref %build-inputs "engine")
401 (assoc-ref %build-inputs "data"))
402 (chmod port #o777)))))
403 #:modules ((guix build utils))))
404 (inputs `(("engine" ,freedink-engine)
405 ("data" ,freedink-data)
406 ("bash" ,bash)))
407 (native-inputs '())))
408
ae9cb418
JD
409(define-public xboard
410 (package
411 (name "xboard")
0565587c 412 (version "4.8.0")
ae9cb418
JD
413 (source
414 (origin
415 (method url-fetch)
416 (uri (string-append "mirror://gnu/xboard/xboard-" version
417 ".tar.gz"))
418 (sha256
419 (base32
0565587c 420 "05rdj0nyirc4g1qi5hhrjy45y52ihp1j3ldq2c5bwrz0gzy4i3y8"))))
ae9cb418 421 (build-system gnu-build-system)
ae9cb418
JD
422 (inputs `(("cairo" ,cairo)
423 ("librsvg" ,librsvg)
424 ("libxt" ,libxt)
425 ("libxaw" ,libxaw)))
426 (native-inputs `(("texinfo" ,texinfo)
427 ("pkg-config" ,pkg-config)))
428 (home-page "http://www.gnu.org/software/xboard")
429 (synopsis "Graphical user interface for chess programs")
430 (description "GNU XBoard is a graphical board for all varieties of chess,
431including international chess, xiangqi (Chinese chess), shogi (Japanese chess)
432and Makruk. Several lesser-known variants are also supported. It presents a
433fully interactive graphical interface and it can load and save games in the
434Portable Game Notation.")
024e2c17 435 (license license:gpl3+)))
11c38cbe
JD
436
437
438(define-public xboing
439 (package
440 (name "xboing")
441 (version "2.4")
442 (source
443 (origin
444 (method url-fetch)
445 (uri (string-append "http://www.techrescue.org/xboing/xboing"
446 version ".tar.gz"))
447 (sha256
448 (base32 "16m2si8wmshxpifk861vhpqviqxgcg8bxj6wfw8hpnm4r2w9q0b7"))))
449 (arguments
450 `(#:tests? #f
451 #:phases
452 (alist-replace
10903356 453 'configure
11c38cbe 454 (lambda* (#:key outputs #:allow-other-keys)
10903356
AE
455
456 (substitute* "Imakefile"
11c38cbe
JD
457 (("XPMINCLUDE[\t ]*= -I/usr/X11/include/X11")
458 (string-append "XPMINCLUDE = -I" (assoc-ref %build-inputs "libxpm")
459 "/include/X11")))
10903356
AE
460
461 (substitute* "Imakefile"
11c38cbe 462 (("XBOING_DIR = \\.") "XBOING_DIR=$(PROJECTROOT)"))
10903356 463
11c38cbe 464 ;; FIXME: HIGH_SCORE_FILE should be set to somewhere writeable
10903356
AE
465
466 (zero? (system* "xmkmf" "-a"
467 (string-append "-DProjectRoot="
11c38cbe
JD
468 (assoc-ref outputs "out")))))
469 (alist-replace 'install
470 (lambda* (#:key outputs #:allow-other-keys)
471 (and
472 (zero? (system* "make" "install.man"))
473 (zero? (system* "make" "install"))))
474 %standard-phases))))
475 (inputs `(("libx11" ,libx11)
476 ("libxext" ,libxext)
477 ("libxpm" ,libxpm)))
478 (native-inputs `(("imake" ,imake)
479 ("inetutils" ,inetutils)
480 ("makedepend" ,makedepend)))
481 (build-system gnu-build-system)
482 (home-page "http://www.techrescue.org/xboing")
483 (synopsis "Ball and paddle game")
484 (description "XBoing is a blockout type game where you have a paddle which
485you control to bounce a ball around the game zone destroying blocks with a
35b9e423
EB
486proton ball. Each block carries a different point value. The more blocks you
487destroy, the better your score. The person with the highest score wins.")
024e2c17
DT
488 (license (license:x11-style "file://COPYING"
489 "Very similar to the X11 licence."))))
a21b42e2
SB
490
491(define-public gtypist
492 (package
493 (name "gtypist")
494 (version "2.9.5")
495 (source (origin
496 (method url-fetch)
497 (uri (string-append "mirror://gnu/gtypist/gtypist-"
498 version ".tar.xz"))
499 (sha256
500 (base32
501 "0xzrkkmj0b1dw3yr0m9hml2y634cc4h61im6zwcq57s7285z8fn1"))
502 (modules '((guix build utils)))
503 (snippet
504 ;; We do not provide `ncurses.h' within an `ncursesw'
505 ;; sub-directory, so patch the source accordingly. See
506 ;; <http://bugs.gnu.org/19018>.
507 '(for-each (lambda (file)
508 (substitute* file
509 (("ncursesw/ncurses.h")
510 "ncurses.h")))
511 (find-files "." "configure$|\\.c$")))))
512 (build-system gnu-build-system)
513 (inputs `(("ncurses" ,ncurses)
514 ("perl" ,perl)))
515 (home-page "http://www.gnu.org/software/gtypist/")
516 (synopsis "Typing tutor")
517 (description
518 "GNU Typist is a universal typing tutor. It can be used to learn and
519practice touch-typing. Several tutorials are included; in addition to
520tutorials for the standard QWERTY layout, there are also tutorials for the
521alternative layouts Dvorak and Colemak, as well as for the numpad. Tutorials
522are primarily in English, however some in other languages are provided.")
024e2c17 523 (license license:gpl3+)))
13d18626 524
024e2c17
DT
525(define-public irrlicht
526 (package
527 (name "irrlicht")
528 (version "1.8.1")
529 (source (origin
530 (method url-fetch)
531 (uri (string-append
532 "mirror://sourceforge/irrlicht/Irrlicht%20SDK/"
533 (version-major+minor version)
534 "/" version "/irrlicht-" version ".zip"))
535 (sha256
536 (base32
537 "0yz9lvsc8aqk8wj4rnpanxrw90gqpwn9w5hxp94r8hnm2q0vjjw1"))))
538 (build-system gnu-build-system)
539 (arguments
540 '(#:phases (alist-cons-after
541 'unpack 'fix-build-env
542 (lambda* (#:key outputs #:allow-other-keys)
543 (let ((out (assoc-ref outputs "out")))
544 (substitute* "Makefile"
545 (("INSTALL_DIR = /usr/local/lib")
546 (string-append "INSTALL_DIR = " out "/lib")))
547 ;; The Makefile assumes these directories exist.
548 (mkdir-p (string-append out "/lib"))
549 (mkdir-p (string-append out "/include"))))
550 (alist-replace
551 'unpack
552 (lambda* (#:key source #:allow-other-keys)
553 (and (zero? (system* "unzip" source))
554 ;; The actual source is buried a few directories deep.
555 (chdir "irrlicht-1.8.1/source/Irrlicht/")))
977736fc
MW
556 (alist-cons-after
557 'unpack 'apply-patch/mesa-10-fix
558 (lambda* (#:key inputs #:allow-other-keys)
559 (zero? (system* "patch" "--force" "-p3" "-i"
560 (assoc-ref inputs "patch/mesa-10-fix"))))
561 ;; No configure script
562 (alist-delete 'configure %standard-phases))))
024e2c17
DT
563 #:tests? #f ; no check target
564 #:make-flags '("CC=gcc" "sharedlib")))
565 (native-inputs
977736fc
MW
566 `(("patch/mesa-10-fix" ,(search-patch "irrlicht-mesa-10.patch"))
567 ("unzip" ,unzip)))
024e2c17 568 (inputs
977736fc
MW
569 `(("mesa" ,mesa)
570 ("glu" ,glu)))
024e2c17
DT
571 (synopsis "3D game engine written in C++")
572 (description
573 "The Irrlicht Engine is a high performance realtime 3D engine written in
574C++. Features include an OpenGL renderer, extensible materials, scene graph
575management, character animation, particle and other special effects, support
576for common mesh file formats, and collision detection.")
577 (home-page "http://irrlicht.sourceforge.net/")
578 (license license:zlib)))
7e51e5bc 579
c23c50c7
RW
580(define-public mars
581 ;; The latest release on SourceForge relies on an unreleased version of SFML
582 ;; with a different API, so we take the latest version from the official
583 ;; repository on Github.
584 (let ((commit "c855d04409")
585 (revision "1"))
586 (package
587 (name "mars")
588 (version (string-append "0.7.5." revision "." commit ))
589 (source (origin
590 (method git-fetch)
591 (uri (git-reference
592 (url "https://github.com/thelaui/M.A.R.S..git")
593 (commit commit)))
594 (file-name (string-append name "-" version))
595 (sha256
596 (base32
597 "1r4c5gap1z2zsv4yjd34qriqkxaq4lb4rykapyzkkdf4g36lc3nh"))
598 (patches (list (search-patch "mars-sfml-2.3.patch")
599 (search-patch "mars-install.patch")))))
600 (build-system cmake-build-system)
601 (arguments
602 `(#:tests? #f ; There are no tests
603 #:phases
604 (modify-phases %standard-phases
605 (add-after 'unpack 'fix-install-path
606 (lambda _
607 (substitute* "src/CMakeLists.txt"
608 (("\\$\\{CMAKE_INSTALL_PREFIX\\}/games")
609 "${CMAKE_INSTALL_PREFIX}/bin"))
610 #t))
611 (add-after 'unpack 'fix-data-path
612 (lambda* (#:key outputs #:allow-other-keys)
613 (substitute* "src/System/settings.cpp"
614 (("C_dataPath = \"./data/\";")
615 (string-append "C_dataPath = \""
616 (assoc-ref outputs "out")
617 "/share/games/marsshooter/\";")))
618 #t)))))
619 (inputs
620 `(("mesa" ,mesa)
621 ("fribidi" ,fribidi)
622 ("taglib" ,taglib)
623 ("sfml" ,sfml)))
624 (home-page "http://marsshooter.org")
625 (synopsis "2D space shooter")
626 (description
627 "M.A.R.S. is a 2D space shooter with pretty visual effects and
628attractive physics. Players can battle each other or computer controlled
629enemies in different game modes such as space ball, death match, team death
630match, cannon keep, and grave-itation pit.")
631 (license license:gpl3+))))
632
7e51e5bc
DT
633(define minetest-data
634 (package
635 (name "minetest-data")
5708a92a 636 (version "0.4.13")
7e51e5bc
DT
637 (source (origin
638 (method url-fetch)
639 (uri (string-append
640 "https://github.com/minetest/minetest_game/archive/"
641 version ".tar.gz"))
f586c877 642 (file-name (string-append name "-" version ".tar.gz"))
7e51e5bc
DT
643 (sha256
644 (base32
5708a92a 645 "04xnyfap75v3p818kpqb07xshqwqzpws5xjvw5m96qnd9x4725ld"))))
7e51e5bc
DT
646 (build-system trivial-build-system)
647 (native-inputs
648 `(("source" ,source)
649 ("tar" ,tar)
650 ("gzip" ,(@ (gnu packages compression) gzip))))
651 (arguments
652 `(#:modules ((guix build utils))
653 #:builder (begin
654 (use-modules (guix build utils))
655 (let ((tar (string-append (assoc-ref %build-inputs "tar")
656 "/bin/tar"))
657 (install-dir (string-append
658 %output
659 "/share/minetest/games/minetest_game"))
660 (path (string-append (assoc-ref %build-inputs
661 "gzip")
662 "/bin")))
663 (setenv "PATH" path)
664 (system* tar "xvf" (assoc-ref %build-inputs "source"))
665 (chdir (string-append "minetest_game-" ,version))
666 (mkdir-p install-dir)
667 (copy-recursively "." install-dir)))))
668 (synopsis "Main game data for the Minetest game engine")
669 (description
670 "Game data for the Minetest infinite-world block sandox game.")
671 (home-page "http://minetest.net")
672 (license license:lgpl2.1+)))
6e206ac7
DT
673
674(define-public minetest
675 (package
676 (name "minetest")
5708a92a 677 (version "0.4.13")
6e206ac7
DT
678 (source (origin
679 (method url-fetch)
680 (uri (string-append
681 "https://github.com/minetest/minetest/archive/"
682 version ".tar.gz"))
f586c877 683 (file-name (string-append name "-" version ".tar.gz"))
6e206ac7
DT
684 (sha256
685 (base32
5708a92a 686 "1xzrvsg0fpbj5p4pz6lls11m3ab4y2bnjlsm4gnw68x9006ffznp"))))
6e206ac7
DT
687 (build-system cmake-build-system)
688 (arguments
10903356
AE
689 '(#:configure-flags
690 (list "-DRUN_IN_PLACE=0"
691 "-DENABLE_FREETYPE=1"
692 "-DENABLE_GETTEXT=1"
693 (string-append "-DIRRLICHT_INCLUDE_DIR="
694 (assoc-ref %build-inputs "irrlicht")
695 "/include/irrlicht")
696 (string-append "-DCURL_INCLUDE_DIR="
697 (assoc-ref %build-inputs "curl")
698 "/include/curl"))
6e206ac7
DT
699 #:tests? #f)) ; no check target
700 (native-search-paths
701 (list (search-path-specification
702 (variable "MINETEST_SUBGAME_PATH")
af070955 703 (files '("share/minetest/games")))))
6e206ac7
DT
704 (native-inputs
705 `(("pkg-config" ,pkg-config)))
706 (inputs
707 `(("irrlicht" ,irrlicht)
708 ("libpng" ,libpng)
c463dd47 709 ("libjpeg" ,libjpeg)
6e206ac7
DT
710 ("libxxf86vm" ,libxxf86vm)
711 ("mesa" ,mesa)
712 ("libogg" ,libogg)
713 ("libvorbis" ,libvorbis)
714 ("openal" ,openal)
715 ("freetype" ,(@ (gnu packages fontutils) freetype))
716 ("curl" ,curl)
717 ("luajit" ,luajit)
718 ("gettext" ,gnu-gettext)
719 ("sqlite" ,sqlite)))
720 (propagated-inputs
721 `(("minetest-data" ,minetest-data)))
722 (synopsis "Infinite-world block sandbox game")
723 (description
724 "Minetest is a sandbox construction game. Players can create and destroy
725various types of blocks in a three-dimensional open world. This allows
726forming structures in every possible creation, on multiplayer servers or as a
727single player. Mods and texture packs allow players to personalize the game
728in different ways.")
729 (home-page "http://minetest.net")
730 (license license:lgpl2.1+)))
77264d15
SB
731
732(define glkterm
733 (package
734 (name "glkterm")
735 (version "1.0.4")
736 (source
737 (origin
738 (method url-fetch)
739 (uri (string-append "http://www.ifarchive.org/if-archive/programming/"
740 "glk/implementations/glkterm-104.tar.gz"))
741 (sha256
742 (base32
743 "0zlj9nlnkdlvgbiliczinirqygiq8ikg5hzh5vgcmnpg9pvnwga7"))))
744 (build-system gnu-build-system)
745 (propagated-inputs `(("ncurses" ,ncurses))) ; required by Make.glkterm
746 (arguments
747 '(#:tests? #f ; no check target
748 #:phases
749 (alist-replace
750 'install
751 (lambda* (#:key outputs #:allow-other-keys)
752 (let* ((out (assoc-ref outputs "out"))
753 (inc (string-append out "/include")))
754 (mkdir-p inc)
755 (for-each
756 (lambda (file)
757 (copy-file file (string-append inc "/" file)))
758 '("glk.h" "glkstart.h" "gi_blorb.h" "gi_dispa.h" "Make.glkterm"))
759 (mkdir (string-append out "/lib"))
760 (copy-file "libglkterm.a" (string-append out "/lib/libglkterm.a"))))
761 (alist-delete 'configure %standard-phases))))
762 (home-page "http://www.eblong.com/zarf/glk/")
763 (synopsis "Curses Implementation of the Glk API")
764 (description
765 "Glk defines a portable API for applications with text UIs. It was
766primarily designed for interactive fiction, but it should be suitable for many
767interactive text utilities, particularly those based on a command line.
768This is an implementation of the Glk library which runs in a terminal window,
769using the curses.h library for screen control.")
770 (license (license:fsf-free "file://README"))))
771
772(define-public glulxe
773 (package
774 (name "glulxe")
775 (version "0.5.2")
776 (source
777 (origin
778 (method url-fetch)
779 (uri (string-append "http://www.ifarchive.org/if-archive/programming/"
780 "glulx/interpreters/glulxe/glulxe-052.tar.gz"))
781 (sha256
782 (base32
783 "19iw6kl8ncqcy9pv4gsqfh3xsa1n94zd234rqavvmxccnf3nj19g"))))
784 (build-system gnu-build-system)
785 (inputs `(("glk" ,glkterm)))
786 (arguments
787 '(#:tests? #f ; no check target
788 #:make-flags
789 (let* ((glk (assoc-ref %build-inputs "glk")))
790 (list (string-append "GLKINCLUDEDIR=" glk "/include")
791 (string-append "GLKLIBDIR=" glk "/lib")
792 (string-append "GLKMAKEFILE=" "Make.glkterm")))
793 #:phases
794 (alist-replace
795 'install
796 (lambda* (#:key outputs #:allow-other-keys)
797 (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
798 (mkdir-p bin)
799 (copy-file "glulxe" (string-append bin "/glulxe"))))
800 (alist-delete 'configure %standard-phases))))
801 (home-page "http://www.eblong.com/zarf/glulx/")
802 (synopsis "Interpreter for Glulx VM")
803 (description
804 "Glulx is a 32-bit portable virtual machine intended for writing and
805playing interactive fiction. It was designed by Andrew Plotkin to relieve
806some of the restrictions in the venerable Z-machine format. This is the
807reference interpreter, using Glk API.")
808 (license (license:fsf-free "file://README"))))
72b703cd 809
35481e8b
SB
810(define-public fizmo
811 (package
812 (name "fizmo")
813 (version "0.7.9")
814 (source (origin
815 (method url-fetch)
816 (uri (string-append "https://christoph-ender.de/fizmo/source/"
817 name "-" version ".tar.gz"))
818 (sha256
819 (base32
820 "1w7cgyjrhgkadjrazijzhq7zh0pl5bfc6wl7mdpgh020y4kp46d7"))))
821 (build-system gnu-build-system)
822 (arguments
823 '(#:configure-flags
824 (let ((libjpeg (assoc-ref %build-inputs "libjpeg"))
825 (ncurses (assoc-ref %build-inputs "ncurses")))
826 (list (string-append "jpeg_CFLAGS=-I" libjpeg "/include")
827 (string-append "jpeg_LIBS=-ljpeg")
828 (string-append "ncursesw_CFLAGS=-I" ncurses "/include")
829 (string-append "ncursesw_LIBS=-lncursesw")))))
830 (native-inputs
831 `(("pkg-config" ,pkg-config)))
832 (inputs
833 `(("libjpeg" ,libjpeg)
834 ("libpng" ,libpng)
835 ("libsndfile" ,libsndfile)
836 ("libxml2" ,libxml2)
837 ("ncurses" ,ncurses)
838 ("sdl" ,sdl)))
839 (home-page "https://christoph-ender.de/fizmo/")
840 (synopsis "Z-machine interpreter")
841 (description
842 "Fizmo is a console-based Z-machine interpreter. It is used to play
e881752c 843interactive fiction, also known as text adventures, which were implemented
35481e8b
SB
844either by Infocom or created using the Inform compiler.")
845 (license license:bsd-3)))
846
72b703cd
SB
847(define-public retroarch
848 (package
849 (name "retroarch")
3f147010 850 (version "1.2.2")
72b703cd
SB
851 (source
852 (origin
853 (method url-fetch)
3f147010 854 (uri (string-append "https://github.com/libretro/RetroArch/archive/v"
72b703cd 855 version ".tar.gz"))
f586c877 856 (file-name (string-append name "-" version ".tar.gz"))
72b703cd 857 (sha256
3f147010 858 (base32 "1bxr8yhk3ad4df544qljsfjfhxa8zy1grq7rn1s02yfvdmgzf4qi"))))
72b703cd
SB
859 (build-system gnu-build-system)
860 (arguments
861 '(#:tests? #f ; no tests
862 #:phases
863 (alist-replace
864 'configure
865 (lambda _
866 (substitute* "qb/qb.libs.sh"
867 (("/bin/true") (which "true")))
868 (zero? (system*
869 "./configure"
870 (string-append "--prefix=" %output)
871 (string-append "--global-config-dir=" %output "/etc"))))
872 %standard-phases)))
873 (inputs
874 `(("alsa-lib" ,alsa-lib)
875 ("ffmpeg" ,ffmpeg)
876 ("freetype" ,freetype)
877 ("libxinerama" ,libxinerama)
878 ("libxkbcommon" ,libxkbcommon)
879 ("libxml2" ,libxml2)
880 ("libxv" ,libxv)
881 ("mesa" ,mesa)
882 ("openal" ,openal)
883 ("pulseaudio" ,pulseaudio)
884 ("python" ,python)
885 ("sdl" ,sdl2)
886 ("udev" ,eudev)
887 ("zlib" ,zlib)))
888 (native-inputs
889 `(("pkg-config" ,pkg-config)
890 ("which" ,which)))
891 (home-page "http://www.libretro.com/")
892 (synopsis "Reference frontend for the libretro API")
893 (description
894 "Libretro is a simple but powerful development interface that allows for
895the easy creation of emulators, games and multimedia applications that can plug
896straight into any libretro-compatible frontend. RetroArch is the official
897reference frontend for the libretro API, currently used by most as a modular
898multi-system game/emulator system.")
899 (license license:gpl3+)))
fc936b65
DH
900
901(define-public gnugo
902 (package
903 (name "gnugo")
904 (version "3.8")
905 (source (origin
906 (method url-fetch)
907 (uri (string-append "mirror://gnu/gnugo/gnugo-" version
908 ".tar.gz"))
909 (sha256
910 (base32
911 "0wkahvqpzq6lzl5r49a4sd4p52frdmphnqsfdv7gdp24bykdfs6s"))))
912 (build-system gnu-build-system)
913 (inputs `(("readline" ,readline)))
4cc78cb3 914 (synopsis "Play the game of Go")
7c125ce0
AK
915 (description
916 "GNU Go is a program that plays the game of Go, in which players
917place stones on a grid to form territory or capture other stones. While
918it can be played directly from the terminal, rendered in ASCII characters,
919it is also possible to play GNU Go with 3rd party graphical interfaces or
920even in Emacs. It supports the standard game storage format (SGF, Smart
921Game Format) and inter-process communication format (GMP, Go Modem
922Protocol).")
fc936b65
DH
923 (home-page "http://www.gnu.org/software/gnugo/")
924 (license license:gpl3+)))
67fa7a27
CAW
925
926(define-public extremetuxracer
927 (package
928 (name "extremetuxracer")
929 (version "0.6.0")
930 (source (origin
931 (method url-fetch)
932 (uri (string-append
933 "http://downloads.sourceforge.net/project/extremetuxracer/releases/"
934 version "/etr-" version ".tar.xz"))
935 (sha256
936 (base32
937 "0fl9pwkywqnsmgr6plfj9zb05xrdnl5xb2hcmbjk7ap9l4cjfca4"))))
938 (build-system gnu-build-system)
939 (native-inputs
940 `(("pkg-config" ,pkg-config)))
941 (inputs
942 `(("freetype" ,freetype)
943 ("mesa" ,mesa)
944 ("glu" ,glu)
945 ("libice" ,libice)
946 ("libpng" ,libpng)
947 ("sdl" ,sdl)
948 ("sdl-mixer" ,sdl-mixer)
949 ("sdl-image" ,sdl-image)
950 ("libsm" ,libsm)
951 ("libunwind" ,libunwind)
952 ("libx11" ,libx11)
953 ("libxext" ,libxext)
954 ("libxi" ,libxi)
955 ("libxmu" ,libxmu)
956 ("libxt" ,libxt)
957 ("tcl" ,tcl)
958 ("zlib" ,zlib)))
959 (arguments
960 '(#:phases
961 (modify-phases %standard-phases
962 (add-after 'configure 'patch-makefile
963 (lambda _
964 (substitute* "Makefile"
965 (("CXXFLAGS =") "CXXFLAGS = ${CFLAGS}")))))))
966 (synopsis "High speed arctic racing game based on Tux Racer")
967 ;; Snarfed straight from Debian
968 (description "Extreme Tux Racer, or etracer as it is called for short, is
969a simple OpenGL racing game featuring Tux, the Linux mascot. The goal of the
970game is to slide down a snow- and ice-covered mountain as quickly as possible,
971avoiding the trees and rocks that will slow you down.
972
973Collect herrings and other goodies while sliding down the hill, but avoid fish
974bones.
975
976This game is based on the GPL version of the famous game TuxRacer.")
977 (home-page "http://sourceforge.net/projects/extremetuxracer/")
978 (license license:gpl2+)))
7a4d0509
SB
979
980(define-public gnujump
981 (package
982 (name "gnujump")
983 (version "1.0.8")
984 (source (origin
985 (method url-fetch)
986 (uri (string-append "mirror://gnu/gnujump/gnujump-"
987 version ".tar.gz"))
988 (sha256
989 (base32
990 "05syy9mzbyqcfnm0hrswlmhwlwx54f0l6zhcaq8c1c0f8dgzxhqk"))))
991 (build-system gnu-build-system)
992 (arguments
993 '(#:phases
994 (modify-phases %standard-phases
995 (add-before
996 'configure 'link-libm
997 (lambda _ (setenv "LIBS" "-lm"))))))
998 (inputs
999 `(("glu" ,glu)
1000 ("mesa", mesa)
1001 ("sdl" ,sdl)
1002 ("sdl-image" ,sdl-image)
1003 ("sdl-mixer" ,sdl-mixer)))
1004 (home-page "http://gnujump.es.gnu.org/")
1005 (synopsis
1006 "Game of jumping to the next floor, trying not to fall")
1007 (description
1008 "GNUjump is a simple, yet addictive game in which you must jump from
1009platform to platform to avoid falling, while the platforms drop at faster rates
1010the higher you go. The game features multiplayer, unlimited FPS, smooth floor
1011falling, themeable graphics and sounds, and replays.")
1012 (license license:gpl3+)))
159093a7
SB
1013
1014(define-public wesnoth
1015 (package
1016 (name "wesnoth")
1017 (version "1.12.4")
1018 (source (origin
1019 (method url-fetch)
1020 (uri (string-append "mirror://sourceforge/wesnoth/"
1021 name "-" version ".tar.bz2"))
1022 (sha256
1023 (base32
1024 "19qyylylaljhk45lk2ja0xp7cx9iy4hx07l65zkg20a2v9h50lmz"))))
1025 (build-system cmake-build-system)
1026 (arguments
1027 '(#:tests? #f ; no check target
1028 #:configure-flags
1029 ;; XXX: Failed to compile with '-Werror=old-style-cast'.
1030 ;; boost/mpl/assert.hpp:313:58: error:
1031 ;; use of old-style cast [-Werror=old-style-cast]
1032 ;; [...]
1033 ;; cc1plus: all warnings being treated as errors
1034 '("-DENABLE_STRICT_COMPILATION=OFF")))
1035 (native-inputs
1036 `(("gettext" ,gnu-gettext)
1037 ("pkg-config" ,pkg-config)))
1038 (inputs
1039 `(("boost" ,boost)
1040 ("dbus" ,dbus)
1041 ("fribidi" ,fribidi)
1042 ("libvorbis" ,libvorbis)
1043 ("pango" ,pango)
1044 ("sdl-image" ,sdl-image)
1045 ("sdl-mixer" ,sdl-mixer)
1046 ("sdl-net" ,sdl-net)
1047 ("sdl-ttf" ,sdl-ttf)))
1048 (home-page "http://www.wesnoth.org/")
1049 (synopsis "Turn-based strategy game")
1050 (description
1051 "The Battle for Wesnoth is a fantasy, turn based tactical strategy game,
1052with several single player campaigns, and multiplayer games (both networked and
1053local).
1054
1055Battle for control on a range of maps, using variety of units which have
1056advantages and disadvantages against different types of attacks. Units gain
1057experience and advance levels, and are carried over from one scenario to the
1058next campaign.")
1059 (license license:gpl2+)))
c449a076 1060
e11b2752
PW
1061(define-public dosbox
1062 (package
1063 (name "dosbox")
1064 (version "0.74.svn3947")
1065 (source (origin
1066 (method svn-fetch)
1067 (uri (svn-reference
1068 (url "http://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk/")
1069 (revision 3947)))
ff9a5f7e 1070 (file-name (string-append name "-" version "-checkout"))
e11b2752
PW
1071 ;; Use SVN head, since the last release (2010) is incompatible
1072 ;; with GCC 4.8+ (see
1073 ;; <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=624976>).
1074 (sha256
1075 (base32
1076 "1p918j6090d1nkvgq7ifvmn506zrdmyi32y7p3ms40d5ssqjg8fj"))))
1077 (build-system gnu-build-system)
1078 (arguments
1079 `(#:phases (modify-phases %standard-phases
e0a7d364
MW
1080 (add-after
1081 'unpack 'autogen.sh
e11b2752
PW
1082 (lambda _
1083 (zero? (system* "sh" "autogen.sh")))))))
1084 (native-inputs
1085 `(("autoconf" ,autoconf)
1086 ("automake" ,automake)))
1087 (inputs
1088 `(("sdl" ,sdl)
1089 ("libpng" ,libpng)
1090 ("zlib" ,zlib)
1091 ("alsa-lib" ,alsa-lib)
1092 ("glu" ,glu)
1093 ("mesa" ,mesa)))
1094 (home-page "http://www.dosbox.com")
a124bbd2 1095 (synopsis "X86 emulator with CGA/EGA/VGA/etc. graphics and sound")
e11b2752
PW
1096 (description "DOSBox is a DOS-emulator that uses the SDL library. DOSBox
1097also emulates CPU:286/386 realmode/protected mode, Directory
1098FileSystem/XMS/EMS, Tandy/Hercules/CGA/EGA/VGA/VESA graphics, a
1099SoundBlaster/Gravis Ultra Sound card for excellent sound compatibility with
1100older games.")
1101 (license license:gpl2+)))
1102
c449a076
EB
1103(define-public gamine
1104 (package
1105 (name "gamine")
1106 (version "1.4")
1107 (source (origin
1108 (method url-fetch)
1109 (uri (string-append "mirror://sourceforge/gamine-game/"
1110 "gamine-" version ".tar.gz"))
1111 (sha256
1112 (base32
1113 "1iny959i1kl2ab6z5xi4s66mrvrwcarxyvjfp2k1sx532s8knk8h"))))
1114 (build-system gnu-build-system)
1115 (native-inputs
1116 `(("pkg-config" ,pkg-config)
1117 ("intltool" ,intltool)))
1118 (inputs
1119 `(("gstreamer" ,gstreamer)
1120 ("gst-plugins-base" ,gst-plugins-base) ;playbin plugin
1121 ("gst-plugins-good" ,gst-plugins-good) ;for wav playback
1122 ("gtk+" ,gtk+)))
1123 (arguments
1124 `(#:tests? #f
1125 #:make-flags
1126 (let ((out (assoc-ref %outputs "out")))
1127 (list (string-append "PREFIX=" out)
1128 (string-append "SYSCONFDIR=" out "/etc")))
1129 #:phases
1130 (modify-phases %standard-phases
1131 (delete 'configure)
1132 (add-after
1133 'install 'wrap-gamine
1134 (lambda* (#:key outputs #:allow-other-keys)
1135 (let ((out (assoc-ref outputs "out"))
1136 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
1137 (wrap-program (string-append out "/bin/gamine")
1138 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
1139 #t)))))
1140 (home-page "http://gamine-game.sourceforge.net/")
1141 (synopsis "Mouse and keyboard discovery for children")
1142 (description
1143 "Gamine is a game designed for young children who are learning to use the
1144mouse and keyboard. The child uses the mouse to draw colored dots and lines
1145on the screen and keyboard to display letters.")
1146 ;; Most files under gpl2+ or gpl3+, but eat.wav under gpl3
1147 (license license:gpl3)))
1148
aa6f3912
PW
1149(define-public raincat
1150 (package
1151 (name "raincat")
1152 (version "1.1.1.3")
1153 (source
1154 (origin
1155 (method url-fetch)
1156 (uri (string-append
1157 "http://hackage.haskell.org/package/Raincat/Raincat-"
1158 version
1159 ".tar.gz"))
1160 (sha256
1161 (base32
1162 "1aalh68h6799mv4vyg30zpskl5jkn6x2j1jza7p4lrflyifxzar8"))))
1163 (build-system haskell-build-system)
1164 (inputs
1165 `(("ghc-extensible-exceptions" ,ghc-extensible-exceptions)
1166 ("ghc-mtl" ,ghc-mtl)
1167 ("ghc-random" ,ghc-random)
1168 ("ghc-glut" ,ghc-glut)
1169 ("ghc-opengl" ,ghc-opengl)
1170 ("ghc-sdl" ,ghc-sdl)
1171 ("ghc-sdl-image" ,ghc-sdl-image)
1172 ("ghc-sdl-mixer" ,ghc-sdl-mixer)))
1173 (home-page "http://raincat.bysusanlin.com/")
1174 (synopsis "Puzzle game with a cat in lead role")
1175 (description "Project Raincat is a game developed by Carnegie Mellon
1176students through GCS during the Fall 2008 semester. Raincat features game
1177play inspired from classics Lemmings and The Incredible Machine. The project
1178proved to be an excellent learning experience for the programmers. Everything
1179is programmed in Haskell.")
1180 (license license:bsd-3)))
1181
2e2ed3cb
AK
1182(define-public manaplus
1183 (package
1184 (name "manaplus")
4c896c91 1185 (version "1.6.1.16")
2e2ed3cb
AK
1186 (source (origin
1187 (method url-fetch)
1188 (uri (string-append
1189 "http://repo.manaplus.org/manaplus/download/"
1190 version "/manaplus-" version ".tar.xz"))
1191 (sha256
1192 (base32
4c896c91 1193 "1vrsjvdbdzbnqmr8sp110b2d93kp5yfnifsn6zjm60kdvvbphdir"))))
2e2ed3cb
AK
1194 (build-system gnu-build-system)
1195 (arguments
1196 '(#:configure-flags
1197 (list (string-append "CPPFLAGS=-I"
1198 (assoc-ref %build-inputs "sdl-union")
1199 "/include/SDL"))))
1200 (native-inputs
1201 `(("pkg-config" ,pkg-config)))
1202 (inputs
1203 `(("glu" ,glu)
1204 ("curl" ,curl)
1205 ("libxml2" ,libxml2)
1206 ("mesa" ,mesa)
1207 ("physfs" ,physfs)
1208 ("sdl-union" ,(sdl-union))))
1209 (home-page "http://manaplus.org")
1210 (synopsis "Client for 'The Mana World' and similar games")
1211 (description
1212 "ManaPlus is a 2D MMORPG client for game servers. It is the only
1213fully supported client for @uref{http://www.themanaworld.org, The mana
1214world}, @uref{http://evolonline.org, Evol Online} and
1215@uref{http://landoffire.org, Land of fire}.")
1216 ;; "src/debug/*" and "src/sdl2gfx/*" are under Zlib.
1217 ;; "data/themes/{golden-delicious,jewelry}/*" are under CC-BY-SA.
1218 ;; The rest is under GPL2+.
1219 (license (list license:gpl2+ license:zlib license:cc-by-sa4.0))))
03d521f9 1220
0c15230d
TUBK
1221(define-public mupen64plus-core
1222 (package
1223 (name "mupen64plus-core")
1224 (version "2.5")
1225 (source
1226 (origin
1227 (method url-fetch)
1228 (uri (string-append
1229 "https://github.com/mupen64plus/mupen64plus-core/archive/"
1230 version ".tar.gz"))
1231 (file-name (string-append name "-" version ".tar.gz"))
1232 (sha256
1233 (base32 "0dg2hksm5qni2hcha93k7n4fqr92888p946f7phb0ndschzfh9kk"))))
1234 (build-system gnu-build-system)
1235 (native-inputs
1236 `(("pkg-config" ,pkg-config)
1237 ("which" ,which)))
1238 (inputs
1239 `(("freetype" ,freetype)
1240 ("glu" ,glu)
1241 ("libpng" ,libpng)
1242 ("mesa" ,mesa)
1243 ("sdl2" ,sdl2)
1244 ("zlib" ,zlib)))
1245 (arguments
1246 '(#:phases
1247 (modify-phases %standard-phases
1248 ;; The mupen64plus build system has no configure phase.
1249 (delete 'configure)
1250 ;; Makefile is in a subdirectory.
1251 (add-before
1252 'build 'cd-to-project-dir
1253 (lambda _
1254 (chdir "projects/unix"))))
1255 #:make-flags (let ((out (assoc-ref %outputs "out")))
1256 (list "all" (string-append "PREFIX=" out)))
1257 ;; There are no tests.
1258 #:tests? #f))
bff3c670 1259 ;; As per the Makefile (in projects/unix/Makefile):
9c9be348 1260 (supported-systems '("i686-linux" "x86_64-linux"))
0c15230d
TUBK
1261 (home-page "http://www.mupen64plus.org/")
1262 (synopsis "Nintendo 64 emulator core library")
1263 (description
1264 "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
1265which is capable of accurately playing many games. This package contains the
1266core library.")
1267 (license license:gpl2+)))
1268
ac2fe449
TUBK
1269(define-public mupen64plus-audio-sdl
1270 (package
1271 (name "mupen64plus-audio-sdl")
1272 (version "2.5")
1273 (source
1274 (origin
1275 (method url-fetch)
1276 (uri (string-append
1277 "https://github.com/mupen64plus/mupen64plus-audio-sdl/archive/"
1278 version ".tar.gz"))
1279 (file-name (string-append name "-" version ".tar.gz"))
1280 (sha256
1281 (base32 "0ss6w92n2rpfnazhg9lbq0nvs3fqx93nliz3k3wjxdlx4dpi7h3a"))))
1282 (build-system gnu-build-system)
1283 (native-inputs
1284 `(("pkg-config" ,pkg-config)
1285 ("which" ,which)))
1286 (inputs
1287 `(("mupen64plus-core" ,mupen64plus-core)
1288 ("sdl2" ,sdl2)))
1289 (arguments
1290 '(#:phases
1291 (modify-phases %standard-phases
1292 ;; The mupen64plus build system has no configure phase.
1293 (delete 'configure)
1294 ;; Makefile is in a subdirectory.
1295 (add-before
1296 'build 'cd-to-project-dir
1297 (lambda _
1298 (chdir "projects/unix"))))
1299 #:make-flags
1300 (let ((out (assoc-ref %outputs "out"))
1301 (m64p (assoc-ref %build-inputs "mupen64plus-core")))
1302 (list "all"
1303 (string-append "PREFIX=" out)
1304 (string-append "APIDIR=" m64p "/include/mupen64plus")))
1305 ;; There are no tests.
1306 #:tests? #f))
1307 (home-page "http://www.mupen64plus.org/")
1308 (synopsis "Mupen64Plus SDL input plugin")
1309 (description
1310 "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
1311which is capable of accurately playing many games. This package contains the
1312SDL audio plugin.")
1313 (license license:gpl2+)))
1314
d07f0ebb
TUBK
1315(define-public mupen64plus-input-sdl
1316 (package
1317 (name "mupen64plus-input-sdl")
1318 (version "2.5")
1319 (source
1320 (origin
1321 (method url-fetch)
1322 (uri (string-append
1323 "https://github.com/mupen64plus/mupen64plus-input-sdl/archive/"
1324 version ".tar.gz"))
1325 (file-name (string-append name "-" version ".tar.gz"))
1326 (sha256
1327 (base32 "11sj5dbalp2nrlmki34vy7wy28vc175pnnkdk65p8599hnyq37ri"))))
1328 (build-system gnu-build-system)
1329 (native-inputs
1330 `(("which" ,which)))
1331 (inputs
1332 `(("mupen64plus-core" ,mupen64plus-core)
1333 ("sdl2" ,sdl2)))
1334 (arguments
1335 '(#:phases
1336 (modify-phases %standard-phases
1337 ;; The mupen64plus build system has no configure phase.
1338 (delete 'configure)
1339 ;; Makefile is in a subdirectory.
1340 (add-before
1341 'build 'cd-to-project-dir
1342 (lambda _
1343 (chdir "projects/unix"))))
1344 #:make-flags
1345 (let ((out (assoc-ref %outputs "out"))
1346 (m64p (assoc-ref %build-inputs "mupen64plus-core")))
1347 (list "all"
1348 (string-append "PREFIX=" out)
1349 (string-append "APIDIR=" m64p "/include/mupen64plus")))
1350 ;; There are no tests.
1351 #:tests? #f))
1352 (home-page "http://www.mupen64plus.org/")
1353 (synopsis "Mupen64Plus SDL input plugin")
1354 (description
1355 "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
1356which is capable of accurately playing many games. This package contains the
1357SDL input plugin.")
1358 (license license:gpl2+)))
1359
3b3358be
TUBK
1360(define-public mupen64plus-rsp-hle
1361 (package
1362 (name "mupen64plus-rsp-hle")
1363 (version "2.5")
1364 (source
1365 (origin
1366 (method url-fetch)
1367 (uri (string-append
1368 "https://github.com/mupen64plus/mupen64plus-rsp-hle/archive/"
1369 version ".tar.gz"))
1370 (file-name (string-append name "-" version ".tar.gz"))
1371 (sha256
1372 (base32 "15h7mgz6xd2zjzm6l3f96sbs8kwr3xvbwzgikhnka79m6c69hsxv"))))
1373 (build-system gnu-build-system)
1374 (inputs
1375 `(("mupen64plus-core" ,mupen64plus-core)))
1376 (arguments
1377 '(#:phases
1378 (modify-phases %standard-phases
1379 ;; The mupen64plus build system has no configure phase.
1380 (delete 'configure)
1381 ;; Makefile is in a subdirectory.
1382 (add-before
1383 'build 'cd-to-project-dir
1384 (lambda _
1385 (chdir "projects/unix"))))
1386 #:make-flags
1387 (let ((out (assoc-ref %outputs "out"))
1388 (m64p (assoc-ref %build-inputs "mupen64plus-core")))
1389 (list "all"
1390 (string-append "PREFIX=" out)
1391 (string-append "APIDIR=" m64p "/include/mupen64plus")))
1392 ;; There are no tests.
1393 #:tests? #f))
1394 (home-page "http://www.mupen64plus.org/")
1395 (synopsis "Mupen64Plus SDL input plugin")
1396 (description
1397 "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
1398which is capable of accurately playing many games. This package contains the
1399high-level emulation (HLE) RSP processor plugin.")
1400 (license license:gpl2+)))
1401
50afcd1f
TUBK
1402(define-public mupen64plus-rsp-z64
1403 (package
1404 (name "mupen64plus-rsp-z64")
1405 (version "2.0.0")
1406 (source
1407 (origin
1408 (method url-fetch)
1409 (uri (string-append
1410 "https://github.com/mupen64plus/mupen64plus-rsp-z64/archive/"
1411 version ".tar.gz"))
1412 (file-name (string-append name "-" version ".tar.gz"))
1413 (sha256
1414 (base32 "10jz1w2dhx5slhyk4m8mdqlpsd6cshchslr1fckb2ayzb1ls3ghi"))))
1415 (build-system gnu-build-system)
1416 (inputs
1417 `(("mupen64plus-core" ,mupen64plus-core)))
1418 (arguments
1419 '(#:phases
1420 (modify-phases %standard-phases
1421 ;; The mupen64plus build system has no configure phase.
1422 (delete 'configure)
1423 ;; Makefile is in a subdirectory.
1424 (add-before
1425 'build 'cd-to-project-dir
1426 (lambda _
1427 (chdir "projects/unix"))))
1428 #:make-flags
1429 (let ((out (assoc-ref %outputs "out"))
1430 (m64p (assoc-ref %build-inputs "mupen64plus-core")))
1431 (list "all"
1432 (string-append "PREFIX=" out)
1433 (string-append "APIDIR=" m64p "/include/mupen64plus")))
1434 ;; There are no tests.
1435 #:tests? #f))
1436 (home-page "http://www.mupen64plus.org/")
1437 (synopsis "Mupen64Plus SDL input plugin")
1438 (description
1439 "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
1440which is capable of accurately playing many games. This package contains the
1441Z64 RSP processor plugin.")
1442 (license license:gpl2+)))
1443
307a536d
TUBK
1444(define-public mupen64plus-video-arachnoid
1445 (package
1446 (name "mupen64plus-video-arachnoid")
1447 (version "2.0.0")
1448 (source
1449 (origin
1450 (method url-fetch)
1451 (uri (string-append
1452 "https://github.com/mupen64plus/mupen64plus-video-arachnoid/archive/"
1453 version ".tar.gz"))
1454 (file-name (string-append name "-" version ".tar.gz"))
1455 (sha256
1456 (base32 "0jjwf144rihznm4lnqbhgigxw664v3v32wy94adaa6imk8z6gslh"))))
1457 (build-system gnu-build-system)
1458 (native-inputs
1459 `(("pkg-config" ,pkg-config)
1460 ("which" ,which)))
1461 (inputs
1462 `(("mesa" ,mesa)
1463 ("mupen64plus-core" ,mupen64plus-core)))
1464 (arguments
1465 '(#:phases
1466 (modify-phases %standard-phases
1467 ;; The mupen64plus build system has no configure phase.
1468 (delete 'configure)
1469 ;; Makefile is in a subdirectory.
1470 (add-before
1471 'build 'cd-to-project-dir
1472 (lambda _
1473 (chdir "projects/unix"))))
1474 #:make-flags
1475 (let ((out (assoc-ref %outputs "out"))
1476 (m64p (assoc-ref %build-inputs "mupen64plus-core")))
1477 (list "all"
1478 (string-append "PREFIX=" out)
1479 (string-append "APIDIR=" m64p "/include/mupen64plus")))
1480 ;; There are no tests.
1481 #:tests? #f))
1482 (home-page "http://www.mupen64plus.org/")
1483 (synopsis "Mupen64Plus Rice Video plugin")
1484 (description
1485 "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
1486which is capable of accurately playing many games. This package contains the
1487Arachnoid video plugin.")
1488 (license license:gpl2+)))
1489
9a3fe16b
TUBK
1490(define-public mupen64plus-video-glide64
1491 (package
1492 (name "mupen64plus-video-glide64")
1493 (version "2.0.0")
1494 (source
1495 (origin
1496 (method url-fetch)
1497 (uri (string-append
1498 "https://github.com/mupen64plus/mupen64plus-video-glide64/archive/"
1499 version ".tar.gz"))
1500 (file-name (string-append name "-" version ".tar.gz"))
1501 (sha256
1502 (base32 "1rm55dbf6xgsq1blbzs6swa2ajv0qkn38acbljj346abnk6s3dla"))))
1503 (build-system gnu-build-system)
1504 (native-inputs
1505 `(("pkg-config" ,pkg-config)
1506 ("which" ,which)))
1507 (inputs
1508 `(("mesa" ,mesa)
1509 ("mupen64plus-core" ,mupen64plus-core)
1510 ("sdl2" ,sdl2)))
1511 (arguments
1512 '(#:phases
1513 (modify-phases %standard-phases
1514 ;; The mupen64plus build system has no configure phase.
1515 (delete 'configure)
1516 ;; Makefile is in a subdirectory.
1517 (add-before
1518 'build 'cd-to-project-dir
1519 (lambda _
1520 (chdir "projects/unix")))
1521 ;; XXX Should be unnecessary with the next release.
1522 (add-before
1523 'build 'use-sdl2
1524 (lambda _
1525 (substitute* "Makefile"
1526 (("SDL_CONFIG = (.*)sdl-config" all prefix)
1527 (string-append "SDL_CONFIG = " prefix "sdl2-config"))))))
1528 #:make-flags
1529 (let ((out (assoc-ref %outputs "out"))
1530 (m64p (assoc-ref %build-inputs "mupen64plus-core")))
1531 (list "all"
1532 (string-append "PREFIX=" out)
1533 (string-append "APIDIR=" m64p "/include/mupen64plus")))
1534 ;; There are no tests.
1535 #:tests? #f))
1536 (home-page "http://www.mupen64plus.org/")
1537 (synopsis "Mupen64Plus Rice Video plugin")
1538 (description
1539 "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
1540which is capable of accurately playing many games. This package contains the
1541Glide64 video plugin.")
1542 (license license:gpl2+)))
1543
e8bf3ced
TUBK
1544(define-public mupen64plus-video-glide64mk2
1545 (package
1546 (name "mupen64plus-video-glide64mk2")
1547 (version "2.5")
1548 (source
1549 (origin
1550 (method url-fetch)
1551 (uri (string-append
1552 "https://github.com/mupen64plus/mupen64plus-video-glide64mk2/archive/"
1553 version ".tar.gz"))
1554 (file-name (string-append name "-" version ".tar.gz"))
1555 (sha256
1556 (base32 "1ihl4q293d6svba26b4mhapjcdg12p90gibz79b4mx423jlcxxj9"))))
1557 (build-system gnu-build-system)
1558 (native-inputs
1559 `(("pkg-config" ,pkg-config)
1560 ("which" ,which)))
1561 (inputs
1562 `(("boost" ,boost)
1563 ("libpng" ,libpng)
1564 ("mesa" ,mesa)
1565 ("mupen64plus-core" ,mupen64plus-core)
1566 ("sdl2" ,sdl2)
1567 ("zlib" ,zlib)))
1568 (arguments
1569 '(#:phases
1570 (modify-phases %standard-phases
1571 ;; The mupen64plus build system has no configure phase.
1572 (delete 'configure)
1573 ;; Makefile is in a subdirectory.
1574 (add-before
1575 'build 'cd-to-project-dir
1576 (lambda _
1577 (chdir "projects/unix"))))
1578 #:make-flags
1579 (let ((out (assoc-ref %outputs "out"))
1580 (m64p (assoc-ref %build-inputs "mupen64plus-core")))
1581 (list "all"
1582 (string-append "PREFIX=" out)
1583 (string-append "APIDIR=" m64p "/include/mupen64plus")))
1584 ;; There are no tests.
1585 #:tests? #f))
1586 (home-page "http://www.mupen64plus.org/")
1587 (synopsis "Mupen64Plus Rice Video plugin")
1588 (description
1589 "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
1590which is capable of accurately playing many games. This package contains the
1591Glide64MK2 video plugin.")
1592 (license license:gpl2+)))
1593
e91d25f9
TUBK
1594(define-public mupen64plus-video-rice
1595 (package
1596 (name "mupen64plus-video-rice")
1597 (version "2.5")
1598 (source
1599 (origin
1600 (method url-fetch)
1601 (uri (string-append
1602 "https://github.com/mupen64plus/mupen64plus-video-rice/archive/"
1603 version ".tar.gz"))
1604 (file-name (string-append name "-" version ".tar.gz"))
1605 (sha256
1606 (base32 "0rd2scjmh285w61aj3mgx71whg5rqrjbry3cdgicczrnyvf8wdvk"))))
1607 (build-system gnu-build-system)
1608 (native-inputs
1609 `(("pkg-config" ,pkg-config)
1610 ("which" ,which)))
1611 (inputs
1612 `(("libpng" ,libpng)
1613 ("mesa" ,mesa)
1614 ("mupen64plus-core" ,mupen64plus-core)
1615 ("sdl2" ,sdl2)))
1616 (arguments
1617 '(#:phases
1618 (modify-phases %standard-phases
1619 ;; The mupen64plus build system has no configure phase.
1620 (delete 'configure)
1621 ;; Makefile is in a subdirectory.
1622 (add-before
1623 'build 'cd-to-project-dir
1624 (lambda _
1625 (chdir "projects/unix"))))
1626 #:make-flags
1627 (let ((out (assoc-ref %outputs "out"))
1628 (m64p (assoc-ref %build-inputs "mupen64plus-core")))
1629 (list "all"
1630 (string-append "PREFIX=" out)
1631 (string-append "APIDIR=" m64p "/include/mupen64plus")))
1632 ;; There are no tests.
1633 #:tests? #f))
1634 (home-page "http://www.mupen64plus.org/")
1635 (synopsis "Mupen64Plus Rice Video plugin")
1636 (description
1637 "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
1638which is capable of accurately playing many games. This package contains the
1639Rice Video plugin.")
1640 (license license:gpl2+)))
1641
17e2bc86
TUBK
1642(define-public mupen64plus-video-z64
1643 (package
1644 (name "mupen64plus-video-z64")
1645 (version "2.0.0")
1646 (source
1647 (origin
1648 (method url-fetch)
1649 (uri (string-append
1650 "https://github.com/mupen64plus/mupen64plus-video-z64/archive/"
1651 version ".tar.gz"))
1652 (file-name (string-append name "-" version ".tar.gz"))
1653 (sha256
1654 (base32 "1x7wsjs5gx2iwx20p4cjcbf696zsjlh31qxmghwv0ifrq8x58s1b"))))
1655 (build-system gnu-build-system)
1656 (native-inputs
1657 `(("pkg-config" ,pkg-config)
1658 ("which" ,which)))
1659 (inputs
1660 `(("glew" ,glew)
1661 ("mupen64plus-core" ,mupen64plus-core)
1662 ("sdl2" ,sdl2)))
1663 (arguments
1664 '(#:phases
1665 (modify-phases %standard-phases
1666 ;; The mupen64plus build system has no configure phase.
1667 (delete 'configure)
1668 ;; Makefile is in a subdirectory.
1669 (add-before
1670 'build 'cd-to-project-dir
1671 (lambda _
1672 (chdir "projects/unix")))
1673 ;; XXX Should be unnecessary with the next release.
1674 (add-before
1675 'build 'use-sdl2
1676 (lambda _
1677 (substitute* "Makefile"
1678 (("SDL_CONFIG = (.*)sdl-config" all prefix)
1679 (string-append "SDL_CONFIG = " prefix "sdl2-config"))))))
1680 #:make-flags
1681 (let ((out (assoc-ref %outputs "out"))
1682 (m64p (assoc-ref %build-inputs "mupen64plus-core")))
1683 (list "all"
1684 (string-append "PREFIX=" out)
1685 (string-append "APIDIR=" m64p "/include/mupen64plus")))
1686 ;; There are no tests.
1687 #:tests? #f))
1688 (home-page "http://www.mupen64plus.org/")
1689 (synopsis "Mupen64Plus Z64 video plugin")
1690 (description
1691 "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
1692which is capable of accurately playing many games. This package contains the
1693Z64 video plugin.")
1694 (license license:gpl2+)))
1695
e6974eae
TUBK
1696(define-public mupen64plus-ui-console
1697 (package
1698 (name "mupen64plus-ui-console")
1699 (version "2.5")
1700 (source
1701 (origin
1702 (method url-fetch)
1703 (uri (string-append
1704 "https://github.com/mupen64plus/mupen64plus-ui-console/archive/"
1705 version ".tar.gz"))
1706 (file-name (string-append name "-" version ".tar.gz"))
1707 (sha256
1708 (base32 "04qkpd8ic7xsgnqz7spl00wxdygf79m7d1k8rabbygjk5lg6p8z2"))
1709 (patches
1710 (list (search-patch "mupen64plus-ui-console-notice.patch")))))
1711 (build-system gnu-build-system)
1712 (native-inputs
1713 `(("pkg-config" ,pkg-config)
1714 ("which" ,which)))
1715 (inputs
1716 `(("sdl2" ,sdl2)))
1717 ;; Mupen64Plus supports a single data directory and a single plugin
1718 ;; directory in its configuration, yet we need data and plugin files from
1719 ;; a variety of packages. The best way to deal with this is to install
1720 ;; all packages from which data and plugin files are needed into one's
1721 ;; profile, and point the configuration there. Hence, propagate the most
1722 ;; important packages here to save the user from the bother. The patch
1723 ;; mupen64plus-ui-console-notice also gives users instructions on what
1724 ;; they need to do in order to point the configuration to their profile.
1725 (propagated-inputs
1726 `(("mupen64plus-core" ,mupen64plus-core)
1727 ("mupen64plus-audio-sdl" ,mupen64plus-audio-sdl)
1728 ("mupen64plus-input-sdl" ,mupen64plus-input-sdl)
1729 ("mupen64plus-rsp-hle" ,mupen64plus-rsp-hle)
1730 ("mupen64plus-video-glide64" ,mupen64plus-video-glide64)
1731 ("mupen64plus-video-glide64mk2" ,mupen64plus-video-glide64mk2)
1732 ("mupen64plus-video-rice" ,mupen64plus-video-rice)))
1733 (arguments
1734 '(#:phases
1735 (modify-phases %standard-phases
1736 ;; The mupen64plus build system has no configure phase.
1737 (delete 'configure)
1738 ;; Makefile is in a subdirectory.
1739 (add-before
1740 'build 'cd-to-project-dir
1741 (lambda _
1742 (chdir "projects/unix"))))
1743 #:make-flags
1744 (let ((out (assoc-ref %outputs "out"))
1745 (m64p (assoc-ref %build-inputs "mupen64plus-core")))
1746 (list "all"
1747 (string-append "PREFIX=" out)
1748 (string-append "APIDIR=" m64p "/include/mupen64plus")
1749 ;; Trailing slash matters here.
1750 (string-append "COREDIR=" m64p "/lib/")))
1751 ;; There are no tests.
1752 #:tests? #f))
1753 (home-page "http://www.mupen64plus.org/")
1754 (synopsis "Mupen64Plus SDL input plugin")
1755 (description
1756 "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
1757which is capable of accurately playing many games. This package contains the
1758command line user interface. Installing this package is the easiest way
1759towards a working Mupen64Plus for casual users.")
1760 (license license:gpl2+)))
1761
03d521f9
TUBK
1762(define-public nestopia-ue
1763 (package
1764 (name "nestopia-ue")
1765 (version "1.46.2")
1766 (source (origin
1767 (method url-fetch)
1768 (uri (string-append
1769 "https://github.com/rdanbrook/nestopia/archive/"
1770 version ".tar.gz"))
1771 (file-name (string-append name "-" version ".tar.gz"))
1772 (sha256
1773 (base32
1774 "07h49xwvg61dx20rk5p4r3ax2ar5y0ppvm60cqwqljyi9rdfbh7p"))
1775 (modules '((guix build utils)))
03d521f9 1776 (snippet
9ff7827a
TUBK
1777 '(begin
1778 ;; We don't need libretro for the GNU/Linux build.
1779 (delete-file-recursively "libretro")
1780 ;; Use system zlib.
1781 (delete-file-recursively "source/zlib")
1782 (substitute* "source/core/NstZlib.cpp"
1783 (("#include \"../zlib/zlib.h\"") "#include <zlib.h>"))))))
03d521f9
TUBK
1784 (build-system gnu-build-system)
1785 (native-inputs
1786 `(("pkg-config" ,pkg-config)))
1787 (inputs
1788 `(("ao" ,ao)
1789 ("glu" ,glu)
1790 ("gtk+" ,gtk+)
1791 ("libarchive" ,libarchive)
1792 ("mesa" ,mesa)
9ff7827a
TUBK
1793 ("sdl2" ,sdl2)
1794 ("zlib" ,zlib)))
03d521f9
TUBK
1795 (arguments
1796 '(#:phases
1797 (modify-phases %standard-phases
1798 ;; The Nestopia build system consists solely of a Makefile.
1799 (delete 'configure)
1800 ;; XXX Should be unnecessary with the next release.
1801 (add-before
1802 'build 'patch-makefile
1803 (lambda _
1804 (substitute* "Makefile"
1805 (("@mkdir \\$@") "@mkdir -p $@")
1806 (("CC =") "CC ?=")
1807 (("CXX =") "CXX ?=")
1808 (("PREFIX =") "PREFIX ?=")
1809 (("^install:\n$") "install:\n\tmkdir -p $(BINDIR)\n"))))
1810 (add-before
1811 'build 'remove-xdg-desktop-menu-call
1812 (lambda _
1813 (substitute* "Makefile"
1814 (("xdg-desktop-menu install .*") "")))))
1815 #:make-flags (let ((out (assoc-ref %outputs "out")))
1816 (list "CC=gcc" "CXX=g++" (string-append "PREFIX=" out)))
1817 ;; There are no tests.
1818 #:tests? #f))
1819 (home-page "http://0ldsk00l.ca/nestopia/")
1820 (synopsis "Nintendo Entertainment System (NES/Famicom) emulator")
1821 (description
1822 "Nestopia UE (Undead Edition) is a fork of the Nintendo Entertainment
1823System (NES/Famicom) emulator Nestopia, with enhancements from members of the
1824emulation community. It provides highly accurate emulation.")
1825 (license license:gpl2+)))
3307c787
DT
1826
1827(define-public emulation-station
1828 (package
1829 (name "emulation-station")
1830 (version "2.0.1")
1831 (source (origin
1832 (method git-fetch) ; no tarball available
1833 (uri (git-reference
1834 (url "https://github.com/Aloshi/EmulationStation.git")
1835 (commit "646bede"))) ; no version tag
1836 (sha256
1837 (base32
1838 "0cm0sq2wri2l9cvab1l0g02za59q7klj0h3p028vr96n6njj4w9v"))))
1839 (build-system cmake-build-system)
1840 (arguments
1841 '(#:tests? #f)) ; no tests
1842 (inputs
1843 `(("alsa-lib" ,alsa-lib)
1844 ("boost" ,boost)
1845 ("curl" ,curl)
1846 ("eigin" ,eigen)
1847 ("freeimage" ,freeimage)
1848 ("freetype" ,freetype)
1849 ("mesa" ,mesa)
1850 ("sdl2" ,sdl2)))
1851 (synopsis "Video game console emulator front-end")
1852 (description "EmulationStation provides a graphical front-end to a large
1853number of video game console emulators. It features an interface that is
1854usable with any game controller that has at least 4 buttons, theming support,
1855and a game metadata scraper.")
1856 (home-page "http://www.emulationstation.org")
1857 (license license:expat)))
e3f755f4
EB
1858
1859(define-public pinball
1860 (package
1861 (name "pinball")
1862 (version "0.3.1")
1863 (source
1864 (origin (method url-fetch)
1865 (uri (string-append "mirror://sourceforge/pinball/pinball/"
1866 "pinball-" version "/"
1867 "pinball-" version ".tar.gz"))
1868 (sha256
1869 (base32
1870 "1f2whlrfidwfh8lvr8cspcyirc6840r5d1ajm7x99qmngygrhixs"))
1871 (patches (map search-patch
1872 '("pinball-const-fix.patch"
1873 "pinball-cstddef.patch"
1874 "pinball-missing-separators.patch"
1875 "pinball-src-deps.patch"
1876 "pinball-system-ltdl.patch")))))
1877 (build-system gnu-build-system)
1878 (inputs
1879 `(("glu" ,glu)
1880 ("mesa" ,mesa)
1881 ("sdl" ,sdl)
1882 ("sdl-image" ,sdl-image)
1883 ("sdl-mixer" ,sdl-mixer)))
1884 (arguments
1885 '(#:configure-flags
1886 (list (string-append "CPPFLAGS=-I"
1887 (assoc-ref %build-inputs "sdl-image")
1888 "/include/SDL -I"
1889 (assoc-ref %build-inputs "sdl-mixer")
1890 "/include/SDL"))))
1891 (home-page "http://pinball.sourceforge.net")
1892 (synopsis "Pinball simulator")
1893 (description "The Emilia Pinball Project is a pinball simulator. There
1894are only two levels to play with, but they are very addictive.")
1895 (license license:gpl2)))
7e2e1155
RF
1896
1897(define-public pioneers
1898 (package
1899 (name "pioneers")
1900 (version "15.3")
1901 (source (origin
1902 (method url-fetch)
1903 (uri (string-append "http://downloads.sourceforge.net/pio/"
1904 "pioneers-" version ".tar.gz"))
1905 (sha256
1906 (base32
1907 "128s718nnraiznbg2rajjqb7cfkdg24hy6spdd9narb4f4dsbbv9"))))
1908 (build-system gnu-build-system)
1909 (inputs `(("gtk+" ,gtk+)
1910 ("librsvg" ,librsvg)
1911 ("avahi" ,avahi)))
1912 (native-inputs `(("intltool" ,intltool)
1913 ("pkg-config" ,pkg-config)))
1914 (synopsis "Board game inspired by The Settlers of Catan")
1915 (description "Pioneers is an emulation of the board game The Settlers of
1916Catan. It can be played on a local network, on the internet, and with AI
1917players.")
1918 (home-page "http://pio.sourceforge.net/")
1919 (license license:gpl3+)))