From 60abebb3a506692af1c1ec2aafbdc7a534bb3223 Mon Sep 17 00:00:00 2001 From: chaoticgd <43898262+chaoticgd@users.noreply.github.com> Date: Mon, 7 Oct 2024 23:47:06 +0100 Subject: [PATCH 1/5] Debugger: Fix crash in symbol tree menu code --- pcsx2-qt/Debugger/CpuWidget.cpp | 5 +++++ pcsx2-qt/Debugger/SymbolTree/SymbolTreeWidgets.cpp | 2 ++ 2 files changed, 7 insertions(+) diff --git a/pcsx2-qt/Debugger/CpuWidget.cpp b/pcsx2-qt/Debugger/CpuWidget.cpp index ac5749b067223..fa852591893a8 100644 --- a/pcsx2-qt/Debugger/CpuWidget.cpp +++ b/pcsx2-qt/Debugger/CpuWidget.cpp @@ -154,6 +154,11 @@ void CpuWidget::setupSymbolTrees() m_local_variable_tree = new LocalVariableTreeWidget(m_cpu); m_parameter_variable_tree = new ParameterVariableTreeWidget(m_cpu); + m_function_tree->updateModel(); + m_global_variable_tree->updateModel(); + m_local_variable_tree->updateModel(); + m_parameter_variable_tree->updateModel(); + m_ui.tabFunctions->layout()->addWidget(m_function_tree); m_ui.tabGlobalVariables->layout()->addWidget(m_global_variable_tree); m_ui.tabLocalVariables->layout()->addWidget(m_local_variable_tree); diff --git a/pcsx2-qt/Debugger/SymbolTree/SymbolTreeWidgets.cpp b/pcsx2-qt/Debugger/SymbolTree/SymbolTreeWidgets.cpp index 647ebe8dfc4f4..f658157118586 100644 --- a/pcsx2-qt/Debugger/SymbolTree/SymbolTreeWidgets.cpp +++ b/pcsx2-qt/Debugger/SymbolTree/SymbolTreeWidgets.cpp @@ -445,6 +445,8 @@ void SymbolTreeWidget::setupMenu() void SymbolTreeWidget::openMenu(QPoint pos) { SymbolTreeNode* node = currentNode(); + if (!node) + return; bool node_is_object = node->tag == SymbolTreeNode::OBJECT; bool node_is_symbol = node->symbol.valid(); From 4319094b028365b06e6b969dc990ad4ad9c5b8c7 Mon Sep 17 00:00:00 2001 From: TheLastRar Date: Mon, 7 Oct 2024 22:16:38 +0100 Subject: [PATCH 2/5] QT: Clear m_status_verbose_widget text on VM stop --- pcsx2-qt/MainWindow.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/pcsx2-qt/MainWindow.cpp b/pcsx2-qt/MainWindow.cpp index 0d6911f966010..616e9efa946a8 100644 --- a/pcsx2-qt/MainWindow.cpp +++ b/pcsx2-qt/MainWindow.cpp @@ -2017,6 +2017,7 @@ void MainWindow::onVMStopped() m_status_fps_widget->setText(empty_string); m_status_vps_widget->setText(empty_string); m_status_speed_widget->setText(empty_string); + m_status_verbose_widget->setText(empty_string); updateEmulationActions(false, false, false); updateGameDependentActions(); From 1e9a248a0c9a73f554fd57f80e79457f4da45a42 Mon Sep 17 00:00:00 2001 From: JordanTheToaster Date: Fri, 27 Sep 2024 23:23:41 +0100 Subject: [PATCH 3/5] Deps: Update to Qt 6.8.0 on Windows and Linux --- .../scripts/linux/build-dependencies-qt.sh | 16 +++---- .../macos/build-dependencies-universal.sh | 42 +++++++------------ .../windows/build-dependencies-arm64.bat | 14 +++---- .../scripts/windows/build-dependencies.bat | 14 +++---- cmake/SearchForStuff.cmake | 3 +- 5 files changed, 37 insertions(+), 52 deletions(-) diff --git a/.github/workflows/scripts/linux/build-dependencies-qt.sh b/.github/workflows/scripts/linux/build-dependencies-qt.sh index cb980b79178e6..9c1f55651913c 100755 --- a/.github/workflows/scripts/linux/build-dependencies-qt.sh +++ b/.github/workflows/scripts/linux/build-dependencies-qt.sh @@ -20,7 +20,7 @@ LIBPNG=1.6.43 LIBWEBP=1.4.0 LZ4=b8fd2d15309dd4e605070bd4486e26b6ef814e29 SDL=SDL2-2.30.8 -QT=6.7.2 +QT=6.8.0 ZSTD=1.5.6 SHADERC=2024.1 @@ -39,12 +39,12 @@ fd6f417fe9e3a071cf1424a5152d926a34c4a3c5070745470be6cf12a404ed79 $LIBBACKTRACE. 0728800155f3ed0a0c87e03addbd30ecbe374f7b080678bbca1506051d50dec3 $LZ4.tar.gz 380c295ea76b9bd72d90075793971c8bcb232ba0a69a9b14da4ae8f603350058 $SDL.tar.gz 8c29e06cf42aacc1eafc4077ae2ec6c6fcb96a626157e0593d5e82a34fd403c1 zstd-$ZSTD.tar.gz -c5f22a5e10fb162895ded7de0963328e7307611c688487b5d152c9ee64767599 qtbase-everywhere-src-$QT.tar.xz -e1a1d8785fae67d16ad0a443b01d5f32663a6b68d275f1806ebab257485ce5d6 qtimageformats-everywhere-src-$QT.tar.xz -fb0d1286a35be3583fee34aeb5843c94719e07193bdf1d4d8b0dc14009caef01 qtsvg-everywhere-src-$QT.tar.xz -58e855ad1b2533094726c8a425766b63a04a0eede2ed85086860e54593aa4b2a qttools-everywhere-src-$QT.tar.xz -9845780b5dc1b7279d57836db51aeaf2e4a1160c42be09750616f39157582ca9 qttranslations-everywhere-src-$QT.tar.xz -a2a057e1dd644bd44abb9990fecc194b2e25c2e0f39e81aa9fee4c1e5e2a8a5b qtwayland-everywhere-src-$QT.tar.xz +1bad481710aa27f872de6c9f72651f89a6107f0077003d0ebfcc9fd15cba3c75 qtbase-everywhere-src-$QT.tar.xz +595bf8557b91e1f8ebc726f1e09868a3c7e610ff5045068f2d4ea2428c49a5d4 qtimageformats-everywhere-src-$QT.tar.xz +cf7a593d5e520f8177240610d9e55d5b75b0887fe5f385554ff64377f1646199 qtsvg-everywhere-src-$QT.tar.xz +403115d8268503c6cc6e43310c8ae28eb9e605072a5d04e4a2de8b6af39981f7 qttools-everywhere-src-$QT.tar.xz +84bf2b67c243cd0c50a08acd7bfa9df2b1965028511815c1b6b65a0687437cb6 qttranslations-everywhere-src-$QT.tar.xz +175758591638ebf1c6fbb66ac11c7fa0eb8d4ed52e9243cc59075d06a6a2060a qtwayland-everywhere-src-$QT.tar.xz eb3b5f0c16313d34f208d90c2fa1e588a23283eed63b101edd5422be6165d528 shaderc-$SHADERC.tar.gz aa27e4454ce631c5a17924ce0624eac736da19fc6f5a2ab15a6c58da7b36950f shaderc-glslang-$SHADERC_GLSLANG.tar.gz 5d866ce34a4b6908e262e5ebfffc0a5e11dd411640b5f24c85a80ad44c0d4697 shaderc-spirv-headers-$SHADERC_SPIRVHEADERS.tar.gz @@ -150,7 +150,7 @@ tar xf "qtbase-everywhere-src-$QT.tar.xz" cd "qtbase-everywhere-src-$QT" mkdir build cd build -../configure -prefix "$INSTALLDIR" -release -dbus-linked -gui -widgets -fontconfig -qt-doubleconversion -ssl -openssl-runtime -opengl desktop -qpa xcb,wayland -xkbcommon -xcb -gtk -- -DFEATURE_dbus=ON -DFEATURE_icu=OFF -DFEATURE_sql=OFF -DFEATURE_system_png=ON -DFEATURE_system_jpeg=ON -DFEATURE_system_zlib=ON -DFEATURE_system_freetype=ON -DFEATURE_system_harfbuzz=ON +../configure -prefix "$INSTALLDIR" -release -dbus-linked -gui -widgets -fontconfig -qt-doubleconversion -ssl -openssl-runtime -opengl desktop -qpa xcb,wayland -xkbcommon -xcb -gtk -- -DFEATURE_dbus=ON -DFEATURE_icu=OFF -DFEATURE_printsupport=OFF -DFEATURE_sql=OFF -DFEATURE_system_png=ON -DFEATURE_system_jpeg=ON -DFEATURE_system_zlib=ON -DFEATURE_system_freetype=ON -DFEATURE_system_harfbuzz=ON cmake --build . --parallel ninja install cd ../../ diff --git a/.github/workflows/scripts/macos/build-dependencies-universal.sh b/.github/workflows/scripts/macos/build-dependencies-universal.sh index 1c47710c778a1..a9331580ac650 100755 --- a/.github/workflows/scripts/macos/build-dependencies-universal.sh +++ b/.github/workflows/scripts/macos/build-dependencies-universal.sh @@ -40,15 +40,15 @@ fi FREETYPE=2.13.2 HARFBUZZ=8.3.1 -SDL=SDL2-2.30.3 -ZSTD=1.5.5 +SDL=SDL2-2.30.8 +ZSTD=1.5.6 LZ4=b8fd2d15309dd4e605070bd4486e26b6ef814e29 LIBPNG=1.6.43 LIBJPEG=9f -LIBWEBP=1.3.2 +LIBWEBP=1.4.0 FFMPEG=6.0 -MOLTENVK=1.2.8 -QT=6.7.1 +MOLTENVK=1.2.9 +QT=6.7.2 SHADERC=2024.1 SHADERC_GLSLANG=142052fa30f9eca191aa9dcf65359fcaed09eeec @@ -76,19 +76,19 @@ CMAKE_ARCH_UNIVERSAL=-DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" cat > SHASUMS < Date: Tue, 8 Oct 2024 00:01:33 +0000 Subject: [PATCH 4/5] Qt: Update Base Translation --- pcsx2-qt/Translations/pcsx2-qt_en.ts | 132 ++++++++++++++------------- 1 file changed, 71 insertions(+), 61 deletions(-) diff --git a/pcsx2-qt/Translations/pcsx2-qt_en.ts b/pcsx2-qt/Translations/pcsx2-qt_en.ts index 181e5d5d0d305..31803664c7ad7 100644 --- a/pcsx2-qt/Translations/pcsx2-qt_en.ts +++ b/pcsx2-qt/Translations/pcsx2-qt_en.ts @@ -14593,7 +14593,7 @@ Right click to clear binding - + Load State @@ -15208,10 +15208,10 @@ Are you sure you want to continue? - - - - + + + + Error @@ -15316,57 +15316,67 @@ Are you sure you want to continue? - + + Theme Change + + + + + Changing the theme will close the debugger window. Any unsaved data will be lost. Do you want to continue? + + + + Input Recording Failed - + Failed to create file: {} - + Input Recording Files (*.p2m2) - + Input Playback Failed - + Failed to open file: {} - + Paused - + Load State Failed - + Cannot load a save state without a running VM. - + The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now? - + Cannot change from game to GS dump without shutting down first. - + Failed to get window info from widget @@ -15392,88 +15402,88 @@ Are you sure you want to continue? - + Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it. - + Select disc drive: - + This save state does not exist. - + Select Cover Image - + Cover Already Exists - + A cover image for this game already exists, do you wish to replace it? - - - - + + + + Copy Error - + Failed to remove existing cover '%1' - + Failed to copy '%1' to '%2' - + Failed to remove '%1' - - + + Confirm Reset - + All Cover Image Types (*.jpg *.jpeg *.png *.webp) - + You must select a different file to the current cover image. - + Are you sure you want to reset the play time for '%1'? This action cannot be undone. - + Load Resume State - + A resume save state was found for this game, saved at: %1. @@ -15482,43 +15492,43 @@ Do you want to load this state, or start from a fresh boot? - + Fresh Boot - + Delete And Boot - + Failed to delete save state file '%1'. - + Load State File... - + Load From File... - - + + Select Save State File - + Save States (*.p2s) - + Delete Save States... @@ -15538,75 +15548,75 @@ Do you want to load this state, or start from a fresh boot? - + Save States (*.p2s *.p2s.backup) - + Undo Load State - + Resume (%2) - + Load Slot %1 (%2) - - + + Delete Save States - + Are you sure you want to delete all save states for %1? The saves will not be recoverable. - + %1 save states deleted. - + Save To File... - + Empty - + Save Slot %1 (%2) - + Confirm Disc Change - + Do you want to swap discs or boot the new image (via system reset)? - + Swap Disc - + Reset @@ -17609,7 +17619,7 @@ Ejecting {3} and replacing it with {2}. SaveState - + This save state is outdated and is no longer compatible with the current version of PCSX2. If you have any unsaved progress on this save state, you can download the compatible version (PCSX2 {}) from pcsx2.net, load the save state, and save your progress to the memory card. From 1c1f67c091f15a699efad9c3a006ced41f20c5ab Mon Sep 17 00:00:00 2001 From: Ty Lamontagne Date: Tue, 8 Oct 2024 17:23:04 -0400 Subject: [PATCH 5/5] IOP HLE: Only track handles to valid files. Bonus check for file validity when saving states. --- pcsx2/IopBios.cpp | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/pcsx2/IopBios.cpp b/pcsx2/IopBios.cpp index 742e56be0ab19..5c4e770ad4312 100644 --- a/pcsx2/IopBios.cpp +++ b/pcsx2/IopBios.cpp @@ -613,15 +613,17 @@ namespace R3000A v0 = allocfd(file); if ((s32)v0 < 0) file->close(); + else + { + fileHandle handle; + handle.fd_index = v0 - firstfd; + handle.flags = flags; + handle.full_path = path; + handle.mode = mode; + handles.push_back(handle); + } } - fileHandle handle; - handle.fd_index = v0 - firstfd; - handle.flags = flags; - handle.full_path = path; - handle.mode = mode; - handles.push_back(handle); - pc = ra; return 1; } @@ -1463,7 +1465,7 @@ bool SaveStateBase::handleFreeze() //save the current file position const u32 fd = R3000A::handles[i].fd_index; IOManFile* file = R3000A::ioman::getfd(fd + firstfd); - s32 pos = file->lseek(0, SEEK_CUR); + s32 pos = file ? file->lseek(0, SEEK_CUR) : 0; Freeze(pos); //save the parameters for opening the file