1567 Commits

Author SHA1 Message Date
Connor McLaughlin
511c3133f1 GPU: Let GPU catch up before handling GP1 reset commands
Fixes trashed VRAM writes in some homebrew.
2020-07-05 02:25:56 +10:00
Connor McLaughlin
b0b3901722 libretro: Fix DualShock analog mode auto-enable 2020-07-05 00:05:14 +10:00
Connor McLaughlin
c76bb5eb6a libretro: Fix display aspect ratio 2020-07-04 22:33:07 +10:00
Connor McLaughlin
343e3ba3b7 libretro: Better handle resolution changes 2020-07-04 22:14:07 +10:00
Connor McLaughlin
e15fafe428 libretro: Reduce OSD message durations 2020-07-04 22:14:07 +10:00
Connor McLaughlin
8408d3b6bf libretro: Disable shader cache
Can't seem to see somewhere we can save shader blobs. It wasn't working
anyway because it would generate invalid paths.
2020-07-04 22:14:07 +10:00
Connor McLaughlin
f9622b2450 libretro: Fix memory card save locations 2020-07-04 22:14:07 +10:00
Connor McLaughlin
9b3e344ad8 Renderers: Support empty shader cache 2020-07-04 22:14:07 +10:00
Connor McLaughlin
f396a2c373 Renderers: Make shader cache path a prefix instead of directory 2020-07-04 22:14:07 +10:00
Connor McLaughlin
b9ffca1ddf libretro: Vulkan renderer support 2020-07-04 22:14:07 +10:00
Connor McLaughlin
218f6721d3 libretro: Fix display rendering in D3D11/OpenGL 2020-07-04 20:05:49 +10:00
Connor McLaughlin
2c4fce3f0d D3D11HostDisplay: Don't create swap chain for headless 2020-07-04 17:37:50 +10:00
Connor McLaughlin
b3359dadc9 Qt: Save original style name for restoring after theme switch 2020-07-04 15:54:26 +10:00
Connor McLaughlin
1231f6dafe GPU: Handle GP1 command mirrors 2020-07-04 01:28:18 +10:00
Albert Liu
0a0a2024fd SDLControllerInterface: Prefer cbutton.which for button events
Functionally the same as caxis.which due to SDL_Event union, but prefer
using SDL_ControllerButtonEvent members for button events.
2020-07-02 17:45:44 -07:00
Connor McLaughlin
2d74062abb CPU: Delay interrupts by one instruction/block
Fixes Gameshark Sampler Disc.
2020-07-03 01:51:08 +10:00
Connor McLaughlin
8a8ce8d41c NamcoGunCon: Use correct GPU clock as reference 2020-07-03 01:51:05 +10:00
Connor McLaughlin
0710e3b6d3 CDROM: Ignore sectors with channel number=255
Some games (Taxi 2 and Blues Blues) have junk audio sectors with a channel number of 255.
We need to skip them otherwise it ends up playing the incorrect file.

