aboutsummaryrefslogtreecommitdiff
path: root/nix
diff options
context:
space:
mode:
Diffstat (limited to 'nix')
0 files changed, 0 insertions, 0 deletions
PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (gnu packages emulators) #:use-module (ice-9 match) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix gexp) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix svn-download) #: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) #:use-module (gnu packages autogen) #:use-module (gnu packages autotools) #:use-module (gnu packages backup) #:use-module (gnu packages base) #:use-module (gnu packages bash) #:use-module (gnu packages bison) #:use-module (gnu packages boost) #:use-module (gnu packages cdrom) #:use-module (gnu packages check) #:use-module (gnu packages cmake) #:use-module (gnu packages compression) #:use-module (gnu packages containers) #:use-module (gnu packages cross-base) #:use-module (gnu packages curl) #:use-module (gnu packages digest) #:use-module (gnu packages engineering) #:use-module (gnu packages elf) #:use-module (gnu packages flex) #:use-module (gnu packages fltk) #:use-module (gnu packages fonts) #:use-module (gnu packages fontutils) #:use-module (gnu packages freedesktop) #:use-module (gnu packages fribidi) #:use-module (gnu packages game-development) #:use-module (gnu packages gettext) #:use-module (gnu packages gl) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) #:use-module (gnu packages graphics) #:use-module (gnu packages gtk) #:use-module (gnu packages image) #:use-module (gnu packages libedit) #:use-module (gnu packages libusb) #:use-module (gnu packages linux) #:use-module (gnu packages lua) #:use-module (gnu packages maths) #:use-module (gnu packages mp3) #:use-module (gnu packages music) #:use-module (gnu packages ncurses) #:use-module (gnu packages networking) #:use-module (gnu packages pkg-config) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages python) #:use-module (gnu packages python-build) #:use-module (gnu packages qt) #:use-module (gnu packages sdl) #:use-module (gnu packages sphinx) #:use-module (gnu packages sqlite) #:use-module (gnu packages texinfo) #:use-module (gnu packages textutils) #:use-module (gnu packages tls) #:use-module (gnu packages upnp) #:use-module (gnu packages video) #:use-module (gnu packages vulkan) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xiph) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) #:use-module (gnu packages web) #:use-module (guix build-system cmake) #:use-module (guix build-system copy) #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system gnu) #:use-module (guix build-system meson) #:use-module (guix build-system python) #:use-module (guix build-system pyproject) #:use-module (guix build-system qt) #:use-module (guix build-system trivial)) (define-public vice (package (name "vice") (version "3.8") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/vice-emu/releases/" "vice-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 "010h3aj0y9n8kcg5yvy1m7g4hc7nbm5gym5r3f3jmk5vyb8c8z8x")))) (build-system gnu-build-system) (arguments (list #:configure-flags #~(list "--disable-html-docs" "--disable-pdf-docs"))) (native-inputs (list bison dos2unix flex `(,glib "bin") ; for glib-genmarshal, etc. pkg-config)) (inputs (list alsa-lib curl glew glib gtk+ pulseaudio sdl sdl-image xa)) (home-page "https://vice-emu.sourceforge.io/") (synopsis "The versatile Commodore emulator") (description "VICE is a program that emulates the C64, the C64DTV, the C128, the VIC20, practically all PET models, the PLUS4 and the CBM-II (aka C610/C510). An extra emulator is provided for C64 expanded with the CMD SuperCPU.") (license license:gpl2+))) (define-public blastem (package (name "blastem") (version "0.6.2") (source (origin (method hg-fetch) (uri (hg-reference (url "https://www.retrodev.com/repos/blastem") (changeset (string-append "v" version)))) (file-name (string-append name "-" version "-checkout")) (sha256 (base32 "08ycfisivh9rb9vmijlrpdryaw8spd81ck48960p15cnf8h2535q")) (modules '((guix build utils))) (snippet '(begin ;; TODO: Separately package and unbundle nuklear (delete-file-recursively "zlib"))))) (build-system gnu-build-system) (arguments `(#:make-flags (list (string-append "CC=" ,(cc-for-target)) "HOST_ZLIB=1" "HAS_PROC=-DHAS_PROC" (string-append "CONFIG_PATH=" %output "/share/blastem") (string-append "DATA_PATH=" %output "/share/blastem")) #:tests? #f ; No check target and custom tests don't seem to build #:imported-modules ((guix build copy-build-system) ,@%default-gnu-imported-modules) #:modules (((guix build copy-build-system) #:prefix copy:) (guix build gnu-build-system) (guix build utils)) #:phases (modify-phases %standard-phases (add-after 'unpack 'fix-source (lambda _ (substitute* (find-files "." ".*\\.[ch]") (("\"zlib/zlib.h\"") "<zlib.h>")) (substitute* "Makefile" (("CFLAGS:=-std=gnu99" all) (string-append all " -fcommon"))))) (delete 'configure) (replace 'install (lambda* args (apply (assoc-ref copy:%standard-phases 'install) #:install-plan '(("." "bin" #:include ("blastem" "vgmplay")) ("." "share/blastem" #:include ("default.cfg" "rom.db") #:exclude ("android")) ("shaders" "share/blastem/shaders")) args)))))) (inputs (list glew mesa sdl2 zlib)) (native-inputs (list pkg-config)) (home-page "https://www.retrodev.com/blastem/") (synopsis "Genesis/Mega Drive emulator") (description "Blastem is an emulator for the Sega Genesis/Mega Drive console.") (license license:gpl3+))) (define-public desmume (package (name "desmume") (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 (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.") (license license:gpl2))) ;; Building from recent Git because the official 5.0 release no longer builds. ;; Following commits and revision numbers of beta versions listed at ;; https://dolphin-emu.org/download/. (define-public dolphin-emu (let ((commit "f9deb68aee962564b1495ff04c54c015e58d086f") (revision "13669")) (package (name "dolphin-emu") (version (git-version "5.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/dolphin-emu/dolphin") (commit commit))) (file-name (git-file-name name version)) (sha256 (base32 "1p8qsxlabgmz3nic0a9ghh9d3lzl5f8i3kmdrrvx6w8kdlp33018")) (modules '((guix build utils))) (snippet '(begin ;; Remove external stuff we don't need. (for-each (lambda (dir) (delete-file-recursively (string-append "Externals/" dir))) '("LZO" "OpenAL" "Qt" "SFML" "curl" "ffmpeg" "gettext" "hidapi" "libpng" "libusb" "mbedtls" "miniupnpc" "MoltenVK" "zlib")) ;; Clean up source. (for-each delete-file (find-files "." ".*\\.(bin|dsy|exe|jar|rar)$")))))) (build-system cmake-build-system) (arguments '(#:tests? #f #:phases (modify-phases %standard-phases (add-before 'configure 'generate-fonts&hardcore-libvulkan-path (lambda* (#:key inputs outputs #:allow-other-keys) (let ((fontfile (search-input-file inputs "/share/fonts/truetype/wqy-microhei.ttc")) (libvulkan (search-input-file inputs "/lib/libvulkan.so"))) (chdir "docs") (invoke "bash" "-c" "g++ -O2 $(freetype-config \ --cflags --libs) gc-font-tool.cpp -o gc-font-tool") (invoke "./gc-font-tool" "a" fontfile "font_western.bin") (invoke "./gc-font-tool" "s" fontfile "font_japanese.bin") (copy-file "font_japanese.bin" "../Data/Sys/GC/font_japanese.bin") (copy-file "font_western.bin" "../Data/Sys/GC/font_western.bin") (chdir "..") (substitute* "Source/Core/VideoBackends/Vulkan/VulkanLoader.cpp" (("\"vulkan\", 1") (string-append "\"vulkan\"")) (("\"vulkan\"") (string-append "\"" libvulkan "\"")) (("Common::DynamicLibrary::GetVersionedFilename") "")))))) ;; The FindGTK2 cmake script only checks hardcoded directories for ;; glib/gtk headers. #:configure-flags (list (string-append "-DX11_INCLUDE_DIR=" (assoc-ref %build-inputs "libx11") "/include") (string-append "-DX11_LIBRARIES=" (assoc-ref %build-inputs "libx11") "/lib/libX11.so") "-DX11_FOUND=1"))) (native-inputs (list gettext-minimal pkg-config)) (inputs (list alsa-lib ao bluez curl eudev ffmpeg-4 font-wqy-microhei freetype glew glib glu gtk+-2 hidapi libevdev libpng libusb libx11 libxi libxrandr lzo mbedtls-lts mesa miniupnpc openal pugixml pulseaudio qtbase-5 sdl2 sfml soil soundtouch vulkan-loader zlib)) (home-page "https://dolphin-emu.org/") (synopsis "Nintendo Wii and GameCube emulator") (description "Dolphin is an emulator for two Nintendo video game consoles: the GameCube and the Wii. It provides compatibility with all PC controllers, turbo speed, networked multiplayer, and graphical enhancements.") (supported-systems '("x86_64-linux" "aarch64-linux")) ; dolphin/Data/Sys/GC/font_*.bin: Licensed under ASL2.0. (license (list license:gpl2+ license:asl2.0 license:fdl1.2+))))) (define-public dosbox (package (name "dosbox") (version "0.74-3") (source (origin (method url-fetch) (uri (string-append "https://sourceforge.net/projects/dosbox" "/files/dosbox/" version "/dosbox-" version ".tar.gz/download")) (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 "02i648i50dwicv1vaql15rccv4g8h5blf5g6inv67lrfxpbkvlf0")))) (build-system gnu-build-system) (native-inputs (list autoconf automake)) (inputs (list sdl libpng zlib alsa-lib glu mesa)) (home-page "https://www.dosbox.com") (synopsis "X86 emulator with CGA/EGA/VGA/etc. graphics and sound") (description "DOSBox is a DOS-emulator that uses the SDL library. DOSBox also emulates CPU:286/386 realmode/protected mode, Directory FileSystem/XMS/EMS, Tandy/Hercules/CGA/EGA/VGA/VESA graphics, a SoundBlaster/Gravis Ultra Sound card for excellent sound compatibility with older games.") (license license:gpl2+))) (define-public dosbox-staging ;; This is not a patch staging area for DOSBox, but an unaffiliated fork. (package (name "dosbox-staging") (version "0.81.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/dosbox-staging/dosbox-staging") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "1fkshxaq12pd72v8m2f3a6d6jk9gh39hn0846gfkfinvw7yykzrl")))) (build-system meson-build-system) (arguments (list #:configure-flags #~(list ;; These both try to git clone subprojects. "-Dunit_tests=disabled" ; gtest "-Duse_mt32emu=false") #:phases #~(modify-phases %standard-phases (add-after 'unpack 'fix-includes (lambda _ ;; This unnecessary file has an encoding error. (delete-file "./src/libs/sdlcd/macosx/SDLOSXCAGuard.h") (substitute* (find-files "." "\\.(cpp|h)") (("^(#[[:space:]]*include <)(SDL[_.])" _ include file) (string-append include "SDL2/" file)))))))) (native-inputs (list pkg-config)) (inputs (list alsa-lib fluidsynth iir libpng libslirp mesa opusfile sdl2 sdl2-image sdl2-net speexdsp zlib)) (home-page "https://dosbox-staging.github.io") (synopsis "DOS/x86 PC emulator focusing on ease of use") (description "The DOSBox Staging project attempts to modernize DOSBox. DOSBox emulates an Intel x86 personal computer running an IBM PC compatible disk operating system (@dfn{DOS}) in both real and protected modes. It was primarily designed to run old DOS games, but aims to be fully compatible with all DOS programs and replicate the experience as accurately as possible. This fork fixes some perceived issues with DOSBox and adds new features such as Wayland support, PowerPC/POWER dynamic recompilation, and FluidSynth MIDI. Other features may be removed: for example, physical CDs can no longer be played, only emulated media. Graphical emulation includes contemporary text mode, Hercules, CGA, EGA, VGA, VESA, S3@tie{}Trio@tie{}64, and Tandy hardware. Emulated legacy sound devices range from a rudimentary `PC speaker' buzzer to the once state-of-the-art Gravis Utrasound sampling sound card. The default is a SoundBlaster 16 providing 16-bit stereo sound. MIDI is forwarded to the host through an emulated MPU-401. An emulated hardware modem is also included, letting one host or dial a @acronym{BBS, Bulletin Board System} across the Internet, network over IPX, and emulate a serial nullmodem over TCP/IP.") (license license:gpl3+))) (define-public qtmips (package (name "qtmips") (version "0.7.5") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/cvut/QtMips") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "1fal7a8y5g0rqqjrk795jh1l50ihz01ppjnrfjrk9vkjbd59szbp")))) (build-system cmake-build-system) (arguments '(#:phases (modify-phases %standard-phases (replace 'configure (lambda* (#:key outputs #:allow-other-keys) (invoke "qmake" (string-append "PREFIX=" (assoc-ref outputs "out")) "qtmips.pro"))) (replace 'check (lambda* (#:key tests? #:allow-other-keys) (substitute* "tests/test.sh" (("qtchooser.*") "")) (substitute* '("tests/cpu_trap/test.sh" "tests/registers/test.sh") (("sub-qtmips_cli") "qtmips_cli")) (if tests? (invoke "tests/run-all.sh") #t))) (replace 'install ;; There is no install target. (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (bin (string-append out "/bin")) (apps (string-append out "/share/applications")) (icons (string-append out "/share/icons/hicolor"))) (install-file "qtmips_gui/qtmips_gui" bin) (install-file "qtmips_cli/qtmips_cli" bin) (install-file "data/qtmips.desktop" apps) (install-file "data/icons/qtmips_gui.svg" (string-append icons "/scalable/apps")) (install-file "data/icons/qtmips_gui.png" (string-append icons "/48x48/apps")) #t)))) #:tests? #f)) ; test suite wants mips toolchain (inputs (list elfutils qtbase-5)) (home-page "https://github.com/cvut/QtMips") (synopsis "MIPS CPU emulator") (description "This package contains a MIPS CPU emulator. The simulator accepts ELF statically linked executables compiled for 32-bit big-endian MIPS target, targeting mips-linux-gnu or mips-elf.") (license license:gpl2+))) ; License file says GPL3 (define-public emulation-station ;; No release for a long time, new commits fix build issues (let ((commit "9cc42adff67946175d2b7e25c6ae69cc374e98a0") (revision "1")) (package (name "emulation-station") (version (git-version "2.0.1" revision commit)) (source (origin (method git-fetch) ; no tarball available (uri (git-reference (url "https://github.com/Aloshi/EmulationStation") (commit commit))) ; no version tag (file-name (git-file-name name version)) (sha256 (base32 "1cva0ns650v17lfn8in095zci6lc43d23f1x3mlzc41qfqa6mbd1")))) (build-system cmake-build-system) (arguments '(#:tests? #f)) ; no tests (inputs `(("alsa-lib" ,alsa-lib) ("boost" ,boost) ("curl" ,curl) ("eigin" ,eigen) ("freeimage" ,freeimage) ("freetype" ,freetype) ("mesa" ,mesa) ("sdl2" ,sdl2))) (synopsis "Video game console emulator front-end") (description "EmulationStation provides a graphical front-end to a large number of video game console emulators. It features an interface that is usable with any game controller that has at least 4 buttons, theming support, and a game metadata scraper.") (home-page "https://emulationstation.org") (license license:expat)))) (define-public higan (package (name "higan") (version "110") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/higan-emu/higan") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "11rvm53c3p2f6zk8xbyv2j51xp8zmqnch7zravhj3fk590qrjrr2")))) (build-system gnu-build-system) (native-inputs (list pkg-config)) (inputs `(("alsa-lib" ,alsa-lib) ("bash" ,bash-minimal) ; for wrap-program ("ao" ,ao) ("eudev" ,eudev) ("gtk+" ,gtk+-2) ("gtksourceview-2" ,gtksourceview-2) ("libxrandr" ,libxrandr) ("libxv" ,libxv) ("mesa" ,mesa) ("openal" ,openal) ("pulseaudio" ,pulseaudio) ("sdl2" ,sdl2))) (arguments '(#:phases (let ((build-phase (assoc-ref %standard-phases 'build)) (install-phase (assoc-ref %standard-phases 'install))) (modify-phases %standard-phases ;; The higan build system has no configure phase. (delete 'configure) (add-before 'build 'chdir-to-higan (lambda _ (chdir "higan") #t)) (add-before 'install 'create-/share/applications (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) ;; It seems the author forgot to do this in the Makefile. (mkdir-p (string-append out "/share/applications")) #t))) (add-after 'install 'chdir-to-icarus (lambda _ (chdir "../icarus") #t)) (add-after 'chdir-to-icarus 'build-icarus build-phase) (add-after 'build-icarus 'install-icarus install-phase) (add-after 'install-icarus 'wrap-higan-executable (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (bin (string-append out "/bin")) (higan (string-append bin "/higan")) (higan-original (string-append higan "-original")) (bash (search-input-file inputs "/bin/bash")) (coreutils (assoc-ref inputs "coreutils")) (mkdir (string-append coreutils "/bin/mkdir")) (cp (string-append coreutils "/bin/cp")) (cp-r (string-append cp " -r --no-preserve=mode"))) ;; First, have the executable make sure ~/.local/share/higan ;; contains up to date files. Higan insists on looking there ;; for these data files. (rename-file higan higan-original) (with-output-to-file higan (lambda () (display (string-append "#!" bash "\n" ;; higan doesn't respect $XDG_DATA_HOME mkdir " -p ~/.local/share\n" cp-r " " out "/share/higan ~/.local/share\n" "exec " higan-original)))) (chmod higan #o555) ;; Second, make sure higan will find icarus in PATH. (wrap-program higan `("PATH" ":" prefix (,bin))) #t))))) #:make-flags (list "compiler=g++" (string-append "prefix=" (assoc-ref %outputs "out"))) ;; There is no test suite. #:tests? #f)) (home-page "https://github.com/higan-emu/higan/") (synopsis "Multi-system emulator") (description "higan is a multi-system emulator with an uncompromising focus on accuracy and code readability. It currently emulates the following systems: Famicom, Famicom Disk System, Super Famicom, Super Game Boy, Game Boy, Game Boy Color, Game Boy Advance, Game Boy Player, SG-1000, SC-3000, Master System, Game Gear, Mega Drive, Mega CD, PC Engine, SuperGrafx, MSX, MSX2, ColecoVision, Neo Geo Pocket, Neo Geo Pocket Color, WonderSwan, WonderSwan Color, SwanCrystal, Pocket Challenge V2.") (license license:gpl3+))) (define-public mednafen (package (name "mednafen") (version "1.32.1") (source (origin (method url-fetch) (uri (string-append "https://mednafen.github.io/releases/files/" "mednafen-" version ".tar.xz")) (sha256 (base32 "0ciqr3dlf1b3r8jncy9k9cihiclai8v28r9pb1vsw4k2nr5bjzny")))) (build-system gnu-build-system) (arguments (list #:configure-flags #~(list ;; "--with-external-mpcdec" "--with-external-lzo"))) (native-inputs (list pkg-config)) (inputs (list alsa-lib flac ;; libmpcdec ;FIXME: not recognized. libsndfile lzo sdl2 zlib)) (home-page "https://mednafen.github.io/") (synopsis "Multi-system emulator utilizing OpenGL and SDL") (description "Mednafen is a portable, utilizing OpenGL and SDL, argument-driven multi-system emulator. Mednafen has the ability to remap hotkey functions and virtual system inputs to a keyboard, a joystick, or both simultaneously. Save states are supported, as is real-time game rewinding. Screen snapshots may be taken, in the PNG file format, at the press of a button. Mednafen can record audiovisual movies in the QuickTime file format, with several different lossless codecs supported. The following systems are supported: @itemize @item Apple II/II+ @item Atari Lynx @item Neo Geo Pocket (Color) @item WonderSwan @item GameBoy (Color) @item GameBoy Advance @item Nintendo Entertainment System @item Super Nintendo Entertainment System/Super Famicom @item Virtual Boy @item PC Engine/TurboGrafx 16 (CD) @item SuperGrafx @item PC-FX @item Sega Game Gear @item Sega Genesis/Megadrive @item Sega Master System @item Sega Saturn (experimental, x86_64 only) @item Sony PlayStation @end itemize") ;; Main license is GPL2+. Some parts are BSD-3. (license (list license:gpl2+ license:bsd-3)))) (define-public mgba (package (name "mgba") (version "0.10.3") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/mgba-emu/mgba") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "1h4wsx76kylsn4f4418swbp6zjp1x94dfn751iks1i6i529pfay1")) (modules '((guix build utils))) (snippet ;; Make sure we don't use the bundled software. '(begin (for-each (lambda (subdir) (let ((lib-subdir (string-append "src/third-party/" subdir))) (delete-file-recursively lib-subdir))) '("libpng" "lzma" "sqlite3" "zlib")))))) (build-system cmake-build-system) (arguments `(#:tests? #f ;no "test" target #:configure-flags (list "-DBUILD_LTO=OFF" ;FIXME: <https://github.com/mgba-emu/mgba/issues/3115> "-DUSE_LZMA=OFF" ;do not use bundled LZMA "-DUSE_LIBZIP=OFF"))) ;use "zlib" instead (native-inputs (list pkg-config qttools-5)) (inputs (list ffmpeg libedit libelf libepoxy libpng mesa minizip ncurses qtbase-5 qtmultimedia-5 sdl2 sqlite zlib)) (home-page "https://mgba.io") (synopsis "Game Boy Advance emulator") (description "mGBA is an emulator for running Game Boy Advance games. It aims to be faster and more accurate than many existing Game Boy Advance emulators, as well as adding features that other emulators lack. It also supports Game Boy and Game Boy Color games.") ;; Code is mainly MPL 2.0. "blip_buf.c" is LGPL 2.1+, "inih.c" is ;; BSD-3, and "discord-rpc" is Expat. (license (list license:mpl2.0 license:lgpl2.1+ license:bsd-3 license:expat)))) (define-public sameboy (package (name "sameboy") (version "0.16.3") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/LIJI32/SameBoy") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "1jdjg59vzzkbi3c3qaxpsxqx955sb86cd3kcypb0nhjxbnwac1di")))) (build-system gnu-build-system) (native-inputs (list rgbds pkg-config)) (inputs (list sdl2)) (arguments `(#:tests? #f ; There are no tests #:make-flags `(,(string-append "CC=" ,(cc-for-target)) "NATIVE_CC=gcc" "CONF=release" ,(string-append "DATA_DIR=" (assoc-ref %outputs "out") "/share/sameboy/")) #:phases (modify-phases %standard-phases (delete 'configure) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (bin (string-append out "/bin")) (data (string-append out "/share/sameboy/"))) (with-directory-excursion "build/bin/SDL" (install-file "sameboy" bin) (delete-file "sameboy") (copy-recursively "." data)))))))) (home-page "https://sameboy.github.io/") (synopsis "Accurate Game Boy, Game Boy Color and Super Game Boy emulator") (description "SameBoy is a user friendly Game Boy, Game Boy Color and Super Game Boy emulator. SameBoy is accurate and includes a wide range of debugging features. It has all the features one would expect from an emulator---from save states to scaling filters.") (license license:expat))) (define-public mupen64plus-core (package (name "mupen64plus-core") (version "2.5.9") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/mupen64plus/mupen64plus-core") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "1iav8r3f0r44sq9pz4zjqrdzyspk412c117ywxz02qpjkhkf91a3")))) (build-system gnu-build-system) (native-inputs (list pkg-config nasm which)) (inputs (list freetype glu libpng mesa sdl2 zlib)) (arguments '(#:phases (modify-phases %standard-phases ;; The mupen64plus build system has no configure phase. (replace 'configure (lambda _ (substitute* "projects/unix/Makefile" (("\\$\\(CFLAGS\\)") "$(CFLAGS) -fcommon")))) ;; Makefile is in a subdirectory. (add-before 'build 'chdir-to-project-directory (lambda _ (chdir "projects/unix")))) #:make-flags (let ((out (assoc-ref %outputs "out"))) (list "all" (string-append "PREFIX=" out))) ;; There are no tests. #:tests? #f)) ;; As per the Makefile (in projects/unix/Makefile): (supported-systems '("i686-linux" "x86_64-linux")) (home-page "https://www.mupen64plus.org/") (synopsis "Nintendo 64 emulator core library") (description "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator which is capable of accurately playing many games. This package contains the core library.") (license license:gpl2+))) (define-public mupen64plus-audio-sdl (package (name "mupen64plus-audio-sdl") (version "2.5.9") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/mupen64plus/mupen64plus-audio-sdl") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "0j78xk78fj7lhi6jk6npr7wm9ix7qyr5cbaaqsmk6pqw6gfx81kz")))) (build-system gnu-build-system) (native-inputs (list pkg-config which)) (inputs (list mupen64plus-core sdl2)) (arguments '(#:phases (modify-phases %standard-phases ;; The mupen64plus build system has no configure phase. (delete 'configure) ;; Makefile is in a subdirectory. (add-before 'build 'cd-to-project-dir (lambda _ (chdir "projects/unix")))) #:make-flags (let ((out (assoc-ref %outputs "out")) (m64p (assoc-ref %build-inputs "mupen64plus-core"))) (list "all" (string-append "PREFIX=" out) (string-append "APIDIR=" m64p "/include/mupen64plus"))) ;; There are no tests. #:tests? #f)) (home-page "https://www.mupen64plus.org/") (synopsis "Mupen64Plus SDL audio plugin") (description "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator which is capable of accurately playing many games. This package contains the SDL audio plugin.") (license license:gpl2+))) (define-public mupen64plus-input-sdl (package (name "mupen64plus-input-sdl") (version "2.5.9") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/mupen64plus/mupen64plus-input-sdl") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "1nnniyiy0wpg4m9918va31xxnz8r5qvj0z08vyq2is0b47ld3kq0")))) (build-system gnu-build-system) (native-inputs (list which)) (inputs (list mupen64plus-core sdl2)) (arguments '(#:phases (modify-phases %standard-phases ;; The mupen64plus build system has no configure phase. (delete 'configure) ;; Makefile is in a subdirectory. (add-before 'build 'cd-to-project-dir (lambda _ (chdir "projects/unix")))) #:make-flags (let ((out (assoc-ref %outputs "out")) (m64p (assoc-ref %build-inputs "mupen64plus-core"))) (list "all" (string-append "PREFIX=" out) (string-append "APIDIR=" m64p "/include/mupen64plus"))) ;; There are no tests. #:tests? #f)) (home-page "https://www.mupen64plus.org/") (synopsis "Mupen64Plus SDL input plugin") (description "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator which is capable of accurately playing many games. This package contains the SDL input plugin.") (license license:gpl2+))) (define-public mupen64plus-rsp-hle (package (name "mupen64plus-rsp-hle") (version "2.5.9") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/mupen64plus/mupen64plus-rsp-hle") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "0sblabl3dp1jy9izbwyhx90690xdj96yfmwi47kpka8axzj93naq")))) (build-system gnu-build-system) (inputs (list mupen64plus-core)) (arguments '(#:phases (modify-phases %standard-phases ;; The mupen64plus build system has no configure phase. (delete 'configure) ;; Makefile is in a subdirectory. (add-before 'build 'cd-to-project-dir (lambda _ (chdir "projects/unix")))) #:make-flags (let ((out (assoc-ref %outputs "out")) (m64p (assoc-ref %build-inputs "mupen64plus-core"))) (list "all" (string-append "PREFIX=" out) (string-append "APIDIR=" m64p "/include/mupen64plus"))) ;; There are no tests. #:tests? #f)) (home-page "https://www.mupen64plus.org/") (synopsis "Mupen64Plus RSP high-level emulation (HLE) plugin") (description "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator which is capable of accurately playing many games. This package contains the high-level emulation (HLE) RSP processor plugin.") (license license:gpl2+))) (define-public mupen64plus-rsp-z64 (package (name "mupen64plus-rsp-z64") (version "2.5.9") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/mupen64plus/mupen64plus-rsp-z64") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "02w7c6b7fc6q5rrvawxv48xp64crfs5jbs06f2fqqj4smysyjfcc")))) (build-system gnu-build-system) (inputs (list mupen64plus-core)) (arguments '(#:phases (modify-phases %standard-phases ;; The mupen64plus build system has no configure phase. (delete 'configure) ;; Makefile is in a subdirectory. (add-before 'build 'cd-to-project-dir (lambda _ (chdir "projects/unix")))) #:make-flags (let ((out (assoc-ref %outputs "out")) (m64p (assoc-ref %build-inputs "mupen64plus-core"))) (list "all" (string-append "PREFIX=" out) (string-append "APIDIR=" m64p "/include/mupen64plus"))) ;; There are no tests. #:tests? #f)) (home-page "https://www.mupen64plus.org/") (synopsis "Mupen64Plus RSP Z64 plugin") (description "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator which is capable of accurately playing many games. This package contains the Z64 RSP processor plugin.") (license license:gpl2+))) (define-public mupen64plus-video-arachnoid (package (name "mupen64plus-video-arachnoid") (version "2.5.9") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/mupen64plus/mupen64plus-video-arachnoid") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "1bkzbmg53qiwvza9h45d76rbyn0isbb31cfp5qqza0fzmgjxhv1d")))) (build-system gnu-build-system) (native-inputs (list pkg-config which)) (inputs (list mesa mupen64plus-core)) (arguments '(#:phases (modify-phases %standard-phases ;; The mupen64plus build system has no configure phase. (delete 'configure) ;; Makefile is in a subdirectory. (add-before 'build 'cd-to-project-dir (lambda _ (chdir "projects/unix")))) #:make-flags (let ((out (assoc-ref %outputs "out")) (m64p (assoc-ref %build-inputs "mupen64plus-core"))) (list "all" (string-append "PREFIX=" out) (string-append "APIDIR=" m64p "/include/mupen64plus"))) ;; There are no tests. #:tests? #f)) (home-page "https://www.mupen64plus.org/") (synopsis "Mupen64Plus Arachnoid video plugin") (description "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator which is capable of accurately playing many games. This package contains the Arachnoid video plugin.") (license license:gpl2+))) (define-public mupen64plus-video-glide64 (package (name "mupen64plus-video-glide64") (version "2.5.9") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/mupen64plus/mupen64plus-video-glide64") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "0jscvr2imm9wj9jsgsp5815pv27f97w8g19ix0n39y9yy851qvrg")))) (build-system gnu-build-system) (native-inputs (list pkg-config which)) (inputs (list mesa mupen64plus-core sdl2)) (arguments '(#:phases (modify-phases %standard-phases ;; The mupen64plus build system has no configure phase. (delete 'configure) ;; Makefile is in a subdirectory. (add-before 'build 'cd-to-project-dir (lambda _ (chdir "projects/unix")))) #:make-flags (let ((out (assoc-ref %outputs "out")) (m64p (assoc-ref %build-inputs "mupen64plus-core"))) (list "all" (string-append "PREFIX=" out) (string-append "APIDIR=" m64p "/include/mupen64plus"))) ;; There are no tests. #:tests? #f)) (home-page "https://www.mupen64plus.org/") (synopsis "Mupen64Plus Glide64 video plugin") (description "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator which is capable of accurately playing many games. This package contains the Glide64 video plugin.") (license license:gpl2+))) (define-public mupen64plus-video-glide64mk2 (package (name "mupen64plus-video-glide64mk2") (version "2.5.9") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/mupen64plus/mupen64plus-video-glide64mk2") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "1hr0mv6y7v72101iff3zf6rd0wpqah936234m3hcb4cgna6zj9xy")))) (build-system gnu-build-system) (native-inputs (list pkg-config which)) (inputs (list boost libpng mesa mupen64plus-core sdl2 zlib)) (arguments '(#:phases (modify-phases %standard-phases ;; The mupen64plus build system has no configure phase. (delete 'configure) ;; Makefile is in a subdirectory. (add-before 'build 'cd-to-project-dir (lambda _ (chdir "projects/unix")))) #:make-flags (let ((out (assoc-ref %outputs "out")) (m64p (assoc-ref %build-inputs "mupen64plus-core"))) (list "all" (string-append "PREFIX=" out) (string-append "APIDIR=" m64p "/include/mupen64plus"))) ;; There are no tests. #:tests? #f)) (home-page "https://www.mupen64plus.org/") (synopsis "Mupen64Plus Glide64MK2 video plugin") (description "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator which is capable of accurately playing many games. This package contains the Glide64MK2 video plugin.") (license license:gpl2+))) (define-public mupen64plus-video-rice (package (name "mupen64plus-video-rice") (version "2.5.9") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/mupen64plus/mupen64plus-video-rice") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "1vn24g7ahyv70jd06f5sq0j4bjs4axl2c0kfz4qdkpqsamsgxng8")))) (build-system gnu-build-system) (native-inputs (list pkg-config which)) (inputs (list libpng mesa mupen64plus-core sdl2)) (arguments '(#:phases (modify-phases %standard-phases ;; The mupen64plus build system has no configure phase. (delete 'configure) ;; Makefile is in a subdirectory. (add-before 'build 'cd-to-project-dir (lambda _ (chdir "projects/unix")))) #:make-flags (let ((out (assoc-ref %outputs "out")) (m64p (assoc-ref %build-inputs "mupen64plus-core"))) (list "all" (string-append "PREFIX=" out) (string-append "APIDIR=" m64p "/include/mupen64plus"))) ;; There are no tests. #:tests? #f)) (home-page "https://www.mupen64plus.org/") (synopsis "Mupen64Plus Rice video plugin") (description "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator which is capable of accurately playing many games. This package contains the Rice Video plugin.") (license license:gpl2+))) (define-public mupen64plus-video-z64 (package (name "mupen64plus-video-z64") (version "2.5.9") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/mupen64plus/mupen64plus-video-z64") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "1i8dxa0lhcsm5ss1bf74dqnzaa2bw5naj6f56ixw2qjvybrnsmk2")))) (build-system gnu-build-system) (native-inputs (list pkg-config which)) (inputs (list glew mupen64plus-core sdl2)) (arguments '(#:phases (modify-phases %standard-phases ;; The mupen64plus build system has no configure phase. (delete 'configure) ;; Makefile is in a subdirectory. (add-before 'build 'cd-to-project-dir (lambda _ (chdir "projects/unix"))) ;; XXX Should be unnecessary with the next release. (add-before 'build 'use-sdl2 (lambda _ (substitute* "Makefile" (("SDL_CONFIG = (.*)sdl-config" all prefix) (string-append "SDL_CONFIG = " prefix "sdl2-config")))))) #:make-flags (let ((out (assoc-ref %outputs "out")) (m64p (assoc-ref %build-inputs "mupen64plus-core"))) (list "all" (string-append "PREFIX=" out) (string-append "APIDIR=" m64p "/include/mupen64plus"))) ;; There are no tests. #:tests? #f)) (home-page "https://www.mupen64plus.org/") (synopsis "Mupen64Plus Z64 video plugin") (description "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator which is capable of accurately playing many games. This package contains the Z64 video plugin.") (license license:gpl2+))) (define-public mupen64plus-ui-console (package (name "mupen64plus-ui-console") (version "2.5.9") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/mupen64plus/mupen64plus-ui-console") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "1dyrqdfs2jkalfd86bqidgd9y1hy03qgrgwk46d3xf3kyfmaa1cq")) (patches (search-patches "mupen64plus-ui-console-notice.patch")))) (build-system gnu-build-system) (native-inputs (list pkg-config which)) (inputs (list sdl2)) ;; Mupen64Plus supports a single data directory and a single plugin ;; directory in its configuration, yet we need data and plugin files from ;; a variety of packages. The best way to deal with this is to install ;; all packages from which data and plugin files are needed into one's ;; profile, and point the configuration there. Hence, propagate the most ;; important packages here to save the user from the bother. The patch ;; mupen64plus-ui-console-notice also gives users instructions on what ;; they need to do in order to point the configuration to their profile. (propagated-inputs (list mupen64plus-core mupen64plus-audio-sdl mupen64plus-input-sdl mupen64plus-rsp-hle mupen64plus-video-glide64mk2 mupen64plus-video-rice)) (arguments (list #:phases #~(modify-phases %standard-phases ;; The mupen64plus build system has no configure phase. (delete 'configure) ;; Makefile is in a subdirectory. (add-before 'build 'cd-to-project-dir (lambda _ (chdir "projects/unix")))) #:make-flags #~(let ((m64p #$(this-package-input "mupen64plus-core"))) (list "all" (string-append "PREFIX=" #$output) (string-append "APIDIR=" m64p "/include/mupen64plus") ;; Trailing slash matters here. (string-append "COREDIR=" m64p "/lib/"))) ;; There are no tests. #:tests? #f)) (home-page "https://www.mupen64plus.org/") (synopsis "Mupen64Plus command line user interface") (description "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator which is capable of accurately playing many games. This package contains the command line user interface. Installing this package is the easiest way towards a working Mupen64Plus for casual users.") (license license:gpl2+))) (define-public mupen64plus-video-gliden64 ;; The latest release is 5 years old, doesn't build with GCC 11. (let ((commit "b021d8ee437266cfdd7251daf8c23203578b02b6") (revision "0")) (package (name "mupen64plus-video-gliden64") (version (git-version "4.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/gonetz/GLideN64") (commit commit))) (file-name (git-file-name name version)) (sha256 (base32 "0kcx5m8fjgrdi2dby8qbmkl78picip3jx7hg0ah1cazk192v2x98")) (modules '((guix build utils))) (snippet '(begin ;; Delete 20 MiB of Windows-related files. (delete-file-recursively "projects/msvc") ;; Delete bundled library headers. (delete-file-recursively "src/GLideNHQ/inc") ;zlib, libpng (delete-file-recursively "src/inc/freetype") ;; Unbundle xxhash. (delete-file-recursively "src/xxHash") (with-fluids ((%default-port-encoding "ISO-8859-1")) (substitute* (find-files "." "\\.cpp$") (("#include \"xxHash/xxhash.h\"") "#include <xxhash.h>"))))))) (build-system cmake-build-system) (arguments (list #:tests? #f ;no test suite #:configure-flags #~(list "-DMUPENPLUSAPI=ON" "-DUSE_SYSTEM_LIBS=ON" ;; Enable some optimizations. "-DVEC4_OPT=ON" #$(if (target-x86?) ;; FIXME: Disabled for now as it causes a segmentation ;; fault (see: ;; https://github.com/gonetz/GLideN64/issues/2836). "-DX86_OPT=OFF" ;extra X86 ASM optimizations "-DX86_OPT=OFF") #$(if (target-arm?) "-DNEON_OPT=ON" "-DNEON_OPT=OFF") #$(if (target-aarch64?) "-DCRC_ARMV8=ON" ;use ARMv8 hardware to compute CRCs "-DCRC_OPT=ON")) ;use xxHash to compute CRCs) #:phases #~(modify-phases %standard-phases (add-after 'unpack 'chdir ;; The src/ subdirectory contains the root CMakeLists.txt file. (lambda _ (chdir "src"))) (add-after 'chdir 'generate-Revision.h (lambda _ (invoke "sh" "getRevision.sh" "--nogit")))))) (inputs (list freetype libpng mesa xxhash zlib)) (home-page "https://github.com/gonetz/GLideN64") (synopsis "Mupen64Plus GlideN64 video plugin") (description "GLideN64 is a new generation graphics plugin for Nintendo 64 emulators, which offers better performance and compatibility compared to the original Glide64 plugin. This version is built for use with the Mupen64Plus emulator.") (license license:gpl2+)))) (define-public nestopia-ue (package (name "nestopia-ue") (version "1.51.1") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/rdanbrook/nestopia") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "1g19gz33jav00rwzkpcnynf5ps41vl64a9qx0xjd6lva4bgn8s57")))) (build-system gnu-build-system) (native-inputs (list autoconf autoconf-archive automake pkg-config)) (inputs `(("fltk" ,fltk) ("fontconfig" ,fontconfig) ("libarchive" ,libarchive) ("libepoxy" ,libepoxy) ("libxft" ,libxft) ("libxrender" ,libxrender) ("sdl2" ,sdl2) ("zlib" ,zlib))) (arguments '(;; There are no tests. #:tests? #f)) (home-page "http://0ldsk00l.ca/nestopia/") (synopsis "Nintendo Entertainment System (NES/Famicom) emulator") (description "Nestopia UE (Undead Edition) is a fork of the Nintendo Entertainment System (NES/Famicom) emulator Nestopia, with enhancements from members of the emulation community. It provides highly accurate emulation.") (license license:gpl2+))) (define-public libretro-lowresnx (package (name "libretro-lowresnx") (version "1.2") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/timoinutilis/lowres-nx") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "0b0vg3iz342dpkffvf7frsnqh8inj8yzi8550bsx8vnbpq5r2ay5")))) (build-system gnu-build-system) (arguments (list #:tests? #f ;no test suite #:make-flags #~(list "-C" "platform/LibRetro" (string-append "CC=" #$(cc-for-target))) #:phases #~(modify-phases %standard-phases (delete 'configure) ;no configure script (replace 'install (lambda _ (install-file "platform/LibRetro/lowresnx_libretro.so" (string-append #$output "/lib/libretro"))))))) (home-page "https://lowresnx.inutilis.com/") (synopsis "Libretro core for LowRES NX") (description "LowRES NX is a simulated retro game console, which can be programmed in the classic BASIC language. This package provides a libretro core allowing the lowRES NX programs to be used with libretro frontends such as RetroArch.") (license license:zlib))) (define-public libretro-mupen64plus-nx ;; There are no proper release; use the latest commit of the master branch ;; (their stable branch). (let ((commit "9d940bacb95c4d86733f42b67b57fc83046a6d39") (revision "0")) (package (name "libretro-mupen64plus-nx") (version (git-version "0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/libretro/mupen64plus-libretro-nx") (commit commit))) (file-name (git-file-name name version)) (sha256 (base32 "0s3l62mfkbzmv8g1y4r40iayfwdz68rq6l6khc0d8kw08qk7ggl9")))) (build-system gnu-build-system) (arguments (list #:tests? #f ;no test suite #:make-flags #~(list (string-append "CC=" #$(cc-for-target)) (string-append "CXX=" #$(cxx-for-target)) (string-append "GIT_VERSION=" #$version) (string-append "PREFIX=" #$output) "LLE=1" "HAVE_THR_AL=1" ;for the angrylion video plugin "HAVE_PARALLEL_RDP=1" "HAVE_PARALLEL_RSP=1" "SYSTEM_MINIZIP=1" "SYSTEM_LIBPNG=1" "SYSTEM_XXHASH=1" "SYSTEM_ZLIB=1") #:phases #~(modify-phases %standard-phases (delete 'configure) (replace 'install (lambda _ (install-file "mupen64plus_next_libretro.so" (string-append #$output "/lib/libretro/"))))))) (native-inputs (list nasm pkg-config)) (inputs (list mesa libpng minizip unzip xxhash zlib)) (home-page "https://github.com/libretro/mupen64plus-libretro-nx") (synopsis "Improved Mupen64Plus libretro core") (description "Mupen64Plus-Next is a N64 emulation library for the libretro API, based on Mupen64Plus. It incorporates the following projects: @itemize @item @url{https://github.com/mupen64plus/mupen64plus-core, mupen64plus} @item @url{https://github.com/gonetz/GLideN64, GLideN64} @item @url{https://github.com/cxd4/rsp, cxd4} @item @url{https://github.com/Themaister/parallel-rsp, parallel-rsp} @item @url{https://github.com/ata4/angrylion-rdp-plus, angrylion-rdp-plus} @end itemize") (license license:gpl2+)))) (define-public retroarch-assets (package (name "retroarch-assets") (version "1.19.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/libretro/retroarch-assets") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "1i496x0lkqard5i9045yf438kivwd6f6za8p9fil8w1rfrhk2knz")))) (build-system gnu-build-system) (arguments (list #:tests? #f ;no test suite #:make-flags #~(list (string-append "PREFIX=" #$output)) #:phases #~(modify-phases %standard-phases (delete 'build)))) ;no compilation required (home-page "https://www.libretro.com/") (synopsis "RetroArch menu assets") (description "The RetroArch assets are the user interface elements used to generate the various User Experience (UX) environments.") (license license:cc-by4.0))) (define-public retroarch-core-info ;; Use the latest commit, to get recent additions such as bsnes-jg. (let ((commit "c0e7b76d02504754de67a1318f93089f1e29f15f") (revision "0")) (package (name "retroarch-core-info") (version (git-version "1.19.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/libretro/libretro-core-info") (commit commit))) (file-name (git-file-name name version)) (sha256 (base32 "11xpy3zhy2smp4a70fc0r1b76mvmjyabkaaipifsxm3j25drki5z")))) (build-system copy-build-system) (arguments (list #:install-plan #~'(("." "lib/libretro/" #:include-regexp ("\\.info$"))))) (home-page "https://github.com/libretro/libretro-core-info") (synopsis "Libretro core info files") (description "This is a versioned snapshot of the files containing metadata about each known libretro core. The snapshot is taken from the @url{https://github.com/libretro/libretro-super, libretro-super} repository.") (license license:expat)))) (define-public retroarch-joypad-autoconfig (package (name "retroarch-joypad-autoconfig") (version "1.19.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/libretro/retroarch-joypad-autoconfig") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "1gg4nc2wjqz72z40diqbanfkfalvb9hhb8scwn51v2w704rm634b")))) (build-system gnu-build-system) (arguments (list #:tests? #f ;no meaningful test suite #:make-flags #~(list (string-append "PREFIX=" #$output)) #:phases #~(modify-phases %standard-phases (delete 'configure)))) ;no configure script (home-page "https://github.com/libretro/retroarch-joypad-autoconfig") (synopsis "RetroArch joypad autoconfig files") (description "This package provides joypad autoconfig files for RetroArch, the reference frontend for the libretro API. The autoconfig files are used to recognize input devices and automatically setup defa