Commit Graph

2944 Commits

Author SHA1 Message Date
Stenzek 891d5cefbe
ImGuiFullscreen: Allow smooth scrolling 2024-09-09 21:57:08 +10:00
Stenzek e93dea5ad8
SPU: Connect 0x1F801DB8/0x1F801DBA writes
But I'm not aware of any games that actually use this, and if there is a
sweep active, it will be soon overwritten anyway.
2024-09-09 21:04:47 +10:00
Stenzek d1770b616f
Settings: Default console logging to running from TTY 2024-09-09 20:55:15 +10:00
Stenzek e2a3fe14f0
Cheats: Prevent inlining of memory functions
Clang is way too eager here and inlines the whole thing hundreds of
times within CheatList::Apply().
2024-09-09 18:53:51 +10:00
Stenzek 4c31218d2b
GPUDevice: Add API version field
Also tie shader caches to API version and device LUID. That way we don't
have tons of cache files, and they're regenerated if the GPU/driver
changes.
2024-09-08 23:33:05 +10:00
Stenzek 3078339f64
Common: Extract out ryml helpers 2024-09-09 00:35:31 +10:00
Stenzek 1d83e72887
Achievements: Fix incorrect plural string 2024-09-08 11:51:31 +10:00
Stenzek 1956575710
Cheats: Fix detection of ungrouped cheat import 2024-09-08 11:49:59 +10:00
Stenzek 32a3311208
System: Add option to automatically resize window 2024-09-07 22:05:54 +10:00
Stenzek 940cc636d6
GPU: Fix internal res screenshot AR with None cropping 2024-09-07 20:19:28 +10:00
Stenzek 47a3cd44f3
CDROM: Support reading MODE1 sectors 2024-09-07 16:05:53 +10:00
Stenzek ac5a2a153a
GPUDevice: Remove BeginPresent() skip parameter
It wasn't used - System does its own present skipping.
2024-09-07 12:53:55 +10:00
Stenzek 4b0c1fdbf2
GPUDevice: Add recovery from lost device 2024-09-07 12:48:44 +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
Stenzek 2e080d4998
Qt: Add edit function to debugger memory view 2024-09-06 22:48:50 +10:00
Stenzek ab1c85790c
CPU: Refactor execution mode switching
Fixes single step breaking in branch delay slots with recompiler.
Simplifies initialization.
Removes multiple sources of truth for fastmem.
2024-09-06 20:00:30 +10:00
spacepaw 5b4d625d23
Add *.psx as a supported PS-X EXE file type (#3290) 2024-09-06 09:33:19 +02:00
Stenzek 0458dfe8be
MemoryCard: Don't display message for empty card 2024-09-03 21:49:51 +10:00
Stenzek a7d8e6d018
Host: Add disambiguation variants for translations 2024-09-03 21:39:00 +10:00
Stenzek 87eded4bce
FileSystem: Fix FD leak with atomic updated file on Linux
Also add the ability to explicitly commit and check for errors.
2024-09-03 20:43:10 +10:00
Stenzek 1eb1b03141
MemoryCard: Defer creation of card until first save
Also do not overwrite the card if it failed to load.
2024-09-03 20:13:03 +10:00
Stenzek 1446e3035f
Settings: Make Disable Interlacing a Deinterlacing mode
Saving that precious vertical space.
2024-09-03 20:02:01 +10:00
Stenzek 94911abdca
System: Display disabled enhancements in safe mode 2024-09-03 19:29:59 +10:00
Stenzek f9a594058f
Settings: Force Frame Timings => Force Video Timing
Also drop from GameDB, an override doesn't make sense here anyway,
due to the low success rate with the enhancement.
2024-09-03 19:06:26 +10:00
Stenzek 6d0f92d4fb
dep/fmt: Bump to v11.0.2 2024-09-03 17:54:43 +10:00
Stenzek 6a3b1a2725
MDEC: Vectorize 16 and 24-bit copy-out
Speedup of 15% and 6% in FMV playback respectively.
2024-09-02 17:57:26 +10:00
spacepaw 63abdb7afd
Reworked the "Force NTSC Timings" feature to support both NTSC and PAL frame timings (#3287) 2024-09-03 10:50:45 +02:00
Stenzek 164a353352
System: Fix possible race condition in presence update 2024-09-02 12:12:41 +10:00
KamFretoZ b564f928bd
DiscordRPC: Add Rcheevos Icon Support (#3286) 2024-09-01 22:02:28 +07:00
Stenzek 51cfea49fe
ImGuiManager: Split OSD and debug window fonts
Fixes the latter not fitting on screen anymore.
2024-09-02 00:27:48 +10:00
Stenzek 5ed8af4236
Achievements: Shrink URL buffer sizes
They never end up being 512 bytes.
2024-09-01 23:51:16 +10:00
Stenzek 7f4e5d55db
Misc: Update copyright headers 2024-09-01 22:08:31 +10:00
Stenzek aa955b8ae2
GPU/SW: Split out rasterizer, add dynamic selection 2023-12-23 20:38:41 +10:00
Stenzek 3fbdcdb4ff
AudioStream: Rewrite and integrate expander 2024-09-01 13:16:10 +10:00
Stenzek b84d3f14fc
SPU: Vectorize reverb resampling 2024-08-31 17:30:25 +10:00
Stenzek cdba1fe25a
Common: Rename iNN -> sNN 2024-08-31 14:38:20 +10:00
Stenzek 7df5764835
Data: Remove license-incompatible shaders 2024-09-01 20:01:34 +10:00
Stenzek 63c7f4a893
GPU/HW: Fix assert with accurate blending + true colour on 2024-08-27 23:46:34 +10:00
Stenzek d651c9f477
GameList: Support excluding disc sets 2024-08-26 21:42:35 +10:00
Stenzek f243dc075d
Host: Use CompressHelpers for ReadCompressedResourceFile() 2024-08-26 21:33:00 +10:00
Stenzek 2c27b20090
ImGuiManager: Remove unused function 2024-08-26 18:53:30 +10:00
Stenzek 63bf64b05d
ImGuiOverlays: Use actual recording icon 2024-08-26 18:55:15 +10:00
Stenzek 940200f7f3
FullscreenUI: More animation fixes 2024-08-26 17:56:47 +10:00
Stenzek 46a6681159
CDROM: Fix incorrect clamp with seek speedup
And bump the minimum time up around 0.29ms or so, hopefully improve
stability in FF7.
2024-08-26 16:45:23 +10:00
Stenzek 344a4a6215
FullscreenUI: Navigation improvements
Improve default item focus, eliminate some animation glitches.
2024-08-26 15:47:50 +10:00
Stenzek e54c4c8101
ImGuiManager: Tweak OSD message size 2024-08-26 14:41:58 +10:00
Stenzek 7a05d5aca5
Achievements: Reset focus when opening windows 2024-08-26 14:21:09 +10:00
Stenzek b04f721d55
Achievements: Use plural form for points 2024-08-26 14:07:07 +10:00
Stenzek 6deb2eb390
Achievements: Fix badge download bug
Where it would download the incorrect icon if the locked badge was the
first image seen.
2024-08-26 00:15:32 +10:00
Stenzek a7f3d7b02d
ImGuiManager: Add CompactFontRange() 2024-08-25 23:39:14 +10:00
Stenzek e8b787fb57
Misc: Change various icons 2024-08-25 23:17:05 +10:00
Stenzek f37a97bf18
Host: Add ReadCompressedResourceFile() 2024-08-25 17:48:12 +10:00
Stenzek 707453b596
FileSystem: Swap vector for DynamicHeapArray
No point zeroing it out.
2024-08-25 22:13:18 +10:00
Stenzek f2c0303875
Misc: Use lightgun controller icon 2024-08-25 13:57:05 +10:00
Stenzek 72fc81a705
CMake: Add install target
Do **not** use this with /usr or /usr/local. It creates subdirectories
for resources/translations in the install prefix.

It's intended for creating a relocatable, self-contained bundle, which
can be packaged.
2024-08-12 18:49:28 +10:00
Stenzek 9dd83c4f9f
InputManager: Remove unused pointer type 2024-08-24 14:23:32 +10:00
Stenzek bda6869084
Qt: Implement per-game controller configuration 2024-08-24 14:10:25 +10:00
Stenzek 9e3507e0f4
InputManager: Support multiple mice via raw input
Only on Windows for now.
2024-08-23 22:31:59 +10:00
Stenzek 8b3fd538ea
System: Fix HW/SW rendering swap 2024-08-23 15:59:31 +10:00
Stenzek 1aa9c2d564
GameDatabase: Add DisableSpriteTextureFiltering trait 2024-08-23 15:18:55 +10:00
Stenzek 3578572aa1
CPU/NewRec/x64: Fix data corruption on lwl/lwr with PGXP 2024-08-23 14:33:37 +10:00
Stenzek 2971b2f34c
CPU/PGXP: Inline valid flag updates 2024-08-20 21:18:07 +10:00
Stenzek d4d813f043
CPU/PGXP: Identifier name consistency 2024-08-20 20:43:21 +10:00
Stenzek dadf388657
CPU/PGXP: Make validate a member function 2024-08-20 21:09:12 +10:00
Stenzek 491179a447
CPU/PGXP: Remove remaining C-isms 2024-08-20 19:12:51 +10:00
Stenzek a764954977
CPU/PGXP: Eliminate extra copy in SLT/SLTU 2024-08-20 18:35:49 +10:00
Stenzek 8629efc39c
CPU/PGXP: Purge macros 2024-08-20 18:33:18 +10:00
Stenzek 514116e6c3
CPU/PGXP: Rewrite SLL handler
Shift flags as well as the values.
2024-08-20 17:24:04 +10:00
Stenzek bcd2424db3
CPU/PGXP: Combine logical/arithmetic shift functions 2024-08-20 17:23:36 +10:00
Stenzek 3548bbcf90
CPU/PGXP: Combine static/variable shift instructions 2024-08-20 17:18:33 +10:00
Stenzek 2662694c04
CPU/PGXP: Purge psx_value completely 2024-08-20 16:55:24 +10:00
Stenzek fc375d76b5
CPU/PGXP: Purge psx_value from shifts 2024-08-20 16:42:51 +10:00
Stenzek 302652df22
CPU/PGXP: Purge psx_value from first half of instructions 2024-08-20 16:27:39 +10:00
Stenzek 9a6de196a3
CPU/PGXP: Use Instruction type 2024-08-19 22:22:18 +10:00
Stenzek 7dc78dbcd5
CPU/PGXP: Make MTC2/LWC2 behave the same 2024-08-20 20:06:04 +10:00
Stenzek 64a28aac53
CPU/PGXP: Fix typo in SLTU() 2024-08-20 19:27:26 +10:00
Stenzek b9679dfb0b
System: Remove contradictory statement 2024-08-20 12:08:59 +10:00
Stenzek 3455a0d151
System: Fix lockup with runahead enabled 2024-08-20 11:50:52 +10:00
Stenzek ef59a0da12
CPU: Fix assertion tripping in debug builds 2024-08-19 22:03:07 +10:00
Stenzek 41c8607782
TimingEvents: Don't defer frame done callback 2024-08-19 19:41:14 +10:00
Stenzek 86d4d92753
TimingEvents: Switch to 64-bit counters 2024-08-13 23:52:25 +10:00
Stenzek a0fcbba45c
SPU: Refactor volume envelopes
Properly handle phase inversion. Fixes left channel audio in Wipeout 3.
2024-08-19 01:38:28 +10:00
Stenzek fda6140088
GameDatabase: Add DisableAutoAnalogMode trait
For games that can handle analog controllers, but the sticks do not do
anything.
2024-08-18 20:33:15 +10:00
Stenzek aa9a5e383d
ImGuiOverlays: Change icon colour depending on controller mode 2024-08-18 20:30:45 +10:00
Stenzek 304f69e350
CDROM: Fix rare interrupt race when cancelling commands
Fixes hang during loading in Street Fighter Alpha 3.
2024-08-19 15:11:37 +10:00
Stenzek ee98912a42
SPU: Fix SPU_DUMP_ALL_VOICES option 2024-08-18 15:58:48 +10:00
Stenzek 3772706603
System: Look up media capture settings on-demand
No need to store them, save some memory.
2024-08-18 15:52:54 +10:00
Stenzek 9d7a3b10c2
Settings: Fix incorrect videos directory 2024-08-18 13:05:47 +10:00
Stenzek 7ac3e2fe50
Settings: Don't create deprecated achievement cache directories 2024-08-18 13:04:14 +10:00
Stenzek c6d14febd2
System: Log information on startup 2024-08-18 12:50:16 +10:00
Stenzek b274bf4d57
System: Switch to new capture file on video FPS change 2024-08-18 12:34:25 +10:00
xujibbs ce7bbb47d5
FullscreenUI: Make "version" in Big picture translatable (#3279) 2024-08-18 12:16:18 +10:00
Stenzek 052930a8d8
System: Fix reset with Type 2 fastboot 2024-08-18 12:13:57 +10:00
Stenzek 2f5aa45e1f
SPU: Fix incorrect envelope rate 2024-08-16 21:39:33 +10:00
Stenzek 2e2451998c
Misc: Fix ARM32 build (again) 2024-08-14 21:39:29 +10:00
Stenzek 460acce561
MDEC: Ensure alignment of inputs 2024-08-14 21:39:04 +10:00
Stenzek 13a37418e6
FullscreenUI: Fix popup close resetting window scroll 2024-08-13 18:09:30 +10:00
Stenzek f99d5ff39d
FullscreenUI: Fix saving of list options (e.g. controller settings) 2024-08-13 18:09:30 +10:00
Stenzek a6ba2b5e20
BIOS: Prioritize image enumeration
Launch console BIOS is de-prioritized due to bugs.
Late PAL is de-prioritized due to additional regional checks that break import booting without fast boot.
PS2 is de-prioritized due to requiring a dynamic fast boot patch.
PS2 PAL is further de-prioritized due to additonal region checks.
2024-08-13 15:09:13 +10:00
Stenzek 421bd23dc8
Bus: Add stub for SIO2 accesses
But only enable it when using a PS2 BIOS. I could put the check in the
handler registration, but realistically this is basically never going to
be called, so better to keep things simple.
2024-08-13 14:48:18 +10:00
Stenzek e96320daf0
BIOS: Add Type 2 fastboot patch (PS2) 2024-08-13 14:47:40 +10:00
Stenzek 9e09f53566
Core: Add constexpr MIPS Encoder
From https://raw.githubusercontent.com/grumpycoders/pcsx-redux/main/src/mips/common/util/encoder.hh
2024-08-13 14:46:42 +10:00
Stenzek 71738d12e0
GPU: Clear RT before sending to media capture
Fixes junk in inactive areas on Mac.
2024-08-12 22:17:45 +10:00
Stenzek 5786f3a8c9
System: Fix loading state without media 2024-08-12 21:22:32 +10:00
Stenzek ee07e9e0f1
Hotkeys: Move Toggle Media Capture to General 2024-08-12 16:29:03 +10:00
Stenzek c30c4a5d0a
GPU: Fix possible race in screenshot 2024-08-12 14:48:21 +10:00
Stenzek 9a58327cf2
GPU: Vectorize VRAM fills 2024-08-12 00:20:53 +10:00
Stenzek abbb21ffec
GPU: Approxiate texture cache reload time for P8/C16 sprites 2024-08-11 23:50:37 +10:00
Stenzek db4e28f44c
GPU: Add cycle penalty for reloading CLUT 2024-08-11 23:50:37 +10:00
Stenzek 00a58eb4e5
Bus: Fix sideloading EXEs without initial SP value 2024-08-11 23:50:37 +10:00
Stenzek 62eb557832
MediaCapture: Warning fix 2024-08-11 23:50:37 +10:00
Stenzek af47eb6956
System: Add video capture feature 2024-08-11 21:06:58 +10:00
Stenzek 98b1a703f3
GPU/HW: Use texture instead of RTs for rewind/runahead w/o MSAA 2024-08-10 01:24:38 +10:00
Stenzek 55d095174f
CDROM: Defer init completion until after seek
Reduces leaky reverb in some games.
2024-08-10 00:13:59 +10:00
Stenzek d1f0669374
SPU: Ensure all samples are generated prior to DMA write 2024-08-09 12:36:24 +10:00
Stenzek c97516b01d
CDROM: Further improve seek timing
Fixes background music in World Cup 98, background noise in Idol
Promotion - Yumie Island, probably others.
2024-08-09 12:36:24 +10:00
Stenzek b2ca23e9da
GPU: Use full display rect for postfx calculations 2024-08-06 17:38:08 +10:00
Stenzek 4f16cb61b4
GPUDevice: Expose swap chain clear colour 2024-08-06 17:35:27 +10:00
Stenzek aeb9d383ce
System: Add save state compression mode options 2024-08-06 17:02:21 +10:00
Stenzek 70411783cd
System: Make more functions static 2024-08-06 16:10:15 +10:00
Stenzek e6a682f8d5
System: Reduce rewind/runahead memory usage w/o 8MB enabled 2024-08-06 16:02:18 +10:00
Stenzek 0517aef5bd
CDROM: Don't allow deferred INT1 after Pause ACK 2024-08-06 13:34:11 +10:00
Stenzek 0c15c9eaa8
Qt: Fix bug where config-based RAIntegration occasionally failed 2024-08-04 21:03:42 +10:00
Stenzek c3bf267936
System: Remove redundant remap 2024-08-04 21:03:39 +10:00
Stenzek 02fbfae6a0
System: Add advanced 'Export Shared Memory' option
Memory map is exported as duckstation_<pid>. Previously, this only
worked on Windows, now it is extended to Linux as well.
2024-08-04 20:28:07 +10:00
Stenzek c538df317a
GameDatabase: Add crop mode override 2024-08-04 18:59:21 +10:00
Stenzek 6c0a0e6203
GPU: Fix incorrect lightgun line with force progressive 2024-08-04 17:54:19 +10:00
Stenzek ec5d8cb1d6
Achievements: Use badge IDs from server
Fixes icons not invalidating if they're changed/reassigned in the RA
database.
2024-08-04 17:00:08 +10:00
Stenzek f9079b0151
CDROM: Display XA coding info in debug window 2024-08-04 16:30:04 +10:00
Stenzek ee538ae0ea
CDROM: Improve resampling quality of 18900hz XA 2024-08-04 16:21:35 +10:00
Stenzek a2f98541b3
Misc: Slim down some header includes 2024-08-04 14:49:55 +10:00
Stenzek 143acca03b
Core: Purge resources.cpp
Save around 64KB in binary size.
2024-08-04 14:13:15 +10:00
Stenzek 1b9b4699d9
Qt: Fix render-window-resize with 270deg rotation 2024-08-03 01:19:22 +10:00
Stenzek 9a626caad9
Qt: Reduce game list jank after shutting down VM
Prevents progress bar briefly appearing, and the list scrolling to the
top when you exit a game.
2024-08-03 00:50:04 +10:00
Stenzek 3a83c4265c
Misc: Fix a bunch of code analysis warnings
Some of which were even actual errors.
2024-08-02 23:56:07 +10:00
Stenzek 33f6cc246e
System: Use default compression level
I'd intended to make this an option.
2024-07-29 22:06:21 +10:00
Stenzek e0911d7f54
GPU/HW: Fix spec violation with Vulkan fbfetch 2024-07-29 17:27:33 +10:00
Stenzek 6ce9e571ed
Misc: Purge remaining ByteStream references 2024-07-29 17:27:32 +10:00
Stenzek a6518ff9dc
System: Rewrite save state I/O
No more ByteStream or virtual calls for every piece of data.
2024-07-29 17:27:32 +10:00
Stenzek dd8bf2c9d9
MemoryCard: Purge use of ByteStream 2024-07-29 17:27:32 +10:00
Stenzek b5009da2bc
GameList: Purge use of ByteStream 2024-07-29 17:27:32 +10:00
Stenzek 7aaaf7c575
GameDatabase: Purge use of ByteStream 2024-07-29 17:27:32 +10:00
Stenzek ab7a3e1934
BinaryReaderWriter: Add class for files as well as spans 2024-07-29 17:27:32 +10:00
Stenzek 6fe0c986fa
System: Rewrite EXE override/loading
Relies on POST=7 as a kernel initialization indicator, instead of
patching the BIOS.

Fixes EXE loading with OpenBIOS and PS2 BIOS, and fast boot getting
baked into save states.
2024-07-28 19:05:56 +10:00
Stenzek 7b99fcbbf3
GPU: Fix edge bleeding with Bilinear Integer scaling 2024-07-28 14:08:28 +10:00
Stenzek a3acb0c5db
GPU/HW: Always allow shader blend with fbfetch 2024-07-27 19:52:08 +10:00
Stenzek c2d24f436c
CDROM: Re-enable error-on-seeking-pause behaviour
See the comments in the diff. This **will** cause lag in Final Fantasy
VII during preload areas, but that has also been confirmed on console.

Duke Nukem - Total Meltdown does this silly Read -> Pause command chain,
except it sets its data/INT1 callback on the read, but never clears it
after the pause. Therefore, if it doesn't receive at least one sector,
the callback never gets cleared, and when the next read happens, it
stores the "current" callback in the "backup" variable, which should be
null, but now has the callback from the dud read.

The result is any INT1 during XA playback running the dud callback,
which says "hey, I'm not expecting any data, so pause, and stops the
background music playback. Making sure at least one sector from that
silly chain is delivered ensures the callback is cleared, and this does
not happen.

Since the pause first mentioned above will now error out until the first
sector is delievered, the game spams pause until it eventually does
succeed after the INT1. This behaviour has also been verified on
hardware, thanks to rama for the xStation logs.
2024-07-27 14:24:23 +10:00
Stenzek 440e08cf3e
Qt: Fix crash opening game compatibility report 2024-07-27 01:31:22 +10:00
Stenzek 7a3a72ec3d
GPU: Add display rotation option 2024-07-26 23:09:33 +10:00