Disable the ImGui debugger if RetroAchievements hardcore mode is enabled.

This commit is contained in:
Henrik Rydgård 2024-11-10 19:00:13 +01:00
parent fe6db07f0d
commit 9056fea501
2 changed files with 12 additions and 0 deletions

View File

@ -54,6 +54,9 @@ bool IsBlockingExecution();
// //
// * Savestates // * Savestates
// * Slowdown time (though hard to fully prevent, could use crazy post shaders or software rendering...) // * Slowdown time (though hard to fully prevent, could use crazy post shaders or software rendering...)
// * Debugging
// * Cheats
// * and similar...
bool HardcoreModeActive(); bool HardcoreModeActive();
// Same as ChallengeModeActive but comes with a convenient user message. Don't use for every-frame checks or UI enablement, // Same as ChallengeModeActive but comes with a convenient user message. Don't use for every-frame checks or UI enablement,

View File

@ -2,6 +2,7 @@
#include "ext/imgui/imgui_internal.h" #include "ext/imgui/imgui_internal.h"
#include "Common/StringUtils.h" #include "Common/StringUtils.h"
#include "Core/RetroAchievements.h"
#include "Core/Core.h" #include "Core/Core.h"
#include "Core/Debugger/DebugInterface.h" #include "Core/Debugger/DebugInterface.h"
#include "Core/Debugger/DisassemblyManager.h" #include "Core/Debugger/DisassemblyManager.h"
@ -236,6 +237,14 @@ void ImDebugger::Frame(MIPSDebugInterface *mipsDebug) {
// Snapshot the coreState to avoid inconsistency. // Snapshot the coreState to avoid inconsistency.
const CoreState coreState = ::coreState; const CoreState coreState = ::coreState;
if (Achievements::HardcoreModeActive()) {
ImGui::Begin("RetroAchievements hardcore mode");
ImGui::Text("The debugger may not be used when the\nRetroAchievements hardcore mode is enabled.");
ImGui::Text("To use the debugger, go into Settings / Tools / RetroAchievements and disable them.");
ImGui::End();
return;
}
if (ImGui::BeginMainMenuBar()) { if (ImGui::BeginMainMenuBar()) {
if (ImGui::BeginMenu("Debug")) { if (ImGui::BeginMenu("Debug")) {
if (coreState == CoreState::CORE_STEPPING) { if (coreState == CoreState::CORE_STEPPING) {