1060 Commits

Author SHA1 Message Date
Connor McLaughlin
40481305c4 GPU/HW: Fudge texture coordinates by half a screen-space pixel
Fixes holes in triangles in some games, e.g. Disney's The Emperor's New
Groove.
2020-03-24 00:20:12 +10:00
Connor McLaughlin
7ac48cd8d6 SPU: Swap read/write ready bits
Nocash might be incorrect here.
2020-03-23 00:29:18 +10:00
Connor McLaughlin
7a89c787b8 SPU: Fix some reverb registers not being saved to state 2020-03-23 00:29:10 +10:00
Connor McLaughlin
d47a82d591 SPU: Implement noise functionality 2020-03-23 00:29:00 +10:00
Connor McLaughlin
0a6295a9b4 SPU: Implement volume sweep functionality 2020-03-23 00:28:51 +10:00
Connor McLaughlin
a5083f0ee4 Qt: Remove ? button in title bar 2020-03-22 22:40:45 +10:00
Connor McLaughlin
701491156a Qt: Use menu font instead of system font as default font 2020-03-22 22:40:29 +10:00
Connor McLaughlin
7b9be0a586 Qt: Add per-page help to settings dialog 2020-03-22 22:19:46 +10:00
Connor McLaughlin
1d9bcb2a48 Qt: Force redraw the display when restoring after minimized 2020-03-22 21:50:49 +10:00
Connor McLaughlin
361bedc2c3 SDLControllerInterface: Hackfix for non-player-id supporting controllers 2020-03-22 21:31:54 +10:00
Connor McLaughlin
8b836555f6 Qt: Disable auto-fill background and set WA_NoSystemBackground 2020-03-22 21:25:10 +10:00
Connor McLaughlin
74e0e83cfd Qt: Use same imgui style as SDL 2020-03-22 13:20:08 +10:00
Connor McLaughlin
e662f34f8b Qt: Add help for general settings 2020-03-22 13:20:08 +10:00
Connor McLaughlin
4629cdfffc Qt: Add help text section to settings dialog 2020-03-22 13:20:08 +10:00
Connor McLaughlin
d5c76bf7d5 Qt: Increase default size of settings dilaog 2020-03-22 13:20:08 +10:00
Connor McLaughlin
c646bf507f Qt: Add OSD options to general settings 2020-03-22 13:20:08 +10:00
Connor McLaughlin
a4a5d3ef79 Qt: Split some console settings out into general settings 2020-03-22 13:20:08 +10:00
Connor McLaughlin
bf2f9bd8d9 Qt: Add 'Refresh' button to toolbar for reloading game list 2020-03-22 13:20:08 +10:00
Connor McLaughlin
7e36195f44 HostInterface: Enable on-screen FPS/VPS/Speed display via config 2020-03-22 13:20:08 +10:00
Connor McLaughlin
9fd95c3e21 Common/Rectangle: Fix off-by-one error in Intersects() 2020-03-22 13:20:08 +10:00
Connor McLaughlin
77a60f0c5f HostInterface: Crash fix again for controller switching 2020-03-22 13:15:44 +10:00
Connor McLaughlin
acd49f3765 Qt: Fix possible crash when loading state via menu 2020-03-22 13:10:28 +10:00
Connor McLaughlin
12ddeb675c HostInterface: Fix controller not updating when switched and system running 2020-03-22 12:54:26 +10:00
Connor McLaughlin
46f921fb95 SDLControllerInterface: Fix crash on shutdown 2020-03-22 12:54:25 +10:00
Connor McLaughlin
8190efa5dc SDLControllerInterface: Fix compilation on Ubuntu LTS 2020-03-22 12:28:10 +10:00
Connor McLaughlin
ad6e4cb6e4 Qt: Add "Clear All" and "Rebind All" to controller bindings 2020-03-22 00:50:09 +10:00
Connor McLaughlin
45050709f2 Qt: Add support for clearing input bindings with right click 2020-03-22 00:49:55 +10:00
Connor McLaughlin
29a09a3685 Introduce ControllerInterface class, port SDL interface over
This breaks controller support in the SDL frontend until it's ported
over to the common interface.
2020-03-22 00:49:46 +10:00
Connor McLaughlin
a4486cf6fa CDROM: Don't miss last three frames at end of sector 2020-03-21 12:31:40 +10:00
Connor McLaughlin
8ef1e71ce0 DMA: Channels other than OTC should run based on request in SyncMode 0 2020-03-21 00:15:49 +10:00
Connor McLaughlin
f4d172df2f DMA: Fix underflow when block_count == 0 2020-03-21 00:15:42 +10:00
Connor McLaughlin
904ab982e6 GPU: Fix crash when fill rectangles are out-of-bounds 2020-03-21 00:15:35 +10:00
Connor McLaughlin
d67bcd654c GPU: Prevent emulator locking up when switching between PAL/NTSC mode 2020-03-20 01:12:41 +10:00
Connor McLaughlin
bad5b30a61 CDROM: Fix incorrect volume matrix update/application
Fixes #90.
2020-03-19 00:28:57 +10:00
Connor McLaughlin
3223f87eeb CDROM: Simplify register indexing for write 2020-03-19 00:28:41 +10:00
Connor McLaughlin
1ee68ad12a CommonHostInterface: Add Screenshot hotkey 2020-03-18 22:28:03 +10:00
Connor McLaughlin
afe2f96474 Qt: Fix display not updating after resize when paused
Fixes #104.
2020-03-18 22:27:45 +10:00
Connor McLaughlin
b86e0bc846 SPU: Implement reverb
Possibly still not complete.
2020-03-17 12:48:03 +10:00
Connor McLaughlin
c9e5e3a43e CDROM: Add missing disc/console region check
Fixes #106.
2020-03-17 12:47:46 +10:00
Connor McLaughlin
282998d0bb Qt: Add screenshot button 2020-03-16 00:06:39 +10:00
Connor McLaughlin
ffb760c79d SDL: Add screenshot to menu 2020-03-16 00:04:16 +10:00
Connor McLaughlin
6b68512ac1 HostInterface: Add SaveScreenshot() method 2020-03-16 00:03:57 +10:00
Connor McLaughlin
2bb992a702 HostDisplay: Add texture dumping/saving support 2020-03-16 00:03:49 +10:00
Connor McLaughlin
b4153266a0 GL/Texture: Add a GetTextureSubImage fallback/helper 2020-03-16 00:03:25 +10:00
Connor McLaughlin
212fddd195 D3D11/StagingTexture: Add auto-resizing staging texture 2020-03-16 00:03:16 +10:00
Connor McLaughlin
97c435a154 CMake: Linux build fix 2020-03-16 00:02:55 +10:00
Connor McLaughlin
fe2e6561d3 Qt: Add audio dumping options 2020-03-15 22:04:32 +10:00
Connor McLaughlin
c4af353d54 SDL: Add audio dumping options 2020-03-15 22:04:25 +10:00
Connor McLaughlin
8e20d0d4ff SPU: Add audio dumping support 2020-03-15 22:04:17 +10:00
Connor McLaughlin
198a64eb5e HostInterface: Add a helper function for generating timestamp-based filenames 2020-03-15 22:03:53 +10:00
Connor McLaughlin
c7a74cabaa Common: Add WAVWriter class 2020-03-15 22:03:22 +10:00
Connor McLaughlin
6a6aa72f3a SPU: Add a tick counter and delay between key on/off writes
Not yet tested on hardware. We believe that writing to a specific
voice's key on/off register within 2 samples/ticks of the first
write will result in the second write being ignored. This still
needs to be tested on hardware for confirmation.

