Stenzek
57595c47af
GPU/TextureCache: Move replacement cache onto the GPU
...
And enforce a maximum. Should sort out the upload spam.
2024-11-25 19:37:28 +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
dec468966c
GPU/HW: Fix sprite mode triggering on screen-aligned UVs
...
Some polygons just end up being perfect. For example, Croc 2
minecart level.
2024-11-25 15:39:45 +10:00
Stenzek
a804801a1b
GPU/HW: Support filtering with texture cache
2024-11-25 13:23:39 +10:00
Stenzek
0ae8fcced3
GPU/HW: Fix incorrect sampling at 1x with TC
2024-11-25 13:15:07 +10:00
Stenzek
0076af6974
SPU: Zero out upper ADPCM filters
...
Also in CD-ROM.
2024-11-25 01:33:11 +10:00
Stenzek
40a1bee9ea
CDROM: Fix incorrect clmap in XA-ADPCM decoding
...
Fixes crunchy audio in GT2: A-Spec.
2024-11-25 01:05:10 +10:00
Stenzek
9fa8fee193
Achievements: Use rc_client for pause throttling
2024-11-24 23:56:16 +10:00
Stenzek
852239ec8a
Qt: Add game list language override option
2024-11-24 23:29:29 +10:00
Stenzek
70a4b5c9f2
GameDatabase: Add missing flags
2024-11-24 23:29:29 +10:00
Stenzek
7b230dc4c1
GPU/HW: MSAA samples change needs to recreate pipelines
...
Otherwise Metal/Vulkan go boom boom.
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
3ff1b04576
GPUDevice: Support generating mipmaps
2024-11-24 23:29:28 +10:00
Stenzek
5261cfe8e4
CPU/Recompiler: Tidy up type names
...
And reduce global namespace pollution.
2024-11-23 18:52:46 +10:00
Stenzek
f67eacc071
CPU: Default to new recompiler/remove old recompiler
2024-11-23 18:52:46 +10:00
Stenzek
d2d06adeeb
CPU/NewRec/ARM32: Shifts need to be explicitly masked
2024-11-23 18:52:45 +10:00
Stenzek
5c03e1d940
Misc: Fix alignment errors on ARM32
2024-11-23 18:52:45 +10:00
Stenzek
bb24d406f2
Pad: GCC compile fix
2024-11-23 18:52:45 +10:00
Stenzek
b984f343ae
System: Fix audio CD images not showing title
2024-11-23 18:52:45 +10:00
Stenzek
378fd80e3d
CDROM: Defer subq read until needed
...
Should help with hitches on real disc reads until I refactor
in a proper sector cache...
2024-11-20 14:24:48 +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
5a948800b7
Achievements: Purge first-disc-from-playlist option
...
Unnecessary since all disc's hashes are registered.
2024-11-19 20:13:22 +10:00
Stenzek
4b71428846
GPU/TextureCache: Fix tracking getting enabled without TC
2024-11-18 23:34:24 +10:00
Stenzek
1451e968d5
GPU/TextureCache: Pack state in struct
2024-11-18 14:19:47 +10:00
Stenzek
9838dd9df2
GPU/TextureCache: Purge copy-target sources from hash cache
...
Saves some VRAM/hash cache usage by disacarding hash cache entries that
are discarded by a copy, but unfortunately cannot stop the uploads.
2024-11-18 14:19:47 +10:00
Stenzek
6c1b98e46a
GPU/SW: Fix 256-bit AVX2 path
2024-11-18 14:19:47 +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
3cf7a94d1e
GunCon: Allow empty/disabled crosshair
2024-11-14 00:35:45 +10:00
Stenzek
8ec9c90c82
Qt: Fix settings not applying immediately when editing profile
2024-11-14 00:35:25 +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
babaffcce9
GPU/HW: Don't enable no-color-perspective when unsupported
...
i.e. GLES
2024-11-13 21:07:02 +10:00
Stenzek
5219e4f987
CDROM: Simulate real pause timing
2024-11-12 16:03:36 +10:00
Stenzek
a2af51b856
CDROM: Simulate backwards track jump after seek/pause
2024-11-12 16:03:36 +10:00
Stenzek
5f607d8c7a
CDROM: Avoid double seek on repeated Setloc+ReadS
2024-11-12 16:03:36 +10:00
Stenzek
97938a8b8c
CDROM: Improve command logging clarity
2024-11-12 16:03:36 +10:00
Stenzek
5cf2c86874
CDROM: More accurate approximation of sectors per track
2024-11-12 16:03:35 +10:00
Stenzek
365e129792
CPU: Fix puts() hook incorrect arg
2024-11-11 16:27:11 +10:00
Stenzek
6ffa5bffab
CPU: Handle mirrors of BIOS syscalls
2024-11-11 16:26:51 +10:00
Stenzek
3f41dcc97d
Log: Add option coloured variants
2024-11-11 14:04:48 +10:00
PugsyMAME
5caadec34d
Cheat bugfix and new A8 cheat type ( #3328 )
...
* Bugfix for import and entering new cheats
Added needed g_emu_thread->reloadCheats calls after the reloadList() calls on entering a new code or importing new codes.
Without it I had to import new codes and then manually edit one of them for it to show up in the cheat counts and possibly even work
* Added Cheat Type A8
Added cheat type A8 which is the byte equivalent of the A7 cheat type as there will be a need of this type.
* Changed boolean parameters in last PR
Changed boolean parameters in last PR as per discord
2024-11-11 14:01:50 +10:00
Stenzek
8611f4f438
System: Handle GPU device loss in BP-only mode
2024-11-10 15:48:41 +10:00
Stenzek
5b600789d6
GPU: Page align VRAM storage on Apple Silicon
2024-11-10 14:02:09 +10:00
Stenzek
886ef4cc59
WAVWriter: Add matching reader class
2024-11-06 13:46:48 +10:00
Stenzek
ead9e56c4d
System: Support loading ELF files
2024-11-05 17:54:12 +10:00
Stenzek
2044e35377
GPUDump: Fix unknown compression type reported with Zstandard
2024-11-05 16:21:40 +10:00
Stenzek
3952661978
GPU: Write initial rendering attributes to GPU dump
2024-11-05 16:17:49 +10:00
Stenzek
7b7dd2bef1
AnalogController: Reset state on analog->digital switch
...
But only when the game does not support analog mode.
Tomb Raider's game selector menu puts the controller into
configuration mode, and we're supposed to respond with a
0x00 header byte if the user switches the pad to digital
mode.
Problem is, the game itself doesn't understand this mode
switch nor configuration mode. So the status byte gets
stuck at 0x00 if the user toggles analog mode, and the
game thinks no pad is connected.
Work around this by resetting the whole state if the game
does not support analog mode.
2024-11-05 16:07:31 +10:00
Stenzek
88e14dd3ff
RegTest: Support using global data directory
2024-11-05 13:58:20 +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
ca2ed61dba
Timers: Work around possible MSVC codegen bug
...
Fixes very strange behaviour in games in MSVC LTCG build.
2024-11-04 23:03:51 +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
0fc719c4cf
Cheats: Simplify code merging on import
...
The save file already does replacement.
2024-11-03 17:38:50 +10:00
Stenzek
a8bc364a2b
Cheats: Fix importing hash-formatted codes
2024-11-03 17:38:27 +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
b4e509d090
Qt: Fix FF/turbo speed resetting in game properties
2024-11-02 21:25:47 +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
afb9ab7d11
DMA: Show MADR in debug window
2024-10-31 14:28:20 +10:00
Stenzek
9cb2cabd8b
FullscreenUI: Fix footer text in save state submenu
2024-10-30 20:10:40 +10:00
Stenzek
5518199206
GPU/SW: Fix polyline culling
2024-10-30 15:28:45 +10:00
Stenzek
5bca12a840
GameDatabase: Add ForceFullBoot trait
...
And set it for Nightmare Creatures. Game's disc code is a nightmare.
2024-10-30 15:19:11 +10:00
Stenzek
814f22f58b
Cheats: Only apply overclock when it is not already enabled
2024-10-30 15:19:10 +10:00
Stenzek
2043128f98
System: Fix per-game fast boot applying too late
2024-10-30 15:19:10 +10:00
Stenzek
d24e8fda83
GPU/HW: Only enable fbfetch/DSB when needed
...
Thanks Adreno...
2024-10-30 15:19:10 +10:00
Stenzek
dadc994ba8
GPU/HW: GLSL ES compile fix
2024-10-30 15:19:10 +10:00
Stenzek
a3d55c6e30
Misc: Android build fixes
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
99e65282f6
GPU/HW: Prefer shader over image copy if not dirty
2024-10-27 15:35:19 +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
c6b74684de
GPU/HW: Split shaders into resolution independent/dependent
...
Avoids recompiling everything on resolution change.
2024-10-27 15:15:20 +10:00
Stenzek
6cf8ac340b
GPU/HW: Make copy/write shaders resolution independent
2024-10-27 15:15:20 +10:00
Stenzek
aa0c0068ce
GPU/HW: Move shadergen parameters to functions
2024-10-27 13:50:47 +10:00
Stenzek
1d21ca61e7
Cheats: Allow hex literal in option ranges
2024-10-27 12:32:41 +10:00
Stenzek
218df625df
Cheats: Fix crash on parsing invalid cheat
2024-10-27 12:32:41 +10:00
KamFretoZ
24f15acf6c
BPM: Adjust Hotkey And Button Legends ( #3323 )
2024-10-26 20:34:32 +10:00
Stenzek
8def5b5d0a
GameDB: Allow user to choose different mode for ForceDeinterlacing
2024-10-26 16:15:58 +10:00
Stenzek
7782bb9845
CDROM: Fix lockup when loading state with precaching
2024-10-26 02:14:59 +10:00
Stenzek
1ae2dcf192
GPU: Propagate initialization error to caller
...
Avoids double error popup.
2024-10-26 01:41:29 +10:00
Stenzek
6af71beed5
GPU: Work around nearest sampling issues on AMD
...
Fixes one-line flickering display in some games.
2024-10-26 01:40:44 +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
cdd230c040
ImGuiOverlays: Fix input overlay glyph clipping
2024-10-25 12:45:50 +10:00
Stenzek
903213c818
Hotkeys: Add hotkey to open cheat settings
2024-10-25 12:45:29 +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
a8d846ac8f
Cheats: Use libzip for reading archive
2024-10-22 21:25:27 +10:00
Stenzek
4963dc1759
Host: Make resource routines fill error object
2024-10-22 20:41:33 +10:00
Stenzek
485f81a02f
GPUDump: Support XZ compression
2024-10-22 19:40:03 +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
396e7d994a
System: Make global safe mode always take precedence
2024-10-22 01:11:31 +10:00
Stenzek
c11b250efe
Cheats: Search archives with disc set serials
...
That way the list is auto-populated for all discs.
2024-10-21 20:25:07 +10:00
Stenzek
32e62725dd
Pad: Implement RX/TX IRQs
2024-10-21 00:38:05 +10:00
Stenzek
6e1d8c5213
Qt: Fix settings clear not resetting input profile
2024-10-21 00:29:54 +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
05c285f760
Settings: Fix cheats/patches not being removed on clear
2024-10-21 00:08:56 +10:00
Stenzek
c250209336
System: Fix input profiles inheriting base settings
2024-10-21 00:05:32 +10:00
Stenzek
0d3501d435
Misc: Pass SettingsInterface by const reference
2024-10-20 23:59:47 +10:00
Stenzek
825dd13c6b
GameDatabase: Fix crash with deinterlacing mode
2024-10-20 23:21:39 +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
428c3e3426
Host: Fix error when switching to surfaceless
2024-10-20 22:02:22 +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
6cc350a459
Cheats: Serialize access to zips
...
Prevents the UI thread from trashing the zip struct while the
emulation thread is also reading.
2024-10-20 12:43:11 +10:00
Stenzek
163cb2f653
MemoryScanner: Fix default operator value
2024-10-19 22:51:52 +10:00
Stenzek
43ed92415d
GPU/HW: Fix assert triggering in debug mode
2024-10-19 17:05:06 +10:00
Stenzek
9050098e3e
GameDatabase: Rework deinterlace mode selection
...
The mode can either be preferred (if the user has not chosen
progressive), or force (ignore user's choice).
Also remove it from a bunch of games which apparently no longer
need it? Very strange...
2024-10-19 17:02:22 +10:00
Stenzek
e4a358cacb
Controller: Add Pop'n and Densha De Go Controllers
...
Variants of digital controller with different buttons grounded.
2024-10-19 16:23:01 +10:00
Stenzek
49134efe4e
Settings: Fix PGXP suboptions getting disabled
...
Regression from 005d48a387b24b2e65056b96cf8fabce19662911
2024-10-19 13:01:05 +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
50d8bb091f
MemoryCard: Add RenameFile() and localize errors
2024-10-19 00:03:07 +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
e2cb54d233
Settings: Use uint getter/setter for more fields
2024-10-18 20:48:29 +10:00
Stenzek
d4f3e004cf
Host: Add missing SetBaseUIntSettingValue()
2024-10-18 20:48:29 +10:00
Stenzek
219e890da5
GPU/HW: Write through VRAM transfers
...
Reduces the chances of rendering nothing after device loss.
2024-10-14 18:20:48 +10:00
Stenzek
11c212260c
System: Only check controller changes when valid
2024-10-14 12:46:54 +10:00
Stenzek
4a57ccc3e8
Cheats: Strip leading * when importing old files
2024-10-14 12:44:23 +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
407dccb1db
Qt: Move GDB server enable to advanced options
...
And expose the port as a setting.
2024-10-11 21:26:06 +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
0c2ab82252
System: Fix no-disc startup in later versions
2024-10-11 16:54:46 +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
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
80971dac5a
AnalogController: Allow negative vibration bias
2024-10-05 16:07:33 +10:00
Stenzek
08bdffac64
GPU/HW: Fix toggling texture replacement settings
2024-10-05 13:50:36 +10:00
Stenzek
71bb953253
GPU/HW: Handle redundant texture window updates
...
Significantly reduces draw count in THPS2.
~150 draw calls per frame to ~70.
2024-10-05 13:06:45 +10:00
Stenzek
52389f48a6
GPU/HW: Fix force-round-coords with texture cache
2024-10-05 13:06:43 +10:00