From d48b6cf4292e4104857285378279f832c5f72313 Mon Sep 17 00:00:00 2001 From: Dmugetsu Date: Sun, 16 Mar 2025 13:53:03 -0600 Subject: [PATCH] Icon rename, adding f9 press for pause game when no gui is on without needed of debug menu --- src/core/devtools/layer.cpp | 27 ++++++++++++++++-- src/core/devtools/layer.h | 1 + ...refresh_icon.png => restart_game_icon.png} | Bin src/qt_gui/main_window.cpp | 4 --- src/qt_gui/main_window_ui.h | 2 +- src/shadps4.qrc | 2 +- 6 files changed, 27 insertions(+), 9 deletions(-) rename src/images/{refresh_icon.png => restart_game_icon.png} (100%) diff --git a/src/core/devtools/layer.cpp b/src/core/devtools/layer.cpp index 87fd9ffb3..57405c72e 100644 --- a/src/core/devtools/layer.cpp +++ b/src/core/devtools/layer.cpp @@ -1,6 +1,7 @@ // SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later +#include "SDL3/SDL_log.h" #include "layer.h" #include @@ -93,9 +94,7 @@ void L::DrawMenuBar() { { Checkbox("RCAS", &fsr.use_rcas); BeginDisabled(!fsr.use_rcas); - { - SliderFloat("RCAS Attenuation", &fsr.rcas_attenuation, 0.0, 3.0); - } + { SliderFloat("RCAS Attenuation", &fsr.rcas_attenuation, 0.0, 3.0); } EndDisabled(); } EndDisabled(); @@ -381,6 +380,28 @@ void L::Draw() { visibility_toggled = true; } + if (IsKeyPressed(ImGuiKey_F9, false)) { + if (!io.KeyCtrl && !io.KeyAlt) { + if (DebugState.IsGuestThreadsPaused()) { + DebugState.ResumeGuestThreads(); + SDL_Log("Game resumed from Keyboard"); + show_pause_status = false; + } else { + DebugState.PauseGuestThreads(); + SDL_Log("Game paused from Keyboard"); + show_pause_status = true; + } + visibility_toggled = true; + } + } + + if (show_pause_status) { + ImVec2 pos = ImVec2(10, 10); + ImU32 color = IM_COL32(255, 255, 255, 255); + + ImGui::GetForegroundDrawList()->AddText(pos, color, "Game Paused Press F9 to Resume"); + } + if (show_simple_fps) { if (Begin("Video Info", nullptr, ImGuiWindowFlags_NoNav | ImGuiWindowFlags_NoDecoration | diff --git a/src/core/devtools/layer.h b/src/core/devtools/layer.h index 5bb53fbdb..9e949c8e9 100644 --- a/src/core/devtools/layer.h +++ b/src/core/devtools/layer.h @@ -19,6 +19,7 @@ public: static void SetupSettings(); void Draw() override; + bool show_pause_status = false; }; } // namespace Core::Devtools diff --git a/src/images/refresh_icon.png b/src/images/restart_game_icon.png similarity index 100% rename from src/images/refresh_icon.png rename to src/images/restart_game_icon.png diff --git a/src/qt_gui/main_window.cpp b/src/qt_gui/main_window.cpp index b97e10954..e8459f4fa 100644 --- a/src/qt_gui/main_window.cpp +++ b/src/qt_gui/main_window.cpp @@ -1459,10 +1459,6 @@ bool MainWindow::eventFilter(QObject* obj, QEvent* event) { } void MainWindow::StartEmulator(std::filesystem::path path) { - if (isGameRunning) { - QMessageBox::critical(nullptr, tr("Run Game"), QString(tr("Game is already running!"))); - return; - } isGameRunning = true; #ifdef __APPLE__ // SDL on macOS requires main thread. diff --git a/src/qt_gui/main_window_ui.h b/src/qt_gui/main_window_ui.h index dda8c8de0..c4f47b636 100644 --- a/src/qt_gui/main_window_ui.h +++ b/src/qt_gui/main_window_ui.h @@ -241,7 +241,7 @@ public: keyboardButton->setIconSize(QSize(50, 50)); restartButton = new QPushButton(centralWidget); restartButton->setFlat(true); - restartButton->setIcon(QIcon(":images/refresh_icon.png")); + restartButton->setIcon(QIcon(":images/restart_game_icon.png")); restartButton->setIconSize(QSize(40, 40)); sizeSliderContainer = new QWidget(centralWidget); diff --git a/src/shadps4.qrc b/src/shadps4.qrc index 73e201d3e..b38677467 100644 --- a/src/shadps4.qrc +++ b/src/shadps4.qrc @@ -16,7 +16,7 @@ images/exit_icon.png images/settings_icon.png images/controller_icon.png - images/refresh_icon.png + images/restart_game_icon.png images/update_icon.png images/list_mode_icon.png images/flag_jp.png