1309 Commits

Author SHA1 Message Date
Connor McLaughlin
2d6bdc1f82 Qt: Fix rumble not stopping on power off 2020-05-01 16:42:47 +10:00
Connor McLaughlin
1ed86f4897 Frontends: Add Discord Presence support 2020-05-01 01:01:53 +10:00
Connor McLaughlin
d8ab587153 HostInterface: Modify settings loading interface to support per-frontend settings 2020-05-01 01:01:50 +10:00
Connor McLaughlin
0ec44327d1 SDL: Add integer upscaling option 2020-05-01 01:00:35 +10:00
Connor McLaughlin
55fc3fffd9 Qt: Add integer upscaling option 2020-05-01 01:00:29 +10:00
Connor McLaughlin
b4c31e55e2 HostDisplay: Add integer upscaling option 2020-05-01 01:00:22 +10:00
Connor McLaughlin
98bb1de31f Qt: Add help to GPU options in settings 2020-05-01 01:00:05 +10:00
Connor McLaughlin
101e1bfd73 Qt: Add advanced settings 2020-05-01 00:59:31 +10:00
Connor McLaughlin
a3792a74ed Qt: Switch to Windows instead of Console subsystem 2020-05-01 00:58:46 +10:00
Connor McLaughlin
59d0e4aa21 SDL: Switch to Windows instead of Console subsystem 2020-05-01 00:58:38 +10:00
Connor McLaughlin
e37962009e HostInterface: Add log lettings to ini 2020-05-01 00:58:32 +10:00
Connor McLaughlin
c2ab611097 Common/Log: Properly release console when disabling 2020-05-01 00:58:24 +10:00
Connor McLaughlin
4702110474 Common/Log: Add file output 2020-05-01 00:58:02 +10:00
Connor McLaughlin
828513409f Qt: Remove unnecessary log spam 2020-04-30 17:46:33 +10:00
Connor McLaughlin
5cd78dcab5 DMA: Fix an unlikely case where LL DMA gets stuck on
Fixes Frogger.
2020-04-30 14:52:38 +10:00
Connor McLaughlin
dac114fa4e Qt: Use coarse timer for background controller polling
Fixes high idle CPU usage.
2020-04-30 12:34:14 +10:00
Connor McLaughlin
dc487655df CDROM: More timing refinements 2020-04-30 01:36:07 +10:00
Connor McLaughlin
5a6c029814 GPU: Disable dual-source blending on Mesa Gen7/Gen7.5
Apparently it's broken. Need to look into it more.
2020-04-30 01:27:50 +10:00
Connor McLaughlin
59f055f4b9 HostInterface: Make title-based memory cards the default 2020-04-30 01:21:18 +10:00
Connor McLaughlin
226459b60f SPU: Add missing register read for ENDX 2020-04-30 01:12:17 +10:00
Connor McLaughlin
2d92e0a819 CDROM: Reduce ACK timing 2020-04-30 00:12:39 +10:00
Connor McLaughlin
557a6c3696 GPU/HW: Work around rasterization differences in OpenGL
Strangely, AMD GPUs are fine, it's just NVIDIA and Intel. Time for a
Vulkan renderer?
2020-04-29 21:17:49 +10:00
Connor McLaughlin
940b725c1d Settings: Make DMA performance parameters tweakable 2020-04-29 20:00:22 +10:00
Connor McLaughlin
9d1eb321ec DMA: Properly handle infinite linked lists, add cycle stealing
Fixes Tekken 2, Hot Wheels Turbo Racing, probably others.
2020-04-29 16:52:15 +10:00
Connor McLaughlin
07e8ddcae2 DMA: Elide intermediate copy where possible
Easy 5% performance improvement.
2020-04-29 16:52:11 +10:00
Connor McLaughlin
d80aaf3880 Qt: Fix possible race/crash on shutdown 2020-04-29 16:52:06 +10:00
Connor McLaughlin
8f82987341 Controller: Add basic PlayStation Mouse support
Still needs capture/relative movement for a better experience.
2020-04-29 14:00:11 +10:00
Connor McLaughlin
b56546d8ad Qt: Always poll controllers even when not running
Fixes pause hotkey not unpausing when bound to controller.
2020-04-29 13:28:09 +10:00
Connor McLaughlin
5a1b00825d GPU: Fix timer 1 IRQs sometimes triggering late
Should hopefully fix missing voices in Akuji the Heartless.
2020-04-28 20:31:16 +10:00
Connor McLaughlin
a5ff904b33 SPU: Clear ENDX flag on key on 2020-04-28 20:30:16 +10:00
Connor McLaughlin
be9033b6c0 SPU: Add missing clamp in ADPCM decoder 2020-04-28 17:55:43 +10:00
Connor McLaughlin
b16ecd7a86 SPU: ENDX register should get set when looping as well as muting 2020-04-28 16:57:14 +10:00
Connor McLaughlin
ce46dbeeca GPU/HW: Fix another vertex culling error 2020-04-28 02:07:56 +10:00
Connor McLaughlin
e20fd61f0b System: Add option to use per-game memory cards with game title as filename 2020-04-28 01:04:10 +10:00
Connor McLaughlin
d04b252962 AnalogController: Reduce the number of commands which enable analog mode
Hopefully will fix those games where it's expecting digital outputs but
getting analog.
2020-04-28 00:34:34 +10:00
Connor McLaughlin
8605620c24 SPU: Force all voices off when SPUCNT.15=0 2020-04-27 23:33:24 +10:00
Connor McLaughlin
8c6cb877eb GPU: Disable display when CRTC configuration is invalid 2020-04-27 21:49:34 +10:00
Connor McLaughlin
79111e4e03 Qt: Add option for memory card type/mode 2020-04-27 16:22:25 +10:00
Connor McLaughlin
bae4945c7a SDL: Add option for memory card type 2020-04-27 16:22:25 +10:00
Connor McLaughlin
74e455a5f7 System: Support per-game memory cards 2020-04-27 16:22:25 +10:00
Connor McLaughlin
39498849bd Common/String: Support casting to std::string_View 2020-04-27 16:14:38 +10:00
Connor McLaughlin
36444b264f GPU/D3D11: Restore API state after updating settings
Should fix the debug layer warnings when adjusting resolution scale.
2020-04-27 13:52:59 +10:00
Connor McLaughlin
304391bd00 GPU: Truncate sprite/rectangle positions to 12 bits before rendering
Fixes disappearing objects in Skullmonkeys.
2020-04-27 12:51:18 +10:00
Connor McLaughlin
63692a012f Qt: Add "New..." to input profile save button
This will ensure the profile gets saved to the correct location.
2020-04-27 01:05:03 +10:00
Connor McLaughlin
a8c43b0c8c SDL: Only enable D3D11 break-on-error when debugger attached 2020-04-27 00:53:25 +10:00
Connor McLaughlin
84b8987105 Qt: Only enable D3D11 break-on-error when debugger attached 2020-04-27 00:53:17 +10:00
Connor McLaughlin
746a00743e GPU/HW: Don't emit dual-source colour writes on opaque pass
Fixes warnings triggering in D3D11 debug runtime.
2020-04-27 00:52:02 +10:00
Connor McLaughlin
341b163ca1 Common/BitField: Fix off-by-one error for signed types
Fixes Darkstalkers 3 character select screen.
2020-04-27 00:13:24 +10:00
Connor McLaughlin
dc1e1b5adf GPU/HW: Fix too-large polygon culling
Fixes graphical corruption in some levels of Point Blank 2.
2020-04-26 21:43:28 +10:00
Connor McLaughlin
98ff136f67 GPU: Round texture coordinates instead of flooring
Fixes misaligned textures in some games such as Crash Bandicoot.

