Commit graph

443 commits

Author SHA1 Message Date
Connor McLaughlin ee3aa0dc4d OpenGLHostDisplay: Fix incorrect default for PBO streaming 2021-02-08 00:47:34 +10:00
Connor McLaughlin b20b1a2fa8 OpenGLHostDisplay: Only disable streaming PBO on Adreno
It's slightly faster on Mali.
2021-02-06 20:19:10 +10:00
Connor McLaughlin d416dbb461 FullscreenUI: Ensure fonts are at least one pixel high 2021-02-06 19:21:39 +10:00
Connor McLaughlin c6ed19cc7b OpenGLHostDisplay: Don't use PBOs for software upload on GLES 2021-02-06 19:20:05 +10:00
Connor McLaughlin 701edb335a Various warning fixes 2021-02-06 19:19:55 +10:00
Connor McLaughlin 3c910782ca FullscreenUI: Fix heading line width not being scaled 2021-02-06 19:19:21 +10:00
Connor McLaughlin 105376b1b3 FullscreenUI: Don't draw OSD over windows 2021-02-06 19:18:44 +10:00
Connor McLaughlin d7962fdac7 ImGui: Use safe strcat/scanf on MSVC 2021-02-06 19:16:39 +10:00
C.W. Betts 662d6e9711 Fix possible log formatting errors. 2021-02-04 17:54:51 -07:00
Connor McLaughlin 43d1495a63 OpenGLHostDisplay: Allow filtering to be toggled for GLES2 path 2021-02-05 02:28:03 +10:00
Connor McLaughlin d455b61d5e OpenGLHostDisplay: Fix interlaced software renderer output 2021-02-05 02:16:45 +10:00
Connor McLaughlin 8f9bbb0bba Vulkan: Support VK_KHR_display 2021-02-04 19:25:21 +10:00
Connor McLaughlin fd269ec9dd FullscreenUI: Use format string for TextWrapped() 2021-02-02 04:06:57 +10:00
Connor McLaughlin e0dd45c35e FullscreenUI: Fix game list settings not applying 2021-02-02 01:56:28 +10:00
Connor McLaughlin 1e8752759d NoGUI: Set default settings if missing 2021-02-02 01:47:27 +10:00
Connor McLaughlin c54842830f FullscreenUI: Support modal error/confirmation 2021-02-02 01:40:37 +10:00
Connor McLaughlin 904680f0df Settings: Make integer and linear upscaling mutually exclusive 2021-02-01 18:39:15 +10:00
Connor McLaughlin 91092847f8 CommonHostInterface: Restore display skip on exit/pause
Fixes CPU usage/controller moving too quickly in menus after fast
forwarding in big duck mode.
2021-02-01 02:08:52 +10:00
Connor McLaughlin 1a9120135f FullscreenUI: Fix some advanced setings not saving 2021-02-01 01:13:05 +10:00
Connor McLaughlin 590513350c NoGUI: Start in fullscreen when option or command line flag is set 2021-02-01 01:10:32 +10:00
Connor McLaughlin d1a5b89f0a FullscreenUI: Fix some textures leaking at shutdown 2021-02-01 01:10:32 +10:00
Connor McLaughlin 18405a713c FullscreenUI: Fix debug windows not drawing 2021-02-01 01:10:32 +10:00
Connor McLaughlin c17fb88426 FullscreenUI: Fix controller binding setting instantly 2021-01-31 18:11:56 +10:00
Connor McLaughlin bb2e35b732 FullscreenUI: Load covers on demand 2021-01-31 18:11:56 +10:00
Connor McLaughlin 85b4a02f20 Fix Android build 2021-01-31 17:28:37 +10:00
Connor McLaughlin 61e4e6f140 Add "Fullscreen UI" 2021-01-31 17:10:27 +10:00
Connor McLaughlin 3a7d9f1725 CommonHostInterface: Add controller nav helpers 2021-01-31 17:10:27 +10:00
Connor McLaughlin 41be96ef93 CommonHostInterface: Make RunLater()/ApplySettings() virtual 2021-01-31 17:10:27 +10:00
Connor McLaughlin ec60fa3c9d CommonHostInterface: Make fullscreen/exit functions public 2021-01-31 17:10:27 +10:00
Connor McLaughlin 2dbb3325ff CommonHostInterface: Tweak frame boundary for loading screen 2021-01-31 17:10:27 +10:00
Connor McLaughlin e1bf362d13 CommonHostInterface: Extract ff/turbo hotkeys to functions 2021-01-31 17:10:27 +10:00
Connor McLaughlin bed1abf0b8 CommonHostInterface: Add media path to save state info 2021-01-31 17:10:27 +10:00
Connor McLaughlin 4540a190c1 CommonHostInterface: Make input profile functions public 2021-01-31 17:10:27 +10:00
Connor McLaughlin 556cd6d168 CommonHostInterface: Add enumerator for OSD messages 2021-01-31 17:10:27 +10:00
Connor McLaughlin 48f78a9c41 GameList: Expose search directories list 2021-01-31 17:10:27 +10:00
Connor McLaughlin 98b4101cd7 Settings: Expose Save() method to interface 2021-01-31 17:10:27 +10:00
Connor McLaughlin 7a48bcc585 FrontendCommon: Remove WITH_IMGUI #ifdefs
We never compile FrontendCommon without imgui anyway.
2021-01-31 17:10:27 +10:00
Connor McLaughlin e697d9aa33 HostDisplay: Move imgui context creation to base class 2021-01-31 17:10:27 +10:00
Connor McLaughlin e132cac0e5 ImGui: Clear memory for font after creating texture 2021-01-31 17:10:27 +10:00
Connor McLaughlin d8ea9c2983 GameSettings: Add helper to query number of user settings 2021-01-31 17:10:27 +10:00
Connor McLaughlin 582c77b604 ImGuiStyle: Return the font we create 2021-01-31 17:10:26 +10:00
Connor McLaughlin a563f99191 dep/imgui: Update to 9499afdf5e7f22e2cf4bf7c365d18f7e1d07572b 2021-01-31 17:10:10 +10:00
Connor McLaughlin 5aeabf028b Qt: Install crash handler on startup 2021-01-31 17:00:57 +10:00
Connor McLaughlin 4bb3fb48f9 System: Add a new throttler/pacer which can catch up on lost time
This can result in worse frame pacing, so if you have a decent machine
you'll probably want to turn on "display all frames" in display
settings.

