Commit graph

341 commits

Author SHA1 Message Date
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
Connor McLaughlin 7210b0826a GameSettings: Make DMA/GPU tweak settings overridable 2020-10-30 00:44:40 +10:00
Connor McLaughlin 29467d40c8 DMA: Add debug window 2020-10-30 00:44:39 +10:00
Connor McLaughlin 62dbaaf02c Qt: Fix power off button not exiting in batch mode 2020-10-30 00:44:39 +10:00
Connor McLaughlin 7ce55ca800 Android: Fix race/crash when switching away/back to the emulation activity 2020-10-27 11:58:46 +10:00
Albert Liu f69889264d Core: Make some additional OSD messages translatable 2020-10-22 02:07:48 -07:00
Connor McLaughlin b694577c38 Qt: Add new cheat manager 2020-10-21 01:11:30 +10:00
Albert Liu 9b8fbeb087 CommonHostInterface: Activate hotkeys on press instead of release 2020-10-19 16:35:12 -07:00
Connor McLaughlin 49cea927f0 Build: Add ARM64 platform for Windows 2020-10-14 00:48:48 +10:00
Connor McLaughlin a372a1d782 GameList: Fix progress disappearing when scanning >1 directory 2020-10-12 00:40:06 +10:00
Connor McLaughlin ad61815cad GameList: Don't keep cache open after rewriting 2020-10-11 20:55:49 +10:00
Connor McLaughlin 1db1d64a1f GameSettings: Simplify controller type check 2020-10-11 14:38:31 +10:00
Connor McLaughlin 303357df27 GameSettings: Only replace analog -> digital controller when forcing
e.g. Die Hard Trilogy can also work with Konami Justifier.
2020-10-11 12:46:12 +10:00
Connor McLaughlin d39c9f5d1c Clean up some compiler warnings 2020-10-11 12:21:08 +10:00
Connor McLaughlin c89d94c2ff Move Cubeb AudioStream to FrontendCommon
This way it doesn't need to be built for libretro.
2020-10-11 12:21:08 +10:00
Connor McLaughlin cb6502afa3 Qt: Simplify settings version check 2020-10-09 18:26:21 +10:00
Albert Liu 94d7d4cead Qt: Show dialog on startup for settings version mismatch
For the QMessageBox to appear, error reporting is performed again after
main window creation.
2020-10-07 20:43:50 -07:00
Connor McLaughlin a3f2f13fa9 GameSettings: Add CD-ROM Read Speedup 2020-10-05 00:18:10 +10:00
Connor McLaughlin 0b858658ca GameSettings: Add per-game input bindings from profiles
This just affects the **bindings**. You will still have to set the
controller type per game if this is different from the global default.
2020-10-05 00:18:10 +10:00
Connor McLaughlin 7278f055cb FrontendCommon: Attempt two at hotkey translation 2020-10-05 00:18:10 +10:00
Connor McLaughlin 55f0915534 Qt: Hopefully fix save state slot hotkeys being untranslatable 2020-10-04 00:12:01 +10:00
Connor McLaughlin 968c835249 CommonHostInterface: Add reset hotkey 2020-10-04 00:12:01 +10:00
Connor McLaughlin 36511fda18 Qt: Add set cover image option to context menu 2020-10-04 00:12:01 +10:00
Connor McLaughlin ca0bfc39a2 CDROM: Add a setting and hotkey to mute CD audio 2020-10-04 00:12:01 +10:00
Connor McLaughlin c051538d03 HostInterface: Mark some more OSD messages as being translatable 2020-10-03 01:06:04 +10:00
Connor McLaughlin caf100ec0d Qt: Make hotkey categories translatable 2020-10-03 01:06:04 +10:00
Connor McLaughlin 5bc61849eb FrontendCommon: Add duck icon to loading screens 2020-10-02 00:01:51 +10:00
Connor McLaughlin 9a23c5547a GameSettings: Add CPU overclocking as game option 2020-09-30 23:48:34 +10:00
Connor McLaughlin 2c971ce0c7 VulkanHostDisplay: Fix errors for shaders with many options 2020-09-30 22:52:55 +10:00
Connor McLaughlin 8342fec2c8 VulkanHostDisplay: Execute command buffer before reloading post shaders 2020-09-27 01:34:29 +10:00
Connor McLaughlin f26e75fa37 GameSettings: Add force 4:3 for 24-bit 2020-09-26 15:21:17 +10:00
Connor McLaughlin e7cfc69975 Cheats: Fix parsing of Retroarch cheats 2020-09-26 01:13:48 +10:00
Connor McLaughlin 699242b1a7 GameList: Fix compatibility xml saving 2020-09-24 22:16:23 +10:00
Connor McLaughlin 41f36d0673 GameList: Fix cover search from game serial/code 2020-09-24 12:33:11 +10:00
Connor McLaughlin b193374dd4 GameList: Add method to look up a cover image 2020-09-24 00:31:44 +10:00
Connor McLaughlin f022bdb328 PostProcessingShader: Fix a compile warning 2020-09-23 20:19:38 +10:00
Silent 92d0dabf54
Make path separators in UI more consistent 2020-09-20 00:08:17 +02:00
Connor McLaughlin d274c553c5 OpenGLHostDisplay: Fix incorrect top alignment 2020-09-20 01:36:49 +10:00
Silent 67392a37ec
Fix Discord RPC not reporting the game title 2020-09-19 15:00:03 +02:00
Connor McLaughlin 67d0bbedb1 ControllerInterface: Don't use a minimum strength of 0.01 2020-09-17 19:56:11 +10:00
Connor McLaughlin 3096f0953f PostProcessing: Use ints-for-bools CPU-side as well 2020-09-16 11:52:23 +10:00
Connor McLaughlin 3bd9f85af8 PostProcessingShaderGen: Use ints instead of bools for options 2020-09-16 11:52:23 +10:00
Connor McLaughlin 352a3405e8 OpenGLHostDisplay: Fix offset image in libretro 2020-09-16 01:14:56 +10:00
Silent a35a2838b6
Fix XML loading not handling UTF-8 paths 2020-09-14 20:33:56 +02:00
Connor McLaughlin daa5e02853 GameSettings: Add trait for disabling PGXP texture correction 2020-09-15 00:31:35 +10:00
Connor McLaughlin 51c595759f GameList: Fix incorrect serialization of some options 2020-09-15 00:31:35 +10:00
Connor McLaughlin bb6af3c8fc
Merge pull request #845 from CookiePLMonster/fix-resume
Fix issues with a -resume parameter
2020-09-14 00:11:42 +10:00
Connor McLaughlin 9c28b3e167 CommonHostInterface: Add post processing toggle hotkeys 2020-09-13 22:31:31 +10:00
Connor McLaughlin 441f26706e Qt: Move post processing to its own setting category 2020-09-13 22:27:30 +10:00
Connor McLaughlin 7a5f167c1c VulkanHostDisplay: Fix a possible crash at shutdown with large post shaders 2020-09-13 20:21:23 +10:00
Connor McLaughlin 2492eb8678 FrontendCommon: Add a hotkey to reload post processing 2020-09-13 20:21:05 +10:00
Connor McLaughlin c1006bd0ff PostProcessing: Allow fragment coordinate access from shader 2020-09-13 18:50:40 +10:00
Connor McLaughlin 60ed9e7191 PostProcessingShader: Fix errors in shader parsing 2020-09-13 18:39:40 +10:00
Connor McLaughlin a053f389bd VulkanHostDisplay: Don't choke when we lose the surface 2020-09-13 14:37:00 +10:00
Connor McLaughlin 26dff586f3 OpenGLHostDisplay: Fix vertical alignment 2020-09-13 14:36:31 +10:00
Connor McLaughlin c9372a674a More build fixes... 2020-09-13 12:40:32 +10:00
Connor McLaughlin a1f527eddf VulkanHostDisplay: Build fix for libretro 2020-09-13 12:27:34 +10:00
Connor McLaughlin 68d08ddbcb Merge branch 'postprocessing' 2020-09-13 12:14:21 +10:00
Connor McLaughlin 3847be86b0 Fix a bunch of random warnings 2020-09-13 11:54:51 +10:00
Silent 95d5417017
Fix -resume causing a quiet exit if there is no resume savestate 2020-09-12 19:58:37 +02:00
Connor McLaughlin 2819715260 FrontendCommon: Add a post processing implementation 2020-09-13 01:23:43 +10:00
Silent cf513c1c24
Simplify quicksave/quickload logic 2020-09-12 16:07:22 +02:00
Connor McLaughlin 6f250a4ff7 GPU/HW: Add JINC2 and xBRZ texture filtering options
Shaders ported from beetle-psx.
2020-09-12 00:26:34 +10:00
Connor McLaughlin 5b17ad11a7 GameList: Fix cache corruption after scanning for new games 2020-09-10 00:23:24 +10:00
Connor McLaughlin 03f052e12e FrontendCommon: Add auto cheat loading option 2020-09-09 23:44:02 +10:00
Connor McLaughlin 9a52c54c2f Vulkan: Don't force debug device/validation layers 2020-09-08 17:22:34 +10:00
Connor McLaughlin 455f359125 FrontendCommon: Fix descriptor/image validation errors in imgui render 2020-09-08 11:44:54 +10:00
Connor McLaughlin 9bb278b166 CommonHostInterface: Fix crash on shutdown when using save state selector 2020-09-06 21:03:27 +10:00
Connor McLaughlin d5d79e952c Fix CMake build 2020-09-06 18:37:10 +10:00
Connor McLaughlin 726e5d46b1
Merge pull request #821 from CookiePLMonster/d3d11-memleaks
Fix D3D11 resource leaks
2020-09-06 17:59:20 +10:00
Connor McLaughlin 75ad685ae8 CommonHostInterface: Fix incorrect version error string in save state selector 2020-09-06 17:48:58 +10:00
Connor McLaughlin 2c36750a0e VulkanHostDisplay: Fix imgui image textures not rendering 2020-09-06 17:47:23 +10:00
Connor McLaughlin ac6b9dc87f dep/imgui: Move implementations to frontend-common 2020-09-06 17:28:19 +10:00
Silent 33df4ab1bd
Seek before reading save state screenshot
Fixes corrupted thumbnails in the save state UI
2020-09-05 21:46:46 +02:00
Silent 89e0290d06
Fix resource leaks in AutoStagingTexture::EnsureSize and D3D11HostDisplay::DownloadTexture 2020-09-04 23:44:19 +02:00
Connor McLaughlin a2eaaf0e89 PGXP: Allocate large storage dynamically
This causes performance issues on ARM otherwise.
2020-09-03 00:11:40 +10:00
Connor McLaughlin b2057ac6cc GameSettings: Add disallow force NTSC timings trait 2020-09-02 00:03:53 +10:00
Connor McLaughlin c9cefe4020 GameSettings: Add a bunch more user settings 2020-09-02 00:00:48 +10:00
Connor McLaughlin bf85fbe331 GameSettings: Fix widescreen hack not saving to cache 2020-09-01 20:32:55 +10:00
Connor McLaughlin 0af22825ad FrontendCommon: Drop imgui deps for libretro build 2020-09-01 12:48:57 +10:00
Connor McLaughlin 6bbbb96d4b Move GameList to FrontendCommon
Reduces libretro core dependencies further.
2020-09-01 12:46:44 +10:00
Connor McLaughlin 2b902f6d09
Merge pull request #806 from CookiePLMonster/axis-to-button-map
Allow mapping axes to buttons
2020-08-29 23:35:18 +10:00
Silent 057bf986c4
Allow mapping half axes to buttons
This allows to bind pressure sensitive NeGcon buttons to keyboard,
mouse and controller buttons
2020-08-29 14:19:28 +02:00
Connor McLaughlin 547cc4dbf6 Qt: Clear OSD messages on system stop 2020-08-29 22:19:09 +10:00
Connor McLaughlin 5115c75f88 CommonHostInterface: Clear input map before changing interface
Should hopefully fix the crash when changing controller backends.
2020-08-24 00:22:49 +10:00
Silent 8def7420c4
XInput: Try to use XInput 1.3 if 1.4 is not present
This simple change enables the use of Guide button
for Windows 7 users, provided they have DirectX End-User
Runtimes installed. XInput 9.1.0 does not have the hidden
XInputGetStateEx export, so it was not possible to poll for
Guide button.
2020-08-22 22:52:54 +02:00
Silent 1c4bbc8cde
XInput: Do not use XINPUT_CAPS_FFB_SUPPORTED
There are several reasons for this:
1. XINPUT_CAPS_FFB_SUPPORTED flag was introduced in Windows 8,
   and therefore only supported by XInput 1.4
