summaryrefslogtreecommitdiff
path: root/rodion/packages/games.scm
blob: 3eaa8fb39a6bcb70284b22b2220bfa612fb8207a (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
(define-module (rodion packages games)
    #:use-module (guix packages)
    #:use-module (guix build-system copy)
    #:use-module (guix build-system cmake)
    #:use-module (guix git-download)
    #:use-module (guix gexp)
    #:use-module (gnu packages sdl)
    #:use-module (gnu packages emulators)
    #:use-module (gnu packages compression)
    #:use-module (gnu packages pkg-config)
    #:use-module ((guix licenses) #:prefix license:)
    #:use-module ((rodion licenses) #:prefix nonfree-license:))

(define-public fpattern
  (package
    (name "fpattern")
    (version "1.9")
    (build-system copy-build-system)
    (home-page "https://github.com/Loadmaster/fpattern")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
	     (url "https://github.com/Loadmaster/fpattern")
	     (commit (string-append "v" version))))
       (sha256
	(base32 "0lm5afk18a6m4wib4xvslik9zz00r36zvdrrgjbwd8d8550cq2zx"))))
    (arguments
     (list #:phases
	   #~(modify-phases %standard-phases
	       (add-before 'install 'build-library
		 (lambda* (#:key inputs #:allow-other-keys)
		   (invoke "gcc" "-c" "-Wall" "-fpic" "fpattern.c")
		   (invoke "gcc" "-shared" "-o" "libfpattern.so" "fpattern.o"))))
	   #:install-plan ''(("libfpattern.so" "lib/")
			     ("fpattern.h" "include/"))))
    (license license:expat)
    (description "Filename pattern matching library functions")
    (synopsis "Filename pattern matching library functions for DOS, Windows, and Unix.

Functions for matching filename patterns to filenames. Written in C. Provided as an object file (fpattern.so) and a header include source file (fpattern.h).

Filename patterns are composed of regular (printable) characters which may comprise a filename, as well as special pattern matching characters. A filename patterns is a special kind of regular expression, except that it is not as general and is designed to match only file and directory names instead of arbitrary text strings. The syntax is borrowed from Unix, and is a superset of the MS-DOS and Windows syntax.")))

(define-public fallout-ce
  (package
    (name "fallout-ce")
    (version "1.1.0")
    (build-system cmake-build-system)
    (home-page "https://github.com/alexbatalov/fallout1-ce")
    (inputs (list sdl2 fpattern))
    (arguments
     (list
      #:tests? #f
      #:phases #~(modify-phases %standard-phases
                   (replace 'install
                     (lambda* (#:key outputs #:allow-other-keys)
                       (let* ((out (assoc-ref outputs "out"))
                              (bin (string-append out "/bin")))
                         (mkdir-p bin)
                         (copy-file "fallout-ce"
                                    (string-append bin "/fallout-ce"))))))))
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/alexbatalov/fallout1-ce")
             (commit (string-append "v" version))))
       (patches `(,(local-file "./patches/0001-fallout-ce-fpattern.patch")))
       (sha256
        (base32 "0c11zbvja42s0z8zqfm6gf981m0v2vwxvhqas46lplwbfhbnh836"))))
    (license nonfree-license:sustainable-use)
    (description
     "Fallout Community Edition is a fully working re-implementation of Fallout, with the same original gameplay, engine bugfixes, and some quality of life improvements, that works (mostly) hassle-free on multiple platforms.")
    (synopsis
     "Fallout Community Edition is an engine rewrite for modern operating systems")))

(define-public fallout2-ce
  (package
    (name "fallout2-ce")
    (version "1.3.0")
    (build-system cmake-build-system)
    (home-page "https://github.com/alexbatalov/fallout2-ce")
    (inputs (list sdl2 fpattern zlib))
    (arguments
     (list
      #:tests? #f
      #:phases #~(modify-phases %standard-phases
                   (replace 'install
                     (lambda* (#:key outputs #:allow-other-keys)
                       (let* ((out (assoc-ref outputs "out"))
                              (bin (string-append out "/bin")))
                         (mkdir-p bin)
                         (copy-file "fallout2-ce"
                                    (string-append bin "/fallout2-ce"))))))))
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/alexbatalov/fallout2-ce")
             (commit (string-append "v" version))))
       (patches `(,(local-file "./patches/0001-fallout2-ce-fpattern.patch")))
       (sha256
        (base32 "15b30i2ixq0w01qxrymd1qs1awj8kijbqzac8wvfrpm85fdnfnmg"))))
    (license nonfree-license:sustainable-use)
    (description
     "Fallout 2 Community Edition is a fully working re-implementation of Fallout 2, with the same original gameplay, engine bugfixes, and some quality of life improvements, that works (mostly) hassle-free on multiple platforms.")
    (synopsis
     "Fallout 2 Community Edition is an engine rewrite for modern operating systems")))

;; Build with the old CPU support
(define-public dosbox-staging/old-cpu
  (package
    (inherit dosbox-staging)
    (name "dosbox-staging-old-cpu")
    (arguments
     (list #:configure-flags
	   #~(list
	      "-Duse_zlib_ng=sse2,ssse3"
              ;; These both try to git clone subprojects.
              "-Dunit_tests=disabled"   ; gtest
              "-Duse_mt32emu=false")
	   #:build-type "release"))))

(define-public doomretro
  (package
    (name "doomretro")
    (version "5.5.1")
    (build-system cmake-build-system)
    (inputs (list sdl2 sdl2-mixer sdl2-image pkg-config))
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/bradharding/doomretro")
             (commit (string-append "v" version))))
       (sha256
        (base32 "0hgpdhxdhnkip5wxhgims414v4asik9x94qs47by7li8fp60q0w0"))))
    (arguments
     (list
      #:tests? #f))
    (license license:gpl3)
    (home-page "https://github.com/bradharding/doomretro")
    (synopsis "The classic, refined DOOM source port")
    (description
     "DOOM Retro is the classic, refined DOOM source port, minimalist in its approach.")))