Compare commits

...

10 Commits

Author SHA1 Message Date
dependabot[bot]
9d1fd23d78 Bump the ci-deps group with 2 updates
Bumps the ci-deps group with 2 updates: [flatpak/flatpak-github-actions](https://github.com/flatpak/flatpak-github-actions) and [actions/setup-node](https://github.com/actions/setup-node).


Updates `flatpak/flatpak-github-actions` from 6.5 to 6.6
- [Release notes](https://github.com/flatpak/flatpak-github-actions/releases)
- [Commits](https://github.com/flatpak/flatpak-github-actions/compare/v6.5...92ae9851ad316786193b1fd3f40c4b51eb5cb101)

Updates `actions/setup-node` from 5 to 6
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v5...v6)

---
updated-dependencies:
- dependency-name: flatpak/flatpak-github-actions
  dependency-version: '6.6'
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci-deps
- dependency-name: actions/setup-node
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: ci-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-21 11:44:24 -04:00
TellowKrinkle
9ff575377d GHActions: Reduce ccache max size
Reduces the amount of GH cache quota they take up.

[ci skip]
2025-10-21 11:43:37 -04:00
JordanTheToaster
47250293cd Mac OS: Use Xcode 26.0.1 2025-10-20 19:01:03 -04:00
JordanTheToaster
f9b346521d Mac OS: Bump runner to Mac OS 26 2025-10-20 19:01:03 -04:00
TheTechnician27
b5a4c71eff RTC: Add option to choose between system locale and yyyy-MM-dd HH:mm:ss 2025-10-20 18:20:41 +02:00
JordanTheToaster
2604256424 GameDB: Various fixes 2025-10-20 17:49:22 +02:00
chaoticgd
906ac6a8ea Patch: Fix some incorrect format strings 2025-10-20 15:38:33 +02:00
TheTechnician27
3db21e0579 FSUI: Remove defunct option and move OSD position options 2025-10-19 22:29:31 -05:00
PCSX2 Bot
abd03884de [ci skip] Qt: Update Base Translation. 2025-10-19 20:02:42 -05:00
TheLastRar
a159256b07 FSUI: Allow specifying default button in message dialogs 2025-10-18 02:26:09 +02:00
16 changed files with 1100 additions and 1045 deletions

View File

@@ -129,7 +129,7 @@ jobs:
- name: Push to Flathub (beta)
if: ${{ inputs.publish == true && (inputs.stableBuild == false || inputs.stableBuild == 'false') }}
uses: flatpak/flatpak-github-actions/flat-manager@10a3c29f0162516f0f68006be14c92f34bd4fa6c
uses: flatpak/flatpak-github-actions/flat-manager@92ae9851ad316786193b1fd3f40c4b51eb5cb101
with:
flat-manager-url: https://hub.flathub.org/
repository: beta
@@ -138,7 +138,7 @@ jobs:
- name: Push to Flathub (stable)
if: ${{ inputs.publish == true && (inputs.stableBuild == true || inputs.stableBuild == 'true') }}
uses: flatpak/flatpak-github-actions/flat-manager@10a3c29f0162516f0f68006be14c92f34bd4fa6c
uses: flatpak/flatpak-github-actions/flat-manager@92ae9851ad316786193b1fd3f40c4b51eb5cb101
with:
flat-manager-url: https://hub.flathub.org/
repository: stable

View File

@@ -55,7 +55,7 @@ jobs:
CCACHE_DIR: ${{ github.workspace }}/.ccache
CCACHE_COMPRESS: true
CCACHE_COMPRESSLEVEL: 9
CCACHE_MAXSIZE: 500M
CCACHE_MAXSIZE: 100M
steps:
- name: Checkout Repository

View File

@@ -12,7 +12,7 @@ on:
os:
required: false
type: string
default: macos-15
default: macos-26
patchesUrl:
required: false
type: string
@@ -42,7 +42,7 @@ jobs:
CCACHE_DIR: ${{ github.workspace }}/.ccache
CCACHE_COMPRESS: true
CCACHE_COMPRESSLEVEL: 9
CCACHE_MAXSIZE: 500M
CCACHE_MAXSIZE: 100M
# Only way to use a secret in an if statement
SIGN_KEY: ${{ secrets.APPLE_SIGN_P12_B64 }}
@@ -62,8 +62,8 @@ jobs:
echo "#define DEFAULT_UPDATER_CHANNEL \"stable\"" > ./pcsx2-qt/DefaultUpdaterChannel.h
cat ./pcsx2-qt/DefaultUpdaterChannel.h
- name: Use Xcode 16.4
run: sudo xcode-select -s /Applications/Xcode_16.4.app
- name: Use Xcode 26.0.1
run: sudo xcode-select -s /Applications/Xcode_26.0.1.app
- name: Prepare Artifact Metadata
id: artifact-metadata

View File

@@ -203,7 +203,7 @@ jobs:
echo "TAG_VAL=${TAG_VAL}"
gh release edit ${TAG_VAL} --draft=false --repo PCSX2/pcsx2
- uses: actions/setup-node@v5
- uses: actions/setup-node@v6
with:
node-version: 22

View File

@@ -1840,6 +1840,8 @@ SCAJ-20095:
region: "NTSC-Unk"
gameFixes:
- EETimingHack
gsHWFixes:
halfPixelOffset: 4 # Aligns shadows to prevent artefacts.
SCAJ-20096:
name: "Guilty Gear Isuka"
region: "NTSC-Unk"
@@ -3821,9 +3823,13 @@ SCED-52491:
SCED-52496:
name: "This Is Football 2004 [Demo]"
region: "PAL-M4"
gsHWFixes:
PCRTCOffsets: 1 # Fixes boot videos screen size.
SCED-52497:
name: "This Is Football 2004 [Demo]"
region: "PAL-M4"
gsHWFixes:
PCRTCOffsets: 1 # Fixes boot videos screen size.
SCED-52549:
name: "Official PlayStation 2 Magazine Demo 47"
region: "PAL-M5"
@@ -5391,18 +5397,28 @@ SCES-51608:
SCES-51610:
name: "This is Football 2004 [Red Devils 2004]"
region: "PAL-BE"
gsHWFixes:
PCRTCOffsets: 1 # Fixes boot videos screen size.
SCES-51611:
name: "This is Football 2004"
region: "PAL-M4"
gsHWFixes:
PCRTCOffsets: 1 # Fixes boot videos screen size.
SCES-51612:
name: "This is Football 5"
name: "This Is Football 2004"
region: "PAL-E-N"
gsHWFixes:
PCRTCOffsets: 1 # Fixes boot videos screen size.
SCES-51613:
name: "This is Football 2004"
region: "PAL-M4"
gsHWFixes:
PCRTCOffsets: 1 # Fixes boot videos screen size.
SCES-51614:
name: "Monde des Bleus 2004, Le - Nouvelle Generation"
region: "PAL-F"
gsHWFixes:
PCRTCOffsets: 1 # Fixes boot videos screen size.
SCES-51618:
name: "SOCOM - U.S. Navy SEALs"
region: "PAL-M5"
@@ -11908,6 +11924,8 @@ SCUS-97362:
SCUS-97365:
name: "World Tour Soccer 2005"
region: "NTSC-U"
gsHWFixes:
PCRTCOffsets: 1 # Fixes boot videos screen size.
SCUS-97366:
name: "SOCOM II - U.S. Navy SEALs [Public Beta v1.0]"
region: "NTSC-U"
@@ -12011,6 +12029,8 @@ SCUS-97395:
SCUS-97396:
name: "World Tour Soccer 2005 [Demo]"
region: "NTSC-U"
gsHWFixes:
PCRTCOffsets: 1 # Fixes boot videos screen size.
SCUS-97397:
name: "Syphon Filter - The Omega Strain"
region: "NTSC-U"
@@ -19970,6 +19990,10 @@ SLES-52342:
name: "Worms Forts - Under Siege"
region: "PAL-E-F"
compat: 5
gameFixes:
- BlitInternalFPSHack # Fixes internal FPS detection.
gsHWFixes:
PCRTCOverscan: 1 # Centers game output.
SLES-52343:
name: "Midway Arcade Treasures"
region: "PAL-E"
@@ -21168,6 +21192,10 @@ SLES-52733:
SLES-52734:
name: "Worms Forts - Under Siege"
region: "PAL-M5"
gameFixes:
- BlitInternalFPSHack # Fixes internal FPS detection.
gsHWFixes:
PCRTCOverscan: 1 # Centers game output.
SLES-52737:
name: "Obscure"
region: "PAL-E"
@@ -23268,6 +23296,8 @@ SLES-53458:
name: "Shin Megami Tensei - Digital Devil Saga"
region: "PAL-E"
compat: 5
gsHWFixes:
halfPixelOffset: 4 # Aligns shadows to prevent artefacts.
SLES-53459:
name: "Marc Ecko's Getting Up - Contents Under Pressure"
region: "PAL-M5"
@@ -32381,6 +32411,8 @@ SLKA-25300:
compat: 5
gameFixes:
- EETimingHack
gsHWFixes:
halfPixelOffset: 4 # Aligns shadows to prevent artefacts.
SLKA-25301:
name: "디지털 데빌 사가: 아바탈 튜너 2" # Undumped on ReDump as of 2025-08-28
name-en: "Digital Devil Saga - Avatar Tuner 2"
@@ -44249,6 +44281,8 @@ SLPM-65597:
region: "NTSC-J"
gameFixes:
- EETimingHack
gsHWFixes:
halfPixelOffset: 4 # Aligns shadows to prevent artefacts.
SLPM-65598:
name: "転生學園 幻蒼録"
name-sort: "てんしょうがくえん げんそうろく"
@@ -48995,6 +49029,8 @@ SLPM-66372:
region: "NTSC-J"
gameFixes:
- EETimingHack
gsHWFixes:
halfPixelOffset: 4 # Aligns shadows to prevent artefacts.
SLPM-66373:
name: "DIGITAL DEVIL SAGA アバタール・チューナー2 [ATLUS BEST COLLECTION]"
name-sort: "でじたるでびるさーが あばたーるちゅーなー2 [ATLUS BEST COLLECTION]"
@@ -68653,6 +68689,8 @@ SLUS-20974:
name: "Shin Megami Tensei - Digital Devil Saga"
region: "NTSC-U"
compat: 5
gsHWFixes:
halfPixelOffset: 4 # Aligns shadows to prevent artefacts.
SLUS-20975:
name: "One Piece - Grand Battle"
region: "NTSC-U"
@@ -69376,6 +69414,8 @@ SLUS-21093:
name: "Worms Forts - Under Siege"
region: "NTSC-U"
compat: 5
gameFixes:
- BlitInternalFPSHack # Fixes internal FPS detection.
SLUS-21094:
name: "Midway Arcade Treasures 3"
region: "NTSC-U"
@@ -73867,7 +73907,7 @@ SLUS-21831:
region: "NTSC-U"
compat: 5
SLUS-21834:
name: "Goosebumps Horrorland - Happy Halloween"
name: "Goosebumps Horrorland"
region: "NTSC-U"
compat: 5
clampModes:
@@ -74623,6 +74663,8 @@ SLUS-28046:
SLUS-28049:
name: "Shin Megami Tensei - Digital Devil Saga [Trade Demo]"
region: "NTSC-U"
gsHWFixes:
halfPixelOffset: 4 # Aligns shadows to prevent artefacts.
SLUS-28050:
name: "Stella Deus - The Gate of Eternity [Trade Demo]"
region: "NTSC-U"
@@ -75524,7 +75566,9 @@ TCES-10001:
region: "PAL-E"
TCES-51613:
name: "This Is Football 2004 Beta Trial Code"
region: "PAL-E-S"
region: "PAL-E"
gsHWFixes:
PCRTCOffsets: 1 # Fixes boot videos screen size.
TCES-51904:
name: "SOCOM II - U.S. Navy SEALs Beta Trial Code"
region: "PAL-M5"

View File

@@ -51,7 +51,10 @@ EmulationSettingsWidget::EmulationSettingsWidget(SettingsWindow* settings_dialog
m_ui.rtcDateTime->setDateRange(QDate(2000, 1, 1), QDate(2099, 12, 31));
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.manuallySetRealTimeClock, "EmuCore", "ManuallySetRealTimeClock", false);
connect(m_ui.manuallySetRealTimeClock, &QCheckBox::checkStateChanged, this, &EmulationSettingsWidget::onManuallySetRealTimeClockChanged);
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.rtcUseSystemLocaleFormat, "EmuCore", "UseSystemLocaleFormat", false);
connect(m_ui.rtcUseSystemLocaleFormat, &QCheckBox::checkStateChanged, this, &EmulationSettingsWidget::onUseSystemLocaleFormatChanged);
EmulationSettingsWidget::onManuallySetRealTimeClockChanged();
EmulationSettingsWidget::onUseSystemLocaleFormatChanged();
m_ui.eeCycleRate->insertItem(0,
tr("Use Global Setting [%1]")
@@ -159,10 +162,12 @@ EmulationSettingsWidget::EmulationSettingsWidget(SettingsWindow* settings_dialog
dialog()->registerWidgetHelp(m_ui.manuallySetRealTimeClock, tr("Manually Set Real-Time Clock"), tr("Unchecked"),
tr("Manually set a real-time clock to use for the virtual PlayStation 2 instead of using your OS' system clock."));
dialog()->registerWidgetHelp(m_ui.rtcDateTime, tr("Real-Time Clock"), tr("Current date and time"),
tr("Real-time clock (RTC) used by the virtual PlayStation 2. Date format is the same as the one used by your OS. "
"This time is only applied upon booting the PS2; changing it while in-game will have no effect. "
"NOTE: This assumes you have your PS2 set to the default timezone of GMT+0 and default DST of Summer Time. "
tr("Real-time clock (RTC) used by the virtual PlayStation 2.<br>"
"This time is only applied upon booting the PS2; changing it while in-game will have no effect.<br>"
"NOTE: This assumes you have your PS2 set to the default timezone of GMT+0 and default DST of Summer Time.<br>"
"Some games require an RTC date/time set after their release date."));
dialog()->registerWidgetHelp(m_ui.rtcUseSystemLocaleFormat, tr("Use System Locale Format"), tr("User Preference"),
tr("Uses the operating system's date/time format rather than \"yyyy-MM-dd HH:mm:ss\". May exclude seconds."));
updateOptimalFramePacing();
updateUseVSyncForTimingEnabled();
@@ -314,4 +319,11 @@ void EmulationSettingsWidget::onManuallySetRealTimeClockChanged()
{
const bool enabled = dialog()->getEffectiveBoolValue("EmuCore", "ManuallySetRealTimeClock", false);
m_ui.rtcDateTime->setEnabled(enabled);
m_ui.rtcUseSystemLocaleFormat->setEnabled(enabled);
}
void EmulationSettingsWidget::onUseSystemLocaleFormatChanged()
{
const bool enabled = dialog()->getEffectiveBoolValue("EmuCore", "UseSystemLocaleFormat", false);
m_ui.rtcDateTime->setDisplayFormat(enabled ? QLocale::system().dateTimeFormat(QLocale::ShortFormat) : "yyyy-MM-dd HH:mm:ss");
}

View File

@@ -24,6 +24,7 @@ private:
void updateOptimalFramePacing();
void updateUseVSyncForTimingEnabled();
void onManuallySetRealTimeClockChanged();
void onUseSystemLocaleFormatChanged();
Ui::EmulationSettingsWidget m_ui;
};

View File

@@ -266,6 +266,13 @@
<item row="0" column="1">
<widget class="QDateTimeEdit" name="rtcDateTime"/>
</item>
<item row="1" column="0">
<widget class="QCheckBox" name="rtcUseSystemLocaleFormat">
<property name="text">
<string>Use System Locale Format</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>

File diff suppressed because it is too large Load Diff

View File

@@ -1943,7 +1943,7 @@ void Achievements::ConfirmHardcoreModeDisableAsync(const char* trigger, std::fun
fmt::format(TRANSLATE_FS("Achievements", "{0} cannot be performed while hardcore mode is active. Do you "
"want to disable hardcore mode? {0} will be cancelled if you select No."),
trigger),
std::move(real_callback), fmt::format(ICON_FA_CHECK " {}", TRANSLATE_SV("Achievements", "Yes")),
std::move(real_callback), true, fmt::format(ICON_FA_CHECK " {}", TRANSLATE_SV("Achievements", "Yes")),
fmt::format(ICON_FA_XMARK " {}", TRANSLATE_SV("Achievements", "No")));
});
}

