Commit Graph
100 Commits
Author SHA1 Message Date
Stenzek d5b6d35d3e dep: Add FFmpeg v7.0.2 headers 2024-08-12 16:29:03 +10:00
Stenzek ee07e9e0f1 Hotkeys: Move Toggle Media Capture to General 2024-08-12 16:29:03 +10:00
Stenzek 8ad912c340 MediaCapture: Handle BGRA for MediaFoundation 2024-08-12 15:20:32 +10:00
Stenzek 422a0a0ead MediaCapture: Fix OpenGL capture 2024-08-12 14:48:21 +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 5d84185240 GameDB: Slightly bump up DMA rate for Chrono Cross
Don't want to run it too slow, and the recent changes seem to allow us
to go to ~33 or so before it breaks.
2024-08-11 23:50:37 +10:00
Stenzek 78398f82fd GameDB: Battle Athletess - Daiundoukai GTO
Requires accurate DMA timing, otherwise the GPU backpressure does not
slow down the frame rate enough, and cutscenes run at twice speed.
2024-08-11 23:50:37 +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 5f8082734e VulkanDevice: Fix download inside render pass 2024-08-11 20:44:16 +10:00
Stenzek 290c44f4c0 Error: Add TakeDescription() 2024-08-11 20:43:13 +10:00
Stenzek 8295fd9c3a GPUDevice: Fix debug assertion tripping in Vulkan 2024-08-10 14:05:30 +10:00
Stenzek b72e622ae0 CubebAudioStream: Remove leftover field 2024-08-10 13:15:55 +10:00
Stenzek 34df233a95 VulkanDevice: Enable VK_KHR_maintenance4 and 5 2024-08-10 12:33:01 +10:00
Stenzek 010c7dea33 dep: Bump vk_mem_alloc to 871913d 2024-08-10 12:21:51 +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 76f6eafdbc Qt: Fix folder selection title bar 2024-08-10 00:14:01 +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 5368a1dcba CI/AppImage: Work around broken AppImageLauncher 2024-08-09 18:19:17 +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 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 cabba81a76 CI/Flatpak: Switch from JSON -> YAML
Actually lets me have comments...
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
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 c23ea4b2ad CI/AppImage: Pin versions 2024-08-04 23:13:57 +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 59a1cca858 dep/rcheevos: Bump to v11.5.0 + local changes
https://github.com/stenzek/rcheevos
2024-08-04 17:08:29 +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 0518bfb60f Data: Update SDL game controller DB 2024-08-02 21:50:47 +10:00
Stenzek 75cf877b0d Deps: Bump SDL2 to 2.30.6 2024-08-02 21:50:47 +10:00
Stenzek 6d70d24bc4 AudioStream: Swap to shared soundtouch library
Yay licensing requirements.
2024-08-02 21:49:19 +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 534a82d091 dep/reshadefx: Fix float printing regression 2024-07-29 22:05:36 +10:00
Stenzek 8c9a885032 GameDB: Add missing hash 2024-07-29 21:59:53 +10:00
Stenzek 410cea0f12 PostProcessing/FX: Use ToChars instead of to_string()
More locale mess.
2024-07-29 20:38:55 +10:00
Stenzek 2d2bc93ada dep/reshadefx: Avoid snprintf() when writing float constants
Locale-specific, causes breakage on some systems.
2024-07-29 20:38:34 +10:00
Stenzek e0911d7f54 GPU/HW: Fix spec violation with Vulkan fbfetch 2024-07-29 17:27:33 +10:00
Stenzek 998f77c590 GameDB: More WS disables 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
Stenzek 6da84bf5d0 GameDB: Disable WS for Rally de Europe 2024-07-29 13:21:33 +10:00
Connor McLaughlin 11c6f89162 gitignore: Add /deps/ 2024-07-29 01:53:48 +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
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 f051aa54d9 GameDB: Include London Mission Pack in GTA disc set 2024-07-27 13:33:19 +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
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