Commit Graph

743 Commits

Author SHA1 Message Date
Henrik Rydgård
2675d6ea43
Input event and device enums (#17514)
* Switch deviceID from int to enum InputDeviceID, globally

* Switch axisId to enum InputAxis

* Change int keycodes to InputKeyCode where it makes sense.

* SDL input buildfix

* SDL keycode buildfix

* Switch on enum warning fixes

* Qt keycode buildfix

* iOS keycode buildfix

* UWP keycode buildfix

* More iOS buildfix

* More iOS buildfix

* Update DinputDevice.cpp
2023-05-26 18:40:13 +02:00
Henrik Rydgård
4f1be34f24 Revert "Remove the Android display resolution selector"
This reverts commit ea0eaa31e6.
2023-05-17 09:37:15 +02:00
Bashar Astifan
132a00ade3
Merge branch 'master' into master 2023-05-03 23:23:29 +04:00
Bashar Astifan
9b0577351f Review's changes, more fixes and better structure 2023-05-02 00:09:22 +04:00
Henrik Rydgård
15a0474d40 NativeKey: Only update the HLEPlugins key map if any plugins are active. 2023-05-01 12:16:45 +02:00
Bashar Astifan
05776ee6af Major update 2023-04-30 08:54:54 +04:00
Bashar Astifan
d0b6935592 UWP Improved Support 2023-04-28 23:22:17 +04:00
Henrik Rydgård
12bd0ed26d Restore the shared_ptrs 2023-04-07 10:35:01 +02:00
Henrik Rydgård
ee6234ecb6 I18N: Switch to getting categories by index instead of by string lookup
Also gets rid of the shared_ptr usage, and generally makes things nicer.

Needed for later config refactorings, good to get in early.
2023-04-07 10:35:01 +02:00
Henrik Rydgård
d5f131f6a7 Always tell Android we handled the BUTTON_MODE key
Otherwise, as seen in #17245, some devies can decide to do something weird with it,
like exiting the app.
2023-04-06 12:34:40 +02:00
Henrik Rydgård
d00809ae53 Rename KeyDef to InputMapping and give it responsibility for Axis encoding 2023-03-29 11:59:31 +02:00
Unknown W. Brackets
441c940fa9 UI: Remove some unnecessary Host.h includes. 2023-03-25 17:19:21 -07:00
Henrik Rydgård
d586ec0d5e Don't create Host objects except in headless/unittest 2023-03-25 10:47:01 +01:00
Henrik Rydgård
7d0eac730f Remove WindowsHost 2023-03-25 10:43:00 +01:00
Henrik Rydgård
143f499d11 Remove a few of the Host implementations 2023-03-25 10:37:49 +01:00
Henrik Rydgård
9e125eeba7 Remove NotifyUserMessage from Host 2023-03-25 10:32:09 +01:00
Henrik Rydgård
adccc480a0 Another one bites the dust (SendUIMessage) 2023-03-24 21:39:02 +01:00
Henrik Rydgård
349b73acec
Move the resampler usage to a common file, AudioCommon. (#17176)
* Move the resampler usage to a common file, AudioCommon.

Ports that don't want to use the resampler can now simply exclude that
file and provide their own implementation. Next up, libretro will be
converted to do it that way.

* Android.mk typo

* libretro makefile fix

* libretro buildfix

* libretro: try a different approach for the temporary solution

* duh

* double duh
2023-03-24 17:19:57 +01:00
Henrik Rydgård
724f94f8e4 UWP buildfix 2023-03-24 15:32:48 +01:00
Henrik Rydgård
a5fdf3d05b Add samplerate argument to NativeMix 2023-03-24 14:48:53 +01:00
Henrik Rydgård
8421c1e2a1 Move g_backgroundAudio.Play to NativeUpdate 2023-03-24 14:48:49 +01:00
Henrik Rydgård
21bd50dcb0 Remove polling requirement from DSound audio backend
Might as well sleep for a short period instead, same effect really.
2023-03-24 10:40:10 +01:00
Henrik Rydgård
5a55fd5fd3 And replace "graphics_restart", "toggle_fullscreen", etc 2023-03-22 23:52:15 +01:00
Henrik Rydgård
410b35fba3 Get rid of "finish" and "setclipboardtext" messages, replace with requests. 2023-03-22 22:17:26 +01:00
Henrik Rydgård
b7350f3cbf Fix folder browser on Android and Windows 2023-03-22 19:25:35 +01:00
Henrik Rydgård
e9f5394f59 Move the Windows open file dialog to the new system, switch the background image selector over. 2023-03-22 14:53:07 +01:00
Henrik Rydgård
de064e210e Replace the inputbox queue with a more generic RequestManager. 2023-03-22 12:41:11 +01:00
Henrik Rydgård
94debfbf36 Rename screenManager to g_screenManager, readme update 2023-03-22 09:44:44 +01:00
Henrik Rydgård
2786786c9f Avoid Host in Windows graphics init 2023-03-21 14:07:27 +01:00
Henrik Rydgård
f5472ba0d8 Cleanup up unnecessary audio init functions 2023-03-21 13:39:02 +01:00
Henrik Rydgård
f60f5ccaea Move SetDebugMode notification 2023-03-21 13:39:00 +01:00
Henrik Rydgård
53172eff63 Renaming and file splitting 2023-03-06 16:42:50 +01:00
Henrik Rydgård
3b39e9e068 Turn the VFS into a class, to be able to reuse it for other purposes. 2023-03-06 16:42:47 +01:00
Henrik Rydgård
4c45f8a4b0 Pass in draw directly in GPUCommon::DeviceRestore, instead of awkwardly fetching it 2023-02-25 23:04:27 +01:00
Henrik Rydgård
8b431b39ba
Wrap the display globals in a struct (#16998)
* Wrap the display globals in a struct

Makes it easier to search/replace these, for future refactorings.

* Some renaming

* Qt buildfix, also fix the Qt build on Mac (got broken with battery changes)

* Attempt at buildfixing ios

* UWP buildfix
2023-02-25 13:09:44 +01:00
Henrik Rydgård
a288c59841 Simplify tilt, step 1 2023-02-16 10:33:47 +01:00
Henrik Rydgård
7d40ed6ba1 Tilt control: Split the deadzone parameter since it needs to be different for different types.
Can at least share the string without problems.

Also rearrange the settings a little bit.
2023-02-11 23:42:55 +01:00
Unknown W. Brackets
655797a846 iOS: Disable jit in DefaultCpuCore().
This means loading game-specific inis should properly auto-disable.
2023-02-06 21:07:32 -08:00
Henrik Rydgård
af8e4cd36b Fixes for portrait mode. Move the haptic feedback setting where it belongs. 2023-02-02 11:59:56 +01:00
Henrik Rydgård
1f51a31544 Remove the separate deadzone-skip value. 2023-02-02 01:09:30 +01:00
Henrik Rydgård
4aeb1ef703 Better math, fix tilt calibration (was entirely broken) 2023-02-02 01:01:05 +01:00
Henrik Rydgård
738b7fc630
Merge pull request #16889 from hrydgard/tilt-improvements
Tilt improvements: Add visualizer, better defaults
2023-02-01 17:47:11 +01:00
Henrik Rydgård
ce40744cdd
Merge pull request #16874 from SerenaKit/serena/darwin-browse-button
Browse button on Darwin platforms, rename some classes/functions
2023-02-01 17:21:53 +01:00
Serena
482e989cd7 convert to System_SendMessage insanity 2023-02-01 19:03:12 +03:00
Henrik Rydgård
3b36a1bb66 TiltEventProcessor belongs in Core, not UI. 2023-02-01 15:04:32 +01:00
Henrik Rydgård
102607a6e8 Code style fixes, translation key fix, cleanup 2023-02-01 14:24:55 +01:00
Sergey P
bf2cabb82c merge from upstream 2023-02-01 13:33:07 +03:00
Serena
230fb93766 Browse button on Darwin platforms, rename some classes/functions 2023-01-31 13:36:14 +03:00
Henrik Rydgård
0f52954eae Minor log cleanups 2023-01-30 14:38:05 +01:00
Sergey P
6ed017ac89 fixes 2023-01-26 15:06:52 +03:00
Sergey P
91aa6ad608 merge from upstream 2023-01-26 14:50:09 +03:00
Serena
13122ddd12 Make changes requested by unknown 2023-01-23 00:23:07 +03:00
Serena
d9ad0e36d3 Indentation fixes 2023-01-22 20:44:18 +03:00
Serena
2f3959cc52 Memory stick customization for Darwin 2023-01-22 20:32:58 +03:00
iota97
5ebf683589 Allow to append some configs 2023-01-12 15:39:51 +01:00
Henrik Rydgård
ea0eaa31e6 Remove the Android display resolution selector
I think its benefit is absolutely tiny if any, and causes a lot more
problems than it's worth. Bye.

Note that this isn't the rendering resolution selector, that will of
course still be there, but it's the "hardware scaler" resolution.
2023-01-11 22:53:42 +01:00
Henrik Rydgård
07114c6aaf Remove return value from axis functions in API 2023-01-10 10:12:37 +01:00
Henrik Rydgård
fdfc4cbe40 Android: Remove return value from touch event functions 2023-01-10 10:12:33 +01:00
Henrik Rydgård
7fbb0c4d41 Another null check in NativeShutdown 2023-01-03 11:14:31 +01:00
Henrik Rydgård
397846c0fc Just add a sanity check in NativeInitGraphics. 2023-01-02 17:38:38 +01:00
Henrik Rydgård
ebaef49516 NativeShutdownGraphics: Check screenManager for nullptr. 2022-12-31 11:53:16 +01:00
Unknown W. Brackets
4f216c941e Vulkan: Fix reverse dependency on config. 2022-12-27 15:32:35 -08:00
Unknown W. Brackets
68fb7a477d UI: Fix tiny reverse dependency. 2022-12-27 15:18:35 -08:00
Henrik Rydgård
f65a8aa743 Oops, deleted a few lines too much in #16634
See #16634
2022-12-22 09:59:03 +01:00
Henrik Rydgård
e209227be1 Delete dead code path (initialize EGL from C++ on Android) 2022-12-20 23:17:51 +01:00
Henrik Rydgård
6922ee7e52 Add some asserts in the hope of gathering some more info (and consolidating some crashes). 2022-12-18 21:58:20 +01:00
Unknown W. Brackets
fb96d79895
UI: Avoid crash on axis input during shutdown. (#16564) 2022-12-13 07:31:46 +01:00
Henrik Rydgård
39b627c0c1 Fix layout issues, misc cleanup and comments 2022-12-07 10:27:02 +01:00
ThirteenAG
5e5bffc808 remade into GET_AXIS/GET_VKEY apis 2022-12-05 14:46:00 +03:00
ThirteenAG
37dc8c3e49 compilation workaround 2022-12-05 02:10:27 +03:00
ThirteenAG
0b77babfab merged triggers api 2022-12-05 00:08:50 +03:00
ThirteenAG
6e03de35cf more stuff for plugins 2022-12-04 23:46:01 +03:00
Henrik Rydgård
575560f679 Enable game backgrounds on more screens 2022-11-22 22:53:54 +01:00
Henrik Rydgård
ddd2c6e343
Merge pull request #16409 from hrydgard/preserve-framebuffers
Preserve framebuffer on pause screen even if render resolution is changed
2022-11-22 10:03:47 +01:00
Henrik Rydgård
ec6d330ae4 Move AsyncImageFileView to Common, which required some more shuffling around of stuff. 2022-11-21 20:38:20 +01:00
Henrik Rydgård
d73196c7d6 Split up the GPU config change notifications 2022-11-21 15:14:20 +01:00
Lubos
0ae1d75daf OpenXR - Support camera adjust using joystick 2022-11-17 10:22:01 +01:00
Unknown W. Brackets
305aae3e50
Merge pull request #16363 from hrydgard/android-shader-assert
OpenGL ES: Bail as early as possible if things are bad
2022-11-08 06:01:41 -08:00
Henrik Rydgård
dd0409d68c OpenGL ES: Crash as early as possible if things are bad
There's a huge variety of crash report in the Play Console of various
opengl failures. Try to concentrate them to early points in
initialization
2022-11-08 10:43:38 +01:00
Lubos
cd49dc6627 OpenXR - Camera adjustment using PSP keys 2022-11-07 17:13:08 +01:00
Henrik Rydgård
b4507cd5cc Make a lot more code VR build for all platforms 2022-11-06 14:36:51 +01:00
Lubos
96f89f4bd7 OpenXR - Allow updating camera in realtime 2022-10-28 15:50:00 +02:00
Henrik Rydgård
aa51bfd1ef Use GPU "use" flags to replace IsVRBuild in the renderer. It remains elsewhere. 2022-10-17 19:57:11 +02:00
Henrik Rydgård
347f7c4e5a Vulkan: Improve tagging of pipelines for debugging purposes 2022-09-08 00:47:22 +02:00
Lubos
3a0e6c7232 Merge branch 'master' into feature_openxr_stereo 2022-09-05 19:11:52 +02:00
Henrik Rydgård
ed8c4e8758 Remove the assembly implementation of 4x4 matrix mul, in favor of intrinsics. 2022-09-05 10:33:05 +02:00
Lubos
c2c0561be2 OpenXR - OPENXR ifdef removal 2022-08-27 17:33:37 +02:00
Lubos
428145c4b9 OpenXR - 2D mode hack mappable (using screen keycode) 2022-08-15 16:53:00 +02:00
Unknown W. Brackets
536c050943 Core: Track names of connected pad devices.
Rather than just that it's a pad.  This tries to get the identifier if
possible.
2022-07-04 19:14:04 -07:00
iota97
8587fbf8ed Log missing lines on shutdown, update lang files 2022-06-01 18:37:46 +02:00
Halo-Michael
a709e8eaa8 Fix CpuCore select 2022-05-30 06:32:18 +08:00
Unknown W. Brackets
3edf6ab0fa Config: Don't save --fullscreen unless changed.
This makes --fullscreen and --windowed temporary by using a separate
setting.  If the setting is changed explicitly, it begins saving it again.
2022-05-28 15:47:12 -07:00
Henrik Rydgård
13fcff328c
Merge pull request #15464 from iota97/theme-atlas
Allow to change atlas per theme
2022-04-24 00:45:15 +02:00
Henrik Rydgård
584e94f01e ARM32: Remove a lot of non-NEON fallback paths 2022-04-13 11:44:55 +02:00
Henrik Rydgård
a68ddd0a8d Merge separate NEON functions into the normal functions.
We no longer support non-NEON ARM.

It's nice also to have the NEON and SSE implementations "close" to each
other, easier to port optimizations back and forth etc.
2022-04-12 23:43:21 +02:00
iota97
53fe6940df Allow to change atlas per theme 2022-04-01 09:59:40 +02:00
iota97
5e1062678f Allow custom UI themes 2022-02-11 12:42:38 +01:00
Unknown W. Brackets
8418287a87 Vulkan: Avoid crash on double DeviceLost.
This caused Android to crash when switching to OpenGL, because the
destructor would try to deinit again.  There weren't any objects, but
draw_ was no longer valid.
2022-02-06 23:34:44 -08:00
Henrik Rydgård
d4237fd542 Split the atlas into three, well two, but two different cases for the fonts.
Platforms that can use OS fonts don't need font_atlas.zim but they do
need ascii font for debug, so does use asciifont_atlas.zim.
2021-12-10 23:22:08 +01:00
Henrik Rydgård
98cd023cf9 On desktop, change an empty current directory to "/" on startup.
Just avoids some confusion.
2021-11-20 14:48:51 +01:00
Henrik Rydgård
161a32b4a2 On Android 11 and later, let's not fallback to OpenGL at all.
Not meaningful since Vulkan is stable and widely used now and we really
don't do anything crazy when drawing the menu.

See #15079
2021-11-09 23:06:10 +01:00
Henrik Rydgård
4161b500ab
Merge pull request #15021 from unknownbrackets/ui-font-atlas
UI: Support a second texture for just fonts
2021-11-09 22:51:09 +01:00
vit9696
1066224b6f SDL: Read assets from Resources on macOS like on iOS
closes #15041
2021-11-06 09:22:08 +03:00
Unknown W. Brackets
eb81d5b30b UI: Support a second texture for just fonts.
Will still allow using fonts between both.
2021-10-19 10:01:17 -07:00
Unknown W. Brackets
f5ee1af309 Android: Create default folders in custom path.
If scoped storage is off and the memstick directory was customized, load
it before pre-creating default folders.
2021-09-25 20:40:34 -07:00
Henrik Rydgård
76df060349 Show the logo screen before the memstick screen on first boot with scoped storage 2021-09-19 20:23:46 +02:00
vit9696
fc18a171a7 Handle Xcode-specific debug arguments on startup 2021-09-19 11:54:53 +03:00
Unknown W. Brackets
bcc4c3d8fa Io: Assume a write may have happened on resume.
This way if they switch away to delete files, it will have more free
space.
2021-09-11 07:36:02 -07:00
Henrik Rydgård
c9bcbf326f More shortcut fixes 2021-09-09 00:00:54 +02:00
Unknown W. Brackets
82087ccbb7 Common: Reduce some log levels.
Take off a few messages during startup and shutdown.
2021-08-28 09:14:53 -07:00
Henrik Rydgård
7733d8a500
Merge pull request #12530 from iota97/tilt
Allow tilt input on Z instead of X
2021-08-21 13:55:18 +02:00
Henrik Rydgård
e93dc8f231 Fix append mode through OpenCFile, fixing cheat import on scoped storage. 2021-08-14 16:57:33 +02:00
Henrik Rydgård
64dbd97731 Address feedback 2021-08-04 23:22:43 +02:00
Henrik Rydgård
3be1ff6ce4 Get the new setup flow going, with a confirmation dialog etc.
Moving the folder while already installed still crashes.
2021-08-04 23:22:43 +02:00
Henrik Rydgård
87bcdb7b88 Work on the new experience 2021-08-04 23:22:43 +02:00
Henrik Rydgård
828036f87b WASAPI: Survive switching to a mono device. Fixes #14591
It's a little flaky whether it tries to switch or not, but you can at
least use Windows' device selector to switch back and forth.

Should maybe also add an option to not follow the default device... Not
sure.
2021-07-10 01:22:34 +02:00
Henrik Rydgård
7eaa687140 Move the joystick deadzone processing until after all the mapping. 2021-07-09 00:07:55 +02:00
Henrik Rydgård
98372c465f Break out EmuScreen's key/axis inputs to ControlMapper.cpp/h
Additionally, break out the analog stick mapping to the same file.

This will make more sense soon when I change where the analog mapping
is called from, but want this refactor in separately for testing.
2021-07-08 22:24:00 +02:00
Yifan Gu
dea13f7197
Disable analog stick deduplication (#14590)
* Refactor and unify analog input settings

* Disable analog stick deduplication
2021-07-08 17:47:38 +02:00
Henrik Rydgård
6e76a22461 Avoid crash on early input events.
Not elegant, really should use a mutex or something...
2021-07-05 12:38:46 +02:00
Yifan Gu
633a6f612b Refactor and unify analog input settings 2021-07-05 12:38:46 +02:00
Henrik Rydgård
0fa27ff9d7 Autodetect number of threads (remove setting). Fix some bugs. 2021-06-12 21:06:59 +02:00
Henrik Rydgård
73871b9b7e Implement new thread manager, port stuff to it. 2021-06-12 13:03:53 +02:00
Henrik Rydgård
8ac06eed12 iOS: don't add a slash to the save path.
Might help #14524, but kinda doube it.

It works here.
2021-06-12 12:21:39 +02:00
Henrik Rydgård
86948a4df7 Default to something for now. 2021-06-07 22:49:53 +02:00
Henrik Rydgård
308c7d693c Address more feedback 2021-06-07 00:49:31 +02:00
Henrik Rydgård
468f3d8b3f wip
More work towards moving PSP directory
2021-06-07 00:24:52 +02:00
Henrik Rydgård
5df471577f Cleanup. Add a way to get very early log output on Android.
Cleanup in FileUtil
2021-06-07 00:24:52 +02:00
Henrik Rydgård
1f018d33c5 Start work on supporting Android Content URIs in the FileUtil API.
Add tentative Android Content URI support to much of FileUtil.h.

Buildfix

Fix some issues with the file browser in storage URIs.
2021-06-07 00:24:51 +02:00
Henrik Rydgård
b397e5c455 Assorted plumbing.
wip

Buildfix
2021-06-07 00:24:51 +02:00
Henrik Rydgård
87a25fd230 Start experimenting with DocumentsContract (the thing DocumentFile wraps)
wip

Some progress towards making the file browser work with DOCUMENT_TREE

More directory browsing progress

More Scoped Storage hackery. Can now browse to a folder and use PPSSPP's game browser to load ISOs from it.

Remove the defunct fdopendir approach. Buildfixes.
2021-06-07 00:24:51 +02:00
Henrik Rydgård
5030f1f719 Android: Get things playable on scoped storage. Things work except the built-in file browser. 2021-06-07 00:24:51 +02:00
Unknown W. Brackets
59322d3063
UI: Correct screenshot paths.
This was preventing screenshots from saving properly.
2021-05-30 10:29:16 -07:00
Henrik Rydgård
239838b6c3 Remove the ability to have multiple search paths for config. 2021-05-30 12:45:12 +02:00
Unknown W. Brackets
ec35e3c116
iOS: Correct Path assignment on init. 2021-05-29 17:32:22 -07:00
Henrik Rydgård
0328816870 Rename g_Config.externalDirectory to defaultCurrentDirectory - since that's what it was.
Also make currentDirectory a Path, and add support for Path config
parameters.

Buildfixes

More Qt buildfixes

Oops, didn't mean to change zstd ver
2021-05-30 00:49:47 +02:00
Unknown W. Brackets
f2b2f26e8e Common: Use Path for GetExeDirectory(). 2021-05-15 11:12:54 -07:00
Unknown W. Brackets
7b175627b3 VFS: Use Path for DirectoryAssetReader. 2021-05-15 11:12:04 -07:00
Unknown W. Brackets
2558022afe Config: Move data path settings to Paths. 2021-05-15 11:11:37 -07:00
Unknown W. Brackets
d376e67f87 Common: Cleanup some Path constructions. 2021-05-14 22:48:04 -07:00
Henrik Rydgård
2e16e83159 It never ends... 2021-05-13 10:39:16 +02:00
Henrik Rydgård
a40b1dec5f Use Path for fullName in dirlisting. Bugfixes.
Buildfixes

UWP: Buildfix.

headless: Buildfix.

Common: Buildfix.

iOS: Buildfixes.

libretro: Buildfix.

Qt: Buildfix.
2021-05-13 10:39:16 +02:00
Henrik Rydgård
ae06499a0c Change Copy, Rename to use Path. Remove std::string version of Exists().
Buildfixes

Buildfix
2021-05-13 10:39:16 +02:00
Henrik Rydgård
b7fe72bfc9 Load IniFile from Path
Buildfixing
2021-05-13 10:39:16 +02:00
Henrik Rydgård
025bcb1673 Introduce Path, start using it all over the place.
Still lots left to convert!

Convert GetSysDirectory to return Path.

More buildfixing

Remove unnecessary Path( constructors
2021-05-13 10:39:16 +02:00
Henrik Rydgård
a2a0551a83 Buildfix, and more renaming while we're at it. 2021-04-25 22:25:29 +02:00
Henrik Rydgård
d8583cd0d6 Buildfixes 2021-04-25 21:13:25 +02:00
Henrik Rydgård
1b13badeb4 Move remaining FileUtil functions into the File namespace. 2021-04-25 20:38:22 +02:00
Unknown W. Brackets
5f59495756 UI: Load BG image properly on init.
Also fix the update on Vulkan.
2021-04-16 20:49:46 -07:00
Unknown W. Brackets
b5d21b4f9b UI: Remove extern global for UI message. 2021-04-10 18:42:40 -07:00