But, it's sadly needed for Android.
2021-01-28 21:04:23 +10:00
Connor McLaughlin 1320e4fdab GameSettings: Fix texture filter setting not loading from ini 2021-01-27 01:21:03 +10:00
Connor McLaughlin a5dfc68ac9 GameSettings: Add runahead as per-game setting 2021-01-26 03:38:32 +10:00
Connor McLaughlin 0d473e8681 ImGui: Fix incorrect buffer binding/crash in GLES2 2021-01-26 03:38:31 +10:00
Connor McLaughlin 8cafe856f0 OpenGLHostDisplay: Work around functions unavailable in GLES2 2021-01-26 03:38:31 +10:00
Connor McLaughlin 24dd49e05d GPU: Fix runahead with MSAA enabled in D3D11/Vulkan 2021-01-26 03:22:23 +10:00
Connor McLaughlin 6eeca57a06 CommonHostInterface: Wrap OSD messages 2021-01-25 01:15:46 +10:00
Connor McLaughlin 516d685dd0 System: Add memory-only save states and rewind 2021-01-25 01:15:45 +10:00
Connor McLaughlin 6c6fdeb15e HostDisplay: Make textures have levels/layers/samples attributes 2021-01-24 20:41:40 +10:00
Connor McLaughlin 4a60cc4c1e VulkanHostDisplay: Ensure previous frame is presented before acquiring image 2021-01-24 17:37:09 +10:00
Connor McLaughlin 6a122623fa GameList: Increment progress on each file, not each load 2021-01-24 17:37:09 +10:00
Connor McLaughlin f61427017d GameList: Remove exe/psf extensions from titles in game list 2021-01-24 17:37:09 +10:00
Connor McLaughlin 76ec38ee47 GameList: Support scanning PSF/MiniPSF files 2021-01-24 17:37:09 +10:00
Connor McLaughlin 41a9231a87 GameList: Use region from exe 2021-01-24 17:37:09 +10:00
Connor McLaughlin cbee8fab66 CommonHostInterface: Throttle rumble updates to changes or every 100ms
These updates appear to be synchronous, and limit how fast we can fast
forward when controllers are connected via bluetooth.
2021-01-19 00:27:34 +10:00
Connor McLaughlin ffa3744b3b Settings: Add 20:9 display aspect ratio 2021-01-14 00:45:46 +10:00
Connor McLaughlin 37f9f118c4 Android: Add 'Open Pause Menu' hotkey 2021-01-13 19:26:24 +10:00
Connor McLaughlin b5ffbfe826 Qt: Fix audio sliders not applying correctly 2021-01-13 02:37:04 +10:00
Connor McLaughlin 16ad54143b HostInterface: Don't sleep when syncing to host refresh 2021-01-12 02:19:23 +10:00
Connor McLaughlin fd166a4485 ShaderCache: Add a data version field
We can increment this to prevent people's shader caches from growing too
large with shader changes.
2021-01-11 15:24:38 +10:00
Connor McLaughlin bc5fb850d4 AudioStream: Reset resampler state on emptying buffers 2021-01-11 03:58:14 +10:00
Connor McLaughlin 43d01776dc HostInterface: Add "Sync To Host Refresh Rate" option 2021-01-11 03:50:44 +10:00
Connor McLaughlin bb572741ae HostDisplay: Add GetHostRefreshRate() function
Only implemented in Windows for now.
2021-01-11 03:50:13 +10:00
Connor McLaughlin 54f5563321 Qt: Add turbo speed setting 2021-01-11 01:57:10 +10:00
Connor McLaughlin a5f9aa11e1 Settings: Add audio resampling when running at non-standard speed 2021-01-11 01:14:32 +10:00
Connor McLaughlin 4fafb34251 CommonHostInterface: Move input map update to frontend
Fixes controller state getting reset when loading input profile.
2021-01-09 14:54:53 +10:00
Connor McLaughlin b0398f5aa7 Qt: Add shutdown without saving menu option 2021-01-09 00:23:02 +10:00
Albert Liu d860c14267 CommonHostInterface: Update rumble every frame regardless of change
Fixes SDL rumble cutting off early when a game sends the same motor
strength values every frame over a long duration.
2021-01-07 18:30:43 -08:00
Connor McLaughlin 419726f4cc Remove libretro core - core will now be maintained by libretro
libretro have agreed to take over maintenance of the core.

