From ee5f4690d35e7c609bca7f038df5780f2dc315d1 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 25 Jun 2021 18:29:39 +0200 Subject: gnu: Add dosbox-staging. * gnu/packages/emulators.scm (dosbox-staging): New public variable. --- gnu/packages/emulators.scm | 60 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) (limited to 'gnu/packages/emulators.scm') diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm index 9091ef931d..130dfd1ae0 100644 --- a/gnu/packages/emulators.scm +++ b/gnu/packages/emulators.scm @@ -326,6 +326,66 @@ SoundBlaster/Gravis Ultra Sound card for excellent sound compatibility with older games.") (license license:gpl2+))) +(define-public dosbox-staging + ;; This is not a patch staging area for DOSBox, but an unaffiliated fork. + (package + (name "dosbox-staging") + (version "0.76.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dosbox-staging/dosbox-staging") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "14zlkm9qmaq2x4zdiadczsxvdnrf35w13ccvkxzd8cwrzxv84fvd")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags + ;; Several files #include instead of , + ;; including configure.ac itself. + (list (string-append "CXXFLAGS=-I" (assoc-ref %build-inputs "sdl2") + "/include/SDL2")))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("pkg-config" ,pkg-config))) + (inputs + `(("alsa-lib" ,alsa-lib) + ("fluidsynth" ,fluidsynth) + ("libpng" ,libpng) + ("opusfile" ,opusfile) + ("sdl2" ,(sdl-union (list sdl2 sdl2-net))) + ("zlib" ,zlib))) + (home-page "https://dosbox-staging.github.io") + (synopsis "DOS/x86 PC emulator focusing on ease of use") + (description + "The DOSBox Staging project attempts to modernize DOSBox. + +DOSBox emulates an Intel x86 personal computer running an IBM PC compatible disk +operating system (@dfn{DOS}) in both real and protected modes. It was primarily +designed to run old DOS games, but aims to be fully compatible with all DOS +programs and replicate the experience as accurately as possible. + +This fork fixes some perceived issues with DOSBox and adds new features such as +Wayland support, PowerPC/POWER dynamic recompilation, and FluidSynth MIDI. +Other features may be removed: for example, physical CDs can no longer be +played, only emulated media. + +Graphical emulation includes contemporary text mode, Hercules, CGA, EGA, VGA, +VESA, S3@tie{}Trio@tie{}64, and Tandy hardware. + +Emulated legacy sound devices range from a rudimentary `PC speaker' buzzer to +the once state-of-the-art Gravis Utrasound sampling sound card. The default is +a SoundBlaster 16 providing 16-bit stereo sound. MIDI is forwarded to the host +through an emulated MPU-401. + +An emulated hardware modem is also included, letting one host or dial a +@acronym{BBS, Bulletin Board System} across the Internet, network over IPX, and +emulate a serial nullmodem over TCP/IP.") + (license license:gpl3+))) + (define-public qtmips (package (name "qtmips") -- cgit v1.2.3 From 5fd319fb7b77bd1aca9854b9d398b1abf492d10b Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 25 Jun 2021 19:58:24 +0200 Subject: gnu: dosbox-staging: Build with upstream's release options. * gnu/packages/emulators.scm (dosbox-staging)[arguments]: Produce a more optimised binary without run-time debugging overhead. --- gnu/packages/emulators.scm | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'gnu/packages/emulators.scm') diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm index 130dfd1ae0..6150725f44 100644 --- a/gnu/packages/emulators.scm +++ b/gnu/packages/emulators.scm @@ -343,10 +343,22 @@ older games.") (build-system gnu-build-system) (arguments `(#:configure-flags - ;; Several files #include instead of , - ;; including configure.ac itself. - (list (string-append "CXXFLAGS=-I" (assoc-ref %build-inputs "sdl2") - "/include/SDL2")))) + (let* ((flags (list "-O3" + ;; From scripts/automator/build/gcc-defaults. + "-fstrict-aliasing" + "-fno-signed-zeros" + "-fno-trapping-math" + "-fassociative-math" + "-frename-registers" + "-ffunction-sections" + "-fdata-sections")) + (CFLAGS (string-join flags " "))) + ;; Several files #include instead of , + ;; including configure.ac itself. + (list (string-append "CPPFLAGS=-I" (assoc-ref %build-inputs "sdl2") + "/include/SDL2") + (string-append "CFLAGS=" CFLAGS) + (string-append "CXXFLAGS=-DNDEBUG " CFLAGS))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) -- cgit v1.2.3 From 88f5665fa3fa202acf67c1ef15ce976ddcab16c5 Mon Sep 17 00:00:00 2001 From: Leo Prikler Date: Fri, 18 Jun 2021 16:58:43 +0200 Subject: gnu: Add blastem. * gnu/packages/emulators.scm (blastem): New variable. --- gnu/packages/emulators.scm | 67 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) (limited to 'gnu/packages/emulators.scm') diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm index 6150725f44..4df4a74bda 100644 --- a/gnu/packages/emulators.scm +++ b/gnu/packages/emulators.scm @@ -39,6 +39,7 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix svn-download) + #:use-module (guix hg-download) #:use-module (guix utils) #:use-module (gnu packages) #:use-module (gnu packages algebra) @@ -141,6 +142,72 @@ C610/C510). An extra emulator is provided for C64 expanded with the CMD SuperCPU.") (license license:gpl2+))) +(define-public blastem + (package + (name "blastem") + (version "0.6.2") + (source (origin + (method hg-fetch) + (uri (hg-reference + (url "https://www.retrodev.com/repos/blastem") + (changeset (string-append "v" version)))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "08ycfisivh9rb9vmijlrpdryaw8spd81ck48960p15cnf8h2535q")) + (modules '((guix build utils))) + (snippet + '(begin + ;; TODO: Separately package and unbundle nuklear + (delete-file-recursively "zlib"))))) + (build-system gnu-build-system) + (arguments + `(#:make-flags (list (string-append "CC=" ,(cc-for-target)) + "HOST_ZLIB=1" + "HAS_PROC=-DHAS_PROC" + (string-append "CONFIG_PATH=" + %output "/share/blastem") + (string-append "DATA_PATH=" + %output "/share/blastem")) + #:tests? #f ; No check target and custom tests don't seem to build + #:imported-modules + ((guix build copy-build-system) + ,@%gnu-build-system-modules) + #:modules + (((guix build copy-build-system) + #:prefix copy:) + (guix build gnu-build-system) + (guix build utils)) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-source + (lambda _ + (substitute* (find-files "." ".*\\.[ch]") + (("\"zlib/zlib.h\"") "")))) + (delete 'configure) + (replace 'install + (lambda* args + (apply (assoc-ref copy:%standard-phases 'install) + #:install-plan + '(("." "bin" #:include ("blastem" "vgmplay")) + ("." "share/blastem" + #:include ("default.cfg" "rom.db") + #:exclude ("android")) + ("shaders" "share/blastem/shaders")) + args)))))) + (inputs + `(("glew" ,glew) + ("mesa" ,mesa) + ("sdl2" ,sdl2) + ("zlib" ,zlib))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "https://www.retrodev.com/blastem/") + (synopsis "Genesis/Mega Drive emulator") + (description "Blastem is an emulator for the Sega Genesis/Mega Drive +console.") + (license license:gpl3+))) + (define-public desmume (package (name "desmume") -- cgit v1.2.3 From 468caeb70140f2418cf269e7b1f09d40d6dcf9fb Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Fri, 2 Jul 2021 11:00:09 +0200 Subject: gnu: mame: Update to 0.233. * gnu/packages/emulators.scm (mame): Update to 0.233. --- gnu/packages/emulators.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages/emulators.scm') diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm index 4df4a74bda..0c6a2d17f4 100644 --- a/gnu/packages/emulators.scm +++ b/gnu/packages/emulators.scm @@ -1771,7 +1771,7 @@ This is a part of the TiLP project.") (define-public mame (package (name "mame") - (version "0.232") + (version "0.233") (source (origin (method git-fetch) @@ -1780,7 +1780,7 @@ This is a part of the TiLP project.") (commit (apply string-append "mame" (string-split version #\.))))) (file-name (git-file-name name version)) (sha256 - (base32 "1v6qka8k4smah08rp62kgjmc84hwsg1iqhms0369rhdh722bgpn7")) + (base32 "1zq7hvss004mwczk3jvyalkj9c5v6npswhkc2wj7dxyxz770clb3")) (modules '((guix build utils))) (snippet ;; Remove bundled libraries. -- cgit v1.2.3 From dacda11541ba5c801bfdee39926d5652a040fb07 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Mon, 12 Jul 2021 00:59:03 +0200 Subject: gnu: Add exomizer. * gnu/packages/emulators.scm (exomizer): New variable. --- gnu/packages/emulators.scm | 51 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) (limited to 'gnu/packages/emulators.scm') diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm index 0c6a2d17f4..ac6bdf87a4 100644 --- a/gnu/packages/emulators.scm +++ b/gnu/packages/emulators.scm @@ -2485,3 +2485,54 @@ elseif(FALSE)")) "PPSSPP is a ``high-level'' emulator simulating the PSP operating system.") (license license:gpl2+)))) + +(define-public exomizer + (package + (name "exomizer") + (version "3.1.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://bitbucket.org/magli143/exomizer.git") + (commit "6a152b5605648f7a41eadd4b011a93ec92f74dd8"))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1ynhkb5p2dypkikipc3krzif264l9rmx1wnjzzgw8n88i4zkymzg")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; No target exists + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ + (delete-file-recursively "exodecrs") + (delete-file-recursively "rawdecrs") + (chdir "src") + ;; Those will be regenerated. + (delete-file "asm.tab.h") + (delete-file "asm.tab.c") + (delete-file "lex.yy.c") + #t)) + (replace 'configure + (lambda _ + (setenv "CC" ,(cc-for-target)) + #t)) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((out-bin (string-append (assoc-ref outputs "out") "/bin"))) + (install-file "exomizer" out-bin) + (install-file "exobasic" out-bin)) + #t))))) + (native-inputs + `(("flex" ,flex) + ("bison" ,bison))) + (synopsis "Compressor for use on Commodore home computers") + (description "This program compresses files in a way that tries to be as +efficient as possible but still allows them to be decompressed in environments +where CPU speed and RAM are limited. It also generate a self-extractor for use +on a Commodore C64, C128 etc.") + (home-page "https://bitbucket.org/magli143/exomizer/wiki/Home") + ;; Some files are LGPL 2.1--but we aren't building from or installing those. + ;; zlib license with an (non-)advertising clause. + (license license:zlib))) -- cgit v1.2.3 From 0e86d6ffed9b1f260a90c95f9ad75fd2c6288921 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Mon, 12 Jul 2021 01:31:59 +0200 Subject: gnu: Add cc65. * gnu/packages/emulators.scm (cc65): New variable. --- gnu/packages/emulators.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'gnu/packages/emulators.scm') diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm index ac6bdf87a4..838ecb533a 100644 --- a/gnu/packages/emulators.scm +++ b/gnu/packages/emulators.scm @@ -2536,3 +2536,39 @@ on a Commodore C64, C128 etc.") ;; Some files are LGPL 2.1--but we aren't building from or installing those. ;; zlib license with an (non-)advertising clause. (license license:zlib))) + +(define-public cc65 + (package + (name "cc65") + (version "2.19") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cc65/cc65.git") + (commit (string-append "V" version)))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "01a15yvs455qp20hri2pbg2wqvcip0d50kb7dibi9427hqk9cnj4")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; No target exists. + #:make-flags + (list "BUILD_ID=V2.18 - Git 55528249" + (string-append "PREFIX=" (assoc-ref %outputs "out"))) + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key source #:allow-other-keys) + ;; We include $SOURCE/include in C_INCLUDE_PATH. Remove it. + (setenv "C_INCLUDE_PATH" + (string-join + (filter (lambda (name) + (not (string=? name (string-append source "/include")))) + (string-split (getenv "C_INCLUDE_PATH") #\:)) + ":")) + #t))))) + (synopsis "Development environment for 6502 systems") + (description "This package provides a development environment for 6502 systems, including macro assembler, C compiler, linker, librarian and several other tools.") + (home-page "https://cc65.github.io/") + (license license:zlib))) -- cgit v1.2.3