diff --git a/bin/resources/GameIndex.yaml b/bin/resources/GameIndex.yaml index 84a4ca90519c7..9f6ea98c6db13 100644 --- a/bin/resources/GameIndex.yaml +++ b/bin/resources/GameIndex.yaml @@ -9515,7 +9515,8 @@ SCPS-51012: name: "Gigantic Drive" region: "NTSC-J" gsHWFixes: - autoFlush: 2 # Fixes DOF effect. + autoFlush: 2 # Fixes Depth of Field effect. + halfPixelOffset: 4 # Aligns Depth of Field. SCPS-51013: name: "Torneko's Adventure 3" region: "NTSC-J" @@ -9609,6 +9610,7 @@ SCPS-55014: gsHWFixes: halfPixelOffset: 4 # Corrects positioning of reflections on suit's surfaces. roundSprite: 2 # Reduces garbage on the UI whilst upscaling. + mergeSprite: 1 # Fixes incorrect blur when Round Sprite is enabled. SCPS-55015: name: "Zettai Zetsumei Toshi" region: "NTSC-J" @@ -16651,6 +16653,7 @@ SLES-51399: gsHWFixes: halfPixelOffset: 4 # Corrects positioning of reflections on suit's surfaces. roundSprite: 2 # Reduces garbage on the UI whilst upscaling. + mergeSprite: 1 # Fixes incorrect blur when Round Sprite is enabled. SLES-51400: name: "Tenchu - Wrath of Heaven" region: "PAL-S" @@ -17605,7 +17608,8 @@ SLES-51856: name: "Monster Attack" region: "PAL-E" gsHWFixes: - halfPixelOffset: 4 # Fixes depth of field positioning. + autoFlush: 2 # Fixes Depth of Field effect. + halfPixelOffset: 4 # Aligns Depth of Field. SLES-51859: name: "Billiards Xciting" region: "PAL-E" @@ -25058,8 +25062,9 @@ SLES-54464: region: "PAL-E" compat: 5 gsHWFixes: - halfPixelOffset: 4 # Fixes post processing positioning. - nativeScaling: 1 # Fixes post processing effects caused by upscaling. + autoFlush: 2 # Fixes Depth of Field effect. + halfPixelOffset: 4 # Aligns Depth of Field. + nativeScaling: 1 # Fixes Depth of Field effect. SLES-54465: name: "CSI - 3 Dimensions of Murder" region: "PAL-M5" @@ -28942,8 +28947,9 @@ SLKA-15058: name-sort: "Terra Defence Force, The 2" region: "NTSC-K" gsHWFixes: - halfPixelOffset: 4 # Fixes post processing positioning. - nativeScaling: 1 # Fixes post processing effects caused by upscaling. + autoFlush: 2 # Fixes Depth of Field effect. + halfPixelOffset: 4 # Aligns Depth of Field. + nativeScaling: 1 # Fixes Depth of Field effect. SLKA-15060: name: "Raiden III" region: "NTSC-K" @@ -34109,7 +34115,8 @@ SLPM-62209: name-en: "Gigantic Drive" region: "NTSC-J" gsHWFixes: - autoFlush: 2 # Fixes DOF effect. + autoFlush: 2 # Fixes Depth of Field effect. + halfPixelOffset: 4 # Aligns Depth of Field. SLPM-62211: name: "18WHEELER" name-sort: "18WHEELER" @@ -34728,7 +34735,8 @@ SLPM-62344: name-en: "Simple 2000 Series Vol. 31 - The Chikyuu Boueigun" region: "NTSC-J" gsHWFixes: - halfPixelOffset: 4 # Fixes depth of field positioning. + autoFlush: 2 # Fixes Depth of Field effect. + halfPixelOffset: 4 # Aligns Depth of Field. SLPM-62345: name: "SIMPLE2000シリーズVol.32 THE戦車" name-sort: "しんぷる2000しりーずVol.32 THEせんしゃ" @@ -36269,8 +36277,9 @@ SLPM-62652: region: "NTSC-J" compat: 5 gsHWFixes: - halfPixelOffset: 4 # Fixes depth of field positioning. - nativeScaling: 1 # Fixes post processing effects due to upscaling. + autoFlush: 2 # Fixes Depth of Field effect. + halfPixelOffset: 4 # Aligns Depth of Field. + nativeScaling: 1 # Fixes Depth of Field effect. SLPM-62653: name: "Psikyo Shooting Collection Vol.1 - Strikers 1945 1-2 [Taito The Best]" region: "NTSC-J" @@ -48744,6 +48753,7 @@ SLPM-67524: gsHWFixes: halfPixelOffset: 4 # Corrects positioning of reflections on suit's surfaces. roundSprite: 2 # Reduces garbage on the UI whilst upscaling. + mergeSprite: 1 # Fixes incorrect blur when Round Sprite is enabled. SLPM-67525: name: "Medal of Honor - Frontline" region: "NTSC-K" @@ -52547,6 +52557,7 @@ SLPS-25112: gsHWFixes: halfPixelOffset: 4 # Corrects positioning of reflections on suit's surfaces. roundSprite: 2 # Reduces garbage on the UI whilst upscaling. + mergeSprite: 1 # Fixes incorrect blur when Round Sprite is enabled. SLPS-25113: name: "絶体絶命都市" name-sort: "ぜったいぜつめいとし" @@ -53917,8 +53928,11 @@ SLPS-25361: SLPS-25362: name: "鉄人28号" name-sort: "てつじん28ごう" - name-en: "Tetsujin 28 Go" + name-en: "Tetsujin 28-gō" region: "NTSC-J" + gsHWFixes: + autoFlush: 2 # Fixes Depth of Field effect. + halfPixelOffset: 4 # Aligns Depth of Field. SLPS-25363: name: "桜坂消防隊" name-sort: "さくらざかしょうぼうたい" @@ -56126,12 +56140,17 @@ SLPS-25731: clampModes: eeClampMode: 2 # Fixes Abnormal AI behavior. gsHWFixes: + recommendedBlendingLevel: 3 # Improves sky rendering. textureInsideRT: 1 # Fixes texture corruption. SLPS-25732: name: "ARMORED CORE 3 (ARMORED CORE PREMIUM BOX同梱用)" name-sort: "あーまーどこあ3" name-en: "Armored Core 3" region: "NTSC-J" + gsHWFixes: + halfPixelOffset: 4 # Corrects positioning of reflections on suit's surfaces. + roundSprite: 2 # Reduces garbage on the UI whilst upscaling. + mergeSprite: 1 # Fixes incorrect blur when Round Sprite is enabled. SLPS-25733: name: "スーパーロボット大戦OG ORIGINAL GENERATIONS" name-sort: "すーぱーろぼっとたいせんOG ORIGINAL GENERATIONS" @@ -60301,6 +60320,7 @@ SLUS-20435: gsHWFixes: halfPixelOffset: 4 # Corrects positioning of reflections on suit's surfaces. roundSprite: 2 # Reduces garbage on the UI whilst upscaling. + mergeSprite: 1 # Fixes incorrect blur when Round Sprite is enabled. SLUS-20436: name: "Guilty Gear X2" region: "NTSC-U" @@ -60345,11 +60365,12 @@ SLUS-20444: name: "Tankers" region: "NTSC-U" SLUS-20445: - name: "Robot Alchemic Drive - RAD" + name: "Robot Alchemic Drive - R.A.D." region: "NTSC-U" compat: 5 gsHWFixes: - autoFlush: 2 # Fixes DOF effect. + autoFlush: 2 # Fixes Depth of Field effect. + halfPixelOffset: 4 # Aligns Depth of Field. SLUS-20446: name: "Agassi Tennis Generation" region: "NTSC-U" @@ -69070,10 +69091,11 @@ SLUS-29022: name: "UFC - Throwdown [Regular Demo]" region: "NTSC-U" SLUS-29025: - name: "R.A.D. - Robot Alchemic Drive [Demo]" + name: "Robot Alchemic Drive - R.A.D. [Demo]" region: "NTSC-U" gsHWFixes: - autoFlush: 2 # Fixes DOF effect. + autoFlush: 2 # Fixes Depth of Field effect. + halfPixelOffset: 4 # Aligns Depth of Field. SLUS-29026: name: "MX SuperFly [Demo]" region: "NTSC-U" diff --git a/pcsx2-qt/Settings/AdvancedSettingsWidget.cpp b/pcsx2-qt/Settings/AdvancedSettingsWidget.cpp index bbc9a5f12cc75..4371fca68bbd5 100644 --- a/pcsx2-qt/Settings/AdvancedSettingsWidget.cpp +++ b/pcsx2-qt/Settings/AdvancedSettingsWidget.cpp @@ -65,6 +65,9 @@ AdvancedSettingsWidget::AdvancedSettingsWidget(SettingsWindow* dialog, QWidget* connect(m_ui.savestateCompressionMethod, QOverload::of(&QComboBox::currentIndexChanged), this, &AdvancedSettingsWidget::onSavestateCompressionTypeChanged); + SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.backupSaveStates, "EmuCore", "BackupSavestate", true); + SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.saveStateOnShutdown, "EmuCore", "SaveStateOnShutdown", false); + SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.pineEnable, "EmuCore", "EnablePINE", false); SettingWidgetBinder::BindWidgetToIntSetting(sif, m_ui.pineSlot, "EmuCore", "PINESlot", 28011); @@ -139,6 +142,14 @@ AdvancedSettingsWidget::AdvancedSettingsWidget(SettingsWindow* dialog, QWidget* dialog->registerWidgetHelp(m_ui.savestateCompressionLevel, tr("Savestate Compression Level"), tr("Medium"), tr("Determines the level to be used when compressing savestates.")); + + dialog->registerWidgetHelp(m_ui.saveStateOnShutdown, tr("Save State On Shutdown"), tr("Unchecked"), + tr("Automatically saves the emulator state when powering down or exiting. You can then " + "resume directly from where you left off next time.")); + + dialog->registerWidgetHelp(m_ui.backupSaveStates, tr("Create Save State Backups"), tr("Checked"), + //: Do not translate the ".backup" extension. + tr("Creates a backup copy of a save state if it already exists when the save is created. The backup copy has a .backup suffix.")); } AdvancedSettingsWidget::~AdvancedSettingsWidget() = default; diff --git a/pcsx2-qt/Settings/AdvancedSettingsWidget.ui b/pcsx2-qt/Settings/AdvancedSettingsWidget.ui index 7a8c20a165bb7..054730063b189 100644 --- a/pcsx2-qt/Settings/AdvancedSettingsWidget.ui +++ b/pcsx2-qt/Settings/AdvancedSettingsWidget.ui @@ -7,7 +7,7 @@ 0 0 809 - 725 + 602 @@ -32,9 +32,9 @@ 0 - -272 + 0 790 - 997 + 1023 @@ -416,6 +416,91 @@ + + + + Savestate Settings + + + + + + Compression Method: + + + + + + + + Low (Fast) + + + + + Medium (Recommended) + + + + + High + + + + + Very High (Slow, Not Recommended) + + + + + + + + + Uncompressed + + + + + Deflate64 + + + + + Zstandard + + + + + LZMA2 + + + + + + + + Compression Level: + + + + + + + Create Save State Backups + + + + + + + Save State On Shutdown + + + + + + @@ -471,77 +556,6 @@ - - - - Savestate Settings - - - - - - Compression Level: - - - - - - - Compression Method: - - - - - - - - Uncompressed - - - - - Deflate64 - - - - - Zstandard - - - - - LZMA2 - - - - - - - - - Low (Fast) - - - - - Medium (Recommended) - - - - - High - - - - - Very High (Slow, Not Recommended) - - - - - - - diff --git a/pcsx2-qt/Settings/InterfaceSettingsWidget.cpp b/pcsx2-qt/Settings/InterfaceSettingsWidget.cpp index ca72a8cd13b64..ff2e59041777b 100644 --- a/pcsx2-qt/Settings/InterfaceSettingsWidget.cpp +++ b/pcsx2-qt/Settings/InterfaceSettingsWidget.cpp @@ -76,10 +76,8 @@ InterfaceSettingsWidget::InterfaceSettingsWidget(SettingsWindow* dialog, QWidget SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.inhibitScreensaver, "EmuCore", "InhibitScreensaver", true); SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.confirmShutdown, "UI", "ConfirmShutdown", true); - SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.saveStateOnShutdown, "EmuCore", "SaveStateOnShutdown", false); SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.pauseOnFocusLoss, "UI", "PauseOnFocusLoss", false); SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.pauseOnControllerDisconnection, "UI", "PauseOnControllerDisconnection", false); - SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.backupSaveStates, "EmuCore", "BackupSavestate", true); SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.discordPresence, "EmuCore", "EnableDiscordPresence", false); SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.startFullscreen, "UI", "StartFullscreen", false); @@ -143,9 +141,6 @@ InterfaceSettingsWidget::InterfaceSettingsWidget(SettingsWindow* dialog, QWidget m_ui.confirmShutdown, tr("Confirm Shutdown"), tr("Checked"), tr("Determines whether a prompt will be displayed to confirm shutting down the virtual machine " "when the hotkey is pressed.")); - dialog->registerWidgetHelp(m_ui.saveStateOnShutdown, tr("Save State On Shutdown"), tr("Unchecked"), - tr("Automatically saves the emulator state when powering down or exiting. You can then " - "resume directly from where you left off next time.")); dialog->registerWidgetHelp(m_ui.pauseOnStart, tr("Pause On Start"), tr("Unchecked"), tr("Pauses the emulator when a game is started.")); dialog->registerWidgetHelp(m_ui.pauseOnFocusLoss, tr("Pause On Focus Loss"), tr("Unchecked"), @@ -153,9 +148,6 @@ InterfaceSettingsWidget::InterfaceSettingsWidget(SettingsWindow* dialog, QWidget "and unpauses when you switch back.")); dialog->registerWidgetHelp(m_ui.pauseOnControllerDisconnection, tr("Pause On Controller Disconnection"), tr("Unchecked"), tr("Pauses the emulator when a controller with bindings is disconnected.")); - dialog->registerWidgetHelp(m_ui.backupSaveStates, tr("Create Save State Backups"), tr("Checked"), - //: Do not translate the ".backup" extension. - tr("Creates a backup copy of a save state if it already exists when the save is created. The backup copy has a .backup suffix.")); dialog->registerWidgetHelp(m_ui.startFullscreen, tr("Start Fullscreen"), tr("Unchecked"), tr("Automatically switches to fullscreen mode when a game is started.")); dialog->registerWidgetHelp(m_ui.hideMouseCursor, tr("Hide Cursor In Fullscreen"), tr("Unchecked"), diff --git a/pcsx2-qt/Settings/InterfaceSettingsWidget.ui b/pcsx2-qt/Settings/InterfaceSettingsWidget.ui index f59ba668ae558..f42b72f094890 100644 --- a/pcsx2-qt/Settings/InterfaceSettingsWidget.ui +++ b/pcsx2-qt/Settings/InterfaceSettingsWidget.ui @@ -7,7 +7,7 @@ 0 0 698 - 494 + 512 @@ -24,18 +24,11 @@ 0 - + Behaviour - - - - Save State On Shutdown - - - @@ -50,17 +43,17 @@ - - + + - Pause On Start + Enable Discord Presence - - + + - Pause On Focus Loss + Pause On Start @@ -71,17 +64,10 @@ - - - - Enable Discord Presence - - - - - + + - Create Save State Backups + Pause On Focus Loss @@ -89,7 +75,7 @@ - + Game Display @@ -146,7 +132,7 @@ - + Language: @@ -156,7 +142,7 @@ - + Theme: @@ -182,14 +168,14 @@ - + Update Channel: - + Current Version: @@ -199,7 +185,7 @@ - + diff --git a/pcsx2-qt/Translations/pcsx2-qt_en.ts b/pcsx2-qt/Translations/pcsx2-qt_en.ts index f876e1470c737..181e5d5d0d305 100644 --- a/pcsx2-qt/Translations/pcsx2-qt_en.ts +++ b/pcsx2-qt/Translations/pcsx2-qt_en.ts @@ -718,288 +718,311 @@ Leaderboard Position: {1} of {2} - + Rounding Mode - - + + Chop/Zero (Default) - + Changes how PCSX2 handles rounding while emulating the Emotion Engine's Floating Point Unit (EE FPU). Because the various FPUs in the PS2 are non-compliant with international standards, some games may need different modes to do math correctly. The default value handles the vast majority of games; <b>modifying this setting when a game is not having a visible problem can cause instability.</b> - + Division Rounding Mode - + Nearest (Default) - + Determines how the results of floating-point division are rounded. Some games need specific settings; <b>modifying this setting when a game is not having a visible problem can cause instability.</b> - + Clamping Mode - - - + + + Normal (Default) - + Changes how PCSX2 handles keeping floats in a standard x86 range. The default value handles the vast majority of games; <b>modifying this setting when a game is not having a visible problem can cause instability.</b> - - + + Enable Recompiler - - - + + - - + + - - + + + + Checked - + Performs just-in-time binary translation of 64-bit MIPS-IV machine code to x86. - + Wait Loop Detection Wait loop: When the game makes the CPU do nothing (loop/spin) while it waits for something to happen (usually an interrupt). - + Moderate speedup for some games, with no known side effects. - + Enable Cache (Slow) - - - + + + + Unchecked - + Interpreter only, provided for diagnostic. - + INTC Spin Detection INTC = Name of a PS2 register, leave as-is. "spin" = to make a cpu (or gpu) actively do nothing while you wait for something. Like spinning in a circle, you're moving but not actually going anywhere. - + Huge speedup for some games, with almost no compatibility side effects. - + Enable Fast Memory Access - + Uses backpatching to avoid register flushing on every memory access. "Backpatching" = To edit previously generated code to change what it does (in this case, we generate direct memory accesses, then backpatch them to jump to a fancier handler function when we realize they need the fancier handler function) - + Pause On TLB Miss - + Pauses the virtual machine when a TLB miss occurs, instead of ignoring it and continuing. Note that the VM will pause after the end of the block, not on the instruction which caused the exception. Refer to the console to see the address where the invalid access occurred. - + Enable 128MB RAM (Dev Console) - + Exposes an additional 96MB of memory to the virtual machine. - + VU0 Rounding Mode - + Changes how PCSX2 handles rounding while emulating the Emotion Engine's Vector Unit 0 (EE VU0). The default value handles the vast majority of games; <b>modifying this setting when a game is not having a visible problem will cause stability issues and/or crashes.</b> - + VU1 Rounding Mode - + Changes how PCSX2 handles rounding while emulating the Emotion Engine's Vector Unit 1 (EE VU1). The default value handles the vast majority of games; <b>modifying this setting when a game is not having a visible problem will cause stability issues and/or crashes.</b> - + VU0 Clamping Mode - + Changes how PCSX2 handles keeping floats in a standard x86 range in the Emotion Engine's Vector Unit 0 (EE VU0). The default value handles the vast majority of games; <b>modifying this setting when a game is not having a visible problem can cause instability.</b> - + VU1 Clamping Mode - + Changes how PCSX2 handles keeping floats in a standard x86 range in the Emotion Engine's Vector Unit 1 (EE VU1). The default value handles the vast majority of games; <b>modifying this setting when a game is not having a visible problem can cause instability.</b> - + Enable Instant VU1 - + Runs VU1 instantly. Provides a modest speed improvement in most games. Safe for most games, but a few games may exhibit graphical errors. - + Enable VU0 Recompiler (Micro Mode) VU0 = Vector Unit 0. One of the PS2's processors. - + Enables VU0 Recompiler. - + Enable VU1 Recompiler VU1 = Vector Unit 1. One of the PS2's processors. - + Enables VU1 Recompiler. - + mVU Flag Hack mVU = PCSX2's recompiler for VU (Vector Unit) code (full name: microVU) - + Good speedup and high compatibility, may cause graphical errors. - + Performs just-in-time binary translation of 32-bit MIPS-I machine code to x86. - + Enable Game Fixes - + Automatically loads and applies fixes to known problematic games on game start. - + Enable Compatibility Patches - + Automatically loads and applies compatibility patches to known problematic games. - + Savestate Compression Method - + Zstandard - + Determines the algorithm to be used when compressing savestates. - + Savestate Compression Level - + Medium - + Determines the level to be used when compressing savestates. + + + Save State On Shutdown + + + + + Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. + + + + + Create Save State Backups + + + + + Creates a backup copy of a save state if it already exists when the save is created. The backup copy has a .backup suffix. + Do not translate the ".backup" extension. + + AdvancedSystemSettingsWidget @@ -1213,29 +1236,39 @@ Leaderboard Position: {1} of {2} - + + Create Save State Backups + + + + + Save State On Shutdown + + + + Frame Rate Control - - + + hz hz=Hertz, as in the measuring unit. Shown after the corresponding number. Those languages who'd need to remove the space or do something in between should do so. - + PAL Frame Rate: - + NTSC Frame Rate: - + Savestate Settings @@ -1245,62 +1278,62 @@ Leaderboard Position: {1} of {2} - + Compression Method: - + Uncompressed - + Deflate64 - + Zstandard - + LZMA2 - + Low (Fast) - + Medium (Recommended) - + High - + Very High (Slow, Not Recommended) - + PINE Settings - + Slot: - + Enable @@ -13684,7 +13717,7 @@ Swap chain: see Microsoft's Terminology Portal. - + Save slot {0} selected ({1}). @@ -13722,43 +13755,48 @@ Swap chain: see Microsoft's Terminology Portal. - + Save state selector is unavailable without a valid game serial. - + Load - + Save - + Select Previous - + Select Next - - + + Close Menu + + + + + Save Slot {0} - + No save present in this slot. - + no save yet @@ -14097,132 +14135,120 @@ Right click to clear binding - - + + Pause On Focus Loss - - - - Inhibit Screensaver - - - - Save State On Shutdown + + Inhibit Screensaver - + Pause On Start - - + + Confirm Shutdown - - - Create Save State Backups - - - - - + + Enable Discord Presence - - + + Pause On Controller Disconnection - + Game Display - - + + Start Fullscreen - - + + Double-Click Toggles Fullscreen - - + + Render To Separate Window - - + + Hide Main Window When Running - - + + Disable Window Resizing - - + + Hide Cursor In Fullscreen - + Preferences - + Language: - + Theme: - + Automatic Updater - + Update Channel: - + Current Version: - - + + Enable Automatic Update Check - + Check for Updates... @@ -14322,66 +14348,59 @@ Right click to clear binding - - - - - + + + + Checked - + Automatically checks for updates to the program on startup. Updates can be deferred until later or skipped entirely. - + %1 (%2) Variable %1 shows the version number and variable %2 shows a timestamp. - + Prevents the screen saver from activating and the host from sleeping while emulation is running. - + Determines whether a prompt will be displayed to confirm shutting down the virtual machine when the hotkey is pressed. - - Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time. - - - - + Pauses the emulator when a controller with bindings is disconnected. - + Allows switching in and out of fullscreen mode by double-clicking the game window. - + Prevents the main window from being resized. + - + - + + - - - - - + + Unchecked @@ -14391,43 +14410,37 @@ Right click to clear binding - + Pauses the emulator when a game is started. - + Pauses the emulator when you minimize the window or switch to another application, and unpauses when you switch back. - - Creates a backup copy of a save state if it already exists when the save is created. The backup copy has a .backup suffix. - Do not translate the ".backup" extension. - - - - + Automatically switches to fullscreen mode when a game is started. - + Hides the mouse pointer/cursor when the emulator is in fullscreen mode. - + Renders the game to a separate window, instead of the main window. If unchecked, the game will display over the top of the game list. - + Hides the main window (with the game list) when a game is running, requires Render To Separate Window to be enabled. - + Shows the game you are currently playing as part of your profile in Discord. diff --git a/pcsx2/ImGui/ImGuiOverlays.cpp b/pcsx2/ImGui/ImGuiOverlays.cpp index af7515497937e..1922e079c5d96 100644 --- a/pcsx2/ImGui/ImGuiOverlays.cpp +++ b/pcsx2/ImGui/ImGuiOverlays.cpp @@ -766,6 +766,7 @@ namespace SaveStateSelectorUI static std::string s_save_legend; static std::string s_prev_legend; static std::string s_next_legend; + static std::string s_close_legend; static std::array s_slots; static std::atomic_int32_t s_current_slot{0}; @@ -817,6 +818,7 @@ void SaveStateSelectorUI::Close() s_save_legend = {}; s_prev_legend = {}; s_next_legend = {}; + s_close_legend = {}; } void SaveStateSelectorUI::RefreshList(const std::string& serial, u32 crc) @@ -878,6 +880,8 @@ void SaveStateSelectorUI::RefreshHotkeyLegend() TRANSLATE_STR("ImGuiOverlays", "Select Previous")); s_next_legend = format_legend_entry(Host::GetSmallStringSettingValue("Hotkeys", "NextSaveStateSlot"), TRANSLATE_STR("ImGuiOverlays", "Select Next")); + s_close_legend = format_legend_entry(Host::GetSmallStringSettingValue("Hotkeys", "OpenPauseMenu"), + TRANSLATE_STR("ImGuiOverlays", "Close Menu")); } void SaveStateSelectorUI::SelectNextSlot(bool open_selector) @@ -965,9 +969,9 @@ void SaveStateSelectorUI::Draw() const auto& io = ImGui::GetIO(); const float scale = ImGuiManager::GetGlobalScale(); const float width = (600.0f * scale); - const float height = (420.0f * scale); + const float height = (430.0f * scale); - const float padding_and_rounding = 15.0f * scale; + const float padding_and_rounding = 10.0f * scale; ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, padding_and_rounding); ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(padding_and_rounding, padding_and_rounding)); ImGui::PushStyleColor(ImGuiCol_WindowBg, ImVec4(0.11f, 0.15f, 0.17f, 0.8f)); @@ -980,7 +984,7 @@ void SaveStateSelectorUI::Draw() ImGuiWindowFlags_NoScrollbar)) { // Leave 2 lines for the legend - const float legend_margin = ImGui::GetFontSize() * 2.0f + ImGui::GetStyle().ItemSpacing.y * 3.0f; + const float legend_margin = ImGui::GetFontSize() * 3.0f + ImGui::GetStyle().ItemSpacing.y * 3.0f; const float padding = 10.0f * scale; ImGui::BeginChild("##item_list", ImVec2(0, -legend_margin), false, @@ -1074,6 +1078,8 @@ void SaveStateSelectorUI::Draw() ImGui::TextUnformatted(s_save_legend.c_str()); ImGui::TableNextColumn(); ImGui::TextUnformatted(s_next_legend.c_str()); + ImGui::TableNextColumn(); + ImGui::TextUnformatted(s_close_legend.c_str()); ImGui::EndTable(); }