9413 Commits

Author SHA1 Message Date
yoshisuga
30b121f4e9
IOS: Support keyboard as hardware input so that controls can be mapped by default 2023-08-20 21:30:52 +01:00
antoniou79
948f004a78 KEYMAPPER: Fix size of _joystickAxisPreviouslyPressed array
It should include all the valid axis defined in defaultJoystickAxes so the size should now be 8

The 2 extra since the previous size (6) is due to the addition of support for HAT_X and HAT_Y axis.
This fix allows the HAT_X+/- and HAT_Y/+- to operate as valid incoming events when mapped to an action (see Keymapper::convertToIncomingEventType())
2023-08-14 14:09:41 +03:00
Cameron Cawley
5d58b7768c BACKENDS: Remove leftover code 2023-08-14 00:40:42 +02:00
Cameron Cawley
3f38f6c500 SDL: Improve CPU detection with older SDL versions 2023-08-14 00:40:42 +02:00
antoniou79
554f094dd6 ANDROID: Improvements for controller movement detection
Removed unnecessary normalization as Android already does this

Also fixed a wrong comparison in a clause for deciding to stop movement that was repeating
2023-08-13 23:25:18 +03:00
Le Philousophe
79c3063979 ANDROID: Improve CPU detection
CPU architecture can be determined at build time.
Add support for x86 extensions.
2023-08-13 12:58:45 +02:00
Le Philousophe
3b1465120a ANDROID: Fix build
cpu-features needs to be compiled by us
2023-08-13 12:58:45 +02:00
Eugene Sandulenko
583227655a
BACKENDS: Fix incorrect enum member name 2023-08-13 10:50:56 +02:00
Wyatt Radkiewicz
55550f85ac BACKENDS: Move SIMD detection to more stable SDL2 2023-08-13 00:22:10 +02:00
Wyatt Radkiewicz
787837ca41 ALL: Add Cpu prefix to SIMD extension features 2023-08-13 00:22:10 +02:00
Wyatt Radkiewicz
f5dfa6b8d1 WII: Removed extra ")" in backend hasFeature 2023-08-13 00:22:10 +02:00
Wyatt Radkiewicz
59fa0a9208 BACKENDS: Cpu feature flags now use bit shifts 2023-08-13 00:22:10 +02:00
Wyatt Radkiewicz
64a6548041 BACKENDS: Fixed BaseBackend AVX2 detection 2023-08-13 00:22:10 +02:00
Wyatt Radkiewicz
2947e87e59 BACKENDS: BaseBackend now detects SSE4.1 2023-08-13 00:22:10 +02:00
Wyatt Radkiewicz
eebadf4495 GRAPHICS: Optimize alpha blend NEON and Generic
I optimized the NEON and Generic paths for ManagedSurface::blendBlitFrom
and the new TransparentSurface::blit. Now (on arm), the new blit function
matches the speed of the old blit function even with the added
inderections that the runtime extension detection code adds in.

Other than that, I made a benchmark for this code and you can make it
using this command:
CFLAGS="-DTEST_BLEND_SPEED" make test

I reverted wii to not use altivec anymore since it doesn't.

I also removed graphics/blit-neon.cpp from graphics/module.mk because
simply including the .cpp file in graphics/blit-alpha.cpp was a better
option because then I didn't need to instantiate every version of the
templates that I needed.
2023-08-13 00:22:10 +02:00
Wyatt Radkiewicz
139eb6ad61 MAC: Basic Altivec detection implemented 2023-08-13 00:22:10 +02:00
Wyatt Radkiewicz
8cc1ab7efa PS3: Backend now detects altivec extenions 2023-08-13 00:22:10 +02:00
Wyatt Radkiewicz
ffb845f241 WII: Backend detects Altivec extensions 2023-08-13 00:22:10 +02:00
Wyatt Radkiewicz
c3554dd7f0 BACKENDS: BaseBackend detects NEON on aarch64 2023-08-13 00:22:10 +02:00
Wyatt Radkiewicz
bdc6d72e0b ANDROID: Added ARM NEON detection in backend init 2023-08-13 00:22:10 +02:00
Wyatt Radkiewicz
f062addfe2 BACKENDS: BaseBackend detect x86 SIMD extensions
Rebase conflict
Conflicts:
  backends/base-backend.h