Currently, because the vertex offset is not applied at >1x resolution
scale, this will not work so it is disabled at >1x.
2020-04-26 19:15:50 +10:00
Connor McLaughlin
d1e841f55d GTE: Use intrinsic CountLeadingZeros()
Super tiny micro-optimization.
2020-04-26 18:33:35 +10:00
Connor McLaughlin
28a022547f CommonTests: Add tests for BitUtils 2020-04-26 18:33:32 +10:00
Connor McLaughlin
5671fde1ae BitUtils: Make Count{Leading,Trailing}Zeros UB for value==0 2020-04-26 18:32:26 +10:00
Connor McLaughlin
38b075c014 NamcoGunCon: Use mouse position from host display 2020-04-26 17:37:12 +10:00
Connor McLaughlin
1000cb30a9 HostDisplay: Track mouse position 2020-04-26 17:36:49 +10:00
Connor McLaughlin
2502afc3f6 SDL: Hook up mouse button events to bindings 2020-04-26 17:24:00 +10:00
Connor McLaughlin
3723cd5867 Qt: Mouse button binding support 2020-04-26 17:23:42 +10:00
Connor McLaughlin
ce46475e41 Qt: Use click event rather than pressed to rebind 2020-04-26 17:22:29 +10:00
Connor McLaughlin
fce35d6dbe CommonHostInterface: Support mouse bindings 2020-04-26 17:21:49 +10:00
Connor McLaughlin
02db665d4a Common: Add bitutils.h 2020-04-26 17:21:33 +10:00
Connor McLaughlin
e6bd6587fd Controller: Add emulation of Namco GunCon 2020-04-26 01:23:58 +10:00
Connor McLaughlin
2026ef99e8 MemoryCard: Last byte should not set /ACK 2020-04-26 01:23:08 +10:00
Connor McLaughlin
fccc2dd295 DigitalController: Store button state/transfer state in save states 2020-04-26 01:23:01 +10:00
Connor McLaughlin
2ffcad3d37 GPU: Add method to convert from window coordinates to beam ticks/lines 2020-04-26 01:22:56 +10:00
Connor McLaughlin
a111e36ad7 CommonHostInterface: Add proper fast forward toggle 2020-04-26 01:22:44 +10:00
Connor McLaughlin
194fc63232 GameList: Flush game list after re-scanning
Should hopefully fix random gamelist corruption.
2020-04-25 15:23:41 +10:00
Connor McLaughlin
25af5ef9d9 MemoryCard: Save FLAG to state 2020-04-25 15:00:14 +10:00
Connor McLaughlin
92255c8ddd System: Don't drop audio buffers when time lost 2020-04-25 14:51:25 +10:00
Connor McLaughlin
f98c9b4084 GPU/HW: Fix display being cut off when cropping+upscaling 2020-04-25 14:37:56 +10:00
Connor McLaughlin
9e2331c52a Qt: Redraw window immediately when switching between fullscreen/windowed
Fixes content not showing when displaying a popup message.
2020-04-25 14:30:10 +10:00
Connor McLaughlin
1dd2e0f498 Qt: Fix assertion tripping when starting fullscreen 2nd time 2020-04-25 14:30:10 +10:00
Connor McLaughlin
7fae169bbb Timer: Don't let writes affect IRQ state 2020-04-25 14:17:44 +10:00
Connor McLaughlin
72f6503bec CDROM: Reduce speed change delay 2020-04-25 14:16:36 +10:00
Connor McLaughlin
a4416d8cf5 CDROM: Add seek time when starting reading/playing without setloc 2020-04-25 14:16:20 +10:00
Connor McLaughlin
f7e2d98055 Qt: Add .psf to all files filter for open file 2020-04-25 00:37:48 +10:00
Connor McLaughlin
191c3450cc SPU: Port reverb algorithm from Mednafen-PSX 2020-04-25 00:37:02 +10:00
Connor McLaughlin
6e6c11f8bf GPU: Fix dithering enable check for non-textured polygons
Fixes screen fade out effects in Final Fantasy VIII.
2020-04-24 19:53:49 +10:00
Connor McLaughlin
e34b78ab80 SPU: Fix pitch modulation 2020-04-24 15:50:35 +10:00
Connor McLaughlin
1891b45b0e GPU/OpenGL: Fix shader compile error on NVIDIA 2020-04-24 03:30:32 +10:00
Connor McLaughlin
715209e178 GPU/HW: Truncate colours to 16-bit before applying alpha
Fixes battle screen transitions blowing out in brightness in Final
Fantasy 7.
2020-04-24 03:26:54 +10:00
Connor McLaughlin
4a4c3d5e3b GL/Texture: Add internal format as parameter 2020-04-24 03:21:44 +10:00
Connor McLaughlin
990147b7e9 GPU/HW: Use uint in CPU-side vertex attributes 2020-04-23 15:55:49 +10:00
Connor McLaughlin
e2f5905cd6 GPU/HW: Use unsigned integers in shaders for texcoords
Probably needs testing on GLES.
2020-04-23 15:14:19 +10:00
Connor McLaughlin
30033ed4aa GPU/HW: Minor improvements to texture filtering 2020-04-23 15:08:28 +10:00
Connor McLaughlin
13e2b28f50 GPU/HW: Only apply vertex offset at 1x resolution scale 2020-04-23 14:45:11 +10:00
Connor McLaughlin
ea25b58dd3 Qt: Support disabling vsync via glXSwapInterval 2020-04-23 13:04:40 +10:00
Connor McLaughlin
fc6a165438 CMake: Fix compiling with Visual Studio 2020-04-23 13:04:33 +10:00
Connor McLaughlin
a02c818245 HostDisplay: Drop some unused methods 2020-04-22 21:15:59 +10:00
Connor McLaughlin
ea3c0b65cf Qt: Refactor render widget state transitions
Recreate widget each time. Fixes fullscreen mode switches on D3D11 and
hopefully Wayland.
2020-04-22 21:13:53 +10:00
Connor McLaughlin
d7aa514f14 GPU/HW/OpenGL: Work around vertex-Y-off-by-one issue 2020-04-22 17:39:46 +10:00
Connor McLaughlin
ec5b52b3fb GPU/HW: Tweak vertex shader offsets
Fixes Doom/Dark Forces/etc in hardware renderer, but only at 1x
resolution. Fixes missing lines in Castlevania SOTM, Ridge Racer Type 4,
etc.
2020-04-21 22:07:55 +10:00
Connor McLaughlin
834f3768a1 GPU/HW: Line coordinate typo fix 2020-04-21 16:01:04 +10:00
Connor McLaughlin
1ee418aebf GPU/HW: Fix additional polyline vertices drawing 2020-04-21 15:45:22 +10:00
Connor McLaughlin
b9954a943a CommonHostInterface: Default hotkeys for new save state UI
- F1: Load
- F2: Save
- F3: Select Previous
- F4: Select Next
2020-04-21 03:07:53 +10:00
Connor McLaughlin
2a710798cc CommonHostInterface: Add save state selector UI 2020-04-21 03:07:40 +10:00
Connor McLaughlin
7c2244f20f FrontendCommon: Add placeholder icon binary 2020-04-21 02:50:48 +10:00
Connor McLaughlin
08c8d1a521 System: Support saving screenshots in save states 2020-04-21 02:50:45 +10:00
Connor McLaughlin
aaf9dcaf02 GPU/HW: Fix possible crash when drawing polylines 2020-04-20 13:00:57 +10:00
Connor McLaughlin
4655aa02f8 CPU/CodeCache: Fix uninitialized pointers 2020-04-20 12:35:57 +10:00
Connor McLaughlin
badfe6117e GPU: Remove textured draw time penalty
Fixes missing elements in Bloody Roar 2.
2020-04-20 12:25:00 +10:00
Connor McLaughlin
759c7c52d5 GPU: Don't wedge when other commands are in FIFO with polyline
Fixes Ridge Racer Type 4.
2020-04-20 01:10:41 +10:00
Connor McLaughlin
b893c0abf5 GPU/Software: Fix copies when overlapping and oversized 2020-04-20 00:54:50 +10:00
Connor McLaughlin
f1d1129e05 CDROM: Don't assert if SetMode.bit4 is set 2020-04-19 22:31:22 +10:00
Connor McLaughlin
5ad133a278 GPU/HW: Implement oversized copies on GPU
Fixes slowdown caused by this.
2020-04-19 22:30:55 +10:00
Connor McLaughlin
045c4d1745 SPU: Fix adsr_volume read for pending key-on voice
Fixes cutscene audio in Spyro 2, probably others.
2020-04-19 18:19:55 +10:00
Connor McLaughlin
13903c2abd SDL: Add advanced options for tweaking GPU FIFO/runahead
These values are not saved.
2020-04-19 16:58:46 +10:00
Connor McLaughlin
3319adfa2f GPU: Tweak rectangle draw times 2020-04-19 16:57:51 +10:00
Connor McLaughlin
d5a5432a8b CPU/CodeCache: Fix crash when BIOS is missing 2020-04-19 16:03:35 +10:00
Connor McLaughlin
610cc74cb9 GPU: Add primitive setup timing 2020-04-19 15:26:27 +10:00
Connor McLaughlin
16500064f8 GPU: Tweak triangle draw times 2020-04-19 15:24:40 +10:00
Connor McLaughlin
6ef3626599 GPU/HW: Fix a possible crash in rectangle expansion 2020-04-19 14:34:17 +10:00
Connor McLaughlin
1757932b3a GPU: Implement FIFO and timings
This will cause a slight performance loss. I've left some knobs in which
can be tweaked to mitigate this, but the goal is to be compatible with
all games which require them.
2020-04-19 01:17:28 +10:00
Connor McLaughlin
65ca8b9fe0 GPU/HW: Move logic from backend to GPU_HW class 2020-04-18 15:30:46 +10:00
Connor McLaughlin
5923129eca Common/FIFOQueue: Make bounds checks debug only 2020-04-18 15:30:32 +10:00
Connor McLaughlin
277c03aca0 Add auto-generated Git version to window titles 2020-04-17 02:10:56 +10:00
Connor McLaughlin
610ebcf2fa Qt: Support loading .psf files 2020-04-17 00:31:03 +10:00
Connor McLaughlin
9c184c5733 SDL: Support loading .psf files 2020-04-17 00:30:19 +10:00
Connor McLaughlin
205297ac27 System: PSF (Portable Sound Format) loading support 2020-04-17 00:29:56 +10:00
Connor McLaughlin
38847de8ee GameList: PAPX and SCZS prefixes should be NTSC-J 2020-04-16 21:42:09 +10:00
Connor McLaughlin
197b193ca3 GPU/HW/OpenGL: Use geometry shaders for upscaled line rendering 2020-04-16 21:29:11 +10:00
Connor McLaughlin
02b1e084c1 GPU/HW/OpenGL: Re-enable some fast paths I accidentially disabled 2020-04-16 21:27:01 +10:00
Connor McLaughlin
b45b70970b GL/ShaderCache: Support geometry shaders 2020-04-16 21:25:56 +10:00
Connor McLaughlin
a43a0a14cc CPU/CodeCache: Don't leak blocks on shutdown 2020-04-16 20:23:54 +10:00
Connor McLaughlin
7a87b9b5bb CPU/CodeCache: Don't leak blocks on flush 2020-04-16 19:40:52 +10:00
Connor McLaughlin
86df077ffe GPU/HW: Slight refactor to vertex culling 2020-04-16 00:22:19 +10:00
Connor McLaughlin
8a5e955ba3 Qt: Add input profile support 2020-04-15 01:44:16 +10:00
Connor McLaughlin
f75ea052a6 FrontendCommon: Add input profile support 2020-04-15 01:44:04 +10:00
Connor McLaughlin
193763b4aa SDL: Fix possible crash when parsing key modifiers 2020-04-14 16:41:59 +10:00
Connor McLaughlin
1eeb1012aa Qt: Add buttons for binding controller rumble 2020-04-14 16:35:04 +10:00
Connor McLaughlin
d9ebb975b2 CommonHostInterface: Reimplement controller rumble support
Even better than before, supports separate motor control.
2020-04-14 16:34:42 +10:00
Connor McLaughlin
915989fa25 CommonHostInterface: Remove extra newlines in messages 2020-04-14 04:05:10 +10:00
Connor McLaughlin
67f2eb3fed Qt: Fix -fullscreen not working 2020-04-13 22:37:24 +10:00
Connor McLaughlin
81cf4b469f Frontends: Add shared command line interface
Also provides batch mode and automatic fullscreen switching.

  -help: Displays this information and exits.
  -version: Displays version information and exits.
  -batch: Enables batch mode (exits after powering off)
  -fastboot: Force fast boot for provided filename
  -slowboot: Force slow boot for provided filename
  -resume: Load resume save state. If a boot filename is provided,
    that game's resume state will be loaded, otherwise the most
    recent resume save state will be loaded.
  -state <index>: Loads specified save state by index. If a boot
    filename is provided, a per-game state will be loaded, otherwise
    a global state will be loaded.
  -statefile <filename>: Loads state from the specified filename.
    No boot filename is required with this option.
  -fullscreen: Enters fullscreen mode immediately after starting.
  -nofullscreen: Prevents fullscreen mode from triggering if enabled.
  -portable: Forces "portable mode", data in same directory.
  --: Signals that no more arguments will follow and the remaining
    parameters make up the filename. Use when the filename contains
    spaces or starts with a dash.
