Compare commits

..
50 Commits
Author SHA1 Message Date
Ty d8d27c9072 New translations pcsx2-qt_en.ts (Azerbaijani)
[ci skip]
[ci skip]
2026-08-19 12:43:57 -04:00
Ty 9029106ce8 New translations pcsx2-qt_en.ts (Croatian)
[ci skip]
[ci skip]
2026-08-19 12:43:52 -04:00
copilot-swe-agent[bot]andF0bes 7a6e67fb07 translations: Fix format string placeholder mismatches in es-419, hr-HR, sr-SP (AI-assisted)
Co-authored-by: F0bes <29295048+F0bes@users.noreply.github.com>
2026-08-19 00:45:25 +00:00
Ty 4cbc36ef40 New translations pcsx2-qt_en.ts (Froglish)
[ci skip]
[ci skip]
2026-08-18 20:39:27 -04:00
Ty b0a0b5e711 New translations pcsx2-qt_en.ts (Spanish, Latin America)
[ci skip]
[ci skip]
2026-08-18 20:39:25 -04:00
Ty 5a52d9fbc3 New translations pcsx2-qt_en.ts (Guarani)
[ci skip]
[ci skip]
2026-08-18 20:39:22 -04:00
Ty 50b159e4c6 New translations pcsx2-qt_en.ts (Quechua)
[ci skip]
[ci skip]
2026-08-18 20:39:18 -04:00
Ty c92e6b9e83 New translations pcsx2-qt_en.ts (Hindi)
[ci skip]
[ci skip]
2026-08-18 20:39:16 -04:00
Ty 2ecc0694b1 New translations pcsx2-qt_en.ts (Azerbaijani)
[ci skip]
[ci skip]
2026-08-18 20:39:13 -04:00
Ty f3081ef97d New translations pcsx2-qt_en.ts (Latvian)
[ci skip]
[ci skip]
2026-08-18 20:39:10 -04:00
Ty b3cb212e5b New translations pcsx2-qt_en.ts (Croatian)
[ci skip]
[ci skip]
2026-08-18 20:39:08 -04:00
Ty ab3145d4b1 New translations pcsx2-qt_en.ts (Persian)
[ci skip]
[ci skip]
2026-08-18 20:39:05 -04:00
Ty d3f97d1289 New translations pcsx2-qt_en.ts (Indonesian)
[ci skip]
[ci skip]
2026-08-18 20:39:02 -04:00
Ty 42282d5e79 New translations pcsx2-qt_en.ts (Portuguese, Brazilian)
[ci skip]
[ci skip]
2026-08-18 20:38:59 -04:00
Ty 6528341da6 New translations pcsx2-qt_en.ts (Vietnamese)
[ci skip]
[ci skip]
2026-08-18 20:38:56 -04:00
Ty 4185ea6f5d New translations pcsx2-qt_en.ts (Chinese Traditional)
[ci skip]
[ci skip]
2026-08-18 20:38:52 -04:00
Ty 82ca1da7e9 New translations pcsx2-qt_en.ts (Chinese Simplified)
[ci skip]
[ci skip]
2026-08-18 20:38:49 -04:00
Ty 9e745d5618 New translations pcsx2-qt_en.ts (Ukrainian)
[ci skip]
[ci skip]
2026-08-18 20:38:46 -04:00
Ty 96556966ba New translations pcsx2-qt_en.ts (Turkish)
[ci skip]
[ci skip]
2026-08-18 20:38:43 -04:00
Ty 95d1d55119 New translations pcsx2-qt_en.ts (Swedish)
[ci skip]
[ci skip]
2026-08-18 20:38:40 -04:00
Ty 184846eb3d New translations pcsx2-qt_en.ts (Serbian (Cyrillic))
[ci skip]
[ci skip]
2026-08-18 20:38:37 -04:00
Ty 318bfec422 New translations pcsx2-qt_en.ts (Russian)
[ci skip]
[ci skip]
2026-08-18 20:38:34 -04:00
Ty 3b8fb1e9bf New translations pcsx2-qt_en.ts (Portuguese)
[ci skip]
[ci skip]
2026-08-18 20:38:31 -04:00
Ty f218114c12 New translations pcsx2-qt_en.ts (Polish)
[ci skip]
[ci skip]
2026-08-18 20:38:29 -04:00
Ty a02ad8c97b New translations pcsx2-qt_en.ts (Norwegian)
[ci skip]
[ci skip]
2026-08-18 20:38:26 -04:00
Ty d76653cf08 New translations pcsx2-qt_en.ts (Dutch)
[ci skip]
[ci skip]
2026-08-18 20:38:23 -04:00
Ty 5407914c4f New translations pcsx2-qt_en.ts (Lithuanian)
[ci skip]
[ci skip]
2026-08-18 20:38:20 -04:00
Ty 5458c11111 New translations pcsx2-qt_en.ts (Korean)
[ci skip]
[ci skip]
2026-08-18 20:38:17 -04:00
Ty 921e11d6bd New translations pcsx2-qt_en.ts (Georgian)
[ci skip]
[ci skip]
2026-08-18 20:38:15 -04:00
Ty 6e5254ef76 New translations pcsx2-qt_en.ts (Japanese)
[ci skip]
[ci skip]
2026-08-18 20:38:12 -04:00
Ty 6ad9f273c4 New translations pcsx2-qt_en.ts (Italian)
[ci skip]
[ci skip]
2026-08-18 20:38:09 -04:00
Ty 8f59d83e1a New translations pcsx2-qt_en.ts (Hungarian)
[ci skip]
[ci skip]
2026-08-18 20:38:06 -04:00
Ty bbef6bfb04 New translations pcsx2-qt_en.ts (Hebrew)
[ci skip]
[ci skip]
2026-08-18 20:38:03 -04:00
Ty c7846ef4b4 New translations pcsx2-qt_en.ts (Finnish)
[ci skip]
[ci skip]
2026-08-18 20:38:01 -04:00
Ty cfa65211ed New translations pcsx2-qt_en.ts (Greek)
[ci skip]
[ci skip]
2026-08-18 20:37:58 -04:00
Ty 200dacccf9 New translations pcsx2-qt_en.ts (German)
[ci skip]
[ci skip]
2026-08-18 20:37:55 -04:00
Ty ce5baa19f1 New translations pcsx2-qt_en.ts (Danish)
[ci skip]
[ci skip]
2026-08-18 20:37:52 -04:00
Ty 17002e4e45 New translations pcsx2-qt_en.ts (Czech)
[ci skip]
[ci skip]
2026-08-18 20:37:50 -04:00
Ty 5168defa99 New translations pcsx2-qt_en.ts (Catalan)
[ci skip]
[ci skip]
2026-08-18 20:37:47 -04:00
Ty cc3d3ec444 New translations pcsx2-qt_en.ts (Bulgarian)
[ci skip]
[ci skip]
2026-08-18 20:37:43 -04:00
Ty 345f7e19d2 New translations pcsx2-qt_en.ts (Arabic)
[ci skip]
[ci skip]
2026-08-18 20:37:41 -04:00
Ty e20fda310e New translations pcsx2-qt_en.ts (Afrikaans)
[ci skip]
[ci skip]
2026-08-18 20:37:38 -04:00
Ty 00e379f994 New translations pcsx2-qt_en.ts (Spanish)
[ci skip]
[ci skip]
2026-08-18 20:37:34 -04:00
Ty 04dc9fc054 New translations pcsx2-qt_en.ts (French)
[ci skip]
[ci skip]
2026-08-18 20:37:31 -04:00
Ty ae93ff15d3 New translations pcsx2-qt_en.ts (Romanian)
[ci skip]
[ci skip]
2026-08-18 20:37:28 -04:00
PCSX2 Bot 4fd1a4192a [ci skip] Qt: Update Base Translation. 2026-08-18 10:04:18 +02:00
SternXD 4ef1ff82e6 Qt/macOS: Keep Fullscreen on the main window 2026-08-17 18:37:50 +02:00
refractionpcsx2 cde2448a6c GameDB: Add Prioritize Lower depth fix to Steambot Chronicles 2026-08-15 14:26:15 +02:00
refractionpcsx2 ded263f98a GS/HW: Avoid detecting shuffles as source of truth for target format 2026-08-15 14:26:15 +02:00
refractionpcsx2 ffa5690656 GS/TC: Improve single pixel overlap detection in RT in RT 2026-08-15 14:26:15 +02:00
48 changed files with 295917 additions and 205411 deletions
+5
View File
@@ -25662,6 +25662,7 @@ SLES-54138:
preloadFrameData: 1 # Fixes menu graphics.
autoFlush: 1 # Fixes motion blur.
minimumBlendingLevel: 2 # Improves post effects.
limit24BitDepth: 2 # Fixes icon brightness.
SLES-54139:
name: "Earache - Extreme Metal Racing"
region: "PAL-E"
@@ -26318,6 +26319,7 @@ SLES-54335:
preloadFrameData: 1 # Fixes menu graphics.
autoFlush: 1 # Fixes motion blur.
minimumBlendingLevel: 2 # Improves post effects.
limit24BitDepth: 2 # Fixes icon brightness.
SLES-54336:
name: "Lumines Plus"
region: "PAL-M5"
@@ -71845,6 +71847,7 @@ SLUS-21344:
preloadFrameData: 1 # Fixes menu graphics.
autoFlush: 1 # Fixes motion blur.
minimumBlendingLevel: 2 # Improves post effects.
limit24BitDepth: 2 # Fixes icon brightness.
SLUS-21345:
name: "Grandia III [Disc 2 of 2]"
region: "NTSC-U"
@@ -75403,6 +75406,7 @@ SLUS-28061:
preloadFrameData: 1 # Fixes menu graphics.
autoFlush: 1 # Fixes motion blur.
minimumBlendingLevel: 2 # Improves post effects.
limit24BitDepth: 2 # Fixes icon brightness.
SLUS-28062:
name: "Dance Factory [Trade Demo]"
region: "NTSC-U"
@@ -76189,6 +76193,7 @@ SLUS-29188:
preloadFrameData: 1 # Fixes menu graphics.
autoFlush: 1 # Fixes motion blur.
minimumBlendingLevel: 2 # Improves post effects.
limit24BitDepth: 2 # Fixes icon brightness.
SLUS-29189:
name: "FIFA World Cup - Germany 2006 [Demo]"
region: "NTSC-U"
+79
View File
@@ -1202,6 +1202,21 @@ void MainWindow::updateDisplayRelatedActions(bool has_surface, bool render_to_ma
QSignalBlocker blocker(m_ui.actionToolbarFullscreen);
m_ui.actionToolbarFullscreen->setChecked(fullscreen);
}
#ifdef __APPLE__
if (render_to_main && fullscreen)
{
m_ui.toolBar->setVisible(false);
m_ui.statusBar->setVisible(false);
}
else
{
m_ui.toolBar->setVisible(m_ui.actionViewToolbar->isChecked());
m_ui.statusBar->setVisible(m_ui.actionViewStatusBar->isChecked());
}
m_ui.actionViewToolbar->setEnabled(!(render_to_main && fullscreen));
m_ui.actionViewStatusBar->setEnabled(!(render_to_main && fullscreen));
#endif
}
void MainWindow::updateStatusBarWidgetVisibility()
@@ -1376,6 +1391,12 @@ bool MainWindow::isRenderingFullscreen() const
if (!MTGS::IsOpen() || !m_display_surface)
return false;
#ifdef __APPLE__
// When rendering to main, the main window is what goes fullscreen.
if (isRenderingToMain())
return isFullScreen();
#endif
return m_display_surface->isFullScreen();
}
@@ -1394,7 +1415,12 @@ bool MainWindow::shouldHideMainWindow() const
{
// NOTE: We can't use isRenderingToMain() here, because this happens post-fullscreen-switch.
return (Host::GetBoolSettingValue("UI", "HideMainWindowWhenRunning", false) && !g_emu_thread->shouldRenderToMain()) ||
#ifdef __APPLE__
// macOS keeps fullscreen on the main window so don't hide it there.
(g_emu_thread->shouldRenderToMain() && (g_emu_thread->isExclusiveFullscreen() || m_is_temporarily_windowed)) ||
#else
(g_emu_thread->shouldRenderToMain() && (isRenderingFullscreen() || g_emu_thread->isExclusiveFullscreen() || m_is_temporarily_windowed)) ||
#endif
Host::InNoGUIMode();
}
@@ -2796,6 +2822,27 @@ std::optional<WindowInfo> MainWindow::acquireRenderWindow(bool recreate_window,
return m_display_surface->getWindowInfo();
}
#ifdef __APPLE__
// Skip recreating when toggling fullscreen if we're still rendering to main.
if (m_display_created && !recreate_window && is_rendering_to_main && render_to_main && !changing_surfaceless)
{
updateDisplayRelatedActions(true, true, fullscreen);
if (fullscreen)
showFullScreen();
else
showNormal();
while (!m_is_closing && isFullScreen() != fullscreen)
QApplication::processEvents(QEventLoop::ExcludeUserInputEvents);
updateDisplayWidgetCursor();
m_display_surface->setFocus();
updateWindowState();
return m_display_surface->getWindowInfo();
}
#endif
destroyDisplayWidget(surfaceless);
m_display_created = true;
@@ -2835,14 +2882,23 @@ void MainWindow::createDisplayWidget(bool fullscreen, bool render_to_main)
{
// If we're rendering to main and were hidden (e.g. coming back from fullscreen),
// make sure we're visible before trying to add ourselves. Otherwise Wayland breaks.
#ifdef __APPLE__
// On macOS the main window itself goes fullscreen so it needs to be visible then too.
if (render_to_main && !isVisible())
#else
if (!fullscreen && render_to_main && !isVisible())
#endif
{
setVisible(true);
QGuiApplication::sync();
}
m_display_surface = new DisplaySurface();
#ifdef __APPLE__
if (!render_to_main)
#else
if (fullscreen || !render_to_main)
#endif
{
#ifdef DISPLAY_SURFACE_WINDOW
m_display_surface->setTitle(windowTitle());
@@ -2858,7 +2914,11 @@ void MainWindow::createDisplayWidget(bool fullscreen, bool render_to_main)
m_display_container = m_display_surface->createWindowContainer(getContentParent());
}
#ifdef __APPLE__
if (!render_to_main && (fullscreen || g_emu_thread->isExclusiveFullscreen()))
#else
if (fullscreen || g_emu_thread->isExclusiveFullscreen())
#endif
{
// On Wayland, while move/restoreGeometry can't position the window, it can influence which screen they show up on.
// Other platforms can position windows fine, but the only thing that matters here is the screen.
@@ -2914,6 +2974,15 @@ void MainWindow::createDisplayWidget(bool fullscreen, bool render_to_main)
updateDisplayRelatedActions(true, render_to_main, fullscreen);
#ifdef __APPLE__
if (render_to_main && fullscreen)
{
showFullScreen();
while (!m_is_closing && !isFullScreen())
QApplication::processEvents(QEventLoop::ExcludeUserInputEvents);
}
#endif
// We need the surface visible.
QGuiApplication::sync();
}
@@ -3006,6 +3075,16 @@ void MainWindow::destroyDisplayWidget(bool show_game_list)
if (!(m_display_surface->isFullScreen() || m_display_is_exclusive_fullscreen) && !isRenderingToMain())
saveDisplayWindowGeometryToConfig();
#ifdef __APPLE__
// Need to leave fullscreen before destroying otherwise we could get stuck in it.
if (isRenderingToMain() && isFullScreen())
{
showNormal();
while (isFullScreen())
QApplication::processEvents(QEventLoop::ExcludeUserInputEvents);
}
#endif
if (isRenderingToMain())
{
pxAssertRel(m_ui.mainContainer->indexOf(m_display_container) == 1, "Display widget in stack");
+5
View File
@@ -898,7 +898,12 @@ std::optional<WindowInfo> EmuThread::acquireRenderWindow(bool recreate_window)
// Check if we're wanting to get exclusive fullscreen. This should be safe to read, since we're going to be calling from the GS thread.
m_is_exclusive_fullscreen = m_is_fullscreen && GSWantsExclusiveFullscreen();
const bool window_fullscreen = m_is_fullscreen && !m_is_exclusive_fullscreen;
#ifdef __APPLE__
// Fullscreen the main window instead of opening a separate one on macOS.
const bool render_to_main = !m_is_exclusive_fullscreen && m_is_rendering_to_main;
#else
const bool render_to_main = !m_is_exclusive_fullscreen && !window_fullscreen && m_is_rendering_to_main;
#endif
return emit onAcquireRenderWindowRequested(recreate_window, window_fullscreen, render_to_main, m_is_surfaceless);
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+153 -153
View File
@@ -5826,116 +5826,116 @@ Do you want to overwrite?</source>
<context>
<name>EmuThread</name>
<message>
<location filename="../QtHost.cpp" line="1057"/>
<location filename="../QtHost.cpp" line="1062"/>
<source>No Image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../QtHost.cpp" line="1079"/>
<location filename="../QtHost.cpp" line="1084"/>
<source>FPS: N/A</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../QtHost.cpp" line="1079"/>
<location filename="../QtHost.cpp" line="1084"/>
<source>FPS: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../QtHost.cpp" line="996"/>
<location filename="../QtHost.cpp" line="1001"/>
<source>Slot: %1 | %2 | EE: %3% | VU: %4% | GS: %5%</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../QtHost.cpp" line="1005"/>
<location filename="../QtHost.cpp" line="1010"/>
<source>Slot: %1 | %2 | EE: %3% | GS: %4%</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../QtHost.cpp" line="1033"/>
<location filename="../QtHost.cpp" line="1038"/>
<source>Volume: %1%</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../QtHost.cpp" line="1035"/>
<location filename="../QtHost.cpp" line="1040"/>
<source>Volume: Muted</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../QtHost.cpp" line="1046"/>
<location filename="../QtHost.cpp" line="1051"/>
<source>Auto (%1)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../QtHost.cpp" line="1059"/>
<location filename="../QtHost.cpp" line="1064"/>
<source>%1x%2 (%3x)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../QtHost.cpp" line="1072"/>
<location filename="../QtHost.cpp" line="1077"/>
<source>GPU: %1%</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../QtHost.cpp" line="1086"/>
<location filename="../QtHost.cpp" line="1091"/>
<source>VPS: N/A</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../QtHost.cpp" line="1086"/>
<location filename="../QtHost.cpp" line="1091"/>
<source>VPS: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../QtHost.cpp" line="1093"/>
<location filename="../QtHost.cpp" line="1098"/>
<source>Speed: %1%</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../QtHost.cpp" line="1157"/>
<location filename="../QtHost.cpp" line="1162"/>
<source>Game: %1 (%2)
</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../QtHost.cpp" line="1165"/>
<location filename="../QtHost.cpp" line="1170"/>
<source>Rich presence inactive or unsupported.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../QtHost.cpp" line="1169"/>
<location filename="../QtHost.cpp" line="1174"/>
<source>Game not loaded or no RetroAchievements available.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../QtHost.cpp" line="1606"/>
<location filename="../QtHost.cpp" line="1626"/>
<location filename="../QtHost.cpp" line="1634"/>
<location filename="../QtHost.cpp" line="1668"/>
<location filename="../QtHost.cpp" line="1611"/>
<location filename="../QtHost.cpp" line="1631"/>
<location filename="../QtHost.cpp" line="1639"/>
<location filename="../QtHost.cpp" line="1673"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../QtHost.cpp" line="1606"/>
<location filename="../QtHost.cpp" line="1611"/>
<source>Failed to create HTTPDownloader.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../QtHost.cpp" line="1614"/>
<location filename="../QtHost.cpp" line="1619"/>
<source>Downloading %1...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../QtHost.cpp" line="1627"/>
<location filename="../QtHost.cpp" line="1632"/>
<source>Download failed with HTTP status code %1.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../QtHost.cpp" line="1635"/>
<location filename="../QtHost.cpp" line="1640"/>
<source>Download failed: Data is empty.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../QtHost.cpp" line="1669"/>
<location filename="../QtHost.cpp" line="1674"/>
<source>Failed to write downloaded data to file &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
@@ -18801,13 +18801,13 @@ Right click to clear binding</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="1893"/>
<location filename="../MainWindow.cpp" line="1954"/>
<location filename="../MainWindow.cpp" line="1919"/>
<location filename="../MainWindow.cpp" line="1980"/>
<source>Change Disc</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="3488"/>
<location filename="../MainWindow.cpp" line="3567"/>
<source>Load State</source>
<translation type="unfinished"></translation>
</message>
@@ -19275,7 +19275,7 @@ Right click to clear binding</source>
</message>
<message>
<location filename="../MainWindow.ui" line="1034"/>
<location filename="../MainWindow.cpp" line="1997"/>
<location filename="../MainWindow.cpp" line="2023"/>
<source>Start Big Picture &amp;Mode</source>
<translation type="unfinished"></translation>
</message>
@@ -19389,7 +19389,7 @@ Right click to clear binding</source>
</message>
<message>
<location filename="../MainWindow.ui" line="1042"/>
<location filename="../MainWindow.cpp" line="1998"/>
<location filename="../MainWindow.cpp" line="2024"/>
<source>Big Picture</source>
<comment>In Toolbar</comment>
<translation type="unfinished"></translation>
@@ -19464,8 +19464,8 @@ Right click to clear binding</source>
</message>
<message>
<location filename="../MainWindow.cpp" line="859"/>
<location filename="../MainWindow.cpp" line="1557"/>
<location filename="../MainWindow.cpp" line="1602"/>
<location filename="../MainWindow.cpp" line="1583"/>
<location filename="../MainWindow.cpp" line="1628"/>
<source>Do not show again</source>
<translation type="unfinished"></translation>
</message>
@@ -19505,363 +19505,363 @@ Are you sure you want to continue?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="1439"/>
<location filename="../MainWindow.cpp" line="1465"/>
<source>WARNING: Memory Card Busy</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="1443"/>
<location filename="../MainWindow.cpp" line="1469"/>
<source>Your memory card is still saving data.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="1444"/>
<location filename="../MainWindow.cpp" line="1470"/>
<source>WARNING: Shutting down now can &lt;b&gt;IRREVERSIBLY CORRUPT YOUR MEMORY CARD.&lt;/b&gt;&lt;br&gt;&lt;br&gt;You are strongly advised to select &apos;No&apos; and let the save finish.&lt;br&gt;&lt;br&gt;Do you want to shutdown anyway and &lt;b&gt;IRREVERSIBLY CORRUPT YOUR MEMORY CARD&lt;/b&gt;?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="1546"/>
<location filename="../MainWindow.cpp" line="1572"/>
<source>Failed to Load State From Backup Slot %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="1548"/>
<location filename="../MainWindow.cpp" line="1574"/>
<source>Failed to Load State From Slot %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="1552"/>
<location filename="../MainWindow.cpp" line="1578"/>
<source>Failed to Load State</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="1596"/>
<location filename="../MainWindow.cpp" line="1622"/>
<source>Failed to Save State To Slot %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="1598"/>
<location filename="../MainWindow.cpp" line="1624"/>
<source>Failed to Save State</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="1672"/>
<location filename="../MainWindow.cpp" line="1698"/>
<source>Confirm Shutdown</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="1675"/>
<location filename="../MainWindow.cpp" line="1701"/>
<source>Are you sure you want to shut down the virtual machine?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="1677"/>
<location filename="../MainWindow.cpp" line="1703"/>
<source>Save State For Resume</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="1783"/>
<location filename="../MainWindow.cpp" line="2184"/>
<location filename="../MainWindow.cpp" line="2650"/>
<location filename="../MainWindow.cpp" line="2818"/>
<location filename="../MainWindow.cpp" line="3309"/>
<location filename="../MainWindow.cpp" line="3406"/>
<location filename="../MainWindow.cpp" line="3425"/>
<location filename="../MainWindow.cpp" line="3442"/>
<location filename="../MainWindow.cpp" line="3464"/>
<location filename="../MainWindow.cpp" line="3507"/>
<location filename="../MainWindow.cpp" line="1809"/>
<location filename="../MainWindow.cpp" line="2210"/>
<location filename="../MainWindow.cpp" line="2676"/>
<location filename="../MainWindow.cpp" line="2865"/>
<location filename="../MainWindow.cpp" line="3388"/>
<location filename="../MainWindow.cpp" line="3485"/>
<location filename="../MainWindow.cpp" line="3504"/>
<location filename="../MainWindow.cpp" line="3521"/>
<location filename="../MainWindow.cpp" line="3543"/>
<location filename="../MainWindow.cpp" line="3586"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="1783"/>
<location filename="../MainWindow.cpp" line="1809"/>
<source>You must select a disc to change discs.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="1814"/>
<location filename="../MainWindow.cpp" line="1840"/>
<source>Properties...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="1830"/>
<location filename="../MainWindow.cpp" line="1856"/>
<source>Set Cover Image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="1834"/>
<location filename="../MainWindow.cpp" line="1860"/>
<source>Create Game Shortcut...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="1837"/>
<location filename="../MainWindow.cpp" line="1863"/>
<source>Exclude From List</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="1843"/>
<location filename="../MainWindow.cpp" line="1869"/>
<source>Reset Play Time</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="1847"/>
<location filename="../MainWindow.cpp" line="1873"/>
<source>Check Wiki Page</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="1850"/>
<location filename="../MainWindow.cpp" line="1876"/>
<source>Open Memory Card Folder</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="1856"/>
<location filename="../MainWindow.cpp" line="1882"/>
<source>Open Texture Dump/Replacement Folder</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="1859"/>
<location filename="../MainWindow.cpp" line="1885"/>
<source>Open Video Capture Folder</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="1865"/>
<location filename="../MainWindow.cpp" line="1891"/>
<source>Default Boot</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="1872"/>
<location filename="../MainWindow.cpp" line="1898"/>
<source>Fast Boot</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="1875"/>
<location filename="../MainWindow.cpp" line="1901"/>
<source>Full Boot</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="1880"/>
<location filename="../MainWindow.cpp" line="1906"/>
<source>Boot and Debug</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="1904"/>
<location filename="../MainWindow.cpp" line="1930"/>
<source>Add Search Directory...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="1913"/>
<location filename="../MainWindow.cpp" line="1939"/>
<source>Start File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="1922"/>
<location filename="../MainWindow.cpp" line="1948"/>
<source>Start Disc</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="1939"/>
<location filename="../MainWindow.cpp" line="1965"/>
<source>Select Disc Image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="2083"/>
<location filename="../MainWindow.cpp" line="2109"/>
<source>Updater Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="2089"/>
<location filename="../MainWindow.cpp" line="2115"/>
<source>&lt;p&gt;Sorry, you are trying to update a PCSX2 version which is not an official GitHub release. To prevent incompatibilities, the auto-updater is only enabled on official builds.&lt;/p&gt;&lt;p&gt;To obtain an official build, please download from the link below:&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://pcsx2.net/downloads/&quot;&gt;https://pcsx2.net/downloads/&lt;/a&gt;&lt;/p&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="2094"/>
<location filename="../MainWindow.cpp" line="2120"/>
<source>Automatic updating is not supported on the current platform.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="2174"/>
<location filename="../MainWindow.cpp" line="2200"/>
<source>Confirm File Creation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="2175"/>
<location filename="../MainWindow.cpp" line="2201"/>
<source>The pnach file &apos;%1&apos; does not currently exist. Do you want to create it?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="2184"/>
<location filename="../MainWindow.cpp" line="2210"/>
<source>Failed to create &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="2280"/>
<location filename="../MainWindow.cpp" line="2306"/>
<source>Input Recording Failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="2281"/>
<location filename="../MainWindow.cpp" line="2307"/>
<source>Failed to create file: {}</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="2303"/>
<location filename="../MainWindow.cpp" line="2329"/>
<source>Select a File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="2304"/>
<location filename="../MainWindow.cpp" line="2330"/>
<source>Input Recording Files (*.p2m2)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="2339"/>
<location filename="../MainWindow.cpp" line="2365"/>
<source>Input Playback Failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="2340"/>
<location filename="../MainWindow.cpp" line="2366"/>
<source>Failed to open file: {}</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="2426"/>
<location filename="../MainWindow.cpp" line="2452"/>
<source>Paused</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="2614"/>
<location filename="../MainWindow.cpp" line="2640"/>
<source>Load State Failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="2614"/>
<location filename="../MainWindow.cpp" line="2640"/>
<source>Cannot load a save state without a running VM.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="2638"/>
<location filename="../MainWindow.cpp" line="2664"/>
<source>The new ELF cannot be loaded without resetting the virtual machine. Do you want to reset the virtual machine now?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="2650"/>
<location filename="../MainWindow.cpp" line="2676"/>
<source>Cannot change from game to GS dump without shutting down first.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="2818"/>
<location filename="../MainWindow.cpp" line="2865"/>
<source>Failed to get window info from widget</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="1997"/>
<location filename="../MainWindow.cpp" line="2023"/>
<source>Stop Big Picture Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="1998"/>
<location filename="../MainWindow.cpp" line="2024"/>
<source>Exit Big Picture</source>
<comment>In Toolbar</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="3215"/>
<location filename="../MainWindow.cpp" line="3294"/>
<source>Game Properties</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="3215"/>
<location filename="../MainWindow.cpp" line="3294"/>
<source>Game properties is unavailable for the current game.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="3267"/>
<location filename="../MainWindow.cpp" line="3346"/>
<source>Could not find any CD/DVD-ROM devices. Please ensure you have a drive connected and sufficient permissions to access it.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="3285"/>
<location filename="../MainWindow.cpp" line="3364"/>
<source>Select disc drive:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="3309"/>
<location filename="../MainWindow.cpp" line="3388"/>
<source>This save state does not exist.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="3322"/>
<location filename="../MainWindow.cpp" line="3401"/>
<source>Select Cover Image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="3339"/>
<location filename="../MainWindow.cpp" line="3418"/>
<source>Cover Already Exists</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="3340"/>
<location filename="../MainWindow.cpp" line="3419"/>
<source>A cover image for this game already exists, do you wish to replace it?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="3335"/>
<location filename="../MainWindow.cpp" line="3349"/>
<location filename="../MainWindow.cpp" line="3355"/>
<location filename="../MainWindow.cpp" line="3361"/>
<location filename="../MainWindow.cpp" line="3414"/>
<location filename="../MainWindow.cpp" line="3428"/>
<location filename="../MainWindow.cpp" line="3434"/>
<location filename="../MainWindow.cpp" line="3440"/>
<source>Copy Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="3349"/>
<location filename="../MainWindow.cpp" line="3428"/>
<source>Failed to remove existing cover &apos;%1&apos;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="3355"/>
<location filename="../MainWindow.cpp" line="3434"/>
<source>Failed to copy &apos;%1&apos; to &apos;%2&apos;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="3361"/>
<location filename="../MainWindow.cpp" line="3440"/>
<source>Failed to remove &apos;%1&apos;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="2637"/>
<location filename="../MainWindow.cpp" line="3370"/>
<location filename="../MainWindow.cpp" line="2663"/>
<location filename="../MainWindow.cpp" line="3449"/>
<source>Confirm Reset</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="1853"/>
<location filename="../MainWindow.cpp" line="1879"/>
<source>Open Snapshots Folder</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="3322"/>
<location filename="../MainWindow.cpp" line="3401"/>
<source>All Cover Image Types (*.jpg *.jpeg *.png *.webp)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="3335"/>
<location filename="../MainWindow.cpp" line="3414"/>
<source>You must select a different file to the current cover image.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="3406"/>
<location filename="../MainWindow.cpp" line="3485"/>
<source>Failed to create snapshots directory &apos;%1&apos;
Opening default directory.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="3482"/>
<location filename="../MainWindow.cpp" line="3561"/>
<source>Load Resume State</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="3485"/>
<location filename="../MainWindow.cpp" line="3564"/>
<source>A resume save state was found for this game, saved at:
%1.
@@ -19870,43 +19870,43 @@ Do you want to load this state, or start from a fresh boot?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="3489"/>
<location filename="../MainWindow.cpp" line="3568"/>
<source>Fresh Boot</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="3490"/>
<location filename="../MainWindow.cpp" line="3569"/>
<source>Delete And Boot</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="3507"/>
<location filename="../MainWindow.cpp" line="3586"/>
<source>Failed to delete save state file &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="3565"/>
<location filename="../MainWindow.cpp" line="3644"/>
<source>Load State File...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="3565"/>
<location filename="../MainWindow.cpp" line="3644"/>
<source>Load From File...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="3568"/>
<location filename="../MainWindow.cpp" line="3642"/>
<location filename="../MainWindow.cpp" line="3647"/>
<location filename="../MainWindow.cpp" line="3721"/>
<source>Select Save State File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="3613"/>
<location filename="../MainWindow.cpp" line="3692"/>
<source>Load Backup Slot %1 (%2)</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
<location filename="../MainWindow.cpp" line="3630"/>
<location filename="../MainWindow.cpp" line="3709"/>
<source>%n save states deleted.</source>
<translation type="unfinished">
<numerusform></numerusform>
@@ -19914,12 +19914,12 @@ Do you want to load this state, or start from a fresh boot?</source>
</translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="3642"/>
<location filename="../MainWindow.cpp" line="3721"/>
<source>Save States (*.p2s)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="3575"/>
<location filename="../MainWindow.cpp" line="3654"/>
<source>Delete Save States...</source>
<translation type="unfinished"></translation>
</message>
@@ -19934,7 +19934,7 @@ Do you want to load this state, or start from a fresh boot?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="3371"/>
<location filename="../MainWindow.cpp" line="3450"/>
<source>Are you sure you want to reset the play time for &apos;%1&apos; (%2)?
Your current play time is %3.
@@ -19943,94 +19943,94 @@ This action cannot be undone.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="3372"/>
<location filename="../MainWindow.cpp" line="3451"/>
<source>empty title</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="3373"/>
<location filename="../MainWindow.cpp" line="3452"/>
<source>no serial</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="3425"/>
<location filename="../MainWindow.cpp" line="3504"/>
<source>Failed to create game texture directory &apos;%1&apos;
Opening default directory.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="3442"/>
<location filename="../MainWindow.cpp" line="3521"/>
<source>Failed to open memory card directory.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="3464"/>
<location filename="../MainWindow.cpp" line="3543"/>
<source>Failed to create game video capture directory &apos;%1&apos;
Opening default directory.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="3568"/>
<location filename="../MainWindow.cpp" line="3647"/>
<source>Save States (*.p2s *.p2s.backup)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="3585"/>
<location filename="../MainWindow.cpp" line="3664"/>
<source>Resume (%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="3601"/>
<location filename="../MainWindow.cpp" line="3680"/>
<source>Load Slot %1 (%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="3622"/>
<location filename="../MainWindow.cpp" line="3630"/>
<location filename="../MainWindow.cpp" line="3701"/>
<location filename="../MainWindow.cpp" line="3709"/>
<source>Delete Save States</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="3623"/>
<location filename="../MainWindow.cpp" line="3702"/>
<source>Are you sure you want to delete all save states for %1?
The saves will not be recoverable.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="3640"/>
<location filename="../MainWindow.cpp" line="3719"/>
<source>Save To File...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="3660"/>
<location filename="../MainWindow.cpp" line="3739"/>
<source>Empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="3662"/>
<location filename="../MainWindow.cpp" line="3741"/>
<source>Save Slot %1 (%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="3722"/>
<location filename="../MainWindow.cpp" line="3801"/>
<source>Confirm Disc Change</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="3723"/>
<location filename="../MainWindow.cpp" line="3802"/>
<source>Do you want to swap discs or boot the new image (via system reset)?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="3724"/>
<location filename="../MainWindow.cpp" line="3803"/>
<source>Swap Disc</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../MainWindow.cpp" line="3725"/>
<location filename="../MainWindow.cpp" line="3804"/>
<source>Reset</source>
<translation type="unfinished"></translation>
</message>
@@ -22793,45 +22793,45 @@ Ejecting {2} and replacing it with {3}.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../QtHost.cpp" line="1137"/>
<location filename="../QtHost.cpp" line="1142"/>
<source>RA: Logged in as %1 (%2 pts, Casual: %3 pts). %4 unread messages.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../QtHost.cpp" line="1576"/>
<location filename="../QtHost.cpp" line="1591"/>
<location filename="../QtHost.cpp" line="1581"/>
<location filename="../QtHost.cpp" line="1596"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../QtHost.cpp" line="1577"/>
<location filename="../QtHost.cpp" line="1582"/>
<source>An error occurred while deleting empty game settings:
{}</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../QtHost.cpp" line="1592"/>
<location filename="../QtHost.cpp" line="1597"/>
<source>An error occurred while saving game settings:
{}</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../QtHost.cpp" line="1751"/>
<location filename="../QtHost.cpp" line="1756"/>
<source>Controller {} connected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../QtHost.cpp" line="1764"/>
<location filename="../QtHost.cpp" line="1769"/>
<source>System paused because controller {} was disconnected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../QtHost.cpp" line="1777"/>
<location filename="../QtHost.cpp" line="1782"/>
<source>Controller {} disconnected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../QtHost.cpp" line="2020"/>
<location filename="../QtHost.cpp" line="2025"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+2 -1
View File
@@ -3939,7 +3939,8 @@ void GSRendererHW::Draw()
if (next_ctx.FRAME.Block() == FRAME_TEX0.TBP0 && next_ctx.FRAME.PSM != FRAME_TEX0.PSM)
FRAME_TEX0.PSM = next_ctx.FRAME.PSM;
else if (next_ctx.TEX0.TBP0 == FRAME_TEX0.TBP0 && next_ctx.TEX0.PSM != FRAME_TEX0.PSM)
// Be careful of the next draw being a channel shuffle!
else if (next_ctx.TEX0.TBP0 == FRAME_TEX0.TBP0 && next_ctx.TEX0.PSM != FRAME_TEX0.PSM && GSLocalMemory::m_psm[next_ctx.TEX0.PSM].trbpp >= 16)
FRAME_TEX0.PSM = next_ctx.TEX0.PSM;
else
FRAME_TEX0.PSM = PSMCT32; // Guess full color if no upcoming hint, it'll fix itself later.
+10 -1
View File
@@ -2580,12 +2580,21 @@ GSTextureCache::Target* GSTextureCache::LookupDrawTarget(GIFRegTEX0 TEX0, const
{
// Some games misuse the scissor so it ends up valid 1 pixel over, which causes hell for us. So check if it still overlaps without the extra pixel.
const GSVector4i adjusted_valid = GSVector4i(t->m_valid.x, t->m_valid.y, std::min(t->m_valid.z, static_cast<int>(t->m_TEX0.TBW) * 64), t->m_valid.w - 1);
const u32 adjusted_endblock = GSLocalMemory::GetEndBlockAddress(t->m_TEX0.TBP0, t->m_TEX0.TBW, t->m_TEX0.PSM, adjusted_valid);
u32 adjusted_endblock = GSLocalMemory::GetUnwrappedEndBlockAddress(t->m_TEX0.TBP0, t->m_TEX0.TBW, t->m_TEX0.PSM, adjusted_valid);
if (adjusted_endblock <= bp)
{
i++;
continue;
}
const GSVector4i adjusted_rect = GSVector4i(min_rect.x, min_rect.y, std::min(min_rect.z, static_cast<int>(t->m_TEX0.TBW) * 64), min_rect.w - 1);
// Also check the offset from the bp to the current request to see if it overlaps the begining of the selected target.
adjusted_endblock = GSLocalMemory::GetUnwrappedEndBlockAddress(TEX0.TBP0, TEX0.TBW, TEX0.PSM, adjusted_rect);
if (adjusted_endblock <= t->m_TEX0.TBP0)
{
i++;
continue;
}
const GSLocalMemory::psm_t& s_psm = GSLocalMemory::m_psm[TEX0.PSM];
const u32 widthpage_offset = (std::abs(static_cast<int>(bp - t->m_TEX0.TBP0)) >> 5) % std::max(t->m_TEX0.TBW, 1U);
const bool is_aligned_ok = widthpage_offset == 0 || ((min_rect.width() <= static_cast<int>((t->m_TEX0.TBW - widthpage_offset) * 64) && (t->m_TEX0.TBW == TEX0.TBW || TEX0.TBW == 1)) && bp >= t->m_TEX0.TBP0);