View File

@@ -1315,6 +1315,7 @@ struct Pcsx2Config
BackupSavestate : 1,
McdFolderAutoManage : 1,
ManuallySetRealTimeClock : 1,
UseSystemLocaleFormat : 1, // presents OS time format instead of yyyy-MM-dd HH:mm:ss for manual RTC
HostFs : 1,

View File

@@ -1394,10 +1394,7 @@ void FullscreenUI::ConfirmShutdownIfMemcardBusy(std::function<void(bool)> callba
"WARNING: Shutting down now can IRREVERSIBLY CORRUPT YOUR MEMORY CARD.\n\n"
"You are strongly advised to select 'No' and let the save finish.\n\n"
"Do you want to shutdown anyway and IRREVERSIBLY CORRUPT YOUR MEMORY CARD?"),
[callback = std::move(callback)](bool result) {
callback(!result);
},
FSUI_ICONSTR(ICON_FA_XMARK, "No"), FSUI_ICONSTR(ICON_FA_CHECK, "Yes"));
std::move(callback), false);
}
bool FullscreenUI::ShouldDefaultToGameList()
@@ -3624,10 +3621,30 @@ void FullscreenUI::DrawInterfaceSettingsPage()
MenuHeading(FSUI_CSTR("On-Screen Display"));
DrawIntSpinBoxSetting(bsi, FSUI_ICONSTR(ICON_FA_MAGNIFYING_GLASS, "OSD Scale"),
FSUI_CSTR("Determines how large the on-screen messages and monitor are."), "EmuCore/GS", "OsdScale", 100, 25, 500, 1, FSUI_CSTR("%d%%"));
DrawToggleSetting(bsi, FSUI_ICONSTR(ICON_FA_LIST, "Show Messages"),
FSUI_CSTR(
"Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc."),
"EmuCore/GS", "OsdShowMessages", true);
// OSD Positioning Options
static constexpr const char* s_osd_position_options[] = {
FSUI_NSTR("None"),
FSUI_NSTR("Top Left"),
FSUI_NSTR("Top Center"),
FSUI_NSTR("Top Right"),
FSUI_NSTR("Center Left"),
FSUI_NSTR("Center"),
FSUI_NSTR("Center Right"),
FSUI_NSTR("Bottom Left"),
FSUI_NSTR("Bottom Center"),
FSUI_NSTR("Bottom Right"),
};
static constexpr const char* s_osd_position_values[] = {
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"
};
DrawStringListSetting(bsi, FSUI_ICONSTR(ICON_FA_COMMENT, "OSD Messages Position"),
FSUI_CSTR("Determines where on-screen display messages are positioned."), "EmuCore/GS", "OsdMessagesPos", "1",
s_osd_position_options, s_osd_position_values, std::size(s_osd_position_options), true);
DrawStringListSetting(bsi, FSUI_ICONSTR(ICON_FA_CHART_BAR, "OSD Performance Position"),
FSUI_CSTR("Determines where performance statistics are positioned."), "EmuCore/GS", "OsdPerformancePos", "3",
s_osd_position_options, s_osd_position_values, std::size(s_osd_position_options), true);
DrawToggleSetting(bsi, FSUI_ICONSTR(ICON_FA_INFO, "Show PCSX2 Version"),
FSUI_CSTR("Shows the current PCSX2 version on the top-right corner of the display."), "EmuCore/GS",
"OsdShowVersion", false);
@@ -3676,30 +3693,6 @@ void FullscreenUI::DrawInterfaceSettingsPage()
DrawToggleSetting(bsi, FSUI_ICONSTR(ICON_FA_TRIANGLE_EXCLAMATION, "Warn About Unsafe Settings"),
FSUI_CSTR("Displays warnings when settings are enabled which may break games."), "EmuCore", "WarnAboutUnsafeSettings", true);
// OSD Positioning Options
static constexpr const char* s_osd_position_options[] = {
FSUI_NSTR("None"),
FSUI_NSTR("Top Left"),
FSUI_NSTR("Top Center"),
FSUI_NSTR("Top Right"),
FSUI_NSTR("Center Left"),
FSUI_NSTR("Center"),
FSUI_NSTR("Center Right"),
FSUI_NSTR("Bottom Left"),
FSUI_NSTR("Bottom Center"),
FSUI_NSTR("Bottom Right"),
};
static constexpr const char* s_osd_position_values[] = {
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"
};
DrawStringListSetting(bsi, FSUI_ICONSTR(ICON_FA_COMMENT, "OSD Messages Position"),
FSUI_CSTR("Determines where on-screen display messages are positioned."), "EmuCore/GS", "OsdMessagesPos", "1",
s_osd_position_options, s_osd_position_values, std::size(s_osd_position_options), true);
DrawStringListSetting(bsi, FSUI_ICONSTR(ICON_FA_CHART_BAR, "OSD Performance Position"),
FSUI_CSTR("Determines where performance statistics are positioned."), "EmuCore/GS", "OsdPerformancePos", "3",
s_osd_position_options, s_osd_position_values, std::size(s_osd_position_options), true);
MenuHeading(FSUI_CSTR("Operations"));
if (MenuButton(FSUI_ICONSTR(u8"🔥", "Reset Settings"),
FSUI_CSTR("Resets configuration to defaults (excluding controller settings)."), !IsEditingGameSettings(bsi)))
@@ -8116,7 +8109,6 @@ TRANSLATE_NOOP("FullscreenUI", "Hides the mouse pointer/cursor when the emulator
TRANSLATE_NOOP("FullscreenUI", "On-Screen Display");
TRANSLATE_NOOP("FullscreenUI", "Determines how large the on-screen messages and monitor are.");
TRANSLATE_NOOP("FullscreenUI", "%d%%");
TRANSLATE_NOOP("FullscreenUI", "Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc.");
TRANSLATE_NOOP("FullscreenUI", "Shows the current PCSX2 version on the top-right corner of the display.");
TRANSLATE_NOOP("FullscreenUI", "Shows the current emulation speed of the system in the top-right corner of the display as a percentage.");
TRANSLATE_NOOP("FullscreenUI", "Shows the number of video frames (or v-syncs) displayed per second by the system in the top-right corner of the display.");
@@ -8741,8 +8733,6 @@ TRANSLATE_NOOP("FullscreenUI", "Launch Options");
TRANSLATE_NOOP("FullscreenUI", "Select Disc Image");
TRANSLATE_NOOP("FullscreenUI", "Select Disc Drive");
TRANSLATE_NOOP("FullscreenUI", "WARNING: Memory Card Busy");
TRANSLATE_NOOP("FullscreenUI", "No");
TRANSLATE_NOOP("FullscreenUI", "Yes");
TRANSLATE_NOOP("FullscreenUI", "Set Input Binding");
TRANSLATE_NOOP("FullscreenUI", "Region");
TRANSLATE_NOOP("FullscreenUI", "Compatibility Rating");
@@ -8770,7 +8760,6 @@ TRANSLATE_NOOP("FullscreenUI", "Start Fullscreen");
TRANSLATE_NOOP("FullscreenUI", "Double-Click Toggles Fullscreen");
TRANSLATE_NOOP("FullscreenUI", "Hide Cursor In Fullscreen");
TRANSLATE_NOOP("FullscreenUI", "OSD Scale");
TRANSLATE_NOOP("FullscreenUI", "Show Messages");
TRANSLATE_NOOP("FullscreenUI", "Show PCSX2 Version");
TRANSLATE_NOOP("FullscreenUI", "Show Speed");
TRANSLATE_NOOP("FullscreenUI", "Show FPS");

View File

@@ -127,6 +127,7 @@ namespace ImGuiFullscreen
static std::string s_message_dialog_message;
static std::array<std::string, 3> s_message_dialog_buttons;
static MessageDialogCallbackVariant s_message_dialog_callback;
static s32 s_message_dialog_default_index = 0;
static ImAnimatedVec2 s_menu_button_frame_min_animated;
static ImAnimatedVec2 s_menu_button_frame_max_animated;
@@ -278,6 +279,7 @@ void ImGuiFullscreen::Shutdown(bool clear_state)
s_message_dialog_message = {};
s_message_dialog_buttons = {};
s_message_dialog_callback = {};
s_message_dialog_default_index = 0;
}
}
@@ -2566,7 +2568,7 @@ bool ImGuiFullscreen::IsMessageBoxDialogOpen()
}
void ImGuiFullscreen::OpenConfirmMessageDialog(
std::string title, std::string message, ConfirmMessageDialogCallback callback, std::string yes_button_text, std::string no_button_text)
std::string title, std::string message, ConfirmMessageDialogCallback callback, bool default_yes, std::string yes_button_text, std::string no_button_text)
{
CloseMessageDialog();
@@ -2576,6 +2578,7 @@ void ImGuiFullscreen::OpenConfirmMessageDialog(
s_message_dialog_callback = std::move(callback);
s_message_dialog_buttons[0] = std::move(yes_button_text);
s_message_dialog_buttons[1] = std::move(no_button_text);
s_message_dialog_default_index = default_yes ? 0 : 1;
QueueResetFocus(FocusResetType::PopupOpened);
}
@@ -2589,10 +2592,11 @@ void ImGuiFullscreen::OpenInfoMessageDialog(
s_message_dialog_message = std::move(message);
s_message_dialog_callback = std::move(callback);
s_message_dialog_buttons[0] = std::move(button_text);
s_message_dialog_default_index = 0;
QueueResetFocus(FocusResetType::PopupOpened);
}
void ImGuiFullscreen::OpenMessageDialog(std::string title, std::string message, MessageDialogCallback callback,
void ImGuiFullscreen::OpenMessageDialog(std::string title, std::string message, MessageDialogCallback callback, s32 default_index,
std::string first_button_text, std::string second_button_text, std::string third_button_text)
{
CloseMessageDialog();
@@ -2604,6 +2608,8 @@ void ImGuiFullscreen::OpenMessageDialog(std::string title, std::string message,
s_message_dialog_buttons[0] = std::move(first_button_text);
s_message_dialog_buttons[1] = std::move(second_button_text);
s_message_dialog_buttons[2] = std::move(third_button_text);
pxAssert(default_index < 3);
s_message_dialog_default_index = default_index;
QueueResetFocus(FocusResetType::PopupOpened);
}
@@ -2617,6 +2623,7 @@ void ImGuiFullscreen::CloseMessageDialog()
s_message_dialog_message = {};
s_message_dialog_buttons = {};
s_message_dialog_callback = {};
s_message_dialog_default_index = 0;
QueueResetFocus(FocusResetType::PopupClosed);
}
@@ -2660,6 +2667,8 @@ void ImGuiFullscreen::DrawMessageDialog()
result = button_index;
ImGui::CloseCurrentPopup();
}
if (button_index == s_message_dialog_default_index)
ImGui::SetItemDefaultFocus();
}
EndMenuButtons();

