Commit graph

167 commits

Author SHA1 Message Date
Connor McLaughlin 08c8d1a521 System: Support saving screenshots in save states 2020-04-21 02:50:45 +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 277c03aca0 Add auto-generated Git version to window titles 2020-04-17 02:10:56 +10:00
Connor McLaughlin 9c184c5733 SDL: Support loading .psf files 2020-04-17 00:30:19 +10:00
Connor McLaughlin b45b70970b GL/ShaderCache: Support geometry shaders 2020-04-16 21:25:56 +10:00
Connor McLaughlin 193763b4aa SDL: Fix possible crash when parsing key modifiers 2020-04-14 16:41:59 +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 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 4fd5d6ca4f SDL: Fix software renderer image uploads in OpenGL 2020-04-11 18:54:20 +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 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 ebc3aa118c SDL: Fix DXGI intercepting ALT+ENTER 2020-04-11 00:00:15 +10:00
Connor McLaughlin fbfd838e22 GPU: Add pixel aspect ratio option
Can display in 4:3, 16:9, 1:1 ratios.
2020-04-10 15:12:35 +10:00
Connor McLaughlin 3325d2c42c GPU: Add Force NTSC timings option
This option forces NTSC timings for PAL games, causing them to either
run faster (more likely) or smoother (less likely).
2020-04-10 13:35:10 +10:00
Connor McLaughlin e91d760175 HostInterface: Fix crash on startup with controller connected 2020-04-06 12:18:33 +10:00
Connor McLaughlin e7640d5367 HostInterface: Make SetUserDirectory() overridable by frontends 2020-04-05 22:59:06 +10:00
Connor McLaughlin 70ccdcfc30 INISettingsInterface: Make constructor parameter a std::string 2020-04-05 22:57:29 +10:00
Connor McLaughlin 3daa6b469a Build: Explicitly disable spectre mitigations
Mitigations-off gave a roughly 20-25% boost in performance on my laptop
(i7-7700HQ), even with the recompiler.

It seems AppVeyor was building with them enabled. You shouldn't treat an
emulator like a sandbox and run untrusted code in it amyway.
2020-04-01 22:30:19 +10:00
Connor McLaughlin 9933910312 SDL: Add CDROM Enable Region Check option 2020-04-01 14:50:21 +10:00
Connor McLaughlin cbb9b96537 System: Include buffer swap time in frame time measurement 2020-03-24 00:20:56 +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 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 ffb760c79d SDL: Add screenshot to menu 2020-03-16 00:04:16 +10:00
Connor McLaughlin 2bb992a702 HostDisplay: Add texture dumping/saving support 2020-03-16 00:03:49 +10:00
Connor McLaughlin c4af353d54 SDL: Add audio dumping options 2020-03-15 22:04:25 +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 69f03959aa Qt: Implement context menu in game list 2020-03-02 11:08:16 +10:00
Connor McLaughlin 635ab72b37 GPU: Implement "Scaled Dithering" option
Fixes #29.
2020-03-01 00:05:31 +10:00
Connor McLaughlin e1d4c0b9d4 HostDisplay: Fudge texture coordinates for better linear filtering 2020-02-29 00:18:24 +10:00
Connor McLaughlin e8e44991db GPU: Fix display in OpenGL renderer 2020-02-28 22:42:56 +10:00
Connor McLaughlin fcc0ae9571 GPU: Implement "Crop Mode" (none, overscan, all borders) 2020-02-28 17:01:01 +10:00
Connor McLaughlin bbdee22ea8 SDL: Move SDLSettingsInterface (ini) to frontend-common 2020-02-28 17:00:14 +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 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 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 e9dea6e0f7 HostInterface: Add a ConfirmMessage() method 2020-02-26 19:25:57 +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 959a555274 CDROM: Implement asynchronous disc reading 2020-02-22 00:24:35 +09:00
Connor McLaughlin 3a0f8bffc5 SDL: Use precompiled D3D11 display shaders 2020-02-20 23:22:37 +09:00
Connor McLaughlin 961bc09979 SDL: Fix crashes on starting emulation 2020-02-16 00:33:43 +09:00
Connor McLaughlin 9ddb3a8c7a SDL: Use controller interface from frontend-common 2020-02-16 00:15:14 +09:00
Connor McLaughlin 06f4d72631 FrontendCommon: Use SDL_InitSubSystem() for lazy initialization 2020-02-16 00:15:05 +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 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 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 fd8ed08307 Move more logic from frontend to base HostInterface 2020-02-16 00:14:28 +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 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 244302557f SDL: Add missing <cmath> include to sdl_host_interface.cpp 2020-02-15 10:29:46 +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 c820ddba79 HostInterface: Move throttle and perf stats to System class 2020-02-09 22:16:25 +09:00
Stenzek c26b9bc54c System: UpdateCPUExecutionMode -> SetCPUExecutionMode 2020-02-05 17:43:00 +09:00
Connor McLaughlin ec55ab7f5e Build: Rename duckstation to duckstation-sdl 2020-02-03 14:16:59 +10:00