2974 Commits

Author SHA1 Message Date
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
Stenzek
0b5287f199
Bus: Implement RAM_SIZE register
Fixes Rock-Climbing - Mitouhou e no Chousen - Alps Hen (Japan) crashing
on boot. Silly game does a 512 word DMA from CDROM to 0x001FFF04, with the
mapped memory size set to 4MB, expecting the DMA to trigger a bus error,
because if it doesn't, then your kernel memory goes bye bye.

A bunch of other games do set the upper 4MB to be unmapped, but this
change appears to have no effect on them. As expected, they're probably
doing the correct thing.
2024-07-24 00:14:17 +10:00
Stenzek
dce1221021
Bus: Log when RAM_SIZE changes 2024-07-23 23:00:44 +10:00
Stenzek
68575d15a4
CDROM: Shift instead of divide in ZigZagInterpolate 2024-07-23 22:10:04 +10:00
Stenzek
5ec9c8a397
CDROM: Fix handling of 8-bit ADPCM and decoder overruns
Fixes pops in menu music in Simple 1500 Series Vol. 92 - The Tozan
RPG - Ginrei no Hasha.

I haven't seen anything that _properly_ uses 8-bit ADPCM yet. The above
game does, but only in the inaudible portion of the start of the track.
2024-07-23 21:54:22 +10:00
Stenzek
861d4a5aa2
FullscreenUI: Reorder graphics settings to match Qt 2024-07-23 21:11:01 +10:00
Stenzek
0407f939fc
CPU: Fix loading recompiler-saved states with interpreter 2024-07-23 21:11:01 +10:00
Stenzek
2a617c505a
GPU/HW: Support using ROV for accurate blending 2024-07-23 14:46:06 +10:00
Stenzek
e743c5d1b1
GPU/HW: Force update CLUT on save state
Fixes switching from hardware->software renderer in games that are
drawing without reloading the CLUT.
2024-07-22 21:25:14 +10:00
Stenzek
298f39a0c8
GPU/HW: Fully report shader/pipeline creation failures 2024-07-22 15:43:18 +10:00
Stenzek
deed0c9713
GameDatabase: Merge compatibility messages 2024-07-22 14:59:55 +10:00
Stenzek
b4136d2834
TimingEvents: Avoid heap allocation in SortEvents() 2024-07-21 16:15:40 +10:00
dreamsyntax
d9ada75d4f
Qt: Toggle for DualSense Player LED (#3254) 2024-07-21 16:07:36 +10:00
Stenzek
3172eac8df
PINE: Disable nagle buffering 2024-07-21 13:43:21 +10:00
Stenzek
f2e88ce0e5
PINE: Add MsgReadBytes/MsgWriteBytes 2024-07-21 13:34:10 +10:00
Stenzek
79644bfb2a
CPU: Add Safe{Read,Write}MemoryBytes 2024-07-21 13:33:54 +10:00
Stenzek
52f9e8556a
CDROM: Deactivate command attempt before queueing another
Reduces chances of ending up with unordered events.
2024-07-20 22:35:32 +10:00
Stenzek
efd8aab437
TimingEvents: Fix events ending up out-of-order 2024-07-20 22:35:32 +10:00
Stenzek
9b77a9aff7
TimingEvents: Move interrupt dispatch to end of loop
Saves another iteration.
2024-07-20 13:42:01 +10:00
Stenzek
4f7ddfaae6
TimingEvents: Remove pointer indirection
Probably should move this to one big array for locality.
2024-07-19 22:56:41 +10:00
Stenzek
56dd9878e1
Misc: RISC-V build fixes 2024-07-19 22:25:57 +10:00
Stenzek
2e96931c32
CPU/CodeCache: Dynamically compute BIOS memory access timing
The timings can change if the game does so. Instead of forcing the
blocks to recompile, we can just manually multiply size * word_time.

Improves stability of Nightmare Creatures booting, and fixes corrupted
text in Formula Circus when using the cached interpreter.
2024-07-19 22:25:57 +10:00
Stenzek
d9a224ef6c
GameList: Fix bogus entries on disc change due to disc set 2024-07-19 15:51:25 +10:00
Stenzek
6a920b268e
CDROM: Handle BFRD clears inbetween DMA transfers
Fixes disc detection in Metal Gear Solid: Special Missions.
2024-07-19 15:51:25 +10:00
Stenzek
f0945ca3ca
BIOS: Refactor loading/hashing of images
Fixes identification of PS2 BIOSes. However, they are not (yet) fastboot
compatible.
2024-07-19 15:51:25 +10:00
Stenzek
19063d4288
Bus: Mirror BIOS area up to 4MB
Fixes bus error when using PS2 BIOS.
2024-07-19 15:51:25 +10:00
Stenzek
7217536fdd
MD5Digest: Span-ify 2024-07-19 15:51:25 +10:00
Stenzek
6176a21ff1
ProgressCallback: Eliminate redundancy and drop C format strings 2024-07-19 15:51:25 +10:00
Stenzek
567b86ce79
Host: Purge ReportFormattedDebuggerMessage() 2024-07-19 14:00:29 +10:00
Stenzek
92038da3d5
CDROM: Handle speed change while reading
Fixes level music in Croc 2 demo.
2024-07-18 00:31:19 +10:00
Stenzek
9a89ab3bab
GameDatabase: Add deinterlacing mode override 2024-07-17 20:57:36 +10:00
Stenzek
f1ca914512
CDROM: Further adjust IRQ delay
Fixes audio dropouts in Crime Crackers, Ogre Battle seems fine now as
well.
2024-07-17 20:57:36 +10:00
Stenzek
9392c19a70
CDROM: Handle audio sectors in 2X mode
Fixes menu background in 360 Three Sixty.
2024-07-17 20:57:35 +10:00
Stenzek
44b9d16d9f
CDROM: Defer set of autopause track
Pitball's menu music starts mid-second, and there's no pregap,
so the first couple of reports are for the previous track.

It doesn't enable autopause until receiving a couple, and it's
actually playing the track it wants.
2024-07-17 20:57:35 +10:00
Stenzek
fb747d6ded
CDROM: Drop setloc on double Play
And limit the locations position is updated while seeking.

Fixes menu music in Hot Wheels: Extreme Racing.
2024-07-17 20:57:35 +10:00
Stenzek
bc30569a6d
SPU: Reverb input should be muted when SPU muted
Fixes pause menu in Bubsy 3D, Tuning Car Battle Spec R.
2024-07-17 20:57:17 +10:00
Stenzek
fae6b7ae86
System: Fix double error on load/boot cancel 2024-07-14 21:32:10 +10:00
Stenzek
fee888758f
System: Purge unused RecreateSystem() 2024-07-14 21:30:52 +10:00
Stenzek
640ed4a2d3
CPU/Recompiler: Eliminate redundant speculative reg read 2024-07-14 21:26:17 +10:00
Stenzek
59a2309a83
GPU: Use half width vector types where appropriate 2024-07-14 21:25:48 +10:00
Stenzek
df979d4648
Build: Fix DiscordRPC not being included in Mac bundle 2024-07-14 21:25:26 +10:00
Stenzek
500fbe5ef1
Achievements: Fix potential uninitialized data read 2024-07-14 21:25:25 +10:00
Stenzek
8698298499
CPU/NewRec: Fix incorrect condition in GenerateCall() 2024-07-14 21:25:25 +10:00
Stenzek
a5a320720a
GPU/HW: Fix incorrect dirty rect union
Reduces GPU usage during screen waves effect in Um Jammer Lammy from
over 70% down to 3% on my 7900GRE at 9x.
2024-07-14 18:26:02 +10:00
Stenzek
fd0626aa6d
GameList: Re-extract memcard icon if deleted
But don't keep trying if the game doesn't have a save.
2024-07-14 18:26:02 +10:00
Stenzek
5da6c926d9
GameList: Always open icon cache with r+b on Linux
Fixes flock() error on startup.
2024-07-13 18:32:42 +10:00
Stenzek
2cfa535784
System: Fix certain GPU settings not applying until unpause 2024-07-13 17:52:42 +10:00
Stenzek
7c45ad3fed
GameList: Add dedicated gameicons directory 2024-07-11 17:17:25 +10:00
Stenzek
2ac2ad605e
CPU/Recompiler: Break blocks on invalid instructions 2024-07-11 17:17:25 +10:00
Stenzek
3b9c489787
CPU: Pass instruction query values by reference 2024-07-11 17:17:25 +10:00
Stenzek
226a8eac81
MemoryCardIconCache: Ignore shared cards 2024-07-10 21:47:02 +10:00
Stenzek
11f7bfc461
CPU/PGXP: Refactor add/sub for small speedup 2024-07-10 20:56:42 +10:00
Stenzek
e5c62b8baf
CPU/PGXP: Fix incorrect Y on invalid add/sub 2024-07-10 20:56:21 +10:00
Stenzek
5881133cf5
CPU/PGXP: Set valid on bitwise ops from lowprec 2024-07-10 19:10:56 +10:00
Stenzek
9be7a37416
GSVector: SIMD-ify YUVToRGB
Almost 10x speedup on the function alone, 15% in practice ingame.
2024-07-10 15:18:42 +10:00
Stenzek
8659c8cca6
Core: Add MemoryCardIconCache 2024-07-09 21:38:38 +10:00
Stenzek
de27e5de92
GPU: Add option to disable PGXP on 2D polygons 2024-07-09 20:37:58 +10:00
Stenzek
f0e2d1a9fa
CPU/PGXP: Rewrite SLTI/SLTIU handlers
Don't read uninitialized memory...
2024-07-09 20:14:08 +10:00
Stenzek
d922a43127
CPU/PGXP: Don't force valid input on slt/sltu 2024-07-09 19:45:44 +10:00
Stenzek
3b7844be5a
CPU/PGXP: Don't force valid inputs on mult/div 2024-07-09 19:21:47 +10:00
Stenzek
d831cb69a9
CPU/PGXP: Normalize variable names 2024-07-09 19:16:16 +10:00
Stenzek
5410a42fd7
CPU/PGXP: Explicitly handle addi rt, zero, nnnn 2024-07-09 19:07:17 +10:00
Stenzek
b6f7420018
CPU/PGXP: Don't force inputs to valid on add/sub 2024-07-08 17:18:27 +10:00
Stenzek
7f21226a99
GameDatabase: Warn if vertex cache is enabled but unnecessary 2024-07-07 14:29:29 +10:00
Stenzek
d63ae8718f
GPU: Always calculate draw rect
Stops postfx shaders that depend on the draw rect going into NaN
territory.
2024-07-07 12:46:09 +10:00
Nik Chizhov
a3d600d5c3 fix: moved vairable access 2024-07-07 12:45:49 +10:00
Nik Chizhov
5cdcdb565f fix: string to c-string to string 2024-07-07 12:45:49 +10:00
PugsyMAME
d372609bdc
Add memory contents to "Addr=" string in debugger
Tweaks the format of the addr= string in the debugger/trace so that it includes the memory contents.
It will also take the 2nd character of the opcode and if it's b or h it will size it accordingly.
so
addr=800BC2D0
becomes
addr=800BC2D0[00000000]  or addr=800BC2D0[0000]  or addr=800BC2D0[00]

This change amongst other things will facilitate a widescreen cheat scanner, that will take a lot of the work away from making widescreen cheats.
2024-07-06 22:51:59 +10:00
Stenzek
ed5a99066f
GPU: Cull off-screen sprites/lines
And further optimizations to culling in general.
2024-07-06 22:13:46 +10:00
Stenzek
bc73dacea4
System: Use socket multiplier for sleeping when connected
Should significantly reduce PINE latency.
2024-07-06 21:56:30 +10:00
Stenzek
b06fceffa4
GDB/PINE: Fix listen socket leak on shutdown 2024-07-06 21:56:30 +10:00
Stenzek
9a70003b70
MSBuild: Silence MSVC warning C4324 2024-07-06 19:45:16 +10:00
Stenzek
23962fd07e
GTE: Pack local config in struct 2024-07-06 19:33:38 +10:00
Stenzek
b6a264b8b4
TimingEvents: Pack state in struct 2024-07-06 19:18:25 +10:00
Stenzek
a57101c1f0
Timers: Pack state in struct 2024-07-06 19:18:25 +10:00
Stenzek
f5cae1957b
MDEC: Pack state in struct 2024-07-06 19:18:25 +10:00
Stenzek
e1a4c7dfdd
DMA: Pack state in struct 2024-07-06 19:18:25 +10:00
Stenzek
536b48d706
SPU: Pack state in struct 2024-07-06 19:18:25 +10:00
Stenzek
77488db3dc
Misc: Align CPU state and SPU voices to cache lines
Fixes the ~12% performance regression from the texture replacement
namespace'ify commit. Apparently LTO was placing the CPU struct in the
middle of a cache line...
2024-07-06 18:49:37 +10:00
Stenzek
4c0250716d
GPU/HW: Ensure buffers are freed prior to recreating 2024-07-04 21:54:44 +10:00
Stenzek
c02bf0f662
CPU/NewRec/RV64: Compile fix 2024-07-04 21:40:19 +10:00
Stenzek
87f2995f3d
TextureReplacements: Namespace-ify 2024-07-04 15:52:32 +10:00
Stenzek
69c35c9fcd
Deps: Remove rapidjson from in-tree 2024-07-04 15:52:32 +10:00
Stenzek
f6d3a7987d
System: Load discord-rpc dynamically 2024-07-04 15:52:32 +10:00
Stenzek
00d2d862c2
Build: Use shared discord-rpc 2024-07-04 15:52:32 +10:00
Stenzek
4b61a3cbf3
Qt: Unrestrict resolution scale up to device limits 2024-07-04 13:25:27 +10:00
Stenzek
2bcb85d431
GPU/HW: Push all draws/writes through a common path 2024-07-03 15:44:12 +10:00
Stenzek
9ef7e8c5d0
GPU/HW: Use GSVector instead of Rectangle 2024-07-03 15:44:12 +10:00
Stenzek
ef152c47a6
GPU/HW: Interpolate native texture coordinates when upscaling 2024-07-03 15:44:12 +10:00
Stenzek
044d7a4797
GPU: Eliminate heap allocation on state load 2024-07-03 00:24:12 +10:00
Stenzek
f9bf2e8239
GPU: Use GSVector for SW scanout 2024-07-03 00:24:12 +10:00
Stenzek
0968610ba7
CDROM: Use GSVector 2024-07-03 00:24:12 +10:00
Stenzek
69471950f0
ImGuiOverlays: Use GSVector 2024-07-03 00:24:12 +10:00
Stenzek
b094c9cd87
MDEC: Vectorize IDCT 2024-07-03 00:24:12 +10:00
Stenzek
baab966b4e
System: Check for SSE4.1 in early hardware checks 2024-07-03 00:24:12 +10:00
Stenzek
173a61039c
System: Use cpuinfo for cache line size check 2024-07-03 00:24:12 +10:00
Stenzek
aabe39d0f8
GPU: Allow DMAs in Mode 1
Exact behaviour is still unknown, but it works on console (Nicolas
Noble's torus demo).
2024-07-02 16:56:11 +10:00
Stenzek
e1f90e6baf
MDEC: Store scale/IDCT matrix transposed 2024-07-02 16:56:10 +10:00
Stenzek
6d6659c85e
MDEC: Increase intermediate IDCT precision 2024-07-02 16:56:07 +10:00
Stenzek
e169189441
GPU/HW: Fix possible crash when changing texture filtering 2024-07-01 01:07:27 +10:00
Stenzek
44142ab4f9
CPU/Recompiler: Prefer adrp over trampoline for +/-4GB branches 2024-06-30 16:45:51 +10:00
Stenzek
f3671d21f3
CPU/CodeCache: Reduce far code size when using NewRec 2024-06-30 16:45:51 +10:00
Stenzek
9b42ad3859
CPU/CodeCache: Purge JitCodeBuffer 2024-06-30 16:45:51 +10:00
Stenzek
be8fbafd71
CPU/CodeCache: Always dynamically allocate code buffer
Reduces .bss size.
2024-06-30 16:45:51 +10:00
Stenzek
890f3fcf5d
Common/Log: Make actually writing unlikely
Move it out of the hot path.
2024-06-30 16:45:51 +10:00
Stenzek
34d5cdec96
GPU/HW: Expose depth buffer to internal postprocessing 2024-06-29 14:25:36 +10:00
Stenzek
e39a2d00bf
GPU/HW: Use D32F for PGXP depth
16-bit isn't accurate enough for post processing.
2024-06-29 13:09:45 +10:00
Stenzek
1cb3e6bd49
ShaderGen: Support multiple render target output 2024-06-29 13:09:45 +10:00
Stenzek
80d1056ddf
GPU: Add virtual call when buffers are swapped 2024-06-28 21:15:47 +10:00
Stenzek
0c3cf1f5f8
PostProcessing: Split into internal and display chains 2024-06-28 20:17:15 +10:00
Stenzek
810ce1ce57
GPU: Remove duplicate display params fields
And enable postfx when the DAC is turned off.
2024-06-28 20:17:15 +10:00
Stenzek
3877486712
System: Ensure titles are sanitized for screenshots 2024-06-28 19:44:27 +10:00
Stenzek
a89ec0eaf9
Achievements: Always recompute state data size on save
It can be smaller, or, apparently fail in some cases...
2024-06-28 13:12:27 +10:00
Stenzek
ebf50edb79
System: Allocate JIT space before fastmem area
On Intel MacOS 14, the fastmem area gets allocated close to the
executable base, leaving no region free +/- 2GB for the JIT area.
2024-06-26 17:11:27 +10:00
Stenzek
db305660c1
Achievements: Implement disc change without state reset 2024-06-24 13:16:50 +10:00
Stenzek
b9ff358ab3
Achievements: Support scratchpad memory 2024-06-24 13:16:50 +10:00
Stenzek
e7e09023e2
Achievements: Avoid malloc on state save/load 2024-06-24 13:16:50 +10:00
Stenzek
63055f1e7f
FullscreenUI: Add sprite texture filtering option 2024-06-23 13:10:10 +10:00
Stenzek
ccb76d1451
GameList: Add custom title/regions
Largely inspired by https://github.com/PCSX2/pcsx2/pull/9330, but almost
entirely rewritten.
2024-06-17 23:45:02 +10:00
Stenzek
01fc3258a3
CPU/Recompiler: Warning fix for ARM64/Clang 2024-06-17 17:13:23 +10:00
Stenzek
1ae79c89e3
System: Refactor unsafe settings warning
And warn about round upscaled texture coordinates option.
2024-06-17 17:02:55 +10:00
Stenzek
a5f8684bcd
BIOS: Add further detail to missing BIOS message 2024-06-17 16:47:21 +10:00
Stenzek
34f20798a1
GPU/HW: Add separate 3D/2D (sprite) texture filtering 2024-06-17 15:56:56 +10:00
Stenzek
be4abb016f
GPU/HW: Reduce multiple setting source of truth 2024-06-17 15:49:12 +10:00
Stenzek
6870010351
GPU/HW: Remove log spam 2024-06-16 21:15:37 +10:00
Stenzek
3d6b9e18c5
Settings: Include cheats in disable-all-enhancements 2024-06-16 19:22:09 +10:00
Stenzek
8455c9c3c6
GPU/HW: Add 'Force Round Upscaled Texture Coordinates' 2024-06-16 19:09:46 +10:00
Stenzek
1582b2ae5d
GPU/HW: Make texture filtering a fragment shadergen parameter 2024-06-16 19:09:46 +10:00
Stenzek
c1792108f4
GPU/HW: Eliminate raw texture pipeline permutations 2024-06-16 17:09:24 +10:00
Stenzek
ef69c31e9f
GPUDevice: Support transpiling shaders at compile time
And use it for GLSL postprocessing shaders.
2024-06-14 21:21:34 +10:00
Stenzek
f0c2832d03
Dep: Update vixl to 662828c 2024-06-14 17:42:24 +10:00
Stenzek
8124fb2ef5
CDROM: Fix incorrect sector dropped log message 2024-06-13 18:35:02 +10:00
Stenzek
9a88cbce09
Pad: Fix incorrect card mismatch OSD message 2024-06-13 18:35:02 +10:00
Stenzek
c86f6eb639
Achievements: Fix incorrect data source for mastery points 2024-06-13 18:35:02 +10:00
Stenzek
ac1bb905fe
GPU: Set idle bit during VRAM upload
Tenga Seiha does a bunch of completely-invalid VRAM writes on boot, then
expects GPU idle to be set. It's unclear what actually happens, I need to
write another test, but for now, just skip these uploads. Not setting GPU
idle during the write command breaks Doom, so that's not an option.
2024-06-13 18:35:02 +10:00
Stenzek
354b250642
PostProcessing: Add native width/height inputs
Available in GLSL as GetNativeSize(), GetUpscaleMultiplier(), and in
reshade as native_width/native_height/upscale_multiplier.

GetPaddedOriginalSize() is now deprecated, as it does not make since
since the postfx shader runs with a window-sized off-screen target as an
input, not the internal render texture.
2024-06-11 14:04:45 +10:00
Stenzek
b464b6d668
FullscreenUI: Fix loading undo state from menu 2024-06-11 13:07:47 +10:00
Stenzek
8595175267
CDROM: Improve accuracy of sector redelivery on DMA complete
Fixes hang in loading in Syphon Filter 2/3.
2024-06-09 19:47:51 +10:00
Stenzek
34861074c1
CDROM: Ensure complete IRQs for Init go through
Fixes booting games with OpenBIOS and its Init spam.
2024-06-08 16:58:08 +10:00
Stenzek
7222c21cd9
CDROM: Further refine interrupt delay 2024-05-31 23:59:44 +10:00
Stenzek
3e3572c410
DMA: Fix range check in mode0 when decrementing
Fixes lag on startup in Clone (Euro Demo 42).
2024-05-31 23:08:07 +10:00
Stenzek
c637e2b337
System: Fix title after loading state for EXE-boot 2024-05-31 21:08:45 +10:00
Stenzek
e70f155054
MemoryCard: Implement GetID command 2024-05-31 21:08:21 +10:00
Stenzek
8ef73203b2
Bus: Ignore SPU byte writes to unaligned addresses 2024-05-31 21:00:55 +10:00
Stenzek
a7543ab365
GPU/HW: Fix crash on VRAM write/copy with mask test 2024-05-31 20:39:31 +10:00
Stenzek
627c12bebe
GPU: Fix IRQ request 2024-05-31 20:39:18 +10:00
Stenzek
73136d7dc4
GPU: Tie idle bit to FIFO emptyness on VRAM write
Fixes Tenga Seiha lockup on boot.
2024-05-31 20:12:59 +10:00
Stenzek
53600746c7
GPU: Cancel VRAM writes on Reset 2024-05-31 19:49:40 +10:00
Stenzek
d013438810
CDROM: Rewrite BFRD handling
Fixes hang on startup in Unirom.
2024-05-31 19:45:42 +10:00
Stenzek
723af4de3a
Misc: Loading old save state versions is unlikely 2024-05-31 18:48:26 +10:00
Stenzek
3063101274
CDROM: Implement 0x60 test command
Apparently needed for unirom.
2024-05-30 22:34:06 +10:00
Stenzek
7682cd2c10
System: Generate hash serials when running PS-EXE
Allows for per-game settings.
2024-05-30 22:21:52 +10:00
Stenzek
25bf2b3adc
CDROM: Clear async interrupt on read/seek start
Fixes broken audio in Road Rash.
2024-05-30 20:49:58 +10:00
Stenzek
039796690c
GPU/HW: Fix a couple of out-of-order UBO pushes 2024-05-28 17:38:28 +10:00
Stenzek
2eb0085539
System: Fix inverted volume selection 2024-05-27 11:58:42 +10:00
Stenzek
015804c434
System: Move GDB server into core 2024-05-27 00:18:05 +10:00
Stenzek
55d96f86f0
System: Add "Disable Mailbox Presentation" option
Partial backport of https://github.com/PCSX2/pcsx2/pull/11296
2024-05-26 22:38:35 +10:00
Stenzek
83df785558
Settings: Default threaded presentation to off 2024-05-26 22:38:35 +10:00
Stenzek
4311e08726
System: Implement PINE server 2024-05-26 22:38:35 +10:00
Stenzek
328a3cd7af
System: Prevent save states while memory cards are being saved 2024-05-25 17:42:12 +10:00
Stenzek
2ff1f398a3
CDROM: Handle INT1 with pending command
Fixes lockup during track playback in Gokujou Parodius Da! Deluxe Pack.
2024-05-25 16:10:09 +10:00
Stenzek
60ee17e713
System: Fix regtest dumping 2024-05-25 15:58:41 +10:00
Stenzek
1565a2667d
Misc: More format string fixes 2024-05-25 15:48:31 +10:00
Stenzek
22c76d43c3
CPU/PGXP: Reduce vertex cache memory 2024-05-25 02:06:40 +10:00
Stenzek
0f9a255093
System: Fallback to FIFO on AMD (no mailbox support) 2024-05-24 22:48:26 +10:00
Stenzek
98520978a8
System: OSD message corrections 2024-05-24 22:13:35 +10:00
Stenzek
49e3663dfe
Settings: Purge max display FPS option
No longer needed since we pull it from the surface instead.
2024-05-24 02:33:33 +10:00
Stenzek
42a5fe0a6e
GPU: Further improve vsync handling 2024-05-24 02:33:33 +10:00
Stenzek
4e922a34a7
Log: Simplify macros 2024-05-24 02:08:14 +10:00
Stenzek
792717e03e
Misc: Get rid of format string for result logging 2024-05-24 00:30:06 +10:00
Stenzek
9f90f14c48
CPU/CodeCache: Only print code size stats on request 2024-05-24 00:30:06 +10:00