(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 ((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"))))