mirror of
https://github.com/PCSX2/pcsx2.git
synced 2025-12-16 04:08:48 +00:00
OSD: Add ability to show the amount of activated patches
This commit is contained in:
parent
db92af8ca4
commit
d34d2af849
@ -103,7 +103,7 @@
|
||||
<item row="4" column="0" colspan="2">
|
||||
<layout class="QGridLayout" name="optionLayout" rowstretch="0,0,0,0,0,0,0,0,0,0,0">
|
||||
<property name="sizeConstraint">
|
||||
<enum>QLayout::SetDefaultConstraint</enum>
|
||||
<enum>QLayout::SizeConstraint::SetDefaultConstraint</enum>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>10</number>
|
||||
@ -251,6 +251,13 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="2">
|
||||
<widget class="QCheckBox" name="showPatches">
|
||||
<property name="text">
|
||||
<string>Show Patches</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
@ -317,10 +324,10 @@
|
||||
<item row="3" column="0" colspan="2">
|
||||
<spacer name="checkboxSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
<enum>Qt::Orientation::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Fixed</enum>
|
||||
<enum>QSizePolicy::Policy::Fixed</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
@ -343,7 +350,7 @@
|
||||
<item>
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
<enum>Qt::Orientation::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
|
||||
@ -243,6 +243,7 @@ GraphicsSettingsWidget::GraphicsSettingsWidget(SettingsWindow* settings_dialog,
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_osd.showGSStats, "EmuCore/GS", "OsdShowGSStats", false);
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_osd.showIndicators, "EmuCore/GS", "OsdShowIndicators", true);
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_osd.showSettings, "EmuCore/GS", "OsdShowSettings", false);
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_osd.showPatches, "EmuCore/GS", "OsdshowPatches", false);
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_osd.showInputs, "EmuCore/GS", "OsdShowInputs", false);
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_osd.showFrameTimes, "EmuCore/GS", "OsdShowFrameTimes", false);
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_osd.showVersion, "EmuCore/GS", "OsdShowVersion", false);
|
||||
@ -756,6 +757,9 @@ GraphicsSettingsWidget::GraphicsSettingsWidget(SettingsWindow* settings_dialog,
|
||||
dialog()->registerWidgetHelp(m_osd.showSettings, tr("Show Settings"), tr("Unchecked"),
|
||||
tr("Displays various settings and the current values of those settings, useful for debugging."));
|
||||
|
||||
dialog()->registerWidgetHelp(m_osd.showPatches, tr("Show Patches"), tr("Unchecked"),
|
||||
tr("Shows the amount of currently active patches/cheats on the bottom-right corner of the display."));
|
||||
|
||||
dialog()->registerWidgetHelp(m_osd.showInputs, tr("Show Inputs"), tr("Unchecked"),
|
||||
tr("Shows the current controller state of the system in the bottom-left corner of the display."));
|
||||
|
||||
@ -776,6 +780,9 @@ GraphicsSettingsWidget::GraphicsSettingsWidget(SettingsWindow* settings_dialog,
|
||||
|
||||
dialog()->registerWidgetHelp(m_osd.warnAboutUnsafeSettings, tr("Warn About Unsafe Settings"), tr("Checked"),
|
||||
tr("Displays warnings when settings are enabled which may break games."));
|
||||
|
||||
connect(m_osd.showSettings, &QCheckBox::checkStateChanged, this,
|
||||
&GraphicsSettingsWidget::onOsdShowSettingsToggled);
|
||||
}
|
||||
|
||||
// Recording tab
|
||||
@ -1039,6 +1046,12 @@ void GraphicsSettingsWidget::onEnableVideoCaptureChanged()
|
||||
m_capture.videoCaptureOptions->setEnabled(enabled);
|
||||
}
|
||||
|
||||
void GraphicsSettingsWidget::onOsdShowSettingsToggled()
|
||||
{
|
||||
const bool enabled = dialog()->getEffectiveBoolValue("EmuCore/GS", "OsdShowSettings", false);
|
||||
m_osd.showPatches->setEnabled(enabled);
|
||||
}
|
||||
|
||||
void GraphicsSettingsWidget::onEnableVideoCaptureArgumentsChanged()
|
||||
{
|
||||
const bool enabled = dialog()->getEffectiveBoolValue("EmuCore/GS", "EnableVideoCaptureParameters", false);
|
||||
|
||||
@ -54,6 +54,7 @@ private Q_SLOTS:
|
||||
void onVideoCaptureAutoResolutionChanged();
|
||||
void onEnableAudioCaptureChanged();
|
||||
void onEnableAudioCaptureArgumentsChanged();
|
||||
void onOsdShowSettingsToggled();
|
||||
|
||||
private:
|
||||
GSRendererType getEffectiveRenderer() const;
|
||||
|
||||
@ -740,6 +740,7 @@ struct Pcsx2Config
|
||||
OsdShowGSStats : 1,
|
||||
OsdShowIndicators : 1,
|
||||
OsdShowSettings : 1,
|
||||
OsdshowPatches : 1,
|
||||
OsdShowInputs : 1,
|
||||
OsdShowFrameTimes : 1,
|
||||
OsdShowVersion : 1,
|
||||
|
||||
@ -1082,6 +1082,7 @@ static void HotkeyAdjustUpscaleMultiplier(s32 delta)
|
||||
static void HotkeyToggleOSD()
|
||||
{
|
||||
GSConfig.OsdShowSettings ^= EmuConfig.GS.OsdShowSettings;
|
||||
GSConfig.OsdshowPatches ^= EmuConfig.GS.OsdshowPatches;
|
||||
GSConfig.OsdShowInputs ^= EmuConfig.GS.OsdShowInputs;
|
||||
GSConfig.OsdShowInputRec ^= EmuConfig.GS.OsdShowInputRec;
|
||||
GSConfig.OsdShowVideoCapture ^= EmuConfig.GS.OsdShowVideoCapture;
|
||||
|
||||
@ -3653,6 +3653,11 @@ void FullscreenUI::DrawInterfaceSettingsPage()
|
||||
"OsdShowVideoCapture", true);
|
||||
DrawToggleSetting(bsi, FSUI_ICONSTR(ICON_FA_SLIDERS, "Show Settings"),
|
||||
FSUI_CSTR("Shows the current configuration in the bottom-right corner of the display."), "EmuCore/GS", "OsdShowSettings", false);
|
||||
|
||||
bool show_settings = (bsi->GetBoolValue("EmuCore/GS", "OsdShowSettings", false) == false);
|
||||
DrawToggleSetting(bsi, FSUI_ICONSTR(ICON_FA_HAMMER, "Show Patches"),
|
||||
FSUI_CSTR("Shows the amount of currently active patches/cheats on the bottom-right corner of the display."), "EmuCore/GS",
|
||||
"OsdshowPatches", false, !show_settings);
|
||||
DrawToggleSetting(bsi, FSUI_ICONSTR(ICON_PF_GAMEPAD_ALT, "Show Inputs"),
|
||||
FSUI_CSTR("Shows the current controller state of the system in the bottom-left corner of the display."), "EmuCore/GS",
|
||||
"OsdShowInputs", false);
|
||||
|
||||
@ -19,6 +19,7 @@
|
||||
#include "ImGui/ImGuiOverlays.h"
|
||||
#include "Input/InputManager.h"
|
||||
#include "MTGS.h"
|
||||
#include "Patch.h"
|
||||
#include "PerformanceMetrics.h"
|
||||
#include "Recording/InputRecording.h"
|
||||
#include "SIO/Pad/Pad.h"
|
||||
@ -520,6 +521,12 @@ __ri void ImGuiManager::DrawSettingsOverlay(float scale, float margin, float spa
|
||||
fmt::format_to(std::back_inserter(text), __VA_ARGS__); \
|
||||
} while (0)
|
||||
|
||||
if (Patch::GetAllActivePatchesCount() > 0 && EmuConfig.GS.OsdshowPatches)
|
||||
APPEND("DB={} P={} C={} | ",
|
||||
Patch::GetActiveGameDBPatchesCount(),
|
||||
Patch::GetActivePatchesCount(),
|
||||
Patch::GetActiveCheatsCount());
|
||||
|
||||
if (EmuConfig.Speedhacks.EECycleRate != 0)
|
||||
APPEND("CR={} ", EmuConfig.Speedhacks.EECycleRate);
|
||||
if (EmuConfig.Speedhacks.EECycleSkip != 0)
|
||||
@ -537,12 +544,6 @@ __ri void ImGuiManager::DrawSettingsOverlay(float scale, float margin, float spa
|
||||
EmuConfig.Cpu.Recompiler.GetEEClampMode(), static_cast<unsigned>(EmuConfig.Cpu.VU0FPCR.GetRoundMode()),
|
||||
EmuConfig.Cpu.Recompiler.GetVUClampMode(), EmuConfig.GS.VsyncQueueSize);
|
||||
|
||||
if (EmuConfig.EnableCheats || EmuConfig.EnableWideScreenPatches || EmuConfig.EnableNoInterlacingPatches)
|
||||
{
|
||||
APPEND("C={}{}{} ", EmuConfig.EnableCheats ? "C" : "", EmuConfig.EnableWideScreenPatches ? "W" : "",
|
||||
EmuConfig.EnableNoInterlacingPatches ? "N" : "");
|
||||
}
|
||||
|
||||
if (GSIsHardwareRenderer())
|
||||
{
|
||||
if ((GSConfig.UpscaleMultiplier - std::floor(GSConfig.UpscaleMultiplier)) > 0.01)
|
||||
|
||||
@ -179,6 +179,10 @@ namespace Patch
|
||||
static PatchList s_game_patches;
|
||||
static PatchList s_cheat_patches;
|
||||
|
||||
static u32 s_gamedb_counts = 0;
|
||||
static u32 s_patches_counts = 0;
|
||||
static u32 s_cheats_counts = 0;
|
||||
|
||||
static ActivePatchList s_active_patches;
|
||||
static std::vector<DynamicPatch> s_active_gamedb_dynamic_patches;
|
||||
static std::vector<DynamicPatch> s_active_pnach_dynamic_patches;
|
||||
@ -759,23 +763,22 @@ void Patch::UpdateActivePatches(bool reload_enabled_list, bool verbose, bool ver
|
||||
if (EmuConfig.EnablePatches)
|
||||
{
|
||||
gp_count = EnablePatches(s_gamedb_patches, EnablePatchList(), EnablePatchList());
|
||||
s_gamedb_counts = gp_count;
|
||||
if (gp_count > 0)
|
||||
message.append(TRANSLATE_PLURAL_STR("Patch", "%n GameDB patches are active.", "OSD Message", gp_count));
|
||||
}
|
||||
|
||||
const u32 p_count = EnablePatches(s_game_patches, s_enabled_patches, apply_new_patches ? s_just_enabled_patches : EnablePatchList());
|
||||
s_patches_counts = p_count;
|
||||
if (p_count > 0)
|
||||
{
|
||||
message.append_format("{}{}", message.empty() ? "" : "\n",
|
||||
TRANSLATE_PLURAL_STR("Patch", "%n game patches are active.", "OSD Message", p_count));
|
||||
}
|
||||
|
||||
const u32 c_count = EmuConfig.EnableCheats ? EnablePatches(s_cheat_patches, s_enabled_cheats, apply_new_patches ? s_just_enabled_cheats : EnablePatchList()) : 0;
|
||||
s_cheats_counts = c_count;
|
||||
if (c_count > 0)
|
||||
{
|
||||
message.append_format("{}{}", message.empty() ? "" : "\n",
|
||||
TRANSLATE_PLURAL_STR("Patch", "%n cheat patches are active.", "OSD Message", c_count));
|
||||
}
|
||||
|
||||
// Display message on first boot when we load patches.
|
||||
// Except when it's just GameDB.
|
||||
@ -1090,6 +1093,26 @@ void Patch::ApplyLoadedPatches(patch_place_type place)
|
||||
}
|
||||
}
|
||||
|
||||
u32 Patch::GetActiveGameDBPatchesCount()
|
||||
{
|
||||
return s_gamedb_counts;
|
||||
}
|
||||
|
||||
u32 Patch::GetActivePatchesCount()
|
||||
{
|
||||
return s_patches_counts;
|
||||
}
|
||||
|
||||
u32 Patch::GetActiveCheatsCount()
|
||||
{
|
||||
return s_cheats_counts;
|
||||
}
|
||||
|
||||
u32 Patch::GetAllActivePatchesCount()
|
||||
{
|
||||
return s_gamedb_counts + s_patches_counts + s_cheats_counts;
|
||||
}
|
||||
|
||||
bool Patch::IsGloballyToggleablePatch(const PatchInfo& patch_info)
|
||||
{
|
||||
return patch_info.name == WS_PATCH_NAME || patch_info.name == NI_PATCH_NAME;
|
||||
|
||||
@ -105,5 +105,11 @@ namespace Patch
|
||||
// (this happens at AppCoreThread::ApplySettings(...) )
|
||||
extern void ApplyLoadedPatches(patch_place_type place);
|
||||
|
||||
// Get the total counts of the active game patches.
|
||||
extern u32 GetActiveGameDBPatchesCount();
|
||||
extern u32 GetActivePatchesCount();
|
||||
extern u32 GetActiveCheatsCount();
|
||||
extern u32 GetAllActivePatchesCount();
|
||||
|
||||
extern bool IsGloballyToggleablePatch(const PatchInfo& patch_info);
|
||||
} // namespace Patch
|
||||
@ -734,6 +734,7 @@ Pcsx2Config::GSOptions::GSOptions()
|
||||
OsdShowGSStats = false;
|
||||
OsdShowIndicators = true;
|
||||
OsdShowSettings = false;
|
||||
OsdshowPatches = false;
|
||||
OsdShowInputs = false;
|
||||
OsdShowFrameTimes = false;
|
||||
OsdShowVersion = false;
|
||||
@ -951,6 +952,7 @@ void Pcsx2Config::GSOptions::LoadSave(SettingsWrapper& wrap)
|
||||
SettingsWrapBitBool(OsdShowGSStats);
|
||||
SettingsWrapBitBool(OsdShowIndicators);
|
||||
SettingsWrapBitBool(OsdShowSettings);
|
||||
SettingsWrapBitBool(OsdshowPatches);
|
||||
SettingsWrapBitBool(OsdShowInputs);
|
||||
SettingsWrapBitBool(OsdShowFrameTimes);
|
||||
SettingsWrapBitBool(OsdShowVersion);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user