386 Commits

Author SHA1 Message Date
Stenzek
4bac7cb79e
FullscreenUI: Fix some dialogs not being cancellable
i.e. exitable with right mouse click/B button.
2025-03-15 02:18:20 +10:00
KamFretoZ
db3b689166
FullscreenUI: Add Dark Ruby theme (#3389) 2025-03-15 02:17:54 +10:00
Stenzek
1189f53840
FullscreenUI: Add 'Automatic' theme that syncs with Qt 2025-03-15 00:42:02 +10:00
Stenzek
6e27b8ab91
FullscreenUI: Add option to start/open to game list 2025-03-14 23:57:14 +10:00
Stenzek
3d0f038697
FullscreenUI: Move game list settings to main tab
And add resume to game list/grid.
2025-03-14 23:53:50 +10:00
Stenzek
cffafad2ca
ImGuiManager: Use fullscreen UI theme for OSD 2025-03-14 22:36:14 +10:00
Stenzek
e422afdec1
FullscreenUI: Improve achievements pause menu overlays
- Add most recent unlock/nearest completion.
- Make it look nicer and better fit with the rest of the interface.
2025-03-14 20:50:20 +10:00
Stenzek
44af55a77f
FullscreenUI: Differentiate title/subtitle colours
Makes it easier to read.
2025-03-12 01:46:04 +10:00
Stenzek
72a0ba1e8e
FullscreenUI: Fix pause menu light theme shadow colour 2025-03-12 00:19:32 +10:00
Stenzek
aeadd4c280
FullscreenUI: Move game info to top of pause menu 2025-03-11 23:19:00 +10:00
Stenzek
d6ab840e4b
FullscreenUI: Use RetroAchievements game icon as fallback game image 2025-03-11 22:38:43 +10:00
Stenzek
2bfbec3e9e
Settings: Use new key name for depth threshold
Because of the changed range.
2025-03-07 21:32:57 +10:00
Stenzek
e73ca9e052
Qt: Fix new range for depth clear threshold 2025-03-07 18:05:20 +10:00
Stenzek
859f5090c8
FullscreenUI: Update translation strings 2025-03-02 12:01:55 +10:00
KamFretoZ
38146f2023
FullscreenUI: Fix toast colors and add more themes (#3381) 2025-03-02 12:01:27 +10:00
Stenzek
965da856db
FullscreenUI: Add additional rounding to some dialogs 2025-03-01 17:10:09 +10:00
Stenzek
34fdbafe85
FullscreenUI: Add drop shadows to most text
Improves readability with custom backgrounds.
2025-03-01 16:00:05 +10:00
Stenzek
5a4e87aba3
FullscreenUI: Reorder interface settings to match Qt 2025-03-01 13:10:44 +10:00
KamFretoZ
5dc0a3630a
FullscreenUI: Add Themes (#3380) 2025-03-01 12:41:06 +10:00
Stenzek
89d9842c7e
FullscreenUI: Fix popup title colours 2025-03-01 01:11:26 +10:00
Stenzek
be970bcfe4
Qt: Handle inverted+negated axes when mapping 2025-02-28 18:06:51 +10:00
Stenzek
0733e173b2
FullscreenUI: Add BackgroundProgressCallback 2025-02-28 15:46:53 +10:00
Stenzek
fbbc4943f6
FullscreenUI: Fix crash in game properties on non-scanned file 2025-02-24 23:48:23 +10:00
Stenzek
369f62318f
Cheats: Only display codes for selected revision 2025-02-15 22:45:17 +10:00
Stenzek
e9bfca8cca
System: Add 'Fast Forward Memory Card Access' option
Does what it says on the tin.
2025-02-15 12:38:32 +10:00
Stenzek
13d58d8ed0
Qt: Move fast boot/fast forward to console settings
Makes more sense there, and matches Android.
2025-02-15 12:32:22 +10:00
Stenzek
dc6d6b91d4
PostProcessing: Fix abort on slow compile in big picture 2025-02-14 19:01:40 +10:00
Stenzek
57cb2f846e
FullscreenUI: Fix system unpausing on shutdown 2025-02-05 20:03:58 +10:00
Stenzek
64d3716cfd
GPU: Further simplify draw rect calculation
Remove "Stretch Vertically" option, it was very confusing to users.

Integer scale will prefer whichever direction gets a larger draw
rectangle/preserves as much detail.
2025-02-02 17:02:58 +10:00
Stenzek
0d9e6bd482
FullscreenUI: Use effective value for achievement options enable 2025-01-30 01:18:47 +10:00
Stenzek
02234715c5
FullscreenUI: Move UpdateRunIdleState() for system soft-fail to host
That way it's always in the correct state for e.g. memory card shutdown
confirmations.
2025-01-29 20:40:14 +10:00
Stenzek
4da7692a2d
System: Adjust initialization order to better fit FullscreenUI
Fixes jankyness of rendering the landing page when trying to resume
a game with achievements active, or when loading state.
2025-01-29 19:19:53 +10:00
Stenzek
1b678d0ebc
FullscreenUI: Allow using right mouse button for 'back' 2025-01-29 19:19:53 +10:00
Stenzek
224cb6ac8e
FullscreenUI: Fix ClosePauseMenu() running on wrong thread 2025-01-29 19:19:49 +10:00
Stenzek
0665cb5306
FullscreenUI: Further refine achievements login dialog 2025-01-27 13:34:45 +10:00
Stenzek
0e3668a7bb
GameList: Show achievement information in game list 2025-01-26 13:49:08 +10:00
Stenzek
9666abc172
FullscreenUI: Hook up to disc change hotkey 2025-01-24 13:47:55 +10:00
Stenzek
9113a6e6a6
Qt: Add 'Multiple Devices' to automatic mapping
Also populate the "current device" label with the device from
the config when running the setup wizard, instead of always setting
the label to Keyboard.
2025-01-22 18:38:37 +10:00
Stenzek
9d4789e082
FullscreenUI: Fix blank screen flicker starting game
Also returns to whichever menu the system boot was initiated from.
2025-01-20 23:17:24 +10:00
Stenzek
78902d7632
FullscreenUI: Fix several more unsafe reads 2025-01-20 19:00:51 +10:00
Stenzek
9fdeeb3fb6
GPU: Add alpha blending support to overlay 2025-01-19 16:37:51 +10:00
Stenzek
e0a9bbe600
PostProcessing: Move into GPU presenter
Means that the renderer can be changed without reloading shaders,
and speeds up config change detection.
2025-01-18 22:59:48 +10:00
Stenzek
dd9788262e
GPU: Refactor display presentation workflow
Adds the ability to set overlays, and fixes postfx with prerotation.
2025-01-18 22:59:48 +10:00
Stenzek
d52bf795e4
GPU: Split backend into Backend+Presenter 2025-01-18 22:59:48 +10:00
Stenzek
b9822602b2
FullscreenUI: Show game icons in game list 2025-01-18 22:59:48 +10:00
Stenzek
f98b904c50
FullscreenUI: Add 'Set Cover Image' to game list 2025-01-18 22:59:48 +10:00
Stenzek
e34d23c8e7
FullscreenUI: Implicitly close non-multichoice dialogs
Also fixes disc swap using a multichoice instead of single.
2025-01-18 22:59:47 +10:00
Stenzek
e8a4296fd6
FullscreenUI: Add missing settings lock acquire 2025-01-18 22:59:10 +10:00
Stenzek
e94973cd28
FullscreenUI: Fix disc swap running on GPU thread 2025-01-18 13:48:05 +10:00
Stenzek
fbb63a81a8
FullscreenUI: Change default background and add Strobe 2025-01-17 16:05:24 +10:00
Stenzek
7deaaa8b26
FullscreenUI: Use ImGui dialogs for boot failure 2025-01-17 14:30:22 +10:00
Stenzek
e554456a00
System: Fix blank display on pause-on-start 2025-01-17 14:20:37 +10:00
Stenzek
add76c267a
Achievements: Fix request spam downloading own badge icon 2025-01-16 22:13:02 +10:00
Stenzek
93771981a6
FullscreenUI: Add sort alphabetically option to cheat page 2025-01-16 13:47:09 +10:00
Stenzek
79245b6cd6
FullscreenUI: Make footer text background semitransparent 2025-01-16 01:14:22 +10:00
Stenzek
050bda8cd2
FullscreenUI: Fix scroll reset on resume state popup 2025-01-14 21:07:00 +10:00
Stenzek
135d99ac17
FullscreenUI: Fix incorrect help text 2025-01-14 21:07:00 +10:00
Stenzek
2fd89403f8
FullscreenUI: Name landing icon files after action 2025-01-14 19:05:18 +10:00
Stenzek
3130e16438
FullscreenUI: Add user-selectable backgrounds 2025-01-14 18:59:42 +10:00
Stenzek
ccb2b61444
FullscreenUI: Fix incorrect back button 2025-01-14 16:33:24 +10:00
Stenzek
462a4a3b50
Controller: Refactor so that GetControllerInfo() can't return null 2025-01-13 16:07:43 +10:00
Stenzek
2f854de9d0
Qt: Invalidate FSUI cover cache when cover changed 2025-01-13 12:54:18 +10:00
Stenzek
738c96ffb3
FullscreenUI: Fix slot disappearing after delete in save state menu 2025-01-13 12:44:11 +10:00
Stenzek
ea82dacb0e
FullscreenUI: Fix a couple of GPU thread race conditions
State saving/loading, memory card state read on shutdown.
2025-01-13 12:44:06 +10:00
Stenzek
9c35b0e76d
FullscreenUI: Get rid of Timer global 2025-01-11 23:32:21 +10:00
Stenzek
234e1f721f
FullscreenUI: Improve controller settings page
- Add 'Clear Bindings' menu item.
- Show icons in controller types.
- Add confirmation to Reset Settings.
2025-01-11 21:29:04 +10:00
Stenzek
d3bee3ce67
Qt: Rename 'Input Profile' to 'Controller Preset'
Hopefully more noob-proof?
2025-01-11 20:25:12 +10:00
Stenzek
2298227054
FullscreenUI: Add binding of vibration motors 2025-01-11 20:25:11 +10:00
Stenzek
13b85728a0
Qt: Refactor input device/motor tracking
Remove multiple sources of truth.
2025-01-11 20:25:11 +10:00
Stenzek
d25cffebd5
GPU/HW: Disable depth testing with semitransparency
But provide an option to enable it.
2025-01-09 21:45:14 +10:00
Stenzek
bed3dd6950
FullscreenUI: Use span for DrawIntListSetting() 2025-01-09 17:54:12 +10:00
Stenzek
561397a53c
CDROM: Add 'maximum' read speedup option
"Instant" seek is now renamed to Maximum as well, for consistency.
2025-01-09 15:23:47 +10:00
Stenzek
87743c776d
FullscreenUI: Fix crash reloading postfx shaders 2025-01-08 15:29:56 +10:00
Stenzek
5ee069fc63
FullscreenUI: Add option to display PS buttons instead of Xbox 2025-01-05 16:00:15 +10:00
Stenzek
920f25427e
Qt: Simplify Fullscreen UI state tracking
Fixes application closing if the system was shut down while fullscreen.
2025-01-04 16:09:35 +10:00
Stenzek
3a64c5e4b3
FullscreenUI: Improve field alignment in achievements login 2025-01-02 01:07:18 +10:00
Stenzek
b21312867b
FullscreenUI: Fix popup sizes for postfx settings 2025-01-02 01:07:11 +10:00
Stenzek
179e2f1999
FullscrenUI: Fix field spacing scaling in game list view 2025-01-02 00:52:40 +10:00
Stenzek
57be62ffd1
FullscreenUI: Remove a couple of untranslated titles 2025-01-01 14:28:05 +10:00
Stenzek
884459d1cf
FullscreenUI: Fade alpha change when switching to postfx settings 2025-01-01 14:25:56 +10:00
Stenzek
69826f2101
FullscreenUI: Fix incorrect section for Deinterlacing Mode 2024-12-31 14:15:42 +10:00
Stenzek
5c83bbe5c5
FullscreenUI: Slight tidy-up to achievements login dialog 2024-12-26 18:00:29 +10:00
Stenzek
8c2fe430d8
GPU/TextureCache: Apply 'Dump Replaced Textures' option to backgrounds too 2024-12-25 15:53:53 +10:00
Stenzek
b33aa31db8
FullscreenUI: Update translation strings
I always forget to do this...
2024-12-25 15:53:46 +10:00
Stenzek
ad7318f5f9
FullscreenUI: Fix spacing in game list 2024-12-25 14:37:26 +10:00
Stenzek
f3f99f7eac
FullscreenUI: Support renderer swapping without restart 2024-12-23 14:37:38 +10:00
Stenzek
406cd1b6a1
Qt: Shuffle a couple of graphics options
Save a tiny bit of vertical space.
2024-12-23 14:24:17 +10:00
Stenzek
9e04b0bf55
GPU/TextureCache: Add 'Always Track Uploads' option 2024-12-23 13:52:23 +10:00
Stenzek
62285dcf33
Settings: Split into GPU and main settings
That way the GPU thread copy doesn't need fields it never touches.
2024-12-21 14:53:15 +10:00
Stenzek
6b754e6759
FullscreenUI: Fix CPU/GPU thread race on achievements toggle 2024-12-21 14:40:24 +10:00
Stenzek
2d659fc3eb
GPU: Move backend work off CPU thread 2024-12-19 23:32:15 +10:00
Stenzek
cc52320dfe
FullscreenUI: Update translation string list 2024-12-16 01:30:20 +10:00
Stenzek
b634eecd21
System: Allow separate configuration for multi-disc games 2024-12-16 01:22:48 +10:00
Stenzek
fda10a6978
FullscreenUI: Remove legacy 'Enable Cheats' option
It did nothing.
2024-12-16 01:02:04 +10:00
Stenzek
90e9634c19
FullscreenUI: Enable DrawStringListSetting() 2024-12-14 18:07:33 +10:00
Stenzek
765a46fc88
FullscreenUI: Pack state in struct 2024-12-09 15:02:05 +10:00
Stenzek
53c08c52ed
ImGuiFullscreen: Pack state in struct 2024-12-09 15:01:57 +10:00
Stenzek
5d7cb6c5dc
System: Move state compression/writing to worker thread
Reduce hitches when saving.
2024-12-09 14:16:55 +10:00
Stenzek
31d953dac2
System: Prevent memcard blocking resume state save
Because otherwise you end up with a stale/old resume state, which is
arguably worse.
2024-12-09 13:42:41 +10:00
Stenzek
f9c125c1a1
InputManager: Add ForceFeedbackDevice interface 2024-12-01 21:08:52 +10:00
Stenzek
ee750b44e3
Settings: Normalize texture replacment option titles 2024-11-30 01:09:41 +10:00
Stenzek
aafc029682
Misc: Un-namespace Timer 2024-11-29 20:13:37 +10:00
Stenzek
b180b26728
GPU: Rework "All Borders" cropping to be aspect correct
The "All Borders" crop mode was previously creating an aspect ratio that
was completely incorrect when using modes outside of Auto/4:3. We now
scale the aspect ratio relative to the PAL/NTSC aspect ratio to account
for this, regardless of how much of a border the game configures.

Overscan cropping also produced an incorrect aspect ratio outside of 4:3
mode, resulting in minor horizontal stretching. It is now correct,
however, this results in black borders being added in 16:9 for most
games.

To remove these borders, you have two options:

 - Use the "Stretch to Fill" aspect ratio. This will scale the GTE
   aspect ratio to fill the screen.

 - Use the "Only Overscan Area (Aspect Uncorrected)" crop mode. This
   mode retains the "old" behaviour, resulting in a stretched image.
2024-11-25 16:26:16 +10:00
Stenzek
852239ec8a
Qt: Add game list language override option 2024-11-24 23:29:29 +10:00
Stenzek
24dfd30839
Image: Refactor to a more generic class 2024-11-24 23:29:29 +10:00
Stenzek
ca9af62f92
FullscreenUI: Add a BP achievements login dialog 2024-11-20 13:44:39 +10:00
Stenzek
81e2619e91
FullscreenUI: Add missing icon 2024-11-19 20:35:07 +10:00
Stenzek
ed78a20ea7
FullscreenUI: More icon replacements 2024-11-17 13:23:03 +10:00
Stenzek
574f12759c
FullscreenUI: Hide advanced settings by default 2024-11-17 13:12:45 +10:00
Stenzek
97d8a35108
GameDatabase: Fix compatibility rating localization 2024-11-17 13:04:20 +10:00
Stenzek
725530984c
FullscreenUI: Move remaining OSD settings to main page 2024-11-16 22:03:58 +10:00
Stenzek
8747101648
FullscreenUI: Fix enable state of skip dupe frames 2024-11-16 22:01:09 +10:00
Stenzek
49a6ef7aca
FullscreenUI: Add icons to remaining options 2024-11-16 21:56:32 +10:00
Stenzek
bb450d5e5f
FullscreenUI: Fix nav focus loss on input bind 2024-11-16 20:00:39 +10:00
Stenzek
d56bcfa4c8
FullscreenUI: Fix activate button stuck on input bind 2024-11-16 20:00:20 +10:00
Stenzek
c2316dfdc8
InputManager: Fix relative mode engaging for gun controllers
It still needs to activate when using raw input.
2024-11-14 00:17:28 +10:00
Stenzek
ead9e56c4d
System: Support loading ELF files 2024-11-05 17:54:12 +10:00
Stenzek
8c4d595a89
Qt: Make input source selection non-inheritable
Makes sense to set this in the profile specifically,
given it is tied to devices.
2024-11-03 20:17:56 +10:00
Stenzek
12acecbf36
FullscreenUI: Allow editing option range cheat values 2024-11-02 22:19:33 +10:00
Stenzek
775496af8a
FullscreenUI: Ensure each cheat option has a unique name 2024-11-02 22:19:33 +10:00
Stenzek
6551358212
Log: Replace channel string search with bitset
Knocks off around ~20KB of code.
2024-10-31 14:41:33 +10:00
Stenzek
9cb2cabd8b
FullscreenUI: Fix footer text in save state submenu 2024-10-30 20:10:40 +10:00
Stenzek
166c930738
System: Move private functions to separate header 2024-10-28 14:31:22 +10:00
KamFretoZ
24f15acf6c
BPM: Adjust Hotkey And Button Legends (#3323) 2024-10-26 20:34:32 +10:00
Stenzek
903213c818
Hotkeys: Add hotkey to open cheat settings 2024-10-25 12:45:29 +10:00
Stenzek
164c043e1b
InputManager: Add pressure/deadzone to macros
Arguably less useful than on the PS2, but is still applicable
to the left/right analog sticks.
2024-10-22 19:39:56 +10:00
Stenzek
056b629837
ImGuiManager: Add 'Screen Margins' (i.e. safe zone) 2024-10-20 13:17:22 +10:00
Stenzek
e0bc03b525
Controller: Fix localization with new types 2024-10-20 12:55:10 +10:00
Stenzek
eb46142ee7
GPUDevice: Extract swap chain to separate class 2024-10-18 20:48:29 +10:00
Stenzek
b3ae9cbe4a
Qt: Swap compatibility star image to SVG
Images originally provided by KamFretoZ, adjusted to better fit the
column width.
2024-10-13 17:08:56 +10:00
Stenzek
e0b6f6f1b2
Cheats: Rewrite cheat management system 2024-10-13 16:43:22 +10:00
Stenzek
d8fef6f22e
GameDatabase: Store strings as views
Saves duplicating everything in memory, and a ton of heap allocations.
2024-10-13 16:43:22 +10:00
Stenzek
6e26ba3e9e
Qt: Display language flags instead of region 2024-10-12 16:49:07 +10:00
Stenzek
ba0708a4ff
GameDatabase: Add parsing of Language field
Also speed up lookups through binary search.
2024-10-12 16:23:47 +10:00
Stenzek
83a1386d0b
FullscreenUI: Collapse macro button settings by default 2024-10-11 21:40:35 +10:00
Stenzek
32e96b02ca
FullscreenUI: Various fixes
- Fix mismatched X/Y in landing page.
- Fix mismatched X/Y submenus.
- Fix window padding on save state submenu.
- Fix pressing back/close on save state submenu closing list.
2024-10-07 12:51:27 +10:00
Stenzek
3081c4f5cd
Qt: Fix disabling of some texture dumping options 2024-09-29 16:19:20 +10:00
Stenzek
e06f1f1002
GPU: Add hardware texture cache 2024-09-29 13:37:47 +10:00
Stenzek
4132b5ef3d
Settings: Remove 'Increase Timer Resolution' option
It's no longer needed since I switched to high-resolution waitable
timers, which are supported on Win10 1803+.
2024-09-28 23:50:44 +10:00
Stenzek
4e880280bd
Qt: Fix inconsistent multitap addressing
And remove multiple copies of the same variables while we're at it.
2024-09-27 20:59:04 +10:00
Stenzek
5995471de6
FullscreenUI: Disable rewind options unless enabled 2024-09-26 21:54:51 +10:00
Stenzek
df8e950e6e
Qt: Rename 'Disable All Enhancements' to 'Safe Mode'
And move it to the bottom of the dialog.
2024-09-26 21:54:51 +10:00
Stenzek
29da7f7211
System: Add 'Fast Forward Boot' option 2024-09-26 21:40:48 +10:00
Stenzek
3dca598063
Log: Switch to enum class
Need to change the channel to a bitset too.. the string lookups are
horribly slow, and conflict when one is a prefix of another.
2024-09-21 22:26:06 +10:00
Stenzek
df17528b18
Qt: Move threaded rendering toggle to Debug tab
Frees up some space.
2024-09-21 22:26:05 +10:00
Stenzek
891d5cefbe
ImGuiFullscreen: Allow smooth scrolling 2024-09-09 21:57:08 +10:00
Stenzek
d1770b616f
Settings: Default console logging to running from TTY 2024-09-09 20:55:15 +10:00
Stenzek
32a3311208
System: Add option to automatically resize window 2024-09-07 22:05:54 +10:00
Stenzek
1c1b82ed66
GPUDevice: Purge threaded presentation
Worse frame pacing, and GPU thread (when I finish it) will give
significantly faster performance on mobile anyway.
2024-09-07 12:15:42 +10:00
Mrlinkwii
95185b7308
FSUI : some misc fixes (#3291)
FullscreenUI: Some misc fixes
2024-09-06 13:55:17 +01:00