Stenzek
aaffbd66d9
FileSystem: Extract find result sorting to function
2026-10-10 21:47:40 +10:00
Stenzek
066d89715c
FileSystem: Add error parameter to FTell64()
2026-10-10 21:47:40 +10:00
Stenzek
60aec342eb
FileSystem: Make OpenSharedCFile() wrap OpenCFile() on non-Windows
2026-10-10 21:47:40 +10:00
Stenzek
659ff37089
FileSystem: Backport additional helper functions
2026-10-10 21:47:40 +10:00
Stenzek
ba3590f902
Core: Don't reset folders when resetting settings
...
Users having their data save locations would be unexpected.
2026-10-10 21:47:40 +10:00
Stenzek
95722d8e99
Settings: Don't copy controller type to game
...
These are part of the controller settings...
2026-10-10 21:47:40 +10:00
Stenzek
8bb030b8cf
Settings: Add a dedicated key for overlays
2026-10-10 21:47:40 +10:00
Stenzek
4ad124e8d1
StringUtil: Fix possible integer overflow in EncodeAndAppendUTF8()
2026-10-10 21:47:40 +10:00
Stenzek
4e652d5bb9
System: Provide content details to OnSystemStarted()
...
Avoids the OnGameChanged() call later.
2026-10-10 21:47:40 +10:00
Stenzek
07d3a934a6
GameList: Synchronize settings between FullscreenUI and Qt
...
Also share translations with other hosts.
2026-10-10 21:47:40 +10:00
Stenzek
e02bb9c748
GameList: Allow use of external SettingsInterface
2026-10-10 21:47:39 +10:00
Stenzek
d253d0a1d9
GameList: Don't persist cache map between refreshes
...
It was cleared anyway.
2026-10-10 21:47:39 +10:00
Stenzek
a4048c9c37
GameDatabase: Sort disc sets by save title
...
And allow lookup by name.
2026-10-10 21:47:39 +10:00
Stenzek
dbc8b22917
Threading: Add WaitFor() to ConditionVariable
2026-10-10 21:47:39 +10:00
Stenzek
83153676d7
SettingsInterface: Guard against copying to self
2026-10-10 21:47:39 +10:00
Stenzek
93e53494ac
Achievements: Separate login and credential saving steps
...
Allows saving to an external settings interface, not needed on desktop.
2026-10-10 21:47:39 +10:00
Stenzek
364c7bd485
Achievements: Extract bucket names out of FullscreenUI
2026-10-10 21:47:39 +10:00
Stenzek
18e2aa1615
Deps: Update to 20261010
2026-10-10 21:47:39 +10:00
Stenzek
9cb25f7e98
Qt: Fix crash when desktop file check is skipped
2026-10-10 21:47:38 +10:00
Stenzek
21b05557c7
Qt: Fix desktop environment conditions
2026-10-10 21:47:19 +10:00
Stenzek
cbcbbe1eba
GameDB: Disable auto-analog on Khamrai
2026-10-10 15:37:08 +10:00
Stenzek
df8059758b
Achievements: Don't try to fetch badges without cache
...
Why are you trying to run two instances out of the same directory anyhow?
2026-10-07 22:15:51 +10:00
Stenzek
e0668baab4
Achievements: Don't lock in prefetch callback
...
Always executes on the core thread, and avoids a deadlock if the cache
is not open (e.g. you are running two instances).
2026-10-07 21:53:36 +10:00
Stenzek
697599c47a
CI: Use prefix path in cross appimage
...
Hopefully fix it being broken in Qt 6.12.
2026-10-06 17:54:22 +10:00
Stenzek
baf6c425d0
System: Fix incorrect title being copied into save state header
...
How on earth did I derp this up...
2026-10-06 17:39:04 +10:00
Stenzek
898b6a3caa
GameDB: Fix a bunch of incorrect release dates
2026-10-06 17:39:04 +10:00
Stenzek
4122fed9ad
INISettingsInterface: ClearSection() should not create an empty section
2026-10-02 20:33:49 +10:00
Stenzek
9d00d6b6e3
GPU/HW: Use correct format for ROV buffers
2026-10-02 20:33:48 +10:00
Stenzek
fd88101c80
VulkanDevice: Fix spec violation in ROV clear
2026-10-02 19:47:46 +10:00
Stenzek
14c2267628
Qt: Use AppRoot for translations
...
Hopefully fix it breaking when running under an AppImage on Linux, with
AppRun having a different AT_EXECFN value.
2026-10-01 21:42:33 +10:00
Stenzek
acad15618e
Deps: Update to 20261001
2026-10-01 21:09:12 +10:00
Stenzek
8fa9ef5394
FullscreenUI: Fix focus reset on escape in game list search
2026-10-01 15:35:33 +10:00
Stenzek
3f037f2682
CDImageCHD: Read out the correct sector size depending on mode
...
Probably doesn't affect anything in normal PSX dumps, but possibly
homebrew.
2026-10-01 15:09:00 +10:00
Stenzek
e68431fda8
CDImagePPF: Handle non-mode2 sectors
...
Don't think anything will actually rely on this, but just in case...
2026-10-01 15:08:57 +10:00
Stenzek
4d3dadd07e
CDImageMemory: Read each sector in its native format
...
Hopefully fixes the crash with mode-1 sectors when precaching is
enabled.
2026-10-01 15:08:57 +10:00
Stenzek
39a1e37be9
Qt: Update English translation catalog
2026-10-01 14:35:47 +10:00
Stenzek
003ff5a8d7
Qt: Update machine translations
2026-10-01 14:35:09 +10:00
Stenzek
8d42a0c022
FullscreenUI: Fix compiler warning
2026-09-30 21:25:05 +10:00
Stenzek
2d8e5b68a5
MDEC: Don't clear output FIFO on new command
...
Fixes corrupted MDEC-decoded-images in Bealphareth.
2026-09-30 21:25:03 +10:00
Stenzek
b3b2bbc751
FullscreenUI: Display progress for on-demand game list load
...
Better than freezing up without any indication as to what's going on.
2026-09-30 00:33:10 +10:00
Stenzek
2c1fba1cd5
FullscreenUI: Size loading screen text and progress separately
...
Avoids wrapping on longer text.
2026-09-30 00:31:30 +10:00
Stenzek
4091d29353
FullscreenUI: Fix change disc menu getting stuck in some scenarios
...
e.g. using playlist.
2026-09-29 23:44:09 +10:00
Stenzek
a429876f53
Misc: Remove more unused include guards
2026-09-29 23:34:08 +10:00
Stenzek
41c1fb10e9
Qt: Use posix_spawn for updater relaunch on Linux
2026-09-29 18:06:25 +10:00
Stenzek
bfb23fb8c9
GPU: Improve CRTC function readability
2026-09-29 11:34:20 +10:00
Stenzek
60f7ffa2d0
GPU: Fix scanline sync before vertical_display_start
...
If the current line was before start, it wouldn't sync before end.
2026-09-29 11:32:07 +10:00
Stenzek
8a46ed8b7d
Misc: Replace std::shared_mutex with Threading::SharedMutex
2026-09-28 21:17:34 +10:00
Stenzek
d78fd23db9
ImGuiManager: Avoid unsafe read of context pointer on core thread
2026-09-28 01:33:14 +10:00
Stenzek
616c41d492
ImGuiManager: Stash overlays in separate draw list when transition active
...
Fixes OSD messages and notifications getting caught in the transition
and looking terrible.
2026-09-28 01:33:14 +10:00
Stenzek
c4b4496e9b
FullscreenUI: Display subset icon as game icon in subset view
...
Same for the background.
2026-09-28 00:29:51 +10:00
Stenzek
f3d2843541
FullscreenUI: Add background image blurring for headers
2026-09-28 00:29:51 +10:00
Stenzek
d901b25907
D3D12Device: Ensure all samplers are initialized in LookupSingle()
...
Because a single sampler can later get used as a group.
2026-09-28 00:29:51 +10:00
Stenzek
9fcff157a2
D3D12Device: Remove MAX_UNIFORM_BUFFER_SIZE
...
This was a Vulkan-only quirk.
2026-09-28 00:29:51 +10:00
Stenzek
de1fd8c667
GPUDevice: Move UNIFORM_PUSH_CONSTANTS_SIZE into base class
2026-09-28 00:29:50 +10:00
Stenzek
2859162551
GPUDevice: Remove MultiTextureAndUBO pipeline layout
...
Was only used by ReShade, which can be swapped to use the push constant
layout. The push constants remain unused, which _should_ hopefully mean
the cost is basically zero because they're at the end of the root
signature and not read by the shader.
2026-09-28 00:29:50 +10:00
Stenzek
2ab88c6d9b
ImGuiManager: Move blur constants into main UBO
...
Avoids pipeline changes while drawing.
2026-09-28 00:29:50 +10:00
Stenzek
10632b92e5
GPU/HW: Simplify pipeline layouts
2026-09-28 00:29:50 +10:00
Stenzek
5e54cade98
GPU/HW: Fix background replacements disappearing after TC toggled off
2026-09-28 00:29:50 +10:00
Stenzek
dc4e772980
VulkanDevice: Fix incorrect hazard tracking in stream buffer
...
Draw A (maps) -> Flush -> Draw B (no map) -> Draw C (map) would allow
Draw C to overwrite Draw A's uniforms.
Mainly an issue if we run out of descriptors.
2026-09-28 00:29:50 +10:00
Stenzek
0619481dcb
MetalDevice: Drop feedback loop path
...
I could never test this since I don't have a non-Apple GPU, and I don't
think it ever worked properly anyway.
2026-09-28 00:29:50 +10:00
Stenzek
56dbfea7fd
Qt: Fix doubled-up help description
2026-09-27 12:33:12 +10:00
Stenzek
f9e12bb1e3
Qt: Simplify mute setting callback
2026-09-26 21:23:49 +10:00
Stenzek
79fc5454d1
Common: Remove unnecessary include
2026-09-26 21:23:38 +10:00
Stenzek
a2aa7295e3
GameList: Use correct string_view constructor
2026-09-26 21:23:31 +10:00
Stenzek
62e48451aa
Win32RawInputSource: Fix wrong OnInputDeviceConnected() call
2026-09-26 21:23:04 +10:00
Stenzek
8293e84b86
Qt: Display bound devices in controller pages
...
Or "Multiple Devices". This way the labels don't need to display the
device name, reducing the chances of it being ellipised.
2026-09-26 18:08:38 +10:00
Stenzek
202c7d8399
Qt: Add pill-label css class
2026-09-26 17:59:45 +10:00
Stenzek
85c4acea80
Timer: Use global initializer for timer frequency on Windows
...
Gets rid of a branch.
2026-09-26 17:16:11 +10:00
Stenzek
4c721f375b
VideoThread: Use dynamic spin loop on ARM
...
ISB timing can vary between CPUs and clusters.
2026-09-26 17:13:36 +10:00
Stenzek
608a0c3c26
Common: Use single isb for ARM PauseCPU()
...
Yield was definitely wrong here, I should read the documentation
properly...
2026-09-26 17:13:11 +10:00
Stenzek
bbebc317a7
Common: Use second thread for assertion dialogs
...
Stops everything exploding with recursive assertions when the message
pump is allowed to continue for the calling thread.
2026-09-26 02:38:24 +10:00
Stenzek
d04078319a
GameList: Fix possible null string-view construction
2026-09-26 01:44:59 +10:00
Stenzek
edd41dff15
SDLInputSource: Use persistent identifiers when mapping
...
Allows player numbers to change without invalidating bindings.
2026-09-26 01:43:06 +10:00
Stenzek
7495b76245
SDLInputSource: Rely on reload to enable accelerometer
...
Since device changes trigger a reload now, we don't need to scan the
binding list just to check if anything needs it.
2026-09-26 01:29:59 +10:00
Stenzek
59e2f1da2a
SDLInputSource: Poll immediately after initializing
...
Reduces delay before controller is detected.
2026-09-26 01:29:59 +10:00
Stenzek
64b1e2b46c
SDLInputSource: Simplify polling
...
And use the actual events for the changed-flag, rather than counting.
2026-09-26 01:29:59 +10:00
Stenzek
aa77ed54da
Qt: Move DS5 player LED setting into LED dialog
...
Free up space.
2026-09-26 01:29:55 +10:00
Stenzek
7a8e8a0777
InputManager: Use SmallString for binding conversions
...
And enable more RVO.
2026-09-26 01:05:55 +10:00
Stenzek
eed22aa286
InputManager: Use a shared mutex for synchronization
...
The sources mutex protects source state when it is read by multiple threads.
When the exclusive lock is acquired, a source is updating its internal controller list and it is
not safe for another thread to read. As such, the write lock is only acquired on the core thread.
Public functions to InputManager will take the shared lock when they want to read aforementioned
data. Core thread functions do not need to acquire the shared lock, because doing so puts us at
risk of deadlocking from recursive locking.
However, if public functions are called on the core thread, taking the shared lock briefly will
be fine.
2026-09-25 21:35:44 +10:00
Stenzek
d76435ca76
InputManager: Extract internal state to private header
2026-09-25 21:35:44 +10:00
Stenzek
501d3a989c
InputManager: Reload input bindings after source hotplug
...
Instead of doing it on every connection, batch them together.
2026-09-25 21:35:44 +10:00
Stenzek
0ae22c1a95
ImGuiManager: Read pointer state directly from InputManager
...
No need to queue to the video thread for movement.
2026-09-25 21:35:44 +10:00
Stenzek
58efbb8c81
InputManager: Use atomics for host pointer position
...
Thread safe reading.
2026-09-25 21:35:44 +10:00
Stenzek
ee8b45a83d
InputManager: Use atomics for rawinput/pointer count
...
Fixes data races on read from other threads.
Also eliminate the second source of truth for gamepad type.
2026-09-25 21:35:44 +10:00
Stenzek
687178a00f
InputManager: Internalise private functions
2026-09-25 21:35:44 +10:00
Stenzek
73b5a24165
Threading: Add SharedLockGuard helper
...
And remove UpgradeLock, not doing it this way.
2026-09-25 21:35:44 +10:00
Stenzek
d9cb895ddb
Controller: Unify some of the translation strings
2026-09-25 15:25:46 +10:00
Stenzek
e68536dcd7
NeGcon: Create common base class for NeGcon controllers
...
And move common logic into base class.
2026-09-25 15:25:46 +10:00
Stenzek
62299a5092
LightgunController: Create base class for lightgun controllers
...
And move common logic into there.
2026-09-25 15:25:46 +10:00
Stenzek
8e4dbf1532
Qt: Fix latency description not updating
2026-09-24 18:30:24 +10:00
Stenzek
cd5066662c
Qt: Bind audio output volume through regular settings updates
2026-09-24 16:20:34 +10:00
Stenzek
bbd84255e4
Qt: Simplify output latency widget updates
...
Use the new helper, and add a reset button.
2026-09-24 16:19:26 +10:00
Stenzek
86b333d185
Qt: Fix per-game achievement notification duration sliders
...
And unify slider resets.
2026-09-24 16:16:12 +10:00
Stenzek
31d44058a1
Achievements: Use a second mutex for notification state
...
Avoids requiring to take the main lock that is shared by the core
thread, removing a critical section between both threads.
2026-09-24 15:24:26 +10:00
Stenzek
7326f90c93
Achievements: Avoid lock when settings unchanged
2026-09-24 12:59:08 +10:00
Stenzek
f0fb6f7e74
Achievements: Avoid deadlock with leaderboard trackers disabled
...
Ends up with a deadlock in System::BootSystem -> Achievements::OnSystemStarting -> Achievements::SetHardcoreModeState -> Achievements::OnHardcoreModeChanged -> System::ApplySettings -> System::CheckForSettingsChanges -> Achievements::UpdateSettings otherwise.
2026-09-24 12:59:08 +10:00
Stenzek
8148a81968
Threading: Add SharedMutex lightweight wrapper
2026-09-23 21:42:02 +10:00
Stenzek
473025995f
Tests: Fix directory not cleaned up
2026-09-23 17:30:40 +10:00
Stenzek
2c9866ef9e
Qt: Dynamically adjust log window colours to theme
...
Fixes unreadable text in some themes.
2026-09-22 16:26:55 +10:00
Stenzek
4224e9aabf
Updater: Directly wait for parent to exit instead of using shell
...
Also use NSWorkspace to launch applications.
Should hopefully fix the "updater getting stuck running in the
background" behaviour that started in MacOS 27.
2026-09-22 15:27:32 +10:00