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