anchor.diff: -{ stdenv, fetchFromGitHub, pkgconfig, cmake, makeWrapper, bluez, ffmpeg, libao
  -, libGLU_combined, gtk2, glib, pcre, gettext, libpthreadstubs, libXrandr, libusb
  -, libXext, libXxf86vm, libXinerama, libSM, readline, openal, libXdmcp, libevdev
  -, portaudio, curl, qt5, vulkan-loader ? null, libpulseaudio ? null
  +{ stdenv, fetchFromGitHub, makeWrapper, makeDesktopItem, pkgconfig, cmake, qt5
  +, bluez, ffmpeg, libao, libGLU_combined, gtk2, glib, pcre, gettext, libXrandr
  +, libpthreadstubs, libusb, libXext, libXxf86vm, libXinerama, libSM, libXdmcp
  +, readline, openal, libevdev, portaudio, curl
  +, vulkan-loader ? null
  +, libpulseaudio ? null
   
   # - Inputs used for Darwin
   , CoreBluetooth, cf-private, ForceFeedback, IOKit, OpenGL, wxGTK, libpng, hidapi
  
positive.code:     curl ffmpeg libao libGLU_combined gtk2 glib pcre gettext libpthreadstubs
      libXrandr libXext libXxf86vm libXinerama libSM readline openal libXdmcp
      portaudio libusb libpulseaudio libpng hidapi
    ] ++ stdenv.lib.optionals stdenv.isDarwin [ wxGTK CoreBluetooth cf-private ForceFeedback IOKit OpenGL ]
      ++ stdenv.lib.optionals stdenv.isLinux [ bluez libevdev vulkan-loader ]
      ++ stdenv.lib.optionals dolphin-qtgui [ qt5.qtbase ];
  
    cmakeFlags = [
      "-DGTK2_GLIBCONFIG_INCLUDE_DIR=${glib.out}/lib/glib-2.0/include"
  
negative.code: assert dolphin-wxgui || dolphin-qtgui;
  assert !(dolphin-wxgui && dolphin-qtgui);
  
  let
    desktopItem = makeDesktopItem {
      name = "dolphin-emu-master";
      exec = stdenv.lib.optionalString dolphin-wxgui "dolphin-emu-wx"
           + stdenv.lib.optionalString dolphin-qtgui "dolphin-emu-qt";
      icon = "dolphin-emu";
      comment = "A Wii/GameCube Emulator";
      desktopName = "Dolphin Emulator (master)";
      genericName = "Wii/GameCube Emulator";
      categories = "Game;Emulator;";
      startupNotify = "false";
    };
  in stdenv.mkDerivation rec {
    name = "dolphin-emu-20180618";
    src = fetchFromGitHub {
      owner = "dolphin-emu";
  