unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#73488] [PATCH 0/7] Add Jolly Good and some of its emulators
@ 2024-09-26  2:35 Maxim Cournoyer
  2024-10-03  7:25 ` [bug#73488] [PATCH games v3 " Maxim Cournoyer
  0 siblings, 1 reply; 14+ messages in thread
From: Maxim Cournoyer @ 2024-09-26  2:35 UTC (permalink / raw)
  To: 73488; +Cc: Maxim Cournoyer

This series adds the Jolly Good emulator API and reference user
interface (jgrf), and some core files (emulator plugins made to be used by
it). Currently I've packaged and tested their bsnes, nestopia and cega ports.


Maxim Cournoyer (7):
  gnu: bsnes: Remove input labels and use gexps.
  gnu: Add jg-api.
  gnu: Add jgrf.
  gnu: jgrf: Add search path mechanism.
  gnu: Add jg-bsnes.
  gnu: Add jg-nestopia.
  gnu: Add jg-cega.

 gnu/local.mk                                  |   1 +
 gnu/packages/emulators.scm                    | 277 ++++++++++++++--
 .../patches/jgrf-implement-search-paths.patch | 302 ++++++++++++++++++
 3 files changed, 558 insertions(+), 22 deletions(-)
 create mode 100644 gnu/packages/patches/jgrf-implement-search-paths.patch


base-commit: 8576aaf5f90db9b385ea8cf6dc98bf3c062959dc
-- 
2.46.0





^ permalink raw reply	[flat|nested] 14+ messages in thread

* [bug#73488] [PATCH games v3 0/7] Add Jolly Good and some of its emulators
  2024-09-26  2:35 [bug#73488] [PATCH 0/7] Add Jolly Good and some of its emulators Maxim Cournoyer
@ 2024-10-03  7:25 ` Maxim Cournoyer
  2024-10-03  7:25   ` [bug#73488] [PATCH games v3 1/7] teams: Register (gnu packages emulators) to games team Maxim Cournoyer
                     ` (6 more replies)
  0 siblings, 7 replies; 14+ messages in thread
From: Maxim Cournoyer @ 2024-10-03  7:25 UTC (permalink / raw)
  To: 73488
  Cc: Maxim Cournoyer, Adam Faiz, Liliana Marie Prikler,
	宋文武

This series adds the Jolly Good emulator API and reference user
interface (jgrf), and some core files (emulator plugins made to be used by
it). Currently I've packaged and tested their bsnes, nestopia and cega ports.

Changes in v3:
 - Remove extraneous 'modules' field from origin
 - Use latest commit, with support for search paths
 - Remove extraneous 'modules' field from origin

Changes in v2:
 - Sort inputs

Maxim Cournoyer (7):
  teams: Register (gnu packages emulators) to games team.
  gnu: bsnes: Remove input labels and use gexps.
  gnu: Add jg-api.
  gnu: Add jgrf.
  gnu: Add jg-bsnes.
  gnu: Add jg-nestopia.
  gnu: Add jg-cega.

 etc/teams.scm              |   3 +-
 gnu/packages/emulators.scm | 281 ++++++++++++++++++++++++++++++++++---
 2 files changed, 261 insertions(+), 23 deletions(-)


base-commit: a4ea332bc219e14560d3a5daaa658425d898ec37
-- 
2.46.0





^ permalink raw reply	[flat|nested] 14+ messages in thread