TODO: Verify with a hardware test.
2020-07-02 00:50:53 +10:00
Connor McLaughlin
bff5432879 Pad: Improve ACK timing
Fixes random pauses in Moto Racer.
2020-07-02 00:50:53 +10:00
Connor McLaughlin
b471d1043a Settings: Load Memory Cards From State -> Load Devices From State
Makes it apply to controllers too.
2020-07-02 00:50:53 +10:00
Connor McLaughlin
655dff84e2 VulkanHostDisplay: Fix software cursor rendering 2020-07-01 01:57:25 +10:00
Connor McLaughlin
400ee3d9b3 OpenGLHostDisplay: Fix software cursor rendering 2020-07-01 01:57:25 +10:00
Connor McLaughlin
8cd9e0887e libretro: Use framebuffer view dimensions not texture dimensions 2020-07-01 01:57:25 +10:00
Connor McLaughlin
70f4ce7cde libretro: Add auto analog mode option for controllers 2020-07-01 01:57:25 +10:00
Connor McLaughlin
f65a50d84b HostDisplay: Use surface scale for drawing software cursor 2020-07-01 01:57:25 +10:00
Connor McLaughlin
bf08385051 WindowInfo: Add surface_scale field 2020-07-01 01:57:25 +10:00
Connor McLaughlin
e374853cf5 HostInterface: Better configuration of custom crosshair/software cursor 2020-07-01 01:57:25 +10:00
Connor McLaughlin
f0c1dfefe7 Core: Add resources file
Currently includes a crosshair icon.
2020-07-01 00:56:46 +10:00
Connor McLaughlin
ed6065d7f5 D3D11HostDisplay: Fix software cursor rendering 2020-07-01 00:56:46 +10:00
Connor McLaughlin
7d88bba764 Common: Add an image helper class 2020-07-01 00:56:46 +10:00
Connor McLaughlin
78cf890c6c Qt: Hook up per-controller-type-settings to UI 2020-07-01 00:56:46 +10:00
Connor McLaughlin
bcc6d5d53d Qt: Support float settings in setting widget binder 2020-07-01 00:56:46 +10:00
Connor McLaughlin
0b11a14e24 Qt: Better handling of default settings not in ini 2020-07-01 00:56:46 +10:00
Connor McLaughlin
4dc9e10777 HostInterface: Support per-controller-type settings 2020-07-01 00:56:46 +10:00
Connor McLaughlin
f3b2953e40 Common/StringUtil: Add FromChars overload for bool 2020-07-01 00:56:46 +10:00
Connor McLaughlin
38aa485f8f libretro: Analog controller/DualShock support 2020-06-30 03:03:56 +10:00
Connor McLaughlin
51b4776b8f libretro: Work around video driver switching crash in RetroArch 2020-06-30 03:03:56 +10:00
Connor McLaughlin
861b98ed3b libretro: Additional work
- Reliable resolution switching.
 - Hook up logging.
 - Memory cards and controller type settings.
 - Save state support.
 - Direct3D support.
2020-06-30 03:03:56 +10:00
Connor McLaughlin
2a38090e7a HostDisplay: Move most backend logic to FrontendCommon 2020-06-30 03:03:56 +10:00
Connor McLaughlin
936d92dfb8 System: Add option to force start in software mode 2020-06-30 02:44:19 +10:00
Connor McLaughlin
919494079b System: Make saving screenshots to state optional 2020-06-30 02:44:09 +10:00
Connor McLaughlin
dc7cc3b67f Common/ByteStream: Fix buffer corruption in MemoryByteStream 2020-06-30 02:44:01 +10:00
Connor McLaughlin
e5f56fcd33 MDEC: Slightly reduce block timing
Fixes FMVs in Disney's Treasure Planet.

Probably needs sub-block timing emulated at some point.
2020-06-29 14:45:14 +10:00
Connor McLaughlin
614ea632a5 SPU: Log warning when data is lost due to reg clear 2020-06-29 14:45:03 +10:00
Connor McLaughlin
ea1066f76e GL/StreamBuffer: Use glBufferData() on all drivers 2020-06-29 14:44:16 +10:00
Connor McLaughlin
745b53e4cb GL/Context: Fix crash in some GLX drivers 2020-06-27 17:35:08 +10:00
Connor McLaughlin
15afe4f436 GPU/Vulkan: Fix incorrect vkCmdPushConstants() call 2020-06-27 16:26:20 +10:00
Albert Liu
1a45ee3018 CommonHostInterface: Use largeImage fields in Discord presence payload
Fixes application icon not showing up in Discord Rich Presence.
2020-06-26 22:28:48 -07:00
Connor McLaughlin
0b261e836b GPU/Vulkan: Fix shader VRAM copies
Fixes battle transitions in Final Fantasy IX.
2020-06-27 03:00:03 +10:00
Connor McLaughlin
58b0e6859a Frontend: Reset/restore GPU state before saving screenshot
Fixes driver crashes in Vulkan.
2020-06-27 02:59:58 +10:00
Connor McLaughlin
b94de1924d GPU/ShaderGen: Round normalized colours before converting to integer
Fixes broken rendering/precision issues on Intel Ivy Bridge GPUs.