View File

@@ -263,11 +263,11 @@ namespace ImGuiFullscreen
using InfoMessageDialogCallback = std::function<void()>;
using MessageDialogCallback = std::function<void(s32)>;
bool IsMessageBoxDialogOpen();
void OpenConfirmMessageDialog(std::string title, std::string message, ConfirmMessageDialogCallback callback,
void OpenConfirmMessageDialog(std::string title, std::string message, ConfirmMessageDialogCallback callback, bool default_yes = true,
std::string yes_button_text = ICON_FA_CHECK " Yes", std::string no_button_text = ICON_FA_XMARK " No");
void OpenInfoMessageDialog(std::string title, std::string message, InfoMessageDialogCallback callback = {},
std::string button_text = ICON_FA_SQUARE_XMARK " Close");
void OpenMessageDialog(std::string title, std::string message, MessageDialogCallback callback, std::string first_button_text,
void OpenMessageDialog(std::string title, std::string message, MessageDialogCallback callback, s32 default_index, std::string first_button_text,
std::string second_button_text, std::string third_button_text);
void CloseMessageDialog();

View File

@@ -902,12 +902,12 @@ void Patch::PatchFunc::patch(PatchGroup* group, const std::string_view cmd, cons
}
if (!cpu.has_value())
{
PATCH_ERROR("Unrecognized CPU Target: '%.*s'", pieces[1]);
PATCH_ERROR("Unrecognized CPU Target: '{}'", pieces[1]);
return;
}
if (!type.has_value())
{
PATCH_ERROR("Unrecognized Operand Size: '%.*s'", pieces[3]);
PATCH_ERROR("Unrecognized Operand Size: '{}'", pieces[3]);
return;
}
if (type.value() != BYTES_T)

View File

@@ -1924,6 +1924,7 @@ Pcsx2Config::Pcsx2Config()
WarnAboutUnsafeSettings = true;
EnableDiscordPresence = false;
ManuallySetRealTimeClock = false;
UseSystemLocaleFormat = false;
// To be moved to FileMemoryCard pluign (someday)
for (uint slot = 0; slot < 8; ++slot)
@@ -1973,6 +1974,7 @@ void Pcsx2Config::LoadSaveCore(SettingsWrapper& wrap)
SettingsWrapBitBool(WarnAboutUnsafeSettings);
SettingsWrapBitBool(ManuallySetRealTimeClock);
SettingsWrapBitBool(UseSystemLocaleFormat);
// Process various sub-components: