all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* [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 external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.