summaryrefslogtreecommitdiff
path: root/gnu/packages/emulators.scm
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2024-09-19 20:49:28 +0900
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2024-10-05 22:50:05 +0900
commit999f90ec6caf0e95078bd6d446ef5978dd8e5702 (patch)
tree9f5b14258a61a9a8961f22cd9c874194ee7faf73 /gnu/packages/emulators.scm
parent158d00fa47d008bc9dcede42a8045edb77680007 (diff)
gnu: Add jg-bsnes.
* gnu/packages/emulators.scm (jg-bsnes): New variable. Change-Id: If88a7bea0c87c8af8fce051f8bec891ff249449f
Diffstat (limited to 'gnu/packages/emulators.scm')
-rw-r--r--gnu/packages/emulators.scm74
1 files changed, 74 insertions, 0 deletions
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index 8f18e6bb5f3..a7a22f5ef49 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -2352,6 +2352,80 @@ as a \"white-label\" frontend for statically linked standalone emulators.")
2352 license:public-domain ;md5.h, md5.c, parg.h, parg.c 2352 license:public-domain ;md5.h, md5.c, parg.h, parg.c
2353 license:cc0)))) 2353 license:cc0))))
2354 2354
2355(define-public jg-bsnes
2356 (package
2357 (name "jg-bsnes")
2358 (version "2.0.0")
2359 (source (origin
2360 (method git-fetch)
2361 (uri (git-reference
2362 (url "https://gitlab.com/jgemu/bsnes")
2363 (commit version)))
2364 (file-name (git-file-name name version))
2365 ;; XXX: Some source dependencies are bundled and are not easy to
2366 ;; unbundle due to the build system building an object combining
2367 ;; their sources directly (see:
2368 ;; https://gitlab.com/jgemu/bsnes/-/issues/6).
2369 ;; - byuuML (no build system)
2370 ;; - gb (the 'Core' sources of SameBoy)
2371 ;; - libco (no build system)
2372 ;; - snes_spc (also modified by this project)
2373 (snippet '(begin
2374 (use-modules (guix build utils))
2375 (delete-file-recursively "deps/libsamplerate")))
2376 (sha256
2377 (base32
2378 "0z1ka4si8vcb0j6ih087cni18vpgfd3qnaw24awycxz23xc0jkdv"))))
2379 (build-system gnu-build-system)
2380 (arguments
2381 (list #:tests? #f ;no test suite
2382 #:make-flags
2383 #~(list (string-append "AR=" #$(ar-for-target))
2384 (string-append "CC=" #$(cc-for-target))
2385 (string-append "CXX=" #$(cxx-for-target))
2386 (string-append "PREFIX=" #$output))
2387 #:phases #~(modify-phases %standard-phases
2388 (delete 'configure)))) ;no configure script
2389 (native-inputs (list jg-api pkg-config))
2390 (inputs (list libsamplerate))
2391 (home-page "https://gitlab.com/jgemu/bsnes")
2392 (synopsis "Jolly Good Fork of bsnes")
2393 (description "@code{bsnes-jg} is a cycle accurate emulator for the Super
2394Famicom/Super Nintendo Entertainment System, including support for the Super
2395Game Boy, BS-X Satellaview, and Sufami Turbo. @code{bsnes-jg} is a fork of
2396@code{bsnes} v115, Many changes have been made post-fork:
2397@itemize
2398@item Higher quality resampler with settings
2399@item Improved performance without loss of accuracy
2400@item Portability improvements
2401@item Removal of accuracy-reducing hacks and unnecessary code
2402@item Significant increase in standards compliance
2403@item Translation to the C++ Standard Library (ISO C++11)
2404@end itemize
2405
2406In particular, it uses much less @acronym{CPU, Central Processing Unit}
2407compared to the original @code{bsnes} (though not as little as @code{zsnes}).
2408
2409The supported file formats are:
2410@itemize @file
2411@item .sfc
2412@item .smc
2413@item .bs
2414@item .st
2415@item .fig
2416@item .swc
2417@end itemize
2418
2419This is intended to be used with the Jolly Good Reference Frontend
2420@command{jollygood} command from the @code{jgrf} package.")
2421 ;; The project license is GPL3+. The bundled source licenses are also
2422 ;; listed below.
2423 (license (list license:gpl3+
2424 license:bsd-3 ;byuuML
2425 license:expat ;gb
2426 license:isc ;libco
2427 license:lgpl2.1+))))
2428
2355(define-public zsnes 2429(define-public zsnes
2356 (package 2430 (package
2357 (name "zsnes") 2431 (name "zsnes")