2023-08-13 00:22:10 +02:00
Le Philousophe
a68e8fcea8 ANDROID: Fix CA path retrieval
The old way doesn't work anymore since directories are not FSNode.
The SearchMan could also return files which were not accessible through
filesystem.
2023-08-12 22:12:59 +02:00
Le Philousophe
fde8a0b463 NETWORKING: Use a String for CA path
This allows to build the path inside the function and return it.
2023-08-12 22:12:58 +02:00
antoniou79
a674b65c95 ANDROID: Support connection change for some bluetooth keyboards
Some bluetooth keyboards also need "navigation" supported as configuration change

Tested with a new Lamtech bluetooth (BLE5) keyboard and also this is suggested here as well:
https://stackoverflow.com/a/27238892
2023-08-12 20:34:58 +03:00
Miro Kropacek
2ab9ba353a BACKENDS: ATARI: Remove the SCI hack
It was wrong (other engines are allowed to do infinite recursions?) and
Future Wars still isn't working properly at all times. I've decided to
remove it (i.e. Future Wars and Operation Stealth are not supported
anymore).

Small updates in readme.txt.
2023-08-12 17:38:49 +02:00
Miro Kropacek
46939cca9b BACKENDS: ATARI: Fix regression in unlockScreen() 2023-08-12 17:38:49 +02:00
Miro Kropacek
87f1cd25be BACKENDS: ATARI: Don't initialize GEM before initBackend()
This caused unnecessary desktop redraw, clearing text output from the
console.
2023-08-12 17:38:49 +02:00
Miro Kropacek
f8f22c6e85 BACKENDS: ATARI: Fix a stuck key repeat
Sometimes the new IKBD handler would take over before TOS got a message
about key release event, leading to an infinite key stuck sound.
2023-08-12 17:38:49 +02:00
Miro Kropacek
c1354b8589 BACKENDS: ATARI: Fix crash when exit() is called
exit() can be handled at user level via atexit(), there's no need to use
the critical handler routine.

Removed GEM restore from the critical handler as this uncovered its
instability while being in the critical handler.
2023-08-12 17:38:49 +02:00
Miro Kropacek
5a756fe2f4 BACKENDS: ATARI: Restore key click 2023-08-12 17:38:49 +02:00
Miro Kropacek
18dafa1742 BACKENDS: ATARI: Disable director & remove unused dat files 2023-08-12 17:38:49 +02:00
Miro Kropacek
7e3b9cceec BACKENDS: ATARI: Direct rendering support
Similar to SuperVidel's but requires an additional C2P pass.

Also, a few optimizations added like cursor is being assumed to be in
a persistent memory so we don't copy it over. And it's using a mask
instead of key.

This graphics mode is not perfect though and works reliably only with
source surfaces allocated via Surface::init() otherwise wrong memory
location is being read.

Still, can gain quite a few CPU cycles, especially on 640x480 screens.
2023-08-12 17:38:49 +02:00
antoniou79
b347be081c ANDROID: Support two finger touch mouse wheel 2023-08-11 16:52:06 +03:00
antoniou79
ba815489f8 ANDROID: Add delay for jump move and mouse down in direct multitouch
This fixes right click and hold behavior to choose a verb action from the "verb coin" in tony tough

Previously, in direct touch mode, the action selected would refer to the previous item that was under the cursor
before the jump to the new touch point.
2023-08-11 16:52:06 +03:00
antoniou79
fbf91a4b28 ANDROID: Add another delay (move to button down) for direct touch mode
Some engines seems to also expect such a delay (tested with Curse of Monkey Island and Tony Tough).

