summary refs log tree commit diff
path: root/pkgs/misc/emulators
diff options
context:
space:
mode:
authorFranz Pletz <fpletz@fnordicwalking.de>2019-12-26 14:16:15 +0100
committerFranz Pletz <fpletz@fnordicwalking.de>2019-12-26 14:17:36 +0100
commit77b6c3cd06a679140fb5a44f81f904497007f333 (patch)
treee8ed1606b326cdafba719cc2a14c527c1b601f2e /pkgs/misc/emulators
parent602bccd1a8262d4e6bd787838d21fc3c2c1c50ba (diff)
parent4d2dd1554618831f0a5b159b8a4dff86612c02a9 (diff)
downloadnixpkgs-77b6c3cd06a679140fb5a44f81f904497007f333.tar
nixpkgs-77b6c3cd06a679140fb5a44f81f904497007f333.tar.gz
nixpkgs-77b6c3cd06a679140fb5a44f81f904497007f333.tar.bz2
nixpkgs-77b6c3cd06a679140fb5a44f81f904497007f333.tar.lz
nixpkgs-77b6c3cd06a679140fb5a44f81f904497007f333.tar.xz
nixpkgs-77b6c3cd06a679140fb5a44f81f904497007f333.tar.zst
nixpkgs-77b6c3cd06a679140fb5a44f81f904497007f333.zip
Merge remote-tracking branch 'origin/master' into gcc-9
Diffstat (limited to 'pkgs/misc/emulators')
-rw-r--r--pkgs/misc/emulators/atari800/default.nix4
-rw-r--r--pkgs/misc/emulators/attract-mode/default.nix4
-rw-r--r--pkgs/misc/emulators/cdemu/analyzer.nix4
-rw-r--r--pkgs/misc/emulators/cdemu/client.nix4
-rw-r--r--pkgs/misc/emulators/cdemu/daemon.nix4
-rw-r--r--pkgs/misc/emulators/cdemu/gui.nix4
-rw-r--r--pkgs/misc/emulators/cdemu/libmirage.nix4
-rw-r--r--pkgs/misc/emulators/cdemu/vhba.nix4
-rw-r--r--pkgs/misc/emulators/desmume/default.nix4
-rw-r--r--pkgs/misc/emulators/dolphin-emu/default.nix4
-rw-r--r--pkgs/misc/emulators/dolphin-emu/master.nix10
-rw-r--r--pkgs/misc/emulators/dosbox/default.nix4
-rw-r--r--pkgs/misc/emulators/emulationstation/default.nix4
-rw-r--r--pkgs/misc/emulators/epsxe/default.nix4
-rw-r--r--pkgs/misc/emulators/fakenes/default.nix4
-rw-r--r--pkgs/misc/emulators/fs-uae/default.nix8
-rw-r--r--pkgs/misc/emulators/fuse-emulator/default.nix29
-rw-r--r--pkgs/misc/emulators/gens-gs/default.nix4
-rw-r--r--pkgs/misc/emulators/hatari/default.nix2
-rw-r--r--pkgs/misc/emulators/higan/default.nix4
-rw-r--r--pkgs/misc/emulators/mame/default.nix39
-rw-r--r--pkgs/misc/emulators/mame/emuopts.patch29
-rw-r--r--pkgs/misc/emulators/mednafen/default.nix4
-rw-r--r--pkgs/misc/emulators/nestopia/default.nix4
-rw-r--r--pkgs/misc/emulators/ppsspp/default.nix70
-rw-r--r--pkgs/misc/emulators/resim/default.nix18
-rw-r--r--pkgs/misc/emulators/retroarch/cores.nix32
-rw-r--r--pkgs/misc/emulators/retroarch/default.nix16
-rw-r--r--pkgs/misc/emulators/retroarch/wrapper.nix10
-rw-r--r--pkgs/misc/emulators/vbam/default.nix4
-rw-r--r--pkgs/misc/emulators/vice/default.nix4
-rw-r--r--pkgs/misc/emulators/wine/base.nix2
-rw-r--r--pkgs/misc/emulators/wine/staging.nix2
-rw-r--r--pkgs/misc/emulators/wxmupen64plus/default.nix4
-rw-r--r--pkgs/misc/emulators/yabause/default.nix4
-rw-r--r--pkgs/misc/emulators/zsnes/default.nix4
36 files changed, 236 insertions, 123 deletions
diff --git a/pkgs/misc/emulators/atari800/default.nix b/pkgs/misc/emulators/atari800/default.nix
index 228da687094..38dc54ea9d7 100644
--- a/pkgs/misc/emulators/atari800/default.nix
+++ b/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/pkgs/misc/emulators/attract-mode/default.nix b/pkgs/misc/emulators/attract-mode/default.nix
index a725d9c9b08..7e6694b28d9 100644
--- a/pkgs/misc/emulators/attract-mode/default.nix
+++ b/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/pkgs/misc/emulators/cdemu/analyzer.nix b/pkgs/misc/emulators/cdemu/analyzer.nix
index e52cf7efc6b..246dbb7dd35 100644
--- a/pkgs/misc/emulators/cdemu/analyzer.nix
+++ b/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/pkgs/misc/emulators/cdemu/client.nix b/pkgs/misc/emulators/cdemu/client.nix
index dbf471d35d1..087b15cecd1 100644
--- a/pkgs/misc/emulators/cdemu/client.nix
+++ b/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/pkgs/misc/emulators/cdemu/daemon.nix b/pkgs/misc/emulators/cdemu/daemon.nix
index a80327ce91c..db6ed7ddb47 100644
--- a/pkgs/misc/emulators/cdemu/daemon.nix
+++ b/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/pkgs/misc/emulators/cdemu/gui.nix b/pkgs/misc/emulators/cdemu/gui.nix
index e06853b8f73..599531950a2 100644
--- a/pkgs/misc/emulators/cdemu/gui.nix
+++ b/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/pkgs/misc/emulators/cdemu/libmirage.nix b/pkgs/misc/emulators/cdemu/libmirage.nix
index 0ead78305cd..cc3118ace15 100644
--- a/pkgs/misc/emulators/cdemu/libmirage.nix
+++ b/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/pkgs/misc/emulators/cdemu/vhba.nix b/pkgs/misc/emulators/cdemu/vhba.nix
index 71beaf12548..df25fb96eb1 100644
--- a/pkgs/misc/emulators/cdemu/vhba.nix
+++ b/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/pkgs/misc/emulators/desmume/default.nix b/pkgs/misc/emulators/desmume/default.nix
index 67fb3b4d24b..d5d63cc2694 100644
--- a/pkgs/misc/emulators/desmume/default.nix
+++ b/pkgs/misc/emulators/desmume/default.nix
@@ -5,7 +5,7 @@
 , tinyxml
 , agg, alsaLib, soundtouch, openal
 , desktop-file-utils
