1{
2 lib,
3 cmake,
4 fetchFromGitHub,
5 libGL,
6 libGLU,
7 libzip,
8 mkLibretroCore,
9 pkg-config,
10 python3,
11 snappy,
12 xorg,
13}:
14mkLibretroCore {
15 core = "ppsspp";
16 version = "0-unstable-2025-07-16";
17
18 src = fetchFromGitHub {
19 owner = "hrydgard";
20 repo = "ppsspp";
21 rev = "e68cec63d0d5d89442ddfab5b425c73e2bb5eb35";
22 hash = "sha256-xNh+McD/oGBKTcnhQgM3zCZhX4Q7IOf9CcdIJJvqM4g=";
23 fetchSubmodules = true;
24 };
25
26 extraNativeBuildInputs = [
27 cmake
28 pkg-config
29 python3
30 ];
31 extraBuildInputs = [
32 libGLU
33 libGL
34 libzip
35 snappy
36 xorg.libX11
37 ];
38 makefile = "Makefile";
39 cmakeFlags = [
40 "-DLIBRETRO=ON"
41 # USE_SYSTEM_FFMPEG=ON causes several glitches during video playback
42 # See: https://github.com/NixOS/nixpkgs/issues/304616
43 "-DUSE_SYSTEM_FFMPEG=OFF"
44 "-DUSE_SYSTEM_SNAPPY=ON"
45 "-DUSE_SYSTEM_LIBZIP=ON"
46 "-DOpenGL_GL_PREFERENCE=GLVND"
47 ];
48 postBuild = "cd lib";
49
50 meta = {
51 description = "PPSSPP libretro port";
52 homepage = "https://github.com/hrydgard/ppsspp";
53 license = lib.licenses.gpl2Plus;
54 badPlatforms = [
55 # error: cannot convert 'uint32x4_t' to 'int' in initialization
56 "aarch64-linux"
57 ];
58 };
59}