From 8ed82712a05dbb6c127a7949072d358463411d90 Mon Sep 17 00:00:00 2001
From: squidbus <175574877+squidbus@users.noreply.github.com>
Date: Sat, 12 Apr 2025 21:13:04 -0700
Subject: [PATCH 1/5] hotfix: Fix logo resolution in Qt UI.
---
src/qt_gui/about_dialog.ui | 2 +-
src/qt_gui/check_update.cpp | 2 +-
src/shadps4.qrc | 1 +
3 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/qt_gui/about_dialog.ui b/src/qt_gui/about_dialog.ui
index 3842513a5..804f0aea2 100644
--- a/src/qt_gui/about_dialog.ui
+++ b/src/qt_gui/about_dialog.ui
@@ -35,7 +35,7 @@
- :/images/shadps4.ico
+ :/images/shadps4.svg
true
diff --git a/src/qt_gui/check_update.cpp b/src/qt_gui/check_update.cpp
index 7d3a42798..a823eedab 100644
--- a/src/qt_gui/check_update.cpp
+++ b/src/qt_gui/check_update.cpp
@@ -188,7 +188,7 @@ void CheckUpdate::setupUI(const QString& downloadUrl, const QString& latestDate,
QHBoxLayout* titleLayout = new QHBoxLayout();
QLabel* imageLabel = new QLabel(this);
- QPixmap pixmap(":/images/shadps4.ico");
+ QPixmap pixmap(":/images/shadps4.svg");
imageLabel->setPixmap(pixmap);
imageLabel->setScaledContents(true);
imageLabel->setFixedSize(50, 50);
diff --git a/src/shadps4.qrc b/src/shadps4.qrc
index 83dea01c4..81a36af34 100644
--- a/src/shadps4.qrc
+++ b/src/shadps4.qrc
@@ -1,6 +1,7 @@
images/shadps4.ico
+ images/shadps4.svg
images/about_icon.png
images/dump_icon.png
images/play_icon.png
From 6c2574364b7d8907087759c2961d36859010ec43 Mon Sep 17 00:00:00 2001
From: squidbus <175574877+squidbus@users.noreply.github.com>
Date: Sun, 13 Apr 2025 08:12:02 -0700
Subject: [PATCH 2/5] libraries: Reduce some controller log spam. (#2777)
---
src/core/libraries/move/move.cpp | 8 +++++++-
src/core/libraries/pad/pad.cpp | 2 +-
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/src/core/libraries/move/move.cpp b/src/core/libraries/move/move.cpp
index 626fed9b4..500d89586 100644
--- a/src/core/libraries/move/move.cpp
+++ b/src/core/libraries/move/move.cpp
@@ -9,7 +9,7 @@
namespace Libraries::Move {
int PS4_SYSV_ABI sceMoveOpen() {
- LOG_ERROR(Lib_Move, "(STUBBED) called");
+ LOG_TRACE(Lib_Move, "(STUBBED) called");
return ORBIS_FAIL;
}
@@ -18,6 +18,11 @@ int PS4_SYSV_ABI sceMoveGetDeviceInfo() {
return ORBIS_OK;
}
+int PS4_SYSV_ABI sceMoveReadStateLatest() {
+ LOG_TRACE(Lib_Move, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
int PS4_SYSV_ABI sceMoveReadStateRecent() {
LOG_TRACE(Lib_Move, "(STUBBED) called");
return ORBIS_OK;
@@ -36,6 +41,7 @@ int PS4_SYSV_ABI sceMoveInit() {
void RegisterlibSceMove(Core::Loader::SymbolsResolver* sym) {
LIB_FUNCTION("HzC60MfjJxU", "libSceMove", 1, "libSceMove", 1, 1, sceMoveOpen);
LIB_FUNCTION("GWXTyxs4QbE", "libSceMove", 1, "libSceMove", 1, 1, sceMoveGetDeviceInfo);
+ LIB_FUNCTION("ttU+JOhShl4", "libSceMove", 1, "libSceMove", 1, 1, sceMoveReadStateLatest);
LIB_FUNCTION("f2bcpK6kJfg", "libSceMove", 1, "libSceMove", 1, 1, sceMoveReadStateRecent);
LIB_FUNCTION("tsZi60H4ypY", "libSceMove", 1, "libSceMove", 1, 1, sceMoveTerm);
LIB_FUNCTION("j1ITE-EoJmE", "libSceMove", 1, "libSceMove", 1, 1, sceMoveInit);
diff --git a/src/core/libraries/pad/pad.cpp b/src/core/libraries/pad/pad.cpp
index 2e5973144..5dfc68e90 100644
--- a/src/core/libraries/pad/pad.cpp
+++ b/src/core/libraries/pad/pad.cpp
@@ -250,7 +250,6 @@ int PS4_SYSV_ABI scePadMbusTerm() {
}
int PS4_SYSV_ABI scePadOpen(s32 userId, s32 type, s32 index, const OrbisPadOpenParam* pParam) {
- LOG_INFO(Lib_Pad, "(DUMMY) called user_id = {} type = {} index = {}", userId, type, index);
if (userId == -1) {
return ORBIS_PAD_ERROR_DEVICE_NO_HANDLE;
}
@@ -261,6 +260,7 @@ int PS4_SYSV_ABI scePadOpen(s32 userId, s32 type, s32 index, const OrbisPadOpenP
if (type != ORBIS_PAD_PORT_TYPE_STANDARD && type != ORBIS_PAD_PORT_TYPE_REMOTE_CONTROL)
return ORBIS_PAD_ERROR_DEVICE_NOT_CONNECTED;
}
+ LOG_INFO(Lib_Pad, "(DUMMY) called user_id = {} type = {} index = {}", userId, type, index);
scePadResetLightBar(1);
return 1; // dummy
}
From aec6e330dc339de856deb77d8711caaad539928f Mon Sep 17 00:00:00 2001
From: Vinicius Rangel
Date: Sun, 13 Apr 2025 13:27:20 -0300
Subject: [PATCH 3/5] Update ImGui submodule (#2779)
* update imgui submodule
* fix imgui breaking changes
* update ffmpeg-core submodule
---
externals/dear_imgui | 2 +-
externals/ffmpeg-core | 2 +-
src/core/devtools/widget/text_editor.cpp | 59 ++++++++++--------------
src/imgui/imgui_std.h | 4 +-
4 files changed, 29 insertions(+), 38 deletions(-)
diff --git a/externals/dear_imgui b/externals/dear_imgui
index 636cd4a7d..f4d935909 160000
--- a/externals/dear_imgui
+++ b/externals/dear_imgui
@@ -1 +1 @@
-Subproject commit 636cd4a7d623a2bc9bf59bb3acbb4ca075befba3
+Subproject commit f4d9359095eff3eb03f685921edc1cf0e37b1687
diff --git a/externals/ffmpeg-core b/externals/ffmpeg-core
index 42557a704..b0de1dcca 160000
--- a/externals/ffmpeg-core
+++ b/externals/ffmpeg-core
@@ -1 +1 @@
-Subproject commit 42557a704720d1b7d85c03bff0c2d369a61848da
+Subproject commit b0de1dcca26c0ebfb8011b8e59dd17fc399db0ff
diff --git a/src/core/devtools/widget/text_editor.cpp b/src/core/devtools/widget/text_editor.cpp
index 7171cac47..12031d1ef 100644
--- a/src/core/devtools/widget/text_editor.cpp
+++ b/src/core/devtools/widget/text_editor.cpp
@@ -627,65 +627,56 @@ void TextEditor::HandleKeyboardInputs() {
io.WantCaptureKeyboard = true;
io.WantTextInput = true;
- if (!IsReadOnly() && ctrl && !shift && !alt &&
- ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_Z)))
+ if (!IsReadOnly() && ctrl && !shift && !alt && ImGui::IsKeyPressed(ImGuiKey_Z))
Undo();
- else if (!IsReadOnly() && !ctrl && !shift && alt &&
- ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_Backspace)))
+ else if (!IsReadOnly() && !ctrl && !shift && alt && ImGui::IsKeyPressed(ImGuiKey_Backspace))
Undo();
- else if (!IsReadOnly() && ctrl && !shift && !alt &&
- ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_Y)))
+ else if (!IsReadOnly() && ctrl && !shift && !alt && ImGui::IsKeyPressed(ImGuiKey_Y))
Redo();
- else if (!ctrl && !alt && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_UpArrow)))
+ else if (!ctrl && !alt && ImGui::IsKeyPressed(ImGuiKey_UpArrow))
MoveUp(1, shift);
- else if (!ctrl && !alt && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_DownArrow)))
+ else if (!ctrl && !alt && ImGui::IsKeyPressed(ImGuiKey_DownArrow))
MoveDown(1, shift);
- else if (!alt && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_LeftArrow)))
+ else if (!alt && ImGui::IsKeyPressed(ImGuiKey_LeftArrow))
MoveLeft(1, shift, ctrl);
- else if (!alt && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_RightArrow)))
+ else if (!alt && ImGui::IsKeyPressed(ImGuiKey_RightArrow))
MoveRight(1, shift, ctrl);
- else if (!alt && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_PageUp)))
+ else if (!alt && ImGui::IsKeyPressed(ImGuiKey_PageUp))
MoveUp(GetPageSize() - 4, shift);
- else if (!alt && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_PageDown)))
+ else if (!alt && ImGui::IsKeyPressed(ImGuiKey_PageDown))
MoveDown(GetPageSize() - 4, shift);
- else if (!alt && ctrl && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_Home)))
+ else if (!alt && ctrl && ImGui::IsKeyPressed(ImGuiKey_Home))
MoveTop(shift);
- else if (ctrl && !alt && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_End)))
+ else if (ctrl && !alt && ImGui::IsKeyPressed(ImGuiKey_End))
MoveBottom(shift);
- else if (!ctrl && !alt && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_Home)))
+ else if (!ctrl && !alt && ImGui::IsKeyPressed(ImGuiKey_Home))
MoveHome(shift);
- else if (!ctrl && !alt && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_End)))
+ else if (!ctrl && !alt && ImGui::IsKeyPressed(ImGuiKey_End))
MoveEnd(shift);
- else if (!IsReadOnly() && !ctrl && !shift && !alt &&
- ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_Delete)))
+ else if (!IsReadOnly() && !ctrl && !shift && !alt && ImGui::IsKeyPressed(ImGuiKey_Delete))
Delete();
else if (!IsReadOnly() && !ctrl && !shift && !alt &&
- ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_Backspace)))
+ ImGui::IsKeyPressed(ImGuiKey_Backspace))
Backspace();
- else if (!ctrl && !shift && !alt &&
- ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_Insert)))
+ else if (!ctrl && !shift && !alt && ImGui::IsKeyPressed(ImGuiKey_Insert))
mOverwrite ^= true;
- else if (ctrl && !shift && !alt && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_Insert)))
+ else if (ctrl && !shift && !alt && ImGui::IsKeyPressed(ImGuiKey_Insert))
Copy();
- else if (ctrl && !shift && !alt && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_C)))
+ else if (ctrl && !shift && !alt && ImGui::IsKeyPressed(ImGuiKey_C))
Copy();
- else if (!IsReadOnly() && !ctrl && shift && !alt &&
- ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_Insert)))
+ else if (!IsReadOnly() && !ctrl && shift && !alt && ImGui::IsKeyPressed(ImGuiKey_Insert))
Paste();
- else if (!IsReadOnly() && ctrl && !shift && !alt &&
- ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_V)))
+ else if (!IsReadOnly() && ctrl && !shift && !alt && ImGui::IsKeyPressed(ImGuiKey_V))
Paste();
- else if (ctrl && !shift && !alt && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_X)))
+ else if (ctrl && !shift && !alt && ImGui::IsKeyPressed(ImGuiKey_X))
Cut();
- else if (!ctrl && shift && !alt && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_Delete)))
+ else if (!ctrl && shift && !alt && ImGui::IsKeyPressed(ImGuiKey_Delete))
Cut();
- else if (ctrl && !shift && !alt && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_A)))
+ else if (ctrl && !shift && !alt && ImGui::IsKeyPressed(ImGuiKey_A))
SelectAll();
- else if (!IsReadOnly() && !ctrl && !shift && !alt &&
- ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_Enter)))
+ else if (!IsReadOnly() && !ctrl && !shift && !alt && ImGui::IsKeyPressed(ImGuiKey_Enter))
EnterCharacter('\n', false);
- else if (!IsReadOnly() && !ctrl && !alt &&
- ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_Tab)))
+ else if (!IsReadOnly() && !ctrl && !alt && ImGui::IsKeyPressed(ImGuiKey_Tab))
EnterCharacter('\t', shift);
if (!IsReadOnly() && !io.InputQueueCharacters.empty()) {
diff --git a/src/imgui/imgui_std.h b/src/imgui/imgui_std.h
index cd7208064..743702657 100644
--- a/src/imgui/imgui_std.h
+++ b/src/imgui/imgui_std.h
@@ -50,14 +50,14 @@ inline void KeepWindowInside(ImVec2 display_size = GetIO().DisplaySize) {
}
inline void KeepNavHighlight() {
- GetCurrentContext()->NavDisableHighlight = false;
+ GetCurrentContext()->NavCursorVisible = true;
}
inline void SetItemCurrentNavFocus(const ImGuiID id = -1) {
const auto ctx = GetCurrentContext();
SetFocusID(id == -1 ? ctx->LastItemData.ID : id, ctx->CurrentWindow);
ctx->NavInitResult.Clear();
- ctx->NavDisableHighlight = false;
+ ctx->NavCursorVisible = true;
}
inline void DrawPrettyBackground() {
From 14fad28a9bc3bbf68b53b0c63937c85bc1eafc2e Mon Sep 17 00:00:00 2001
From: squidbus <175574877+squidbus@users.noreply.github.com>
Date: Sun, 13 Apr 2025 12:10:24 -0700
Subject: [PATCH 4/5] misc: Few small fixes. (#2780)
* qt: Use PNG file for logo.
* build: Fix some CMake issues.
---
CMakeLists.txt | 12 +++++-------
REUSE.toml | 1 +
src/images/shadps4.png | Bin 0 -> 35291 bytes
src/qt_gui/about_dialog.ui | 2 +-
src/qt_gui/check_update.cpp | 2 +-
src/shadps4.qrc | 2 +-
6 files changed, 9 insertions(+), 10 deletions(-)
create mode 100644 src/images/shadps4.png
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 37492eeb3..63dc7b4c3 100755
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -10,7 +10,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED True)
if(APPLE)
list(APPEND ADDITIONAL_LANGUAGES OBJC)
# Starting with 15.4, Rosetta 2 has support for all the necessary instruction sets.
- set(CMAKE_OSX_DEPLOYMENT_TARGET 15.4)
+ set(CMAKE_OSX_DEPLOYMENT_TARGET 15.4 CACHE STRING "")
endif()
if (NOT CMAKE_BUILD_TYPE)
@@ -105,11 +105,8 @@ if (CLANG_FORMAT)
unset(CCOMMENT)
endif()
-list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
-
# generate git revision information
-list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/externals/cmake-modules/")
-include(GetGitRevisionDescription)
+include("${CMAKE_CURRENT_SOURCE_DIR}/externals/cmake-modules/GetGitRevisionDescription.cmake")
get_git_head_revision(GIT_REF_SPEC GIT_REV)
git_describe(GIT_DESC --always --long --dirty)
git_branch_name(GIT_BRANCH)
@@ -209,6 +206,7 @@ configure_file("${CMAKE_CURRENT_SOURCE_DIR}/src/common/scm_rev.cpp.in" "${CMAKE_
message("end git things, remote: ${GIT_REMOTE_NAME}, branch: ${GIT_BRANCH}")
+list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
find_package(Boost 1.84.0 CONFIG)
find_package(FFmpeg 5.1.2 MODULE)
find_package(fmt 10.2.0 CONFIG)
@@ -229,10 +227,10 @@ find_package(ZLIB 1.3 MODULE)
find_package(Zydis 5.0.0 CONFIG)
find_package(pugixml 1.14 CONFIG)
find_package(libusb 1.0.27 MODULE)
-
if (APPLE)
find_package(date 3.0.1 CONFIG)
endif()
+list(POP_BACK CMAKE_MODULE_PATH)
# Note: Windows always has these functions through winpthreads
include(CheckSymbolExists)
@@ -1174,7 +1172,7 @@ target_include_directories(shadps4 PRIVATE ${HOST_SHADERS_INCLUDE})
# embed resources
-include(CMakeRC)
+include("${CMAKE_CURRENT_SOURCE_DIR}/cmake/CMakeRC.cmake")
cmrc_add_resource_library(embedded-resources
ALIAS res::embedded
NAMESPACE res
diff --git a/REUSE.toml b/REUSE.toml
index d17594e4d..662987611 100644
--- a/REUSE.toml
+++ b/REUSE.toml
@@ -57,6 +57,7 @@ path = [
"src/images/utils_icon.png",
"src/images/shadPS4.icns",
"src/images/shadps4.ico",
+ "src/images/shadps4.png",
"src/images/net.shadps4.shadPS4.svg",
"src/images/themes_icon.png",
"src/images/update_icon.png",
diff --git a/src/images/shadps4.png b/src/images/shadps4.png
new file mode 100644
index 0000000000000000000000000000000000000000..037732e3b14d6a97574ce29956c703a6ce7089ac
GIT binary patch
literal 35291
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
HDWM4f6lcyn
literal 0
HcmV?d00001
diff --git a/src/qt_gui/about_dialog.ui b/src/qt_gui/about_dialog.ui
index 804f0aea2..0e9ef222c 100644
--- a/src/qt_gui/about_dialog.ui
+++ b/src/qt_gui/about_dialog.ui
@@ -35,7 +35,7 @@
- :/images/shadps4.svg
+ :/images/shadps4.png
true
diff --git a/src/qt_gui/check_update.cpp b/src/qt_gui/check_update.cpp
index a823eedab..550fdddb5 100644
--- a/src/qt_gui/check_update.cpp
+++ b/src/qt_gui/check_update.cpp
@@ -188,7 +188,7 @@ void CheckUpdate::setupUI(const QString& downloadUrl, const QString& latestDate,
QHBoxLayout* titleLayout = new QHBoxLayout();
QLabel* imageLabel = new QLabel(this);
- QPixmap pixmap(":/images/shadps4.svg");
+ QPixmap pixmap(":/images/shadps4.png");
imageLabel->setPixmap(pixmap);
imageLabel->setScaledContents(true);
imageLabel->setFixedSize(50, 50);
diff --git a/src/shadps4.qrc b/src/shadps4.qrc
index 81a36af34..2aee394c8 100644
--- a/src/shadps4.qrc
+++ b/src/shadps4.qrc
@@ -1,7 +1,7 @@
images/shadps4.ico
- images/shadps4.svg
+ images/shadps4.png
images/about_icon.png
images/dump_icon.png
images/play_icon.png
From d188d14e197ccc05414106ad2d089701d039267d Mon Sep 17 00:00:00 2001
From: squidbus <175574877+squidbus@users.noreply.github.com>
Date: Sun, 13 Apr 2025 12:18:28 -0700
Subject: [PATCH 5/5] hotfix: Update discord-rpc to remove invasive macOS
minimum linker flag.
---
externals/discord-rpc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/externals/discord-rpc b/externals/discord-rpc
index d3b5af882..19f66e6dc 160000
--- a/externals/discord-rpc
+++ b/externals/discord-rpc
@@ -1 +1 @@
-Subproject commit d3b5af8827031f3bccbf8c15d5dc1bfdc9467f17
+Subproject commit 19f66e6dcabb2268965f453db9e5774ede43238f