diff options
author | Alyssa Ross <hi@alyssa.is> | 2020-01-11 23:37:02 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2020-01-11 23:41:30 +0000 |
commit | 6c557e3f1c28cf87e9fba232811d6875dd1399c1 (patch) | |
tree | 035a071d5d8980df6de0fa42e2ef8fc0cce7055e /nixpkgs/pkgs/misc/emulators | |
parent | da7500bc026e937ac7fce7b50f67a0e1765737a7 (diff) | |
parent | e4134747f5666bcab8680aff67fa3b63384f9a0f (diff) | |
download | nixlib-6c557e3f1c28cf87e9fba232811d6875dd1399c1.tar nixlib-6c557e3f1c28cf87e9fba232811d6875dd1399c1.tar.gz nixlib-6c557e3f1c28cf87e9fba232811d6875dd1399c1.tar.bz2 nixlib-6c557e3f1c28cf87e9fba232811d6875dd1399c1.tar.lz nixlib-6c557e3f1c28cf87e9fba232811d6875dd1399c1.tar.xz nixlib-6c557e3f1c28cf87e9fba232811d6875dd1399c1.tar.zst nixlib-6c557e3f1c28cf87e9fba232811d6875dd1399c1.zip |
Merge commit 'e4134747f5666bcab8680aff67fa3b63384f9a0f'
Diffstat (limited to 'nixpkgs/pkgs/misc/emulators')
51 files changed, 1246 insertions, 302 deletions
diff --git a/nixpkgs/pkgs/misc/emulators/atari800/default.nix b/nixpkgs/pkgs/misc/emulators/atari800/default.nix index 228da6870947..38dc54ea9d7b 100644 --- a/nixpkgs/pkgs/misc/emulators/atari800/default.nix +++ b/nixpkgs/pkgs/misc/emulators/atari800/default.nix @@ -1,5 +1,5 @@ { stdenv, fetchurl -, unzip, zlib, SDL, readline, libGLU_combined, libX11 }: +, unzip, zlib, SDL, readline, libGLU, libGL, libX11 }: with stdenv.lib; stdenv.mkDerivation rec{ @@ -11,7 +11,7 @@ stdenv.mkDerivation rec{ sha256 = "1dcynsf8i52y7zyg62bkbhl3rdd22ss95zs2s9jm4y5jvn4vks88"; }; - buildInputs = [ unzip zlib SDL readline libGLU_combined libX11 ]; + buildInputs = [ unzip zlib SDL readline libGLU libGL libX11 ]; configureFlags = [ "--target=default" diff --git a/nixpkgs/pkgs/misc/emulators/attract-mode/default.nix b/nixpkgs/pkgs/misc/emulators/attract-mode/default.nix index a725d9c9b086..7e6694b28d97 100644 --- a/nixpkgs/pkgs/misc/emulators/attract-mode/default.nix +++ b/nixpkgs/pkgs/misc/emulators/attract-mode/default.nix @@ -1,5 +1,5 @@ { expat, fetchFromGitHub, ffmpeg, fontconfig, freetype, libarchive, libjpeg -, libGLU_combined, openal, pkgconfig, sfml, stdenv, zlib +, libGLU, libGL, openal, pkgconfig, sfml, stdenv, zlib }: stdenv.mkDerivation rec { @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { ''; buildInputs = [ - expat ffmpeg fontconfig freetype libarchive libjpeg libGLU_combined openal sfml zlib + expat ffmpeg fontconfig freetype libarchive libjpeg libGLU libGL openal sfml zlib ]; meta = with stdenv.lib; { diff --git a/nixpkgs/pkgs/misc/emulators/blastem/default.nix b/nixpkgs/pkgs/misc/emulators/blastem/default.nix index 39a7e38e0346..0d4c7ab7216a 100644 --- a/nixpkgs/pkgs/misc/emulators/blastem/default.nix +++ b/nixpkgs/pkgs/misc/emulators/blastem/default.nix @@ -11,7 +11,7 @@ let rev = "244f8bbbdf64ae603f9f6c09a3067943837459ec"; sha256 = "0x4y5q7ygxfjfy2wxijkps9khsjjfb169sbda410vaw0m88wqj5p"; }; - makeFlags = "CPU=m68k SYNTAX=mot"; + makeFlags = [ "CPU=m68k" "SYNTAX=mot" ]; installPhase = '' mkdir -p $out/bin cp vasmm68k_mot $out/bin diff --git a/nixpkgs/pkgs/misc/emulators/cdemu/analyzer.nix b/nixpkgs/pkgs/misc/emulators/cdemu/analyzer.nix index e52cf7efc6b5..246dbb7dd350 100644 --- a/nixpkgs/pkgs/misc/emulators/cdemu/analyzer.nix +++ b/nixpkgs/pkgs/misc/emulators/cdemu/analyzer.nix @@ -1,9 +1,9 @@ { callPackage, makeWrapper, gobject-introspection, cmake , python3Packages, gtk3, glib, libxml2, gnuplot, gnome3, gdk-pixbuf, librsvg, intltool, libmirage }: let pkg = import ./base.nix { - version = "3.2.2"; + version = "3.2.3"; pkgName = "image-analyzer"; - pkgSha256 = "0by3nd5c413cvk3jmv3md6q0axbiidy061g9dhf37qzwgcakcx8j"; + pkgSha256 = "17yfjmf65s77214qassz6l01cjcni4cv06nzfsm7qrzw172fmci4"; }; in callPackage pkg { buildInputs = [ glib gtk3 libxml2 gnuplot libmirage makeWrapper diff --git a/nixpkgs/pkgs/misc/emulators/cdemu/client.nix b/nixpkgs/pkgs/misc/emulators/cdemu/client.nix index dbf471d35d1d..087b15cecd16 100644 --- a/nixpkgs/pkgs/misc/emulators/cdemu/client.nix +++ b/nixpkgs/pkgs/misc/emulators/cdemu/client.nix @@ -1,8 +1,8 @@ { callPackage, python3Packages, intltool, makeWrapper }: let pkg = import ./base.nix { - version = "3.2.1"; + version = "3.2.3"; pkgName = "cdemu-client"; - pkgSha256 = "1d8m24qvv62xcwafw5zs4yf39vs64kxl4idqcngd8yyjhrb2ykg5"; + pkgSha256 = "1bvc2m63fx03rbp3ihgl2n7k24lwg5ydwkmr84gsjfcxp46q10zq"; }; in callPackage pkg { buildInputs = [ python3Packages.python python3Packages.dbus-python python3Packages.pygobject3 diff --git a/nixpkgs/pkgs/misc/emulators/cdemu/daemon.nix b/nixpkgs/pkgs/misc/emulators/cdemu/daemon.nix index a80327ce91c0..db6ed7ddb47a 100644 --- a/nixpkgs/pkgs/misc/emulators/cdemu/daemon.nix +++ b/nixpkgs/pkgs/misc/emulators/cdemu/daemon.nix @@ -1,8 +1,8 @@ { callPackage, glib, libao, intltool, libmirage }: let pkg = import ./base.nix { - version = "3.2.2"; + version = "3.2.3"; pkgName = "cdemu-daemon"; - pkgSha256 = "0himyrhhfjsr4ff5aci7240bpm9x34h20pid412ci8fm16nk929b"; + pkgSha256 = "022xzgwmncswb9md71w3ly3mjkdfc93lbij2llp2jamq8grxjjxr"; }; in callPackage pkg { buildInputs = [ glib libao libmirage intltool ]; diff --git a/nixpkgs/pkgs/misc/emulators/cdemu/gui.nix b/nixpkgs/pkgs/misc/emulators/cdemu/gui.nix index e06853b8f736..599531950a21 100644 --- a/nixpkgs/pkgs/misc/emulators/cdemu/gui.nix +++ b/nixpkgs/pkgs/misc/emulators/cdemu/gui.nix @@ -2,9 +2,9 @@ , python3Packages, gtk3, glib, libnotify, intltool, gnome3, gdk-pixbuf, librsvg }: let pkg = import ./base.nix { - version = "3.2.1"; + version = "3.2.3"; pkgName = "gcdemu"; - pkgSha256 = "0lmyvhbf57wcm8k2a33j2dhy4gblaiycy33q070gdrxi37xk7w5g"; + pkgSha256 = "19vy1awha8s7cfja3a6npaf3rfy3pl3cbsh4vd609q9jz4v4lyg4"; }; inherit (python3Packages) python pygobject3; in callPackage pkg { diff --git a/nixpkgs/pkgs/misc/emulators/cdemu/libmirage.nix b/nixpkgs/pkgs/misc/emulators/cdemu/libmirage.nix index 0ead78305cd0..cc3118ace151 100644 --- a/nixpkgs/pkgs/misc/emulators/cdemu/libmirage.nix +++ b/nixpkgs/pkgs/misc/emulators/cdemu/libmirage.nix @@ -3,9 +3,9 @@ , pcre, utillinux, libselinux, libsepol }: let pkg = import ./base.nix { - version = "3.2.2"; + version = "3.2.3"; pkgName = "libmirage"; - pkgSha256 = "0gwrfia0fyhi0b3p2pfyyvrcfcb0qysfzgpdqsqjqbx4xaqx5wpi"; + pkgSha256 = "08mfvqyk3833ksfd47i4j3ppmrw5ry219km6h7lywdh9hm9x14yf"; }; in callPackage pkg { buildInputs = [ glib libsndfile zlib bzip2 lzma libsamplerate intltool ]; diff --git a/nixpkgs/pkgs/misc/emulators/cdemu/vhba.nix b/nixpkgs/pkgs/misc/emulators/cdemu/vhba.nix index 71beaf125481..df25fb96eb1c 100644 --- a/nixpkgs/pkgs/misc/emulators/cdemu/vhba.nix +++ b/nixpkgs/pkgs/misc/emulators/cdemu/vhba.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "vhba"; - version = "20190410"; + version = "20190831"; src = fetchurl { url = "mirror://sourceforge/cdemu/vhba-module-${version}.tar.bz2"; - sha256 = "1513hq130raxp9z5grj54cwfjfxj05apipxg425j0zicii59a60c"; + sha256 = "1ybbk6l06n0y11n5wnfmvdz0baizmq55l458ywimghdyz0n7g0ws"; }; makeFlags = [ "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" "INSTALL_MOD_PATH=$(out)" ]; diff --git a/nixpkgs/pkgs/misc/emulators/citra/default.nix b/nixpkgs/pkgs/misc/emulators/citra/default.nix index d8717b46eef4..ca6ad37b5aae 100644 --- a/nixpkgs/pkgs/misc/emulators/citra/default.nix +++ b/nixpkgs/pkgs/misc/emulators/citra/default.nix @@ -1,14 +1,14 @@ { stdenv, fetchgit, cmake, SDL2, qtbase, qtmultimedia, boost }: -stdenv.mkDerivation { +stdenv.mkDerivation { pname = "citra"; - version = "2019-05-25"; + version = "2019-10-05"; # Submodules src = fetchgit { url = "https://github.com/citra-emu/citra"; - rev = "186ffc235f744dad315a603a98cce4597ef0f65f"; - sha256 = "0w24an80yjmkfcxjzdvsbpahx46bmd90liq5m6qva5pgnpmxx7pn"; + rev = "35690e3ac7a340d941d3bf56080cf5aa6187c5c3"; + sha256 = "11a4mdjabn3qrh0nn4pjl5fxs9nhf1k27wd486csfx88q2q9jvq8"; }; enableParallelBuilding = true; diff --git a/nixpkgs/pkgs/misc/emulators/desmume/01_use_system_tinyxml.patch b/nixpkgs/pkgs/misc/emulators/desmume/01_use_system_tinyxml.patch new file mode 100644 index 000000000000..8cec26026e7f --- /dev/null +++ b/nixpkgs/pkgs/misc/emulators/desmume/01_use_system_tinyxml.patch @@ -0,0 +1,231 @@ +From: Evgeni Golov <evgeni@debian.org> +Subject: use the system tinyxml instead of the embedded copy +Last-Update: 2015-08-09 + +diff --git a/src/Makefile.am b/src/Makefile.am +index 7b9e263..bc7ba8c 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -81,12 +81,6 @@ libdesmume_a_SOURCES = \ + utils/libfat/mem_allocate.h \ + utils/libfat/partition.cpp \ + utils/libfat/partition.h \ +- utils/tinyxml/tinystr.cpp \ +- utils/tinyxml/tinystr.h \ +- utils/tinyxml/tinyxml.cpp \ +- utils/tinyxml/tinyxml.h \ +- utils/tinyxml/tinyxmlerror.cpp \ +- utils/tinyxml/tinyxmlparser.cpp \ + utils/glcorearb.h \ + addons/slot2_auto.cpp addons/slot2_mpcf.cpp addons/slot2_paddle.cpp addons/slot2_gbagame.cpp addons/slot2_none.cpp addons/slot2_rumblepak.cpp addons/slot2_guitarGrip.cpp addons/slot2_expMemory.cpp addons/slot2_piano.cpp addons/slot2_passme.cpp addons/slot1_none.cpp addons/slot1_r4.cpp addons/slot1_retail_nand.cpp addons/slot1_retail_auto.cpp addons/slot1_retail_mcrom.cpp addons/slot1_retail_mcrom_debug.cpp addons/slot1comp_mc.cpp addons/slot1comp_mc.h addons/slot1comp_rom.h addons/slot1comp_rom.cpp addons/slot1comp_protocol.h addons/slot1comp_protocol.cpp \ + cheatSystem.cpp cheatSystem.h \ +@@ -204,3 +198,4 @@ if HAVE_GDB_STUB + libdesmume_a_SOURCES += gdbstub.h + endif + libdesmume_a_LIBADD = fs-$(desmume_arch).$(OBJEXT) ++LIBS += -ltinyxml +diff --git a/src/Makefile.in b/src/Makefile.in +index 9cf26a3..d9ff7b2 100644 +--- a/src/Makefile.in ++++ b/src/Makefile.in +@@ -184,9 +184,6 @@ am__libdesmume_a_SOURCES_DIST = armcpu.cpp armcpu.h \ + utils/libfat/libfat_public_api.h utils/libfat/lock.cpp \ + utils/libfat/lock.h utils/libfat/mem_allocate.h \ + utils/libfat/partition.cpp utils/libfat/partition.h \ +- utils/tinyxml/tinystr.cpp utils/tinyxml/tinystr.h \ +- utils/tinyxml/tinyxml.cpp utils/tinyxml/tinyxml.h \ +- utils/tinyxml/tinyxmlerror.cpp utils/tinyxml/tinyxmlparser.cpp \ + utils/glcorearb.h addons/slot2_auto.cpp addons/slot2_mpcf.cpp \ + addons/slot2_paddle.cpp addons/slot2_gbagame.cpp \ + addons/slot2_none.cpp addons/slot2_rumblepak.cpp \ +@@ -324,10 +321,6 @@ am_libdesmume_a_OBJECTS = armcpu.$(OBJEXT) arm_instructions.$(OBJEXT) \ + utils/libfat/libfat.$(OBJEXT) \ + utils/libfat/libfat_public_api.$(OBJEXT) \ + utils/libfat/lock.$(OBJEXT) utils/libfat/partition.$(OBJEXT) \ +- utils/tinyxml/tinystr.$(OBJEXT) \ +- utils/tinyxml/tinyxml.$(OBJEXT) \ +- utils/tinyxml/tinyxmlerror.$(OBJEXT) \ +- utils/tinyxml/tinyxmlparser.$(OBJEXT) \ + addons/slot2_auto.$(OBJEXT) addons/slot2_mpcf.$(OBJEXT) \ + addons/slot2_paddle.$(OBJEXT) addons/slot2_gbagame.$(OBJEXT) \ + addons/slot2_none.$(OBJEXT) addons/slot2_rumblepak.$(OBJEXT) \ +@@ -475,7 +468,7 @@ LIBAGG_LIBS = @LIBAGG_LIBS@ + LIBGLADE_CFLAGS = @LIBGLADE_CFLAGS@ + LIBGLADE_LIBS = @LIBGLADE_LIBS@ + LIBOBJS = @LIBOBJS@ +-LIBS = @LIBS@ ++LIBS = @LIBS@ -ltinyxml + LIBSOUNDTOUCH_CFLAGS = @LIBSOUNDTOUCH_CFLAGS@ + LIBSOUNDTOUCH_LIBS = @LIBSOUNDTOUCH_LIBS@ + LTLIBOBJS = @LTLIBOBJS@ +@@ -625,9 +618,6 @@ libdesmume_a_SOURCES = armcpu.cpp armcpu.h arm_instructions.cpp \ + utils/libfat/libfat_public_api.h utils/libfat/lock.cpp \ + utils/libfat/lock.h utils/libfat/mem_allocate.h \ + utils/libfat/partition.cpp utils/libfat/partition.h \ +- utils/tinyxml/tinystr.cpp utils/tinyxml/tinystr.h \ +- utils/tinyxml/tinyxml.cpp utils/tinyxml/tinyxml.h \ +- utils/tinyxml/tinyxmlerror.cpp utils/tinyxml/tinyxmlparser.cpp \ + utils/glcorearb.h addons/slot2_auto.cpp addons/slot2_mpcf.cpp \ + addons/slot2_paddle.cpp addons/slot2_gbagame.cpp \ + addons/slot2_none.cpp addons/slot2_rumblepak.cpp \ +@@ -760,20 +750,6 @@ utils/libfat/lock.$(OBJEXT): utils/libfat/$(am__dirstamp) \ + utils/libfat/$(DEPDIR)/$(am__dirstamp) + utils/libfat/partition.$(OBJEXT): utils/libfat/$(am__dirstamp) \ + utils/libfat/$(DEPDIR)/$(am__dirstamp) +-utils/tinyxml/$(am__dirstamp): +- @$(MKDIR_P) utils/tinyxml +- @: > utils/tinyxml/$(am__dirstamp) +-utils/tinyxml/$(DEPDIR)/$(am__dirstamp): +- @$(MKDIR_P) utils/tinyxml/$(DEPDIR) +- @: > utils/tinyxml/$(DEPDIR)/$(am__dirstamp) +-utils/tinyxml/tinystr.$(OBJEXT): utils/tinyxml/$(am__dirstamp) \ +- utils/tinyxml/$(DEPDIR)/$(am__dirstamp) +-utils/tinyxml/tinyxml.$(OBJEXT): utils/tinyxml/$(am__dirstamp) \ +- utils/tinyxml/$(DEPDIR)/$(am__dirstamp) +-utils/tinyxml/tinyxmlerror.$(OBJEXT): utils/tinyxml/$(am__dirstamp) \ +- utils/tinyxml/$(DEPDIR)/$(am__dirstamp) +-utils/tinyxml/tinyxmlparser.$(OBJEXT): utils/tinyxml/$(am__dirstamp) \ +- utils/tinyxml/$(DEPDIR)/$(am__dirstamp) + addons/$(am__dirstamp): + @$(MKDIR_P) addons + @: > addons/$(am__dirstamp) +@@ -1035,10 +1011,6 @@ mostlyclean-compile: + -rm -f utils/libfat/partition.$(OBJEXT) + -rm -f utils/md5.$(OBJEXT) + -rm -f utils/task.$(OBJEXT) +- -rm -f utils/tinyxml/tinystr.$(OBJEXT) +- -rm -f utils/tinyxml/tinyxml.$(OBJEXT) +- -rm -f utils/tinyxml/tinyxmlerror.$(OBJEXT) +- -rm -f utils/tinyxml/tinyxmlparser.$(OBJEXT) + -rm -f utils/vfat.$(OBJEXT) + -rm -f utils/xstring.$(OBJEXT) + +@@ -1175,10 +1147,6 @@ distclean-compile: + @AMDEP_TRUE@@am__include@ @am__quote@utils/libfat/$(DEPDIR)/libfat_public_api.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@utils/libfat/$(DEPDIR)/lock.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@utils/libfat/$(DEPDIR)/partition.Po@am__quote@ +-@AMDEP_TRUE@@am__include@ @am__quote@utils/tinyxml/$(DEPDIR)/tinystr.Po@am__quote@ +-@AMDEP_TRUE@@am__include@ @am__quote@utils/tinyxml/$(DEPDIR)/tinyxml.Po@am__quote@ +-@AMDEP_TRUE@@am__include@ @am__quote@utils/tinyxml/$(DEPDIR)/tinyxmlerror.Po@am__quote@ +-@AMDEP_TRUE@@am__include@ @am__quote@utils/tinyxml/$(DEPDIR)/tinyxmlparser.Po@am__quote@ + + .c.o: + @am__fastdepCC_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@@ -1449,8 +1417,6 @@ distclean-generic: + -rm -f utils/decrypt/$(am__dirstamp) + -rm -f utils/libfat/$(DEPDIR)/$(am__dirstamp) + -rm -f utils/libfat/$(am__dirstamp) +- -rm -f utils/tinyxml/$(DEPDIR)/$(am__dirstamp) +- -rm -f utils/tinyxml/$(am__dirstamp) + + maintainer-clean-generic: + @echo "This command is intended for maintainers to use" +@@ -1460,7 +1426,7 @@ clean: clean-recursive + clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am + + distclean: distclean-recursive +- -rm -rf ./$(DEPDIR) addons/$(DEPDIR) filter/$(DEPDIR) metaspu/$(DEPDIR) utils/$(DEPDIR) utils/AsmJit/core/$(DEPDIR) utils/AsmJit/x86/$(DEPDIR) utils/decrypt/$(DEPDIR) utils/libfat/$(DEPDIR) utils/tinyxml/$(DEPDIR) ++ -rm -rf ./$(DEPDIR) addons/$(DEPDIR) filter/$(DEPDIR) metaspu/$(DEPDIR) utils/$(DEPDIR) utils/AsmJit/core/$(DEPDIR) utils/AsmJit/x86/$(DEPDIR) utils/decrypt/$(DEPDIR) utils/libfat/$(DEPDIR) + -rm -f Makefile + distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags +@@ -1506,7 +1472,7 @@ install-ps-am: + installcheck-am: + + maintainer-clean: maintainer-clean-recursive +- -rm -rf ./$(DEPDIR) addons/$(DEPDIR) filter/$(DEPDIR) metaspu/$(DEPDIR) utils/$(DEPDIR) utils/AsmJit/core/$(DEPDIR) utils/AsmJit/x86/$(DEPDIR) utils/decrypt/$(DEPDIR) utils/libfat/$(DEPDIR) utils/tinyxml/$(DEPDIR) ++ -rm -rf ./$(DEPDIR) addons/$(DEPDIR) filter/$(DEPDIR) metaspu/$(DEPDIR) utils/$(DEPDIR) utils/AsmJit/core/$(DEPDIR) utils/AsmJit/x86/$(DEPDIR) utils/decrypt/$(DEPDIR) utils/libfat/$(DEPDIR) + -rm -f Makefile + maintainer-clean-am: distclean-am maintainer-clean-generic + +diff --git a/src/cli/Makefile.am b/src/cli/Makefile.am +index 1985209..d958323 100755 +--- a/src/cli/Makefile.am ++++ b/src/cli/Makefile.am +@@ -5,7 +5,7 @@ AM_CPPFLAGS += $(SDL_CFLAGS) $(ALSA_CFLAGS) $(LIBAGG_CFLAGS) $(GLIB_CFLAGS) $(GT + + bin_PROGRAMS = desmume-cli + desmume_cli_SOURCES = main.cpp ../sndsdl.cpp ../ctrlssdl.h ../ctrlssdl.cpp ../driver.h ../driver.cpp +-desmume_cli_LDADD = ../libdesmume.a $(SDL_LIBS) $(ALSA_LIBS) $(LIBAGG_LIBS) $(GLIB_LIBS) $(GTHREAD_LIBS) $(LIBSOUNDTOUCH_LIBS) ++desmume_cli_LDADD = ../libdesmume.a $(SDL_LIBS) $(ALSA_LIBS) $(LIBAGG_LIBS) $(GLIB_LIBS) $(GTHREAD_LIBS) $(LIBSOUNDTOUCH_LIBS) -ltinyxml + if HAVE_GDB_STUB + desmume_cli_LDADD += ../gdbstub/libgdbstub.a + endif +diff --git a/src/cli/Makefile.in b/src/cli/Makefile.in +index 14efd77..f04ab7d 100644 +--- a/src/cli/Makefile.in ++++ b/src/cli/Makefile.in +@@ -311,7 +311,7 @@ AM_LDFLAGS = + desmume_cli_SOURCES = main.cpp ../sndsdl.cpp ../ctrlssdl.h ../ctrlssdl.cpp ../driver.h ../driver.cpp + desmume_cli_LDADD = ../libdesmume.a $(SDL_LIBS) $(ALSA_LIBS) \ + $(LIBAGG_LIBS) $(GLIB_LIBS) $(GTHREAD_LIBS) \ +- $(LIBSOUNDTOUCH_LIBS) $(am__append_1) ++ $(LIBSOUNDTOUCH_LIBS) -ltinyxml $(am__append_1) + all: all-recursive + + .SUFFIXES: +diff --git a/src/gtk-glade/Makefile.am b/src/gtk-glade/Makefile.am +index b667fca..c79fdac 100755 +--- a/src/gtk-glade/Makefile.am ++++ b/src/gtk-glade/Makefile.am +@@ -33,7 +33,7 @@ desmume_glade_SOURCES = \ + desmume_glade_LDADD = ../libdesmume.a \ + $(SDL_LIBS) $(GTKGLEXT_LIBS) $(LIBGLADE_LIBS) \ + $(GTHREAD_LIBS) $(ALSA_LIBS) $(LIBAGG_LIBS) \ +- $(LIBSOUNDTOUCH_LIBS) ++ $(LIBSOUNDTOUCH_LIBS) -ltinyxml + if HAVE_GDB_STUB + desmume_glade_LDADD += ../gdbstub/libgdbstub.a + endif +diff --git a/src/gtk-glade/Makefile.in b/src/gtk-glade/Makefile.in +index 5f77ec5..012aa72 100644 +--- a/src/gtk-glade/Makefile.in ++++ b/src/gtk-glade/Makefile.in +@@ -367,7 +367,7 @@ desmume_glade_SOURCES = \ + + desmume_glade_LDADD = ../libdesmume.a $(SDL_LIBS) $(GTKGLEXT_LIBS) \ + $(LIBGLADE_LIBS) $(GTHREAD_LIBS) $(ALSA_LIBS) $(LIBAGG_LIBS) \ +- $(LIBSOUNDTOUCH_LIBS) $(am__append_1) ++ $(LIBSOUNDTOUCH_LIBS) -ltinyxml $(am__append_1) + all: all-recursive + + .SUFFIXES: +diff --git a/src/gtk/Makefile.am b/src/gtk/Makefile.am +index 59cb1f2..e451102 100755 +--- a/src/gtk/Makefile.am ++++ b/src/gtk/Makefile.am +@@ -32,7 +32,7 @@ desmume_SOURCES = \ + ../filter/videofilter.cpp ../filter/videofilter.h \ + main.cpp main.h + desmume_LDADD = ../libdesmume.a \ +- $(SDL_LIBS) $(GTK_LIBS) $(GTHREAD_LIBS) $(ALSA_LIBS) $(LIBAGG_LIBS) $(LIBSOUNDTOUCH_LIBS) ++ $(SDL_LIBS) $(GTK_LIBS) $(GTHREAD_LIBS) $(ALSA_LIBS) $(LIBAGG_LIBS) $(LIBSOUNDTOUCH_LIBS) -ltinyxml + if HAVE_GDB_STUB + desmume_LDADD += ../gdbstub/libgdbstub.a + endif +diff --git a/src/gtk/Makefile.in b/src/gtk/Makefile.in +index e1a2c37..75f392f 100644 +--- a/src/gtk/Makefile.in ++++ b/src/gtk/Makefile.in +@@ -382,7 +382,7 @@ desmume_SOURCES = \ + + desmume_LDADD = ../libdesmume.a $(SDL_LIBS) $(GTK_LIBS) \ + $(GTHREAD_LIBS) $(ALSA_LIBS) $(LIBAGG_LIBS) \ +- $(LIBSOUNDTOUCH_LIBS) $(am__append_1) $(am__append_2) \ ++ $(LIBSOUNDTOUCH_LIBS) -ltinyxml $(am__append_1) $(am__append_2) \ + $(am__append_3) + UPDATE_DESKTOP = \ + appsdir=$(DESTDIR)$(datadir)/applications ; \ +diff --git a/src/utils/advanscene.cpp b/src/utils/advanscene.cpp +index 8d8f370..09c35bb 100755 +--- a/src/utils/advanscene.cpp ++++ b/src/utils/advanscene.cpp +@@ -19,7 +19,7 @@ + #include <time.h> + + #define TIXML_USE_STL +-#include "tinyxml/tinyxml.h" ++#include <tinyxml.h> + + #include "advanscene.h" + #include "../common.h" diff --git a/nixpkgs/pkgs/misc/emulators/desmume/default.nix b/nixpkgs/pkgs/misc/emulators/desmume/default.nix index 6bb5be3c7137..d5d63cc26944 100644 --- a/nixpkgs/pkgs/misc/emulators/desmume/default.nix +++ b/nixpkgs/pkgs/misc/emulators/desmume/default.nix @@ -2,9 +2,10 @@ , pkgconfig, libtool, intltool , libXmu , lua +, tinyxml , agg, alsaLib, soundtouch, openal , desktop-file-utils -, gtk2, gtkglext, libglade, pangox_compat +, gtk2, gtkglext, libglade , libGLU, libpcap, SDL, zziplib }: with stdenv.lib; @@ -19,19 +20,17 @@ stdenv.mkDerivation rec { }; patches = [ - (fetchpatch { - name = "gcc6_fixes.patch"; - url = "https://anonscm.debian.org/viewvc/pkg-games/packages/trunk/desmume/debian/patches/gcc6_fixes.patch?revision=15925"; - sha256 = "0j3fmxz0mfb3f4biks03pyz8f9hy958ks6qplisl60rzq9v9qpks"; - }) + ./gcc6_fixes.patch + ./gcc7_fixes.patch + ./01_use_system_tinyxml.patch ]; CXXFLAGS = "-fpermissive"; buildInputs = [ pkgconfig libtool intltool libXmu lua agg alsaLib soundtouch - openal desktop-file-utils gtk2 gtkglext libglade pangox_compat - libGLU libpcap SDL zziplib ]; + openal desktop-file-utils gtk2 gtkglext libglade + libGLU libpcap SDL zziplib tinyxml ]; configureFlags = [ "--disable-glade" # Failing on compile step diff --git a/nixpkgs/pkgs/misc/emulators/desmume/gcc6_fixes.patch b/nixpkgs/pkgs/misc/emulators/desmume/gcc6_fixes.patch new file mode 100644 index 000000000000..6eb9576f649b --- /dev/null +++ b/nixpkgs/pkgs/misc/emulators/desmume/gcc6_fixes.patch @@ -0,0 +1,59 @@ +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/nixpkgs/pkgs/misc/emulators/desmume/gcc7_fixes.patch b/nixpkgs/pkgs/misc/emulators/desmume/gcc7_fixes.patch new file mode 100644 index 000000000000..a4934ff6e611 --- /dev/null +++ b/nixpkgs/pkgs/misc/emulators/desmume/gcc7_fixes.patch @@ -0,0 +1,18 @@ +From e1f7039f1b06add4fb75b2f8774000b8f05574af Mon Sep 17 00:00:00 2001 +From: rogerman <rogerman@users.sf.net> +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; diff --git a/nixpkgs/pkgs/misc/emulators/dlx/default.nix b/nixpkgs/pkgs/misc/emulators/dlx/default.nix index 358cc59d3db0..ad111a615142 100644 --- a/nixpkgs/pkgs/misc/emulators/dlx/default.nix +++ b/nixpkgs/pkgs/misc/emulators/dlx/default.nix @@ -10,7 +10,7 @@ stdenv.mkDerivation { buildInputs = [ unzip ]; - makeFlags = "LINK=gcc CFLAGS=-O2"; + makeFlags = [ "LINK=gcc" "CFLAGS=-O2" ]; hardeningDisable = [ "format" ]; diff --git a/nixpkgs/pkgs/misc/emulators/dolphin-emu/default.nix b/nixpkgs/pkgs/misc/emulators/dolphin-emu/default.nix index 303c2f82d9ef..cc49ef2aa1dc 100644 --- a/nixpkgs/pkgs/misc/emulators/dolphin-emu/default.nix +++ b/nixpkgs/pkgs/misc/emulators/dolphin-emu/default.nix @@ -1,5 +1,5 @@ { stdenv, lib, fetchpatch, pkgconfig, cmake, bluez, ffmpeg, libao, gtk2, glib -, libGLU_combined , gettext, libpthreadstubs, libXrandr, libXext, readline +, libGLU, libGL , gettext, libpthreadstubs, libXrandr, libXext, readline , openal , libXdmcp, portaudio, fetchFromGitHub, libusb, libevdev , wxGTK30, soundtouch, miniupnpc, mbedtls, curl, lzo, sfml , libpulseaudio ? null }: @@ -45,7 +45,7 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ cmake bluez ffmpeg libao libGLU_combined gtk2 glib + buildInputs = [ cmake bluez ffmpeg libao libGLU libGL gtk2 glib gettext libpthreadstubs libXrandr libXext readline openal libevdev libXdmcp portaudio libusb libpulseaudio libevdev libXdmcp portaudio libusb libpulseaudio diff --git a/nixpkgs/pkgs/misc/emulators/dolphin-emu/master.nix b/nixpkgs/pkgs/misc/emulators/dolphin-emu/master.nix index e96b2e07890e..cec88918282e 100644 --- a/nixpkgs/pkgs/misc/emulators/dolphin-emu/master.nix +++ b/nixpkgs/pkgs/misc/emulators/dolphin-emu/master.nix @@ -1,5 +1,5 @@ { lib, stdenv, fetchFromGitHub, makeDesktopItem, pkgconfig, cmake -, wrapQtAppsHook, qtbase, bluez, ffmpeg, libao, libGLU_combined, pcre, gettext +, wrapQtAppsHook, qtbase, bluez, ffmpeg, libao, libGLU, libGL, pcre, gettext , libXrandr, libusb, lzo, libpthreadstubs, libXext, libXxf86vm, libXinerama , libSM, libXdmcp, readline, openal, udev, libevdev, portaudio, curl, alsaLib , miniupnpc, enet, mbedtls, soundtouch, sfml @@ -21,13 +21,13 @@ let }; in stdenv.mkDerivation rec { pname = "dolphin-emu"; - version = "5.0-10879"; + version = "5.0-11109"; src = fetchFromGitHub { owner = "dolphin-emu"; repo = "dolphin"; - rev = "c7fc9126aaf447a014af4aed195b17aa593dd49b"; - sha256 = "1pf4mxacxhrkvvh9j49ackm8hahl8x0ligmann1pafsb4lw0xbnj"; + rev = "93d7b3d15962a3393cf2971e14c4acf54d90cecd"; + sha256 = "1kkx3agdsc0qmf3yymlzq315nypm34qvq04qpjqycpfhmpx8gdnq"; }; enableParallelBuilding = true; @@ -35,7 +35,7 @@ in stdenv.mkDerivation rec { ++ lib.optional stdenv.isLinux wrapQtAppsHook; buildInputs = [ - curl ffmpeg libao libGLU_combined pcre gettext libpthreadstubs libpulseaudio + curl ffmpeg libao libGLU libGL pcre gettext libpthreadstubs libpulseaudio libXrandr libXext libXxf86vm libXinerama libSM readline openal libXdmcp lzo portaudio libusb libpng hidapi miniupnpc enet mbedtls soundtouch sfml qtbase diff --git a/nixpkgs/pkgs/misc/emulators/dosbox/default.nix b/nixpkgs/pkgs/misc/emulators/dosbox/default.nix index e72504916085..5b770a6471ab 100644 --- a/nixpkgs/pkgs/misc/emulators/dosbox/default.nix +++ b/nixpkgs/pkgs/misc/emulators/dosbox/default.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, fetchurl, makeDesktopItem, SDL, SDL_net, SDL_sound, libGLU_combined, libpng, graphicsmagick }: +{ stdenv, lib, fetchurl, makeDesktopItem, SDL, SDL_net, SDL_sound, libGLU, libGL, libpng, graphicsmagick }: stdenv.mkDerivation rec { name = "dosbox-0.74-3"; @@ -10,7 +10,7 @@ stdenv.mkDerivation rec { hardeningDisable = [ "format" ]; - buildInputs = [ SDL SDL_net SDL_sound libGLU_combined libpng ]; + buildInputs = [ SDL SDL_net SDL_sound libGLU libGL libpng ]; nativeBuildInputs = [ graphicsmagick ]; diff --git a/nixpkgs/pkgs/misc/emulators/emulationstation/default.nix b/nixpkgs/pkgs/misc/emulators/emulationstation/default.nix index d8f5f1cbdb03..722f6b25429a 100644 --- a/nixpkgs/pkgs/misc/emulators/emulationstation/default.nix +++ b/nixpkgs/pkgs/misc/emulators/emulationstation/default.nix @@ -1,5 +1,6 @@ { stdenv, fetchFromGitHub, pkgconfig, cmake, curl, boost, eigen -, freeimage, freetype, libGLU_combined, SDL2, alsaLib, libarchive }: +, freeimage, freetype, libGLU, libGL, SDL2, alsaLib, libarchive +, fetchpatch }: stdenv.mkDerivation { pname = "emulationstation"; @@ -12,14 +13,22 @@ stdenv.mkDerivation { sha256 = "0cm0sq2wri2l9cvab1l0g02za59q7klj0h3p028vr96n6njj4w9v"; }; - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ cmake alsaLib boost curl eigen freeimage freetype libarchive libGLU_combined SDL2 ]; + patches = [ + (fetchpatch { + url = "https://github.com/Aloshi/EmulationStation/commit/49ccd8fc7a7b1dfd974fc57eb13317c42842f22c.patch"; + sha256 = "1v5d81l7bav0k5z4vybrc3rjcysph6lkm5pcfr6m42wlz7jmjw0p"; + }) + ]; + + nativeBuildInputs = [ pkgconfig cmake ]; + buildInputs = [ alsaLib boost curl eigen freeimage freetype libarchive libGLU libGL SDL2 ]; - buildPhase = "cmake . && make"; installPhase = '' install -D ../emulationstation $out/bin/emulationstation ''; + enableParallelBuilding = true; + meta = { description = "A flexible emulator front-end supporting keyboardless navigation and custom system themes"; homepage = https://emulationstation.org; diff --git a/nixpkgs/pkgs/misc/emulators/epsxe/default.nix b/nixpkgs/pkgs/misc/emulators/epsxe/default.nix index 6950e12e889a..81202008db19 100644 --- a/nixpkgs/pkgs/misc/emulators/epsxe/default.nix +++ b/nixpkgs/pkgs/misc/emulators/epsxe/default.nix @@ -1,5 +1,5 @@ -{ stdenv, fetchurl, alsaLib, curl, gdk-pixbuf, glib, gtk3, libGLU_combined, - libX11, openssl, ncurses5, SDL, SDL_ttf, unzip, zlib, wrapGAppsHook }: +{ stdenv, fetchurl, alsaLib, curl, gdk-pixbuf, glib, gtk3, libGLU, libGL, + libX11, openssl_1_0_2, ncurses5, SDL, SDL_ttf, unzip, zlib, wrapGAppsHook, autoPatchelfHook }: with stdenv.lib; @@ -8,7 +8,7 @@ stdenv.mkDerivation rec { version = "2.0.5"; src = let - version2 = concatStrings (splitString "." version); + version2 = replaceStrings ["."] [""] version; platform = "linux" + (optionalString stdenv.is64bit "_x64"); in fetchurl { url = "https://www.epsxe.com/files/ePSXe${version2}${platform}.zip"; @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { else "1677lclam557kp8jwvchdrk27zfj50fqx2q9i3bcx26d9k61q3kl"; }; - nativeBuildInputs = [ unzip wrapGAppsHook ]; + nativeBuildInputs = [ unzip wrapGAppsHook autoPatchelfHook ]; sourceRoot = "."; buildInputs = [ @@ -27,8 +27,8 @@ stdenv.mkDerivation rec { glib gtk3 libX11 - libGLU_combined - openssl + libGLU libGL + openssl_1_0_2 ncurses5 SDL SDL_ttf @@ -40,10 +40,6 @@ stdenv.mkDerivation rec { installPhase = '' install -D ${if stdenv.is64bit then "epsxe_x64" else "ePSXe"} $out/bin/epsxe - patchelf \ - --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) \ - --set-rpath ${makeLibraryPath buildInputs} \ - $out/bin/epsxe ''; meta = { diff --git a/nixpkgs/pkgs/misc/emulators/fakenes/default.nix b/nixpkgs/pkgs/misc/emulators/fakenes/default.nix index eb7964cc017d..704cef52e5e4 100644 --- a/nixpkgs/pkgs/misc/emulators/fakenes/default.nix +++ b/nixpkgs/pkgs/misc/emulators/fakenes/default.nix @@ -1,4 +1,4 @@ -{stdenv, fetchurl, allegro, openal, libGLU_combined, zlib, hawknl, freeglut, libX11, +{stdenv, fetchurl, allegro, openal, libGLU, libGL, zlib, hawknl, freeglut, libX11, libXxf86vm, libXcursor, libXpm }: stdenv.mkDerivation { @@ -8,7 +8,7 @@ stdenv.mkDerivation { sha256 = "026h67s4pzc1vma59pmzk02iy379255qbai2q74wln9bxqcpniy4"; }; - buildInputs = [ allegro openal libGLU_combined zlib hawknl freeglut libX11 + buildInputs = [ allegro openal libGLU libGL zlib hawknl freeglut libX11 libXxf86vm libXcursor libXpm ]; hardeningDisable = [ "format" ]; diff --git a/nixpkgs/pkgs/misc/emulators/fs-uae/default.nix b/nixpkgs/pkgs/misc/emulators/fs-uae/default.nix index 7e1272faf11b..9f092f91e2ef 100644 --- a/nixpkgs/pkgs/misc/emulators/fs-uae/default.nix +++ b/nixpkgs/pkgs/misc/emulators/fs-uae/default.nix @@ -1,19 +1,19 @@ { stdenv, fetchurl, pkgconfig -, gettext, gtk2, SDL2, zlib, glib, openal, libGLU_combined, lua, freetype, libmpeg2, zip }: +, gettext, gtk2, SDL2, zlib, glib, openal, libGLU, libGL, lua, freetype, libmpeg2, zip }: with stdenv.lib; stdenv.mkDerivation rec { pname = "fs-uae"; - version = "2.8.4"; + version = "3.0.2"; src = fetchurl { - url = "https://fs-uae.net/fs-uae/stable/${version}/${pname}-${version}.tar.gz"; - sha256 = "19ccb3gbpjwwazqc9pyin3jicjl27m2gyvy5bb5zysq0mxpzassj"; + url = "https://fs-uae.net/stable/${version}/${pname}-${version}.tar.gz"; + sha256 = "1awakxs3rlbm0bxpi37cbavi5fpb89wszksyw62as4nz3qsdrpjf"; }; nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ gettext gtk2 SDL2 zlib glib openal libGLU_combined lua freetype libmpeg2 zip ]; + buildInputs = [ gettext gtk2 SDL2 zlib glib openal libGLU libGL lua freetype libmpeg2 zip ]; meta = { description = "An accurate, customizable Amiga Emulator"; diff --git a/nixpkgs/pkgs/misc/emulators/fuse-emulator/default.nix b/nixpkgs/pkgs/misc/emulators/fuse-emulator/default.nix new file mode 100644 index 000000000000..a3a379eb2cfd --- /dev/null +++ b/nixpkgs/pkgs/misc/emulators/fuse-emulator/default.nix @@ -0,0 +1,29 @@ +{ lib, stdenv, fetchurl, perl, pkgconfig, wrapGAppsHook +, SDL, bzip2, glib, gtk3, libgcrypt, libpng, libspectrum, libxml2, zlib +}: + +stdenv.mkDerivation rec { + pname = "fuse-emulator"; + version = "1.5.7"; + + src = fetchurl { + url = "mirror://sourceforge/${pname}/fuse-${version}.tar.gz"; + sha256 = "0kaynjr28w42n3iha60mgr7nxm49w8j0v49plyrc7ka24qzmiqph"; + }; + + nativeBuildInputs = [ perl pkgconfig wrapGAppsHook ]; + + buildInputs = [ SDL bzip2 glib gtk3 libgcrypt libpng libspectrum libxml2 zlib ]; + + configureFlags = [ "--enable-desktop-integration" ]; + + enableParallelBuilding = true; + + meta = with lib; { + homepage = http://fuse-emulator.sourceforge.net/; + description = "ZX Spectrum emulator"; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ orivej ]; + }; +} diff --git a/nixpkgs/pkgs/misc/emulators/gens-gs/default.nix b/nixpkgs/pkgs/misc/emulators/gens-gs/default.nix index da53b4f8c557..4120ec7ba6aa 100644 --- a/nixpkgs/pkgs/misc/emulators/gens-gs/default.nix +++ b/nixpkgs/pkgs/misc/emulators/gens-gs/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, pkgconfig, gtk2, SDL, nasm, zlib, libpng, libGLU_combined }: +{ stdenv, fetchurl, pkgconfig, gtk2, SDL, nasm, zlib, libpng, libGLU, libGL }: stdenv.mkDerivation { name = "gens-gs-7"; @@ -9,7 +9,7 @@ stdenv.mkDerivation { }; nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ gtk2 SDL nasm zlib libpng libGLU_combined ]; + buildInputs = [ gtk2 SDL nasm zlib libpng libGLU libGL ]; # Work around build failures on recent GTK. # See http://ubuntuforums.org/showthread.php?p=10535837 diff --git a/nixpkgs/pkgs/misc/emulators/hatari/default.nix b/nixpkgs/pkgs/misc/emulators/hatari/default.nix index 3cb0f787ce76..278d8d8dc5f3 100644 --- a/nixpkgs/pkgs/misc/emulators/hatari/default.nix +++ b/nixpkgs/pkgs/misc/emulators/hatari/default.nix @@ -9,7 +9,7 @@ stdenv.mkDerivation rec { }; # For pthread_cancel - cmakeFlags = "-DCMAKE_EXE_LINKER_FLAGS=-lgcc_s"; + cmakeFlags = [ "-DCMAKE_EXE_LINKER_FLAGS=-lgcc_s" ]; buildInputs = [ zlib SDL cmake ]; @@ -18,6 +18,6 @@ stdenv.mkDerivation rec { description = "Atari ST/STE/TT/Falcon emulator"; license = stdenv.lib.licenses.gpl2Plus; platforms = stdenv.lib.platforms.linux; - maintainers = with stdenv.lib.maintainers; [ fuuzetsu ]; + maintainers = with stdenv.lib.maintainers; [ ]; }; } diff --git a/nixpkgs/pkgs/misc/emulators/higan/default.nix b/nixpkgs/pkgs/misc/emulators/higan/default.nix index ad96ca36bc16..c1e64d26b476 100644 --- a/nixpkgs/pkgs/misc/emulators/higan/default.nix +++ b/nixpkgs/pkgs/misc/emulators/higan/default.nix @@ -2,7 +2,7 @@ , p7zip, pkgconfig , libX11, libXv , udev -, libGLU_combined, SDL +, libGLU, libGL, SDL , libao, openal, libpulseaudio , gtk2, gtksourceview , runtimeShell }: @@ -24,7 +24,7 @@ stdenv.mkDerivation rec { postPatch = "sed '1i#include <cmath>' -i higan/fc/ppu/ppu.cpp"; buildInputs = - [ p7zip pkgconfig libX11 libXv udev libGLU_combined + [ p7zip pkgconfig libX11 libXv udev libGLU libGL SDL libao openal libpulseaudio gtk2 gtksourceview ]; unpackPhase = '' diff --git a/nixpkgs/pkgs/misc/emulators/libdsk/default.nix b/nixpkgs/pkgs/misc/emulators/libdsk/default.nix index edb70ba72648..cb64c30be495 100644 --- a/nixpkgs/pkgs/misc/emulators/libdsk/default.nix +++ b/nixpkgs/pkgs/misc/emulators/libdsk/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "libdsk"; - version = "1.5.10"; + version = "1.5.12"; src = fetchurl { url = "https://www.seasip.info/Unix/LibDsk/${pname}-${version}.tar.gz"; - sha256 = "0ndkwyf8dp252v4yhqphvi32gmz9m5kkdqwv0aw92cz7mfbnp36g"; + sha256 = "0s2k9vkrf95pf4ydc6vazb29ysrnhdpcfjnf17lpk4nmlv1j3vyv"; }; meta = with stdenv.lib; { diff --git a/nixpkgs/pkgs/misc/emulators/mame/default.nix b/nixpkgs/pkgs/misc/emulators/mame/default.nix new file mode 100644 index 000000000000..3c205a703759 --- /dev/null +++ b/nixpkgs/pkgs/misc/emulators/mame/default.nix @@ -0,0 +1,73 @@ +{ stdenv, mkDerivation, fetchFromGitHub, makeDesktopItem, makeWrapper +, python, pkgconfig, SDL2, SDL2_ttf, alsaLib, which, qtbase, libXinerama +, installShellFiles }: + +let + majorVersion = "0"; + minorVersion = "217"; + + desktopItem = makeDesktopItem { + name = "MAME"; + exec = "mame${stdenv.lib.optionalString stdenv.is64bit "64"}"; + desktopName = "MAME"; + genericName = "MAME is a multi-purpose emulation framework"; + categories = "System;Emulator;"; + }; + + dest = "$out/opt/mame"; +in mkDerivation { + pname = "mame"; + version = "${majorVersion}.${minorVersion}"; + + src = fetchFromGitHub { + owner = "mamedev"; + repo = "mame"; + rev = "mame${majorVersion}${minorVersion}"; + sha256 = "0yzn29fp72k2g5xgv47ss6fr3sk9wdxw9f52nwld1baxr2adc0qx"; + }; + + hardeningDisable = [ "fortify" ]; + NIX_CFLAGS_COMPILE = [ "-Wno-error=maybe-uninitialized" ]; + + makeFlags = [ "TOOLS=1" ]; + + dontWrapQtApps = true; + + buildInputs = [ SDL2 SDL2_ttf alsaLib qtbase libXinerama ]; + nativeBuildInputs = [ python pkgconfig which makeWrapper installShellFiles ]; + + # by default MAME assumes that paths with stock resources + # are relative and that you run MAME changing to + # install directory, so we add absolute paths here + patches = [ ./emuopts.patch ]; + + postPatch = '' + substituteInPlace src/emu/emuopts.cpp \ + --subst-var-by mame ${dest} + ''; + + installPhase = '' + make -f dist.mak PTR64=${stdenv.lib.optionalString stdenv.is64bit "1"} + mkdir -p ${dest} + mv build/release/*/Release/mame/* ${dest} + + mkdir -p $out/bin + find ${dest} -maxdepth 1 -executable -type f -exec mv -t $out/bin {} \; + install -Dm755 src/osd/sdl/taputil.sh $out/bin/taputil.sh + + installManPage ${dest}/docs/man/*.1 ${dest}/docs/man/*.6 + + mv artwork plugins samples ${dest} + + mkdir -p $out/share + ln -s ${desktopItem}/share/applications $out/share + ''; + + meta = with stdenv.lib; { + description = "Is a multi-purpose emulation framework"; + homepage = https://www.mamedev.org/; + license = with licenses; [ bsd3 gpl2Plus ]; + platforms = [ "x86_64-linux" "i686-linux" ]; + maintainers = with maintainers; [ gnidorah ]; + }; +} diff --git a/nixpkgs/pkgs/misc/emulators/mame/emuopts.patch b/nixpkgs/pkgs/misc/emulators/mame/emuopts.patch new file mode 100644 index 000000000000..b85291f52f74 --- /dev/null +++ b/nixpkgs/pkgs/misc/emulators/mame/emuopts.patch @@ -0,0 +1,29 @@ +diff --git a/src/emu/emuopts.cpp b/src/emu/emuopts.cpp +index c42fcef848..d1bddae060 100644 +--- a/src/emu/emuopts.cpp ++++ b/src/emu/emuopts.cpp +@@ -36,16 +36,16 @@ const options_entry emu_options::s_option_entries[] = + { nullptr, nullptr, OPTION_HEADER, "CORE SEARCH PATH OPTIONS" }, + { OPTION_HOMEPATH, ".", OPTION_STRING, "path to base folder for plugin data (read/write)" }, + { OPTION_MEDIAPATH ";rp;biospath;bp", "roms", OPTION_STRING, "path to ROM sets and hard disk images" }, +- { OPTION_HASHPATH ";hash_directory;hash", "hash", OPTION_STRING, "path to software definition files" }, +- { OPTION_SAMPLEPATH ";sp", "samples", OPTION_STRING, "path to audio sample sets" }, +- { OPTION_ARTPATH, "artwork", OPTION_STRING, "path to artwork files" }, +- { OPTION_CTRLRPATH, "ctrlr", OPTION_STRING, "path to controller definitions" }, +- { OPTION_INIPATH, ".;ini;ini/presets", OPTION_STRING, "path to ini files" }, +- { OPTION_FONTPATH, ".", OPTION_STRING, "path to font files" }, ++ { OPTION_HASHPATH ";hash_directory;hash", "hash;@mame@/hash", OPTION_STRING, "path to software definition files" }, ++ { OPTION_SAMPLEPATH ";sp", "samples;@mame@/samples", OPTION_STRING, "path to audio sample sets" }, ++ { OPTION_ARTPATH, "artwork;@mame@/artwork", OPTION_STRING, "path to artwork files" }, ++ { OPTION_CTRLRPATH, "ctrlr;@mame@/ctrlr", OPTION_STRING, "path to controller definitions" }, ++ { OPTION_INIPATH, ".;ini;ini/presets;@mame@/ini/presets", OPTION_STRING, "path to ini files" }, ++ { OPTION_FONTPATH, ".;@mame@", OPTION_STRING, "path to font files" }, + { OPTION_CHEATPATH, "cheat", OPTION_STRING, "path to cheat files" }, + { OPTION_CROSSHAIRPATH, "crosshair", OPTION_STRING, "path to crosshair files" }, +- { OPTION_PLUGINSPATH, "plugins", OPTION_STRING, "path to plugin files" }, +- { OPTION_LANGUAGEPATH, "language", OPTION_STRING, "path to UI translation files" }, ++ { OPTION_PLUGINSPATH, "plugins;@mame@/plugins", OPTION_STRING, "path to plugin files" }, ++ { OPTION_LANGUAGEPATH, "language;@mame@/language", OPTION_STRING, "path to UI translation files" }, + { OPTION_SWPATH, "software", OPTION_STRING, "path to loose software" }, + + // output directory options diff --git a/nixpkgs/pkgs/misc/emulators/mednafen/default.nix b/nixpkgs/pkgs/misc/emulators/mednafen/default.nix index 74c456cfb105..337d19804fc4 100644 --- a/nixpkgs/pkgs/misc/emulators/mednafen/default.nix +++ b/nixpkgs/pkgs/misc/emulators/mednafen/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, pkgconfig, freeglut, libGLU_combined, libcdio, libjack2 +{ stdenv, fetchurl, pkgconfig, freeglut, libGLU, libGL, libcdio, libjack2 , libsamplerate, libsndfile, libX11, SDL, SDL_net, zlib }: stdenv.mkDerivation rec { @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { buildInputs = [ freeglut - libGLU_combined + libGLU libGL libcdio libjack2 libsamplerate diff --git a/nixpkgs/pkgs/misc/emulators/mess/default.nix b/nixpkgs/pkgs/misc/emulators/mess/default.nix deleted file mode 100644 index fc63bf705f4e..000000000000 --- a/nixpkgs/pkgs/misc/emulators/mess/default.nix +++ /dev/null @@ -1,49 +0,0 @@ -{ stdenv, fetchurl, unzip, pkgconfig, SDL, gtk2, GConf, libGLU_combined -, expat, zlib }: - -let - - version = "139"; - - mameSrc = fetchurl { - url = "https://github.com/mamedev/mame/releases/download/mame0139/mame0${version}s.zip"; - sha256 = "1mpkwxfz38cgxzvlni2y3fxas3b8qmnzj2ik2zzbd8mr622jdp79"; - }; - - messSrc = fetchurl { - url = "http://www.progettosnaps.net/MESS/src/mess0${version}s.zip"; - name = "mess0139s.zip"; - sha256 = "1v892cg6wn8cdwc8pf1gcqqdb1v1v295r6jw2hf58svwx3h27xyy"; - }; - -in - -stdenv.mkDerivation { - name = "mess-0.${version}"; - - unpackPhase = - '' - unzip ${mameSrc} - # Yes, the MAME distribution is a zip file containing a zip file... - unzip mame.zip - unzip -o ${messSrc} - ''; - - makeFlags = "TARGET=mess BUILD_EXPAT= BUILD_ZLIB= NOWERROR=1"; - - buildInputs = - [ unzip pkgconfig SDL gtk2 GConf libGLU_combined expat zlib ]; - - installPhase = - '' - mkdir -p $out/bin - cp mess* $out/bin/mess - ''; - - meta = { - homepage = https://www.mess.org/; - license = "non-commercial"; - description = "Multi Emulator Super System, an emulator of many game consoles and computer systems"; - broken = true; - }; -} diff --git a/nixpkgs/pkgs/misc/emulators/mgba/default.nix b/nixpkgs/pkgs/misc/emulators/mgba/default.nix index 6dc7bc30f322..c2b30f8ce47a 100644 --- a/nixpkgs/pkgs/misc/emulators/mgba/default.nix +++ b/nixpkgs/pkgs/misc/emulators/mgba/default.nix @@ -15,13 +15,13 @@ let }; in stdenv.mkDerivation rec { pname = "mgba"; - version = "0.7.2"; + version = "0.7.3"; src = fetchFromGitHub { owner = "mgba-emu"; repo = "mgba"; rev = version; - sha256 = "0g0xa1mzvan0sl1p5c784j2g5mcw9kd2b7wiahy06gy0c1nmbcnp"; + sha256 = "1wrmwh50rv8bd328r8cisrihq6h90kx2bfb0vmjfbsd3l1jvgrgm"; }; enableParallelBuilding = true; diff --git a/nixpkgs/pkgs/misc/emulators/mupen64plus/default.nix b/nixpkgs/pkgs/misc/emulators/mupen64plus/default.nix index 460dd7ad5fb5..ee3aab1834ab 100644 --- a/nixpkgs/pkgs/misc/emulators/mupen64plus/default.nix +++ b/nixpkgs/pkgs/misc/emulators/mupen64plus/default.nix @@ -1,15 +1,15 @@ -{stdenv, fetchurl, boost, dash, freetype, libpng, pkgconfig, SDL, which, zlib }: +{stdenv, fetchurl, boost, dash, freetype, libpng, pkgconfig, SDL, which, zlib, nasm }: stdenv.mkDerivation rec { pname = "mupen64plus"; - version = "2.5"; + version = "2.5.9"; src = fetchurl { url = "https://github.com/mupen64plus/mupen64plus-core/releases/download/${version}/mupen64plus-bundle-src-${version}.tar.gz"; - sha256 = "0rmsvfn4zfvbhz6gf1xkb7hnwflv6sbklwjz2xk4dlpj4vcbjxcw"; + sha256 = "1a21n4gqdvag6krwcjm5bnyw5phrlxw6m0mk73jy53iq03f3s96m"; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkgconfig nasm ]; buildInputs = [ boost dash freetype libpng SDL which zlib ]; buildPhase = '' @@ -19,11 +19,11 @@ stdenv.mkDerivation rec { dash m64p_install.sh DESTDIR="$out" PREFIX="" ''; - meta = { + meta = with stdenv.lib; { description = "A Nintendo 64 Emulator"; - license = stdenv.lib.licenses.gpl2Plus; + license = licenses.gpl2Plus; homepage = http://www.mupen64plus.org/; - maintainers = [ stdenv.lib.maintainers.sander ]; - platforms = stdenv.lib.platforms.linux; + maintainers = [ maintainers.sander ]; + platforms = [ "x86_64-linux" ]; }; } diff --git a/nixpkgs/pkgs/misc/emulators/nestopia/default.nix b/nixpkgs/pkgs/misc/emulators/nestopia/default.nix index 4f02d0f147d4..20c7c39312a5 100644 --- a/nixpkgs/pkgs/misc/emulators/nestopia/default.nix +++ b/nixpkgs/pkgs/misc/emulators/nestopia/default.nix @@ -1,5 +1,5 @@ { stdenv, fetchFromGitHub, pkgconfig, SDL2, alsaLib, gtk3 -, makeWrapper, libGLU_combined, libarchive, libao, unzip, xdg_utils +, makeWrapper, libGLU, libGL, libarchive, libao, unzip, xdg_utils , epoxy, gdk-pixbuf, gnome3, wrapGAppsHook }: @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { epoxy gtk3 gdk-pixbuf - libGLU_combined + libGLU libGL libarchive libao unzip diff --git a/nixpkgs/pkgs/misc/emulators/pcsxr/default.nix b/nixpkgs/pkgs/misc/emulators/pcsxr/default.nix index 8f1e5e02c186..1035061d0570 100644 --- a/nixpkgs/pkgs/misc/emulators/pcsxr/default.nix +++ b/nixpkgs/pkgs/misc/emulators/pcsxr/default.nix @@ -14,35 +14,35 @@ stdenv.mkDerivation rec { patches = [ ( fetchpatch { - url = "https://anonscm.debian.org/cgit/pkg-games/pcsxr.git/plain/debian/patches/01_fix-i386-exec-stack.patch?h=debian/1.9.94-2"; + url = "https://salsa.debian.org/games-team/pcsxr/raw/315e56d16e36ef3011f72d0fe86190728d2ba596/debian/patches/01_fix-i386-exec-stack.patch"; sha256 = "17497wjxd6b92bj458s2769d9bpp68ydbvmfs9gp51yhnq4zl81x"; }) ( fetchpatch { - url = "https://anonscm.debian.org/cgit/pkg-games/pcsxr.git/plain/debian/patches/02_disable-ppc-auto-dynarec.patch?h=debian/1.9.94-2"; + url = "https://salsa.debian.org/games-team/pcsxr/raw/315e56d16e36ef3011f72d0fe86190728d2ba596/debian/patches/02_disable-ppc-auto-dynarec.patch"; sha256 = "0v8n79z034w6cqdrzhgd9fkdpri42mzvkdjm19x4asz94gg2i2kf"; }) ( fetchpatch { - url = "https://anonscm.debian.org/cgit/pkg-games/pcsxr.git/plain/debian/patches/03_fix-plugin-dir.patch?h=debian/1.9.94-2"; + url = "https://salsa.debian.org/games-team/pcsxr/raw/315e56d16e36ef3011f72d0fe86190728d2ba596/debian/patches/03_fix-plugin-dir.patch"; sha256 = "0vkl0mv6whqaz79kvvvlmlmjpynyq4lh352j3bbxcr0vjqffxvsy"; }) ( fetchpatch { - url = "https://anonscm.debian.org/cgit/pkg-games/pcsxr.git/plain/debian/patches/04_update-homedir-symlinks.patch?h=debian/1.9.94-2"; + url = "https://salsa.debian.org/games-team/pcsxr/raw/315e56d16e36ef3011f72d0fe86190728d2ba596/debian/patches/04_update-homedir-symlinks.patch"; sha256 = "18r6n025ybr8fljfsaqm4ap31wp8838j73lrsffi49fkis60dp4j"; }) ( fetchpatch { - url = "https://anonscm.debian.org/cgit/pkg-games/pcsxr.git/plain/debian/patches/05_format-security.patch?h=debian/1.9.94-2"; + url = "https://salsa.debian.org/games-team/pcsxr/raw/315e56d16e36ef3011f72d0fe86190728d2ba596/debian/patches/05_format-security.patch"; sha256 = "03m4kfc9bk5669hf7ji1anild08diliapx634f9cigyxh72jcvni"; }) ( fetchpatch { - url = "https://anonscm.debian.org/cgit/pkg-games/pcsxr.git/plain/debian/patches/06_warnings.patch?h=debian/1.9.94-2"; + url = "https://salsa.debian.org/games-team/pcsxr/raw/315e56d16e36ef3011f72d0fe86190728d2ba596/debian/patches/06_warnings.patch"; sha256 = "0iz3g9ihnhisfgrzma9l74y4lhh57na9h41bmiam1millb796g71"; }) ( fetchpatch { - url = "https://anonscm.debian.org/cgit/pkg-games/pcsxr.git/plain/debian/patches/07_non-linux-ip-addr.patch?h=debian/1.9.94-2"; + url = "https://salsa.debian.org/games-team/pcsxr/raw/315e56d16e36ef3011f72d0fe86190728d2ba596/debian/patches/07_non-linux-ip-addr.patch"; sha256 = "14vb9l0l4nzxcymhjjs4q57nmsncmby9qpdr7c19rly5wavm4k77"; }) ( fetchpatch { - url = "https://anonscm.debian.org/cgit/pkg-games/pcsxr.git/plain/debian/patches/08_reproducible.patch?h=debian/1.9.94-2"; + url = "https://salsa.debian.org/games-team/pcsxr/raw/315e56d16e36ef3011f72d0fe86190728d2ba596/debian/patches/08_reproducible.patch"; sha256 = "1cx9q59drsk9h6l31097lg4aanaj93ysdz5p88pg9c7wvxk1qz06"; }) diff --git a/nixpkgs/pkgs/misc/emulators/ppsspp/default.nix b/nixpkgs/pkgs/misc/emulators/ppsspp/default.nix index 619938ba5c64..b976c1e8c27d 100644 --- a/nixpkgs/pkgs/misc/emulators/ppsspp/default.nix +++ b/nixpkgs/pkgs/misc/emulators/ppsspp/default.nix @@ -1,45 +1,69 @@ -{ stdenv, fetchFromGitHub, cmake, pkgconfig, qtbase, qtmultimedia -, glew, libzip, snappy, zlib, withGamepads ? true, SDL2 }: +{ SDL2 +, cmake +, fetchFromGitHub +, ffmpeg +, glew +, lib +, libzip +, mkDerivation +, pkgconfig +, python3 +, qtbase +, qtmultimedia +, snappy +, zlib +}: -assert withGamepads -> (SDL2 != null); -with stdenv.lib; - -stdenv.mkDerivation rec { +mkDerivation rec { pname = "ppsspp"; - version = "1.4.2"; + version = "1.9.3"; src = fetchFromGitHub { owner = "hrydgard"; repo = "ppsspp"; rev = "v${version}"; fetchSubmodules = true; - sha256 = "0m4qkhx7q496sm7ibg2n7rm3npxzfr93iraxgndk0vhfk8vy8w75"; + sha256 = "17sym0vk72lzbh9a1501mhw98c78x1gq7k1fpy69nvvb119j37wa"; }; - patchPhase = '' - echo 'const char *PPSSPP_GIT_VERSION = "${src.rev}";' >> git-version.cpp - substituteInPlace UI/NativeApp.cpp --replace /usr/share $out/share + postPatch = '' + substituteInPlace git-version.cmake \ + --replace unknown ${src.rev} + substituteInPlace UI/NativeApp.cpp \ + --replace /usr/share $out/share ''; - nativeBuildInputs = [ cmake pkgconfig ]; - buildInputs = [ qtbase qtmultimedia glew libzip snappy zlib ] - ++ optionals withGamepads [ SDL2 SDL2.dev ]; + nativeBuildInputs = [ cmake pkgconfig python3 ]; + + buildInputs = [ + SDL2 + ffmpeg + glew + libzip + qtbase + qtmultimedia + snappy + zlib + ]; - cmakeFlags = [ "-DCMAKE_BUILD_TYPE=Release" "-DUSING_QT_UI=ON" ]; + cmakeFlags = [ + "-DOpenGL_GL_PREFERENCE=GLVND" + "-DUSE_SYSTEM_FFMPEG=ON" + "-DUSE_SYSTEM_LIBZIP=ON" + "-DUSE_SYSTEM_SNAPPY=ON" + "-DUSING_QT_UI=ON" + ]; installPhase = '' - mkdir -p $out/bin $out/share/ppsspp - mv PPSSPPQt $out/bin/ppsspp + mkdir -p $out/share/ppsspp + install -Dm555 PPSSPPQt $out/bin/ppsspp mv assets $out/share/ppsspp ''; - enableParallelBuilding = true; - - meta = { - homepage = https://www.ppsspp.org/; + meta = with lib; { description = "A PSP emulator for Android, Windows, Mac and Linux, written in C++"; + homepage = "https://www.ppsspp.org/"; license = licenses.gpl2Plus; - maintainers = with maintainers; [ fuuzetsu AndersonTorres ]; - platforms = platforms.linux ++ platforms.darwin ++ platforms.cygwin; + maintainers = with maintainers; [ AndersonTorres ]; }; } diff --git a/nixpkgs/pkgs/misc/emulators/qmc2/default.nix b/nixpkgs/pkgs/misc/emulators/qmc2/default.nix index ca8d87b38005..660eba5fd03c 100644 --- a/nixpkgs/pkgs/misc/emulators/qmc2/default.nix +++ b/nixpkgs/pkgs/misc/emulators/qmc2/default.nix @@ -36,5 +36,6 @@ stdenv.mkDerivation rec { license = licenses.gpl2; maintainers = [ maintainers.genesis ]; platforms = platforms.linux; + broken = true; }; } diff --git a/nixpkgs/pkgs/misc/emulators/resim/default.nix b/nixpkgs/pkgs/misc/emulators/resim/default.nix new file mode 100644 index 000000000000..81acdf81f2ec --- /dev/null +++ b/nixpkgs/pkgs/misc/emulators/resim/default.nix @@ -0,0 +1,18 @@ +{ fetchFromGitHub, stdenv, cmake, qt4 }: + +stdenv.mkDerivation { + name = "resim"; + src = fetchFromGitHub { + owner = "itszor"; + repo = "resim"; + rev = "cdc7808ceb7ba4ac00d0d08ca646b58615059150"; + sha256 = "1743lngqxd7ai4k6cd4d1cf9h60z2pnvr2iynfs1zlpcj3w1hx0c"; + }; + nativeBuildInputs = [ cmake ]; + buildInputs = [ qt4 ]; + installPhase = '' + mkdir -pv $out/{lib,bin} + cp -v libresim/libarmsim.so $out/lib/libarmsim.so + cp -v vc4emul/vc4emul $out/bin/vc4emul + ''; +} diff --git a/nixpkgs/pkgs/misc/emulators/retroarch/cores.nix b/nixpkgs/pkgs/misc/emulators/retroarch/cores.nix index fbde2ff54c9e..45ed31168f00 100644 --- a/nixpkgs/pkgs/misc/emulators/retroarch/cores.nix +++ b/nixpkgs/pkgs/misc/emulators/retroarch/cores.nix @@ -1,17 +1,17 @@ -{ stdenv, fetchgit, fetchFromGitLab, cmake, pkgconfig, makeWrapper, python27, retroarch -, alsaLib, fluidsynth, curl, hidapi, libGLU_combined, gettext, glib, gtk2, portaudio, SDL +{ stdenv, fetchgit, fetchFromGitHub, fetchFromGitLab, cmake, pkgconfig, makeWrapper, python27, python37, retroarch +, alsaLib, fluidsynth, curl, hidapi, libGLU, gettext, glib, gtk2, portaudio, SDL, libGL , ffmpeg, pcre, libevdev, libpng, libjpeg, udev, libvorbis -, miniupnpc, sfml, xorg, zlib }: +, miniupnpc, sfml, xorg, zlib, nasm, libpcap, boost }: let d2u = stdenv.lib.replaceChars ["-"] ["_"]; - mkLibRetroCore = ({ core, src, description, license, ... }@a: + mkLibRetroCore = ({ core, src, description, license, broken ? false, ... }@a: stdenv.lib.makeOverridable stdenv.mkDerivation rec { name = "libretro-${core}-${version}"; - version = "2017-06-04"; + version = "2019-09-29"; inherit src; buildInputs = [ makeWrapper retroarch zlib ] ++ a.extraBuildInputs or []; @@ -58,12 +58,83 @@ in with stdenv.lib.licenses; core = "4do"; src = fetchRetro { repo = core + "-libretro"; - rev = "52d881743dd8614d96b4de8bd153cb725b87d474"; - sha256 = "1n42f70vni2zavppayaq8xmsyx5cn40qi4zk4pgq1w3hh2q8mj72"; + rev = "b6ad4bc8548f2f3792cd929ccf26d9078b73a1c0"; + sha256 = "0j2bd9cnnd5k99l9qr4wd5q9b4ciplia6ywp90xg6422s1im2iw0"; }; description = "Port of 4DO/libfreedo to libretro"; license = "Non-commercial"; }).override { + makefile = "Makefile"; + buildPhase = "make"; + }; + + atari800 = (mkLibRetroCore rec { + core = "atari800"; + src = fetchRetro { + repo = "libretro-" + core; + rev = "efc0bc71e3cb8a4f957d07fe808cc002ed9c13b9"; + sha256 = "150hmazi4p5p18gpjmkrn1k9j719cd9gy7jn0jiy3jbk2cxxsjn6"; + }; + description = "Port of Atari800 to libretro"; + license = gpl2; + }).override { + makefile = "Makefile"; + buildPhase = "make"; + }; + + beetle-snes = (mkLibRetroCore rec { + core = "mednafen-snes"; + src = fetchRetro { + repo = "beetle-bsnes-libretro"; + rev = "6aee84d454570bb17dff5975df28febdbcb72938"; + sha256 = "0nk9xlypg3jhpbwd9z5bjbgzlkz842hy9rq14k1nwn0qz6d88kld"; + }; + description = "Port of Mednafen's SNES core to libretro"; + license = gpl2; + }).override { + makefile = "Makefile"; + buildPhase = "make"; + }; + + beetle-gba = (mkLibRetroCore rec { + core = "mednafen-gba"; + src = fetchRetro { + repo = "beetle-gba-libretro"; + rev = "135afdbb9591655a3e016b75abba07e481f6d406"; + sha256 = "0fc0x24qn4y7pz3mp1mm1ain31aj9pznp1irr0k7hvazyklzy9g3"; + }; + description = "Port of Mednafen's GameBoy Advance core to libretro"; + license = gpl2; + }).override { + makefile = "Makefile"; + buildPhase = "make"; + }; + + beetle-lynx = (mkLibRetroCore rec { + core = "mednafen-lynx"; + src = fetchRetro { + repo = "beetle-lynx-libretro"; + rev = "928f7cf5b39f0363e55667572ff455e37489998e"; + sha256 = "0f03wzdr6f0fpy889i9a2834jg5lvcriyl98pajp75m7whm9r9cc"; + }; + description = "Port of Mednafen's Lynx core to libretro"; + license = gpl2; + }).override { + makefile = "Makefile"; + buildPhase = "make"; + }; + + beetle-ngp = (mkLibRetroCore rec { + core = "mednafen-ngp"; + src = fetchRetro { + repo = "beetle-ngp-libretro"; + rev = "6130e4057c3d8f9172f0c49bb9b6c61bd1a572d5"; + sha256 = "10k7spjrhggjgzb370bwv7fgk0nb6xri9ym6cm4qvnrkcwxm7i9p"; + }; + description = "Port of Mednafen's NeoGeo Pocket core to libretro"; + license = gpl2; + }).override { + makefile = "Makefile"; buildPhase = "make"; }; @@ -71,26 +142,42 @@ in with stdenv.lib.licenses; core = "mednafen-pce-fast"; src = fetchRetro { repo = "beetle-pce-fast-libretro"; - rev = "2954e645d668ee73d93803dc30da4462fc7a459b"; - sha256 = "0p0k7kqfd6xg1qh6vgzgwp122miprb2bpzljgxd9kvigxihsl6f7"; + rev = "7bbbdf111c1ce52ab4a97e911ebdaa6836ee881a"; + sha256 = "1p0kk5a2yi05yl0hspzv9q0n96yx9riaaacbmnq76li0i3ihkf6l"; }; description = "Port of Mednafen's PC Engine core to libretro"; license = gpl2; }); in der.override { + makefile = "Makefile"; buildPhase = "make"; name = "beetle-pce-fast-${der.version}"; }; + beetle-pcfx = (mkLibRetroCore rec { + core = "mednafen-pcfx"; + src = fetchRetro { + repo = "beetle-pcfx-libretro"; + rev = "e04f695202a7295e4b6f2122ae947279ac9df007"; + sha256 = "0pdlz05pjqxp19da13dr3wd20hgxw8z5swhflyf7ksjgvz5rxb4r"; + }; + description = "Port of Mednafen's PCFX core to libretro"; + license = gpl2; + }).override { + makefile = "Makefile"; + buildPhase = "make"; + }; + beetle-psx = let der = (mkLibRetroCore { core = "mednafen-psx"; src = fetchRetro { repo = "beetle-psx-libretro"; - rev = "76862abefdde9097561e2b795e75b49247deff17"; - sha256 = "1k4b7g50ajzchjrm6d3v68hvri4k3hzvacn2l99i5yq3hxp7vs7x"; + rev = "f55db8655408104a6e20af667657423f08566c85"; + sha256 = "17iz8r2wy8zqh63j78ijwxasdnmg8dh9mmqn1qr4hvf4fj53ckk8"; }; description = "Port of Mednafen's PSX Engine core to libretro"; license = gpl2; }); in der.override { + makefile = "Makefile"; buildPhase = "make"; name = "beetle-psx-${der.version}"; }; @@ -99,27 +186,84 @@ in with stdenv.lib.licenses; core = "mednafen-saturn"; src = fetchRetro { repo = "beetle-saturn-libretro"; - rev = "3f1661b39ef249e105e6e2e655854ad0c87cd497"; - sha256 = "1d1brysynwr6inlwfgv7gwkl3i9mf4lsaxd9wm2szw86g4diyn4c"; + rev = "3313cc6760c14cffa9226e0cfd41debc11df8bdd"; + sha256 = "1z2zfn5cpsr3x6bvr562vqvmp4pjjhv5a6jcp09gfsy2gkyispr2"; }; description = "Port of Mednafen's Saturn core to libretro"; license = gpl2; }); in der.override { + makefile = "Makefile"; buildPhase = "make"; name = "beetle-saturn-${der.version}"; - meta.platforms = [ "x86_64-linux" ]; + meta.platforms = [ "x86_64-linux" "aarch64-linux" ]; + }; + + beetle-supergrafx = (mkLibRetroCore rec { + core = "mednafen-supergrafx"; + src = fetchRetro { + repo = "beetle-supergrafx-libretro"; + rev = "857e41146e3b0a51def3baea49d2eec80f18102b"; + sha256 = "0r3v4qy4rx4mnr7w4s779f6f2bjyp69m42blimacl1l9f6hmcv5h"; + }; + description = "Port of Mednafen's SuperGrafx core to libretro"; + license = gpl2; + }).override { + makefile = "Makefile"; + buildPhase = "make"; + }; + + beetle-wswan = (mkLibRetroCore rec { + core = "mednafen-wswan"; + src = fetchRetro { + repo = "beetle-wswan-libretro"; + rev = "925cb8c77af1678ceab24f04c2790cb95389def1"; + sha256 = "0kqsqn655z6nnr2s1xdbf37ds99gyhqfd7dx0wmx3sy1fshjg5wm"; + }; + description = "Port of Mednafen's WonderSwan core to libretro"; + license = gpl2; + }).override { + makefile = "Makefile"; + buildPhase = "make"; + }; + + beetle-vb = (mkLibRetroCore rec { + core = "mednafen-vb"; + src = fetchRetro { + repo = "beetle-vb-libretro"; + rev = "9066cdafa29ac054243a679baded49212661f47b"; + sha256 = "0gsniz5kk4xdiprcfyqjcss2vkrphi48wbr29gqvpf7l8gpnwx8p"; + }; + description = "Port of Mednafen's VirtualBoy core to libretro"; + license = gpl2; + }).override { + makefile = "Makefile"; + buildPhase = "make"; + }; + + bluemsx = (mkLibRetroCore rec { + core = "bluemsx"; + src = fetchRetro { + repo = core + "-libretro"; + rev = "ddd89ff1fa534816e48521bd930b721f2d39975a"; + sha256 = "0hiqhc1ckj3ydy0q1v8hwjkkyh2564f7wlqypmshjcc47n296xyf"; + }; + description = "Port of BlueMSX to libretro"; + license = gpl2; + }).override { + buildPhase = "make"; }; bsnes-mercury = let bname = "bsnes-mercury"; in (mkLibRetroCore { core = bname + "-accuracy"; src = fetchRetro { repo = bname; - rev = "e89c9a2e0a12d588366ee4f5c76b7d75139d938b"; - sha256 = "0vkn1f38vwazpp3kbvvv8c467ghak6yfx00s48wkxwvhmak74a3s"; + rev = "4a382621da58ae6da850f1bb003ace8b5f67968c"; + sha256 = "0z8psz24nx8497vpk2wya9vs451rzzw915lkw3qiq9bzlzg9r2wv"; }; description = "Fork of bsnes with HLE DSP emulation restored"; license = gpl3; }).override { + makefile = "Makefile"; buildPhase = "make && cd out"; }; @@ -127,54 +271,88 @@ in with stdenv.lib.licenses; core = "desmume"; src = fetchRetro { repo = core; - rev = "ce1f93abb4c3aa55099f56298e5438a03a3c2bbd"; - sha256 = "064gzfbr7yizmvi91ry5y6bzikj633kdqhvzycb9f1g6kspf8yyl"; + rev = "e8cf461f83eebb195f09e70090f57b07d1bcdd9f"; + sha256 = "0rc8s5226wn39jqs5yxi30jc1snc0p106sfym7kgi98hy5na8yab"; }; description = "libretro wrapper for desmume NDS emulator"; license = gpl2; + extraBuildInputs = [ libpcap libGLU libGL xorg.libX11 ]; }).override { + makefile = "desmume/src/frontend/libretro/Makefile.libretro"; + configurePhase = "cd desmume/src/frontend/libretro"; + buildPhase = "make"; + }; + + desmume2015 = (mkLibRetroCore rec { + core = "desmume2015"; + src = fetchRetro { + repo = core; + rev = "c27bb71aa28250f6da1576e069b4b8cc61986beb"; + sha256 = "1m7g1wwpnnprmki3rixknggjmxbp7d4hwxgkqr041shmrm0rhafd"; + }; + description = "libretro wrapper for desmume NDS emulator from 2015"; + license = gpl2; + extraBuildInputs = [ libpcap libGLU libGL xorg.libX11 ]; + }).override { + makefile = "desmume/Makefile.libretro"; configurePhase = "cd desmume"; + buildPhase = "make"; }; dolphin = (mkLibRetroCore { core = "dolphin"; src = fetchRetro { repo = "dolphin"; - rev = "a6ad451fdd4ac8753fd1a8e2234ec34674677754"; - sha256 = "1cshlfmhph8dl3vgvn37imvp2b7xs2cx1r1ifp5js5psvhycrbz3"; + rev = "11a7ed402c7178da1d9d57c6e5e5a05a4dc6a2c8"; + sha256 = "11jrcczkbyns01rvxb5rd22fbkbfn2h81f6pfxbhi13fl4ljim9x"; }; description = "Port of Dolphin to libretro"; license = gpl2Plus; + broken = true; extraBuildInputs = [ - cmake curl libGLU_combined pcre pkgconfig sfml miniupnpc - gettext glib gtk2 hidapi + cmake curl libGLU libGL pcre pkgconfig sfml + gettext hidapi libevdev udev - ] ++ (with xorg; [ libSM libX11 libXi libpthreadstubs libxcb xcbutil libXinerama libXxf86vm ]); + ] ++ (with xorg; [ libSM libX11 libXi libpthreadstubs libxcb xcbutil libXext libXrandr libXinerama libXxf86vm ]); }).override { cmakeFlags = [ - "-DLINUX_LOCAL_DEV=true" - "-DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk2.out}/lib/gtk-2.0/include" - "-DGTK2_GLIBCONFIG_INCLUDE_DIR=${glib.out}/lib/glib-2.0/include" - "-DGTK2_INCLUDE_DIRS=${gtk2.dev}/include/gtk-2.0" + "-DCMAKE_BUILD_TYPE=Release" + "-DLIBRETRO=ON" + "-DLIBRETRO_STATIC=1" + "-DENABLE_QT=OFF" + "-DENABLE_LTO=OFF" + "-DUSE_UPNP=OFF" + "-DUSE_DISCORD_PRESENCE=OFF" ]; dontUseCmakeBuildDir = "yes"; - buildPhase = '' - cd Source/Core/DolphinLibretro - make - ''; + buildPhase = "make"; + }; + + dosbox = (mkLibRetroCore rec { + core = "dosbox"; + src = fetchRetro { + repo = core + "-libretro"; + rev = "e4ed503b14ed59d5d745396ef1cc7d52cf912328"; + sha256 = "13bx0ln9hwn6hy4sv0ivqmjgjbfq8svx15dsa24hwd8lkf0kakl4"; + }; + description = "Port of DOSBox to libretro"; + license = gpl2; + }).override { + buildPhase = "make"; }; fba = (mkLibRetroCore rec { core = "fba"; src = fetchRetro { repo = core + "-libretro"; - rev = "9146c18ac989c619256d1cb8954d49e728e44ea3"; - sha256 = "159dww8mxi95xz4ypw38vsn1g4k6z8sv415qqf0qriydwhw6mh2m"; + rev = "89245384c7d181e286d6f34995253419f946becb"; + sha256 = "1pg351qhbq5x8qmaq6c30v8ynic8jv3gbxy2kq5iknka80g1lkck"; }; description = "Port of Final Burn Alpha to libretro"; license = "Non-commercial"; }).override { + makefile = "svn-current/trunk/makefile.libretro"; buildPhase = '' cd svn-current/trunk \ && make -f makefile.libretro \ @@ -186,19 +364,34 @@ in with stdenv.lib.licenses; core = "fceumm"; src = fetchRetro { repo = "libretro-" + core; - rev = "45f773a1c221121746bbe2680e3aaaf92776a87e"; - sha256 = "0jnwh1338q710x47bzrx319g5xbq9ipv35kyjlbkrzhqjq1blz0b"; + rev = "0e315e0ca0093ebda06a97835cec6ad4af81db7a"; + sha256 = "12bvvxmvafjvrvwxl5gzr583g48s0isx2fgvjgkrx175vk2amaf4"; }; description = "FCEUmm libretro port"; license = gpl2; }; + flycast = (mkLibRetroCore rec { + core = "flycast"; + src = fetchRetro { + repo = core; + rev = "45a15205dfc05cfc4df2488cad7c2b4988c5aa0f"; + sha256 = "18glxd57kddq6p2bwq0qknyq6bv8dxklqks4w2jy2yccvwxdxy2i"; + }; + description = "Flycast libretro port"; + license = gpl2; + extraBuildInputs = [ libGL libGLU ]; + }).override { + makefile = "Makefile"; + buildPhase = "make"; + }; + gambatte = mkLibRetroCore rec { core = "gambatte"; src = fetchRetro { repo = core + "-libretro"; - rev = "db7af6cf6ea39fd5e39eea137ff752649599a4e4"; - sha256 = "0h7hyj630nk1s32wx02y4q9x2lp6wbnh6nkc9ihf4pygcsignmwr"; + rev = "4d9ad7b29946ec0a914b2d6a735b6c2704ed1f23"; + sha256 = "156pvvlch5izbgbw4ddxhiwgzpp52irr3nqaz813i5f02fiq5wya"; }; description = "Gambatte libretro port"; license = gpl2; @@ -208,13 +401,56 @@ in with stdenv.lib.licenses; core = "genesis-plus-gx"; src = fetchRetro { repo = "Genesis-Plus-GX"; - rev = "365a28c7349b691e6aaa3ad59b055261c42bd130"; - sha256 = "0s11ddpnb44q4xjkl7dylldhi9y5zqywqavpk0bbwyj84r1cbz3c"; + rev = "0e4357bd64533d7fd93b5f01620b92595025fab5"; + sha256 = "1nryy00844h3ra97j40g38lj7036ibm2l8002qid7r5r9kggclqx"; }; description = "Enhanced Genesis Plus libretro port"; license = "Non-commercial"; }; + gpsp = (mkLibRetroCore rec { + core = "gpsp"; + src = fetchRetro { + repo = core; + rev = "24af89596e6484ff5a7a08efecfa8288cfbc02f3"; + sha256 = "1jc5i70cab5f23yc9sfv8iyvmwmc4sb33f413il2vlhsfdxklyk7"; + }; + description = "Port of gpSP to libretro"; + license = gpl2; + }).override { + makefile = "Makefile"; + buildPhase = "make"; + }; + + handy = (mkLibRetroCore rec { + core = "handy"; + src = fetchRetro { + repo = "libretro-" + core; + rev = "6b19a4fad1b394f6a1351c88f60991d4878ff05b"; + sha256 = "0lhkrwh3rirdidxb8kfcg8wk9gjsc7g6qpkv74h6f09rb4y75w1y"; + }; + description = "Port of Handy to libretro"; + license = "Handy-License"; + }).override { + makefile = "Makefile"; + buildPhase = "make"; + }; + + hatari = (mkLibRetroCore rec { + core = "hatari"; + src = fetchRetro { + repo = core; + rev = "ec1b59c4b6c7ca7d0d23d60cfe2cb61911b11173"; + sha256 = "1pm821s2cz93xr7qx7dv0imr44bi4pvdvlnjl486p83vff9yawfg"; + }; + description = "Port of Hatari to libretro"; + license = gpl2; + extraBuildInputs = [ cmake SDL ]; + }).override { + makefile = "Makefile.libretro"; + buildPhase = "make"; + }; + higan-sfc = (mkLibRetroCore { core = "higan-sfc"; src = fetchFromGitLab { @@ -225,6 +461,8 @@ in with stdenv.lib.licenses; }; description = "Accurate SNES / Super Famicom emulator"; license = gpl3; + broken = true; + }).override { makefile = "GNUmakefile"; buildPhase = "cd higan && make compiler=g++ target=libretro binary=library && cd out"; @@ -234,81 +472,218 @@ in with stdenv.lib.licenses; core = "mame"; src = fetchRetro { repo = "mame"; - rev = "9f9e6b6c9bde4d50c72e9a5c80496a1fec6b8aa9"; - sha256 = "0lfj8bjchkcvyb5x0x29cg10fkfklxndk80947k4qfysclijxpkv"; + rev = "f4aac49f3d56fbd653628ac456c23ac9a6b857ae"; + sha256 = "1pjpnwdj73319hgcjhganzrcz2zn4fnjydah989haqh3id5j3zam"; }; description = "Port of MAME to libretro"; license = gpl2Plus; - extraBuildInputs = [ alsaLib libGLU_combined portaudio python27 xorg.libX11 ]; + extraBuildInputs = [ alsaLib libGLU libGL portaudio python27 xorg.libX11 ]; + }).override { + postPatch = '' + # Prevent the failure during the parallel building of: + # make -C 3rdparty/genie/build/gmake.linux -f genie.make obj/Release/src/host/lua-5.3.0/src/lgc.o + mkdir -p 3rdparty/genie/build/gmake.linux/obj/Release/src/host/lua-5.3.0/src + ''; + buildPhase = "make -f Makefile.libretro"; + }; + + mame2000 = (mkLibRetroCore rec { + core = "mame2000"; + src = fetchRetro { + repo = core + "-libretro"; + rev = "0a8a174f5e755cdd476895207003c5d07cfa6af2"; + sha256 = "03k0cfgd4wfl31dv5xb6xjd4h7sh0k0qw6wbspwi0lgswmhz97bb"; + }; + description = "Port of MAME ~2000 to libretro"; + license = gpl2Plus; + }).override { + makefile = "Makefile"; + buildPhase = "make"; + }; + + mame2003 = (mkLibRetroCore rec { + core = "mame2003"; + src = fetchRetro { + repo = core + "-libretro"; + rev = "170d5b6490953d40edc39defe69945d005f8ec03"; + sha256 = "0slsf59sn5lijr1mrx5ffc9z81ra1wcw7810mb52djqyvm15r9zl"; + }; + description = "Port of MAME ~2003 to libretro"; + license = gpl2Plus; + }).override { + makefile = "Makefile"; + buildPhase = "make"; + }; + + mame2003-plus = (mkLibRetroCore rec { + core = "mame2003-plus"; + src = fetchRetro { + repo = core + "-libretro"; + rev = "d9a56a3af908ae9100b4c9feebff4b918363f241"; + sha256 = "1c16chfs4b2j1x1bmrklh8ssqki850k787qwq7b95dyxksj2bpx1"; + }; + description = "Port of MAME ~2003+ to libretro"; + license = gpl2Plus; + }).override { + makefile = "Makefile"; + buildPhase = "make"; + }; + + mame2010 = (mkLibRetroCore rec { + core = "mame2010"; + src = fetchRetro { + repo = core + "-libretro"; + rev = "4ced2c31f1100eefc7f4483b474b8a680a3b3f2b"; + sha256 = "1a8ijj0sixr6xrqfgimna0ipfj2bb2kvj4mb45hb8a18mwn6y0mc"; + }; + description = "Port of MAME ~2010 to libretro"; + license = gpl2Plus; + }).override { + makefile = "Makefile"; + buildPhase = "make"; + }; + + mame2015 = (mkLibRetroCore rec { + core = "mame2015"; + src = fetchRetro { + repo = core + "-libretro"; + rev = "e3a28398f54cd6b2c24b7165d215b046b79c10f5"; + sha256 = "1fgwi37zgp2s92bkz03gch3ivgyjgdi3xycrd8z7x87gi20a79x9"; + }; + description = "Port of MAME ~2015 to libretro"; + license = gpl2Plus; + extraBuildInputs = [ python27 alsaLib ]; + }).override { + makefile = "Makefile"; + buildPhase = "make"; + }; + + mame2016 = (mkLibRetroCore rec { + core = "mame2016"; + src = fetchRetro { + repo = core + "-libretro"; + rev = "ea4c1ffa75eb3fb0096158b71706b8b84d86d12c"; + sha256 = "1qyvdymmjv5q0k3najgfdxzf1yr6bnysnsl19v753yj29xs4hwzp"; + }; + description = "Port of MAME ~2016 to libretro"; + license = gpl2Plus; + extraBuildInputs = [ python27 alsaLib ]; }).override { postPatch = '' # Prevent the failure during the parallel building of: # make -C 3rdparty/genie/build/gmake.linux -f genie.make obj/Release/src/host/lua-5.3.0/src/lgc.o mkdir -p 3rdparty/genie/build/gmake.linux/obj/Release/src/host/lua-5.3.0/src ''; + buildPhase = "make -f Makefile.libretro"; + }; + + mesen = (mkLibRetroCore rec { + core = "mesen"; + src = fetchFromGitHub { + owner = "SourMesen"; + repo = core; + rev = "942633dd3dbb73cc3abd748f6d5440c78abbea09"; + sha256 = "0a95wd64vnblksacapxwxla9j2iw8a5hbdm111cldrni12q87iq2"; + }; + description = "Port of Mesen to libretro"; + license = gpl3; + }).override { + makefile = "Libretro/Makefile"; + buildPhase = "cd Libretro && make"; }; mgba = mkLibRetroCore rec { core = "mgba"; src = fetchRetro { repo = core; - rev = "fdaaaee661e59f28c94c7cfa4e82e70b71e24a9d"; - sha256 = "1b30sa861r4bhbqkx6vkklh4iy625bpzki2ks4ivvjns1ijczvc7"; + rev = "4865aaabc2a46c635f218f7b51f8fc5cc2c4c8ac"; + sha256 = "1mdzwcsl5bafmgqfh0a1bgfgilisffxsygcby0igsq2bgkal47mm"; }; description = "Port of mGBA to libretro"; license = mpl20; }; mupen64plus = (mkLibRetroCore rec { - core = "mupen64plus"; + core = "mupen64plus-next"; src = fetchRetro { - repo = core + "-libretro"; - rev = "407bcd40b3a42bff6b856a6d6f88a7d5d670bf9e"; - sha256 = "0q5kvjz7rpk7mp75cdywqjgmy10c0h7ky26hh1x90d39y94idcd8"; + repo = "mupen64plus-libretro-nx"; # + "-libretro-nx"; + rev = "f77c16f9f1dd911fd2254becc8a28adcdafe8aa1"; + sha256 = "0j6vrkwch9lwmlhyz7fp1ha0bby54gvbwk91hwbv35f6dvs0aw0d"; }; description = "Libretro port of Mupen64 Plus, GL only"; license = gpl2; - extraBuildInputs = [ libGLU_combined libpng ]; + extraBuildInputs = [ libGLU libGL libpng nasm xorg.libX11 ]; }).override { - buildPhase = "make WITH_DYNAREC=${if stdenv.hostPlatform.system == "x86_64-linux" then "x86_64" else "x86"}"; + makefile = "Makefile"; + buildPhase = "make"; }; nestopia = (mkLibRetroCore rec { core = "nestopia"; src = fetchRetro { repo = core; - rev = "ecfa170a582e5b8ec11225ca645843fa064955ca"; - sha256 = "17ac7dhasch6f4lpill8c5scsvaix0jvbf1cp797qbll4hk84f2q"; + rev = "7f48c211c281880d122981da119a4455a9bebbde"; + sha256 = "05p3a559633dzw222rs1fh48v657mdyirl1qfqzkhqiar9rxf31g"; }; description = "nestopia undead libretro port"; license = gpl2; }).override { + makefile = "libretro/Makefile"; buildPhase = "cd libretro && make"; }; + o2em = (mkLibRetroCore rec { + core = "o2em"; + src = fetchRetro { + repo = "libretro-" + core; + rev = "d6731b9b2592654ce4f1b64c1b1da17b32e7c94c"; + sha256 = "0809qw16y7ablxfayf0lbzvq7wqdmjp0afdb0vcgv193vvhhp58q"; + }; + description = "Port of O2EM to libretro"; + license = artistic1; + }).override { + makefile = "Makefile"; + buildPhase = "make"; + }; + parallel-n64 = (mkLibRetroCore rec { core = "parallel-n64"; src = fetchRetro { repo = core; - rev = "3276db27547bf7ca85896427f0b82d4658694d88"; - sha256 = "19396v50azrb52ifjk298zgcbxn8dvfvp6zwrnzsk6mp8ff7qcqw"; + rev = "30f4fd3c2456145763eb76aead7485a1b86ba6bd"; + sha256 = "0kbyzmscmfi6f842clzaff4k6xcb5410fwhv8n6vv42xk6ljfvgh"; }; description = "Parallel Mupen64plus rewrite for libretro."; license = gpl2; - extraBuildInputs = [ libGLU_combined libpng ]; + extraBuildInputs = [ libGLU libGL libpng ]; + }).override { + makefile = "Makefile"; + buildPhase = "make"; + }; + + pcsx_rearmed = (mkLibRetroCore rec { + core = "pcsx_rearmed"; + src = fetchRetro { + repo = core; + rev = "eb6943ee04b0f30a6f1cebfe399a94bacd1dfb45"; + sha256 = "0xikdirvjal4mdr5y9dl9gcxhdilqzq43f909b0z8vc069vj1wjz"; + }; + description = "Port of PCSX ReARMed to libretro"; + license = gpl2; }).override { - buildPhase = "make WITH_DYNAREC=${if stdenv.hostPlatform.system == "x86_64-linux" then "x86_64" else "x86"}"; + configurePhase = "rm configure"; + buildPhase = "make -f Makefile.libretro"; }; picodrive = (mkLibRetroCore rec { core = "picodrive"; src = fetchRetro { repo = core; - rev = "cbc93b68dca1d72882d07b54bbe1ef25b980558a"; - sha256 = "0fl9r6jj2x9231md5zc4scra79j5hfn1n2z67scff1375xg1k64h"; + rev = "28dcfd6f43434e6828ee647223a0576bfe858c24"; + sha256 = "19a1b6q8fhf7wxzyf690va1ixzlxlzyslv1zxm0ll5pfsqf2y3gx"; }; description = "Fast MegaDrive/MegaCD/32X emulator"; license = "MAME"; @@ -319,18 +694,38 @@ in with stdenv.lib.licenses; configurePhase = "./configure"; }; + play = (mkLibRetroCore rec { + core = "play"; + src = fetchRetro { + repo = "play-"; + rev = "fedc1e1c2918a7490a881cdb4ec951a828c19671"; + sha256 = "0hwxx7h61gd29a2gagwjbvxk2hgwdk1wxg4nx90zrizb8nczwnl6"; + }; + description = "Port of Play! to libretro"; + license = bsd2; + extraBuildInputs = [ cmake boost ]; + }).override { + cmakeFlags = [ "-DBUILD_PLAY=OFF -DBUILD_LIBRETRO_CORE=ON" ]; + buildPhase = "make"; + }; + ppsspp = (mkLibRetroCore rec { core = "ppsspp"; - src = fetchRetro { - repo = "libretro-" + core; - rev = "5f7bcf7bfc15f83d405bcecd7a163a55ad1e7573"; - sha256 = "06k1gzmypz61dslynrw4b5i161rhj43y6wnr2nhbzvwcv5bw8w8r"; + src = fetchgit { + url = "https://github.com/hrydgard/ppsspp"; + rev = "bf1777f7d3702e6a0f71c7ec1fc51976e23c2327"; + sha256 = "17sym0vk72lzbh9a1501mhw98c78x1gq7k1fpy69nvvb119j37wa"; }; description = "ppsspp libretro port"; license = gpl2; - extraBuildInputs = [ libGLU_combined ffmpeg ]; + extraBuildInputs = [ cmake libGLU libGL ffmpeg python37 xorg.libX11 ]; }).override { - buildPhase = "cd libretro && make"; + cmakeFlags = [ "-DLIBRETRO=ON" ]; + makefile = "Makefile"; + buildPhase = '' + make \ + && mv lib/ppsspp_libretro${stdenv.hostPlatform.extensions.sharedLibrary} ppsspp_libretro${stdenv.hostPlatform.extensions.sharedLibrary} + ''; }; prboom = (mkLibRetroCore rec { @@ -346,30 +741,31 @@ in with stdenv.lib.licenses; buildPhase = "make"; }; - quicknes = (mkLibRetroCore { - core = "quicknes"; + prosystem = (mkLibRetroCore rec { + core = "prosystem"; src = fetchRetro { - repo = "QuickNES_Core"; - rev = "8613b48cee97f1472145bbafa76e543854b2bbd5"; - sha256 = "18lizdb9zjlfhh8ibvmcscldlf3mw4aj8nds3pah68cd2lw170w1"; + repo = core + "-libretro"; + rev = "cb4aa3ee72f98b0891a7bac5c9dac458cdba4d34"; + sha256 = "0yvzmks9zz1hf7mv6cd2qin1p3yx00dbrcxlm0yysy5q5jiigblg"; }; - description = "QuickNES libretro port"; - license = lgpl21Plus; + description = "Port of ProSystem to libretro"; + license = gpl2; }).override { + makefile = "Makefile"; buildPhase = "make"; }; - reicast = (mkLibRetroCore rec { - core = "reicast"; + quicknes = (mkLibRetroCore rec { + core = "quicknes"; src = fetchRetro { - repo = core + "-emulator"; - rev = "40d4e8af2dd67a3f317c14224873c8ec0e1f9d11"; - sha256 = "0d8wzpv7pcyh437gmvi439vim26wyrjmi5hj97wvyvggywjwrx8m"; + repo = "QuickNES_Core"; + rev = "cd302d998d102c9461a924b81817e48b9ea1518f"; + sha256 = "1sczs1jqcbhpkb5xpcqqdcnxlz7bqmanm4gdnnc12c19snl7999b"; }; - description = "Reicast libretro port"; - license = gpl2; - extraBuildInputs = [ libGLU_combined ]; + description = "QuickNES libretro port"; + license = lgpl21Plus; }).override { + makefile = "Makefile"; buildPhase = "make"; }; @@ -377,13 +773,14 @@ in with stdenv.lib.licenses; core = "scummvm"; src = fetchRetro { repo = core; - rev = "de8d7e58caa23f071ce9d1bc5133f45d16c3ff1c"; - sha256 = "097i2dq3hw14hicsplrs36j1qa3r45vhzny5v4aw6qw4aj34hksy"; + rev = "e07a6ede61c364fb87630fa7507a4f8482d882e0"; + sha256 = "0i88z53q28lwzmadxincab4m66qbzcbmasgildybj8db0z2z8jm0"; }; description = "Libretro port of ScummVM"; license = gpl2; - extraBuildInputs = [ fluidsynth libjpeg libvorbis libGLU_combined SDL ]; + extraBuildInputs = [ fluidsynth libjpeg libvorbis libGLU libGL SDL ]; }).override { + makefile = "backends/platform/libretro/build/Makefile"; buildPhase = "cd backends/platform/libretro/build && make"; }; @@ -391,50 +788,85 @@ in with stdenv.lib.licenses; core = "snes9x"; src = fetchRetro { repo = core; - rev = "db4bfaba3b0d5a067fe9aea323503656837a8d9a"; - sha256 = "02f04ss45km32lp68diyfkix1gryx89qy8cc80189ipwnx80pgip"; + rev = "29b78df8c9f0f48ed4605d08a187a134b3b316d6"; + sha256 = "004h1pkxvbn4zlh8bqs6z17k04jw5wzbwklpgvmb7hbxshsi4qid"; }; description = "Port of SNES9x git to libretro"; license = "Non-commercial"; }).override { + makefile = "libretro/Makefile"; buildPhase = "cd libretro && make"; }; - snes9x-next = (mkLibRetroCore rec { - core = "snes9x-next"; + snes9x2002 = (mkLibRetroCore rec { + core = "snes9x2002"; + src = fetchRetro { + repo = core; + rev = "354bcb5acea0aa45b56ae553e0b2b4f10792dfeb"; + sha256 = "05gvjjxy6ci5pax3frd9g8k9mkqskab5g6rvfjab7cc4zrxrg23f"; + }; + description = "Optimized port/rewrite of SNES9x 1.39 to Libretro"; + license = "Non-commercial"; + }).override { + makefile = "Makefile"; + buildPhase = "make"; + }; + + snes9x2005 = (mkLibRetroCore rec { + core = "snes9x2005"; + src = fetchRetro { + repo = core; + rev = "e5cadd2f21fb64e8c7194ad006b39e6f555c4a5b"; + sha256 = "1q0xrw3f8zm2k19sva8cz28yx815w8a6y1xsl0i6bb3cai3q1hyx"; + }; + description = "Optimized port/rewrite of SNES9x 1.43 to Libretro"; + license = "Non-commercial"; + }).override { + makefile = "Makefile"; + buildPhase = '' + make USE_BLARGG_APU=1 \ + && mv snes9x2005_plus_libretro${stdenv.hostPlatform.extensions.sharedLibrary} snes9x2005_libretro${stdenv.hostPlatform.extensions.sharedLibrary} + ''; + }; + + snes9x2010 = (mkLibRetroCore rec { + core = "snes9x2010"; src = fetchRetro { repo = core; - rev = "b2a69de0df1eb39ed362806f9c9633f4544272af"; - sha256 = "1vhgsrg9l562nincfvpj2h2dqkkblg1qmh0v47jqlqgmgl2b1zij"; + rev = "e945cbae0f8c472e1567a319817c9228b775dd71"; + sha256 = "1pj5p4a2hy7hk90bzy4vnkz3b6nc8n1niqibgwhyfsc22xlxqsfr"; }; description = "Optimized port/rewrite of SNES9x 1.52+ to Libretro"; license = "Non-commercial"; }).override { buildPhase = '' make -f Makefile.libretro - mv snes9x2010_libretro${stdenv.hostPlatform.extensions.sharedLibrary} snes9x_next_libretro${stdenv.hostPlatform.extensions.sharedLibrary} ''; }; stella = (mkLibRetroCore rec { core = "stella"; src = fetchRetro { - repo = core + "-libretro"; - rev = "bbe65db0e344dcb38905586bd853076b65963e5a"; - sha256 = "18r1yyfzvjq2hq04d94y37kzsq6aywh1aim69a3imk8kh46gwrh0"; + repo = core + "2014-libretro"; + rev = "6d74ad9a0fd779145108cf1213229798d409ed37"; + sha256 = "0b1nsk92rr64xxj8jc9vpjqgrmm3554096zl031ymr94j5cc87q9"; }; description = "Port of Stella to libretro"; license = gpl2; }).override { - buildPhase = "make"; + makefile = "Makefile"; + buildPhase = '' + make \ + && mv stella2014_libretro${stdenv.hostPlatform.extensions.sharedLibrary} stella_libretro${stdenv.hostPlatform.extensions.sharedLibrary} + ''; }; vba-next = mkLibRetroCore rec { core = "vba-next"; src = fetchRetro { repo = core; - rev = "e7734756d228ea604f8fa872cea1bba987780791"; - sha256 = "03s4rh7dbbhbfc4pfdvr9jcbxrp4ijg8yp49s1xhr7sxsblj2vpv"; + rev = "3580ae6acb1a90c4e982e57597458da07eca4f41"; + sha256 = "0fz8z04kf9g1i5x5slyvx5kb07garzxvhcqnwmqn5j574xh1lc6d"; }; description = "VBA-M libretro port with modifications for speed"; license = gpl2; @@ -444,13 +876,55 @@ in with stdenv.lib.licenses; core = "vbam"; src = fetchRetro { repo = core + "-libretro"; - rev = "1b82fc2d761f027567632692f787482d1e287ec2"; - sha256 = "043djmqvh2grc25hwjw4b5kfx57b89ryp6fcl8v632sm35l3dd6z"; + rev = "9ccdeac3aa9db00720bb80eff5c9924362144efa"; + sha256 = "0rq89i9f483j93shhp2p3vqsnb2abpwz6wdnsycfwxgblczmi22y"; }; description = "vanilla VBA-M libretro port"; license = gpl2; }).override { + makefile = "src/libretro/Makefile"; buildPhase = "cd src/libretro && make"; }; + vecx = (mkLibRetroCore rec { + core = "vecx"; + src = fetchRetro { + repo = "libretro-" + core; + rev = "26585ee701499550e484c11f005db18e926827d9"; + sha256 = "0vz2aksc8mqnw55f2bvvawj21mxf60fp93r0sr55hdccn9h7355k"; + }; + description = "Port of Vecx to libretro"; + license = gpl3; + }).override { + buildPhase = "make"; + }; + + virtualjaguar = (mkLibRetroCore rec { + core = "virtualjaguar"; + src = fetchRetro { + repo = core + "-libretro"; + rev = "7bdd8658880b53bf2bcbae0741323fe18f9041f5"; + sha256 = "0zbrsfhvx293ijazy1w19qha19hprsi0zv8295sa0gq8kyh0xhyw"; + }; + description = "Port of VirtualJaguar to libretro"; + license = gpl3; + }).override { + makefile = "Makefile"; + buildPhase = "make"; + }; + + yabause = (mkLibRetroCore rec { + core = "yabause"; + src = fetchRetro { + repo = core; + rev = "08d09cb88a69ee4c2986693fb813e0eb58d71481"; + sha256 = "0z55yam1l7m21kbjwn44sp4md9g7p95b27vcxr7i0v08gnkwwvv1"; + }; + description = "Port of Yabause to libretro"; + license = gpl2; + }).override { + makefile = "yabause/src/libretro/Makefile"; + buildPhase = "cd yabause/src/libretro && make"; + }; + } diff --git a/nixpkgs/pkgs/misc/emulators/retroarch/default.nix b/nixpkgs/pkgs/misc/emulators/retroarch/default.nix index f26769cd28dd..3f14258b0c01 100644 --- a/nixpkgs/pkgs/misc/emulators/retroarch/default.nix +++ b/nixpkgs/pkgs/misc/emulators/retroarch/default.nix @@ -1,13 +1,15 @@ { stdenv, fetchFromGitHub, which, pkgconfig, makeWrapper -, ffmpeg, libGLU_combined, freetype, libxml2, python3 +, ffmpeg, libGLU, libGL, freetype, libxml2, python3 , libobjc, AppKit, Foundation , alsaLib ? null +, libdrm ? null , libpulseaudio ? null , libv4l ? null , libX11 ? null , libXdmcp ? null , libXext ? null , libXxf86vm ? null +, mesa ? null , SDL2 ? null , udev ? null , enableNvidiaCgToolkit ? false, nvidia_cg_toolkit ? null @@ -27,27 +29,29 @@ let in stdenv.mkDerivation rec { pname = "retroarch-bare"; - version = "1.7.5"; + version = "1.8.1"; src = fetchFromGitHub { owner = "libretro"; repo = "RetroArch"; - sha256 = "1jfpgl34jjxn3dvxd1kd564swkw7v98hnn562v998b7vllz3dxdm"; + sha256 = "0y7rcpz7psf8k3agsrq277jdm651vbnn9xpqvmj2in1a786idya7"; rev = "v${version}"; }; nativeBuildInputs = [ pkgconfig ] - ++ optional withVulkan [ makeWrapper ]; + ++ optional withVulkan makeWrapper; - buildInputs = [ ffmpeg freetype libxml2 libGLU_combined python3 SDL2 which ] + buildInputs = [ ffmpeg freetype libxml2 libGLU libGL python3 SDL2 which ] ++ optional enableNvidiaCgToolkit nvidia_cg_toolkit - ++ optional withVulkan [ vulkan-loader ] + ++ optional withVulkan vulkan-loader ++ optionals stdenv.isDarwin [ libobjc AppKit Foundation ] - ++ optionals stdenv.isLinux [ alsaLib libpulseaudio libv4l libX11 - libXdmcp libXext libXxf86vm udev ]; + ++ optionals stdenv.isLinux [ alsaLib libdrm libpulseaudio libv4l libX11 + libXdmcp libXext libXxf86vm mesa udev ]; enableParallelBuilding = true; + configureFlags = if stdenv.isLinux then [ "--enable-kms" ] else ""; + postInstall = optionalString withVulkan '' wrapProgram $out/bin/retroarch --prefix LD_LIBRARY_PATH ':' ${vulkan-loader}/lib '' + optionalString stdenv.targetPlatform.isDarwin '' diff --git a/nixpkgs/pkgs/misc/emulators/retroarch/wrapper.nix b/nixpkgs/pkgs/misc/emulators/retroarch/wrapper.nix index 71ae168f1b23..08ebf8ea8544 100644 --- a/nixpkgs/pkgs/misc/emulators/retroarch/wrapper.nix +++ b/nixpkgs/pkgs/misc/emulators/retroarch/wrapper.nix @@ -1,14 +1,8 @@ { stdenv, lib, makeWrapper, retroarch, cores }: -let - - p = builtins.parseDrvName retroarch.name; - -in - stdenv.mkDerivation { - name = "retroarch-" + p.version; - version = p.version; + pname = "retroarch"; + version = lib.getVersion retroarch; buildInputs = [ makeWrapper ]; diff --git a/nixpkgs/pkgs/misc/emulators/vbam/default.nix b/nixpkgs/pkgs/misc/emulators/vbam/default.nix index 4df9086a317f..e44b45dbb4bc 100644 --- a/nixpkgs/pkgs/misc/emulators/vbam/default.nix +++ b/nixpkgs/pkgs/misc/emulators/vbam/default.nix @@ -4,7 +4,7 @@ , fetchFromGitHub , ffmpeg , gettext -, libGLU_combined +, libGLU, libGL , openal , pkgconfig , SDL2 @@ -15,12 +15,12 @@ stdenv.mkDerivation rec { pname = "visualboyadvance-m"; - version = "2.1.3"; + version = "2.1.4"; src = fetchFromGitHub { owner = "visualboyadvance-m"; repo = "visualboyadvance-m"; rev = "v${version}"; - sha256 = "0ibpn05jm6zvvrjyxbmh8qwm1qd26v0dzq45cp233ksvapw1h77h"; + sha256 = "1kgpbvng3c12ws0dy92zc0azd94h0i3j4vm7b67zc8mi3pqsppdg"; }; nativeBuildInputs = [ cmake pkgconfig ]; @@ -29,7 +29,7 @@ stdenv.mkDerivation rec { cairo ffmpeg gettext - libGLU_combined + libGLU libGL openal SDL2 sfml @@ -46,11 +46,12 @@ stdenv.mkDerivation rec { "-DENABLE_SDL='true'" ]; - meta = { + meta = with stdenv.lib; { description = "A merge of the original Visual Boy Advance forks"; - license = stdenv.lib.licenses.gpl2; - maintainers = [ stdenv.lib.maintainers.lassulus ]; + license = licenses.gpl2; + maintainers = with maintainers; [ lassulus ]; homepage = http://vba-m.com/; platforms = stdenv.lib.platforms.linux; + badPlatforms = [ "aarch64-linux" ]; }; } diff --git a/nixpkgs/pkgs/misc/emulators/vice/default.nix b/nixpkgs/pkgs/misc/emulators/vice/default.nix index 7cf4faf55cd7..cb083c0aa0d8 100644 --- a/nixpkgs/pkgs/misc/emulators/vice/default.nix +++ b/nixpkgs/pkgs/misc/emulators/vice/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, bison, flex, perl, libpng, giflib, libjpeg, alsaLib, readline, libGLU_combined, libXaw +{ stdenv, fetchurl, bison, flex, perl, libpng, giflib, libjpeg, alsaLib, readline, libGLU, libGL, libXaw , pkgconfig, gtk2, SDL, autoreconfHook, makeDesktopItem }: @@ -10,7 +10,7 @@ stdenv.mkDerivation rec { sha256 = "0h0jbml02s2a36hr78dxv1zshmfhxp1wadpcdl09aq416fb1bf1y"; }; - buildInputs = [ bison flex perl libpng giflib libjpeg alsaLib readline libGLU_combined + buildInputs = [ bison flex perl libpng giflib libjpeg alsaLib readline libGLU libGL pkgconfig gtk2 SDL autoreconfHook libXaw ]; dontDisableStatic = true; configureFlags = [ "--enable-fullscreen --enable-gnomeui" ]; diff --git a/nixpkgs/pkgs/misc/emulators/wine/base.nix b/nixpkgs/pkgs/misc/emulators/wine/base.nix index 01d096599155..0b6eab70263f 100644 --- a/nixpkgs/pkgs/misc/emulators/wine/base.nix +++ b/nixpkgs/pkgs/misc/emulators/wine/base.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, pkgArches, +{ stdenv, lib, pkgArches, callPackage, name, version, src, monos, geckos, platforms, pkgconfig, fontforge, makeWrapper, flex, bison, supportFlags, @@ -7,6 +7,9 @@ with import ./util.nix { inherit lib; }; +let + vkd3d = callPackage ./vkd3d.nix {}; +in stdenv.mkDerivation ((lib.optionalAttrs (buildScript != null) { builder = buildScript; }) // rec { @@ -46,14 +49,16 @@ stdenv.mkDerivation ((lib.optionalAttrs (buildScript != null) { ++ lib.optional udevSupport pkgs.udev ++ lib.optional vulkanSupport pkgs.vulkan-loader ++ lib.optional sdlSupport pkgs.SDL2 + ++ lib.optional faudioSupport pkgs.faudio + ++ lib.optional vkd3dSupport vkd3d ++ lib.optionals gstreamerSupport (with pkgs.gst_all_1; - [ gstreamer gst-plugins-base gst-plugins-good gst-plugins-ugly gst-libav + [ gstreamer gst-plugins-base gst-plugins-good gst-plugins-ugly gst-libav (gst-plugins-bad.override { enableZbar = false; }) ]) ++ lib.optionals gtkSupport [ pkgs.gtk3 pkgs.glib ] ++ lib.optionals openclSupport [ pkgs.opencl-headers pkgs.ocl-icd ] ++ lib.optionals xmlSupport [ pkgs.libxml2 pkgs.libxslt ] ++ lib.optionals tlsSupport [ pkgs.openssl pkgs.gnutls ] - ++ lib.optionals openglSupport [ pkgs.libGLU_combined pkgs.mesa.osmesa pkgs.libdrm ] + ++ lib.optionals openglSupport [ pkgs.libGLU pkgs.libGL pkgs.mesa.osmesa pkgs.libdrm ] ++ lib.optionals stdenv.isDarwin (with pkgs.buildPackages.darwin.apple_sdk.frameworks; [ CoreServices Foundation ForceFeedback AppKit OpenGL IOKit DiskArbitration Security ApplicationServices AudioToolbox CoreAudio AudioUnit CoreMIDI OpenAL OpenCL Cocoa Carbon @@ -66,12 +71,12 @@ stdenv.mkDerivation ((lib.optionalAttrs (buildScript != null) { # Wine locates a lot of libraries dynamically through dlopen(). Add # them to the RPATH so that the user doesn't have to set them in # LD_LIBRARY_PATH. - NIX_LDFLAGS = map (path: "-rpath " + path) ( + NIX_LDFLAGS = toString (map (path: "-rpath " + path) ( map (x: "${lib.getLib x}/lib") ([ stdenv.cc.cc ] ++ buildInputs) # libpulsecommon.so is linked but not found otherwise ++ lib.optionals supportFlags.pulseaudioSupport (map (x: "${lib.getLib x}/lib/pulseaudio") (toBuildInputs pkgArches (pkgs: [ pkgs.libpulseaudio ]))) - ); + )); # Don't shrink the ELF RPATHs in order to keep the extra RPATH # elements specified above. diff --git a/nixpkgs/pkgs/misc/emulators/wine/default.nix b/nixpkgs/pkgs/misc/emulators/wine/default.nix index 6ecca6c25032..727eb2700671 100644 --- a/nixpkgs/pkgs/misc/emulators/wine/default.nix +++ b/nixpkgs/pkgs/misc/emulators/wine/default.nix @@ -43,6 +43,8 @@ xmlSupport ? false, vulkanSupport ? false, sdlSupport ? false, + faudioSupport ? false, + vkd3dSupport ? false, }: let wine-build = build: release: @@ -54,7 +56,8 @@ let wine-build = build: release: netapiSupport cursesSupport vaSupport pcapSupport v4lSupport saneSupport gsmSupport gphoto2Support ldapSupport fontconfigSupport alsaSupport pulseaudioSupport xineramaSupport gtkSupport openclSupport xmlSupport tlsSupport - openglSupport gstreamerSupport udevSupport vulkanSupport sdlSupport; + openglSupport gstreamerSupport udevSupport vulkanSupport sdlSupport faudioSupport + vkd3dSupport; }; }); diff --git a/nixpkgs/pkgs/misc/emulators/wine/sources.nix b/nixpkgs/pkgs/misc/emulators/wine/sources.nix index 7b26bf44cdc2..af71e8fdc73d 100644 --- a/nixpkgs/pkgs/misc/emulators/wine/sources.nix +++ b/nixpkgs/pkgs/misc/emulators/wine/sources.nix @@ -31,24 +31,24 @@ in rec { ## see http://wiki.winehq.org/Mono mono = fetchurl rec { - version = "4.9.2"; + version = "4.9.3"; url = "http://dl.winehq.org/wine/wine-mono/${version}/wine-mono-${version}.msi"; - sha256 = "0x7z0216j21bzc9v1q283qlsvbfzn92yiaf26ilh6bd7zib4c7xr"; + sha256 = "0va7nbhvfb52g78s9k3zc6xxwsn5whfyn333s6fdxycp8rkvgxkw"; }; }; unstable = fetchurl rec { # NOTE: Don't forget to change the SHA256 for staging as well. - version = "4.16"; + version = "4.17"; url = "https://dl.winehq.org/wine/source/4.x/wine-${version}.tar.xz"; - sha256 = "17qxbddv23ibbayw1ai984m0dlq63cgplms2jhsc09incjhafywd"; + sha256 = "1bmj4l84q29h4km5ab5zzypns3mpf7pizybcpab6jj47cr1s303l"; inherit (stable) mono gecko32 gecko64; }; staging = fetchFromGitHub rec { # https://github.com/wine-staging/wine-staging/releases inherit (unstable) version; - sha256 = "0zkvwl6rxr6xcqk4a3h43cak67w6bcyqqnajz6azif07ir3z1c61"; + sha256 = "0cb0w6jwqs70854g1ixfj8r53raln0spyy1l96qv72ymbhzc353h"; owner = "wine-staging"; repo = "wine-staging"; rev = "v${version}"; diff --git a/nixpkgs/pkgs/misc/emulators/wine/staging.nix b/nixpkgs/pkgs/misc/emulators/wine/staging.nix index 5264e66279f7..df979c68a47f 100644 --- a/nixpkgs/pkgs/misc/emulators/wine/staging.nix +++ b/nixpkgs/pkgs/misc/emulators/wine/staging.nix @@ -5,7 +5,7 @@ with callPackage ./util.nix {}; let patch = (callPackage ./sources.nix {}).staging; build-inputs = pkgNames: extra: (mkBuildInputs wineUnstable.pkgArches pkgNames) ++ extra; -in assert (builtins.parseDrvName wineUnstable.name).version == patch.version; +in assert stdenv.lib.getVersion wineUnstable == patch.version; stdenv.lib.overrideDerivation wineUnstable (self: { buildInputs = build-inputs [ "perl" "utillinux" "autoconf" libtxc_dxtn_Name ] self.buildInputs; diff --git a/nixpkgs/pkgs/misc/emulators/wine/vkd3d.nix b/nixpkgs/pkgs/misc/emulators/wine/vkd3d.nix new file mode 100644 index 000000000000..082eb0b90c67 --- /dev/null +++ b/nixpkgs/pkgs/misc/emulators/wine/vkd3d.nix @@ -0,0 +1,26 @@ +{ stdenv, fetchurl, vulkan-headers, spirv-headers, vulkan-loader }: + +#TODO: MoltenVK +#TODO: unstable + +stdenv.mkDerivation rec { + pname = "vkd3d"; + version = "1.1"; + + src = fetchurl { + url = "https://dl.winehq.org/vkd3d/source/vkd3d-${version}.tar.xz"; + sha256 = "1dkayp95g1691w7n2yn1q9y7klq5xa921dgmn9a5vil0rihxqnj9"; + }; + + buildInputs = [ vulkan-headers spirv-headers vulkan-loader ]; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + description = "A 3d library build on top on Vulkan with a similar api to DirectX 12"; + homepage = "https://source.winehq.org/git/vkd3d.git"; + license = licenses.lgpl21; + platforms = platforms.linux; + maintainers = [ maintainers.marius851000 ]; + }; +} diff --git a/nixpkgs/pkgs/misc/emulators/wxmupen64plus/default.nix b/nixpkgs/pkgs/misc/emulators/wxmupen64plus/default.nix index 1199f987bb6a..2416ddd65b7a 100644 --- a/nixpkgs/pkgs/misc/emulators/wxmupen64plus/default.nix +++ b/nixpkgs/pkgs/misc/emulators/wxmupen64plus/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, python, wxGTK29, mupen64plus, SDL, libX11, libGLU_combined +{ stdenv, fetchurl, python, wxGTK29, mupen64plus, SDL, libX11, libGLU, libGL , wafHook }: stdenv.mkDerivation { @@ -9,7 +9,7 @@ stdenv.mkDerivation { }; nativeBuildInputs = [ wafHook ]; - buildInputs = [ python wxGTK29 SDL libX11 libGLU_combined ]; + buildInputs = [ python wxGTK29 SDL libX11 libGLU libGL ]; preConfigure = '' tar xf ${mupen64plus.src} diff --git a/nixpkgs/pkgs/misc/emulators/yabause/default.nix b/nixpkgs/pkgs/misc/emulators/yabause/default.nix index ed8652d08f1b..abceb752b2f8 100644 --- a/nixpkgs/pkgs/misc/emulators/yabause/default.nix +++ b/nixpkgs/pkgs/misc/emulators/yabause/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, cmake, pkgconfig, qtbase, qt5, libGLU_combined +{ stdenv, fetchurl, cmake, pkgconfig, qtbase, qt5, libGLU, libGL , freeglut ? null, openal ? null, SDL2 ? null }: stdenv.mkDerivation rec { @@ -11,7 +11,7 @@ stdenv.mkDerivation rec { }; nativeBuildInputs = [ cmake pkgconfig ]; - buildInputs = [ qtbase qt5.qtmultimedia libGLU_combined freeglut openal SDL2 ]; + buildInputs = [ qtbase qt5.qtmultimedia libGLU libGL freeglut openal SDL2 ]; patches = [ ./linkage-rwx-linux-elf.patch diff --git a/nixpkgs/pkgs/misc/emulators/zsnes/default.nix b/nixpkgs/pkgs/misc/emulators/zsnes/default.nix index 1ea8d7e68d3c..55fe49895c9f 100644 --- a/nixpkgs/pkgs/misc/emulators/zsnes/default.nix +++ b/nixpkgs/pkgs/misc/emulators/zsnes/default.nix @@ -1,4 +1,4 @@ -{stdenv, fetchFromGitHub, nasm, SDL, zlib, libpng, ncurses, libGLU_combined +{stdenv, fetchFromGitHub, nasm, SDL, zlib, libpng, ncurses, libGLU, libGL , makeDesktopItem }: let @@ -22,7 +22,7 @@ in stdenv.mkDerivation { sha256 = "1gy79d5wdaacph0cc1amw7mqm7i0716n6mvav16p1svi26iz193v"; }; - buildInputs = [ nasm SDL zlib libpng ncurses libGLU_combined ]; + buildInputs = [ nasm SDL zlib libpng ncurses libGLU libGL ]; prePatch = '' for i in $(cat debian/patches/series); do |