3730 Commits

Author SHA1 Message Date
Stenzek
5b40d7902a
System: Shut down GPU backend before other components
Prevents a rare crash on shutdown if OSD stats were enabled.
2025-06-03 19:06:17 +10:00
Stenzek
7fde697118
GPU/TextureCache: Add merging of adjacent palette records
So a texture spanning multiple pages can be merged at dump time.

Doing a merge instead of a union on the original palette rect
is safer, because gaps won't dump as larger textures with garbage
in the middle.
2025-06-03 19:05:22 +10:00
Stenzek
eee67a30da
GPU/HW: Fix off-by-one in sprite UV rect calculation
CheckForTexPageOverlap() makes it exclusive already.

Fixes replacements for FF8 title screen not applying in the third
texture page, because it thought it was sampling from an unwritten
area of VRAM.
2025-06-03 18:54:29 +10:00
Stenzek
d9367229e9
Achievements: Avoid duplicate tracker display 2025-06-03 17:57:29 +10:00
Stenzek
42813e8840
GameDatabase: Actually disable auto scale for DisableUpdating 2025-06-01 21:19:07 +10:00
Stenzek
ae3b295d95
FullscreenUI: Disable menu item borders by default
Looks nicer.
2025-06-01 15:10:40 +10:00
Stenzek
47405b081c
GameDatabase: Disable MSAA with DisableUpscaling 2025-06-01 14:37:16 +10:00
Stenzek
2cc0851116
GameDatabase: Fix DisableUpscaling trait with auto res 2025-06-01 14:37:16 +10:00
Stenzek
fc7934a2be
FullscreenUI: Fix nav focus loss in leaderboards
Stops hotkeys triggering when using mouse navigation.

