Commit Graph

8189 Commits

Author SHA1 Message Date
Stenzek a9ce005a20
Qt: Fix maximized state not saving to config
Restores the "old" position when restoring again. Except on Wayland,
where nothing works.
2025-07-30 20:30:55 +10:00
Stenzek 3768940fbb
Qt: Fix assertion on shutdown after resize 2025-07-30 20:18:42 +10:00
Stenzek 690f843e2a
Qt: Auto switch between any/changed values in memory scanner 2025-07-29 23:10:25 +10:00
Stenzek 5ed7961390
Qt: Refuse to start in known broken environments 2025-07-29 23:10:25 +10:00
Stenzek ce53e29997
Qt: Fix possible crash on shutdown 2025-07-29 20:56:58 +10:00
Stenzek acf78970c6
Qt: Create main window before starting EmuThread
Stops signals such as achievements active changed being lost.
2025-07-29 17:23:18 +10:00
Stenzek f569448ea1
System: Centralize pause checks 2025-07-29 17:23:18 +10:00
Stenzek 042930d735
FullscreenUI: Fix focus loss with grid/list button 2025-07-28 20:42:50 +10:00
zkdpower fac47b135a
Update the Simple-Chinese translation to latest. (#3495) 2025-07-28 20:42:12 +10:00
Davide Pesavento 168b80dd49 Qt: Add tooltips to game list 2025-07-27 21:31:30 +10:00
Davide Pesavento df65879d06 GPU: Fix typo 2025-07-27 21:31:30 +10:00
Stenzek 300d158320
FullscreenUI: Fix clock position in pause menu 2025-07-27 13:45:46 +10:00
Davide Pesavento 70d6a2d1af Achievements: Revert back to long date format for unlock/submit time 2025-07-27 13:03:38 +10:00
Davide Pesavento 71591e8219 Qt: Use localized date/time formatting in a few more places 2025-07-27 13:03:38 +10:00
Stenzek 634fac4410
CrashHandler: Fix recursive backtrace on Linux 2025-07-27 02:01:58 +10:00
Stenzek 2b18df0910
MediaCapture: Don't crash if video codec supports 0 formats 2025-07-27 01:36:13 +10:00
Stenzek 44237146ef
FullscreenUI: Fix remaining fixed date/time formatting locations 2025-07-27 01:25:08 +10:00
Stenzek 29e92705c4
FullscreenUI: Add option to hide grid view labels
Also handle titles that span multiple lines.
2025-07-26 23:24:02 +10:00
Stenzek 96c224497b
Qt: Use selected language locale for formatting
But check the prefix against the system locale, so that e.g. en can use
the system country.
2025-07-26 22:33:10 +10:00
Stenzek c82351a14a
Qt: Implement 'System Language' language option 2025-07-26 22:33:10 +10:00
Stenzek 7f5f90338f
Qt: Use application locale in most places 2025-07-26 22:33:10 +10:00
Stenzek ef320c62a3
Qt: Cache app locale object 2025-07-26 22:33:10 +10:00
Stenzek f91ee34fa4
Qt: Merge qttranslations.cpp with qthost.cpp
No need to keep it separate anymore since we're not precalculating glyph
ranges.
2025-07-26 22:33:10 +10:00
Stenzek 9b353f841e
Misc: Use host locale formatting for dates
Fixes achievement unlocks and lasted played times being shown in US
format.
2025-07-26 22:33:09 +10:00
Stenzek 1c8699b8a0
Host: Add FormatNumber()
Formats the argument according to the system locale, instead of C.
2025-07-26 22:33:09 +10:00
Stenzek e82218f823
Qt: Fix changing language while game running 2025-07-26 22:33:09 +10:00
Stenzek 83d521f3d8
CMake: Drop Flatpak workarounds
No longer needed since it is using self-contained.
2025-07-26 17:36:50 +10:00
Stenzek 6c4300c6c7
CI/Flatpak: Simplify deps build
I'll probably drop it in the future since there was only one or two
people who indicated that they're using it. But at least now I don't
have another file I need to keep up to date.

So consider the Flatpak package as deprecated.
2025-07-26 17:36:50 +10:00
Stenzek ad4a909aa4
FullscreenUI: Fix incorrect parent directory button 2025-07-26 14:03:43 +10:00
Stenzek 37efd34a99
Qt: Drop renderer option from setup wizard
No need when automatic renderer exists.
2025-07-26 14:03:43 +10:00
Víctor "IlDucci d28c0a00b4
Spanish (Spain) update 2025-07-25 (#3490)
- New strings have been translated.
- Corrected a typo in the "seconds" counter.
- Other minor changes.
2025-07-26 14:03:07 +10:00
Stenzek d0e00178c3
Qt: Fix fullscreen action enabled on startup 2025-07-24 22:05:24 +10:00
Stenzek a660c13625
System: Always adjust video size for capture
Fixes auto resolution size with non-multiple-of-4 window sizes.
2025-07-24 21:47:09 +10:00
Stenzek 22fb032f91
GPUThread: Fix very rare or impossible FIFO corruption
If the buffer wraps around once, and the GPU thread does not execute any
commands before the CPU thread reaches the end again, it could lose one
buffer's worth of commands.

Also don't keep incrementing the work count while this is happening.
Super unlikely unless a ton of data is being pushed through the FIFO.
2025-07-24 21:08:53 +10:00
Stenzek 13233cc82e
PostProcessing/GLSL: Fix compile error with interface blocks 2025-07-24 12:08:53 +10:00
Stenzek 0522b6ffb5
CDImagePPF: Ignore out-of-range sectors 2025-07-23 22:00:13 +10:00
Stenzek b6b1a5e33c
CDROM: Add option to disable speedup on MDEC/FMVs 2025-07-22 23:03:22 +10:00
Stenzek 4f1af2f6eb
Qt: Increase debugger column size 2025-07-22 22:16:25 +10:00
Stenzek 46cf8e68cd
SPU: Display reverb environment in debug window 2025-07-22 22:16:25 +10:00
Stenzek 932104c581
SPU: Fix VU meter display when scrolling 2025-07-22 22:16:25 +10:00
Nahuel Gaitan 56b5b337aa
PSFLoader: Fix recursive _lib loading (#3489) 2025-07-22 21:08:45 +10:00
Stenzek 46a071f3e7
Qt: Fix disabling of sprite texture filtering option 2025-07-22 20:30:34 +10:00
Stenzek 2e56f5d3ae
Qt: Fix another usage of QObject::disconnect() 2025-07-22 20:28:53 +10:00
Stenzek a5826ea6ae
Qt: Hide apply image patches in game settings
Doesn't makes sense, because game settings are applied after
identification.
2025-07-22 20:18:20 +10:00
Davide Pesavento a34aee68a7 Declare all namespace-scope constants as inline
This is the idiomatic way since C++17
2025-07-22 19:29:37 +10:00
Davide Pesavento 69da2df8e9 Make all single-argument constructors explicit 2025-07-22 19:29:37 +10:00
Davide Pesavento 9ab4e4d70c
Qt: Add game list button to toggle game icons (#3488) 2025-07-21 19:05:04 +10:00
Stenzek cdd054702c
CPU: Log on break exception without PCDrv 2025-07-20 21:10:00 +10:00
Stenzek a5b46f7676
MediaCapture: Fix use-after-free when starting 2025-07-20 21:09:46 +10:00
Stenzek 161637e3b7
Qt: Disconnect safe mode widget on recreate 2025-07-20 16:58:36 +10:00
Stenzek 7c01bde94e
Log: Remove redundant channel 2025-07-20 16:58:24 +10:00
Stenzek 9321a32d39
Qt: Fix startup cancellation on window close 2025-07-20 14:21:42 +10:00
Stenzek f65ca0dab3
FullscreenUI: Don't round achievements inner progress bars 2025-07-20 14:21:42 +10:00
Stenzek 9e17e38c9d
FullscreenUI: Custom draw loading screen 2025-07-20 14:21:42 +10:00
Stenzek 3199617124
FullscreenUI: Use layout scale for loading screen 2025-07-20 14:21:42 +10:00
Stenzek df9506fbf6
FullscreenUI: Center loading screen logo 2025-07-20 14:21:42 +10:00
Stenzek 311e93fae4
FullscreenUI: Use game path for loading screen image
Makes it work with custom titles.
2025-07-20 14:21:42 +10:00
Stenzek 4440ae3b78
GPUThread: Store copy of game info
Don't save it in FullscreenUI.
2025-07-20 14:21:42 +10:00
Stenzek 5fd61b6e3a
Qt: Fix disc icon being used for games without icons 2025-07-20 14:21:42 +10:00
Stenzek df432c6c64
Qt: Fix crash booting unscanned games 2025-07-20 14:21:42 +10:00
shikulja 47d44701fe
Update Russian translation (#3486)
* Update Russian translation

* Update Russian translation

* Update Russian translation

* Update Russian translation
2025-07-20 14:21:24 +10:00
Stenzek a8506f4708
Qt: Disable more actions while system starting 2025-07-19 18:16:15 +10:00
Stenzek ad53fc2345
Qt: Fix fullscreen UI shutdown on language change 2025-07-19 18:16:15 +10:00
Stenzek 278614a415
FullscreenUI: Display game cover when loading 2025-07-19 18:16:15 +10:00
Stenzek 75314f79de
FullscreenUI: Localize base strings (e.g. dir selector) 2025-07-19 18:16:15 +10:00
Stenzek 63e0acbe9c
FullscreenUI: Fix held colour in popup menus 2025-07-19 17:20:37 +10:00
Stenzek 3453c897d1
FullscreenUI: Add native cover download 2025-07-19 17:20:37 +10:00
Stenzek a9862461f3
FullscreenUI: Add modal progress callback 2025-07-19 17:07:34 +10:00
Stenzek 3e232b76b3
Qt: Improve more window close behaviour
- Closing FSUI display window without a game running should not exit the
  application.
- Closing display window with FSUI started should exit the application
  in nogui mode.
2025-07-19 14:34:30 +10:00
Stenzek 8bd493eae0
Qt: Re-update main window geometry on nogui exit
Also fix the game list refresh executing on the incorrect thread.
2025-07-19 13:46:33 +10:00
Davide Pesavento 1b56940ad0 Qt: Update menu and toolbar state when toggling fullscreen via double click
Amends 1289e045b9
2025-07-19 12:14:02 +10:00
Davide Pesavento f446e24b20 Qt: Don't exit fullscreen when switching to game list with RenderToSeparateWindow
Amends 24a16db437
2025-07-19 12:14:02 +10:00
Davide Pesavento 4c12dc8ab9
Qt: Don't enable window size menu if system isn't running (#3484) 2025-07-19 12:10:34 +10:00
Stenzek 24a16db437
Qt: Handle fullscreen cases on MacOS
If the user exits fullscreen with the window button, restore
render to main.
2025-07-19 01:04:22 +10:00
Stenzek b545671d67
MetalDevice: Retain references to layer
Apparently the allocate method returns +0 references.
2025-07-19 01:04:19 +10:00
Stenzek 210f492487
MetalDevice: Remove pipeline cache
It seems to be broken when appending using from-source created
libraries.

Similar issues have been described in:
- https://bugreports.qt.io/browse/QTBUG-114338
- https://bugreports.qt.io/browse/QTBUG-108216
2025-07-19 01:04:19 +10:00
Stenzek 05dcb17334
Qt: Fix unused lambda capture warning 2025-07-18 20:29:44 +10:00
Stenzek 6615fc79d6
Qt: Work around autouic bug causing unnecessary recompiles 2025-07-18 20:29:24 +10:00
Stenzek a002fd2672
Qt: Include moc sources in main source
Saves compiling a bunch of files with MSBuild.
2025-07-18 19:59:13 +10:00
Stenzek fc613a5267
Qt: Fix incorrect placeholders in translations 2025-07-18 18:04:46 +10:00
Stenzek 9442ba74af
Qt: Remove window state save
Instead, explicitly save the toolbar area. Also adds it to the context
menu.
2025-07-18 17:42:01 +10:00
Stenzek b2ad193178
Qt: Store window geometry in human-readable form 2025-07-18 17:42:01 +10:00
Stenzek 6b969a0b94
Qt: Refactor and remove multiple sources of truth for render-to-main 2025-07-18 16:14:29 +10:00
Stenzek 0f2ef98747
Qt: Turn cover downloader into a non-modal window
Same as the others.
2025-07-18 13:06:01 +10:00
Stenzek 3f2b6995bc
Qt: Fix timestamps in log window if file timestamps on 2025-07-18 12:46:58 +10:00
Davide Pesavento 1289e045b9 Qt: Make "Fullscreen" toolbar button and menu item checkable 2025-07-18 12:44:20 +10:00
Davide Pesavento 2f13538cc0 Qt: Fix game list icons when toggling disc set merging
Also, make sure we call beginFilterChange() in the proxy model
as mentioned in the Qt docs.
2025-07-18 12:44:20 +10:00
Davide Pesavento 4b5be29eb2 Qt: Hide GameListWidget buttons instead of disabling them 2025-07-18 12:44:20 +10:00
Davide Pesavento 21f44b3782 Qt: Refactor GameListWidget tool buttons and corresponding menu actions 2025-07-18 12:44:20 +10:00
Davide Pesavento 01b81c74ef
Qt: Fix crash on triggering certain actions before display widget is created (#3482) 2025-07-18 12:43:45 +10:00
Stenzek 67381754fa
Qt: Fix game start flicker with hide-main-window checked 2025-07-17 21:46:05 +10:00
Stenzek c6cb3cdd68
Qt: Update Korean translation by Hack茶ん 2025-07-17 21:46:05 +10:00
Stenzek 6ae334b30c
Qt: Avoid wildcard disconnect
See https://bugreports.qt.io/browse/QTBUG-134610
2025-07-17 21:46:05 +10:00
Stenzek 4b62ccf2ff
Qt: Redirect Qt messages to logger 2025-07-17 21:46:05 +10:00
Stenzek 6f65a15bb9
CrashHandler: Catch SIGABRT 2025-07-17 21:46:05 +10:00
Stenzek 9c81425043
Qt: Fix format strings in es-ES 2025-07-17 21:46:05 +10:00
Stenzek 2aaeaf6f99
Qt: Add missing event type check 2025-07-17 21:46:05 +10:00
Daniel Nylander da6ba416c9
Updated Swedish translation (#3481) 2025-07-16 17:11:13 +10:00
Stenzek a890902d5b
Qt: Further eliminate redundant window shows
And remove a couple of hacks.
2025-07-16 17:10:31 +10:00
Anderson Cardoso 40b081c8ff
Atualiazação Português do Brasil (#3480)
Atualizado para a última versão
2025-07-16 16:39:16 +10:00
Stenzek b07998512e
Qt: Refactor render window lifecycle
Remove multiple sources of truth, eliminate bugs in handling edge cases
when switching between modes.
2025-07-16 16:38:31 +10:00
Stenzek a5e3f163a5
Misc: Make bitfield unions trivially copyable 2025-07-13 20:29:00 +10:00
Stenzek 8ca68a052a
GPUDevice: Remove unused fields 2025-07-13 20:29:00 +10:00
Stenzek 5c7a599cad
Qt: Couple of consistency fixes 2025-07-13 20:29:00 +10:00
Stenzek cd77ace12a
FullscreenUI: Fix going back to root directory on Linux 2025-07-13 20:29:00 +10:00
Stenzek 2dc25a07ac
NeGconRumble: Remove unused fields 2025-07-13 19:55:38 +10:00
Stenzek b93353647f
Qt: Clear help text map on reload
Saves keeping messages around for pointers that are no longer valid.
2025-07-13 17:32:56 +10:00
Stenzek 8ef97b9b46
FullscreenUI: Sort unlocked achievements by unlock time 2025-07-13 17:29:52 +10:00
Stenzek be867c815d
FullscreenUI: Minor polish to achievements list 2025-07-13 17:29:37 +10:00
Stenzek 43543ddedc
FullscreenUI: Improve icons in file selector 2025-07-13 16:54:54 +10:00
Stenzek 3bb67c785e
D3DCommon: Load d3d12.dll dynamically 2025-07-13 16:31:49 +10:00
Stenzek 4ead72747b
D3DCommon: Load dxgi.lib dynamically 2025-07-13 16:13:19 +10:00
Stenzek 0195b2886e
D3DCommon: Load d3d11.dll dynamically 2025-07-13 16:12:44 +10:00
Stenzek 3928eaff54
D3DCommon: Load D3DCompiler dynamically 2025-07-13 16:11:59 +10:00
Stenzek 5e2e39f642
VulkanDevice: Use driver type enum for auto selection 2025-07-13 15:40:53 +10:00
Stenzek 792b72b955
Qt: Reenable WinPanel style for patches
Partial revert of 7eb2b07.

Looks much worse in Fusion/default style.
2025-07-13 15:33:21 +10:00
Stenzek 97a0f4669f
ShaderGen: Fix use of reserved 'packed' keyword 2025-07-13 15:28:46 +10:00
Stenzek 1cad6389aa
AnalogController: Fix flipped log message 2025-07-13 15:28:46 +10:00
Davide Pesavento 7eb2b07e39 Qt: Don't draw a frame if there are no patches 2025-07-13 15:27:29 +10:00
Davide Pesavento d0c3f7d5a2 Qt: Reduce layout margins in postprocessing settings
And remove a redundant VBoxLayout
2025-07-13 15:27:29 +10:00
Davide Pesavento 0e9f116a2e Qt: Turn `retroachievements.org` into a hyperlink 2025-07-13 15:27:29 +10:00
Stenzek 2fad6478b4
CDImage: Include the WAV file's details when incompatible 2025-07-11 21:25:10 +10:00
Stenzek 2308c5ddc6
Qt: Check cache when getting game icon for window
Apparently forgot this...
2025-07-10 21:33:28 +10:00
Stenzek 9e319ff495
FullscreenUI: Avoid ID duplication in choice dialogs
If two items, e.g. discs happen to have the same display name.
2025-07-10 20:39:14 +10:00
Stenzek 00623ebf8b
FullscreenUI: Fix rounding on widget grab rects 2025-07-10 20:37:37 +10:00
Stenzek f21ab0b70a
GPUDevice: Fix ARM GPU detection 2025-07-10 19:36:14 +10:00
Stenzek 13e4515118
GPU: Send read command in SW if stats are enabled
Won't do anything, but it does update the counter.
2025-07-10 19:30:35 +10:00
Stenzek cd2d0503da
System: Fix frame advance+runahead stepping 2 frames 2025-07-10 12:43:23 +10:00
Stenzek e4e57c674d
GPUDevice: Use driver type fields 2025-07-10 12:17:11 +10:00
Stenzek ef26d5cb74
GPUDevice: Backport driver type detection 2025-07-09 22:17:14 +10:00
Stenzek 1e930c4063
ShaderGen: Drop DRIVER_V3D and DRIVER_POWERVR macros
They're not needed anymore.
2025-07-09 22:12:46 +10:00
Stenzek cc3bc120a4
OpenGLContext: Prefer GLES over GL<3.2
Ends up having a larger feature set in GLSL.
2025-07-09 21:46:45 +10:00
Stenzek 63adf475d4
VulkanDevice: Avoid defaulting to Vulkan for V3D driver
Image copies are broken.

https://discord.com/channels/695640472202379425/695823554712698962/1392128815689629707
2025-07-09 21:20:43 +10:00
Stenzek b9a9ea220e
PostProcessing/FX: Don't try to compile for GL<3.2
No interface blocks or binding layouts. Get a better driver for gosh
sake.
2025-07-09 21:17:25 +10:00
Stenzek 80a689257c
PostProcessing/GLSL: Support OpenGL 3.1 2025-07-09 21:16:43 +10:00
Stenzek 742cfcb12b
ShaderGen: Emit location qualifiers for SPV without interface blocks
Required for GLSL post-processing with OpenGL 3.1.
2025-07-09 21:15:56 +10:00
Stenzek 2d29c63708
ShaderGen: Emit fallback functions for GLSL < 4.0 2025-07-09 21:15:10 +10:00
Stenzek 601173b01e
ShaderGen: Add UseGLSLInterfaceBlocks() 2025-07-09 21:14:51 +10:00
Stenzek f273dcff18
GameList: Fix possible bad optional unwrap in ApplyCustomAttributes() 2025-07-09 20:05:50 +10:00
Stenzek 6f3a6d7934
Qt: Remove unused includes 2025-07-09 20:05:50 +10:00
Davide Pesavento 1bf248b299 Qt: Swap order of read/seek speedup cycles in Advanced settings
To match the order in Console settings.
2025-07-09 20:05:31 +10:00
Davide Pesavento a012d496ea Qt: Fix resetting per-game CDROM speedup and SIO settings
Amends d2c09dfaff and 0098c60ee8
2025-07-09 20:05:31 +10:00
Davide Pesavento cacd174642 Qt: Rearrange log settings checkboxes 2025-07-09 20:05:31 +10:00
Davide Pesavento 002cb942bb Qt: Fix initial UI state of log timestamps checkboxes 2025-07-09 20:05:31 +10:00
Davide Pesavento d8a267162d
Qt: Set default button in settings and ISO browser (#3475) 2025-07-07 22:14:58 +10:00
zkdpower 9ba3129b67
Update the Simple-Chinese translation to latest. (#3474) 2025-07-07 22:12:44 +10:00
Davide Pesavento 3f7e5ca1cb
Qt: Always connect the open folder button (#3472)
And make the line edit read-only instead of disabling it.
2025-07-07 22:12:07 +10:00
Stenzek fb7772871c
GameDatabase: Use string_view for disc sets
Avoid the allocations, apparently forgot this one.
2025-07-05 14:12:29 +10:00
Stenzek 0a267ce158
Common: Add more tests 2025-07-05 14:12:29 +10:00
Stenzek 7dcdff35cb
Qt: Include 'Refresh Progress' button in achievement settings 2025-07-03 19:13:07 +10:00