diff --git a/gnu/local.mk b/gnu/local.mk index 7c208b9c0d..9d7b269272 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1066,8 +1066,6 @@ dist_patch_DATA = \ %D%/packages/patches/debops-constants-for-external-program-names.patch \ %D%/packages/patches/debops-debops-defaults-fall-back-to-less.patch \ %D%/packages/patches/dee-vapi.patch \ - %D%/packages/patches/desmume-gcc6-fixes.patch \ - %D%/packages/patches/desmume-gcc7-fixes.patch \ %D%/packages/patches/dfu-programmer-fix-libusb.patch \ %D%/packages/patches/diffutils-fix-signal-processing.patch \ %D%/packages/patches/directfb-davinci-glibc-228-compat.patch \ diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm index c5932a057c..0cb947c58a 100644 --- a/gnu/packages/emulators.scm +++ b/gnu/packages/emulators.scm @@ -19,6 +19,7 @@ ;;; Copyright © 2021 Guillaume Le Vaillant ;;; Copyright © 2023 c4droid ;;; Copyright © 2023 Yovan Naumovski +;;; Copyright © 2023 Hendursaga ;;; ;;; This file is part of GNU Guix. ;;; @@ -46,6 +47,7 @@ (define-module (gnu packages emulators) #:use-module (guix hg-download) #:use-module (guix utils) #:use-module (gnu packages) + #:use-module (gnu packages admin) #:use-module (gnu packages algebra) #:use-module (gnu packages assembly) #:use-module (gnu packages audio) @@ -219,28 +221,39 @@ (define-public blastem (define-public desmume (package (name "desmume") - (version "0.9.11") - (source - (origin - (method url-fetch) - (uri (string-append - "mirror://sourceforge/desmume/desmume/" - version "/desmume-" version ".tar.gz")) - (sha256 - (base32 - "15l8wdw3q61fniy3h93d84dnm6s4pyadvh95a0j6d580rjk4pcrs")) - (patches (search-patches "desmume-gcc6-fixes.patch" - "desmume-gcc7-fixes.patch")))) - (build-system gnu-build-system) + (version "0.9.13") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/TASEmulators/desmume") + (commit (string-append "release_" + (string-replace-substring version + "." "_"))))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1ylxv0gjcxwj6dgwly2fjhyr0wrs5yazkim9nvqb8p72mxfwls5y")))) + (build-system meson-build-system) (arguments - ;; Enable support for WiFi and microphone. - `(#:configure-flags '("--enable-wifi" - "--enable-openal"))) - (native-inputs - (list pkg-config intltool)) - (inputs - (list zlib sdl glib gtk+-2 glu)) - (home-page "http://desmume.org/") + (list #:configure-flags #~(list "-Dfrontend-cli=true" + "-Dfrontend-gtk=true" + "-Dgdb-stub=true" + "-Dopenal=true") + #:phases #~(modify-phases %standard-phases + ;; meson.build is in a subdirectory. + (add-after 'unpack 'chdir + (lambda _ + (chdir "desmume/src/frontend/posix")))))) + (native-inputs (list `(,glib "bin") gettext-minimal intltool pkg-config)) + (inputs (list agg + alsa-lib + gtk+ + libpcap + openal + sdl2 + soundtouch + zlib)) + (home-page "https://desmume.org/") (synopsis "Nintendo DS emulator") (description "DeSmuME is an emulator for the Nintendo DS handheld gaming console.") diff --git a/gnu/packages/patches/desmume-gcc6-fixes.patch b/gnu/packages/patches/desmume-gcc6-fixes.patch deleted file mode 100644 index 6eb9576f64..0000000000 --- a/gnu/packages/patches/desmume-gcc6-fixes.patch +++ /dev/null @@ -1,59 +0,0 @@ -From: zeromus -Origin: upstream, https://sourceforge.net/p/desmume/code/5514, https://sourceforge.net/p/desmume/code/5517, https://sourceforge.net/p/desmume/code/5430 -Subject: fix GCC6 issues -Bug: https://sourceforge.net/p/desmume/bugs/1570/ -Bug-Debian: http://bugs.debian.org/811691 - -Index: desmume/src/MMU_timing.h -=================================================================== ---- desmume/src/MMU_timing.h (revision 5513) -+++ desmume/src/MMU_timing.h (revision 5517) -@@ -155,8 +155,8 @@ - enum { ASSOCIATIVITY = 1 << ASSOCIATIVESHIFT }; - enum { BLOCKSIZE = 1 << BLOCKSIZESHIFT }; - enum { TAGSHIFT = SIZESHIFT - ASSOCIATIVESHIFT }; -- enum { TAGMASK = (u32)(~0 << TAGSHIFT) }; -- enum { BLOCKMASK = ((u32)~0 >> (32 - TAGSHIFT)) & (u32)(~0 << BLOCKSIZESHIFT) }; -+ enum { TAGMASK = (u32)(~0U << TAGSHIFT) }; -+ enum { BLOCKMASK = ((u32)~0U >> (32 - TAGSHIFT)) & (u32)(~0U << BLOCKSIZESHIFT) }; - enum { WORDSIZE = sizeof(u32) }; - enum { WORDSPERBLOCK = (1 << BLOCKSIZESHIFT) / WORDSIZE }; - enum { DATAPERWORD = WORDSIZE * ASSOCIATIVITY }; -Index: desmume/src/ctrlssdl.cpp -=================================================================== ---- desmume/src/ctrlssdl.cpp (revision 5513) -+++ desmume/src/ctrlssdl.cpp (revision 5517) -@@ -200,7 +200,7 @@ - break; - case SDL_JOYAXISMOTION: - /* Dead zone of 50% */ -- if( (abs(event.jaxis.value) >> 14) != 0 ) -+ if( ((u32)abs(event.jaxis.value) >> 14) != 0 ) - { - key = ((event.jaxis.which & 15) << 12) | JOY_AXIS << 8 | ((event.jaxis.axis & 127) << 1); - if (event.jaxis.value > 0) { -@@ -370,7 +370,7 @@ - Note: button constants have a 1bit offset. */ - case SDL_JOYAXISMOTION: - key_code = ((event->jaxis.which & 15) << 12) | JOY_AXIS << 8 | ((event->jaxis.axis & 127) << 1); -- if( (abs(event->jaxis.value) >> 14) != 0 ) -+ if( ((u32)abs(event->jaxis.value) >> 14) != 0 ) - { - if (event->jaxis.value > 0) - key_code |= 1; -Index: desmume/src/wifi.cpp -=================================================================== ---- desmume/src/wifi.cpp (revision 5429) -+++ desmume/src/wifi.cpp (revision 5430) -@@ -320,9 +320,9 @@ - - #if (WIFI_LOGGING_LEVEL >= 1) - #if WIFI_LOG_USE_LOGC -- #define WIFI_LOG(level, ...) if(level <= WIFI_LOGGING_LEVEL) LOGC(8, "WIFI: "__VA_ARGS__); -+ #define WIFI_LOG(level, ...) if(level <= WIFI_LOGGING_LEVEL) LOGC(8, "WIFI: " __VA_ARGS__); - #else -- #define WIFI_LOG(level, ...) if(level <= WIFI_LOGGING_LEVEL) printf("WIFI: "__VA_ARGS__); -+ #define WIFI_LOG(level, ...) if(level <= WIFI_LOGGING_LEVEL) printf("WIFI: " __VA_ARGS__); - #endif - #else - #define WIFI_LOG(level, ...) {} diff --git a/gnu/packages/patches/desmume-gcc7-fixes.patch b/gnu/packages/patches/desmume-gcc7-fixes.patch deleted file mode 100644 index a4934ff6e6..0000000000 --- a/gnu/packages/patches/desmume-gcc7-fixes.patch +++ /dev/null @@ -1,18 +0,0 @@ -From e1f7039f1b06add4fb75b2f8774000b8f05574af Mon Sep 17 00:00:00 2001 -From: rogerman -Date: Mon, 17 Aug 2015 21:15:04 +0000 -Subject: Fix bug with libfat string handling. - -diff --git a/src/utils/libfat/directory.cpp b/src/utils/libfat/directory.cpp -index 765d7ae5..b6d7f01f 100644 ---- a/src/utils/libfat/directory.cpp -+++ b/src/utils/libfat/directory.cpp -@@ -139,7 +139,7 @@ static size_t _FAT_directory_mbstoucs2 (ucs2_t* dst, const char* src, size_t len - int bytes; - size_t count = 0; - -- while (count < len-1 && src != '\0') { -+ while (count < len-1 && *src != '\0') { - bytes = mbrtowc (&tempChar, src, MB_CUR_MAX, &ps); - if (bytes > 0) { - *dst = (ucs2_t)tempChar;