{ alsaLib, cmake, fetchFromGitHub, glib, gtk2, gettext, libaio, libpng , makeWrapper, perl, pkgconfig, portaudio, SDL2, soundtouch, stdenv , wxGTK30, zlib }: stdenv.mkDerivation rec { name = "pcsx2-${version}"; version = "1.4.0"; src = fetchFromGitHub { owner = "PCSX2"; repo = "pcsx2"; rev = "v${version}"; sha256 = "0s7mxq2cgzwjfsq0vhpz6ljk7wr725nxg48128iyirf85585l691"; }; postPatch = "sed '1i#include \"x86intrin.h\"' -i common/src/x86emitter/cpudetect.cpp"; configurePhase = '' mkdir -p build cd build cmake \ -DBIN_DIR="$out/bin" \ -DCMAKE_BUILD_PO=TRUE \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX="$out" \ -DDISABLE_ADVANCE_SIMD=TRUE \ -DDISABLE_PCSX2_WRAPPER=TRUE \ -DDOC_DIR="$out/share/doc/pcsx2" \ -DGAMEINDEX_DIR="$out/share/pcsx2" \ -DGLSL_SHADER_DIR="$out/share/pcsx2" \ -DGTK2_GLIBCONFIG_INCLUDE_DIR='${glib.out}/lib/glib-2.0/include' \ -DGTK2_GDKCONFIG_INCLUDE_DIR='${gtk2.out}/lib/gtk-2.0/include' \ -DGTK2_INCLUDE_DIRS='${gtk2.dev}/include/gtk-2.0' \ -DPACKAGE_MODE=TRUE \ -DPLUGIN_DIR="$out/lib/pcsx2" \ -DREBUILD_SHADER=TRUE \ -DXDG_STD=TRUE \ .. ''; postFixup = '' wrapProgram $out/bin/PCSX2 \ --set __GL_THREADED_OPTIMIZATIONS 1 ''; nativeBuildInputs = [ cmake perl pkgconfig ]; buildInputs = [ alsaLib glib gettext gtk2 libaio libpng makeWrapper portaudio SDL2 soundtouch wxGTK30 zlib ]; enableParallelBuilding = true; meta = with stdenv.lib; { description = "Playstation 2 emulator"; longDescription= '' PCSX2 is an open-source PlayStation 2 (AKA PS2) emulator. Its purpose is to emulate the PS2 hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits. ''; homepage = https://pcsx2.net; maintainers = with maintainers; [ hrdinka ]; # PCSX2's source code is released under LGPLv3+. It However ships # additional data files and code that are licensed differently. # This might be solved in future, for now we should stick with # license.free license = licenses.free; platforms = platforms.i686; }; }