Please see their fork at https://github.com/libretro/duckstation if you
wish to continue to use it.
2021-01-08 01:37:59 +10:00
Silent de075fffc3
Register more glyph ranges supported by Roboto
Adds support for Polish, makes Russian use a default font
2021-01-05 18:17:18 +01:00
Connor McLaughlin 0534f36b8d D3D11HostDisplay: Fix incorrect format support check
Was resulting in RGB565 textures trying to be created when unsupported.
2021-01-05 17:47:59 +10:00
Connor McLaughlin c3b0a87029 CommonHostInterface: Move settings filename to start of class 2021-01-05 00:58:32 +10:00
johnnyruz f7b0c0f493
Add cli parameter to override default settings file (#1375)
* Add cli parameter to specify alternate settings file

* fix issue with error message string parameter
2021-01-05 00:46:16 +10:00
Connor McLaughlin f369e3c476 HostDisplay: Fix vram pixels bleeding into edges of display with linear filtering 2021-01-04 03:11:14 +10:00
Connor McLaughlin b3bf9f3f10 GameSettings: Fix compilation with libretro 2021-01-03 19:06:24 +10:00
Connor McLaughlin 4eee5ebdb7 Android: Add per-game settings and properties UI 2021-01-03 18:30:06 +10:00
Connor McLaughlin 6ff73f35bd GameSettings: Add string key accessors 2021-01-03 17:26:51 +10:00
Connor McLaughlin 3ffbbe82e8 SDLControllerInterface: Use SDL_GameControllerRumble where supported
Allows vibration on DualShock 4 without using DS4Windows.
2020-12-31 19:41:51 +10:00
Connor McLaughlin e464a8c332 CommonHostInterface: Disable some hotkeys on Android 2020-12-30 19:42:14 +10:00
Connor McLaughlin 78282d1508 GameSettings: Add downsampling mode 2020-12-30 17:53:51 +10:00
Connor McLaughlin 59e8363075 D3D11: Support mipmaps in wrapper textures 2020-12-30 17:39:40 +10:00
Connor McLaughlin 6bf37f51be Android: Add controller interface class 2020-12-29 22:49:52 +10:00
Connor McLaughlin 0945744f9b FrontendCommon: Add DInput controller interface
Still needs force feedback/vibration support.
2020-12-29 22:49:52 +10:00
Connor McLaughlin a3e4c61a0b CommonHostInterface: Add a method to get top-level window handle 2020-12-29 22:49:52 +10:00
Albert Liu 1c1ca45e4e VulkanHostDisplay: Fix post shader uniform buffer 2020-12-29 01:33:41 -08:00
Connor McLaughlin f181b45760 libretro: Build fix 2020-12-27 02:41:43 +10:00
Connor McLaughlin dc46d52029 FrontendCommon: Remove unnecessary #ifndef LIBRETRO macros
These were only needed because of ancient compilers on the libretro
buildbot, it still compiles fine with these fields on the latest
compilers.
2020-12-27 00:54:53 +10:00
Connor McLaughlin 702ed21207 HostDisplay: Add threaded presentation for Vulkan renderer
Can add a significant speedup for fast forward. Automatically disabled
when vsync is enabled.
2020-12-27 00:54:53 +10:00
Connor McLaughlin 41b803ed2b FrontendCommon: Add a hotkey to reload texture replacements 2020-12-26 00:47:03 +10:00
Michael Forney 7a40a843d4 Common/FileSystem: Fix misspelling of 'separator' 2020-12-26 00:47:02 +10:00
Connor McLaughlin d320d5c830 GameSettings: Add game settings/hotkey for PGXP depth 2020-12-23 01:39:49 +10:00
Connor McLaughlin ca84925ff8 HostDisplay: Support screenshotting 16-bit display formats 2020-12-22 03:24:51 +10:00
Albert Liu 189656cbc4 CommonHostInterface: Fully clear controller section before loading profile 2020-12-22 03:24:51 +10:00
Albert Liu a5f04f2a8e CommonHostInterface: Don't save/load input profile rumble for motorless controller types 2020-12-22 03:24:51 +10:00
Connor McLaughlin b24245dd1d GameList: Bump cache list version
Required due to aspect ratio change.
2020-12-22 02:16:11 +10:00
Connor McLaughlin 81aad196e8 HostInterface: Add -nocontroller CLI option to disable controller interface
Can use with buggy drivers where SDL is causing crashes.
2020-12-19 17:02:01 +10:00
Connor McLaughlin a6a0b660d2 GameList: Bump cache version
This should've happened with the aspect ratio changes.
2020-12-19 02:44:46 +10:00
Connor McLaughlin fa0f177e51 HostInterface: Move PauseSystem from common to base 2020-12-17 11:57:47 +10:00
Albert Liu 62609b5008 GameSettings: Fix build warning 2020-12-12 01:00:34 -08:00
Albert Liu def9a98cb9 GameSettings: Disable analog mode forcing instead of forcing digital controller 2020-12-11 19:50:43 -08:00
Connor McLaughlin 90997d4a8b GameList: Prioritize game title cover image over database title 2020-12-12 12:23:53 +10:00
Connor McLaughlin 6e7f1501b5 SDLAudioStream: Fix volume not applying 2020-12-12 11:50:48 +10:00
Connor McLaughlin eefbd8f6a6 CubebAudioStream: Use cubeb's volume control 2020-12-12 11:50:37 +10:00
Connor McLaughlin 907e0de35a FrontendCommon: Fix volume hotkeys starting at 0% when muted 2020-12-12 11:50:20 +10:00
Connor McLaughlin 98766a490f Log: Change success to verbose and move down in ordering 2020-12-09 01:03:32 +10:00
Connor McLaughlin 678146b907 HostInterface: Add separate volume control for fast forwarding 2020-12-09 01:03:32 +10:00
Silent a4124fdc1b
Another fix for XInput backend 2020-12-07 18:08:48 +01:00
Connor McLaughlin c8f33e340b Revert "CommonHostInterface: Don't use sleep throttle when syncing to audio at standard speed"
This reverts commit 922e17f677.
2020-12-07 02:44:23 +10:00
Connor McLaughlin a511882cb8 D3D11HostDisplay: Add an option to force a blit/discard swap chain 2020-12-06 23:46:23 +10:00
Connor McLaughlin 3ccfc42b0f D3D11HostDisplay: Use shader cache for postprocessing shaders 2020-12-06 23:37:41 +10:00
Connor McLaughlin 737a87b483 CommonHostInterface: Add a hotkey to toggle all cheats 2020-12-06 23:32:32 +10:00
Connor McLaughlin 922e17f677 CommonHostInterface: Don't use sleep throttle when syncing to audio at standard speed 2020-12-06 18:18:18 +10:00
Silent 39768edd74
XInput: Fix mapping triggers to axes 2020-12-04 17:55:01 +01:00
Connor McLaughlin 362905e3df GPU: Add display line offset game setting
Use when games need additional cropping.
2020-12-04 00:33:04 +10:00
Connor McLaughlin c3932e945d GameSettings: Fix PGXP culling disabled message showing when PGXP disabled 2020-11-30 01:15:44 +10:00
Connor McLaughlin eaafd0a00c Cheats: Support parsing built-in database 2020-11-30 01:15:44 +10:00
Connor McLaughlin d1a42df121 GameList: Fix cover image detection based on file title 2020-11-28 02:04:18 +10:00
Connor McLaughlin 16a6c1706e Qt: Fix manual redump database downloading/updating 2020-11-28 00:42:09 +10:00
Connor McLaughlin 3137eb41c4 GameList: Make cover functions const 2020-11-28 00:14:45 +10:00
Connor McLaughlin 263f7b673b GameList: Use shipped redump database/compatibility settings 2020-11-28 00:14:45 +10:00
Connor McLaughlin 5f69216f70 HostInterface: Add OpenPackageFile method 2020-11-28 00:14:45 +10:00
Connor McLaughlin 859f23f4d5 libretro: Add compatibility settings loading 2020-11-28 00:14:44 +10:00
Connor McLaughlin b73fd7a4e8 SDLControllerInterface: Ship game controller db with builds 2020-11-28 00:14:44 +10:00
Albert Liu 32e47fba93 System: Limit maximum loadable save state version 2020-11-26 19:51:45 -08:00
Connor McLaughlin f7a75941b5 GameSettings: Add PGXP tolerance and MSAA 2020-11-27 01:40:50 +10:00
Connor McLaughlin 24fef20485 CommonHostInterface: Compress screenshots in background/use worker thread 2020-11-27 01:40:50 +10:00
Connor McLaughlin df14fa4d75 CommonHostInterface: Fix compatible/old version save states not showing in browser 2020-11-27 01:40:50 +10:00
Connor McLaughlin 7fd22958ae OpenGLHostDisplay: Fix crash in libretro core 2020-11-24 14:54:06 +10:00
Connor McLaughlin 497759b4d6 VulkanHostDisplay: Support 16-bit scanout 2020-11-21 21:12:38 +10:00
Connor McLaughlin cb407263ea XInputControllerInterface: Fix device connected spam 2020-11-21 18:58:27 +10:00
Connor McLaughlin 7f058169b9 OpenGLHostDisplay: Add a GLES2 render path 2020-11-21 18:39:04 +10:00
Connor McLaughlin d3d881aa6b GPU/Software: Reduce number of copies by one, enable 16-bit scanout 2020-11-21 18:39:04 +10:00
Connor McLaughlin 3185c5df0f
Merge pull request #1078 from CookiePLMonster/sdl-joystick-support
Add SDL_Joystick support
2020-11-21 18:37:20 +10:00
Connor McLaughlin e4d2b7331b CommonHostInterface: Add resize window to scale functions 2020-11-19 00:40:02 +10:00
Silent 086f251370
Tidy up SDL controller methods interface 2020-11-15 16:12:39 +01:00
Silent 2880b71b48
Support for SDL Joysticks
This enables use of non-controller peripherals,
such as DirectInput steering wheels or flight sticks
2020-11-15 16:12:39 +01:00
Albert Liu d87ab23fec ControllerInterface: Move axis scaling into AnalogController class 2020-11-11 23:55:23 -08:00
Connor McLaughlin 56ab103559 GameSettings: Fix CD-ROM read speedup incorrectly saved to ini 2020-11-08 00:22:35 +10:00
Connor McLaughlin 3e6bc0e10d Android: Implement disc changing via playlists 2020-11-08 00:22:35 +10:00
Connor McLaughlin 8cb89636eb Android: Empty audio buffers when returning from activity 2020-11-08 00:22:35 +10:00
Connor McLaughlin 2b66492ed8 HostInterface: Add proper turbo speed setting 2020-11-03 22:59:26 +10:00
Connor McLaughlin 2c8a4ff154 HostDisplay: Add an option to decouple display fps from emulator fps
Makes Android so much faster...
2020-11-03 16:17:45 +10:00
Connor McLaughlin d102b2facd Qt: Fix selecting fullscreen mode breaking other backend borderless 2020-11-03 16:17:45 +10:00
Connor McLaughlin 414bc30f24 HostDisplay: Implement exclusive fullscreen for D3D11 renderer 2020-11-02 00:56:05 +10:00
Connor McLaughlin ed0777cd8d OpenGLHostDisplay: Make sure vsync is on at startup 2020-10-31 14:27:58 +10:00
Connor McLaughlin fdb770a596 ImGui: Get rid of serializing GL calls in OpenGL renderer
Gives a 25% performance improvement on NVIDIA.
2020-10-31 14:27:58 +10:00
Connor McLaughlin 2eaebd8921 GPU: Implement support for multisample antialiasing 2020-10-31 14:27:58 +10:00