Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
160 changes: 160 additions & 0 deletions pkgs/by-name/sh/shadps4/emulator.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
{
lib,
stdenv,
fetchFromGitHub,

nixosTests,
alsa-lib,
boost,
cmake,
cryptopp,
glslang,
ffmpeg,
fmt,
half,
jack2,
libdecor,
libpulseaudio,
libunwind,
libusb1,
magic-enum,
libgbm,
libx11,
libxcb,
libxcursor,
libxext,
libxi,
libxrandr,
libxscrnsaver,
libxtst,
pipewire,
pkg-config,
pugixml,
rapidjson,
renderdoc,
robin-map,
sndio,
stb,
toml11,
util-linux,
vulkan-headers,
vulkan-loader,
vulkan-memory-allocator,
xbyak,
xxHash,
zlib-ng,
zydis,
nix-update-script,
}:

stdenv.mkDerivation (finalAttrs: {
pname = "shadps4";
version = "0.13.0";

src = fetchFromGitHub {
owner = "shadps4-emu";
repo = "shadPS4";
tag = "v.${finalAttrs.version}";
hash = "sha256-zc3zhFTphty/vwioFEOfhgXttpD9MG2F7+YJYcW0H2w=";
fetchSubmodules = true;

leaveDotGit = true;
postFetch = ''
cd "$out"
git rev-parse --short=8 HEAD > $out/COMMIT
date -u -d "@$(git log -1 --pretty=%ct)" "+%Y-%m-%dT%H:%M:%SZ" > $out/SOURCE_DATE_EPOCH
find "$out" -name .git -print0 | xargs -0 rm -rf
'';
};

postPatch = ''
substituteInPlace src/common/scm_rev.cpp.in \
--replace-fail @APP_VERSION@ ${finalAttrs.version} \
--replace-fail @GIT_REV@ $(cat COMMIT) \
--replace-fail @GIT_BRANCH@ ${finalAttrs.version} \
--replace-fail @GIT_DESC@ nixpkgs \
--replace-fail @BUILD_DATE@ $(cat SOURCE_DATE_EPOCH)
'';

buildInputs = [
alsa-lib
boost
cryptopp
glslang
ffmpeg
fmt
half
jack2
libdecor
libpulseaudio
libunwind
libusb1
libx11
libxcb
libxcursor
libxext
libxi
libxrandr
libxscrnsaver
libxtst
magic-enum
libgbm
pipewire
pugixml
rapidjson
renderdoc
robin-map
sndio
stb
toml11
util-linux
vulkan-headers
vulkan-loader
vulkan-memory-allocator
xbyak
xxHash
zlib-ng
zydis
];

nativeBuildInputs = [
cmake
pkg-config
];

cmakeFlags = [
(lib.cmakeBool "ENABLE_UPDATER" false)
];

# Still in development, help with debugging
cmakeBuildType = "RelWithDebugInfo";
dontStrip = true;

installPhase = ''
runHook preInstall

install -D -t $out/bin shadps4
install -Dm644 $src/.github/shadps4.png $out/share/icons/hicolor/512x512/apps/net.shadps4.shadPS4.png
install -Dm644 -t $out/share/applications $src/dist/net.shadps4.shadPS4.desktop
install -Dm644 -t $out/share/metainfo $src/dist/net.shadps4.shadPS4.metainfo.xml

runHook postInstall
'';

runtimeDependencies = [
vulkan-loader
libxi
];

passthru = {
tests.openorbis-example = nixosTests.shadps4;
updateScript = nix-update-script {
extraArgs = [
"--version-regex"
"v\\.(.*)"
];
};
};

meta.platforms = lib.intersectLists lib.platforms.linux lib.platforms.x86_64;
})
11 changes: 11 additions & 0 deletions pkgs/by-name/sh/shadps4/hide-version-manager.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
diff --git a/src/qt_gui/main_window.cpp b/src/qt_gui/main_window.cpp
index 793e6c2..a626bfd 100644
--- a/src/qt_gui/main_window.cpp
+++ b/src/qt_gui/main_window.cpp
@@ -274,6 +274,7 @@ void MainWindow::AddUiWidgets() {
versionLayout->addWidget(ui->versionComboBox);
versionLayout->addWidget(ui->versionManagerButton);
ui->versionManagerButton->setText(tr("Version Manager"));
+ versionContainer->setHidden(true);
ui->toolBar->addWidget(versionContainer);
}
Loading
Loading