Commit graph

1326 commits

Author SHA1 Message Date
Connor McLaughlin b6f871d2b9
JIT optimizations and refactoring (#675)
* CPU/Recompiler: Use rel32 call where possible for no-args

* JitCodeBuffer: Support using preallocated buffer

* CPU/Recompiler/AArch64: Use bl instead of blr for short branches

* CPU/CodeCache: Allocate recompiler buffer in program space

This means we don't need 64-bit moves for every call out of the
recompiler.

* GTE: Don't store as u16 and load as u32

* CPU/Recompiler: Add methods to emit global load/stores

* GTE: Convert class to namespace

* CPU/Recompiler: Call GTE functions directly

* Settings: Turn into a global variable

* GPU: Replace local pointers with global

* InterruptController: Turn into a global pointer

* System: Replace local pointers with global

* Timers: Turn into a global instance

* DMA: Turn into a global instance

* SPU: Turn into a global instance

* CDROM: Turn into a global instance

* MDEC: Turn into a global instance

* Pad: Turn into a global instance

* SIO: Turn into a global instance

* CDROM: Move audio FIFO to the heap

* CPU/Recompiler: Drop ASMFunctions

No longer needed since we have code in the same 4GB window.

* CPUCodeCache: Turn class into namespace

* Bus: Local pointer -> global pointers

* CPU: Turn class into namespace

* Bus: Turn into namespace

* GTE: Store registers in CPU state struct

Allows relative addressing on ARM.

* CPU/Recompiler: Align code storage to page size

* CPU/Recompiler: Fix relative branches on A64

* HostInterface: Local references to global

* System: Turn into a namespace, move events out

* Add guard pages

* Android: Fix build
2020-07-31 17:09:18 +10:00
Connor McLaughlin f443691ad0 Qt: Fix deprecreated errors with 5.15 2020-07-31 03:40:51 +10:00
Connor McLaughlin fb85e2b441 Qt: Update Portuguese (Br) translation 2020-07-31 03:32:48 +10:00
Connor McLaughlin 167169a03b Qt: Update Portuguese translation 2020-07-30 00:49:32 +10:00
Connor McLaughlin 77481f5b23 Qt: Add context menu and open directory to game directory list 2020-07-29 02:51:52 +10:00
Connor McLaughlin 8956fc27ce Qt: Make about dialog more translation-friendly 2020-07-29 02:38:04 +10:00
Connor McLaughlin 982c428074 Qt: Improve auto-sizing for settings dialog 2020-07-29 02:38:04 +10:00
Connor McLaughlin bc6f6d1a6d Qt: Display Portuguese language as Portuguese (Br) 2020-07-29 02:38:04 +10:00
Connor McLaughlin f82e64a60c Qt/Settings: Add recommended resolution to scale
Apparently the framebuffer/VRAM dimensions were too confusing.
2020-07-28 20:33:09 +10:00
Connor McLaughlin b894b882ed Qt/Settings: Add help for GPU adapter 2020-07-28 20:33:09 +10:00
Connor McLaughlin 20ff075c3f Qt: Mark individual setting help as translatable 2020-07-28 20:33:09 +10:00
Connor McLaughlin e187597dec Qt: Make settings main help text translatable 2020-07-28 20:33:09 +10:00
Connor McLaughlin 27f62723c7 Qt: Make gmae list headings translatable 2020-07-28 20:33:09 +10:00
Connor McLaughlin 79c8b9f52c Qt: Add Portuguese translation 2020-07-28 20:33:09 +10:00
Connor McLaughlin 3edb255eca Qt: Add translation support and language setting 2020-07-28 19:14:44 +10:00
Connor McLaughlin 5a955a4fdc Qt: Fix audio volume/mute being lost when restarting emulation 2020-07-24 02:55:00 +10:00
Connor McLaughlin e30c0a6881 Qt: Don't allow booting when changing disc from game list 2020-07-24 02:40:46 +10:00
Albert Liu bf597aab44 Settings: Specify GPU resolution scale as VRAM size 2020-07-23 01:03:18 -07:00
Albert Liu e782b678b6 Qt/GPUSettings: Update aspect ratio help text 2020-07-22 12:08:01 -07:00
Connor McLaughlin 961afdf765 Qt: Ignore resume states when "Save state on exit" is unchecked 2020-07-23 02:44:06 +10:00
Connor McLaughlin 6c162eb3c5 Qt: Support binding multiple buttons/axis to controllers 2020-07-23 02:35:15 +10:00
Albert Liu 855fc9a31c CommonHostInterface: Prevent some potential null pointer dereferences 2020-07-21 17:14:11 -07:00
Connor McLaughlin 9496c992f7 System: Add an option to preload CD image to RAM 2020-07-22 00:03:22 +10:00
Connor McLaughlin b2595a3b3b Qt: Fix volume slider slowing down emulation 2020-07-21 20:10:17 +10:00
Connor McLaughlin 2fb00faa67 Qt: Delay settings save by one second 2020-07-21 20:10:11 +10:00
Connor McLaughlin 68d98af497 Qt: Remove usage of QString where possible for settings 2020-07-21 20:10:06 +10:00
Connor McLaughlin bddd098a66
Merge branch 'master' into qt-inisettings 2020-07-21 13:28:18 +10:00
Connor McLaughlin f67862de5f
Merge pull request #622 from ggrtk/qt-gamelistsettings
Qt/GameListSettings: Use native path separators
2020-07-19 12:58:00 +10:00
Elizabeth 39917117d2
Disable Interlacing description "Unchecked"
As noted by Kurayami6, Disable Interlacing should show "Unchecked" as the default option for this enhancement.
2020-07-18 13:21:13 -04:00
Albert Liu 2853bf851a Qt/GameListSettings: Use native path separators
Fixes possible duplicate game list entries on Windows.
2020-07-17 18:43:30 -07:00
Connor McLaughlin 1069e12bff Qt: Add binding how-to text to hotkey page 2020-07-18 01:33:51 +10:00
Connor McLaughlin 389f452e10 Qt/GameListSettings: Use push button for all buttons 2020-07-18 01:33:36 +10:00
Connor McLaughlin 5c5ee17fa7 Qt: Fix widescreen hack option positioning 2020-07-18 01:28:35 +10:00
Connor McLaughlin 1e6740762d Qt: Add widescreen hack option 2020-07-18 00:28:37 +10:00
Albert Liu a92fd98d7f Qt/GameListSettings: Fix QToolButtons staying highlighted after use 2020-07-17 03:50:02 -07:00
Albert Liu 97be6c922c Fix MSVC build 2020-07-16 20:35:49 -07:00
Albert Liu 4e2b3189b0 Qt: Replace QtSettingsInterface with INISettingsInterface 2020-07-16 20:35:49 -07:00
Albert Liu 9d6325f828 QtHostInterface: Fix compiler warning 2020-07-16 20:32:42 -07:00
Connor McLaughlin 1ed57a9fdf Qt: Hook up mouse events to ImGui 2020-07-13 02:39:59 +10:00
Connor McLaughlin a5fe740e30 Fix a bunch of compiler warnings 2020-07-09 13:30:16 +10:00
Connor McLaughlin 97a946bd62 CommonHostInterface: Implement frame step hotkey 2020-07-08 02:05:36 +10:00
Connor McLaughlin 5274fa32ac Qt: Pump events on main thread when waiting for init 2020-07-06 02:47:33 +10:00
Connor McLaughlin f396a2c373 Renderers: Make shader cache path a prefix instead of directory 2020-07-04 22:14:07 +10:00
Connor McLaughlin b3359dadc9 Qt: Save original style name for restoring after theme switch 2020-07-04 15:54:26 +10:00
Connor McLaughlin b471d1043a Settings: Load Memory Cards From State -> Load Devices From State
Makes it apply to controllers too.
2020-07-02 00:50:53 +10:00
Connor McLaughlin bf08385051 WindowInfo: Add surface_scale field 2020-07-01 01:57:25 +10:00
Connor McLaughlin 78cf890c6c Qt: Hook up per-controller-type-settings to UI 2020-07-01 00:56:46 +10:00
Connor McLaughlin bcc6d5d53d Qt: Support float settings in setting widget binder 2020-07-01 00:56:46 +10:00
Connor McLaughlin 0b11a14e24 Qt: Better handling of default settings not in ini 2020-07-01 00:56:46 +10:00
Connor McLaughlin 4dc9e10777 HostInterface: Support per-controller-type settings 2020-07-01 00:56:46 +10:00
Connor McLaughlin 2a38090e7a HostDisplay: Move most backend logic to FrontendCommon 2020-06-30 03:03:56 +10:00
Albert Liu 788a9a6768 Qt: Reset palette and style when selecting default theme
Fixes palette and style getting stuck when switching to default theme
after having used dark fusion theme earlier in the same session.
2020-06-24 16:08:36 -07:00
Connor McLaughlin 55a2c73097 Qt: Add Dark Fusion theme 2020-06-25 01:33:00 +10:00
Connor McLaughlin a6d976240a Qt: Add theme selection and dark theme 2020-06-25 01:33:00 +10:00
Connor McLaughlin 82a0ad8a10 Qt/Settings: Make GPU adapter more sensible
Add a default entry, rather than leaving it blank.
2020-06-22 15:57:43 +10:00
Connor McLaughlin 4d827e23c5 Qt: Add GPU/adapter selection to settings 2020-06-20 03:34:19 +10:00
Connor McLaughlin 77291096db Settings: Add GPU adapter option and hook up to D3D11/Vulkan 2020-06-20 03:34:19 +10:00
Connor McLaughlin 85edbce3ca Qt: Use FrontendCommon D3D11 host display wrapper 2020-06-20 03:34:19 +10:00
Connor McLaughlin 49a9f01327 Qt: Support Vulkan 2020-06-19 00:18:53 +10:00
Albert Liu d005025f8f Qt/AdvancedSettings: Fix swapped widget bindings 2020-06-17 12:34:41 -07:00
Connor McLaughlin 7aa71529d6
Merge pull request #551 from ggrtk/advanced-settings
Qt: Connect tweak/hack settings to Qt frontend
2020-06-18 03:12:13 +10:00
Connor McLaughlin 0e3fdebb11 Qt: Don't set native window to GL surface
Might be related to the GLX crashes some people are experiencing...
2020-06-18 03:10:33 +10:00
Albert Liu b7d9ce98e8 Qt: Connect tweak/hack settings to Qt frontend 2020-06-16 09:53:18 -07:00
Connor McLaughlin b141042952
Merge pull request #549 from ggrtk/qt-rebind-all
Qt: Simplify Rebind All behavior
2020-06-15 13:26:48 +10:00
Albert Liu 1b9dbc1a0b Qt: Add help text note about binding rumble 2020-06-14 16:29:25 -07:00
Albert Liu fd4e41bc7d Qt: Simplify Rebind All behavior 2020-06-14 16:06:29 -07:00
Connor McLaughlin 41d66f5c73 Qt: Add icon to executable 2020-06-15 03:29:35 +10:00
Connor McLaughlin 0dfb9f7d90
Merge pull request #548 from ggrtk/qt-aboutdialog
Qt: Add about dialog
2020-06-12 18:50:06 +10:00
Albert Liu 4f07e30dc0 Qt: Fix broken font in about dialog on Windows 2020-06-11 10:14:27 -07:00
Albert Liu aeead1b0a6 Fix MSVC build 2020-06-11 10:09:02 -07:00
Connor McLaughlin 8d2c7db224 Qt: Source input profiles from program and user directory
This way Linux users as well as Windows users who use the Documents
user directory can use the shipped input profiles.
2020-06-12 02:47:40 +10:00
Albert Liu da9188a771 Qt: Fix broken links in about dialog 2020-06-11 09:36:14 -07:00
Albert Liu 4c29b6f30c Qt: Add about dialog 2020-06-11 09:26:04 -07:00
Connor McLaughlin 2504d187d3 Qt: Add separate menu items for rescan all/scan for new games 2020-06-12 01:49:17 +10:00
Connor McLaughlin f5fd37c4c4 Qt: Fix compatibility column not showing by default 2020-06-09 02:41:24 +10:00
Connor McLaughlin 075380f8e0 Move most helper logic from base HostInterface to FrontendCommon 2020-06-09 02:35:37 +10:00
Connor McLaughlin 29d918dbb0 Qt/GameProperties: Implement hash calculation 2020-06-08 01:19:54 +10:00
Connor McLaughlin bc9246b444 Qt: Add inline help to audio settings 2020-06-07 01:30:05 +10:00
Connor McLaughlin 531c3ad5fa AudioStream: Replace buffer queue with ring buffer
Should achieve a decent overall minimum latency reduction.
2020-06-07 01:22:03 +10:00
Connor McLaughlin 6acd8b27dd Qt: Prevent lag disabling power on buttons when starting 2020-06-06 03:44:57 +10:00
Connor McLaughlin de8aef4f44 Qt: Fix pause button repeatedly triggering sometimes 2020-05-31 02:41:31 +10:00
Connor McLaughlin 51c75554e6 Qt: Fix overlapping options in general settings 2020-05-27 02:13:04 +10:00
Connor McLaughlin 81a7b147fc System: Add option to disable loading memory cards from save states 2020-05-27 02:06:56 +10:00
Connor McLaughlin 2156236f52 Frontends: Use common GL context wrapper 2020-05-25 15:02:44 +10:00
Connor McLaughlin 9f22684cea Qt: Combine resume and power off toolbar buttons 2020-05-23 15:03:15 +10:00
Connor McLaughlin e6d52ce6de Qt: Add Resume button 2020-05-23 15:03:00 +10:00
Connor McLaughlin e24e4c20e1 Qt: Fix pause button getting locked on after restarting game 2020-05-23 15:01:36 +10:00
Connor McLaughlin dfe0dcb56c Qt: Split memory card/controller config, make bindings scroll 2020-05-20 23:26:26 +10:00
Connor McLaughlin e7778ea86e Qt: Move OpenURL to QtUtils namespace 2020-05-20 23:25:16 +10:00
Connor McLaughlin c8a00c58eb Qt: Add Remove Disc option to change disc menu 2020-05-20 02:32:19 +10:00
Connor McLaughlin 88cc695d0b HostDisplay: Adjust offsets for linear filtering
Fixes line on right of screen in South Park.
2020-05-17 21:10:48 +10:00
Connor McLaughlin 4c9cdbb147 Qt/GameProperties: Disable all fields when code is missing 2020-05-16 21:19:34 +10:00
Connor McLaughlin 525bfda672 Build: Copy data directory with VS solution too 2020-05-16 20:55:00 +10:00
Connor McLaughlin 9ff8cf009a Qt: Fix tab order in game properties dialog 2020-05-16 20:32:36 +10:00
Connor McLaughlin 4e66b12727 Qt: Hook up export compatibility info to game properties 2020-05-16 20:32:36 +10:00
Connor McLaughlin f671840a18 Qt: Add compatibility stars to game list 2020-05-16 20:32:36 +10:00
Connor McLaughlin b2a2366287 Qt: Add game properties dialog 2020-05-16 20:32:36 +10:00
Connor McLaughlin 47c2b29395 Build: Use bin directory for cmake, fix Windows/cmake build 2020-05-16 13:10:31 +10:00
Connor McLaughlin 14b2506d7d HostInterface: Disable true color/enable scaled dithering by default
Too many games are broken with it enabled. The number which break with
scaled dithering is much smaller.
2020-05-15 01:41:58 +10:00
Connor McLaughlin 5aacfa7be3 Qt: Hook up audio settings (buffer size/count, volume, mute) 2020-05-10 00:44:56 +10:00
Connor McLaughlin a5ecff0893 Qt: Set clear alpha to zero for OpenGL display
Fixes transparent windows in Wayland.
2020-05-03 02:59:00 +10:00
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 55fc3fffd9 Qt: Add integer upscaling option 2020-05-01 01:00:29 +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 828513409f Qt: Remove unnecessary log spam 2020-04-30 17:46:33 +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 d80aaf3880 Qt: Fix possible race/crash on shutdown 2020-04-29 16:52:06 +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 79111e4e03 Qt: Add option for memory card type/mode 2020-04-27 16:22:25 +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 84b8987105 Qt: Only enable D3D11 break-on-error when debugger attached 2020-04-27 00:53:17 +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 1000cb30a9 HostDisplay: Track mouse position 2020-04-26 17:36:49 +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 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 f7e2d98055 Qt: Add .psf to all files filter for open file 2020-04-25 00:37:48 +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 08c8d1a521 System: Support saving screenshots in save states 2020-04-21 02:50:45 +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 b45b70970b GL/ShaderCache: Support geometry shaders 2020-04-16 21:25:56 +10:00
Connor McLaughlin 8a5e955ba3 Qt: Add input profile support 2020-04-15 01:44:16 +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 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 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 54adad948b Qt: Add .mcr extension to memory card file picker 2020-04-11 11:57:39 +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 0a004361fc Qt: Work around flip model swap chains being limited to vsync when parented
Fixes fast forward not working on some systems.
2020-04-09 00:14:19 +10:00
Connor McLaughlin 1f40d5f77d Qt: Implement memory card remove button 2020-04-09 00:13:44 +10:00
Connor McLaughlin 3272b37853 Qt: Implement browse button for memory card paths 2020-04-09 00:09:16 +10:00
Connor McLaughlin 9915d977e4 Qt: Fix memory card path not applying
Fixes #245.
2020-04-09 00:03:52 +10:00
Connor McLaughlin cbe9ef24b9 SettingWidgetBinder: Use QString instead of const char*
Fixes potential string lifetime issues.
2020-04-09 00:03:20 +10:00
Connor McLaughlin 32dbd173c5 Qt: Add link to Discord server in Help menu 2020-04-07 13:54:25 +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 11e8a91e30 CommonHostInterface: Simplify fullscreen toggle 2020-04-05 22:58:54 +10:00
Connor McLaughlin bf6c1c4866 Qt: Implement render-to-seperate-window and render-to-main toggle 2020-04-05 22:58:47 +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 0eb740a0aa Qt: Add CDROM Enable Region Check option 2020-04-01 14:50:27 +10:00
Connor McLaughlin 20025b2ffd Qt: Hide mouse cursor in fullscreen mode
Fixes #135.
2020-03-29 01:12:27 +10:00
Connor McLaughlin cbb9b96537 System: Include buffer swap time in frame time measurement 2020-03-24 00:20:56 +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 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 acd49f3765 Qt: Fix possible crash when loading state via menu 2020-03-22 13:10:28 +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 afe2f96474 Qt: Fix display not updating after resize when paused
Fixes #104.
2020-03-18 22:27:45 +10:00
Connor McLaughlin 282998d0bb Qt: Add screenshot button 2020-03-16 00:06:39 +10:00
Connor McLaughlin 2bb992a702 HostDisplay: Add texture dumping/saving support 2020-03-16 00:03:49 +10:00
Connor McLaughlin fe2e6561d3 Qt: Add audio dumping options 2020-03-15 22:04:32 +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 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 f71a03202b Qt: Add ProgressCallback implementation 2020-03-12 15:32:15 +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 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 2004de7170 Qt: Fix controller rebinding not registering when paused 2020-03-06 21:55:10 +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 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 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 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 07ba2ecd3d Settings: Simplify resolution scale enumeration 2020-02-28 16:59:55 +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 959a555274 CDROM: Implement asynchronous disc reading 2020-02-22 00:24:35 +09:00
Connor McLaughlin 784a5c789f Qt: Use precompiled D3D11 display shaders 2020-02-20 23:22:28 +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 208928b6dc Qt: Fix load state menu not refreshing after save 2020-02-16 00:15:18 +09:00
Connor McLaughlin 6456c5d63d Qt: Don't resume when booting without game code 2020-02-16 00:15:11 +09:00
Connor McLaughlin 06f4d72631 FrontendCommon: Use SDL_InitSubSystem() for lazy initialization 2020-02-16 00:15:05 +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 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 5f3be68028 HostInterface: Notify host when controller types change 2020-02-16 00:14:44 +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 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 745c2785b2 Move shared frontend code from SDL to a seperate project 2020-02-16 00:13:53 +09:00
Connor McLaughlin f5482cb3b6 Don't require OpenGL compatibility profile 2020-02-15 21:11:51 +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 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 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 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
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 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 6718f0442c Qt: Support QActions in SettingsWidgetBinder 2020-02-04 15:22:39 +09: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 c72d86cf1b Qt: Hook up CPU execution mode setting 2020-02-01 00:05:20 +10:00
Connor McLaughlin 070e6c32d6 Frontends: Add .chd files to open filter 2020-01-30 20:06:15 +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 faf2308695 Settings: Move set defaults to HostInterface so it can use user paths 2020-01-24 14:52:04 +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 8148486a9f Qt: Add hotkey to toggle software rendering 2020-01-24 14:51:55 +10:00
Connor McLaughlin f2231d6669 HostInterface: Move setting update logic to base class 2020-01-24 14:51:52 +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 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 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 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 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 46033898ba Frontends: Use DXGI_PRESENT_FLAG_ALLOW_TEARING for presentatation 2020-01-18 18:12:09 +10:00
Connor McLaughlin 28efc50a04 Qt: Fix worker thread lockup on shutdown 2020-01-11 14:21:08 +10:00
Connor McLaughlin d52d6252a9 Qt: Remove QAudioOutput-based audio stream 2020-01-11 14:04:58 +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 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 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 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 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 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 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 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