summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim@guixotic.coop>2025-08-10 21:32:11 +0900
committerHilton Chain <hako@ultrarare.space>2025-08-24 10:24:53 +0800
commit96ccecfa0236cf6e696596e3703e5d3afa89de24 (patch)
treecd5143d694f046f0001e3109832daf94f3b18d82
parent099ab02079f82b9d61c0d722c26895e514489899 (diff)
nongnu: Add libretro-genesis-plus-gx.
* nongnu/packages/emulators.scm (libretro-genesis-plus-gx): New variable. Signed-off-by: Hilton Chain <hako@ultrarare.space>
-rw-r--r--nongnu/packages/emulators.scm77
1 files changed, 77 insertions, 0 deletions
diff --git a/nongnu/packages/emulators.scm b/nongnu/packages/emulators.scm
index 5dade3b..b66f50a 100644
--- a/nongnu/packages/emulators.scm
+++ b/nongnu/packages/emulators.scm
@@ -1,5 +1,6 @@
1;;; SPDX-License-Identifier: GPL-3.0-or-later 1;;; SPDX-License-Identifier: GPL-3.0-or-later
2;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz> 2;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
3;;; Copyright © 2025 Maxim Cournoyer <maxim@guixotic.coop>
3 4
4(define-module (nongnu packages emulators) 5(define-module (nongnu packages emulators)
5 #:use-module (gnu packages backup) 6 #:use-module (gnu packages backup)
@@ -7,8 +8,11 @@
7 #:use-module (gnu packages sdl) 8 #:use-module (gnu packages sdl)
8 #:use-module (guix build-system gnu) 9 #:use-module (guix build-system gnu)
9 #:use-module (guix download) 10 #:use-module (guix download)
11 #:use-module (guix gexp)
12 #:use-module (guix git-download)
10 #:use-module ((guix licenses) #:prefix license:) 13 #:use-module ((guix licenses) #:prefix license:)
11 #:use-module (guix packages) 14 #:use-module (guix packages)
15 #:use-module (guix utils)
12 #:use-module (nonguix licenses)) 16 #:use-module (nonguix licenses))
13 17
14(define-public dgen 18(define-public dgen
@@ -38,3 +42,76 @@ compatible. It's also perfect for command line freaks.")
38 (license (list license:bsd-3 42 (license (list license:bsd-3
39 ;; Many non-free licenses. 43 ;; Many non-free licenses.
40 (nonfree "https://sourceforge.net/p/dgen/dgen/ci/master/tree/COPYING"))))) 44 (nonfree "https://sourceforge.net/p/dgen/dgen/ci/master/tree/COPYING")))))
45
46(define-public libretro-genesis-plus-gx
47 ;; There is no release nor tags: use the latest commit.
48 (let ((commit "a80e3b3b957d38961e274aa4da450245ddc63fe8")
49 (revision "0"))
50 (package
51 (name "libretro-genesis-plus-gx")
52 (version (git-version "0" revision commit))
53 (source (origin
54 (method git-fetch)
55 (uri (git-reference
56 (url "https://github.com/ekeeke/Genesis-Plus-GX")
57 (commit commit)))
58 (file-name (git-file-name name version))
59 (sha256
60 (base32
61 "0iqsbxw00mqc2hf0jw1v6qzccf5b40d6q1a7vv5bdi3i260py6i0"))))
62 (build-system gnu-build-system)
63 (arguments
64 (list
65 #:tests? #f ;no test suite
66 #:make-flags
67 #~(list "-f" "Makefile.libretro"
68 (string-append "GIT_VERSION=" #$version)
69 (string-append "CC=" #$(cc-for-target)))
70 #:phases
71 #~(modify-phases %standard-phases
72 (delete 'configure) ;no configure script
73 (replace 'install
74 (lambda _
75 (install-file "genesis_plus_gx_libretro.so"
76 (string-append #$output "/lib/libretro"))
77 (invoke "find" "-executable" "-name" "*.so"))))))
78 (home-page "https://github.com/ekeeke/Genesis-Plus-GX")
79 (synopsis "Accurate Sega 8/16 bit emulator")
80 (description "This is the Libretro port of Genesis Plus GX, a SG-1000,
81Mark-III, Master System (I & II), Game Gear, Genesis/Mega Drive and Sega/Mega
82CD emulator. It was originally based on Genesis Plus, from which it improves
83emulation accuracy and adds support for new peripherals, cartridges and
84features such as:
85@itemize
86@item
87NTSC (60Hz) and PAL (50Hz) video hardware emulation
88@item
89accurate 68000, Z80 CPU emulation and synchronization
90@item
91accurate VDP emulation and timings
92@item
93sample-accurate YM2612,YM2413, SN76489 and RF5C164 PCM sound chips emulation
94@item
95cycle-accurate sound chips synchronization with 68000/Z80 CPU
96@item
97cycle-accurate 68000 and Z80 CPU synchronization
98@item
99optimized Main-CPU / Sub-CPU synchronization (Sega/Mega CD)
100@item
101accurate CDD, CDC and GFX chip emulation (Sega/Mega CD)
102@item
103accurate CD-DA fader emulation (Sega/Mega CD)
104@item
105Mode 1 cartridge support (Sega/Mega CD)
106@item
107Audio CD and CD+G support (Sega/Mega CD)
108@item
109high-quality audio resampling using Blip Buffer
110@item
111basic hardware latency emulation (VDP/68k, Z80/68k)
112@item
113full overscan area emulation (horizontal and vertical color borders)
114@end itemize")
115 ;; Redistributable but has a non-commercial clause, so does not meet the
116 ;; GNU FSDG requirements.
117 (license (nonfree "file://LICENSE.txt")))))