* [bug#68469] [PATCH] gnu: Add melonds.
@ 2024-01-15 12:47 altadil via Guix-patches via
2024-01-16 7:11 ` Lilah Tascheter via Guix-patches
2024-05-28 11:03 ` cesarbcr via Guix-patches via
0 siblings, 2 replies; 3+ messages in thread
From: altadil via Guix-patches via @ 2024-01-15 12:47 UTC (permalink / raw)
To: 68469; +Cc: altadil
* gnu/packages/emulators.scm (melonds): New variable.
Change-Id: I8f7d31686fe5c9860acd86eb5740933218ca2910
---
guix build --no-grafts --check --rounds=2 --system=x86_64-linux was
run successfully on a Zen4 CPU.
gnu/packages/emulators.scm | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index cde3ee052c..a0235e572b 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -21,6 +21,7 @@
;;; Copyright © 2023 Yovan Naumovski <yovan@gorski.stream>
;;; Copyright © 2023 Hendursaga <hendursaga@aol.com>
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
+;;; Copyright © 2024 Altadil <altadil@protonmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -81,6 +82,7 @@ (define-module (gnu packages emulators)
#:use-module (gnu packages graphics)
#:use-module (gnu packages gtk)
#:use-module (gnu packages image)
+ #:use-module (gnu packages kde-frameworks)
#:use-module (gnu packages libedit)
#:use-module (gnu packages libusb)
#:use-module (gnu packages linux)
@@ -733,6 +735,39 @@ (define-public mednafen
;; Main license is GPL2+. Some parts are BSD-3.
(license (list license:gpl2+ license:bsd-3))))
+(define-public melonds
+ (package
+ (name "melonds")
+ (version "0.9.5")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/melonDS-emu/melonDS")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256 (base32 "0c4hhs5mffj43pa2y18k70q6szc09m8yj0gqw2svszpvpz2n91cz"))))
+ (build-system cmake-build-system)
+ (arguments (list #:tests? #f)) ; No test target available.
+ (native-inputs (list extra-cmake-modules pkg-config))
+ (inputs (list curl
+ gnutls
+ libarchive
+ libpcap
+ libslirp
+ qtbase-5
+ qtmultimedia-5
+ sdl2
+ wayland
+ zstd))
+ (synopsis "DS emulator")
+ (description "melonDS is an emulator of the Nintendo DS. It aims at
+providing fast and accurate emulation. While it is still a work in progress,
+it has a pretty solid set of features, includind a nearly complete core, a JIT
+recompiler for fast emulation, an OpenGL renderer, joystick support and
+savestates.")
+ (home-page "https://melonds.kuribo64.net/")
+ (license license:gpl3+)))
+
(define-public mgba
(package
(name "mgba")
base-commit: 162d6a2fdd6af13272967c77347a54934ecb45e6
--
2.41.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [bug#68469] [PATCH] gnu: Add melonds.
2024-01-15 12:47 [bug#68469] [PATCH] gnu: Add melonds altadil via Guix-patches via
@ 2024-01-16 7:11 ` Lilah Tascheter via Guix-patches
2024-05-28 11:03 ` cesarbcr via Guix-patches via
1 sibling, 0 replies; 3+ messages in thread
From: Lilah Tascheter via Guix-patches @ 2024-01-16 7:11 UTC (permalink / raw)
To: 68469
hi!
great patch!! :)
there's a few small issues I found:
* the source hash line is too long, style guide says lines shouldn't
exceed 80 cols.
* melonds doesn't actually require curl and gnutls. no clue why their
README says it does. I've verified it compiles without them.
* melonds secretly bundles in pre-compiled DS firmware in
src/FreeBIOS.h. they do, however, provide source, but our buildscript
shouldn't rely on bundled blobs.
I took the liberty of attaching an edited patch. hope that's alright!
- lilah
---
gnu/packages/emulators.scm | 64 ++++++++++++++++++++++++++++++++++++++
1 file changed, 64 insertions(+)
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index cde3ee052c..0f7962115d 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -21,6 +21,7 @@
;;; Copyright © 2023 Yovan Naumovski <yovan@gorski.stream>
;;; Copyright © 2023 Hendursaga <hendursaga@aol.com>
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
+;;; Copyright © 2024 Altadil <altadil@protonmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -81,6 +82,7 @@ (define-module (gnu packages emulators)
#:use-module (gnu packages graphics)
#:use-module (gnu packages gtk)
#:use-module (gnu packages image)
+ #:use-module (gnu packages kde-frameworks)
#:use-module (gnu packages libedit)
#:use-module (gnu packages libusb)
#:use-module (gnu packages linux)
@@ -102,6 +104,7 @@ (define-module (gnu packages emulators)
#:use-module (gnu packages tls)
#:use-module (gnu packages upnp)
#:use-module (gnu packages video)
+ #:use-module (gnu packages vim)
#:use-module (gnu packages vulkan)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xiph)
@@ -733,6 +736,67 @@ (define-public mednafen
;; Main license is GPL2+. Some parts are BSD-3.
(license (list license:gpl2+ license:bsd-3))))
+(define-public melonds
+ (package
+ (name "melonds")
+ (version "0.9.5")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/melonDS-emu/melonDS")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0c4hhs5mffj43pa2y18k70q6szc09m8yj0gqw2svszpvpz2n91cz"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list #:tests? #f ; No test target available.
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'configure 'compile-bios
+ (lambda* (#:key inputs #:allow-other-keys)
+ (define (as arm arch)
+ (invoke "arm-none-eabi-gcc"
+ "-c" "freebios/bios_common.S"
+ (string-append "-march=armv" arch)
+ (string-append "-DBIOS_ARM" arm)
+ "-o" (string-append "bios_arm" arm ".o"))
+ (invoke "arm-none-eabi-objcopy"
+ "-O" "binary"
+ (string-append "bios_arm" arm ".o")
+ (string-append "bios_arm" arm ".bin")))
+
+ (as "7" "4t")
+ (as "9" "5te")
+ (with-output-to-file "src/FreeBIOS.h"
+ (lambda ()
+ (display "#ifndef FREEBIOS_H\n#define FREEBIOS_H\n")
+ (invoke "xxd" "-i" "bios_arm7.bin")
+ (invoke "xxd" "-i" "bios_arm9.bin")
+ (display "#endif\n"))))))))
+ (native-inputs (list (cross-gcc "arm-none-eabi")
+ (cross-binutils "arm-none-eabi")
+ extra-cmake-modules
+ pkg-config
+ xxd))
+ (inputs (list libarchive
+ libpcap
+ libslirp
+ qtbase-5
+ qtmultimedia-5
+ sdl2
+ wayland
+ zstd))
+ (synopsis "DS emulator")
+ (description "melonDS is an emulator of the Nintendo DS. It aims at
+providing fast and accurate emulation. While it is still a work in progress,
+it has a pretty solid set of features, includind a nearly complete core, a JIT
+recompiler for fast emulation, an OpenGL renderer, joystick support and
+savestates.")
+ (home-page "https://melonds.kuribo64.net/")
+ (license license:gpl3+)))
+
(define-public mgba
(package
(name "mgba")
base-commit: 21f5d20d68e0359f8111ccb936905649c70db9c1
--
2.41.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [bug#68469] [PATCH] gnu: Add melonds
2024-01-15 12:47 [bug#68469] [PATCH] gnu: Add melonds altadil via Guix-patches via
2024-01-16 7:11 ` Lilah Tascheter via Guix-patches
@ 2024-05-28 11:03 ` cesarbcr via Guix-patches via
1 sibling, 0 replies; 3+ messages in thread
From: cesarbcr via Guix-patches via @ 2024-05-28 11:03 UTC (permalink / raw)
To: 68469@debbugs.gnu.org; +Cc: lilah@lunabee.space
Hi,
thanks a lot for your help!
Really sorry to not have answered sooner (I wrongly assumed debbugs would send notifications to me, so didn’t check the thread).
It seems your level in packaging is far above mine, so I can’t comment on your improvement (except saying it’s impressive ^.^).
The only thing I can add is: you should add yourself to the copyright lines at the top (but anyone can do it for you, once we get feedback from a reviewer).
Thanks again!
Altadil
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2024-05-28 14:39 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-01-15 12:47 [bug#68469] [PATCH] gnu: Add melonds altadil via Guix-patches via
2024-01-16 7:11 ` Lilah Tascheter via Guix-patches
2024-05-28 11:03 ` cesarbcr via Guix-patches via
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).