* [bug#73488] [PATCH games v3 1/7] teams: Register (gnu packages emulators) to games team.
  2024-10-03  7:25 ` [bug#73488] [PATCH games v3 " Maxim Cournoyer
@ 2024-10-03  7:25   ` Maxim Cournoyer
  2024-10-03  7:25   ` [bug#73488] [PATCH games v3 2/7] gnu: bsnes: Remove input labels and use gexps Maxim Cournoyer via Guix-patches
                     ` (5 subsequent siblings)
  6 siblings, 0 replies; 14+ messages in thread
From: Maxim Cournoyer @ 2024-10-03  7:25 UTC (permalink / raw)
  To: 73488; +Cc: Maxim Cournoyer

* etc/teams.scm (games) <scope>: Register "gnu/packages/emulators.scm".

Change-Id: I269f83073ff7bb9dcfc23767d853050ce07bfcb5
---

(no changes since v1)

 etc/teams.scm | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/etc/teams.scm b/etc/teams.scm
index 9239021b39..ce87f34c07 100755
--- a/etc/teams.scm
+++ b/etc/teams.scm
@@ -465,7 +465,8 @@ (define-team games
   (team 'games
         #:name "Games and Toys"
         #:description "Packaging programs for amusement."
-        #:scope (list "gnu/packages/games.scm"
+        #:scope (list "gnu/packages/emulators.scm"
+                      "gnu/packages/games.scm"
                       "gnu/packages/game-development.scm"
                       "gnu/packages/minetest.scm"
                       "gnu/packages/esolangs.scm" ; granted, rather niche
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [bug#73488] [PATCH games v3 2/7] gnu: bsnes: Remove input labels and use gexps.
  2024-10-03  7:25 ` [bug#73488] [PATCH games v3 " Maxim Cournoyer
  2024-10-03  7:25   ` [bug#73488] [PATCH games v3 1/7] teams: Register (gnu packages emulators) to games team Maxim Cournoyer
@ 2024-10-03  7:25   ` Maxim Cournoyer via Guix-patches
  2024-10-03  7:50     ` Liliana Marie Prikler via Guix-patches
  2024-10-03  7:25   ` [bug#73488] [PATCH games v3 3/7] gnu: Add jg-api Maxim Cournoyer via
                     ` (4 subsequent siblings)
  6 siblings, 1 reply; 14+ messages in thread
From: Maxim Cournoyer via Guix-patches @ 2024-10-03  7:25 UTC (permalink / raw)
  To: 73488
  Cc: Maxim Cournoyer, Adam Faiz, Liliana Marie Prikler,
	宋文武

* gnu/packages/emulators.scm (bsnes) [arguments]: Use gexps.
[inputs]: Remove labels.
[home-page]: Update URL.

Change-Id: I69046d977c4647f46c1359d62b762149b8f70160
---

(no changes since v1)

 gnu/packages/emulators.scm | 43 +++++++++++++++++++-------------------
 1 file changed, 21 insertions(+), 22 deletions(-)

diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index 4dc61bdbff..50a7b67121 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -2230,31 +2230,30 @@ (define-public bsnes
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0j054x38fwai61vj36sc04r3zkzay5acq2cgd9zqv5hs51s36g5b"))))
+        (base32 "0j054x38fwai61vj36sc04r3zkzay5acq2cgd9zqv5hs51s36g5b"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:make-flags (list "-C" "bsnes"
-                          ;; Remove march=native
-                          "local=false"
-                          (string-append "prefix=" (assoc-ref %outputs "out")))
-       #:tests? #f                      ; No tests.
-       #:phases (modify-phases %standard-phases
-                  (delete 'configure))))
-    (native-inputs
-     (list pkg-config))
+     (list
+      #:make-flags #~(list "-C" "bsnes"
+                           ;; Remove march=native
+                           "local=false"
+                           (string-append "prefix=" #$output))
+      #:tests? #f                       ;No tests.
+      #:phases #~(modify-phases %standard-phases
+                   (delete 'configure))))
+    (native-inputs (list pkg-config))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("ao" ,ao)
-       ("cairo" ,cairo)
-       ("eudev" ,eudev)
-       ("gtksourceview-2" ,gtksourceview-2)
-       ("libxrandr" ,libxrandr)
-       ("libxv" ,libxv)
-       ("openal" ,openal)
-       ("pulseaudio" ,pulseaudio)
-       ("sdl2" ,sdl2)))
-    (home-page "https://bsnes.dev/")
+     (list alsa-lib
+           ao
+           cairo
+           eudev
+           gtksourceview-2
+           libxrandr
+           libxv
+           openal
+           pulseaudio
+           sdl2))
+    (home-page "https://github.com/bsnes-emu/bsnes")
     (synopsis "Emulator for the Super Nintendo / Super Famicom systems")
     (description
      "bsnes is a Super Nintendo / Super Famicom emulator that focuses on
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [bug#73488] [PATCH games v3 3/7] gnu: Add jg-api.
  2024-10-03  7:25 ` [bug#73488] [PATCH games v3 " Maxim Cournoyer
  2024-10-03  7:25   ` [bug#73488] [PATCH games v3 1/7] teams: Register (gnu packages emulators) to games team Maxim Cournoyer
  2024-10-03  7:25   ` [bug#73488] [PATCH games v3 2/7] gnu: bsnes: Remove input labels and use gexps Maxim Cournoyer via Guix-patches
@ 2024-10-03  7:25   ` Maxim Cournoyer via
  2024-10-03  7:51     ` Liliana Marie Prikler via Guix-patches
  2024-10-03  7:25   ` [bug#73488] [PATCH games v3 4/7] gnu: Add jgrf Maxim Cournoyer via Guix-patches
                     ` (3 subsequent siblings)
  6 siblings, 1 reply; 14+ messages in thread
From: Maxim Cournoyer via @ 2024-10-03  7:25 UTC (permalink / raw)
  To: 73488
  Cc: Maxim Cournoyer, Adam Faiz, Liliana Marie Prikler,
	宋文武

* gnu/packages/emulators.scm (jg-api): New variable.

Change-Id: I2cd2086560f8353f8260209c4ee0f117c3615917
---

(no changes since v1)

 gnu/packages/emulators.scm | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index 50a7b67121..09e722b4f4 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -2260,6 +2260,32 @@ (define-public bsnes
 performance, features, and ease of use.")
     (license license:gpl3)))
 
+(define-public jg-api
+  (package
+    (name "jg-api")
+    (version "1.0.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.com/jgemu/jg")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0117cvfvzhrm9fxnryhbnf9r0f8ij4ahhfqiqp5yv11bz2wcyhqh"))))
+    (build-system gnu-build-system)
+    (arguments
+     (list #:tests? #f
+           #:make-flags #~(list (string-append "PREFIX=" #$output))
+           #:phases #~(modify-phases %standard-phases
+                        (delete 'configure)))) ;no configure phase
+    (home-page "https://gitlab.com/jgemu/jg")
+    (synopsis "Emulators Plugin API")
+    (description "This package provides the Jolly Good API C and C++ headers.
+The Jolly Good API is a shared object or plugin @acronym{API, Application
+Programming Interface} for emulators.")
+    (license license:zlib)))
+
 (define-public zsnes
   (package
     (name "zsnes")
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [bug#73488] [PATCH games v3 4/7] gnu: Add jgrf.
  2024-10-03  7:25 ` [bug#73488] [PATCH games v3 " Maxim Cournoyer
                     ` (2 preceding siblings ...)
  2024-10-03  7:25   ` [bug#73488] [PATCH games v3 3/7] gnu: Add jg-api Maxim Cournoyer via
@ 2024-10-03  7:25   ` Maxim Cournoyer via Guix-patches
  2024-10-03  7:57     ` Liliana Marie Prikler via Guix-patches
  2024-10-03  7:25   ` [bug#73488] [PATCH games v3 5/7] gnu: Add jg-bsnes Maxim Cournoyer
                     ` (2 subsequent siblings)
  6 siblings, 1 reply; 14+ messages in thread
From: Maxim Cournoyer via Guix-patches @ 2024-10-03  7:25 UTC (permalink / raw)
  To: 73488
  Cc: Maxim Cournoyer, Adam Faiz, Liliana Marie Prikler,
	宋文武

* gnu/packages/emulators.scm (jgrf): New variable.

Change-Id: I0cf706e66977ceb96902dcd54f9175031e129445
---

Changes in v3:
 - Remove extraneous 'modules' field from origin
 - Use latest commit, with support for search paths

Changes in v2:
 - Sort inputs

 gnu/packages/emulators.scm | 70 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 70 insertions(+)

diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index 09e722b4f4..ae2a78a0f6 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -2286,6 +2286,76 @@ (define-public jg-api
 Programming Interface} for emulators.")
     (license license:zlib)))
 
+(define-public jgrf
+  ;; Unreleased work contains support for the JOLLYGOOD_* environment
+  ;; variables used to locate cores and assets.
+  (let ((commit "7d5c2b8593020e92d5b9b051dfb94be7f17c04ce")
+        (revision "0"))
+    (package
+      (name "jgrf")
+      (version (git-version "1.1.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://gitlab.com/jgemu/jgrf")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (snippet '(begin
+                            ;; TODO: Package md5.h and md5.c from
+                            ;; http://openwall.info/wiki/people/solar/software
+                            ;; /public-domain-source-code/md5,
+                            ;; remove these bundled files and set the
+                            ;; USE_EXTERNAL_MD5 Make flag to 1.
+                            ;; (delete-file "deps/md5.h")
+                            ;; (delete-file "deps/md5.c")
+                            (use-modules (guix build utils))
+                            (delete-file-recursively "deps/miniz")))
+                (sha256
+                 (base32
+                  "0gkmyyaxpj3szw6r1zm5850h5f362p0jdr5w70g2j0939rqn5db4"))))
+      (build-system gnu-build-system)
+      (arguments
+       (list #:tests? #f                ;no test suite
+             #:make-flags
+             #~(list (string-append "AR=" #$(ar-for-target))
+                     (string-append "CC=" #$(cc-for-target))
+                     (string-append "CXX=" #$(cxx-for-target))
+                     (string-append "PREFIX=" #$output))
+             #:phases #~(modify-phases %standard-phases
+                          (delete 'configure))))
+      (native-inputs (list jg-api pkg-config))
+      (inputs
+       (list flac
+             libepoxy
+             libsamplerate
+             lzo
+             miniz
+             sdl2
+             soxr
+             speexdsp
+             zlib
+             `(,zstd "lib")))
+      (native-search-paths
+       (list (search-path-specification
+              (variable "JOLLYGOOD_CORE_DIRS")
+              (files '("lib/jollygood")))
+             (search-path-specification
+              (variable "JOLLYGOOD_ASSET_DIRS")
+              (files '("share/jollygood")))))
+      (home-page "https://gitlab.com/jgemu/jgrf")
+      (synopsis "Jolly Good Reference Frontend")
+      (description "The Jolly Good Reference Frontend (accessible via the
+@command{jollygood} command) is the simplest possible frontend to The Jolly
+Good API.  It may be used to run emulators built as shared objects, or as a
+\"white-label\" frontend for statically linked standalone emulators.")
+      ;; The main license is BSD-3; the bundled source licenses are also listed
+      ;; below.
+      (license (list license:bsd-3 ;this software, gltext.h, lodepng.c, lodepng.h
+                     license:expat ;ezmenu.h source, musl_memmem.c,
+                                        ;parson.h, parson.c, tconfig.h, tconfig.c
+                     license:public-domain ;md5.h, md5.c, parg.h, parg.c
+                     license:cc0)))))
+
 (define-public zsnes
   (package
     (name "zsnes")
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [bug#73488] [PATCH games v3 5/7] gnu: Add jg-bsnes.
  2024-10-03  7:25 ` [bug#73488] [PATCH games v3 " Maxim Cournoyer
                     ` (3 preceding siblings ...)
  2024-10-03  7:25   ` [bug#73488] [PATCH games v3 4/7] gnu: Add jgrf Maxim Cournoyer via Guix-patches
@ 2024-10-03  7:25   ` Maxim Cournoyer
  2024-10-03  8:00     ` Liliana Marie Prikler via Guix-patches via
  2024-10-03  7:25   ` [bug#73488] [PATCH games v3 6/7] gnu: Add jg-nestopia Maxim Cournoyer
  2024-10-03  7:25   ` [bug#73488] [PATCH games v3 7/7] gnu: Add jg-cega Maxim Cournoyer
  6 siblings, 1 reply; 14+ messages in thread
From: Maxim Cournoyer @ 2024-10-03  7:25 UTC (permalink / raw)
  To: 73488
  Cc: Maxim Cournoyer, Adam Faiz, Liliana Marie Prikler,
	宋文武

* gnu/packages/emulators.scm (jg-bsnes): New variable.

Change-Id: If88a7bea0c87c8af8fce051f8bec891ff249449f
---

Changes in v3:
 - Remove extraneous 'modules' field from origin

 gnu/packages/emulators.scm | 73 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 73 insertions(+)

diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index ae2a78a0f6..4c1a705994 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -2356,6 +2356,79 @@ (define-public jgrf
                      license:public-domain ;md5.h, md5.c, parg.h, parg.c
                      license:cc0)))))
 
+(define-public jg-bsnes
+  (package
+    (name "jg-bsnes")
+    (version "2.0.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.com/jgemu/bsnes")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              ;; XXX: Some source dependencies are bundled and are not easy to
+              ;; unbundle due to the build system building an object combining
+              ;; their sources directly:
+              ;;  - byuuML
+              ;;  - gb
+              ;;  - libcoco
+              ;;  - snes_spc
+              (snippet '(begin
+                          (use-modules (guix build utils))
+                          (delete-file-recursively "deps/libsamplerate")))
+              (sha256
+               (base32
+                "0z1ka4si8vcb0j6ih087cni18vpgfd3qnaw24awycxz23xc0jkdv"))))
+    (build-system gnu-build-system)
+    (arguments
+     (list #:tests? #f                  ;no test suite
+           #:make-flags
+           #~(list (string-append "AR=" #$(ar-for-target))
+                   (string-append "CC=" #$(cc-for-target))
+                   (string-append "CXX=" #$(cxx-for-target))
+                   (string-append "PREFIX=" #$output))
+           #:phases #~(modify-phases %standard-phases
+                        (delete 'configure)))) ;no configure script
+    (native-inputs (list jg-api pkg-config))
+    (inputs (list libsamplerate))
+    (home-page "https://gitlab.com/jgemu/bsnes")
+    (synopsis "Jolly Good Fork of bsnes")
+    (description "@code{bsnes-jg} is a cycle accurate emulator for the Super
+Famicom/Super Nintendo Entertainment System, including support for the Super
+Game Boy, BS-X Satellaview, and Sufami Turbo.  @code{bsnes-jg} is a fork of
+@code{bsnes} v115, Many changes have been made post-fork:
+@itemize
+@item Higher quality resampler with settings
+@item Improved performance without loss of accuracy
+@item Portability improvements
+@item Removal of accuracy-reducing hacks and unnecessary code
+@item Significant increase in standards compliance
+@item Translation to the C++ Standard Library (ISO C++11)
+@end itemize
+
+In particular, it uses much less @acronym{CPU, Central Processing Unit}
+compared to the original @code{bsnes} (though not as little as @code{zsnes}).
+
+The supported file formats are:
+@itemize @file
+@item .sfc
+@item .smc
+@item .bs
+@item .st
+@item .fig
+@item .swc
+@end itemize
+
+This is intended to be used with the Jolly Good Reference Frontend
+@command{jollygood} command from the @code{jgrf} package.")
+    ;; The project license is GPL3+.  The bundled source licenses are also
+    ;; listed below.
+    (license (list license:gpl3+
+                   license:bsd-3        ;byuuML
+                   license:expat        ;gb
+                   license:isc          ;libco
+                   license:lgpl2.1+))))
+
 (define-public zsnes
   (package
     (name "zsnes")
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [bug#73488] [PATCH games v3 6/7] gnu: Add jg-nestopia.
  2024-10-03  7:25 ` [bug#73488] [PATCH games v3 " Maxim Cournoyer
                     ` (4 preceding siblings ...)
  2024-10-03  7:25   ` [bug#73488] [PATCH games v3 5/7] gnu: Add jg-bsnes Maxim Cournoyer
@ 2024-10-03  7:25   ` Maxim Cournoyer
  2024-10-03  7:25   ` [bug#73488] [PATCH games v3 7/7] gnu: Add jg-cega Maxim Cournoyer
  6 siblings, 0 replies; 14+ messages in thread
From: Maxim Cournoyer @ 2024-10-03  7:25 UTC (permalink / raw)
  To: 73488
  Cc: Maxim Cournoyer, Adam Faiz, Liliana Marie Prikler,
	宋文武

* gnu/packages/emulators.scm (jg-nestopia): New variable.

Change-Id: I2f686f43a8339a124b9ef9640638ab182ecf7079
---

(no changes since v1)

 gnu/packages/emulators.scm | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index 4c1a705994..34e706188a 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -2429,6 +2429,39 @@ (define-public jg-bsnes
                    license:isc          ;libco
                    license:lgpl2.1+))))
 
+(define-public jg-nestopia
+  (package
+    (name "jg-nestopia")
+    (version "1.52.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.com/jgemu/nestopia")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "19qg9hgh25aaym7b81v5g7165v4fyymas6dmzc4z867mzaphbn6s"))))
+    (build-system gnu-build-system)
+    (arguments
+     (list #:tests? #f                  ;no test suite
+           #:make-flags
+           #~(list (string-append "AR=" #$(ar-for-target))
+                   (string-append "CC=" #$(cc-for-target))
+                   (string-append "CXX=" #$(cxx-for-target))
+                   (string-append "PREFIX=" #$output))
+           #:phases #~(modify-phases %standard-phases
+                        (delete 'configure)))) ;no configure script
+    (native-inputs (list jg-api pkg-config))
+    (home-page "https://gitlab.com/jgemu/nestopia")
+    (synopsis "Jolly Good Fork of Nestopia")
+    (description "Nestopia JG is an emulator for the Nintendo Entertainment
+System/Famicom, including support for the Famicom Disk System and VS. System.
+Though originally a fork, Nestopia JG has become the de facto upstream branch
+of the Nestopia emulator.")
+    (license (list license:gpl2+        ;this project
+                   license:lgpl2.1+)))) ;nes_ntsc source files
+
 (define-public zsnes
   (package
     (name "zsnes")
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [bug#73488] [PATCH games v3 7/7] gnu: Add jg-cega.
  2024-10-03  7:25 ` [bug#73488] [PATCH games v3 " Maxim Cournoyer
                     ` (5 preceding siblings ...)
  2024-10-03  7:25   ` [bug#73488] [PATCH games v3 6/7] gnu: Add jg-nestopia Maxim Cournoyer
@ 2024-10-03  7:25   ` Maxim Cournoyer
  6 siblings, 0 replies; 14+ messages in thread
From: Maxim Cournoyer @ 2024-10-03  7:25 UTC (permalink / raw)
  To: 73488
  Cc: Maxim Cournoyer, Adam Faiz, Liliana Marie Prikler,
	宋文武

* gnu/packages/emulators.scm (jg-cega): New variable.

Change-Id: Ice3799d9aa4600006ac386fa40e80fb97b3018c8
---

(no changes since v1)

 gnu/packages/emulators.scm | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index 34e706188a..b29a50bdfb 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -2462,6 +2462,42 @@ (define-public jg-nestopia
     (license (list license:gpl2+        ;this project
                    license:lgpl2.1+)))) ;nes_ntsc source files
 
+(define-public jg-cega
+  (package
+    (name "jg-cega")
+    (version "0.6.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.com/jgemu/cega")
+                    (commit version)))
+              (modules '((guix build utils)))
+              (snippet '(delete-file-recursively "deps/"))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "10qxfch08850zivxf4s1mhh0clx4h1cfn440acm6d7glb6wbv822"))))
+    (build-system gnu-build-system)
+    (arguments
+     (list #:tests? #f                  ;no test suite
+           #:make-flags
+           #~(list (string-append "CC=" #$(cc-for-target))
+                   (string-append "PREFIX=" #$output))
+           #:phases #~(modify-phases %standard-phases
+                        (delete 'configure))))
+    (native-inputs (list jg-api pkg-config))
+    (inputs (list speexdsp))
+    (home-page "https://gitlab.com/jgemu/cega")
+    (synopsis "Jolly Good SG-1000, SMS, Game Gear, and Mega Drive/Genesis \
+emulator")
+    (description "Cega is a cycle accurate emulator for the Sega SG-1000,
+Master System, and Game Gear written specifically for The Jolly Good API.
+Mega Drive emulation is in an experimental state.")
+    (license (list license:mpl2.0
+                   license:expat        ;src/emu2413, src/m68k
+                   license:bsd-3        ;src/ymfm
+                   license:zlib))))     ;src/z80.h
+
 (define-public zsnes
   (package
     (name "zsnes")
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [bug#73488] [PATCH games v3 2/7] gnu: bsnes: Remove input labels and use gexps.
  2024-10-03  7:25   ` [bug#73488] [PATCH games v3 2/7] gnu: bsnes: Remove input labels and use gexps Maxim Cournoyer via Guix-patches
@ 2024-10-03  7:50     ` Liliana Marie Prikler via Guix-patches
  2024-10-03 12:58       ` Maxim Cournoyer
  0 siblings, 1 reply; 14+ messages in thread
From: Liliana Marie Prikler via Guix-patches @ 2024-10-03  7:50 UTC (permalink / raw)
  To: Maxim Cournoyer, 73488; +Cc: 宋文武, Adam Faiz

Am Donnerstag, dem 03.10.2024 um 16:25 +0900 schrieb Maxim Cournoyer:
> * gnu/packages/emulators.scm (bsnes) [arguments]: Use gexps.
> [inputs]: Remove labels.
> [home-page]: Update URL.
> 
> Change-Id: I69046d977c4647f46c1359d62b762149b8f70160
> ---
I think we should write out "G-Expressions".  For the header, since we
do both style improvements, I'd just write "Use new package style",
though that one's a bit more controversial ;)

Content-wise LGTM.






^ permalink raw reply	[flat|nested] 14+ messages in thread

* [bug#73488] [PATCH games v3 3/7] gnu: Add jg-api.
  2024-10-03  7:25   ` [bug#73488] [PATCH games v3 3/7] gnu: Add jg-api Maxim Cournoyer via
@ 2024-10-03  7:51     ` Liliana Marie Prikler via Guix-patches
  0 siblings, 0 replies; 14+ messages in thread
From: Liliana Marie Prikler via Guix-patches @ 2024-10-03  7:51 UTC (permalink / raw)
  To: Maxim Cournoyer, 73488; +Cc: 宋文武, Adam Faiz

Am Donnerstag, dem 03.10.2024 um 16:25 +0900 schrieb Maxim Cournoyer:
> * gnu/packages/emulators.scm (jg-api): New variable.
> 
> Change-Id: I2cd2086560f8353f8260209c4ee0f117c3615917
> ---
> 
> (no changes since v1)
> 
>  gnu/packages/emulators.scm | 26 ++++++++++++++++++++++++++
>  1 file changed, 26 insertions(+)
> 
> diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
> index 50a7b67121..09e722b4f4 100644
> --- a/gnu/packages/emulators.scm
> +++ b/gnu/packages/emulators.scm
> @@ -2260,6 +2260,32 @@ (define-public bsnes
>  performance, features, and ease of use.")
>      (license license:gpl3)))
>  
> +(define-public jg-api
> +  (package
> +    (name "jg-api")
> +    (version "1.0.0")
> +    (source (origin
> +              (method git-fetch)
> +              (uri (git-reference
> +                    (url "https://gitlab.com/jgemu/jg")
> +                    (commit version)))
> +              (file-name (git-file-name name version))
> +              (sha256
> +               (base32
> +               
> "0117cvfvzhrm9fxnryhbnf9r0f8ij4ahhfqiqp5yv11bz2wcyhqh"))))
> +    (build-system gnu-build-system)
> +    (arguments
> +     (list #:tests? #f
#:tests? #f should always go with a comment.
> +           #:make-flags #~(list (string-append "PREFIX=" #$output))
> +           #:phases #~(modify-phases %standard-phases
> +                        (delete 'configure)))) ;no configure phase
What about 'bootstrap?  
> +    (home-page "https://gitlab.com/jgemu/jg")
> +    (synopsis "Emulators Plugin API")
> +    (description "This package provides the Jolly Good API C and C++
> headers.
> +The Jolly Good API is a shared object or plugin @acronym{API,
> Application
> +Programming Interface} for emulators.")
> +    (license license:zlib)))
> +

Cheers


^ permalink raw reply	[flat|nested] 14+ messages in thread

* [bug#73488] [PATCH games v3 4/7] gnu: Add jgrf.
  2024-10-03  7:25   ` [bug#73488] [PATCH games v3 4/7] gnu: Add jgrf Maxim Cournoyer via Guix-patches
@ 2024-10-03  7:57     ` Liliana Marie Prikler via Guix-patches
  0 siblings, 0 replies; 14+ messages in thread
From: Liliana Marie Prikler via Guix-patches @ 2024-10-03  7:57 UTC (permalink / raw)
  To: Maxim Cournoyer, 73488; +Cc: 宋文武, Adam Faiz

Am Donnerstag, dem 03.10.2024 um 16:25 +0900 schrieb Maxim Cournoyer:
> * gnu/packages/emulators.scm (jgrf): New variable.
> 
> Change-Id: I0cf706e66977ceb96902dcd54f9175031e129445
> ---
> 
> Changes in v3:
>  - Remove extraneous 'modules' field from origin
>  - Use latest commit, with support for search paths
> 
> Changes in v2:
>  - Sort inputs
> 
>  gnu/packages/emulators.scm | 70
> ++++++++++++++++++++++++++++++++++++++
>  1 file changed, 70 insertions(+)
> 
> diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
> index 09e722b4f4..ae2a78a0f6 100644
> --- a/gnu/packages/emulators.scm
> +++ b/gnu/packages/emulators.scm
> @@ -2286,6 +2286,76 @@ (define-public jg-api
>  Programming Interface} for emulators.")
>      (license license:zlib)))
>  
> +(define-public jgrf
> +  ;; Unreleased work contains support for the JOLLYGOOD_*
> environment
> +  ;; variables used to locate cores and assets.
> +  (let ((commit "7d5c2b8593020e92d5b9b051dfb94be7f17c04ce")
> +        (revision "0"))
> +    (package
> +      (name "jgrf")
> +      (version (git-version "1.1.0" revision commit))
> +      (source (origin
> +                (method git-fetch)
> +                (uri (git-reference
> +                      (url "https://gitlab.com/jgemu/jgrf")
> +                      (commit commit)))
> +                (file-name (git-file-name name version))
> +                (snippet '(begin
> +                            ;; TODO: Package md5.h and md5.c from
> +                            ;;
> http://openwall.info/wiki/people/solar/software
> +                            ;; /public-domain-source-code/md5,
> +                            ;; remove these bundled files and set
> the
> +                            ;; USE_EXTERNAL_MD5 Make flag to 1.
> +                            ;; (delete-file "deps/md5.h")
> +                            ;; (delete-file "deps/md5.c")
> +                            (use-modules (guix build utils))
> +                            (delete-file-recursively "deps/miniz")))
Uhm… why not use (modules '((guix build utils))) tho?
> +                (sha256
> +                 (base32
> +                 
> "0gkmyyaxpj3szw6r1zm5850h5f362p0jdr5w70g2j0939rqn5db4"))))
> +      (build-system gnu-build-system)
> +      (arguments
> +       (list #:tests? #f                ;no test suite
> +             #:make-flags
> +             #~(list (string-append "AR=" #$(ar-for-target))
> +                     (string-append "CC=" #$(cc-for-target))
> +                     (string-append "CXX=" #$(cxx-for-target))
> +                     (string-append "PREFIX=" #$output))
> +             #:phases #~(modify-phases %standard-phases
> +                          (delete 'configure))))
> +      (native-inputs (list jg-api pkg-config))
> +      (inputs
> +       (list flac
> +             libepoxy
> +             libsamplerate
> +             lzo
> +             miniz
> +             sdl2
> +             soxr
> +             speexdsp
> +             zlib
> +             `(,zstd "lib")))
> +      (native-search-paths
> +       (list (search-path-specification
> +              (variable "JOLLYGOOD_CORE_DIRS")
> +              (files '("lib/jollygood")))
> +             (search-path-specification
> +              (variable "JOLLYGOOD_ASSET_DIRS")
> +              (files '("share/jollygood")))))
> +      (home-page "https://gitlab.com/jgemu/jgrf")
> +      (synopsis "Jolly Good Reference Frontend")
> +      (description "The Jolly Good Reference Frontend (accessible
> via the
> +@command{jollygood} command) is the simplest possible frontend to
Are you sure about "simplest"?
> The Jolly
> +Good API.  It may be used to run emulators built as shared objects,
> or as a
> +\"white-label\" frontend for statically linked standalone
> emulators.")
This phrasing is somewhat confusing to me.  So it can run emulators
both as shared objects and as statically linked executables?
> +      ;; The main license is BSD-3; the bundled source licenses are
> also listed
> +      ;; below.
> +      (license (list license:bsd-3 ;this software, gltext.h,
> lodepng.c, lodepng.h
> +                     license:expat ;ezmenu.h source, musl_memmem.c,
> +                                        ;parson.h, parson.c,
> tconfig.h, tconfig.c
> +                     license:public-domain ;md5.h, md5.c, parg.h,
> parg.c
> +                     license:cc0)))))
> +
Cheers

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [bug#73488] [PATCH games v3 5/7] gnu: Add jg-bsnes.
  2024-10-03  7:25   ` [bug#73488] [PATCH games v3 5/7] gnu: Add jg-bsnes Maxim Cournoyer
@ 2024-10-03  8:00     ` Liliana Marie Prikler via Guix-patches via
  0 siblings, 0 replies; 14+ messages in thread
From: Liliana Marie Prikler via Guix-patches via @ 2024-10-03  8:00 UTC (permalink / raw)
  To: Maxim Cournoyer, 73488; +Cc: 宋文武, Adam Faiz

Am Donnerstag, dem 03.10.2024 um 16:25 +0900 schrieb Maxim Cournoyer:
> * gnu/packages/emulators.scm (jg-bsnes): New variable.
> 
> Change-Id: If88a7bea0c87c8af8fce051f8bec891ff249449f
> ---
> 
> Changes in v3:
>  - Remove extraneous 'modules' field from origin
> 
>  gnu/packages/emulators.scm | 73
> ++++++++++++++++++++++++++++++++++++++
>  1 file changed, 73 insertions(+)
> 
> diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
> index ae2a78a0f6..4c1a705994 100644
> --- a/gnu/packages/emulators.scm
> +++ b/gnu/packages/emulators.scm
> @@ -2356,6 +2356,79 @@ (define-public jgrf
>                       license:public-domain ;md5.h, md5.c, parg.h,
> parg.c
>                       license:cc0)))))
>  
> +(define-public jg-bsnes
> +  (package
> +    (name "jg-bsnes")
> +    (version "2.0.0")
> +    (source (origin
> +              (method git-fetch)
> +              (uri (git-reference
> +                    (url "https://gitlab.com/jgemu/bsnes")
> +                    (commit version)))
> +              (file-name (git-file-name name version))
> +              ;; XXX: Some source dependencies are bundled and are
> not easy to
> +              ;; unbundle due to the build system building an object
> combining
> +              ;; their sources directly:
> +              ;;  - byuuML
> +              ;;  - gb
> +              ;;  - libcoco
> +              ;;  - snes_spc
If possible, file an upstream bug and refer to that.
> +              (snippet '(begin
> +                          (use-modules (guix build utils))
I'm really not sure we should write (use-modules …) within the snippet
like that.
> +                          (delete-file-recursively
> "deps/libsamplerate")))
> +              (sha256
> +               (base32
> +               
> "0z1ka4si8vcb0j6ih087cni18vpgfd3qnaw24awycxz23xc0jkdv"))))
> +    (build-system gnu-build-system)
> +    (arguments
> +     (list #:tests? #f                  ;no test suite
> +           #:make-flags
> +           #~(list (string-append "AR=" #$(ar-for-target))
> +                   (string-append "CC=" #$(cc-for-target))
> +                   (string-append "CXX=" #$(cxx-for-target))
> +                   (string-append "PREFIX=" #$output))
> +           #:phases #~(modify-phases %standard-phases
> +                        (delete 'configure)))) ;no configure script
> +    (native-inputs (list jg-api pkg-config))
> +    (inputs (list libsamplerate))
> +    (home-page "https://gitlab.com/jgemu/bsnes")
> +    (synopsis "Jolly Good Fork of bsnes")
> +    (description "@code{bsnes-jg} is a cycle accurate emulator for
> the Super
> +Famicom/Super Nintendo Entertainment System, including support for
> the Super
> +Game Boy, BS-X Satellaview, and Sufami Turbo.  @code{bsnes-jg} is a
> fork of
> +@code{bsnes} v115, Many changes have been made post-fork:
> +@itemize
> +@item Higher quality resampler with settings
> +@item Improved performance without loss of accuracy
> +@item Portability improvements
> +@item Removal of accuracy-reducing hacks and unnecessary code
> +@item Significant increase in standards compliance
> +@item Translation to the C++ Standard Library (ISO C++11)
> +@end itemize
> +
> +In particular, it uses much less @acronym{CPU, Central Processing
> Unit}
> +compared to the original @code{bsnes} (though not as little as
> @code{zsnes}).
> +
> +The supported file formats are:
> +@itemize @file
> +@item .sfc
> +@item .smc
> +@item .bs
> +@item .st
> +@item .fig
> +@item .swc
> +@end itemize
> +
> +This is intended to be used with the Jolly Good Reference Frontend
> +@command{jollygood} command from the @code{jgrf} package.")
> +    ;; The project license is GPL3+.  The bundled source licenses
> are also
> +    ;; listed below.
> +    (license (list license:gpl3+
> +                   license:bsd-3        ;byuuML
> +                   license:expat        ;gb
> +                   license:isc          ;libco
> +                   license:lgpl2.1+))))
> +
Cheers


^ permalink raw reply	[flat|nested] 14+ messages in thread

* [bug#73488] [PATCH games v3 2/7] gnu: bsnes: Remove input labels and use gexps.
  2024-10-03  7:50     ` Liliana Marie Prikler via Guix-patches
@ 2024-10-03 12:58       ` Maxim Cournoyer
  0 siblings, 0 replies; 14+ messages in thread
From: Maxim Cournoyer @ 2024-10-03 12:58 UTC (permalink / raw)
  To: Liliana Marie Prikler; +Cc: 73488, 宋文武, Adam Faiz

Hi Liliana,

Liliana Marie Prikler <liliana.prikler@gmail.com> writes:

> Am Donnerstag, dem 03.10.2024 um 16:25 +0900 schrieb Maxim Cournoyer:
>> * gnu/packages/emulators.scm (bsnes) [arguments]: Use gexps.
>> [inputs]: Remove labels.
>> [home-page]: Update URL.
>> 
>> Change-Id: I69046d977c4647f46c1359d62b762149b8f70160
>> ---
> I think we should write out "G-Expressions".

I think both are acceptable; just like we can write sexps for
S-Expressions, gexps for G-Expressions seems to the point (and requires
less typing).

> For the header, since we
> do both style improvements, I'd just write "Ujse new package style",
> though that one's a bit more controversial ;)

Yeah. That may not age too well if/when we have yet a newer package
style, haha!

> Content-wise LGTM.

Thanks for taking a look.

-- 
Thanks,
Maxim




^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2024-10-03 13:00 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-26  2:35 [bug#73488] [PATCH 0/7] Add Jolly Good and some of its emulators Maxim Cournoyer
2024-10-03  7:25 ` [bug#73488] [PATCH games v3 " Maxim Cournoyer
2024-10-03  7:25   ` [bug#73488] [PATCH games v3 1/7] teams: Register (gnu packages emulators) to games team Maxim Cournoyer
2024-10-03  7:25   ` [bug#73488] [PATCH games v3 2/7] gnu: bsnes: Remove input labels and use gexps Maxim Cournoyer via Guix-patches
2024-10-03  7:50     ` Liliana Marie Prikler via Guix-patches
2024-10-03 12:58       ` Maxim Cournoyer
2024-10-03  7:25   ` [bug#73488] [PATCH games v3 3/7] gnu: Add jg-api Maxim Cournoyer via
2024-10-03  7:51     ` Liliana Marie Prikler via Guix-patches
2024-10-03  7:25   ` [bug#73488] [PATCH games v3 4/7] gnu: Add jgrf Maxim Cournoyer via Guix-patches
2024-10-03  7:57     ` Liliana Marie Prikler via Guix-patches
2024-10-03  7:25   ` [bug#73488] [PATCH games v3 5/7] gnu: Add jg-bsnes Maxim Cournoyer
2024-10-03  8:00     ` Liliana Marie Prikler via Guix-patches via
2024-10-03  7:25   ` [bug#73488] [PATCH games v3 6/7] gnu: Add jg-nestopia Maxim Cournoyer
2024-10-03  7:25   ` [bug#73488] [PATCH games v3 7/7] gnu: Add jg-cega Maxim Cournoyer

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).