Without this added delay, direct touch mode would work ok in the launcher and GMM GUI but in-game there would be issues.
In Curse of Monkey Island, early difficult selection screen, it was not possible to select the difficulty with a simple tap (direct touch mode).
And in gameplay proper, a simple tap would move the cursor to the touched position but Guybrush would walk to the last position of the cursor (before it jumped to the new one)
Tony Tough had similar issues with its menu.
2023-08-08 10:56:53 +03:00
antoniou79
7959c431aa ANDROID: Make virtual keyboard arrow keys similar to physical
Basically treats the arrow keys from the virtual keyboard in a special manner

It translates them to KEYCODE_UP(/DOWN/LEFT/RIGHT) and if held down sents consecutive KEYUP / KEYDOWN events
instead of the previous behavior of setting the kbdRepeat flag and just sending repeated KEYDOWN events and one final KEYUP.
Previous behavior would result in poor navigation on lists when the arror keys were held down. The new system works better.
2023-08-07 17:31:02 +03:00
antoniou79
95f1ca2847 ANDROID: Fix double tap and right click hold for direct mouse mode
Also re-work slightly the system for handling the delayed mouse up touch event
2023-08-07 17:31:02 +03:00
antoniou79
3bb60278d6 ANDROID: JANITORIAL: Fix formatting 2023-08-07 17:31:01 +03:00
antoniou79
525d4ae46c ANDROID: GRAPHICS3D: Fix typo for virtual method 2023-08-07 08:52:15 +03:00
Thierry Crozat
fc51e86b3d IOS7: Prevent sleep when a task is running 2023-08-06 23:07:35 +02:00
Thierry Crozat
e0c67c3949 CLOUD: Notify the backend starting or finishing a download from the cloud 2023-08-06 23:07:35 +02:00
Thierry Crozat
b0ae8424c9 NETWORKING: Notify the backend when starting or stopping the local web server 2023-08-06 23:07:35 +02:00
Cameron Cawley
d8cca29783 BACKENDS: Allow filling part of the screen with OSystem::fillScreen 2023-08-06 23:03:46 +02:00
sluicebox
dc0ba4e14a WIN32: Re-enable Win32PluginProvider
In 2006, Win32PluginProvider was removed from Windows builds:
df5be194098e188f9cd3234af2bea34b67d19da2

Instead, SdlPluginProvider became the provider used in Window builds.
Currently, no code uses Win32PluginProvider.

The two classes are small and effectively do the same thing, but
Win32PluginProvider has the advantage of using our Windows string
conversion functions for paths, just like the rest of backend code.
We've seen problems before where SDL handles encoding differently:
0ab9653556f837ced66f73de8499170dcd3079be
2023-08-06 14:16:16 +02:00
Thierry Crozat
a719b6301d IOS7: Register a default iconspath 2023-08-05 17:16:13 +02:00
hax0kartik
6575c1cca8 CLOUD: Fix memleak in ConnectionManager 2023-08-04 17:48:11 +02:00
hax0kartik
d7ada7488b CLOUD: Fix memleak in CurlRequest 2023-08-04 16:35:21 +02:00
hax0kartik
05a4989bb5 CLOUD: Fix memleak due to addedRequests not being cleared 2023-08-04 16:35:21 +02:00
Lars Sundström
38eb53f1db IOS7: Add X and Y buttons to virtual controller 2023-07-21 23:06:01 +02:00
Lars Sundström
9a980c9dd4 IOS7: Fix show/hide of virtual controller in iOS 15
The change in commit 1b3c783b9eebbb3ee784a56db73b0a635328a4c3 assumed
that the orientation already had been updated when the system called
viewWillTransitionToSize. This seems to be true for iOS 16 while in
iOS 15 the orientation seems to be updated a bit later.

In iOS 16, make sure that the current orientation is updated when the
function viewWillTransitionToSize is called to make sure it's updated
when the adjustViewFrameForSafeArea is called. This makes sure that the
screen size is updated correctly when forcing the orientation based on
the backend user setting.
In iOS 15 (and below), set the current orientation when the transition
animation finishes to make sure that the interface orientation has been
updated to make sure the virtual controller is connected/disconnected
properly based on the orientation.
2023-07-21 23:06:01 +02:00