2020-04-13 22:17:09 +10:00
Connor McLaughlin
6a03bb2d15 HostInterface: Drop std::filesystem requirement 2020-04-12 21:06:33 +10:00
Connor McLaughlin
e843fcd9f0 SDLControllerInterface: Fix broken input when player IDs clash 2020-04-11 19:36:53 +10:00
Connor McLaughlin
4fd5d6ca4f SDL: Fix software renderer image uploads in OpenGL 2020-04-11 18:54:20 +10:00
Connor McLaughlin
a682b720e1 Qt: Fix software renderer image uploads in OpenGL 2020-04-11 18:54:09 +10:00
Connor McLaughlin
7779a54bc5 GPU: Rename 'Force Progressive Scan' to 'Disable Interlacing'
It affects rendering as well as display/scanout now, after all.
2020-04-11 16:37:53 +10:00
Connor McLaughlin
9e024b7a51 GPU: Handle VRAM wrap-around behavior on scanout 2020-04-11 16:09:03 +10:00
Connor McLaughlin
fc3efebb38 Revert "SPU: Use reverb formula from Mednafen-PSX"
This reverts commit 809b9f89ca0a24934ffa13c7901345ed0aa82eeb.
2020-04-11 15:04:04 +10:00
Connor McLaughlin
54adad948b Qt: Add .mcr extension to memory card file picker 2020-04-11 11:57:39 +10:00
Connor McLaughlin
a4a112f5d8 CDROM: Deliver invalid sub-q (libcrypted) sectors to CPU
Nocash documentation would suggest that it only needs the sector to be
skipped by GetLocP. Which would make sense as the non-subchannel data is
still completely valid.
2020-04-11 02:44:43 +10:00
Connor McLaughlin
6d55979dac HostDisplay: Fix 1x1 1:1 AR screenshots in OpenGL 2020-04-11 00:56:28 +10:00
Connor McLaughlin
05e4e7d262 CDROM: Add timing for speed changes/adjust seek timing
This makes the BIOS take longer to load the executable off the disc,
giving the sound effects longer to fade out and reducing the overlap
with the game.
2020-04-11 00:40:44 +10:00
Connor McLaughlin
809b9f89ca SPU: Use reverb formula from Mednafen-PSX 2020-04-11 00:40:28 +10:00
Connor McLaughlin
64a96ad718 Common/WAVWriter: Add accessors 2020-04-11 00:24:30 +10:00
Connor McLaughlin
156a360d86 SDL: Migrate to common host interface
It now supports controllers again. But you have to bind them in Qt.
2020-04-11 00:00:44 +10:00
Connor McLaughlin
6cfad33b8e HostInterface: Set NoNav on FPS window
Prevents it stealing focus in SDL frontend.
2020-04-11 00:00:37 +10:00
Connor McLaughlin
674bcdfeec INISettingsInterface: Add Save() method 2020-04-11 00:00:21 +10:00
Connor McLaughlin
ebc3aa118c SDL: Fix DXGI intercepting ALT+ENTER 2020-04-11 00:00:15 +10:00