shadps4: init at 0.3.0-unstable-2024-10-13
This commit is contained in:
30
pkgs/by-name/sh/shadps4/0001-Disable-update-checking.patch
Normal file
30
pkgs/by-name/sh/shadps4/0001-Disable-update-checking.patch
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
From 266a090882133e30df20899bbf8a5b66b28e02cd Mon Sep 17 00:00:00 2001
|
||||||
|
From: OPNA2608 <opna2608@protonmail.com>
|
||||||
|
Date: Mon, 14 Oct 2024 00:31:01 +0200
|
||||||
|
Subject: [PATCH] Disable update checking
|
||||||
|
|
||||||
|
Downloading an AppImage and trying to run it just won't work.
|
||||||
|
---
|
||||||
|
src/qt_gui/check_update.cpp | 6 ++++++
|
||||||
|
1 file changed, 6 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/src/qt_gui/check_update.cpp b/src/qt_gui/check_update.cpp
|
||||||
|
index ca6009ca..e3b14d5d 100644
|
||||||
|
--- a/src/qt_gui/check_update.cpp
|
||||||
|
+++ b/src/qt_gui/check_update.cpp
|
||||||
|
@@ -201,6 +201,12 @@ void CheckUpdate::setupUI(const QString& downloadUrl, const QString& latestDate,
|
||||||
|
noButton->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Preferred);
|
||||||
|
bottomLayout->addWidget(autoUpdateCheckBox);
|
||||||
|
|
||||||
|
+ yesButton->setVisible(false);
|
||||||
|
+ yesButton->setEnabled(false);
|
||||||
|
+ QString updateDisabledText = QStringLiteral("[Nix] Auto-updating has been disabled in this package.");
|
||||||
|
+ QLabel* updateDisabledLabel = new QLabel(updateDisabledText, this);
|
||||||
|
+ layout->addWidget(updateDisabledLabel);
|
||||||
|
+
|
||||||
|
QSpacerItem* spacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
|
||||||
|
bottomLayout->addItem(spacer);
|
||||||
|
|
||||||
|
--
|
||||||
|
2.44.1
|
||||||
|
|
||||||
19
pkgs/by-name/sh/shadps4/bloodborne.patch
Normal file
19
pkgs/by-name/sh/shadps4/bloodborne.patch
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
--- a/src/core/libraries/kernel/thread_management.cpp
|
||||||
|
+++ b/src/core/libraries/kernel/thread_management.cpp
|
||||||
|
@@ -1065,7 +1065,16 @@ ScePthread PThreadPool::Create() {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+#ifdef _WIN64
|
||||||
|
auto* ret = new PthreadInternal{};
|
||||||
|
+#else
|
||||||
|
+ // TODO: Linux specific hack
|
||||||
|
+ static u8* hint_address = reinterpret_cast<u8*>(0x7FFFFC000ULL);
|
||||||
|
+ auto* ret = reinterpret_cast<PthreadInternal*>(
|
||||||
|
+ mmap(hint_address, sizeof(PthreadInternal), PROT_READ | PROT_WRITE,
|
||||||
|
+ MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED, -1, 0));
|
||||||
|
+ hint_address += Common::AlignUp(sizeof(PthreadInternal), 4_KB);
|
||||||
|
+#endif
|
||||||
|
ret->is_free = false;
|
||||||
|
ret->is_detached = false;
|
||||||
|
ret->is_almost_done = false;
|
||||||
24
pkgs/by-name/sh/shadps4/laptop-controls.patch
Normal file
24
pkgs/by-name/sh/shadps4/laptop-controls.patch
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
diff --git a/src/sdl_window.cpp b/src/sdl_window.cpp
|
||||||
|
index bd2cc39d..13438149 100644
|
||||||
|
--- a/src/sdl_window.cpp
|
||||||
|
+++ b/src/sdl_window.cpp
|
||||||
|
@@ -127,19 +127,12 @@ void WindowSDL::onResize() {
|
||||||
|
void WindowSDL::onKeyPress(const SDL_Event* event) {
|
||||||
|
using Libraries::Pad::OrbisPadButtonDataOffset;
|
||||||
|
|
||||||
|
-#ifdef __APPLE__
|
||||||
|
// Use keys that are more friendly for keyboards without a keypad.
|
||||||
|
// Once there are key binding options this won't be necessary.
|
||||||
|
constexpr SDL_Keycode CrossKey = SDLK_N;
|
||||||
|
constexpr SDL_Keycode CircleKey = SDLK_B;
|
||||||
|
constexpr SDL_Keycode SquareKey = SDLK_V;
|
||||||
|
constexpr SDL_Keycode TriangleKey = SDLK_C;
|
||||||
|
-#else
|
||||||
|
- constexpr SDL_Keycode CrossKey = SDLK_KP_2;
|
||||||
|
- constexpr SDL_Keycode CircleKey = SDLK_KP_6;
|
||||||
|
- constexpr SDL_Keycode SquareKey = SDLK_KP_4;
|
||||||
|
- constexpr SDL_Keycode TriangleKey = SDLK_KP_8;
|
||||||
|
-#endif
|
||||||
|
|
||||||
|
u32 button = 0;
|
||||||
|
Input::Axis axis = Input::Axis::AxisMax;
|
||||||
140
pkgs/by-name/sh/shadps4/package.nix
Normal file
140
pkgs/by-name/sh/shadps4/package.nix
Normal file
@@ -0,0 +1,140 @@
|
|||||||
|
{
|
||||||
|
lib,
|
||||||
|
stdenv,
|
||||||
|
fetchFromGitHub,
|
||||||
|
fetchpatch,
|
||||||
|
alsa-lib,
|
||||||
|
boost184,
|
||||||
|
cmake,
|
||||||
|
cryptopp,
|
||||||
|
glslang,
|
||||||
|
ffmpeg,
|
||||||
|
fmt,
|
||||||
|
jack2,
|
||||||
|
libdecor,
|
||||||
|
libpulseaudio,
|
||||||
|
libunwind,
|
||||||
|
libusb1,
|
||||||
|
magic-enum,
|
||||||
|
mesa,
|
||||||
|
pkg-config,
|
||||||
|
pugixml,
|
||||||
|
qt6,
|
||||||
|
rapidjson,
|
||||||
|
renderdoc,
|
||||||
|
sndio,
|
||||||
|
toml11,
|
||||||
|
vulkan-headers,
|
||||||
|
vulkan-loader,
|
||||||
|
vulkan-memory-allocator,
|
||||||
|
xorg,
|
||||||
|
xxHash,
|
||||||
|
zlib-ng,
|
||||||
|
unstableGitUpdater,
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
pname = "shadps4";
|
||||||
|
version = "0.3.0-unstable-2024-10-13";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "shadps4-emu";
|
||||||
|
repo = "shadPS4";
|
||||||
|
rev = "bd9f82df94847b4a5f3d2676ae938f064505c992";
|
||||||
|
hash = "sha256-Z4+hHq2VI4wA1D72dBI7Lt++Rm3q0svjF6AialXxM0k=";
|
||||||
|
fetchSubmodules = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
# https://github.com/shadps4-emu/shadPS4/issues/758
|
||||||
|
./bloodborne.patch
|
||||||
|
# Fix controls without a numpad
|
||||||
|
./laptop-controls.patch
|
||||||
|
|
||||||
|
# Disable auto-updating, as
|
||||||
|
# downloading an AppImage and trying to run it just won't work.
|
||||||
|
# https://github.com/shadps4-emu/shadPS4/issues/1368
|
||||||
|
./0001-Disable-update-checking.patch
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
alsa-lib
|
||||||
|
boost184
|
||||||
|
cryptopp
|
||||||
|
glslang
|
||||||
|
ffmpeg
|
||||||
|
fmt
|
||||||
|
jack2
|
||||||
|
libdecor
|
||||||
|
libpulseaudio
|
||||||
|
libunwind
|
||||||
|
libusb1
|
||||||
|
xorg.libX11
|
||||||
|
xorg.libXext
|
||||||
|
magic-enum
|
||||||
|
mesa
|
||||||
|
pugixml
|
||||||
|
qt6.qtbase
|
||||||
|
qt6.qtdeclarative
|
||||||
|
qt6.qtmultimedia
|
||||||
|
qt6.qttools
|
||||||
|
qt6.qtwayland
|
||||||
|
rapidjson
|
||||||
|
renderdoc
|
||||||
|
sndio
|
||||||
|
toml11
|
||||||
|
vulkan-headers
|
||||||
|
vulkan-loader
|
||||||
|
vulkan-memory-allocator
|
||||||
|
xxHash
|
||||||
|
zlib-ng
|
||||||
|
];
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
cmake
|
||||||
|
pkg-config
|
||||||
|
qt6.wrapQtAppsHook
|
||||||
|
];
|
||||||
|
|
||||||
|
cmakeFlags = [
|
||||||
|
(lib.cmakeBool "ENABLE_QT_GUI" true)
|
||||||
|
];
|
||||||
|
|
||||||
|
# Still in development, help with debugging
|
||||||
|
cmakeBuildType = "RelWithDebugInfo";
|
||||||
|
dontStrip = true;
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
|
||||||
|
install -D -t $out/bin shadps4
|
||||||
|
install -Dm644 -t $out/share/icons/hicolor/512x512/apps $src/.github/shadps4.png
|
||||||
|
install -Dm644 -t $out/share/applications $src/.github/shadps4.desktop
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
|
||||||
|
fixupPhase = ''
|
||||||
|
patchelf --add-rpath ${
|
||||||
|
lib.makeLibraryPath [
|
||||||
|
vulkan-loader
|
||||||
|
xorg.libXi
|
||||||
|
]
|
||||||
|
} \
|
||||||
|
$out/bin/shadps4
|
||||||
|
'';
|
||||||
|
|
||||||
|
passthru.updateScript = unstableGitUpdater {
|
||||||
|
tagFormat = "v.*";
|
||||||
|
tagPrefix = "v.";
|
||||||
|
};
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Early in development PS4 emulator";
|
||||||
|
homepage = "https://github.com/shadps4-emu/shadPS4";
|
||||||
|
license = lib.licenses.gpl2Plus;
|
||||||
|
maintainers = with lib.maintainers; [ ryand56 ];
|
||||||
|
mainProgram = "shadps4";
|
||||||
|
platforms = lib.intersectLists lib.platforms.linux lib.platforms.x86_64;
|
||||||
|
};
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user