Thanks to @PSI-Rockin for the idea.

Fixes sound effects in Monkey Hero.
2020-03-14 15:33:24 +10:00
Connor McLaughlin
d42f155512 SPU: Use "ticks" instead of "sample" in variable names 2020-03-14 15:23:23 +10:00
Connor McLaughlin
90d6babfb0 SPU: Always run, not only when enabled 2020-03-14 15:01:23 +10:00
Connor McLaughlin
c3cb6ef393 Qt: Fix debug menu not updating selected GPU renderer
Fixes #93.
2020-03-14 12:34:41 +10:00
Connor McLaughlin
90121aa169 GPU: Fix VRAM display in software renderer 2020-03-13 23:21:44 +10:00
Connor McLaughlin
e076526898 CDROM: Rework sector buffering behavior
This has not been tested on hardware yet, but fixes a couple of games.
2020-03-12 15:33:07 +10:00
Connor McLaughlin
86eefbd5d7 System: Fix a possible assertion failure loading state 2020-03-12 15:32:37 +10:00
Connor McLaughlin
21ecf231d9 Qt: Show game list scanning progress visually 2020-03-12 15:32:34 +10:00
Connor McLaughlin
0e3bcfa7b5 Qt/HostInterface: Track main window pointer 2020-03-12 15:32:30 +10:00
Connor McLaughlin
9e08ae6188 GameList: Use ProgressCallback interface when scanning 2020-03-12 15:32:19 +10:00
Connor McLaughlin
f71a03202b Qt: Add ProgressCallback implementation 2020-03-12 15:32:15 +10:00
Connor McLaughlin
8028b7b4a3 Common: Add ProgressCallback class 2020-03-12 13:54:27 +10:00
Connor McLaughlin
8f39a0f154 Qt: Properly implement "Start Fullscreen" 2020-03-12 13:53:58 +10:00
Connor McLaughlin
2480624cbe Qt: Replace QWindow for display with QWidget base
Not as elegant, but it solves the input focus issue.
2020-03-12 13:53:51 +10:00
Connor McLaughlin
db1070a683 Settings: Fix start paused not applying 2020-03-12 13:53:43 +10:00
Connor McLaughlin
3effa1238f CDROM: Return correct SCEx string based on disc region
Fixes SCEI/SCEE displaying as SCEE in BIOS.
2020-03-12 13:51:53 +10:00
Connor McLaughlin
419422a2d7 CDROM: Return console region string based on system 2020-03-12 13:51:38 +10:00
Connor McLaughlin
e0a339ca96 GameList: Seperate disc region and console region 2020-03-12 13:51:29 +10:00
Connor McLaughlin
e8a5259e68 Qt: Show save times in save state menu as well 2020-03-12 13:51:23 +10:00
Connor McLaughlin
b2d0dd2d6c Qt/GameList: Update entry rather than ignoring same directory added twice 2020-03-10 23:10:20 +10:00
Connor McLaughlin
ed0abf3912 Qt: Fix possible assertion failure when removing search directories 2020-03-10 22:59:17 +10:00
Connor McLaughlin
bd25aa2f9d Qt: Include .chd in disc image filter
Fixes #77.
2020-03-10 00:18:13 +10:00
Connor McLaughlin
c2370c598e CDROM: Don't crash when stopping with no media
Fixes #76.
2020-03-10 00:09:27 +10:00
Connor McLaughlin
e98c753d3d CDROM: Delay the first CDDA report by one second
Needs hardware testing...
2020-03-09 00:01:28 +10:00
Connor McLaughlin
776159265a CDROM: Skip pregap when processing CDDA 2020-03-09 00:01:26 +10:00
Connor McLaughlin
b81071a65c CDImage: Assume 2 second pregap between tracks if none specified 2020-03-09 00:01:23 +10:00
Connor McLaughlin
631865469d CDROM: Bump up ACK delay timing 2020-03-08 18:07:39 +10:00
Connor McLaughlin
4eeaa38ccd CDROM: Don't persist seek error bit in secondary status
Fixes Viewpoint (#56).
2020-03-08 15:54:09 +10:00
Connor McLaughlin
2249b873ff D3D11/StreamBuffer: Check feature support for MAP_NO_OVERWRITE before using 2020-03-08 12:51:14 +10:00
Connor McLaughlin
99d42c07c2 D3D11/StreamBuffer: Use WRITE_DISCARD at position 0 2020-03-08 12:38:01 +10:00
Connor McLaughlin
e19175edae GPU/D3D11: Fix non-vertical line rendering at >1x scale 2020-03-08 00:03:31 +10:00
Connor McLaughlin
34ae0dae13 CDROM: Fix upper bound for XA audio frames and sync SPU 2020-03-07 17:29:41 +10:00
Connor McLaughlin
6fa8031569 GPU/D3D11: Fix uniform buffer creation on Win7 2020-03-07 16:05:54 +10:00
Connor McLaughlin
eb6dbbfb13 CDROM: Set seeking bit in stat when seeking 2020-03-07 15:10:49 +10:00
Connor McLaughlin
c700913322 CDROM: Implement SetSession command 2020-03-07 15:10:19 +10:00
Connor McLaughlin
d0f420de10 CDROM: Log invalid command identifiers 2020-03-07 14:00:15 +10:00
Connor McLaughlin
6bb6249e86 GPU/HW: Print capabilities to log 2020-03-07 12:54:15 +10:00
Connor McLaughlin
b5b6a15e40 GPU/D3D11: Always flush render before presenting 2020-03-07 12:37:58 +10:00
Connor McLaughlin
ae4767a9ca GPU/HW: Always unmap buffer on flush
Should stop assertions firing in some games.
2020-03-07 12:34:44 +10:00
Connor McLaughlin
ef2796b780 CommonHostInterface: Fix controller inputs not binding
Fixes #46.
2020-03-06 21:55:27 +10:00
Connor McLaughlin
2004de7170 Qt: Fix controller rebinding not registering when paused 2020-03-06 21:55:10 +10:00
Connor McLaughlin
f9a298f1b7 GPU: Fix incorrect handling of check mask bit
Fixes boxes in Silent Hill in Software Renderer.
2020-03-06 00:45:21 +10:00
Connor McLaughlin
552a01a9b6 Qt: Disable LTCG on Release-only builds
It wasn't being used anyway.
2020-03-04 23:21:43 +10:00
Connor McLaughlin
b59e4ffbcb HostInterface: Reset performance counters on unpausing 2020-03-03 10:07:16 +10:00
Connor McLaughlin
b405c01652 Qt: Save settings for column visibility/sorting in game list 2020-03-02 11:08:29 +10:00
Connor McLaughlin
5c0660744a Qt: Implement "File Title" column and toggling in game list 2020-03-02 11:08:25 +10:00
Connor McLaughlin
c8954a3089 Qt: Fix game list sorting by column 2020-03-02 11:08:20 +10:00
Connor McLaughlin
69f03959aa Qt: Implement context menu in game list 2020-03-02 11:08:16 +10:00
Connor McLaughlin
0c40903f74 Qt: Fix double mutex lock on controller type change
Fixes #39.
2020-03-02 11:05:13 +10:00
Connor McLaughlin
34f1c644f5 GPU: Update GPUSTAT if raster has passed to the next line
Fixes games which poll GPUSTAT, including The Next Tetris (Europe).
2020-03-01 17:14:42 +10:00
Connor McLaughlin
b0b1fd8f1a GPU: Timing for CPU->VRAM transfers
Fixes Monkey Hero, probably others.
2020-03-01 17:14:38 +10:00
Connor McLaughlin
6b9c6d3750 GPU: Add a helper function to determine how many GPU ticks are pending 2020-03-01 17:14:32 +10:00
Connor McLaughlin
635ab72b37 GPU: Implement "Scaled Dithering" option
Fixes #29.
2020-03-01 00:05:31 +10:00
Connor McLaughlin
d41e6dd28f CommonHostInterface: Add some more default key bindings
Also remove some unused code.
2020-02-29 00:41:17 +10:00
Connor McLaughlin
fdcb891ed3 GPU: Fix incorrect detection of 480i mode 2020-02-29 00:19:23 +10:00
Connor McLaughlin
ed493c846d GPU: Don't panic on oversized VRAM copies
Fixes #31.
2020-02-29 00:19:09 +10:00
Connor McLaughlin
7412e78aa1 GPU: Move software copy/fill functions to base class so it can be used as fallback 2020-02-29 00:18:33 +10:00
Connor McLaughlin
e1d4c0b9d4 HostDisplay: Fudge texture coordinates for better linear filtering 2020-02-29 00:18:24 +10:00
Connor McLaughlin
6bacbf3438 GPU: Fix 480i displays getting cut off in OpenGL and Software 2020-02-28 23:01:38 +10:00
Connor McLaughlin
aa56a59f58 GPU: Make resolution info less spammy 2020-02-28 23:00:37 +10:00
Connor McLaughlin
0690491883 GPU/HW: Fix potential crash in rectangle expansion 2020-02-28 22:58:34 +10:00
Connor McLaughlin
a298e93004 CMake: Fix Linux build
Fixes #36.
2020-02-28 22:43:34 +10:00
Connor McLaughlin
e8e44991db GPU: Fix display in OpenGL renderer 2020-02-28 22:42:56 +10:00
Connor McLaughlin
63064f80c2 HostInterface: Fix default value for Display/CropMode 2020-02-28 18:15:37 +10:00
Connor McLaughlin
f2adb71a70 CommonHostInterface: Bind face buttons to keypad by default 2020-02-28 18:15:21 +10:00
Connor McLaughlin
19c1e8b838 StringUtil: Fix for older gcc versions again 2020-02-28 17:19:51 +10:00
Connor McLaughlin
fcc0ae9571 GPU: Implement "Crop Mode" (none, overscan, all borders) 2020-02-28 17:01:01 +10:00
Connor McLaughlin
5df7fbd68c Common/Rectangle: Fix typo in assignment operator 2020-02-28 17:00:19 +10:00
Connor McLaughlin
122726fe65 Common/StringUtil: Support compiling on gcc7 2020-02-28 17:00:16 +10:00
Connor McLaughlin
bbdee22ea8 SDL: Move SDLSettingsInterface (ini) to frontend-common 2020-02-28 17:00:14 +10:00
Connor McLaughlin
9ab5212833 FrontendCommon: Make SDL2 dependency optional 2020-02-28 17:00:12 +10:00
Connor McLaughlin
f35970fcac FrontendCommon: Move input binding and some other logic from Qt to common 2020-02-28 17:00:09 +10:00
Connor McLaughlin
ccbe6f0c42 Qt: Don't store floats in settings as QVariant data 2020-02-28 17:00:07 +10:00
Connor McLaughlin
da0059fb21 Common/StringUtil: Add a FromChars std::optional wrapper 2020-02-28 17:00:05 +10:00
Connor McLaughlin
86094b8080 Common/String: Don't copy StaticStrings when not writing 2020-02-28 17:00:02 +10:00
Connor McLaughlin
4fe57e64d7 SDL: Add -gstate parameter to load global state 2020-02-28 17:00:00 +10:00
Connor McLaughlin
992bf7c338 SDL: Add GPU debug device option to settings 2020-02-28 16:59:58 +10:00
Connor McLaughlin
07ba2ecd3d Settings: Simplify resolution scale enumeration 2020-02-28 16:59:55 +10:00
Connor McLaughlin
f21cb25426 HostInterface: Recreate system on GPU debug device toggle too 2020-02-28 16:59:53 +10:00
Connor McLaughlin
82eb14efb1 Core: Apply DPI scaling to debug windows 2020-02-28 16:59:51 +10:00
Connor McLaughlin
ce31c85983 SDL: Support high-dpi displays 2020-02-28 16:59:48 +10:00
Connor McLaughlin
a0a0cd48fa SDL: Reimplement improved fullscreen toggling 2020-02-28 16:59:46 +10:00
Connor McLaughlin
f03de090c4 SDL: Fix setting changes not applying 2020-02-28 16:59:44 +10:00
Connor McLaughlin
4b94224955 SDL: Use RunLater() for menu actions too 2020-02-28 16:59:41 +10:00
Connor McLaughlin
50a155e775 Settings: Default to relative paths for bios/memcards
Prevents from locking to the directory the first time we run.
2020-02-28 16:58:30 +10:00
Connor McLaughlin
509f26ad7e Qt: Add some more default hotkeys (fullscreen/pause/poweroff)
Along with the previous commit, fixes #32
2020-02-26 19:31:12 +10:00
Connor McLaughlin
e4ff8b0936 Qt: Add power off hotkey and confirmation message 2020-02-26 19:26:20 +10:00
Connor McLaughlin
27c9f2d834 Qt: Add a method for the emulation thread to focus the display widget 2020-02-26 19:26:14 +10:00
Connor McLaughlin
e9dea6e0f7 HostInterface: Add a ConfirmMessage() method 2020-02-26 19:25:57 +10:00
Connor McLaughlin
8ffdcf1b7e Qt: Add a way for the emulation thread to request fullscreen state 2020-02-26 19:25:51 +10:00
Connor McLaughlin
460ff24248 Qt: Support SDL audio backend 2020-02-25 23:40:46 +10:00
Connor McLaughlin
223b52736f Qt: Populate audio backend drop-down 2020-02-25 23:40:42 +10:00
Connor McLaughlin
c68d188029 Disable DXGI handling of ALT+ENTER
We manage fullscreen ourselves.
2020-02-24 18:19:20 +09:00
Connor McLaughlin
bfdf343dfe SDL: Move imgui render to display
Fixes crash on renderer switch.
2020-02-23 00:04:30 +09:00
Connor McLaughlin
49c7767ed4 System: Check save state version when loading
Fixes #34.
2020-02-22 17:16:47 +09:00
Connor McLaughlin
959a555274 CDROM: Implement asynchronous disc reading 2020-02-22 00:24:35 +09:00
Connor McLaughlin
7ece901d57 CDImage/CHD: Fix crash when opening invalid/nonexistant file 2020-02-22 00:18:58 +09:00
Connor McLaughlin
1ed8243776 HostInterface: Reset counters when starting from state 2020-02-22 00:18:27 +09:00
Connor McLaughlin
3a0f8bffc5 SDL: Use precompiled D3D11 display shaders 2020-02-20 23:22:37 +09:00