-, gtk2, gtkglext, libglade, pangox_compat
+, gtk2, gtkglext, libglade
 , libGLU, libpcap, SDL, zziplib }:
 
 with stdenv.lib;
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
 
   buildInputs =
   [ pkgconfig libtool intltool libXmu lua agg alsaLib soundtouch
-    openal desktop-file-utils gtk2 gtkglext libglade pangox_compat
+    openal desktop-file-utils gtk2 gtkglext libglade
     libGLU libpcap SDL zziplib tinyxml ];
 
   configureFlags = [
diff --git a/pkgs/misc/emulators/dolphin-emu/default.nix b/pkgs/misc/emulators/dolphin-emu/default.nix
index 303c2f82d9e..cc49ef2aa1d 100644
--- a/pkgs/misc/emulators/dolphin-emu/default.nix
+++ b/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/pkgs/misc/emulators/dolphin-emu/master.nix b/pkgs/misc/emulators/dolphin-emu/master.nix
index e96b2e07890..cec88918282 100644
--- a/pkgs/misc/emulators/dolphin-emu/master.nix
+++ b/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/pkgs/misc/emulators/dosbox/default.nix b/pkgs/misc/emulators/dosbox/default.nix
index e7250491608..5b770a6471a 100644
--- a/pkgs/misc/emulators/dosbox/default.nix
+++ b/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/pkgs/misc/emulators/emulationstation/default.nix b/pkgs/misc/emulators/emulationstation/default.nix
index d8f5f1cbdb0..668d1804544 100644
--- a/pkgs/misc/emulators/emulationstation/default.nix
+++ b/pkgs/misc/emulators/emulationstation/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, pkgconfig, cmake, curl, boost, eigen
-, freeimage, freetype, libGLU_combined, SDL2, alsaLib, libarchive }:
+, freeimage, freetype, libGLU, libGL, SDL2, alsaLib, libarchive }:
 
 stdenv.mkDerivation {
   pname = "emulationstation";
@@ -13,7 +13,7 @@ stdenv.mkDerivation {
   };
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ cmake alsaLib boost curl eigen freeimage freetype libarchive libGLU_combined SDL2 ];
+  buildInputs = [ cmake alsaLib boost curl eigen freeimage freetype libarchive libGLU libGL SDL2 ];
 
   buildPhase = "cmake . && make";
   installPhase = ''
