596 Commits

Author SHA1 Message Date
Stenzek
1edcc8c0ac
System: Merge system taints with state taints on load 2024-12-10 20:19:27 +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
5c4d95fd51
Settings: Add missing GPU feature disables 2024-12-06 15:07:56 +10:00
Stenzek
0c7636b3c3
System: Add missing safe mode disable messages 2024-12-05 17:04:09 +10:00
Stenzek
5b6e3a952c
System: Reset code cache on fastmem mode change
Fixes excess backpatching and potential crashes when changing mode.
2024-12-03 17:29:47 +10:00
Stenzek
b7fff840c8
System: Move thread name init to host
Prevents funky thread names for regtest on Linux.
2024-11-29 21:21:27 +10:00
Stenzek
aafc029682
Misc: Un-namespace Timer 2024-11-29 20:13:37 +10:00
Stenzek
0befbf8021
GPU: Add Uncorrected Borders crop mode
Should behave the same as the old "All Borders" mode.
The pixel aspect ratio WILL BE WRONG.

Also fixes the size of screenshots in internal resolution mode.
2024-11-26 18:00:19 +10:00
Stenzek
5fd79254bd
GPU: Fix crash when toggling software renderer 2024-11-26 12:58:12 +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
24dfd30839
Image: Refactor to a more generic class 2024-11-24 23:29:29 +10:00
Stenzek
b984f343ae
System: Fix audio CD images not showing title 2024-11-23 18:52:45 +10:00
Stenzek
8ec9c90c82
Qt: Fix settings not applying immediately when editing profile 2024-11-14 00:35:25 +10:00
Stenzek
8611f4f438
System: Handle GPU device loss in BP-only mode 2024-11-10 15:48:41 +10:00
Stenzek
ead9e56c4d
System: Support loading ELF files 2024-11-05 17:54:12 +10:00
Stenzek
8bd0e6c3f7
CPU/CodeCache: Clear blocks on system shutdown
Means we release all allocated memory on system shutdown, rather
than waiting until the next VM/system start.
2024-11-05 13:06:46 +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
2043128f98
System: Fix per-game fast boot applying too late 2024-10-30 15:19:10 +10:00
Stenzek
bfadd608fb
System: Add 'Task Threads'
Used for saving screenshots/GPU dumps.
2024-10-30 15:19:10 +10:00
Stenzek
53fb5cd9e1
GTE: Remove dependency on GPUDevice 2024-10-28 14:31:22 +10:00
Stenzek
d34707a377
System: Pack state in struct
Don't trust the linker...
2024-10-28 14:31:22 +10:00
Stenzek
166c930738
System: Move private functions to separate header 2024-10-28 14:31:22 +10:00
Stenzek
21d19a6297
System: Move perf counters to separate namespace 2024-10-28 14:31:22 +10:00
Stenzek
875ccecb90
System: Use frame rate for speed calculation
Instead of cycles. Makes it invariant to OC changes, and can
be managed on the (future) GPU thread.
2024-10-27 22:01:00 +10:00
Stenzek
2c57817803
System: Invalidate display on debug window change
Fixes these windows displaying black if the VM is paused.
2024-10-27 15:15:20 +10:00
Stenzek
1ae2dcf192
GPU: Propagate initialization error to caller
Avoids double error popup.
2024-10-26 01:41:29 +10:00
Stenzek
b92eeec962
System: Warning fix 2024-10-25 20:45:11 +10:00
Stenzek
080807e557
CDROM: Move subchannel replacement from CDImage
This will allow you to use SBI/LSD files with real discs, if your
drive does not support reading subchannels, or has an incorrect
skew.
2024-10-25 15:35:12 +10:00
Stenzek
7d2216c289
GameList: Avoid double fopen/read of EXEs 2024-10-23 21:20:28 +10:00
Stenzek
2d04f2eff9
System: Support loading .CPE files 2024-10-23 21:08:17 +10:00
Stenzek
485f81a02f
GPUDump: Support XZ compression 2024-10-22 19:40:03 +10:00
Stenzek
396e7d994a
System: Make global safe mode always take precedence 2024-10-22 01:11:31 +10:00
Stenzek
a9bfe2642f
System: Simplify error path in BootSystem() 2024-10-21 00:18:12 +10:00
Stenzek
b62e58776e
System: Fix GPU usage disappearing on renderer change 2024-10-21 00:12:20 +10:00
Stenzek
c250209336
System: Fix input profiles inheriting base settings 2024-10-21 00:05:32 +10:00
Stenzek
4ab22921c4
GPUDump: Add GPU dump recording and playback
Implements the specification from:

https://github.com/ps1dev/standards/blob/main/GPUDUMP.md
2024-10-20 22:02:24 +10:00
Stenzek
056b629837
ImGuiManager: Add 'Screen Margins' (i.e. safe zone) 2024-10-20 13:17:22 +10:00
Stenzek
76208f5f2d
System: Display localized trait names 2024-10-19 01:16:05 +10:00
Stenzek
57cf0f2643
System: Reload cheats/patches on safe mode toggle 2024-10-19 01:13:32 +10:00
Stenzek
baa9065d2e
System: Add taints to save states
This informs the user they are loading a save state that at some point
had potentially-game-breaking options enabled, and a reset is necessary
to clear them.
2024-10-19 01:13:32 +10:00
Stenzek
86a28d5dc0
ImGuiOverlays: Move debug state to auxiliary windows 2024-10-18 20:48:30 +10:00
Stenzek
eb46142ee7
GPUDevice: Extract swap chain to separate class 2024-10-18 20:48:29 +10:00
Stenzek
005d48a387
System: Don't display setting warnings without game 2024-10-18 20:48:29 +10:00
Stenzek
11c212260c
System: Only check controller changes when valid 2024-10-14 12:46:54 +10:00
Stenzek
e0b6f6f1b2
Cheats: Rewrite cheat management system 2024-10-13 16:43:22 +10:00
Stenzek
26b6c704f0
MemMap: Support dynamic page size selection
i.e. 4K to 16K on ARM64.
2024-10-05 19:25:23 +10:00
Stenzek
3fb5fb4c72
System: Fix saving of subimage index 2024-10-06 18:06:51 +10:00
Stenzek
c9f7ef5f9a
System: Fix reset when booting EXE 2024-10-06 13:36:46 +10:00
Stenzek
08bdffac64
GPU/HW: Fix toggling texture replacement settings 2024-10-05 13:50:36 +10:00