mirror of
https://github.com/PCSX2/pcsx2.git
synced 2026-01-31 01:15:24 +01:00
Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9d1fd23d78 | ||
|
|
9ff575377d | ||
|
|
47250293cd | ||
|
|
f9b346521d | ||
|
|
b5a4c71eff | ||
|
|
2604256424 | ||
|
|
906ac6a8ea | ||
|
|
3db21e0579 | ||
|
|
abd03884de | ||
|
|
a159256b07 |
4
.github/workflows/linux_build_flatpak.yml
vendored
4
.github/workflows/linux_build_flatpak.yml
vendored
@@ -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
|
||||
|
||||
2
.github/workflows/linux_build_qt.yml
vendored
2
.github/workflows/linux_build_qt.yml
vendored
@@ -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
|
||||
|
||||
8
.github/workflows/macos_build.yml
vendored
8
.github/workflows/macos_build.yml
vendored
@@ -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
|
||||
|
||||
2
.github/workflows/release_cut_new.yml
vendored
2
.github/workflows/release_cut_new.yml
vendored
@@ -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
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@ private:
|
||||
void updateOptimalFramePacing();
|
||||
void updateUseVSyncForTimingEnabled();
|
||||
void onManuallySetRealTimeClockChanged();
|
||||
void onUseSystemLocaleFormatChanged();
|
||||
|
||||
Ui::EmulationSettingsWidget m_ui;
|
||||
};
|
||||
|
||||
@@ -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
@@ -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")));
|
||||
});
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
|
||||
|
||||
@@ -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");
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user