diff --git a/pkgs/misc/emulators/epsxe/default.nix b/pkgs/misc/emulators/epsxe/default.nix
index 1cfa0db790f..81202008db1 100644
--- a/pkgs/misc/emulators/epsxe/default.nix
+++ b/pkgs/misc/emulators/epsxe/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, alsaLib, curl, gdk-pixbuf, glib, gtk3, libGLU_combined,
+{ 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;
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     glib
     gtk3
     libX11
-    libGLU_combined
+    libGLU libGL
     openssl_1_0_2
     ncurses5
     SDL
diff --git a/pkgs/misc/emulators/fakenes/default.nix b/pkgs/misc/emulators/fakenes/default.nix
index eb7964cc017..704cef52e5e 100644
--- a/pkgs/misc/emulators/fakenes/default.nix
+++ b/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/pkgs/misc/emulators/fs-uae/default.nix b/pkgs/misc/emulators/fs-uae/default.nix
index 95a95bb17b1..9f092f91e2e 100644
--- a/pkgs/misc/emulators/fs-uae/default.nix
+++ b/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 = "3.0.0";
+  version = "3.0.2";
 
   src = fetchurl {
     url = "https://fs-uae.net/stable/${version}/${pname}-${version}.tar.gz";
-    sha256 = "0r69i6rh472lj4qwqfcfh17xmlw4x6mhqzr9hhpkbb4byyw6h592";
+    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/pkgs/misc/emulators/fuse-emulator/default.nix b/pkgs/misc/emulators/fuse-emulator/default.nix
new file mode 100644
index 00000000000..a3a379eb2cf
--- /dev/null
+++ b/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/pkgs/misc/emulators/gens-gs/default.nix b/pkgs/misc/emulators/gens-gs/default.nix
index da53b4f8c55..4120ec7ba6a 100644
--- a/pkgs/misc/emulators/gens-gs/default.nix
+++ b/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/pkgs/misc/emulators/hatari/default.nix b/pkgs/misc/emulators/hatari/default.nix
index 3cb0f787ce7..74e35379137 100644
--- a/pkgs/misc/emulators/hatari/default.nix
+++ b/pkgs/misc/emulators/hatari/default.nix
@@ -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/pkgs/misc/emulators/higan/default.nix b/pkgs/misc/emulators/higan/default.nix
index ad96ca36bc1..c1e64d26b47 100644
--- a/pkgs/misc/emulators/higan/default.nix
+++ b/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/pkgs/misc/emulators/mame/default.nix b/pkgs/misc/emulators/mame/default.nix
index 499d7dd6c4a..d98232b1058 100644
--- a/pkgs/misc/emulators/mame/default.nix
+++ b/pkgs/misc/emulators/mame/default.nix
@@ -1,9 +1,9 @@
-{ stdenv, mkDerivation, fetchFromGitHub, makeDesktopItem
+{ stdenv, mkDerivation, fetchFromGitHub, makeDesktopItem, makeWrapper
 , python, pkgconfig, SDL2, SDL2_ttf, alsaLib, which, qtbase, libXinerama }:
 
 let
   majorVersion = "0";
-  minorVersion = "215";
+  minorVersion = "216";
 
   desktopItem = makeDesktopItem {
     name = "MAME";
@@ -12,6 +12,8 @@ let
     genericName = "MAME is a multi-purpose emulation framework";
     categories = "System;Emulator;";
   };
+
+  dest = "$out/opt/mame";
 in mkDerivation {
   pname = "mame";
   version = "${majorVersion}.${minorVersion}";
@@ -20,7 +22,7 @@ in mkDerivation {
     owner = "mamedev";
     repo = "mame";
     rev = "mame${majorVersion}${minorVersion}";
-    sha256 = "1phz846p3zzgzrbfiq2vn79iqar2dbf7iv6wfkrp32sdkkvp7l3h";
+    sha256 = "0dmmw08pxxznvadrc51zg27jc9fjh688355w8kxkmi7k8qa367r0";
   };
 
   hardeningDisable = [ "fortify" ];
@@ -28,22 +30,35 @@ in mkDerivation {
 
   makeFlags = [ "TOOLS=1" ];
 
+  dontWrapQtApps = true;
+
   buildInputs = [ SDL2 SDL2_ttf alsaLib qtbase libXinerama ];
-  nativeBuildInputs = [ python pkgconfig which ];
+  nativeBuildInputs = [ python pkgconfig which makeWrapper ];
 
-  installPhase = ''
-    dest=$out/opt/mame
+  # 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 ];
 
-    make -f dist.mak PTR64=${if stdenv.is64bit then "1" else "0"}
-    mkdir -p $dest
-    mv build/release/${if stdenv.is64bit then "x64" else "x32"}/Release/mame/* $dest
+  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 {} \;
+    find ${dest} -maxdepth 1 -executable -type f -exec mv -t $out/bin {} \;
+    install -Dm755 src/osd/sdl/taputil.sh $out/bin/taputil.sh
 
     mkdir -p $out/share/man/man{1,6}
-    mv $dest/docs/man/*.1 $out/share/man/man1
-    mv $dest/docs/man/*.6 $out/share/man/man6
+    mv ${dest}/docs/man/*.1 $out/share/man/man1
+    mv ${dest}/docs/man/*.6 $out/share/man/man6
+
+    mv artwork plugins samples ${dest}
 
     mkdir -p $out/share
     ln -s ${desktopItem}/share/applications $out/share
diff --git a/pkgs/misc/emulators/mame/emuopts.patch b/pkgs/misc/emulators/mame/emuopts.patch
new file mode 100644
index 00000000000..b85291f52f7
--- /dev/null
+++ b/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/pkgs/misc/emulators/mednafen/default.nix b/pkgs/misc/emulators/mednafen/default.nix
index 74c456cfb10..337d19804fc 100644
--- a/pkgs/misc/emulators/mednafen/default.nix
+++ b/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/pkgs/misc/emulators/nestopia/default.nix b/pkgs/misc/emulators/nestopia/default.nix
index 4f02d0f147d..20c7c39312a 100644
--- a/pkgs/misc/emulators/nestopia/default.nix
+++ b/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/pkgs/misc/emulators/ppsspp/default.nix b/pkgs/misc/emulators/ppsspp/default.nix
index 619938ba5c6..b976c1e8c27 100644
--- a/pkgs/misc/emulators/ppsspp/default.nix
+++ b/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/pkgs/misc/emulators/resim/default.nix b/pkgs/misc/emulators/resim/default.nix
new file mode 100644
index 00000000000..81acdf81f2e
--- /dev/null
+++ b/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/pkgs/misc/emulators/retroarch/cores.nix b/pkgs/misc/emulators/retroarch/cores.nix
index ced26333f4c..c8171f6c233 100644
--- a/pkgs/misc/emulators/retroarch/cores.nix
+++ b/pkgs/misc/emulators/retroarch/cores.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchgit, fetchFromGitHub, fetchFromGitLab, cmake, pkgconfig, makeWrapper, python27, python37, retroarch
-, alsaLib, fluidsynth, curl, hidapi, libGLU_combined, gettext, glib, gtk2, portaudio, SDL
+, alsaLib, fluidsynth, curl, hidapi, libGLU, gettext, glib, gtk2, portaudio, SDL, libGL
 , ffmpeg, pcre, libevdev, libpng, libjpeg, udev, libvorbis
 , miniupnpc, sfml, xorg, zlib, nasm, libpcap, boost }:
 
@@ -152,7 +152,7 @@ in with stdenv.lib.licenses;
     buildPhase = "make";
     name = "beetle-pce-fast-${der.version}";
   };
-  
+
   beetle-pcfx = (mkLibRetroCore rec {
     core = "mednafen-pcfx";
     src = fetchRetro {
@@ -197,7 +197,7 @@ in with stdenv.lib.licenses;
     name = "beetle-saturn-${der.version}";
     meta.platforms = [ "x86_64-linux" "aarch64-linux" ];
   };
-  
+
   beetle-supergrafx = (mkLibRetroCore rec {
     core = "mednafen-supergrafx";
     src = fetchRetro {
@@ -276,7 +276,7 @@ in with stdenv.lib.licenses;
     };
     description = "libretro wrapper for desmume NDS emulator";
     license = gpl2;
-    extraBuildInputs = [ libpcap libGLU_combined xorg.libX11 ];
+    extraBuildInputs = [ libpcap libGLU libGL xorg.libX11 ];
   }).override {
     makefile = "desmume/src/frontend/libretro/Makefile.libretro";
     configurePhase = "cd desmume/src/frontend/libretro";
@@ -292,7 +292,7 @@ in with stdenv.lib.licenses;
     };
     description = "libretro wrapper for desmume NDS emulator from 2015";
     license = gpl2;
-    extraBuildInputs = [ libpcap libGLU_combined xorg.libX11 ];
+    extraBuildInputs = [ libpcap libGLU libGL xorg.libX11 ];
   }).override {
     makefile = "desmume/Makefile.libretro";
     configurePhase = "cd desmume";
@@ -311,7 +311,7 @@ in with stdenv.lib.licenses;
     broken = true;
 
     extraBuildInputs = [
-      cmake curl libGLU_combined pcre pkgconfig sfml
+      cmake curl libGLU libGL pcre pkgconfig sfml
       gettext hidapi
       libevdev udev
     ] ++ (with xorg; [ libSM libX11 libXi libpthreadstubs libxcb xcbutil libXext libXrandr libXinerama libXxf86vm ]);
@@ -323,7 +323,7 @@ in with stdenv.lib.licenses;
       "-DENABLE_QT=OFF"
       "-DENABLE_LTO=OFF"
       "-DUSE_UPNP=OFF"
-      "-DUSE_DISCORD_PRESENCE=OFF" 
+      "-DUSE_DISCORD_PRESENCE=OFF"
     ];
     dontUseCmakeBuildDir = "yes";
     buildPhase = "make";
@@ -380,7 +380,7 @@ in with stdenv.lib.licenses;
     };
     description = "Flycast libretro port";
     license = gpl2;
-    extraBuildInputs = [ libGLU_combined ];
+    extraBuildInputs = [ libGL libGLU ];
   }).override {
     makefile = "Makefile";
     buildPhase = "make";
@@ -478,7 +478,7 @@ in with stdenv.lib.licenses;
     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:
@@ -614,7 +614,7 @@ in with stdenv.lib.licenses;
     description = "Libretro port of Mupen64 Plus, GL only";
     license = gpl2;
 
-    extraBuildInputs = [ libGLU_combined libpng nasm xorg.libX11 ];
+    extraBuildInputs = [ libGLU libGL libpng nasm xorg.libX11 ];
   }).override {
     makefile = "Makefile";
     buildPhase = "make";
@@ -633,7 +633,7 @@ in with stdenv.lib.licenses;
     makefile = "libretro/Makefile";
     buildPhase = "cd libretro && make";
   };
- 
+
   o2em = (mkLibRetroCore rec {
     core = "o2em";
     src = fetchRetro {
@@ -647,7 +647,7 @@ in with stdenv.lib.licenses;
     makefile = "Makefile";
     buildPhase = "make";
   };
- 
+
   parallel-n64 = (mkLibRetroCore rec {
     core = "parallel-n64";
     src = fetchRetro {
@@ -658,7 +658,7 @@ in with stdenv.lib.licenses;
     description = "Parallel Mupen64plus rewrite for libretro.";
     license = gpl2;
 
-    extraBuildInputs = [ libGLU_combined libpng ];
+    extraBuildInputs = [ libGLU libGL libpng ];
   }).override {
     makefile = "Makefile";
     buildPhase = "make";
@@ -677,7 +677,7 @@ in with stdenv.lib.licenses;
     configurePhase = "rm configure";
     buildPhase = "make -f Makefile.libretro";
   };
-  
+
   picodrive = (mkLibRetroCore rec {
     core = "picodrive";
     src = fetchRetro {
@@ -718,7 +718,7 @@ in with stdenv.lib.licenses;
     };
     description = "ppsspp libretro port";
     license = gpl2;
-    extraBuildInputs = [ cmake libGLU_combined ffmpeg python37 xorg.libX11 ];
+    extraBuildInputs = [ cmake libGLU libGL ffmpeg python37 xorg.libX11 ];
   }).override {
     cmakeFlags = "-DLIBRETRO=ON";
     makefile = "Makefile";
@@ -778,7 +778,7 @@ in with stdenv.lib.licenses;
     };
     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";
diff --git a/pkgs/misc/emulators/retroarch/default.nix b/pkgs/misc/emulators/retroarch/default.nix
index 3b55c44d173..34e3961250c 100644
--- a/pkgs/misc/emulators/retroarch/default.nix
+++ b/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.8.4";
+  version = "1.8.1";
 
   src = fetchFromGitHub {
     owner = "libretro";
     repo = "RetroArch";
-    sha256 = "1i3i23xwvmck8k2fpalr49np7xjzfg507243mybqrljawlnbxvph";
+    sha256 = "0y7rcpz7psf8k3agsrq277jdm651vbnn9xpqvmj2in1a786idya7";
     rev = "v${version}";
   };
 
   nativeBuildInputs = [ pkgconfig ]
                       ++ 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 ]
                 ++ 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/pkgs/misc/emulators/retroarch/wrapper.nix b/pkgs/misc/emulators/retroarch/wrapper.nix
index 71ae168f1b2..08ebf8ea854 100644
--- a/pkgs/misc/emulators/retroarch/wrapper.nix
+++ b/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/pkgs/misc/emulators/vbam/default.nix b/pkgs/misc/emulators/vbam/default.nix
index daa6814a411..e44b45dbb4b 100644
--- a/pkgs/misc/emulators/vbam/default.nix
+++ b/pkgs/misc/emulators/vbam/default.nix
@@ -4,7 +4,7 @@
 , fetchFromGitHub
 , ffmpeg
 , gettext
-, libGLU_combined
+, libGLU, libGL
 , openal
 , pkgconfig
 , SDL2
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
     cairo
     ffmpeg
     gettext
-    libGLU_combined
+    libGLU libGL
     openal
     SDL2
     sfml
diff --git a/pkgs/misc/emulators/vice/default.nix b/pkgs/misc/emulators/vice/default.nix
index 7cf4faf55cd..cb083c0aa0d 100644
--- a/pkgs/misc/emulators/vice/default.nix
+++ b/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/pkgs/misc/emulators/wine/base.nix b/pkgs/misc/emulators/wine/base.nix
index 8252c96282d..057615a79a1 100644
--- a/pkgs/misc/emulators/wine/base.nix
+++ b/pkgs/misc/emulators/wine/base.nix
@@ -58,7 +58,7 @@ stdenv.mkDerivation ((lib.optionalAttrs (buildScript != null) {
   ++ 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
diff --git a/pkgs/misc/emulators/wine/staging.nix b/pkgs/misc/emulators/wine/staging.nix
index 5264e66279f..df979c68a47 100644
--- a/pkgs/misc/emulators/wine/staging.nix
+++ b/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/pkgs/misc/emulators/wxmupen64plus/default.nix b/pkgs/misc/emulators/wxmupen64plus/default.nix
index 1199f987bb6..2416ddd65b7 100644
--- a/pkgs/misc/emulators/wxmupen64plus/default.nix
+++ b/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/pkgs/misc/emulators/yabause/default.nix b/pkgs/misc/emulators/yabause/default.nix
index ed8652d08f1..abceb752b2f 100644
--- a/pkgs/misc/emulators/yabause/default.nix
+++ b/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/pkgs/misc/emulators/zsnes/default.nix b/pkgs/misc/emulators/zsnes/default.nix
index 1ea8d7e68d3..55fe49895c9 100644
--- a/pkgs/misc/emulators/zsnes/default.nix
+++ b/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