Commit graph

2713 commits

Author SHA1 Message Date
Stenzek ab4c6f2dde
CPU/NewRec: Enable delay slot swapping in more situations
Load delay is always updated, so don't need to swap when it's reading
from a delayed register. Branching on a delayed register will also be
fine, since it won't be flushed by the the branch executes.
2024-05-20 01:12:32 +10:00
Stenzek 09b43f962a
CPU/NewRec: Clear needed on swapped delay slot
Fixes panic in BIOS on x86_64 Linux with PGXP enabled.
2024-05-20 01:12:32 +10:00
Stenzek 5b4f74122c
System: Add "Skip Duplicate Frame Display" option
Skips the presentation/display of frames that are not unique.
Can be combined with driver-level frame generation to increase
perceptible frame rate. Can result in worse frame pacing, and is
not compatible with syncing to host refresh.
2024-05-20 01:12:32 +10:00
Stenzek 14c30dfa80
FullscreenUI: Update string list 2024-05-19 13:19:51 +10:00
Stenzek 1205b75c51
GameList: Reduce logging verbosity 2024-05-19 13:19:51 +10:00
Stenzek 1adaea9005
GameList: Merge multi-disc games 2024-05-18 15:21:44 +10:00
Stenzek 9bdf23cba7
System: Load game settings from first disc of multi-disc games 2024-05-18 15:21:44 +10:00
Stenzek 073ac87be2
GameList: Use string_view for GetEntryForPath() 2024-05-18 15:21:43 +10:00
Stenzek 9b086b7807
CPU: Fix disassembly of rtps/nclip 2024-05-18 00:33:22 +10:00
Stenzek 7476baced6
CPU/PGXP: Track valid Z for lower/upper halves of 32-bit values
Dragon Valor writes both lower and upper halfwords separately from
non-valid-Z values. The Z needs to be cleared out.
2024-05-18 00:33:22 +10:00
Stenzek ea4efb4e52
CPU/PGXP: Prefer fresh over tainted Z values
Fixes terrain polygon's Z in Wild Arms 2 after battles.
2024-05-18 00:33:22 +10:00
Stenzek 5672b0da95
CPU/PGXP: sub rd, rs, 0 => move rd, rs 2024-05-18 00:33:22 +10:00
Stenzek bbac7a60a0
CPU/PGXP: Don't set high bits of flags 2024-05-18 00:33:22 +10:00
Stenzek 37b1aa45dd
CPU/PGXP: Minor optimization to shift instructions 2024-05-18 00:33:22 +10:00
Stenzek 3fd86a69a4
CPU/PGXP: Use component enum 2024-05-18 00:33:22 +10:00
Stenzek e4bedbbbfa
CPU/PGXP: Readability improvements 2024-05-17 23:46:18 +10:00
Stenzek 29d4e04e3b
CPU/PGXP: Use bit math for flags instead of union 2024-05-17 23:46:18 +10:00
Stenzek 82f3e17b78
CPU: Value logging/tracing for PGXP 2024-05-17 23:46:18 +10:00
Stenzek a59a42f35b
Qt: Fix translation of %n hours 2024-05-17 14:23:41 +10:00
Stenzek 35bdbf2a55
System: Check host page size on startup 2024-05-16 17:37:23 +10:00
Stenzek c53717bbe4
System: Rewrite input profile hotkey priority logic 2024-05-16 16:53:13 +10:00
Stenzek f0a4ceb909
InputManager: Add push to toggle for macros 2024-05-15 21:17:26 +10:00
Stenzek 446750fb66
FullscreenUI: Correct heading sizes 2024-05-15 20:31:12 +10:00
Stenzek c116e5a1d5
Qt: Consider per-game overrides for Edit Memory Cards menu 2024-05-15 01:50:43 +10:00
Stenzek 18160a8e06
Qt: Add option to pause when controller is disconnected 2024-05-14 16:00:09 +10:00
Stenzek 8f415a44e6
CPU/NewRec: Fix register allocation crash on Linux 2024-05-14 15:13:18 +10:00
Stenzek e517581041
System: Tidy up some unused code 2024-05-14 15:13:18 +10:00
Stenzek f3aec0c965
Host: Re-introduce plural translation support 2024-05-13 01:46:45 +10:00
Stenzek 318fd0b0fd
System: Fix triple popup on missing BIOS 2024-05-13 00:07:47 +10:00
Stenzek be920acf38
System: Get rid of double popup on renderer create error 2024-05-13 00:06:56 +10:00
Stenzek 5808e14b7e
GameDatabase: Warning fix 2024-05-13 00:06:56 +10:00
Stenzek 522c2e3458
FullscreenUI: Use native file selector on Flatpak 2024-05-12 20:28:20 +10:00
Stenzek 37a76a020a
FullscreenUI: Add horizontal padding to menu windows 2024-05-12 18:14:51 +10:00
Stenzek 69e0c1681c
FullscreenUI: Correct pixel alignment of some UI elements
Fixes scrollbars showing up at some window sizes.
2024-05-12 17:57:18 +10:00
Stenzek 864b0ad5fe
Qt: Save audio output latency value separately to minimal flag 2024-05-12 17:36:15 +10:00
Stenzek e7765d26fb
System: Fix double popup on missing SBI file 2024-05-12 17:20:37 +10:00
Stenzek a4a35b7e58
GPU: Add Bilinear (Integer) scaling option 2024-05-12 15:32:21 +10:00
Stenzek d3546d18a1
Qt: Add compatibility report in game summary 2024-05-06 00:00:41 +10:00
Stenzek ffb5682b43
Qt: Add game list excluded folders as well as files
Backport of https://github.com/PCSX2/pcsx2/pull/9730
2024-05-05 22:29:26 +10:00
Stenzek fa104acdd1
Misc: Purge unused code and report startup error to host 2024-05-05 22:29:26 +10:00
Stenzek ca3cfbaa99
Misc: Pass string_view by value 2024-05-05 22:28:29 +10:00
xujibbs fea00d0149
FullscreenUI: Mark %d ms for translation (#3196) 2024-05-05 12:41:46 +10:00
Stenzek 1185f8f6aa
GPU: Implement CLUT cache (SW renderer only)
Fixes copyright screen in Shadow Master.
Fixes title splash in Castrol Honda Superbike Racing.
2024-05-02 01:03:58 +10:00
Stenzek d1483d8077
GPU: Rework pre-draw clipping 2024-05-02 01:03:58 +10:00
Stenzek 7e22fb08d2
GPU: Add #define'able PSX GPU stats 2024-05-01 23:00:10 +10:00
Stenzek fec210b1e1
GPU: Ensure coordinates are masked/clamped 2024-05-01 20:58:21 +10:00
Stenzek 25f725c263
GPU: Fix mask for drawing area coordinates 2024-04-28 15:44:41 +10:00
Stenzek d094978214
Justifier: Add controller implementation 2024-04-28 15:25:24 +10:00
Stenzek 3be02c53c1
GPU: Improve CRTC hblank accuracy
And implement Timer0 gating, it was missing previously.
2024-04-28 15:25:24 +10:00
Stenzek 295081fe62
Misc: Replace offsetof with constexpr-friendly OFFSETOF
Fixes build with clang-18.
2024-04-28 15:25:24 +10:00
Stenzek 3e99084770
Settings: Fix double source of truth for controller names 2024-04-27 13:21:11 +10:00
Stenzek d80aa91d49
ImGuiOverlays: Fix >1 controller display 2024-04-27 12:41:47 +10:00
Stenzek 2fc9a6d834
CPU/NewRec: Work around clang <16 structured binding capture bug 2024-04-26 19:23:46 +10:00
Stenzek 1cdfca155d
Qt: Clean and remove empty game settings 2024-04-25 14:02:16 +10:00
Stenzek 5e9a47f82b
Qt: Add volume reset button 2024-04-25 13:24:04 +10:00
Stenzek 7548113afd
System: Move COM init to common code 2024-04-25 12:56:02 +10:00
Stenzek 4139bf63d8
AudioStream: Backport changes 2024-04-25 01:13:51 +10:00
RSDuck 89c0d4900b
Fix post processing menu in the fullscreen UI (#3187) 2024-04-23 16:26:46 +10:00
Stenzek b4999975db
System: Fix pause-on-start running unthrottled 2024-04-23 14:44:08 +10:00
Stenzek eb91fe31e2
Hotkeys: Add OSD toggle hotkey 2024-04-22 01:52:02 +10:00
Stenzek 3b8afb39f6
System: Don't try to fast boot non-PS1 discs 2024-04-22 01:44:04 +10:00
Stenzek 3fa2bd1d3a
System: Confirm shutdown if memory card is being written 2024-04-22 01:41:42 +10:00
Stenzek a5613fc815
System: Add OSD message when all enhancements are disabled 2024-04-22 00:38:46 +10:00
Stenzek b26a9556f7
System: Improve reset determinism 2024-04-22 00:19:44 +10:00
Stenzek 35f0d7f623
CPU: Update debug dispatcher flag on init 2024-04-22 00:08:16 +10:00
Stenzek 0fbc1a3a8a
AudioStream: Add surround expansion via FreeSurround 2024-04-21 23:30:46 +10:00
Stenzek d3c12fecb3
Qt: Move dump audio on startup out of settings 2024-04-21 20:28:20 +10:00
Stenzek 7d80cabf9f
BIOS: Remove questionable hashes
And add PS2 hashes.
2024-04-21 14:03:55 +10:00
Stenzek 8867bb129a
CMake: Tidy up build system
And fix Windows CMake... who knows how long for.
2024-04-20 21:19:31 +10:00
Stenzek 17b9736899
Misc: Use a 128b cache line size on Apple Silicon
Turns out it's not 64 bytes like I assumed. The things you learn.
2024-04-18 20:38:36 +10:00
Stenzek 60f12e77fa
Achievements: Fix fullscreen window height 2024-04-18 20:38:35 +10:00
Stenzek 3bb36f95e2
FullscreenUI: Get rid of extra scrollbar in save state selector 2024-04-18 00:41:37 +10:00
Stenzek f666816943
ImGuiOverlays: Fix possible crash in save state selector 2024-04-18 00:40:31 +10:00
Stenzek 84b24c6228
Achievements: Fix HC mode activating on reset of non-cheevo game 2024-04-18 00:40:06 +10:00
Stenzek c1bf1e5369
Qt: Add binding layout for NegConRumble 2024-04-16 15:40:31 +10:00
Matheus Fraguas 07c012aee5
Negcon rumble (#3177)
* Implemented NeGcon with rumble. Code is a mix of the existing NeGcon AnalogController modes.

* Fix negcon id reply and analog/digital toggle.

* Implemented NeGcon with rumble. Code is a mix of the existing NeGcon AnalogController modes.

* Fix negcon id reply and analog/digital toggle.

* Update macros

* Code cleanup
2024-04-16 15:40:31 +10:00
Stenzek 4d8ed49b24
FullscreenUI: Fix gaps between some UI elements
By rounding sizes up to the nearest pixel.
2024-04-16 15:40:31 +10:00
Stenzek 4e0c417add
FullscreenUI: Add "Open Containing Directory" 2024-04-16 12:49:54 +10:00
Stenzek 6e7a4c3909
FullscreenUI: Exit fullscreen for open-in-file-browser 2024-04-16 12:49:54 +10:00
KamFretoZ 79ccd5f3c3
FullscreenUI: Wire up Open in File Browser functionality (#3178) 2024-04-16 12:49:54 +10:00
Stenzek be1d558be1
GPU/HW: Fix black screen in Metal after vertex ID wraparound 2024-04-15 23:30:58 +10:00
Stenzek 4bcc5a312a
System: Remove log spam 2024-04-14 17:25:23 +10:00
Stenzek 3dedf5fdd5
FullscreenUI: Add missing latency stats option 2024-04-14 17:25:23 +10:00
Stenzek c149d66d4d
System: Add 'Reduce Input Latency' option
i.e. pre-frame sleep.
2024-04-13 19:57:25 +10:00
Stenzek 6258cb9e0e
FullscreenUI: Various minor bug fixes 2024-04-13 19:57:25 +10:00
PugsyMAME 7adbedd341
Renamed Mem Scanner Op Text&added Virtual Address (#3172)
* Renamed Mem Scanner Op Text&added Virtual Address

Renamed the Memory Scanner Operator Text for clarity. Replaced '...' with 'Value' and 'Previous' with 'Previous Result'.
Also changed "Any Value" to "Any Value ('New Search' or 'Reset Result Value')", Any Valur should really be at the top of the index and the Previous Results should come before the other Value operators. But that's a job for another time.
The Virtual Address extra will display the virtual address of DuckStation's PSX RAM so it can be easily edited with the likes of HXD or another tool where the location of the virtual memory needs to be known.

* Replaced Mem Scanner Op Text with latest English text

Not touched the translations, just added the updated english text for the Memory Scanner "Operator:" text

* Rearranged  Memory Scanner Operator class

Re-arranged Memory Scanner Operator class into a more logical order - with likely frequency of use moving item up the list.

New Order:-
Better Order:-
Any Value ('New Search' or 'Reset Result Value')         x    Any.
Less Than Previous Result                                x    LessThanLast,
Less or Equal to Previous Result                         x    LessEqualLast,
Greater Than Previous Result                             x    GreaterThanLast,
Greater or Equal to Previous Result                      x    GreaterEqualLast,
Not Equal to Previous Result (Changed Value)             x    NotEqualLast,
Equal to Previous Result (Unchanged Value)               x    EqualLast,
Decreased By Value                                       x    DecreasedBy,
Increased By Value                                       x    IncreasedBy,
Changed By Value                                         x    ChangedBy,
Equal to Value                                           x    Equal,
Not Equal to Value                                       x    NotEqual,
Less Than Value                                          x    LessThan,
Less or Equal to Value	                                 x    LessEqual,
Greater Than Value                                       x    GreaterThan,
Greater or Equal to Value                                x    GreaterEqual

* Rearranged  Memory Scanner Operator class

Changes operator order to:-
Any Value ('New Search' or 'Reset Result Value')        
Less Than Previous Result                               
Less or Equal to Previous Result                        
Greater Than Previous Result                            
Greater or Equal to Previous Result                     
Not Equal to Previous Result (Changed Value)            
Equal to Previous Result (Unchanged Value)              
Decreased By Value                                      
Increased By Value                                      
Changed By Value                                        
Equal to Value                                          
Not Equal to Value                                      
Less Than Value                                         
Less or Equal to Value	                                
Greater Than Value                                      
Greater or Equal to Value

* Memory Scanner line references updates

Updated <location filename="../memoryscannerwindow.ui" line="???"/> line numbers for the Memory Scanner operation re-ordering.
These are currently the only 4 translation files that make reference to memoryscannerwindow.ui, the other 12 still reference cheatmanagerdialog.ui so not replicated for them as this would only partially fix them - so I left them alone as I hope there's some automated tools to handle it.

* Update src/duckstation-qt/memoryscannerwindow.cpp
2024-04-13 19:57:12 +10:00
Stenzek e5a024ba85
MetalDevice: Add support for framebuffer fetch 2024-04-12 21:07:16 +10:00
Stenzek 7344661801
GPUDevice: Split submission and presentation 2024-04-11 22:53:02 +10:00
Stenzek 509a8a074c
GPUDevice: Remove unused file 2024-04-11 21:33:40 +10:00
Stenzek 88270771da
System: Combine VRR and Optimal Frame Pacing
GSync/FreeSync display users should:
 - DISABLE VSync.
 - ENABLE Optimal Frame Pacing.
2024-04-11 21:33:40 +10:00
Stenzek fec36471b8
Settings: Use RealPath() for directories 2024-04-11 14:44:43 +10:00
Stenzek 57f6bda59b
ImGuiFullscreen: Use popup background for all popups 2024-04-11 13:50:04 +10:00
Stenzek 1b1e42d003
System: Add Error to boot/load/save state 2024-04-11 13:42:10 +10:00
Stenzek 1809885927
FullscreenUI: Fix crash with language select on Linux 2024-04-11 12:52:56 +10:00
Bobby Smith b58862a64a Disable cheats by default 2024-04-11 12:20:51 +10:00
Stenzek 8c741d2d48
Qt: Update glyph range for zh-CN and purge old obsolete strings 2024-04-10 20:28:00 +10:00
Stenzek 440a1700c0
System: Interrupt execution when loading state and reset 2024-04-10 20:18:30 +10:00
Stenzek 417bf0c3bc
DMA: Better enforce CPU runtime during linked list
and get rid of the hack for Newman Haas.
2024-04-10 20:11:23 +10:00
Stenzek e9ae49b3c4
FullscreenUI: Regenerate strings 2024-04-10 00:07:13 +10:00
Stenzek bf4e8feb25
FullscreenUI: Redo landing page and add help bar 2024-04-09 23:49:24 +10:00
Stenzek de1a1af908
FullscreenUI: Avoid per-frame memory allocations with SmallString 2024-04-09 19:54:25 +10:00
Stenzek 631fca3042
SettingsInterface: Add SmallString overloads 2024-04-09 19:54:25 +10:00
Stenzek 71f50566f3
System: Consider pending ticks when using global ticks 2024-04-07 19:01:48 +10:00
Stenzek 8a1b4d8bee
DMA: Halt linked list transfers during pad transfer
Plenty of games seem to suffer from this issue where they have a linked list
DMA going while polling the controller. Having a large slice size causes the
serial transfer to complete before the silly busy wait in the BIOS poll routine
returns, resulting in it thinking that the controller is disconnected. Some
games are very sensitive to this (e.g. Newman Haas Racing), to the point that
even using a slice size of 1 is insufficient for avoiding the race, probably
due to the linked list layout.

Therefore, without major refactoring to ensure the CPU runs every DMA block,
and the associated performance penalty, we just halt the DMA until the serial
transfers have completed. To reduce the chances of this significantly affecting
timing, we add accumulate the ticks that have been "lost", and allow them to be
"used up" when the transfer does happen.
2024-04-07 18:55:03 +10:00
Stenzek 8bdeb8bdac
MemoryCardImage: Handle 128KB GME files 2024-04-07 17:06:42 +10:00
Stenzek 1ee5f737ed
MemoryCardImage: Report errors to caller 2024-04-07 13:23:00 +10:00
Stenzek 99b0fb5911
GPU/HW: Move pipelines to end of struct
Helps keep the rest in range for ARM32's 4K displacement.
2024-04-06 21:51:52 +10:00
Stenzek 1097eab600
GPU/HW: Don't create shader blend pipelines if disallowed 2024-04-04 13:25:33 +10:00
Stenzek c2a08bdb1d
CPU/NewRec: Fix ARM32 (again) 2024-04-04 13:25:33 +10:00
Stenzek a432308908
GPU: Fix GLES compile error 2024-04-04 13:25:33 +10:00
Stenzek cb6be52404
GameDatabase: Warn if CPU mode is enabled and unnecessary 2024-04-03 22:58:20 +10:00
Stenzek 74f3c8d1aa
GPU/HW: Enable feedback loops for rendering 2024-04-01 18:12:52 +10:00
Stenzek 72ab669e70
GPUDevice: Add support for feedback loops 2024-04-01 13:55:19 +10:00
Stenzek 71a07a5a8e
CPU/NewRec: Fix lwl/lwr on ARM 2024-03-31 23:49:40 +10:00
Stenzek 3ecc19c43f
GPU: Fix HW readback counter 2024-03-31 14:02:44 +10:00
Stenzek 8ebda3cdc8
CPU/NewRec: Fix register corruption in swl/swr 2024-03-31 13:55:19 +10:00
Stenzek a3013efbca
CPU/NewRec: Fix PGXP desync
Wobbly geometry in Threads of Fate.
2024-03-30 00:46:38 +10:00
Stenzek f9f9447013
SPU: Ignore End+Mute flag for noise channels
Fixes the noise effects cutting out too early in Motor Toon Grand Prix.
2024-03-29 15:08:14 +10:00
Stenzek 2b7008bd93
GPU/HW: Fix box downsampling with FMVs 2024-03-29 12:37:10 +10:00
Stenzek c41563c7dc
Pad: Fix unconditional memory card replug on load state 2024-03-29 12:34:42 +10:00
Stenzek e54ad1956a
GPU/HW: Fix height incorrect doubling in interleaved 480i mode 2024-03-29 12:17:13 +10:00
Stenzek de1e5b24fb
CDROM: Don't send reports when subq isn't valid 2024-03-26 01:20:33 +10:00
Stenzek 83ebad1129
System: Leave title empty when booting physical audio CDs 2024-03-25 23:24:41 +10:00
Stenzek 7b8704aba1
System: Fix incorrect sanitization of memcard filenames 2024-03-25 23:24:41 +10:00
Stenzek 480c78502f
System: Fix crash toggling debug GPU device
When postfx is enabled.
2024-03-24 22:32:44 +10:00
Stenzek 43fc9f1ef2
Settings: Support saving WebP screenshots 2024-03-24 16:03:00 +10:00
Stenzek b143d96476
Build: Use deps DLLs on Windows 2024-03-24 16:02:59 +10:00
Stenzek 8c09e9389d
GameDB: Add DisablePGXPPreserveProjFP trait
And add it to Crash Team Racing.
2024-03-23 14:11:28 +10:00
Stenzek 604dd5df40
Qt: Add copy/clear game settings 2024-03-21 00:50:57 +10:00
Stenzek 3085172ffd
FullscreenUI: Update translation strings 2024-03-20 22:48:23 +10:00
Stenzek 9703542775
AudioStream: Re-add SDL backend 2024-03-20 22:46:20 +10:00
Stenzek e70f0e1bc1
GPU/HW: Use texelFetch() instead of sampler 2024-03-20 21:56:20 +10:00
Stenzek a4a58c6ba2
SPU: Implement volume sweep phase inversion 2024-03-20 21:55:55 +10:00
Stenzek 2003c9452b
DMA: Properly handle bus errors and DICR transitions 2024-03-18 02:07:42 +10:00
Stenzek fa6850902a
CPU: Make interrupts actually edge-triggered 2024-03-18 01:46:19 +10:00
Stenzek e755e15c69
GPU: Fix GLSL compile error 2024-03-17 00:07:18 +10:00
Stenzek 1ab7850ed0
GPU: Rewrite deinterlacing and add adaptive/blend modes 2024-03-16 14:14:15 +10:00
Stenzek 43eb6e20fa
System: Improve screenshot naming 2024-03-16 14:14:15 +10:00
Stenzek 6aa491f863
GPU: Ensure screenshots are saved before shutdown 2024-03-16 14:14:15 +10:00
Stenzek 9211d9f2e3
Path: Add CreateFileURL() 2024-03-16 14:10:35 +10:00
Stenzek d1a1cab9a9
Bus: Direct KUSEG+KSEG0 isolated cache reads to ICache 2024-03-13 14:14:40 +10:00
Stenzek 3395853ba2
CDROM: Fix overflow in UpdatePositionWhileSeeking() 2024-03-13 14:14:40 +10:00
Stenzek 8fe86ff690
GPU/HW: Fix another buffer unmapping case 2024-03-08 21:16:00 +10:00
Stenzek 7159330f63
GPU/HW: Ensure buffers are unmapped before present
Darn DX11...
2024-03-08 13:43:22 +10:00
Stenzek 25db163347
System: Fix incorrect save state screenshot size 2024-03-08 04:12:50 +10:00
Stenzek c854b8f85e
Image: Swap stb for libpng/libjpeg 2024-03-07 00:02:35 +10:00
Stenzek 250b1bea8f
GPU: Use Image class for screenshot saving 2024-03-06 23:55:18 +10:00
Stenzek 620d08f72d
Build: Move Image from common to util 2024-03-06 16:09:21 +10:00
Stenzek f80ead6a21
GameDB: More settings 2024-03-05 00:02:22 +10:00
Stenzek e2024f6175
System: Change "Auto Load Cheats" to "Enable Cheats" 2024-03-03 14:03:07 +10:00
Stenzek a1d7d214cf
GPUDevice: Add support for VRR and relaxed vsync 2024-03-03 14:03:07 +10:00
Stenzek 96f29d9b99
System: Warn if compatibility settings are disabled 2024-03-02 21:21:20 +10:00
Stenzek 04b837a418
Qt: Redesign graphics settings panel
Add screenshot format/type.
2024-03-02 21:21:20 +10:00
Stenzek 713d396a7e
GPU/HW: Add quad line detection (Wild Arms 2) 2024-03-02 17:13:19 +10:00
Stenzek 250fb56838
GPU/HW: Switch to indexed draws 2024-03-01 15:33:00 +10:00
Stenzek b34742cdd2
GPU/HW: Slightly reduce struct size 2024-03-01 13:51:16 +10:00
Stenzek d50ba989ae
Settings: Use bitfields for bool
Slightly more compact, memory-wise.
2024-03-01 13:42:29 +10:00
Stenzek f936a36c85
GPUDevice: Add GPUDownloadTexture
Which can also be based in host/client memory.
Use it for screenshots and VRAM downloads.
2024-02-29 18:56:50 +10:00
Stenzek 411213d6a0
GPU: Make VRAM a global object 2024-02-29 17:00:51 +10:00
Stenzek 7340324ed9
CDROM: Accuracy improvements 2024-02-29 17:00:51 +10:00
Stenzek 71094a0e44
CPU: Implement memory breakpoints/watchpoints 2024-02-28 00:02:02 +10:00
Stenzek ef4389cea8
Qt: Cache CPU register values
That way they don't update while running.
2024-02-27 22:38:43 +10:00
Stenzek 4599109854
CPU/CodeCache: Clear backpatch info for blocks when recompiled 2024-02-27 22:16:59 +10:00
Stenzek 454cceab80
CPU/CodeCache: Move backpatch lookup after RAM check
Saves a map lookup if we're just invalidating code.
2024-02-27 21:04:26 +10:00
Stenzek eb7b6d217d
System: Ensure GPU is flushed before invalidating on pause 2024-02-27 21:04:26 +10:00
Stenzek eeef0a92bb
CPU: Make single step go through the "normal" execution path
That way it exits and re-enters the dynarec as expected.
2024-02-27 21:04:25 +10:00
Stenzek 4a70164dac
CMake: Determine host page size at build time
Needed for running on Asahi Linux.
2024-02-25 20:30:41 +10:00
Stenzek ab83247de3
GLContext: Rename to OpenGLContext 2024-02-25 20:30:41 +10:00
Stenzek c1381cfda6
System: Gracefully handle memory allocaion failure 2024-02-25 20:30:41 +10:00
Stenzek ff9dc11a38
CPU/CodeCache: Increase frame delta for manual protected blocks
Reduces stutter in Wild Arms 2.
2024-02-24 15:06:24 +10:00
Stenzek 35cdfc5ef7
CPU: Move PGXP registers earlier in struct 2024-02-24 14:57:31 +10:00
Stenzek 53c0dc8bbc
CPU/NewRec: Speculative execution for mult/div 2024-02-24 14:57:30 +10:00
Stenzek 175d2a17f7
CPU/NewRec: Don't panic on unused opcodes 2024-02-24 14:57:29 +10:00
KamFretoZ 1f6636f62b Qt: Icon updates 2024-02-18 15:44:12 +09:00
Stenzek 1faecd8853
Qt: Fix labels when changing multi-tap controller type 2024-02-15 22:06:01 +09:00
Tobias Jakobi 739729516e Core: Add missing standard library includes 2024-02-06 23:48:45 +10:00
Stenzek 8e7b212b03
System: Clear cheat list on reset 2024-02-06 22:24:33 +09:00
Stenzek f6dc80cefa
GameDatabase: Use TitleCase for traits 2024-02-04 16:47:26 +10:00
Stenzek 8ffc50a2a5
Data: Remove JSON GameDB 2024-02-04 16:14:05 +10:00
Stenzek d7a1c447c6
GameDatabase: Switch to YAML 2024-02-04 16:14:05 +10:00
Stenzek a957fb669d
StringUtil: Fix inequal-length EqualNoCase 2024-02-04 15:22:38 +10:00
Stenzek c2c3eac749
Build: Use shared webp/zstd/zlib 2024-02-03 19:41:56 +10:00
Stenzek cdb614a51f
GPU/HW: Fix possible crash (again) 2024-02-03 16:00:24 +10:00
Stenzek cdea4eb68b
GPU/HW: Fix possible crash on setting change 2024-01-31 20:02:34 +10:00
Stenzek ad41c81fa8
ImGuiOverlays: Fix incorrect animation when opening state selector 2024-01-31 00:53:30 +10:00
Stenzek af2042e713
GPU/HW: Fix toggling PGXP depth buffer causing black screen 2024-01-31 00:53:30 +10:00
Stenzek 14e3969736
Misc: Warning fixes 2024-01-26 14:31:03 +10:00
Stenzek b545234152
CPU/NewRec/AArch32: Fix double condition 2024-01-25 13:42:41 +10:00
Stenzek 4f347bf626
Qt: Add missing display setting help text 2024-01-24 13:56:22 +10:00
Hugo Locurcio 1b8e75e90b
Take widescreen hack into account when determining automatic resolution scale
At widescreen aspect ratios, a greater resolution scale factor is required
to maintain crisp visuals. For instance, a 16:9 output requires ~1.333×
the resolution scale of a 4:3 output (as 16:9 is ~1.333× wider than 4:3).

This improves visuals at widescreen aspect ratios when the widescreen hack
is enabled, especially for ultrawide.
2024-01-22 14:41:19 +10:00
athenavr 5e2c6d24b9
Add independent settings for NeGcon axes (#3094)
* Add independent settings for NeGcon axes

* TOSQUASH coverage of the full NeGcon twisting range
2024-01-22 14:41:19 +10:00
Stenzek 37e8d1ab86
GPU/HW: Fix VRAM write replacements 2024-01-22 14:41:19 +10:00
Stenzek a7b7ce2720
System: Fix crash with replacement precaching 2024-01-22 14:41:19 +10:00
Stenzek a231fd4f22
Settings: Fix Match Window on Android 2024-01-22 14:41:19 +10:00
Stenzek 150ab8f4af
GPU: Add host/hardware stats 2024-01-22 14:41:19 +10:00
Stenzek 884c851079
CPU: Fix GTE control register disassembly 2024-01-21 02:45:09 +10:00
Stenzek f66866ed73
GPUDevice: Use Error class for initialization errors 2024-01-21 00:18:33 +10:00
Stenzek 429cb4f351
Qt: Allow toggling fullscreen when VM is paused 2024-01-21 00:07:32 +10:00
Stenzek b98ac8722a
FullscreenUI: Move functionality to Host 2024-01-20 20:29:33 +10:00
Stenzek bc04854ed3
GPU/HW: Bump shader cache version 2024-01-20 02:14:56 +10:00
Stenzek 687e212dfe
GPU/HW: Shader compile fix 2024-01-20 02:14:36 +10:00
Stenzek 37276472eb
Qt: Tidy up Enhancement settings 2024-01-19 21:40:44 +10:00
Stenzek f369724b7c
dep/imgui: Update to v1.90.1 2024-01-19 21:22:26 +10:00
Hugo Locurcio cc94b76037
Add debanding option to improve gradient smoothness with truecolor
This option only has an effect if true color is also enabled.
2024-01-19 01:05:21 +01:00
Stenzek 5f9eef585f
Achievements: Wrap long achievement descriptions 2024-01-14 01:44:21 +10:00
Stenzek eae4f73f94
Achievements: Open cheevo details in browser when selected 2024-01-14 01:44:21 +10:00
Stenzek da9e3064c2
Achievements: Display missable/progression/win icons 2024-01-14 01:44:21 +10:00
Stenzek e86cf51a48
GPU/HW: Handle palette VRAM wrapping
Fixes block colours in The Next Tetris.
2024-01-13 13:54:51 +10:00
Stenzek 73cee9f705
Settings: Add UserResources to EmuFolders
Allowing some resources, such as fonts/sounds to be overridden by the
user.
2024-01-10 22:46:57 +10:00
Stenzek fcbae6cef3
GPU/HW: Fix off-by-one in dirty rect checks
Fixes transitions in Crash 3.
2024-01-08 15:49:05 +10:00
Stenzek 32f5482ad2
CPU: Inhibit debug dispatcher when COP0 BP is invalid 2024-01-01 15:25:48 +10:00
Stenzek cc84952fdc
AnalogController: Minimum deadzone/activation threshold should be 1% 2023-12-31 19:42:52 +10:00
Stenzek 12b9cf1898
GPU: Fix crash when trying to postprocess surfaceless 2023-12-31 19:40:45 +10:00
Connor McLaughlin e60654de38
Merge pull request #3080 from tobiasjakobi/different-types-fix
CPU/Recompiler: Fix build error
2023-12-28 18:54:36 +10:00
Stenzek 6d3e3f78da
System: Shorten libcrypt error on Android 2023-12-28 15:37:22 +10:00
Stenzek 958b033a66
PostProcessing: Fix assertion on some shader/texture formats 2023-12-28 15:31:03 +10:00
Stenzek 98d5b98ab1
GPU/HW: Fix incorrect pipeline layout with texture buffers disabled 2023-12-27 02:03:50 +10:00
Stenzek 044eb589f9
Settings: Expose disable texture buffers/copy to self options 2023-12-27 01:44:08 +10:00
Tobias Jakobi dbe29bd5ca CPU/Recompiler: Fix build error
Build currently fails on a GCC 13.2.x with:

/var/tmp/portage/games-emulation/duckstation-9999/work/duckstation/src/core/cpu_recompiler_code_generator.cpp: In member function ‘bool CPU::Recompiler::CodeGenerator::Compile_Bitwise(CPU::Instruction, const CPU::CodeCache::InstructionInfo&)’:
/var/tmp/portage/games-emulation/duckstation-9999/work/duckstation/src/core/cpu_recompiler_code_generator.cpp:1330:81: error: operands to ‘?:’ have different types ‘BitField<unsigned int, CPU::Reg, 16, 5>’ and ‘BitField<unsigned int, CPU::Reg, 21, 5>’
 1330 |                                PGXP::PackMoveArgs(dest, lhs.HasConstantValue(0) ? instruction.r.rt : instruction.r.rs)),
      |                                                         ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/tmp/portage/games-emulation/duckstation-9999/work/duckstation/src/core/cpu_recompiler_code_generator.cpp:1362:81: error: operands to ‘?:’ have different types ‘BitField<unsigned int, CPU::Reg, 16, 5>’ and ‘BitField<unsigned int, CPU::Reg, 21, 5>’
 1362 |                                PGXP::PackMoveArgs(dest, lhs.HasConstantValue(0) ? instruction.r.rt : instruction.r.rs)),
      |                                                         ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2023-12-26 13:07:28 +01:00
Stenzek 62d2f12236
Settings: Expose exclusive fullscreen control 2023-12-25 23:44:15 +10:00
Silent 8d491d3faa
System: Mark the VM as Stopping in ShutdownSystem unconditionally
Fixes an issue where Discord RPC didn't revert to "No Game Running"
on shutdown.
2023-12-23 15:27:10 +01:00
Silent d08a40bcd8
DiscordRPC: Show session time in Discord Rich Presence 2023-12-23 15:19:22 +01:00
Stenzek 8fe6ef1fa8
CPU/NewRec: Allocate callee-saved registers before caller-saved 2023-12-21 02:00:19 +10:00
Stenzek b7c3c76014
CPU/NewRec/RISCV64: Implement PGXP 2023-12-21 02:00:19 +10:00
Stenzek 36643fe78b
GameList: Add "File Size" field 2023-12-20 23:40:28 +10:00
Stenzek bbd021bd5f
DMA: Memory wraparound is unlikely 2023-12-20 22:44:50 +10:00
Stenzek 48a1282a08
GPU/HW: Fix incorrect layout for non-buffer VRAM write 2023-12-20 22:42:32 +10:00
Stenzek dc5e4120cd
GPUDevice: Improve texture pooling 2023-12-20 22:42:32 +10:00
Stenzek 5ef2ba0eb2
GPU/HW: Add fallback path for no-texture-buffers
Yay, old Mali drivers without SSBOs...
2023-12-19 22:38:36 +10:00
Stenzek f5ddd7ba32
DMA: Template transfer functions
~20% speedup in FMV playback on a Ryzen 9 7950X3D. CPUs hate branches.
2023-12-19 22:38:36 +10:00
Stenzek b9665e83a3
MSBuild: Only link with Zydis in Debug builds 2023-12-19 22:38:35 +10:00
Stenzek cf45047463
CI/Windows: Use Clang-CL instead of MSVC 2023-12-19 22:38:35 +10:00
Stenzek 21bbe5c76c
CPU/CodeCache: Fix page error when rewinding 2023-12-19 22:38:27 +10:00
Stenzek 6a7dea6908
CPU/CodeCache: Fix rewinding on Apple Silicon 2023-12-18 21:01:57 +10:00
Stenzek 7829abc014
MSBuild: We don't need WinPixEventRuntime in Release builds 2023-12-18 20:50:36 +10:00
Stenzek df08e122c3
System: Fix rewind throttling at half speed 2023-12-18 20:50:36 +10:00
Stenzek 87d24d3259
System: Fix crash on emptying rewind buffer 2023-12-18 20:50:36 +10:00
Stenzek e6be0532cb
System: Fix incorrect rewind VRAM estimation 2023-12-18 20:50:35 +10:00
Stenzek 8842a46a90
CPU: Fix namespacing in disassembler 2023-12-17 13:40:38 +10:00
Stenzek 73968ac526
SaveStateSelectorUI: Decouple current slot from list 2023-12-17 13:33:51 +10:00
Stenzek cffb383c10
CPU: Add disassembly of GTE instructions 2023-12-17 00:38:11 +10:00
Stenzek 6328d08c14
System: Don't unconditionally refresh save state UI 2023-12-17 00:09:15 +10:00
Stenzek e93fec49bb
Achievements: Reload settings after hardcode disabled 2023-12-16 21:12:05 +10:00
Stenzek fb0ad26de8
Achievements: Fix incorrect fallback message 2023-12-15 23:54:31 +10:00
Stenzek aa658047f6
CPU/Recompiler: Fix jal/jalr to load delayed register
NewRec already handled this correctly.
2023-12-15 21:46:30 +10:00
Stenzek 87a7c09466
GPU/HW: Improve heuristics for draw/write when copying 2023-12-15 16:05:44 +10:00
Stenzek a499e21453
CPU/CodeCache: Don't try to compile direct double branches
Invalidation nightmare.
2023-12-15 13:46:48 +10:00
Stenzek 98a96db1bd
GPU: Remove redundant fields 2023-12-14 20:23:49 +10:00
Stenzek 23d5b20da6
GPU/HW: Split dirty rect into draw/write
Significant performance improvement in Persona 2.
2023-12-14 20:23:49 +10:00
Stenzek 5218ac6944
GPU/HW: Fix incorrect mask in VRAM offset calc 2023-12-14 20:23:48 +10:00