Commit graph

6332 commits

Author SHA1 Message Date
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 8ad133dbc0
FileSystem: Fix crash on file open fail in WriteAtomicRenamedFile() 2024-08-09 12:36:21 +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 81295c8a7d
FileSystem: Correctly use lstat() on Linux 2024-08-06 15:52:26 +10:00
Stenzek 3a08ad1840
Qt: Purge some unused debug menu options 2024-08-06 15:32:40 +10:00
Stenzek efc821bc84
VulkanDevice: Fix incorrect condition in UnbindTexture() 2024-08-06 15:32:40 +10:00
Stenzek 0517aef5bd
CDROM: Don't allow deferred INT1 after Pause ACK 2024-08-06 13:34:11 +10:00
Stenzek e499f9052a
MemMap: Fix inverted condition 2024-08-05 13:08:42 +10:00
Anderson Cardoso 2fb5e4495d
Atualização Português do Brasil (#3272)
Atualizado para a última versão.
2024-08-05 12:55:52 +10:00
Stenzek 6c5ffba18e
MemMap: Fix object leak on fallocate() failure 2024-08-05 12:39:17 +10:00
Stenzek 79bb5f079c
GPUDevice: Fix SPIRV-Cross load error on Mac 2024-08-05 01:12:17 +10:00
Stenzek d862043f1d
CMake: Fill version in bundle info plist 2024-08-05 00:59:31 +10:00
Stenzek 6e795c8977
CMake: Fix duplicate SPIRV-Cross library on MacOS 2024-08-05 00:05:03 +10:00
Stenzek 35dd4fde36
Qt: Fix incorrect list access for async cover load 2024-08-04 22:48:10 +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 5b590d434b
D3D11Device: Fix blend state not applying to MRTs 2024-08-03 02:06:20 +10:00
Stenzek 30c5ebae72
GPUDevice: Fix instances of RWTexture not clearing 2024-08-03 02:05:21 +10:00
Stenzek 1b9b4699d9
Qt: Fix render-window-resize with 270deg rotation 2024-08-03 01:19:22 +10:00
Stenzek 7cbd67ecf1
MSBuild: Remove redundant include 2024-08-03 01:19:04 +10:00
Stenzek a793741747
Qt: Slightly bump grid view font size 2024-08-03 01:00:10 +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 4eb3b2a9a7
dep: Remove soundtouch 2024-08-02 21:59:57 +10:00
Stenzek 6d70d24bc4
AudioStream: Swap to shared soundtouch library
Yay licensing requirements.
2024-08-02 21:49:19 +10:00
shikulja 0afcbd3acc
Update Russian translation (#3269)
* upd ts

* Update Russian translation
2024-08-02 21:48:32 +10:00
Anderson Cardoso f1f57d88ce
Atualização Português do Brasil (#3267)
Atualizado para a última versão.
2024-07-29 22:07:03 +10:00
Víctor "IlDucci 2f90651c3f
Spanish (Spain) update - 2024/07/29 (#3266)
- More backported terms from PCSX2: save states and save state slots now share the same names.
- Backports of the Achievement texts.
- Added myself to the CONTRIBUTORS list, as all the Latin American Spanish translators were present and I was not.
2024-07-29 22:06:56 +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 410cea0f12
PostProcessing/FX: Use ToChars instead of to_string()
More locale mess.
2024-07-29 20:38:55 +10:00
Stenzek e0911d7f54
GPU/HW: Fix spec violation with Vulkan fbfetch 2024-07-29 17:27:33 +10:00
Stenzek 0321a2cdc4
Common: Purge ByteStream 2024-07-29 17:27:32 +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 c83b5fdd05
FileSystem: Add AtomicRenamedFile 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
KamFretoZ a3f8162488
Qt: Add a new Justifier controller icon (#3264) 2024-07-29 13:22:38 +10:00
Stenzek b6b0997e70
Build: Favor git repositories over in-tree patches
Too messy.
2024-07-28 19:06:18 +10:00
Stenzek 876f212685
DynamicLibrary: Add patch to versioned filename 2024-07-28 19:06:17 +10:00
Stenzek 40356fc381
FileSystem: Remove unnecessary checks 2024-07-28 19:06:17 +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
Víctor "IlDucci 5026e1b276
Spanish translation update 2024/07/27 (#3263)
- Added the latest strings.
 - Continued the backport of elements from PCSX2.
2024-07-27 14:32:05 +10:00
Anderson Cardoso fcd4e60af1
Atualização Português do Brasil (#3262)
Atualizado para a última versão.
2024-07-27 14:31:51 +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 5656f91bd2
Qt: Fix missing line on first postfx category 2024-07-26 15:34:49 +10:00
Stenzek 3282366ea7
PostProcessing/FX: Preserve option declaration order 2024-07-26 15:34:49 +10:00
Stenzek e455a5e371
ImGuiFullscreen: Fix incorrect notification width 2024-07-26 14:16:23 +10:00
Anderson Cardoso 1771bfad58
Atualização Português do Brasil (#3259)
Atualizado para a última versão.
2024-07-24 01:30:32 +10:00
Stenzek 0f4af03730
CMake: FreeBSD build fix
cpuinfo is still broken, will fix that another day.
2024-07-24 01:28:28 +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 5e8870ec69
D3D12: Avoid redundant render pass restarts 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
Anderson Cardoso b7bfbc0cf6
Atualização Português do Brasil (#3258)
Atualizado para a última versão.
2024-07-23 14:47:20 +10:00
Stenzek 2a617c505a
GPU/HW: Support using ROV for accurate blending 2024-07-23 14:46:06 +10:00
Stenzek 1006fa00da
GPUDevice: Add support for Raster Ordered Views 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 ba6b65401d
GPUDevice: Improve pipeline error reporting 2024-07-22 15:43:06 +10:00
Stenzek deed0c9713
GameDatabase: Merge compatibility messages 2024-07-22 14:59:55 +10:00
Stenzek fe55446c25
ImGuiManager: Fix stutter when multiple OSD messages lapse 2024-07-22 14:59:55 +10:00
zkdpower 28c74f1325
update the Simple-Chinese translation to latest. (#3257) 2024-07-22 14:38:58 +10:00
Stenzek 533022bb7d
Qt: Ensure fullscreen UI is stopped on exiting 2024-07-21 20:29:38 +10:00
Stenzek 2938602d75
Qt: Remove BIOS search directory from per-game settings
Rather than just disabling it and confusing the user.
2024-07-21 16:22:30 +10:00
Stenzek b4136d2834
TimingEvents: Avoid heap allocation in SortEvents() 2024-07-21 16:15:40 +10:00
Stenzek 022b2fc013
Qt: Disable incompatible settings in game properties 2024-07-21 16:10:39 +10:00
Stenzek ad374ef5e2
Sockets: Use epoll on Linux 2024-07-21 16:10:39 +10:00
Stenzek 78800870bc
Sockets: Properly handle POLLHUP events
Stops client socket leaking.
2024-07-21 16:10:39 +10:00
Stenzek 6b78364eab
Sockets: Ignore SIGPIPE on Linux
Stops our process terminating if the socket is disconnected
mid-write.
2024-07-21 16:10:39 +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 cc667cd88c
Sockets: Add SetNagleBuffering() 2024-07-21 13:43:14 +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 f1f89d3f0f
BinarySpanReaderWriter: Add subspan methods 2024-07-21 13:33:41 +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 0815aedca2
FileSystem: Drop use of stat64()
We define _FILE_OFFSET_BITS on 32-bit Linux anyway.
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 5f36c2948f
Updater: Fix missing newline on MacOS 2024-07-19 17:47:51 +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 41e15539f9
FileSystem: Add Error parameter to more functions 2024-07-19 15:51:25 +10:00
Stenzek a6cf320776
Qt: Fix scan percent dropping back to 0% at end 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 24ef76bfee
StringUtil: Purge StdStringFromFormat() 2024-07-19 14:01:16 +10:00
Stenzek 567b86ce79
Host: Purge ReportFormattedDebuggerMessage() 2024-07-19 14:00:29 +10:00
Stenzek aa94b07f30
Qt: Purge format string usage from AutoUpdaterDialog 2024-07-19 13:54:00 +10:00
Stenzek ca2a8f1e1f
Host: Purge C format string error overloads 2024-07-19 13:45:33 +10:00
Stenzek 00ccea84b8
GPUDevice: Replace remaining StdStringFromFromFormat() with fmt 2024-07-19 13:44:09 +10:00
Stenzek c286112966
Updater: Replace all StdStringFromFormat() with fmt 2024-07-19 13:28:48 +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
Anderson Cardoso 0a86aba1cb
Atualização Português do Brasil (#3253)
Atualizado para a última versão.
2024-07-17 23:52:25 +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 889427e7f6
Qt: Disable a couple of unusable per-game settings 2024-07-15 22:17:42 +10:00
Stenzek 00cc3b65fc
Qt: Fix a few places per-game settings were not checked 2024-07-15 22:17:42 +10:00
Stenzek 5381ad9cd1
Qt: Adjust controller diagrams 2024-07-15 22:17:42 +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 154a5b35b8
CDImageCHD: Refactor mode conversion to string_view
Incorrect length found by PVS-Studio.
2024-07-14 21:29:57 +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 d70f5ddb32
GSVector: Remove unused functions 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 5d4f6e44d2
Qt: Use device pixel ratio when scaling gameicons 2024-07-14 18:26:02 +10:00
Stenzek 594962d247
Qt: Scale down custom icon pixmaps
Don't want it going outside of the control bounds.
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 ff77bd029f
ImGuiFullscreen: Don't upload failed-loaded images 2024-07-14 00:01:06 +10:00
Stenzek afea18f65e
Image: Fix crash loading corrupted/invalid JPEG files 2024-07-14 00:00:48 +10:00
Stenzek b7da118f96
Qt: Don't boot system twice on rapid clicking 2024-07-13 20:47:03 +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
Mrlinkwii 0f0cc4ea17
Qt: Re-add QDarkStyle theme option (#3250) 2024-07-13 12:55:01 +10:00
Stenzek 7c45ad3fed
GameList: Add dedicated gameicons directory 2024-07-11 17:17:25 +10:00