1129 Commits

Author SHA1 Message Date
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
Connor McLaughlin
784a5c789f Qt: Use precompiled D3D11 display shaders 2020-02-20 23:22:28 +09:00
Connor McLaughlin
4f794b1c37 Add precompiled versions of D3D11 display shaders 2020-02-20 23:21:54 +09:00
Connor McLaughlin
46846a10f6 Common: Simplify D3D shader object creation with helpers 2020-02-19 22:04:21 +09:00
Connor McLaughlin
11b90b2beb Qt: Fix mac build again 2020-02-18 00:31:05 +09:00
Connor McLaughlin
262331504f Qt: Support binding controller axes 2020-02-18 00:06:28 +09:00
Connor McLaughlin
b7dfe06f74 Qt: Support axes in input binding widgets 2020-02-18 00:06:11 +09:00
Connor McLaughlin
149cbf6457 GPU/HW: Properly implement too-large polygon culling
Replaces triangle strips with triangle lists, which has the added bonus
of not requiring flushing as many batches.

Fixes missing geometry in Vagrant Story.
2020-02-17 00:09:45 +09:00
Connor McLaughlin
bbe54df3a8 GPU/HW: Split rectangles on texture page boundaries
Fixes the sky in Ape Escape's menu screen, FF7 menu borders, probably
others.
2020-02-17 00:09:31 +09:00
Connor McLaughlin
bd542831a8 GPU: Fix incorrect bit check in DrawMode::IsUsingPalette()
Fixes Sony Computer Entertainment fade in the NTSC-J BIOS.
2020-02-17 00:09:27 +09:00
Connor McLaughlin
0f7365117b SDLControllerInterface: Add missing include 2020-02-16 00:39:06 +09:00
Connor McLaughlin
961bc09979 SDL: Fix crashes on starting emulation 2020-02-16 00:33:43 +09:00
Connor McLaughlin
208928b6dc Qt: Fix load state menu not refreshing after save 2020-02-16 00:15:18 +09:00
Connor McLaughlin
1e0e802fa4 HostInterface: Add a helper to display a 'Loading Screen' during long startup 2020-02-16 00:15:16 +09:00
Connor McLaughlin
9ddb3a8c7a SDL: Use controller interface from frontend-common 2020-02-16 00:15:14 +09:00
Connor McLaughlin
6456c5d63d Qt: Don't resume when booting without game code 2020-02-16 00:15:11 +09:00
Connor McLaughlin
dcc9da3f5e HostInterface: Don't try to resume system without game code 2020-02-16 00:15:09 +09:00
Connor McLaughlin
06f4d72631 FrontendCommon: Use SDL_InitSubSystem() for lazy initialization 2020-02-16 00:15:05 +09:00
Connor McLaughlin
78a6666439 SDLAudioStream: Don't allow format to change 2020-02-16 00:15:02 +09:00
Connor McLaughlin
e48e6141c8 Qt: Set display window size on context create not constructor
The size isn't known at construction time.
2020-02-16 00:15:00 +09:00
Connor McLaughlin
cd2f6d1f68 HostInterface: Only display error when loading resume state if boot anyway flag isn't set 2020-02-16 00:14:58 +09:00
Connor McLaughlin
6d945439eb Qt: Fix possible crash/race when startup fails 2020-02-16 00:14:56 +09:00
Connor McLaughlin
59cf799491 Qt: Implement controller interface/binding 2020-02-16 00:14:53 +09:00
Connor McLaughlin
6a1206dde7 Frontends: Add option for "Increase Timer Resolution" 2020-02-16 00:14:51 +09:00
Connor McLaughlin
e01cf0dccb Frontends: Implement auto save on exit/resume 2020-02-16 00:14:49 +09:00
Connor McLaughlin
e738b87a25 HostInterface: Add helpers for resume save state 2020-02-16 00:14:47 +09:00
Connor McLaughlin
5f3be68028 HostInterface: Notify host when controller types change 2020-02-16 00:14:44 +09:00
Connor McLaughlin
b0c846388e SDL: Only save settings when changes have been made 2020-02-16 00:14:42 +09:00
Connor McLaughlin
37d765e8d7 HostInterface: Support switching audio backends 2020-02-16 00:14:40 +09:00
Connor McLaughlin
6a0c15b649 HostInterface: Move timer resolution increase to base class 2020-02-16 00:14:37 +09:00
Connor McLaughlin
1e009133ae Rename 'Default' audio backend to 'SDL' 2020-02-16 00:14:35 +09:00
Connor McLaughlin
d17f0a3923 Qt: Implement disc change in QtHostInterface 2020-02-16 00:14:33 +09:00
Connor McLaughlin
e5740a5632 Qt: Pass QStrings by reference in HostInterface 2020-02-16 00:14:30 +09:00
Connor McLaughlin
fd8ed08307 Move more logic from frontend to base HostInterface 2020-02-16 00:14:28 +09:00
Connor McLaughlin
f0578bb932 HostInterface: Make helper methods const 2020-02-16 00:14:25 +09:00
Connor McLaughlin
153eded978 Qt: Use a single column in hotkey binding list 2020-02-16 00:14:23 +09:00
Connor McLaughlin
5c303705ac Qt: Use scroll area for hotkey binding list 2020-02-16 00:14:08 +09:00
Connor McLaughlin
1ce1e016ae Qt: Implement save state menus 2020-02-16 00:14:04 +09:00
Connor McLaughlin
97ea851097 Qt: Narrowing warning fix 2020-02-16 00:14:02 +09:00
Connor McLaughlin
7290e5cad0 HostInterface: Add per-slot save state helper functions 2020-02-16 00:14:00 +09:00
Connor McLaughlin
9148581213 GPU: Narrowing warning fix 2020-02-16 00:13:57 +09:00
Connor McLaughlin
3bafdf88d4 SDL: Fix uninitialized mapping variables 2020-02-16 00:13:55 +09:00
Connor McLaughlin
745c2785b2 Move shared frontend code from SDL to a seperate project 2020-02-16 00:13:53 +09:00
Connor McLaughlin
24bebf7f59 SDL: Add emulation speed slider 2020-02-16 00:13:48 +09:00
Connor McLaughlin
fd2ca2927e Common/FileSystem: Fix recursive directory creation 2020-02-15 23:19:27 +09:00
Connor McLaughlin
befa2a27d8 HostInterface: Fix crash in SetUserDirectory 2020-02-15 23:12:15 +09:00
Connor McLaughlin
b605a84f7d HostInterface: Set user directory for Linux/macOS, portable.txt support 2020-02-15 22:36:16 +09:00
Connor McLaughlin
f5482cb3b6 Don't require OpenGL compatibility profile 2020-02-15 21:11:51 +09:00
Connor McLaughlin
1c17d5495e CMake: Attempting to around SDL2 issues on macOS 2020-02-15 17:40:21 +09:00
Connor McLaughlin
65b5013da0 Qt: Work around indirect include of glext.h by QOpenGLContext on macOS
Hacky, but aside from not using glad I'm not sure what else to do.
2020-02-15 17:23:35 +09:00
Connor McLaughlin
15e49b9f61 Core/TimingEvent: Add missing <string> include 2020-02-15 11:34:57 +09:00
Connor McLaughlin
f0910dc948 Common/FileSystem: Include fix 2020-02-15 11:00:54 +09:00
Connor McLaughlin
f805764fea Common/FileSystem: More OSX fixes.. 2020-02-15 10:50:33 +09:00
Connor McLaughlin
2ac8f7a6ac Common/FileSystem: uint32 -> u32 2020-02-15 10:34:48 +09:00
Connor McLaughlin
244302557f SDL: Add missing <cmath> include to sdl_host_interface.cpp 2020-02-15 10:29:46 +09:00
Connor McLaughlin
8eba4b379c Settings: Default to D3D11 renderer on Windows
This point it's less buggy and slightly more performant.
2020-02-15 10:21:59 +09:00
Connor McLaughlin
4681f9d744 Common/FileSystem: Don't include malloc.h on macOS 2020-02-15 10:12:55 +09:00
Connor McLaughlin
33f3ab4d86 Common/FIFOQueue: Use posix_memalign instead of memalign 2020-02-15 00:08:56 +09:00
Connor McLaughlin
23c8a5588d Add macOS to some Linux/Android-only-isms 2020-02-14 22:58:18 +09:00
Connor McLaughlin
5aba89091e HostInterface: Fix possible crash in BIOS loading 2020-02-14 22:45:54 +09:00
Connor McLaughlin
d7f8884291 Qt: Fix compilation under clang-9
Fixes #23.
2020-02-13 16:54:09 +09:00
Connor McLaughlin
c008a5d523 Display: Fix bleeding from adjacent VRAM columns with linear filtering 2020-02-13 00:19:46 +09:00
Connor McLaughlin
5c7ef65a34 HostInterface: Non-standard speeds are <100% too 2020-02-12 21:27:43 +09:00
Connor McLaughlin
b8210ecbe3 GPU: Use correct texture page size in overlap tracking 2020-02-12 20:58:34 +09:00
Connor McLaughlin
278aa86d14 SPU: Refactor ADSR/implement exponential mode 2020-02-11 23:10:00 +09:00
Connor McLaughlin
e098c83342 HostInterface: Disable vsync/audio sync when running at not-100% speed 2020-02-11 12:03:25 +09:00
Connor McLaughlin
70fe43a3ec System: Implement variable emulation speed 2020-02-11 12:02:42 +09:00
Connor McLaughlin
a81a0c0f21 Qt: Add normalized float values to SettingWidgetBinder 2020-02-10 22:44:00 +09:00
Connor McLaughlin
9ac7b002e2 GPU/HW: Improve dirty rectangle tracking
Fixes title screen of Activision Classics and performance regression
from Vagrant Story motion blur fix.
2020-02-09 22:49:53 +09:00
Connor McLaughlin
2bf6912f39 Qt: Simplify emulation thread loop 2020-02-09 22:16:37 +09:00
Connor McLaughlin
c820ddba79 HostInterface: Move throttle and perf stats to System class 2020-02-09 22:16:25 +09:00
Connor McLaughlin
895cefec60 Qt: Fix core trying to use core OpenGL shaders on OpenGL ES 2020-02-08 21:18:41 +09:00
Connor McLaughlin
1e45c9c4e1 GPU: Fix incorrect overwrite of set mask bit from draw mode
Fixes motion blur in Vagrant Story.
2020-02-08 00:01:37 +09:00
Connor McLaughlin
287ab93cdc GPU: Fix texture bit15 not propogating when blending enabled 2020-02-08 00:01:12 +09:00
Connor McLaughlin
ac5af4658d GPU: Mask bit check should use existing colour not new colour 2020-02-07 00:11:12 +09:00
Connor McLaughlin
a36fe8bfe6 GPU: Keep drawing area invalidated after invalidating shadow VRAM copy
Partially fixes the motion blur in Vagrant Story.
2020-02-07 00:10:58 +09:00
Connor McLaughlin
d1c8775996 Common/Rectangle: Compile fix when using operator= 2020-02-07 00:10:46 +09:00
Connor McLaughlin
7e862cd63e GPU: Texture bit should be ignored when drawing lines
Fixes line flickering in Vagrant Story.
2020-02-07 00:10:36 +09:00
Stenzek
8d9ce82281 Qt: Slightly rework desktop/GLES context creation 2020-02-06 21:02:47 +09:00
Stenzek
8654778298 Qt: OpenGL display window crash fix 2020-02-05 22:47:49 +09:00
Stenzek
e4e15f234b Qt: Fix up debug CPU mode switch menu 2020-02-05 17:43:25 +09:00
Stenzek
057263bda3 HostInterface: Track changes to CPU mode in ApplySettings() 2020-02-05 17:43:15 +09:00
Stenzek
c26b9bc54c System: UpdateCPUExecutionMode -> SetCPUExecutionMode 2020-02-05 17:43:00 +09:00
Stenzek
93f85535eb Qt: Handle creation of ES contexts even when it wasn't specified 2020-02-05 17:42:50 +09:00
Stenzek
edb6d7c97e Qt: Add debug settings to menu 2020-02-04 15:22:56 +09:00
Stenzek
733ab1bca0 Settings: Store debug settings to ini 2020-02-04 15:22:48 +09:00
Stenzek
6718f0442c Qt: Support QActions in SettingsWidgetBinder 2020-02-04 15:22:39 +09:00
Connor McLaughlin
52fd070d3b Build: Compile tinyxml2 as static library instead of dll 2020-02-03 14:22:17 +10:00
Connor McLaughlin
ec55ab7f5e Build: Rename duckstation to duckstation-sdl 2020-02-03 14:16:59 +10:00
Connor McLaughlin
5957df5b5c Update SDL2 to 2.0.10 2020-02-03 13:53:31 +10:00
Connor McLaughlin
4eadc07629 Common/StringUtil: Fix more incorrect usage of va_list 2020-02-03 13:53:17 +10:00
Connor McLaughlin
899a8e0f03 Qt: Add "Use Debug Device" to GPU settings 2020-02-02 00:22:14 +10:00
Connor McLaughlin
96be414e3e Qt: Populate console region drop-down dynamically 2020-02-02 00:22:07 +10:00
Connor McLaughlin
b11a7a106f Common/Log: Fix corrupted output/UB with va_copy
Fixes crashes on GCC9+ (#9), maybe others.
2020-02-01 11:04:46 +10:00
Connor McLaughlin
c72d86cf1b Qt: Hook up CPU execution mode setting 2020-02-01 00:05:20 +10:00
Connor McLaughlin
e11c7190b5 Linux build fix 2020-01-30 20:20:21 +10:00
Connor McLaughlin
070e6c32d6 Frontends: Add .chd files to open filter 2020-01-30 20:06:15 +10:00
Connor McLaughlin
c1c82eb3f3 Common/CDImage: Support CHD format 2020-01-30 20:06:15 +10:00
Connor McLaughlin
18d5086e4c Common/CDImage: Changes to support CHD interfaces 2020-01-30 20:06:15 +10:00
Connor McLaughlin
0b7abf244e Timers: Fix sync mode 3 inverted condition 2020-01-30 16:22:05 +10:00
Connor McLaughlin
88936463d7 GPU: Toggle vblank timer gate for full frame
Regression from event system. Fixes Ridge Racer.
2020-01-30 16:22:05 +10:00
Connor McLaughlin
288b680e07 FileSystem: Add ReplaceExtension() helper 2020-01-30 16:22:05 +10:00
Connor McLaughlin
6624df1e8c Qt: Add CPU settings/emulation speed to console settings 2020-01-29 00:01:44 +10:00
Connor McLaughlin
5272ecd572 Qt: Support binding settings to QSliders 2020-01-29 00:01:35 +10:00
Connor McLaughlin
4c59d8a9ea Linux build fix 2020-01-24 16:44:13 +10:00
Connor McLaughlin
1b9609ef61 Implement event-based scheduler instead of lock-step components 2020-01-24 16:23:39 +10:00
Connor McLaughlin
624888e131 HostInterface: Default BIOS path to bios subdirectory 2020-01-24 14:52:12 +10:00
Connor McLaughlin
faf2308695 Settings: Move set defaults to HostInterface so it can use user paths 2020-01-24 14:52:04 +10:00
Connor McLaughlin
b5e73a0be4 HostInterface: Add helper methods for getting paths to save states/memcards 2020-01-24 14:52:03 +10:00
Connor McLaughlin
a83cad5872 GPU/D3D11: Use shader bytecode cache 2020-01-24 14:52:01 +10:00
Connor McLaughlin
82da9a4505 D3D11: Add a shader bytecode cache class 2020-01-24 14:52:00 +10:00
Connor McLaughlin
2276975d62 Qt: Implement GitHub Repository/Issue Tracker links 2020-01-24 14:51:59 +10:00
Connor McLaughlin
1ed187fd57 Qt: Add hotkey for increasing/decreasing resolution scale 2020-01-24 14:51:57 +10:00
Connor McLaughlin
40799d0f77 HostInterface: Move ModifyResolutionScale() to base class 2020-01-24 14:51:56 +10:00
Connor McLaughlin
8148486a9f Qt: Add hotkey to toggle software rendering 2020-01-24 14:51:55 +10:00
Connor McLaughlin
4a3478b360 HostInterface: Add function to switch between sw/hw rendering 2020-01-24 14:51:53 +10:00
Connor McLaughlin
f2231d6669 HostInterface: Move setting update logic to base class 2020-01-24 14:51:52 +10:00
Connor McLaughlin
82563d94f4 HostInterface: Fix offset OSD messages in Qt frontend 2020-01-24 14:51:38 +10:00
Connor McLaughlin
687772c4da HostDisplay: Move some derived class fields to base class 2020-01-24 14:51:36 +10:00
Connor McLaughlin
736d85b0f3 Qt: Implement display linear filtering 2020-01-24 14:51:34 +10:00
Connor McLaughlin
abf48b6cc2 Qt: Update GPU settings when enhancements are changed 2020-01-24 14:51:33 +10:00
Connor McLaughlin
f05f5aeb2b Qt: Implement browse button for BIOS path 2020-01-24 14:51:31 +10:00
Connor McLaughlin
2694181811 Qt: Hook up HostInterface::Report{Error,Message} 2020-01-24 14:51:30 +10:00
Connor McLaughlin
19cd91a684 Qt: Fix crash on exit when boot fails 2020-01-24 14:51:28 +10:00
Connor McLaughlin
78f984c412 Qt: Add automatic download of redump disc database for game list 2020-01-24 14:51:25 +10:00
Connor McLaughlin
b937275073 Qt: Link with and copy Qt5Network library 2020-01-24 14:51:24 +10:00
Connor McLaughlin
65ae85eb7b Qt: Skeleton for audio settings 2020-01-24 14:51:13 +10:00
Connor McLaughlin
c5faa36f43 GameList: Add function to query whether database exists 2020-01-24 14:51:12 +10:00
Connor McLaughlin
f6fee86f1c HostInterface: Create user directories on startup 2020-01-24 14:51:10 +10:00
Connor McLaughlin
b4c06fdcc6 GameList: Auto set cache/database path from user directory 2020-01-24 14:51:09 +10:00
Connor McLaughlin
feb48899c3 Qt: Don't double-create game list 2020-01-24 14:51:07 +10:00
Connor McLaughlin
77b282862f HostInterface: Move running title info to System 2020-01-24 14:51:05 +10:00
Connor McLaughlin
b3db3a1cc0 HostInterface: Share settings between SDL and Qt frontends 2020-01-24 14:51:03 +10:00
Connor McLaughlin
2c3a0a6af9 HostInterface: Change working directory to user directory at startup 2020-01-24 14:51:02 +10:00
Connor McLaughlin
53428cb55b HostInterface: Add user directory helpers 2020-01-24 14:51:00 +10:00
Connor McLaughlin
7afb79aee6 Common: Add FileSystem::{Get,Set}WorkingDirectory functions 2020-01-24 14:50:58 +10:00
Connor McLaughlin
de4e45a433 Common: Add a function to get the path to the running program 2020-01-24 14:50:57 +10:00
Connor McLaughlin
9456dc5d9b Qt: Power off system correctly when exiting 2020-01-24 14:50:56 +10:00
Connor McLaughlin
069bdd471c Qt: Stub saving resume state when powering off 2020-01-24 14:50:54 +10:00
Connor McLaughlin
0200b9ffc1 Qt: Hook up 'Add Game List Directory' function 2020-01-24 14:50:53 +10:00
Connor McLaughlin
98eb71aa3f Qt: Fix extra margins in pad settings panel 2020-01-24 14:50:52 +10:00
Connor McLaughlin
1cdd4e01fb Qt: Reorder settings categories 2020-01-24 14:50:51 +10:00
Connor McLaughlin
8d4d8e44e4 HostInterface: Saving state message should be OSD not error 2020-01-24 14:50:50 +10:00
Connor McLaughlin
0a5f7fcd75 System: Update running game when media changes from save state 2020-01-24 14:50:48 +10:00
Connor McLaughlin
f2d5ce74df Qt: Fix bug where render window is not focused leaving fullscreen 2020-01-24 14:50:47 +10:00
Connor McLaughlin
20b60e0f01 Qt: Update window title/save states from running title 2020-01-24 14:50:46 +10:00
Connor McLaughlin
82b4229f1b GameList: Move entry to global scope so it can be forward declared 2020-01-24 14:50:44 +10:00
Connor McLaughlin
183928b0f6 Qt: Skeleton of load/save state menus 2020-01-24 14:50:42 +10:00
Connor McLaughlin
1998aa96a4 Qt: Simplify Change Disc menu logic 2020-01-24 14:50:40 +10:00
Connor McLaughlin
69841d0a09 Qt: Move quick CPU/GPU switch to Debug menu 2020-01-24 14:49:54 +10:00
Connor McLaughlin
6737b3ec44 Qt: Drop Settings accessor from HostInterface
This should only be accessed on the emulation thread.
2020-01-24 14:49:53 +10:00
Connor McLaughlin
d343743768 Qt: Safer GPU renderer switching 2020-01-24 14:49:51 +10:00
Connor McLaughlin
c5282b99e1 Qt: Thread-safe QSettings access and updating 2020-01-24 14:49:49 +10:00
Connor McLaughlin
9562cbea56 Frontends: Add frame time performance counters 2020-01-24 14:49:47 +10:00
Connor McLaughlin
67710ca184 Qt: Add a signal when the game list selection is changed 2020-01-24 14:49:46 +10:00
Connor McLaughlin
99af858562 Qt/GameList: Fix incorrect game booting when sorted 2020-01-24 14:49:44 +10:00
Connor McLaughlin
bfef42f4cb GPU: Fix possible driver crash on oversized update/fill 2020-01-23 00:01:05 +10:00
Connor McLaughlin
d2db6bf9c3 Common/Rectangle: Add clamp methods 2020-01-22 23:57:12 +10:00
Connor McLaughlin
a5135ceeb0 GameList: Fix incorrect loading of cache 2020-01-22 17:56:58 +10:00
Connor McLaughlin
a832138191 Settings: Add missing Cubeb entry to audio backend names 2020-01-21 21:27:29 +10:00
Connor McLaughlin
8096dc510d Settings: Add missing load/store of GPU/ForceProgressiveScan 2020-01-21 21:27:21 +10:00
Connor McLaughlin
ed1ac6df4a Frontend: Fix error in swap chain ResizeBuffers() 2020-01-20 17:26:57 +10:00
Connor McLaughlin
b9538a55f5 Settings: Add option for creating a debug GPU device 2020-01-19 14:54:19 +10:00
Connor McLaughlin
8378e5ed0d Frontend: Don't use debug D3D11 device 2020-01-19 12:24:26 +10:00
Connor McLaughlin
46033898ba Frontends: Use DXGI_PRESENT_FLAG_ALLOW_TEARING for presentatation 2020-01-18 18:12:09 +10:00
Connor McLaughlin
159786c3f1 Common/Assert: Fix incorrect windows platform detection 2020-01-17 21:36:31 +10:00
Connor McLaughlin
25004f882e SDL: Fix multiple entries for settings being created in ini 2020-01-16 14:36:31 +10:00
Connor McLaughlin
504510c242 GPU: Fix reading of write-combined GPU buffers
+100fps in recompiler modes
2020-01-16 14:36:10 +10:00
Connor McLaughlin
0861a1e579 Common: Remove unused type declarations 2020-01-13 12:01:39 +10:00
Connor McLaughlin
4de82bda6d Linux build for cubeb 2020-01-12 15:17:15 +10:00
Connor McLaughlin
28efc50a04 Qt: Fix worker thread lockup on shutdown 2020-01-11 14:21:08 +10:00
Connor McLaughlin
1911ab2e1c CubebAudioStream: Initialize COM on Windows if it isn't already initialized 2020-01-11 14:20:51 +10:00
Connor McLaughlin
d52d6252a9 Qt: Remove QAudioOutput-based audio stream 2020-01-11 14:04:58 +10:00
Connor McLaughlin
835bbfaea5 Merge branch 'cubeb' 2020-01-11 13:52:02 +10:00
Connor McLaughlin
8f6ac437ab Frontends: Add cubeb as audio backend option 2020-01-11 13:51:44 +10:00
Connor McLaughlin
9586970a9f AudioStream: Add cubeb implementation 2020-01-11 13:51:41 +10:00
Connor McLaughlin
c6119c210a Revert "DMA: Delay GPU transfers by block count"
This reverts commit 0639f4264f0b9b40d99e0e5ce40f4eda91bc881d.

Breaks FF7's FMVs in the top row. Needs GPU timings.
2020-01-11 13:40:04 +10:00
Connor McLaughlin
3e90d79df7 Pad: Fix log spam 2020-01-11 13:29:30 +10:00
Connor McLaughlin
e68e67f161 SDL: Fix log spam in Release builds 2020-01-11 13:29:22 +10:00
Connor McLaughlin
71c1e243fe Remove YBaseLib dependency 2020-01-10 13:40:53 +10:00
Connor McLaughlin
1c2c4c8489 Qt: Fix emulation thread using 100% CPU when idle 2020-01-10 13:28:13 +10:00
Connor McLaughlin
c52040434a Core: Linux warning fixes 2020-01-09 08:46:52 +10:00
Connor McLaughlin
06d26084fb Frontend: Linux compile fix 2020-01-08 15:06:31 +10:00
Connor McLaughlin
2611e64459 Qt: Implement game list sorting 2020-01-08 15:01:04 +10:00
Connor McLaughlin
64426a0be2 Qt: Fix shutdown-and-restart failing in D3D11 renderer 2020-01-08 14:00:28 +10:00
Connor McLaughlin
25f55690f2 Qt: Add icons for game list entry type (disc/exe) 2020-01-08 13:50:44 +10:00
Connor McLaughlin
ecc8109d43 Qt: Show flags for region instead of text 2020-01-08 13:39:19 +10:00
Connor McLaughlin
9402c7c145 Qt: Fix double-free/crash on shutdown 2020-01-08 13:39:04 +10:00
Connor McLaughlin
048c6835e5 Qt: Don't highlight headings in game list 2020-01-08 13:38:31 +10:00
Connor McLaughlin
c03c1451fe GameList: Support caching entries 2020-01-08 13:37:43 +10:00
Connor McLaughlin
e0086156ca System: Compile fix for Linux 2020-01-08 13:34:21 +10:00
Connor McLaughlin
e7bebb0105 Qt: Support runtime renderer switching 2020-01-07 18:55:36 +10:00
Connor McLaughlin
c6d6b0405f Qt: Don't create imgui.ini 2020-01-07 18:55:26 +10:00
Connor McLaughlin
d32383bd95 Settings: Don't include D3D11 renderer on non-WIN32 platforms 2020-01-07 18:54:39 +10:00
Connor McLaughlin
686df4a203 Qt: Improve imgui hidpi scaling 2020-01-07 18:52:33 +10:00
Connor McLaughlin
168eb5fe2d Qt: Add D3D11 display window implementation 2020-01-07 15:54:44 +10:00
Connor McLaughlin
5076d7dfe8 Qt: Fix handling of display window size in hidpi 2020-01-07 14:27:48 +10:00
Connor McLaughlin
1b7be01507 Qt: Implement audio output 2020-01-07 14:18:51 +10:00
Connor McLaughlin
207c75e6eb Qt: Implement fullscreen 2020-01-06 16:27:39 +10:00
Connor McLaughlin
87889a13e0 Qt: Properly handle modifier keys for input 2020-01-06 15:14:47 +10:00
Connor McLaughlin
6d5eca13a6 Qt: Ignore key repeat events for input 2020-01-06 14:08:15 +10:00
Connor McLaughlin
d61f12cb4e Qt: Set focus to display window when starting 2020-01-06 14:08:00 +10:00
Connor McLaughlin
40e1b7af23 Qt: Initial hotkey implementation 2020-01-05 12:46:03 +10:00
Connor McLaughlin
0590f0935c HostInterface: Fix compile error on Linux 2020-01-04 15:25:15 +10:00
Connor McLaughlin
d88fc20434 Qt: GPU settings tab 2020-01-03 17:51:58 +10:00
Connor McLaughlin
fbf5e7f0e3 Qt: Enable DPI scaling 2020-01-03 17:51:45 +10:00
Connor McLaughlin
bea15c97cd Qt: ImGui support 2020-01-02 19:14:16 +10:00
Connor McLaughlin
9de0bf0aaf HostInterface: Most some imgui logic from SDL to core 2020-01-02 19:14:06 +10:00
Connor McLaughlin
9436ffc806 Qt: Move some functionalty from OpenGLDisplayWindow into QtDisplayWindow 2020-01-02 17:45:25 +10:00
Connor McLaughlin
ac6a7bad3f Qt: Hack for setting swap interval at runtime (currently Windows only) 2020-01-02 16:33:52 +10:00
Connor McLaughlin
b135b32159 Qt: Add config and implementation for basic controller input 2020-01-02 16:13:03 +10:00
Connor McLaughlin
eb7659368e Qt: Add natvis file for Qt data structures 2020-01-02 16:11:22 +10:00
Connor McLaughlin
4b1541087a Controller: Add methods to query buttons/axises for a controller type 2020-01-02 16:10:42 +10:00
Connor McLaughlin
0528a2a1f9 Settings: Put each controller in its own config section 2020-01-02 16:10:30 +10:00
Connor McLaughlin
3bdafa1932 Qt: Fix double-scanning of game list at start 2020-01-01 14:02:45 +10:00
Connor McLaughlin
77a47c87d2 Qt: Hook up console settings 2020-01-01 14:01:58 +10:00
Connor McLaughlin
62e1829ec9 Qt: Fix recursive setting toggle in game list settings 2019-12-31 16:40:24 +10:00
Connor McLaughlin
f3e9c3ec8c Add initial work on Qt frontend 2019-12-31 16:18:30 +10:00
Connor McLaughlin
98214a9327 SettingsInterface: Add support for string list settings 2019-12-31 16:16:47 +10:00
Connor McLaughlin
dbf651e493 CPU/Interpreter: Remove redundant comparison in divu instruction 2019-12-31 11:41:52 +10:00
Connor McLaughlin
0f1f5a4f49 Settings: Define an abstract settings retrieval interface
Can be used by both Android and Qt to access their platform-dependent
formats.
2019-12-30 21:22:49 +10:00
Connor McLaughlin
6176fc4486 NullAudioStream: Provide factory function 2019-12-30 00:45:50 +10:00
Connor McLaughlin
e66214d93e GameList: Fix non-recursive scanning 2019-12-30 00:45:37 +10:00
Connor McLaughlin
0639f4264f DMA: Delay GPU transfers by block count
Needs real GPU timings, but fixes NFS5 in the meantime.
2019-12-29 15:34:07 +10:00
Connor McLaughlin
41cf894488 GPU/HW: Fix readback of odd transfer widths
Fixes character model flailing and crash in FF9.
2019-12-28 15:50:37 +10:00
Connor McLaughlin
d118377c9e CPU/Recompiler: Reduced forced PC flushes 2019-12-28 14:04:15 +10:00
Connor McLaughlin
620284f7d1 CPU/Recompiler/AArch64: Use PC-relative branches to far code 2019-12-27 20:38:07 +10:00
Connor McLaughlin
9f45c67b1d JitCodeBuffer: Fix compilation on AArch64 2019-12-27 20:38:07 +10:00
Connor McLaughlin
29355bc44d CPU/Recompiler: Move branch codegen to base class 2019-12-27 20:38:07 +10:00
Connor McLaughlin
aabe5b9287 CPU/Recompiler: Add GetCurrentCodePointer() 2019-12-27 20:38:07 +10:00
Connor McLaughlin
390b6da0b8 CPU/Recompiler: Add unconditional EmitBranch 2019-12-27 20:38:07 +10:00
Connor McLaughlin
4f2c1e1a6b CPU/Recompiler: Add EmitBindLabel and EmitBranchIfBitClear 2019-12-27 20:38:07 +10:00
Connor McLaughlin
03a36645a2 Settings: Save fullscreen setting to ini 2019-12-27 20:38:07 +10:00
Connor McLaughlin
5bb2b3ec63 Frontend: Add audio backend to settings (switch-while-running) 2019-12-27 20:38:07 +10:00
Connor McLaughlin
0eab6435fe Frontend: Use configured audio backend when creating stream 2019-12-27 20:38:07 +10:00
Connor McLaughlin
16317d077e Settings: Add audio backend, move sync settings to Display/Audio 2019-12-27 20:38:07 +10:00
Connor McLaughlin
ed7aabe5f2 Common: Add a NullAudioStream implementation 2019-12-23 17:02:11 +10:00
Connor McLaughlin
c8d3b2c546 GPU/Software: Use templates for render functions 2019-12-22 19:34:24 +10:00
Connor McLaughlin
a1b52980e2 GPU: Implement line renderering in software renderer 2019-12-22 18:53:20 +10:00
Connor McLaughlin
ad93d83421 JitCodeBuffer: Don't leak code space on Windows 2019-12-21 22:09:08 +10:00
Connor McLaughlin
decf416aee JitCodeBuffer: Expose FlushInstructionCache() to callers 2019-12-20 21:55:25 +10:00
Connor McLaughlin
1de096224c JitCodeBuffer: Fix far code pointer not being initialized without reset 2019-12-20 21:55:21 +10:00
Connor McLaughlin
ad21f48a67 Fix Android build after controller changes 2019-12-16 16:46:43 +10:00
Connor McLaughlin
52c82b6aa3 Pad: Change controller types when loading states if needed 2019-12-16 00:05:48 +10:00
Connor McLaughlin
0df741a799 Frontend: Disable controller input for navigating UI
It seems to interfere too much with normal gameplay.
2019-12-16 00:05:33 +10:00
Connor McLaughlin
6f7154fbef Frontend: Rumble support 2019-12-15 23:24:34 +10:00
Connor McLaughlin
cbcb9b02b0 AnalogController: Rumble support 2019-12-15 23:22:53 +10:00
Connor McLaughlin
1d2bd11b02 Frontend: Add controller settings 2019-12-15 22:24:27 +10:00
Connor McLaughlin
a347b3606e Implement support for analog controllers 2019-12-15 21:58:27 +10:00
Connor McLaughlin
e4595992a5 Frontend: Fix crash in controller input 2019-12-15 21:58:10 +10:00
Connor McLaughlin
6e18e56089 Controller: Support general axis input events 2019-12-15 00:32:55 +10:00
Connor McLaughlin
32d8b4dc84 Frontend: Dynamic button mapping based on controller type 2019-12-15 00:17:43 +10:00
Connor McLaughlin
c65279f944 System: Create controllers dynamically based on config 2019-12-14 23:29:26 +10:00
Connor McLaughlin
ea0845d5ad Move controller creation to System class, switch shared_ptr to unique_ptr 2019-12-14 23:20:24 +10:00
Connor McLaughlin
5fd421860a GameList: Support detecting region from system area of CDROM
More accurate than basing it off the code, and better support for
homebrew discs.
2019-12-13 16:51:40 +10:00
Connor McLaughlin
f77721b84d CPU/Recompiler: Fix "jalr t0, t0" and like instructions (mainly AArch64) 2019-12-13 14:36:41 +10:00
Connor McLaughlin
5e5b1b64db CPU/Recompiler: Incorporate latest work into AArch64 backend 2019-12-13 01:25:05 +10:00
Connor McLaughlin
44c76f3bf3 CPU/Recompiler: Support three-operand basic operations
e.g. add r1, r2, r3. This eliminates the extra move on ARM.
2019-12-13 00:51:41 +10:00
Connor McLaughlin
41298a74e1 CPU/Recompiler: Fetch instruction before dispatching interrupts
Fixes polygon glitches in Crash.
2019-12-12 23:55:42 +10:00
Connor McLaughlin
aa52dbfeb8 CPU/Recompiler: Use register cache for managing pc
Reduces the number of loadstores after each instruction.
2019-12-12 23:55:23 +10:00
Connor McLaughlin
002d1cd4fd CPU/CoreCache: Use virtual (unmasked) address as PC 2019-12-12 20:23:53 +10:00
Connor McLaughlin
a267451614 CPU/Recompiler: Remove unused code 2019-12-12 20:17:52 +10:00
Connor McLaughlin
20c7aaf74b CPU/Recompiler: Support pushing/popping the register cache state 2019-12-12 20:15:54 +10:00
Connor McLaughlin
1905d22a9a CPU/Recompiler/AArch64: Fix potential stack corruption in function calls 2019-12-12 02:38:03 +10:00
Connor McLaughlin
18066239b7 CPU/Recompiler: Fix bad codegen on slti where rd==rs 2019-12-12 00:00:48 +10:00
Connor McLaughlin
aafac96f34 CPU/Recompiler: Linux/Android compile fix 2019-12-11 22:54:22 +10:00
Connor McLaughlin
37933e9678 CPU/Recompiler: Read GTE registers directly from struct 2019-12-11 22:33:54 +10:00
Connor McLaughlin
b0eb8074f5 CPU/Recompiler: Implement lwc2/swc2 2019-12-11 22:04:11 +10:00
Connor McLaughlin
a5afb250ea CPU/Recompiler: Don't require fallback for GTE instructions 2019-12-11 21:54:08 +10:00
Connor McLaughlin
a6dab97928 CPU: Simplify GTE register addressing 2019-12-11 21:44:26 +10:00
Connor McLaughlin
4e7d420a06 CPU/Recompiler: Implement mfc0/mtc0/rfe 2019-12-11 20:50:55 +10:00
Connor McLaughlin
f5d65448d6 GPU: Improve structure alignment 2019-12-11 20:28:14 +10:00
Connor McLaughlin
8f624afb59 GPU: Fix handling of GP1(09h) 2019-12-11 16:47:49 +10:00
Connor McLaughlin
ffe90083d3 GPU: Refactor draw mode setting 2019-12-11 16:35:14 +10:00
Connor McLaughlin
cda2394287 System: Fix loading of EXEs with sp=0 (leave unchanged) 2019-12-11 16:34:56 +10:00
Connor McLaughlin
bf44f72169 Frontend: Remove unused texture for icon 2019-12-11 00:06:44 +10:00
Connor McLaughlin
6f78fea159 GL: Improve error handling with texture creation 2019-12-11 00:02:12 +10:00
Connor McLaughlin
05e6d4c401 GPU/OpenGL: Clean up VAOs at shutdown time
These were leaking before.
2019-12-10 23:37:01 +10:00
Connor McLaughlin
152b56c8cc GPU: Fix mask bit setting on non-textured polygons
Fixes garbled colours in FMVs in some games.
2019-12-10 23:27:41 +10:00
Connor McLaughlin
0d293c4be4 Settings: Disable fast boot and TTY output by default
The latter can cause crashes in some games.
2019-12-10 23:06:45 +10:00
Connor McLaughlin
56b87f33c0 Controller: Linux build fix 2019-12-10 23:05:19 +10:00
Connor McLaughlin
df6e079920 GPU: Add a Force Progressive Scan option (disable interlacing) 2019-12-10 22:52:46 +10:00
Connor McLaughlin
fb0aad0917 System: Include SIO in save state 2019-12-10 00:28:58 +10:00
Connor McLaughlin
89e9373037 Controller: Add a set-button interface in base class 2019-12-09 01:06:58 +10:00
Connor McLaughlin
da14b10e72 Split MemoryCard and PadDevice (now Controller) 2019-12-09 00:52:00 +10:00
Connor McLaughlin
c1710482df Pad: Add button name -> code lookup functions 2019-12-09 00:46:04 +10:00
Connor McLaughlin
8930383c96 GPU: Use start address in computation of drawing_even_line 2019-12-08 00:40:52 +10:00
Connor McLaughlin
42ee55ae17 CDROM: Seek to start of first track on stop
Fixes WipEout crashing after track selection.
2019-12-07 21:09:30 +10:00
Connor McLaughlin
315f2b701a Stub out SIO controller
Fixes WipEout booting.
2019-12-07 21:09:04 +10:00
Connor McLaughlin
67c67bbb66 GPU: Add basic texture filtering support
Still has issues around the edges of text.
2019-12-07 17:03:56 +10:00
Connor McLaughlin
c284d3835f GPU: Add a simplified OpenGL ES renderer
Seems this is the only way to get semi-decent performance out of Mali
drivers :/
2019-12-07 01:37:37 +10:00
Connor McLaughlin
b53e32e84f GL/Program: Add IsBound() method 2019-12-07 01:36:14 +10:00
Connor McLaughlin
8d7b93766d MemoryCard: Fix incorrect checksum after formatting
Fixes memory cards not working in the BIOS.
2019-12-07 00:03:05 +10:00
Connor McLaughlin
54277dc24f Pad: Update status after ACK 2019-12-07 00:02:47 +10:00
Connor McLaughlin
c1e9617c77 Frontend: Disable KHR_debug for speed 2019-12-06 21:57:24 +10:00
Connor McLaughlin
36fbc4523d CDROM: Skip reading sectors which have an invalid SubQ checksum
i.e. libcrypt support
2019-12-06 21:15:04 +10:00
Connor McLaughlin
bc44d4b1b0 CDImage: Support SBI replacement subchannel Q for cue/bin images 2019-12-06 21:14:58 +10:00
Connor McLaughlin
53621bd3eb CDROM: Fix clipping when combined left/volume volume > 0x80 2019-12-06 00:33:46 +10:00
Connor McLaughlin
d41a76ac5e CDImage: Fix incorrect file offset being used for pregap 2019-12-06 00:33:21 +10:00
Connor McLaughlin
4798f35e40 Pad: Delay ACK after receiving byte
The controller routines in the BIOS seem to depend on this, if they
happen at the same time depending on what part of the code it was in,
it'll assume no controller is connected.
2019-12-05 23:03:56 +10:00
Connor McLaughlin
9fa8eb239e CPU: Force-inline some accessor functions 2019-12-05 23:02:03 +10:00
Connor McLaughlin
8b9d44f4dc System: Use game code for automatic region detection 2019-12-05 17:09:10 +10:00
Connor McLaughlin
eeea5125f7 CPU: Use pending ticks as downcount comparison
Saves a few cycles decrementing the downcount.
2019-12-05 16:28:46 +10:00
Connor McLaughlin
0171dc4241 CPU/Recompiler: Prevent vixl from using scratch registers
This took too long to find that it was trashing one of our register
cache values. Let it abort instead, until we use the base assembler
instead of the macro assembler.
2019-12-05 02:03:01 +10:00
Connor McLaughlin
914abe64c1 CPU/Recompiler: Extend sign for add/sub/cmp immediates in AArch64 2019-12-05 02:02:23 +10:00
Connor McLaughlin
8c33163ef1 Android: Add type to game list (disc/psexe) 2019-12-04 21:54:14 +10:00
Connor McLaughlin
dec475db62 GameList: Support homebrew/psexe files 2019-12-04 21:12:50 +10:00
Connor McLaughlin
2c645d9e93 JitCodeBuffer: Use __builtin___clear_cache instead of __clear_cache
The former exists on Android.
2019-12-04 20:33:02 +10:00
Connor McLaughlin
baaa94d4c1 CPU/Recompiler: Instruction parity between x64 and AArch64 2019-12-04 19:52:56 +10:00
Connor McLaughlin
f49216f5f8 CPU/Recompiler: Implement most instructions for AArch64 2019-12-04 01:50:59 +10:00
Connor McLaughlin
e518cbfffb CPU/Recompiler: Fallback-all-instructions working in AArch64 2019-12-03 20:45:14 +10:00
Connor McLaughlin
98e67616ec JitCodeBuffer: Flush cache after committing code on ARM CPUs
ARM's instruction and data caches are not coherent, so we need to flush
before executing to ensure there's no stale data left over.
2019-12-03 20:21:32 +10:00
Connor McLaughlin
bbe1cb5fe9 CPU: Preparations for AArch64 recompiler 2019-12-03 01:31:49 +10:00
Connor McLaughlin
efb8033d48 HostInterface: Fix for gcc < 8 2019-12-03 01:29:26 +10:00
Connor McLaughlin
45fc19fd05 GPU: Only latch texpage/mode on polygon/set draw mode
Driver seems to draw an off-screen polygon to set up the parameters,
instead of the set draw mode command.

Fixes broken sprites in Driver/Driver 2.
2019-12-02 17:04:26 +10:00
Connor McLaughlin
a3f2286bdb CDROM: Hack to set subq position before seek instead of after
I assume this should be set throughout the seek to the current disc
position, but since we're only updating at the end of the seek, this'll
do.

Fixes music looping in Spyro.
2019-12-02 17:02:59 +10:00
Connor McLaughlin
adc3a2fac1 Android: Support GLES3 and hardware renderers 2019-12-01 21:57:27 +10:00
Connor McLaughlin
299ee05cd9 HostInterface: Move OSD messages to base class 2019-12-01 21:33:56 +10:00
Connor McLaughlin
0a6b913536 HostInterface: Move performance counters to base class 2019-12-01 21:29:09 +10:00
Connor McLaughlin
abfa531648 GameList: Add disc size 2019-12-01 19:52:00 +10:00
Connor McLaughlin
ea52b9e8aa GameList: Support parsing Redump.org dat files 2019-12-01 19:52:00 +10:00
Connor McLaughlin
04c70b3118 Add initial game list class implementation 2019-11-29 23:46:11 +10:00
Connor McLaughlin
3b11d936df Common: Add a basic ISO reader class 2019-11-29 23:36:25 +10:00
Connor McLaughlin
ea0b13a05c More changes to accomodate Android - imgui/host display 2019-11-28 23:32:57 +10:00
Connor McLaughlin
f11d357ab9 Compile fixes for Android 2019-11-28 01:55:33 +10:00
Connor McLaughlin
457743e109 Common/CDImage: Fix double increment of sectors_read 2019-11-28 01:55:09 +10:00
Connor McLaughlin
aec01d3890 Bus: Reduce RAM write delay 2019-11-27 00:01:47 +10:00
Connor McLaughlin
519dbc818d CPU/CodeCache: Fix DMA writes not invalidating code blocks
Fixes Crash Team Racing and Spyro in Cached Interpreter/Recompiler
modes.
2019-11-26 19:45:38 +10:00
Connor McLaughlin
771a151567 GPU/OpenGL: Use CopyImageSubData for VRAM copies
Not correct with regard to the mask bit handling, but better than
blitting.
2019-11-25 00:27:23 +10:00
Connor McLaughlin
22e8b6b0a7 System: Fall back to software when D3D11 selected on Linux 2019-11-25 00:24:22 +10:00
Connor McLaughlin
0bc7333e6e GPU/OpenGL: Set GLSL version string dynamically
Rather than hardcoding to 3.3.
2019-11-25 00:17:17 +10:00
Connor McLaughlin
db0d11c2ff GPU/HW: Cull primitives larger than 1024x512 2019-11-24 23:46:33 +10:00