Package: guix-patches;
Reported by: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Date: Thu, 26 Sep 2024 03:03:01 UTC
Severity: normal
Tags: patch
Done: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 73488 in the body.
You can then email your comments to 73488 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
guix-patches <at> gnu.org
:bug#73488
; Package guix-patches
.
(Thu, 26 Sep 2024 03:03:02 GMT) Full text and rfc822 format available.Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
:guix-patches <at> gnu.org
.
(Thu, 26 Sep 2024 03:03:02 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> To: guix-patches <at> gnu.org Cc: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> Subject: [PATCH 0/7] Add Jolly Good and some of its emulators Date: Thu, 26 Sep 2024 11:35:58 +0900
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
guix-patches <at> gnu.org
:bug#73488
; Package guix-patches
.
(Thu, 26 Sep 2024 03:18:01 GMT) Full text and rfc822 format available.Message #8 received at 73488 <at> debbugs.gnu.org (full text, mbox):
From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> To: 73488 <at> debbugs.gnu.org Cc: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> Subject: [PATCH 1/7] gnu: bsnes: Remove input labels and use gexps. Date: Thu, 26 Sep 2024 12:09:55 +0900
* gnu/packages/emulators.scm (bsnes) [arguments]: Use gexps. [inputs]: Remove labels. [home-page]: Update URL. Change-Id: I69046d977c4647f46c1359d62b762149b8f70160 --- 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
guix-patches <at> gnu.org
:bug#73488
; Package guix-patches
.
(Thu, 26 Sep 2024 03:18:02 GMT) Full text and rfc822 format available.Message #11 received at 73488 <at> debbugs.gnu.org (full text, mbox):
From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> To: 73488 <at> debbugs.gnu.org Cc: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> Subject: [PATCH 2/7] gnu: Add jg-api. Date: Thu, 26 Sep 2024 12:09:56 +0900
* gnu/packages/emulators.scm (jg-api): New variable. Change-Id: I2cd2086560f8353f8260209c4ee0f117c3615917 --- 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
guix-patches <at> gnu.org
:bug#73488
; Package guix-patches
.
(Thu, 26 Sep 2024 03:18:02 GMT) Full text and rfc822 format available.Message #14 received at 73488 <at> debbugs.gnu.org (full text, mbox):
From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> To: 73488 <at> debbugs.gnu.org Cc: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> Subject: [PATCH 3/7] gnu: Add jgrf. Date: Thu, 26 Sep 2024 12:09:57 +0900
* gnu/packages/emulators.scm (jgrf): New variable. Change-Id: I0cf706e66977ceb96902dcd54f9175031e129445 --- gnu/packages/emulators.scm | 59 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm index 09e722b4f4..6a5ff6cc19 100644 --- a/gnu/packages/emulators.scm +++ b/gnu/packages/emulators.scm @@ -2286,6 +2286,65 @@ (define-public jg-api Programming Interface} for emulators.") (license license:zlib))) +(define-public jgrf + (package + (name "jgrf") + (version "1.1.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/jgemu/jgrf") + (commit version))) + (file-name (git-file-name name version)) + (modules '((guix build utils))) + (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") + (delete-file-recursively "deps/miniz"))) + (sha256 + (base32 + "19n6h8l3vy5g2bqvxhxwqxlg070hjz22384yisadzwl3gjkkgpxk")))) + (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 libepoxy + libsamplerate + miniz + soxr + speexdsp + flac + lzo + sdl2 + zlib + `(,zstd "lib"))) + (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
guix-patches <at> gnu.org
:bug#73488
; Package guix-patches
.
(Thu, 26 Sep 2024 03:18:03 GMT) Full text and rfc822 format available.Message #17 received at 73488 <at> debbugs.gnu.org (full text, mbox):
From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> To: 73488 <at> debbugs.gnu.org Cc: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> Subject: [PATCH 4/7] gnu: jgrf: Add search path mechanism. Date: Thu, 26 Sep 2024 12:09:58 +0900
This makes it possible to automatically find core files in a profile. * gnu/packages/patches/jgrf-implement-search-paths.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. * gnu/packages/emulators.scm (jgrf) [source]: Apply patch. [native-search-paths]: New field. Change-Id: Ibd78d44dcdf23f4310b2f838d73b8e57d7f31b2a --- gnu/local.mk | 1 + gnu/packages/emulators.scm | 10 +- .../patches/jgrf-implement-search-paths.patch | 302 ++++++++++++++++++ 3 files changed, 312 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/jgrf-implement-search-paths.patch diff --git a/gnu/local.mk b/gnu/local.mk index 507cbfebca..1e85ab5352 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1589,6 +1589,7 @@ dist_patch_DATA = \ %D%/packages/patches/jfsutils-add-sysmacros.patch \ %D%/packages/patches/jfsutils-gcc-compat.patch \ %D%/packages/patches/jfsutils-include-systypes.patch \ + %D%/packages/patches/jgrf-implement-search-paths.patch \ %D%/packages/patches/john-the-ripper-jumbo-with-gcc-11.patch \ %D%/packages/patches/json-c-0.13-CVE-2020-12762.patch \ %D%/packages/patches/json-c-0.12-CVE-2020-12762.patch \ diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm index 6a5ff6cc19..49208f302d 100644 --- a/gnu/packages/emulators.scm +++ b/gnu/packages/emulators.scm @@ -2308,7 +2308,8 @@ (define-public jgrf (delete-file-recursively "deps/miniz"))) (sha256 (base32 - "19n6h8l3vy5g2bqvxhxwqxlg070hjz22384yisadzwl3gjkkgpxk")))) + "19n6h8l3vy5g2bqvxhxwqxlg070hjz22384yisadzwl3gjkkgpxk")) + (patches (search-patches "jgrf-implement-search-paths.patch")))) (build-system gnu-build-system) (arguments (list #:tests? #f ;no test suite @@ -2331,6 +2332,13 @@ (define-public jgrf sdl2 zlib `(,zstd "lib"))) + (native-search-paths + (list (search-path-specification + (variable "JOLLYGOOD_CORE_DIRS") + (files '("lib/jollygood"))) + (search-path-specification + (variable "JOLLYGOOD_ASSETS_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 diff --git a/gnu/packages/patches/jgrf-implement-search-paths.patch b/gnu/packages/patches/jgrf-implement-search-paths.patch new file mode 100644 index 0000000000..f4c6f20568 --- /dev/null +++ b/gnu/packages/patches/jgrf-implement-search-paths.patch @@ -0,0 +1,302 @@ +Upstream status: https://gitlab.com/jgemu/jgrf/-/merge_requests/61 + +Add support for searching core files and core files assets via the +JOLLYGOOD_CORE_DIRS and JOLLYGOOD_ASSETS_DIRS environment variables. + +diff --git a/Makefile b/Makefile +index ed6eb1c..fb0709c 100644 +--- a/Makefile ++++ b/Makefile +@@ -20,7 +20,9 @@ INCLUDES = -I$(DEPDIR) $(CFLAGS_JG) $(CFLAGS_EPOXY) $(CFLAGS_MINIZ) \ + + LIBS = -lm + +-DEFINES := ++# Define the '_GNU_SOURCE' macro to make the `strdup' function ++# available on GNU systems. ++DEFINES := -D_GNU_SOURCE + + # Conditions for DEFINES + ifneq ($(OS), Windows_NT) +diff --git a/deps/ezmenu.h b/deps/ezmenu.h +index 8400a02..6c8e14b 100644 +--- a/deps/ezmenu.h ++++ b/deps/ezmenu.h +@@ -66,10 +66,10 @@ enum ezmenu_input { + + static void ezmenu_init(struct ezmenu *m, int hres, int vres, + int fontw, int fonth) { +- memset(m, 0, sizeof *m); ++ memset(m, 0, sizeof(*m)); + m->w = hres/fontw; + m->h = vres/fonth; +- m->vislines = calloc(sizeof(char*), m->h); ++ m->vislines = calloc(m->h, sizeof(char*)); + } + + static void ezmenu_setlines(struct ezmenu *m, char**lines, unsigned linecount) { +diff --git a/jollygood.6 b/jollygood.6 +index 9f36407..17fef9c 100644 +--- a/jollygood.6 ++++ b/jollygood.6 +@@ -336,6 +336,14 @@ The directory for user-specific data files. + This path is used to find data files used by the cores. + Set by default to + .Pa $HOME/.local/share/jollygood/ . ++.It JOLLYGOOD_CORE_DIRS ++Colon-separated (or semicolon, on Windows) directories containing core ++files. If set, these core files directories take precedence over the ++default ones. ++.It JOLLYGOOD_ASSETS_DIRS ++Colon-separated (or semicolon, on Windows) directories containing core ++assets files. If set, these core assets directories take precedence ++over the default ones. + .El + .Sh EXAMPLES + .Bl -tag -width indent +diff --git a/src/jgrf.c b/src/jgrf.c +index 3a40d2d..12eede3 100644 +--- a/src/jgrf.c ++++ b/src/jgrf.c +@@ -161,6 +161,12 @@ static void mkdirr(const char *dir) { + #endif + } + ++#if defined(__MINGW32__) || defined(__MINGW64__) ++// Avoid a deprecation warning on Windows, where strdup exists but is ++// deprecated in favor of _strdup. ++#define strdup _strdup ++#endif ++ + // Create user directories + static void jgrf_mkdirs(void) { + mkdirr(gdata.configpath); +@@ -1096,6 +1102,88 @@ void jgrf_frametime(double frametime) { + corefps = frametime + 0.5; + } + ++// Wrapper that logs and errors in case of realloc problems. ++static void* jgrf_realloc(void* array, const size_t size) { ++ void* new_array; ++ if (size > 0 && !(new_array = realloc(array, size))) ++ jgrf_log(JG_LOG_ERR, "Realloc failure\n"); ++ return new_array; ++} ++ ++static void jgrf_strip_trailing_sep(char* word) { ++ int end = strlen(word) - 1; ++ while (word[end] == SEP) { ++ word[end] = '\0'; ++ end -= 1; ++ } ++} ++ ++// Tokenize PATH based on the platform path separator and return an ++// array of strings, or NULL if there nothing could be tokenized. The ++// count of the number of items is written at the location pointed by ++// the COUNT pointer. The returned array is dynamically allocated and ++// should be freed when no longer needed, along its inner strings. ++// `transform' can be provided to manipulate the recovered path items; ++// it must be the pointer of a procedure accepting a single string ++// (char*) path item as argument or NULL. ++static char** tokenize_path(int* count, const char* path, ++ void (*transform) (char*)) { ++ int length = 10; ++ int index = 0; ++ char* save_ptr; ++ char** items = jgrf_realloc(NULL, sizeof(char*) * length); ++ char* item; ++ char pathsep_str[2] = {PATHSEP, '\0'}; ++ char* wr_path = strdup(path); ++ if (!wr_path) ++ jgrf_log(JG_LOG_ERR, "strdup memory allocation failure\n"); ++ ++ item = strtok_r(wr_path, pathsep_str, &save_ptr); ++ while (item) { ++ if (transform) ++ transform(item); ++ ++ // Resize the array if needed. ++ if (index >= length) { ++ length += 10; ++ items = jgrf_realloc(items, sizeof(char*) * length); ++ } ++ ++ // Assign the component. ++ items[index] = strdup(item); ++ if (!items[index]) ++ jgrf_log(JG_LOG_ERR, "stdup memory allocation failure\n"); ++ ++ index += 1; ++ item = strtok_r(NULL, pathsep_str, &save_ptr); ++ } ++ free(wr_path); ++ jgrf_realloc(items, sizeof(char*) * index); ++ ++ *count = index; ++ return items; ++} ++ ++// Look if a core named NAME exists under the directory CORE_DIR. Set ++// CORE_FILE as a side-effect. Return 1 if found, 0 otherwise. ++static int search_core_file(char* core_file, size_t max_length, ++ const char* core_dir, const char* name) { ++ struct stat fbuf; ++ snprintf(core_file, max_length, "%s%c%s.%s", ++ core_dir, SEP, name, SOEXT); ++ return !stat(core_file, &fbuf); ++} ++ ++// Look if an core assets directory for core named NAME exists under ++// the directory ASSETS_DIR. Set CORE_ASSETS as a side-effect. Return ++// 1 if found, 0 otherwise. ++static int search_core_assets(char* core_assets, size_t max_length, ++ const char* assets_dir, const char* name) { ++ struct stat fbuf; ++ snprintf(core_assets, max_length, "%s%c%s", assets_dir, SEP, name); ++ return !stat(core_assets, &fbuf); ++} ++ + int main(int argc, char *argv[]) { + if (argc < 2) { + jgrf_cli_usage(argv[0]); +@@ -1188,7 +1276,7 @@ int main(int argc, char *argv[]) { + jg_get_coreinfo("")->name); + + #if defined(LIBDIR) && defined(DATADIR) // Check for core assets system-wide +- char coreassets[256]; ++ char coreassets[384]; + snprintf(coreassets, sizeof(coreassets), + "%s%cjollygood%c%s", DATADIR, SEP, SEP, gdata.corename); + +@@ -1204,7 +1292,7 @@ int main(int argc, char *argv[]) { + } + else if (!jgrf_core_default()) + jgrf_log(JG_LOG_ERR, +- "Cannot detect default core, or invalid file. Exiting...\n"); ++ "Cannot detect default core, or invalid file. Exiting...\n"); + + // Set the core path to the local core path + char corepath[384]; +@@ -1222,20 +1310,85 @@ int main(int argc, char *argv[]) { + } + #if defined(LIBDIR) && defined(DATADIR) // Check for the core system-wide + else { +- snprintf(corepath, sizeof(corepath), "%s%cjollygood%c%s.%s", +- LIBDIR, SEP, SEP, gdata.corename, SOEXT); +- +- // If it was found, set the core assets path +- if (stat(corepath, &fbuf) == 0) { +- snprintf(gdata.coreassets, sizeof(gdata.coreassets), +- "%s%cjollygood%c%s", DATADIR, SEP, SEP, gdata.corename); +- corefound = 1; ++ int core_assets_found = 0; ++ int count = 0; ++ ++ // Look for the core file in the JOLLYGOOD_CORE_DIRS search ++ // path. ++ const char* core_dirs_env = getenv("JOLLYGOOD_CORE_DIRS"); ++ if (core_dirs_env) { ++ char** core_dirs = tokenize_path(&count, core_dirs_env, ++ jgrf_strip_trailing_sep); ++ for (int i=0; i < count; ++i) { ++ const char* dir = core_dirs[i]; ++ if (search_core_file(corepath, sizeof corepath, ++ dir, gdata.corename)) { ++ corefound = 1; ++ break; ++ } ++ } ++ // Free all the allocated strings. ++ for (int i=0; i < count; ++i) ++ free(core_dirs[i]); ++ free(core_dirs); ++ } ++ ++ // Look in the configured LIBDIR as a fallback. ++ if (!corefound) { ++ char internal_core_dir[256]; ++ snprintf(internal_core_dir, sizeof internal_core_dir, "%s%c%s", ++ LIBDIR, SEP, "jollygood"); ++ if (search_core_file(corepath, sizeof corepath, ++ internal_core_dir, gdata.corename)) { ++ corefound = 1; ++ } else { ++ jgrf_log(JG_LOG_ERR, ++ "Could not locate core file. Exiting...\n"); ++ } + } +- } + +- // If no core was found, there is no reason to keep the program running +- if (!corefound) +- jgrf_log(JG_LOG_ERR, "Failed to locate core. Exiting...\n"); ++ // If it was found, set the core assets path. First consider ++ // the JOLLYGOOD_ASSETS_DIRS search path. ++ if (corefound) { ++ const char* assets_dirs_env = getenv("JOLLYGOOD_ASSETS_DIRS"); ++ if (assets_dirs_env) { ++ char** assets_dirs = tokenize_path(&count, assets_dirs_env, ++ jgrf_strip_trailing_sep); ++ for (int i=0; i < count; ++i) { ++ const char* dir = assets_dirs[i]; ++ if (search_core_assets(gdata.coreassets, ++ sizeof gdata.coreassets, ++ dir, gdata.corename)) { ++ core_assets_found = 1; ++ break; ++ } ++ } ++ for (int i=0; i < count; ++i) ++ free(assets_dirs[i]); ++ free(assets_dirs); ++ } ++ ++ // Look in the configured DATADIR as a fallback. ++ if (!core_assets_found) { ++ char internal_core_assets_dir[256]; ++ snprintf(internal_core_assets_dir, ++ sizeof internal_core_assets_dir, ++ "%s%c%s", DATADIR, SEP, "jollygood"); ++ if (search_core_assets(gdata.coreassets, ++ sizeof gdata.coreassets, ++ internal_core_assets_dir, ++ gdata.corename)) { ++ core_assets_found = 1; ++ } else { ++ // Not all emulators have core assets, ++ // e.g. 'cega', so this is not a critical ++ // condition. ++ jgrf_log(JG_LOG_INF, "No assets directory for core %s\n", ++ gdata.corename); ++ } ++ } ++ } ++ } + #endif // defined(LIBDIR) && defined(DATADIR) + + #endif // JGRF_STATIC +diff --git a/src/jgrf.h b/src/jgrf.h +index b3f4627..57bba0e 100644 +--- a/src/jgrf.h ++++ b/src/jgrf.h +@@ -45,8 +45,10 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + #if defined(_WIN32) || defined(__MINGW32__) || defined(__MINGW64__) + #define SEP '\\' ++ #define PATHSEP ';' + #else + #define SEP '/' ++ #define PATHSEP ':' + #endif + + typedef struct jgrf_gdata_t { // Global Data +@@ -59,7 +61,7 @@ typedef struct jgrf_gdata_t { // Global Data + char coreversion[32]; // Core Version + char gamename[128]; // Internally used game name + char gamefname[128]; // Internally used game name with extension +- char coreassets[256]; // Core asset path ++ char coreassets[384]; // Core asset path + char userassets[128]; // User asset path + char biospath[128]; // BIOS path + char cheatpath[128]; // Cheat path -- 2.46.0
guix-patches <at> gnu.org
:bug#73488
; Package guix-patches
.
(Thu, 26 Sep 2024 03:18:03 GMT) Full text and rfc822 format available.Message #20 received at 73488 <at> debbugs.gnu.org (full text, mbox):
From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> To: 73488 <at> debbugs.gnu.org Cc: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> Subject: [PATCH 5/7] gnu: Add jg-bsnes. Date: Thu, 26 Sep 2024 12:09:59 +0900
* gnu/packages/emulators.scm (jg-bsnes): New variable. Change-Id: If88a7bea0c87c8af8fce051f8bec891ff249449f --- gnu/packages/emulators.scm | 72 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm index 49208f302d..068349867f 100644 --- a/gnu/packages/emulators.scm +++ b/gnu/packages/emulators.scm @@ -2353,6 +2353,78 @@ (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 + (modules '((guix build utils))) + (snippet '(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
guix-patches <at> gnu.org
:bug#73488
; Package guix-patches
.
(Thu, 26 Sep 2024 03:18:04 GMT) Full text and rfc822 format available.Message #23 received at 73488 <at> debbugs.gnu.org (full text, mbox):
From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> To: 73488 <at> debbugs.gnu.org Cc: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> Subject: [PATCH 6/7] gnu: Add jg-nestopia. Date: Thu, 26 Sep 2024 12:10:00 +0900
* gnu/packages/emulators.scm (jg-nestopia): New variable. Change-Id: I2f686f43a8339a124b9ef9640638ab182ecf7079 --- gnu/packages/emulators.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm index 068349867f..909602acb3 100644 --- a/gnu/packages/emulators.scm +++ b/gnu/packages/emulators.scm @@ -2425,6 +2425,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
guix-patches <at> gnu.org
:bug#73488
; Package guix-patches
.
(Thu, 26 Sep 2024 03:18:05 GMT) Full text and rfc822 format available.Message #26 received at 73488 <at> debbugs.gnu.org (full text, mbox):
From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> To: 73488 <at> debbugs.gnu.org Cc: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> Subject: [PATCH 7/7] gnu: Add jg-cega. Date: Thu, 26 Sep 2024 12:10:01 +0900
* gnu/packages/emulators.scm (jg-cega): New variable. Change-Id: Ice3799d9aa4600006ac386fa40e80fb97b3018c8 --- gnu/packages/emulators.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm index 909602acb3..9e05d59f5c 100644 --- a/gnu/packages/emulators.scm +++ b/gnu/packages/emulators.scm @@ -2458,6 +2458,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
guix-patches <at> gnu.org
:bug#73488
; Package guix-patches
.
(Thu, 26 Sep 2024 03:34:01 GMT) Full text and rfc822 format available.Message #29 received at 73488 <at> debbugs.gnu.org (full text, mbox):
From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> To: 73488 <at> debbugs.gnu.org Subject: Re: [bug#73488] [PATCH 3/7] gnu: Add jgrf. Date: Thu, 26 Sep 2024 12:31:39 +0900
Hi, Maxim Cournoyer <maxim.cournoyer <at> gmail.com> writes: [...] > + (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 libepoxy > + libsamplerate > + miniz > + soxr > + speexdsp > + flac > + lzo > + sdl2 > + zlib > + `(,zstd "lib"))) I've noticed these inputs were not sorted; now fixed in a v2 that I'll keep locally in case there are other things to fix. -- Thanks, Maxim
adam.faiz <at> disroot.org, liliana.prikler <at> gmail.com, iyzsong <at> envs.net, guix-patches <at> gnu.org
:bug#73488
; Package guix-patches
.
(Thu, 03 Oct 2024 07:29:02 GMT) Full text and rfc822 format available.Message #32 received at 73488 <at> debbugs.gnu.org (full text, mbox):
From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> To: 73488 <at> debbugs.gnu.org Cc: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> Subject: [PATCH games v3 4/7] gnu: Add jgrf. Date: Thu, 3 Oct 2024 16:25:42 +0900
* 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
adam.faiz <at> disroot.org, liliana.prikler <at> gmail.com, iyzsong <at> envs.net, guix-patches <at> gnu.org
:bug#73488
; Package guix-patches
.
(Thu, 03 Oct 2024 07:29:02 GMT) Full text and rfc822 format available.Message #35 received at 73488 <at> debbugs.gnu.org (full text, mbox):
From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> To: 73488 <at> debbugs.gnu.org Cc: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> Subject: [PATCH games v3 7/7] gnu: Add jg-cega. Date: Thu, 3 Oct 2024 16:25:45 +0900
* 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
adam.faiz <at> disroot.org, liliana.prikler <at> gmail.com, iyzsong <at> envs.net, guix-patches <at> gnu.org
:bug#73488
; Package guix-patches
.
(Thu, 03 Oct 2024 07:29:03 GMT) Full text and rfc822 format available.Message #38 received at 73488 <at> debbugs.gnu.org (full text, mbox):
From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> To: 73488 <at> debbugs.gnu.org Cc: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> Subject: [PATCH games v3 2/7] gnu: bsnes: Remove input labels and use gexps. Date: Thu, 3 Oct 2024 16:25:40 +0900
* 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
adam.faiz <at> disroot.org, liliana.prikler <at> gmail.com, iyzsong <at> envs.net, guix-patches <at> gnu.org
:bug#73488
; Package guix-patches
.
(Thu, 03 Oct 2024 07:30:01 GMT) Full text and rfc822 format available.Message #41 received at 73488 <at> debbugs.gnu.org (full text, mbox):
From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> To: 73488 <at> debbugs.gnu.org Cc: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> Subject: [PATCH games v3 3/7] gnu: Add jg-api. Date: Thu, 3 Oct 2024 16:25:41 +0900
* 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
adam.faiz <at> disroot.org, liliana.prikler <at> gmail.com, iyzsong <at> envs.net, guix-patches <at> gnu.org
:bug#73488
; Package guix-patches
.
(Thu, 03 Oct 2024 07:30:02 GMT) Full text and rfc822 format available.Message #44 received at 73488 <at> debbugs.gnu.org (full text, mbox):
From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> To: 73488 <at> debbugs.gnu.org Cc: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> Subject: [PATCH games v3 6/7] gnu: Add jg-nestopia. Date: Thu, 3 Oct 2024 16:25:44 +0900
* 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
adam.faiz <at> disroot.org, liliana.prikler <at> gmail.com, iyzsong <at> envs.net, guix-patches <at> gnu.org
:bug#73488
; Package guix-patches
.
(Thu, 03 Oct 2024 07:30:02 GMT) Full text and rfc822 format available.Message #47 received at 73488 <at> debbugs.gnu.org (full text, mbox):
From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> To: 73488 <at> debbugs.gnu.org Cc: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> Subject: [PATCH games v3 0/7] Add Jolly Good and some of its emulators Date: Thu, 3 Oct 2024 16:25:38 +0900
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
guix-patches <at> gnu.org
:bug#73488
; Package guix-patches
.
(Thu, 03 Oct 2024 07:30:03 GMT) Full text and rfc822 format available.Message #50 received at 73488 <at> debbugs.gnu.org (full text, mbox):
From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> To: 73488 <at> debbugs.gnu.org Cc: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> Subject: [PATCH games v3 1/7] teams: Register (gnu packages emulators) to games team. Date: Thu, 3 Oct 2024 16:25:39 +0900
* 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
adam.faiz <at> disroot.org, liliana.prikler <at> gmail.com, iyzsong <at> envs.net, guix-patches <at> gnu.org
:bug#73488
; Package guix-patches
.
(Thu, 03 Oct 2024 07:30:03 GMT) Full text and rfc822 format available.Message #53 received at 73488 <at> debbugs.gnu.org (full text, mbox):
From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> To: 73488 <at> debbugs.gnu.org Cc: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> Subject: [PATCH games v3 5/7] gnu: Add jg-bsnes. Date: Thu, 3 Oct 2024 16:25:43 +0900
* 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
guix-patches <at> gnu.org
:bug#73488
; Package guix-patches
.
(Thu, 03 Oct 2024 07:53:01 GMT) Full text and rfc822 format available.Message #56 received at 73488 <at> debbugs.gnu.org (full text, mbox):
From: Liliana Marie Prikler <liliana.prikler <at> gmail.com> To: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>, 73488 <at> debbugs.gnu.org Cc: 宋文武 <iyzsong <at> envs.net>, Adam Faiz <adam.faiz <at> disroot.org> Subject: Re: [bug#73488] [PATCH games v3 2/7] gnu: bsnes: Remove input labels and use gexps. Date: Thu, 03 Oct 2024 09:50:34 +0200
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.
guix-patches <at> gnu.org
:bug#73488
; Package guix-patches
.
(Thu, 03 Oct 2024 07:54:02 GMT) Full text and rfc822 format available.Message #59 received at 73488 <at> debbugs.gnu.org (full text, mbox):
From: Liliana Marie Prikler <liliana.prikler <at> gmail.com> To: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>, 73488 <at> debbugs.gnu.org Cc: 宋文武 <iyzsong <at> envs.net>, Adam Faiz <adam.faiz <at> disroot.org> Subject: Re: [bug#73488] [PATCH games v3 3/7] gnu: Add jg-api. Date: Thu, 03 Oct 2024 09:51:51 +0200
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
guix-patches <at> gnu.org
:bug#73488
; Package guix-patches
.
(Thu, 03 Oct 2024 07:59:02 GMT) Full text and rfc822 format available.Message #62 received at 73488 <at> debbugs.gnu.org (full text, mbox):
From: Liliana Marie Prikler <liliana.prikler <at> gmail.com> To: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>, 73488 <at> debbugs.gnu.org Cc: 宋文武 <iyzsong <at> envs.net>, Adam Faiz <adam.faiz <at> disroot.org> Subject: Re: [bug#73488] [PATCH games v3 4/7] gnu: Add jgrf. Date: Thu, 03 Oct 2024 09:57:15 +0200
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
guix-patches <at> gnu.org
:bug#73488
; Package guix-patches
.
(Thu, 03 Oct 2024 08:03:02 GMT) Full text and rfc822 format available.Message #65 received at 73488 <at> debbugs.gnu.org (full text, mbox):
From: Liliana Marie Prikler <liliana.prikler <at> gmail.com> To: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>, 73488 <at> debbugs.gnu.org Cc: 宋文武 <iyzsong <at> envs.net>, Adam Faiz <adam.faiz <at> disroot.org> Subject: Re: [bug#73488] [PATCH games v3 5/7] gnu: Add jg-bsnes. Date: Thu, 03 Oct 2024 10:00:21 +0200
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
guix-patches <at> gnu.org
:bug#73488
; Package guix-patches
.
(Thu, 03 Oct 2024 13:00:02 GMT) Full text and rfc822 format available.Message #68 received at 73488 <at> debbugs.gnu.org (full text, mbox):
From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> To: Liliana Marie Prikler <liliana.prikler <at> gmail.com> Cc: 73488 <at> debbugs.gnu.org, 宋文武 <iyzsong <at> envs.net>, Adam Faiz <adam.faiz <at> disroot.org> Subject: Re: [bug#73488] [PATCH games v3 2/7] gnu: bsnes: Remove input labels and use gexps. Date: Thu, 03 Oct 2024 21:58:24 +0900
Hi Liliana, Liliana Marie Prikler <liliana.prikler <at> 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
guix-patches <at> gnu.org
:bug#73488
; Package guix-patches
.
(Sat, 05 Oct 2024 12:59:01 GMT) Full text and rfc822 format available.Message #71 received at 73488 <at> debbugs.gnu.org (full text, mbox):
From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> To: Liliana Marie Prikler <liliana.prikler <at> gmail.com> Cc: 73488 <at> debbugs.gnu.org, Adam Faiz <adam.faiz <at> disroot.org>, 宋文武 <iyzsong <at> envs.net> Subject: Re: [bug#73488] [PATCH games v3 4/7] gnu: Add jgrf. Date: Sat, 05 Oct 2024 21:57:30 +0900
Hi Liliana, Liliana Marie Prikler <liliana.prikler <at> gmail.com> writes: > Am Donnerstag, dem 03.10.2024 um 16:25 +0900 schrieb Maxim Cournoyer: >> * gnu/packages/emulators.scm (jgrf): New variable. >> >> Change-Id: I0cf706e66977ceb96902dcd54f9175031e129445 [...] >> +(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? I think the (guix build utils) is now implicitly added to the snippet environment, but I can't find the commit/code that does so. If that wasn't the case the above would fail though. >> + (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"? I've adjusted to "aims to be the simplest possible frontend [...]". >> 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? That's my understanding too. If you developed just an emulator and want to distribute it in a more usable form, you could build the whole thing as a static binary and distribute that, as I understand it. Thanks for taking a look! -- Thanks, Maxim
guix-patches <at> gnu.org
:bug#73488
; Package guix-patches
.
(Sat, 05 Oct 2024 13:03:01 GMT) Full text and rfc822 format available.Message #74 received at 73488 <at> debbugs.gnu.org (full text, mbox):
From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> To: Liliana Marie Prikler <liliana.prikler <at> gmail.com> Cc: 73488 <at> debbugs.gnu.org, Adam Faiz <adam.faiz <at> disroot.org>, 宋文武 <iyzsong <at> envs.net> Subject: Re: [bug#73488] [PATCH games v3 3/7] gnu: Add jg-api. Date: Sat, 05 Oct 2024 22:01:24 +0900
Hi, Liliana Marie Prikler <liliana.prikler <at> gmail.com> writes: > 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. Good call; I've added the "standard" ";no test suite" inline comment. >> + #:make-flags #~(list (string-append "PREFIX=" #$output)) >> + #:phases #~(modify-phases %standard-phases >> + (delete 'configure)))) ;no configure phase > What about 'bootstrap? No need to mess with it; it checks if a "configure" script exists (which doesn't in this case -- it's a pure Make-based build system) and when it doesn't it simply does: --8<---------------cut here---------------start------------->8--- (format #t "GNU build system bootstrapping not needed~%") --8<---------------cut here---------------end--------------->8--- -- Thanks, Maxim
guix-patches <at> gnu.org
:bug#73488
; Package guix-patches
.
(Sat, 05 Oct 2024 13:40:01 GMT) Full text and rfc822 format available.Message #77 received at 73488 <at> debbugs.gnu.org (full text, mbox):
From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> To: Liliana Marie Prikler <liliana.prikler <at> gmail.com> Cc: 73488 <at> debbugs.gnu.org, Adam Faiz <adam.faiz <at> disroot.org>, 宋文武 <iyzsong <at> envs.net> Subject: Re: [bug#73488] [PATCH games v3 5/7] gnu: Add jg-bsnes. Date: Sat, 05 Oct 2024 22:38:19 +0900
Hi, Liliana Marie Prikler <liliana.prikler <at> gmail.com> writes: > Am Donnerstag, dem 03.10.2024 um 16:25 +0900 schrieb Maxim Cournoyer: >> * gnu/packages/emulators.scm (jg-bsnes): New variable. >> >> Change-Id: If88a7bea0c87c8af8fce051f8bec891ff249449f [...] >> +(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. I don't think that's too feasible; these sources are intended to be used in source forms; they don't ship with any build system. See for example byuuML [0]. gb corresponds to the 'core' source files of SameBoy: https://github.com/LIJI32/SameBoy; it doesn't seem possible to build a 'core' library from that, although its symbols are probably part of the a sameboy.so library we could build as part as our 'sameboy' package, so this could be a possibility. libco is supposed to be removed at some point [1] and finally spec_dsp appears to be a modified forked of the original spec_dsp.c and spc_dsp.h (no build system), making it more source than library. I've still opened an issue mentioning that it'd be nice to use more deps from the system, and that it seems it'd be practical to do so for SameBoy [2]. [0] https://github.com/SolraBizna/byuuML/tree/master?tab=readme-ov-file#using-the-byuuml-library [1] https://gitlab.com/jgemu/bsnes/-/issues/3 [2] https://gitlab.com/jgemu/bsnes/-/issues/6 -- Thanks, Maxim
Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
:Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
:Message #82 received at 73488-done <at> debbugs.gnu.org (full text, mbox):
From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> To: 73488-done <at> debbugs.gnu.org Cc: 宋文武 <iyzsong <at> envs.net>, Liliana Marie Prikler <liliana.prikler <at> gmail.com>, Adam Faiz <adam.faiz <at> disroot.org> Subject: Re: [bug#73488] [PATCH games v3 0/7] Add Jolly Good and some of its emulators Date: Sat, 05 Oct 2024 22:58:28 +0900
Hi, Maxim Cournoyer <maxim.cournoyer <at> gmail.com> writes: > 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. With most of Liliana's comments addressed in what would be have been v4, I went ahead and pushed this to master with commit 1ca236a02a and following; thanks to Liliana for the review. If I missed anything, let me know! Otherwise, enjoy. -- Thanks, Maxim
Debbugs Internal Request <help-debbugs <at> gnu.org>
to internal_control <at> debbugs.gnu.org
.
(Sun, 03 Nov 2024 12:24:13 GMT) Full text and rfc822 format available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.