2. Despite the name, this flag does NOT indicate whether normal rumble
   is supported. This flag is reserved for more complex force feedback,
   and according to MSDN it may have went unused on Windows.

This fixes a future (the method is not used yet) bug where
XInputControllerInterface::GetControllerRumbleMotorCount would
erroreously report no rumble support.
2020-08-22 22:46:12 +02:00
Connor McLaughlin 3c46f7b44c ControllerInterface: Add XInput controller backend 2020-08-22 16:50:19 +10:00
Connor McLaughlin ab002e78e1 Support translating strings in emulator core 2020-08-22 13:06:20 +10:00
Hugo Hromic 1e10bef09e SDLControllerInterface: Add support for optional game controller database
If an optional "gamecontrollerdb.txt" file exists in the user directory,
then SDL game controller mappings will be loaded from it.

There is an officially endorsed community sourced database in
https://github.com/gabomdq/SDL_GameControllerDB
2020-08-21 23:51:07 +01:00
Connor McLaughlin bca609a2a6 Qt: Add option to disable per-game settings 2020-08-21 00:09:37 +10:00
Connor McLaughlin 60d3fffec1 Add per-game overrides (mainly for compatibility) 2020-08-21 00:09:37 +10:00
Connor McLaughlin 3ca1d5b275 CommonHostInterface: Fix lag when OSD message display disabled 2020-08-16 01:40:18 +10:00
Connor McLaughlin 10a46a7fd8 OSD: Add option to show display resolution 2020-08-16 00:20:11 +10:00
Connor McLaughlin f5fb8186c7 Switch some messages to the OSD and increase durations 2020-08-16 00:20:10 +10:00
Connor McLaughlin c5db7db182 Build: Compile source as UTF-8 with MSVC 2020-08-15 00:04:38 +10:00
jpchow26 2a43b8b182
Update ini_settings_interface.cpp (#734)
* Update ini_settings_interface.cpp

Fix compiler error on Windows.
2020-08-11 02:59:58 +10:00
Connor McLaughlin 5c6e92cdfc GPU/HW: Disable coordinate clamping when unnecessary 2020-08-10 23:28:37 +10:00
Connor McLaughlin ac42510780 INISettingsInterface: Fix saving/loading with Unicode paths 2020-08-09 04:40:21 +10:00
Connor McLaughlin fbdc9ae631 CommonHostInterface: Remove additional API reset/restore on screenshot 2020-08-04 21:08:56 +10:00
Connor McLaughlin 0c1b637549 PGXP: Add initial implementation 2020-08-02 00:25:07 +10:00
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 3edb8e113e StringUtil: Add wide string<->utf8 conversion for Windows 2020-07-31 16:04:00 +10:00