Also fixes the first leaderboard entry not focusing on page swap.
2025-06-01 14:37:16 +10:00
Stenzek
2018eb77fe
GPU: Adjust draw timing approximation
Cache seems to be able to go up to 128x8? Constructor draws sprites that
fit exactly in the texture cache, and does so within vblank, so it can't
take too long to draw.
2025-05-30 19:26:49 +10:00
Sheng Jiang 蒋晟
b195f747cf
implement ExtConstantBitClear/Set on ExtImprovedSlide (#3430) 2025-05-28 21:42:11 +10:00
Stenzek
6b811df6d0
CDROM: Add "Switch to Next Disc on Stop" option.
NOTE: THIS WILL NOT WORK FOR ALL GAMES.

Plenty of games don't stop the CD-ROM drive when they're expecting a
disc change, leaving us with no way of knowing when it's needed.
2025-05-27 17:10:11 +10:00
Stenzek
24cd6fa11b
Hotkeys: Add switch to previous/next disc hotkeys 2025-05-27 17:03:39 +10:00
Stenzek
66934cc5b8
System: Include queued frames in input latency stats 2025-05-23 15:16:15 +10:00
Stenzek
03111befb9
Settings: Correct a couple of default values 2025-05-23 15:15:58 +10:00
Stenzek
a422402014
CPU: Fix bgez/blez disassembly with non-standard pattern 2025-05-18 13:43:41 +10:00
Stenzek
8ee0daaa17
GameDatabase: Bump cache version
Forgot to do this before.
2025-05-17 23:06:36 +10:00
Stenzek
5eedecd811
System: Swap back gamesettings->safe mode order
Fixes e.g. round texcoords warning being shown on games that need it.

But don't display CD speedup warnings if the gamedb will disable them.
2025-05-17 23:06:36 +10:00
Stenzek
17dfb95d6a
GPU/HW: Fix MSAA+depth buffer combination
Clear should wipe out all samples, copy should copy all samples.
2025-05-17 19:44:23 +10:00
Stenzek
4a707afae1
System: Show safe mode warning after applying gamesettings
Prevents warning about things that have already been disabled.
2025-05-17 18:44:03 +10:00
Stenzek
a6b59f9efe
GameDatabase: Add traits for disabling disc speedup 2025-05-17 18:40:58 +10:00
Stenzek
c729515118
AnalogController: Add option to use right stick as shoulder buttons 2025-05-17 18:40:38 +10:00
Stenzek
d35cefb02a
GPU/HW: Check for depth clears for lines 2025-05-17 15:22:01 +10:00
Stenzek
844869c0c1
GPU/HW: Fix precise lines failing depth test 2025-05-17 15:04:22 +10:00
Stenzek
a375d558f6
GPU/HW: ScaleNx/MMPX do not require blending 2025-05-17 14:05:56 +10:00
Stenzek
3d8f6bf7aa
GPU/HW: Fix filtered alpha blending in ROV path 2025-05-17 14:05:55 +10:00
Davide Pesavento
401f2652ca
Achievements: Use round instead of ceil for unlocked percentage (#3418) 2025-05-17 14:05:41 +10:00
Stenzek
21aaec99f1
Qt: Note when patches are not allowed for achievements 2025-05-17 01:07:55 +10:00
Stenzek
871323f4e1
Cheats: Fix setting overrides applying for blacklisted patches 2025-05-17 00:59:20 +10:00
Stenzek
4ea90f948d
CDROM: Display OSD message on backend read fail 2025-05-16 19:06:55 +10:00
Stenzek
7310aa509a
CDROM: Stop reading on backend read fail
Instead of panicing. Game's probably just going to crash anyway.
2025-05-16 18:14:08 +10:00
Stenzek
7932618424
Bus: Enable SIO2 on any unknown BIOS
Not all PS2 BIOSes are in the list.
2025-05-14 23:18:23 +10:00
Stenzek
2ed7aa5536
CPU: Clear pending bus error when interpreting block
It can get set from a failed rec access much earlier.

Also eliminates a redundant store from the main interpreter loop.
2025-05-14 23:18:22 +10:00
Stenzek
b91d219524
Qt: Clarify that XInput should only be used for wrappers 2025-05-13 21:31:00 +10:00
Stenzek
2b280bddd0
GPU/TextureCache: Display replacement info on game start 2025-05-13 21:21:16 +10:00
Stenzek
6cde51b7b5
Achievements: Tidy up API calls 2025-05-11 14:07:31 +10:00
Stenzek
aee66edd6e
Achievements: Unload RAIntegration on UI thread
Fixes crash when toggling it on/off.
2025-05-09 20:58:38 +10:00
Stenzek
b2dcf39f8b
FullscreenUI: Fix possible crash with RAIntegration 2025-05-06 22:50:32 +10:00
Stenzek
2aea3e1c3c
FullscreenUI: Add vertical padding to several windows
Looks less cluttered.

- Achievement/leaderboard lists.
- Game list/game grid.
- Save state selector.
2025-05-06 22:42:06 +10:00
Stenzek
30fe7f3e4a
Achievements: Manually generate badge URLs when using RAIntegration
It doesn't fill in these fields (currently at least).
2025-05-06 22:42:06 +10:00
Stenzek
03db7ea8ea
GPUThread: Remove unnecessary padding 2025-05-05 02:22:57 +10:00
Stenzek
c8a5712c10
FullscreenUI: Fix possible crash with achievements/leaderboards hotkey 2025-05-05 02:22:57 +10:00
Stenzek
d326d307b4
Achievements: Fix memory writes using CPU addresses 2025-05-05 02:22:57 +10:00
Stenzek
ad13b17bea
FullscreenUI: Fix slow fadeout on fast forward toggle 2025-05-03 00:46:18 +10:00
Stenzek
6cafb5cdea
FullscreenUI: Fix resume state dialog height at some window sizes 2025-05-03 00:45:45 +10:00
Stenzek
8d80ae123d
Controller: Remove 'f' from string float values 2025-04-26 14:41:45 +10:00
Stenzek
773ec046b5
Justifier: Fix byteswapped RGB colours 2025-04-24 21:41:38 +10:00
Stenzek
589b8f5139
Justifier: Handle byte 4 IRQ enable flag
Fixes games with two justifiers connected concurrently.
2025-04-24 21:41:31 +10:00
Stenzek
740758fdda
CPU/Recompiler: Call RaiseBreakException() on BP
For pcdrv.
2025-04-24 10:51:07 +10:00
Stenzek
559f831c30
Achievements: Defer login/game identify until after RAIntegration load 2025-04-23 22:16:27 +10:00
Stenzek
769e6f2bae
GPUThread: Fix command size blow-up 2025-04-21 19:10:18 +10:00
Stenzek
41ee9d9ff0
FullscreenUI: Use path from game list entry on resume
Fixes clean boot failing when selecting a game with a no-longer-valid
path.
2025-04-21 13:30:03 +10:00
Stenzek
b4019f325c
GPU/HW: Fix black dots with some texture filters
JINC2 specifically ended up with NaNs propagating through.
2025-04-21 13:06:09 +10:00
Stenzek
f4df18b7cf
Cheats: Make FormatCodeForFile() public
Needed for Android.
2025-04-20 00:23:23 +10:00
Stenzek
437430cbc4
System: Pull screenshot format from path extension 2025-04-19 22:49:16 +10:00
Stenzek
1f10cac42a
GPUThread: Align commands to 16 bytes
Apparently some of the types end up 16-byte aligned on Android x86_64.
2025-04-19 22:45:21 +10:00
Stenzek
bd558efaaa
CMake: Use upstream-compatible Findzstd 2025-04-19 20:43:27 +10:00
Stenzek
df2a5a5e67
ImGuiManager: Move drawing out of GPUDevice 2025-04-19 16:21:29 +10:00
Stenzek
75ae7deadb
FullscreenUI: Add padding to game list 2025-04-18 14:44:25 +10:00
Stenzek
1fa77e530b
FullscreenUI: Center achievement/leaderboard images
Fixes the placeholder image being stretched.
2025-04-17 21:05:54 +10:00
Stenzek
9a6725367b
FullscreenUI: Change default background name 2025-04-17 21:05:44 +10:00
Stenzek
def6b76116
FullscreenUI: Make menu item borders optional 2025-04-17 21:05:44 +10:00
Stenzek
5b5eef61d7
FullscreenUI: Increase spacing between menu items 2025-04-17 21:05:44 +10:00
Stenzek
7aa831c8df
FullscreenUI: Improve look of slider popups 2025-04-17 21:05:44 +10:00
Stenzek
ddf906f377
FullscreenUI: Polish achievements login dialog 2025-04-17 21:05:44 +10:00
Stenzek
c9ae4dcd0f
SPU: Enable VU meter in debug builds 2025-04-17 21:05:44 +10:00
Stenzek
3d2085f797
GPU: Fix some CPU thread state reads 2025-04-14 22:20:29 +10:00
Stenzek
4c1aba62fc
System: Remove unused function
And rename instances of "filename" to "path".
2025-04-14 22:20:29 +10:00
Stenzek
a0de2febad
GPUThread: Minor logic corrections 2025-04-14 22:19:17 +10:00
Stenzek
751d81eff0
GPU/TextureCache: Handle FetchTexture() fails 2025-04-14 22:19:17 +10:00
Stenzek
ebf33f32fa
FullscreenUI: Crash fix 2025-04-13 13:58:46 +10:00
Stenzek
ca46c11829
FullscreenUI: More string_view usage 2025-04-12 21:14:51 +10:00
Stenzek
65fd6f9ff3
FullscreenUI: Fix crash in hotkey settings 2025-04-12 21:14:47 +10:00
Stenzek
32963c3f6a
Controller: Use string_view() for localised strings 2025-04-12 14:51:58 +10:00
Stenzek
057398b4ab
FullscreenUI: Mostly replace C string usage with string_view 2025-04-12 14:13:05 +10:00
Stenzek
8f8f7cd1cb
Achievements: Queue RAIntegration writes on CPU thread 2025-04-12 12:35:05 +10:00
Stenzek
faa7ca5121
FullscreenUI: Add confirmation to hardcore mode enable/reset 2025-04-12 12:30:53 +10:00
Stenzek
c192bd798b
Bus: Stub out 0x1F802080
Used by some homebrew.
2025-04-11 22:18:27 +10:00
Stenzek
fca250257c
Achievements: Initialize RAIntegration in two parts 2025-04-11 22:13:07 +10:00
Stenzek
c1e01af511
Host: Expose RunOnUIThread() to core
I hate this, but sadly needed for RAIntegration...
2025-04-11 22:13:07 +10:00
Stenzek
2eecf6b79d
GPU/HW: Clear depth at vblank time in 480i games
If this is a 480i single buffer game, then rendering should complete within one vblank.
Therefore we should clear the depth buffer, because the drawing area may not change.
2025-04-10 22:02:40 +10:00
Stenzek
e7a3465598
Achievements: Display hardcore disabled subtitle in game summary 2025-04-10 21:45:45 +10:00
Stenzek
284b13cd43
Achievements: Fix starting with RAIntegration-forced HC mode 2025-04-10 21:40:34 +10:00
Stenzek
8e73b1db7e
Achievements: Display notification on subset complete 2025-04-10 21:32:26 +10:00
Stenzek
6165b504b8
Achievements: Use new badge_url/badge_locked_url fields 2025-04-10 21:24:08 +10:00
Stenzek
4708a8fda4
Achievements: Fix login while ingame 2025-04-10 21:12:35 +10:00
Stenzek
21560537c2
Achievements: Fix crash starting with no game 2025-04-10 02:29:45 +10:00
Stenzek
15a81e5543
Deps: Remove RAInterface 2025-04-10 02:18:17 +10:00
Stenzek
d286b96c2d
Achievements: Swap RAInterface for RAIntegration via rc_client 2025-04-10 02:16:12 +10:00
Stenzek
1bb1354d4e
Achievements: Use rc_client as source of truth for HC mode 2025-04-10 01:35:10 +10:00
Stenzek
a0aac8ef17
dep/rcheevos: Bump to latest upstream 2025-04-10 01:35:10 +10:00
Stenzek
e41543c38a
Achievements: Cache latest/nearest achievement info
When using RAIntegration through rc_client, the rc_client_achievement_t
pointer does not persist after rc_client_destroy_achievement_list().
2025-04-10 01:35:08 +10:00
Stenzek
a310d3a5e7
FullscreenUI: Fix load-and-resume-state HC popup 2025-04-09 22:47:39 +10:00
Stenzek
97c81edf39
FullscreenUI: Android build fix 2025-04-09 13:24:47 +10:00
Stenzek
182ba2aa7f
SPU: Devel build fix 2025-04-08 22:21:12 +10:00
Stenzek
8706f609dd
SPU: Add VU meter display in debug/devel builds 2025-04-08 22:06:03 +10:00
Stenzek
0479500357
CPU: Correctly mask upper 1.5GB of KUSEG
Stops fastmem going into a loop when trying to backpatch accesses
above 512MB.
2025-04-08 21:39:29 +10:00
Stenzek
0a1e8e27f0
ShaderGen: Emit packUnorm4x8() for GLSL ES 3.0 2025-04-08 20:11:01 +10:00
Stenzek
7971bb949b
GPU/HW: Add Scale2x/Scale3x texture filters 2025-04-08 20:10:58 +10:00
Stenzek
52f8a347c7
FullscreenUI: Fix Toggle Fast Forward being disabled 2025-04-07 20:48:32 +10:00