Many thanks to linkmauve from Dolphin for the idea - seems Dolphin also
had a similar problem a few years ago.
2020-06-26 21:40:53 +10:00
Connor McLaughlin
16ca214d09 GPU/OpenGL: Fix VRAM writes breaking on <GL4.3 2020-06-26 21:39:37 +10:00
Connor McLaughlin
34d7b752d8 GPU/ShaderGen: Enable GL_ARB_shader_storage_buffer_object on <GL4.3 2020-06-26 21:39:12 +10:00
Connor McLaughlin
998ec85b16 CDROM: Log slow sector reads in Release builds too 2020-06-26 17:17:25 +10:00
Connor McLaughlin
737337a526 CDROM: Fix incorrect sector read after incomplete seek->read
Fixes crash in Disney's The Lion King - Simba's Mighty Adventure.
2020-06-26 17:15:41 +10:00
Connor McLaughlin
b8a2487abf GPU/HW: Fix incorrect offset application in line upscaler
Fixes green line in pause screen of Spyro.
2020-06-26 03:26:06 +10:00
Albert Liu
788a9a6768 Qt: Reset palette and style when selecting default theme
Fixes palette and style getting stuck when switching to default theme
after having used dark fusion theme earlier in the same session.
2020-06-24 16:08:36 -07:00
Connor McLaughlin
ad727c7991 CPU/Recompiler: Check interrupts after mtc0 sr/cause
Fixes Jackie Chan Stuntmaster in Recompiler mode.
2020-06-25 01:33:00 +10:00
Connor McLaughlin
b00f50c927 CPU/Recompiler: Emit test/jz instead of bt/jnc for bits < 8
Likely very slightly faster.
2020-06-25 01:33:00 +10:00
Connor McLaughlin
55a2c73097 Qt: Add Dark Fusion theme 2020-06-25 01:33:00 +10:00
Connor McLaughlin
a6d976240a Qt: Add theme selection and dark theme 2020-06-25 01:33:00 +10:00
Albert Liu
28d38c9867 LibretroHostInterface: Report aspect ratio setting to frontend 2020-06-23 09:24:50 -07:00
Albert Liu
7c206766ae HostInterface: Save default setting to AspectRatio, not PixelAspectRatio
Fixes inconsistency with default settings saving to PixelAspectRatio,
but loading from AspectRatio instead. PixelAspectRatio was not being
used elsewhere.
2020-06-23 09:24:50 -07:00
Connor McLaughlin
832c7a1192 Vulkan: Support using SSBOs instead texel buffers 2020-06-24 01:40:01 +10:00
Connor McLaughlin
08ef8c1e8d GPU/HW: Support SSBOs instead of texture buffers for VRAM writes 2020-06-24 01:39:53 +10:00
Connor McLaughlin
eec37df1e0 Settings: Make the recompiler the default CPU mode 2020-06-24 01:39:42 +10:00
Connor McLaughlin
f6aae5e67c Settings: Add 2:1 (VRAM 1:1) display aspect ratio 2020-06-24 01:39:35 +10:00
Connor McLaughlin
f32028a736
Merge pull request #566 from ggrtk/analog-controller
ControllerInterface: Customizable axis scaling and deadzone size
2020-06-24 01:33:26 +10:00
Connor McLaughlin
2cfb811569
Merge pull request #565 from lioncash/stamp
timestamp: Correct duplicate conditionals
2020-06-24 01:32:52 +10:00
Connor McLaughlin
84d4423719
Merge pull request #564 from lioncash/leak
file_system: Prevent resource leaks in DeleteDirectory()
2020-06-24 01:31:52 +10:00
Connor McLaughlin
da0885af0d
Merge pull request #563 from lioncash/fs
file_system: Correct duplicate conditionals in CreateDirectory()
2020-06-24 01:30:04 +10:00
Connor McLaughlin
4b31034efa
Merge pull request #562 from lioncash/amp
spu: Make use of logical AND within IsPitchModulationEnabled()
2020-06-24 01:29:42 +10:00
Albert Liu
293c2f50cd ControllerInterface: Make axis-to-button deadzone customizable 2020-06-23 08:15:17 -07:00
Albert Liu
6b7c068f83 ControllerInterface: Implement axis scaling for axis-to-axis mappings
This feature allows us to work around analog stick range issues at the
intercardinal directions in certain titles (e.g. Rockman DASH 2) caused
by modern controllers having a tighter logical range of reporting than
PS1 analog controllers.
2020-06-23 08:14:37 -07:00
Lioncash
4c82705e34 timestamp: Correct duplicate conditionals
Previously, the milliseconds field wasn't being used in comparisons on
Windows.
2020-06-23 06:24:06 -04:00
Lioncash
987b11a1d2 timestamp: Implement operator!= in terms of operator==
Same behavior, less code.
2020-06-23 06:20:29 -04:00
Lioncash
83a01c27a2 file_system: Prevent resource leaks in DeleteDirectory()
We need to remember to close the search handle in the error cases.
2020-06-23 06:13:54 -04:00
Lioncash
292a0a6800 file_system: Correct duplicate conditionals in CreateDirectory() 2020-06-23 06:09:38 -04:00
Lioncash
20d17b953b spu: Make use of logical AND within IsPitchModulationEnabled()
It seems awfully suspect to use a bitwise AND here.
2020-06-23 06:00:11 -04:00
Connor McLaughlin
3ca9d578b3
Merge pull request #559 from lioncash/field
bitfield: Make interface fully constexpr
2020-06-23 19:58:06 +10:00
Connor McLaughlin
6de24f620e
Merge pull request #558 from lioncash/psf
system: Correct error dialog in PSF load case
2020-06-23 19:57:19 +10:00
Connor McLaughlin
daf9afe221
Merge pull request #560 from lioncash/xy
playstation_mouse: Amend initial x value
2020-06-23 19:56:43 +10:00
Connor McLaughlin
e228588823
Merge pull request #561 from lioncash/rectangle
rectangle: Correct assignment of right within SetExtents
2020-06-23 19:56:16 +10:00
Lioncash
e064196f25 rectangle: Correct assignment of right within SetExtents
Previously left was being assigned twice in a row.
2020-06-23 05:50:43 -04:00
Lioncash
7a05f8402b playstation_mouse: Amend initial x value
Previously the last host y position was being written to twice, which
seems like a typo.
2020-06-23 05:48:25 -04:00
Lioncash
0abe4c60b4 cd_image: Make use of std::array where applicable
Simplifies array copies.
2020-06-23 05:35:26 -04:00
Lioncash
a27aa45e6a bitfield: Make interface fully constexpr
Given C++17 is being used, the entire interface is capable of being
constexpr.
2020-06-23 05:27:40 -04:00
Lioncash
76af96f15b system: Correct error dialog in PSF load case
Corrects the error message to state that the PSF couldn't be loaded
rather than EXE.
2020-06-23 05:13:47 -04:00
Connor McLaughlin
840a80670f CDROM: Reset XA resampler on file switch
Pure guess work, probably won't affect anything.
2020-06-22 15:58:22 +10:00
Connor McLaughlin
9265dd72ba Vulkan/ShaderCache: Skip writing pipeline cache when size matches
Comparing all the data wasn't working, at least for Intel. I'm guessing
there's some modification time field in there which keeps changing.
2020-06-22 15:58:10 +10:00
Connor McLaughlin
eaca5eca07 GPU/Vulkan: Use Metal layer instead NSView on macOS. 2020-06-22 15:58:07 +10:00
Connor McLaughlin
f846817848 Vulkan: Fix crash when opening settings window -> resizing 2020-06-22 15:58:00 +10:00
Connor McLaughlin
1455e793d5 Vulkan: Fix crash when drag-resizing window 2020-06-22 15:57:54 +10:00
Connor McLaughlin
82a0ad8a10 Qt/Settings: Make GPU adapter more sensible
Add a default entry, rather than leaving it blank.
2020-06-22 15:57:43 +10:00
Connor McLaughlin
eb1b6b6272 GPU/HW: Fix D3D11 upscaled line GS 2020-06-22 15:53:05 +10:00
Connor McLaughlin
73cdd676ad GPU/Vulkan: Fix incorrect srcfactor selection 2020-06-21 16:24:37 +10:00
Connor McLaughlin
ce75168238 GPU/Vulkan: Don't assume support for dual-source blend 2020-06-21 01:33:15 +10:00
Connor McLaughlin
bf60f9dd61 GPU/Vulkan: Use geometry shader for line rendering at >1xIR 2020-06-21 01:33:08 +10:00
Connor McLaughlin
97ef905f10 GPU/Vulkan: Fix race/crash when changing settings live 2020-06-21 01:33:00 +10:00
Connor McLaughlin
f54876deb0 Vulkan/Context: Use VK_MVK_macos_surface not VK_EXT_metal_surface
Will change this over some time in the future when I can work on a Mac
again and set up the layer.
2020-06-20 20:37:38 +10:00