diff options
Diffstat (limited to 'nixpkgs/pkgs/misc/emulators/pcsx2/default.nix')
-rw-r--r-- | nixpkgs/pkgs/misc/emulators/pcsx2/default.nix | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/misc/emulators/pcsx2/default.nix b/nixpkgs/pkgs/misc/emulators/pcsx2/default.nix new file mode 100644 index 000000000000..95e94eeaff51 --- /dev/null +++ b/nixpkgs/pkgs/misc/emulators/pcsx2/default.nix @@ -0,0 +1,74 @@ +{ 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 \ + .. + ''; + + 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; + }; +} |