9276 Commits

Author SHA1 Message Date
Lars Sundström
8e97e8dff4 IOS7: Refactor touchpad mode to utilize delta mouse function
Instead of having duplicated code, utilize the delta mouse function
also for touches when in touchpad mode.
2023-05-15 12:43:39 +02:00
Lars Sundström
01b9f728de IOS7: Implement relative mouse movements for touches
Send relative mouse movements from backend for touch events. The
relative x and y values are necessary for some games, e.g. Myst3.
2023-05-15 12:43:39 +02:00
Lars Sundström
d397938107 IOS7: Implement support for setting mouse pointer speed
Implement support to set the mouse pointer speed in settings.
The mouse pointer speed is applied to both mouse input and touch
input when in touchpad-mode.
2023-05-15 12:43:39 +02:00
Lars Sundström
72518221d8 IOS7: Scale mouse movements
The delta values are in number of pixels on the native screen
resolution. Need to scale down the delta values based on the
game resolution. Store reminders that are added to next deltas
to mitigate "dead zones" if doing small movements.
2023-05-15 12:43:39 +02:00
Lars Sundström
568b06940e IOS7: Add mouse input events
Add input events that can be used by mouse devices, e.g. mices and
touchpads. This event sends the raw input actions and doesn't care
about different controller modes such as click-and-drag.

Make the mouse controller utilize the new mouse input events.
2023-05-15 12:43:39 +02:00
Lars Sundström
5a0eccf337 IOS7: Rename mouse events to touch events
The current mouse events are handling events created from both touch
and mouse input. The events have lots of logic to deal with gestures
and different modes (touchpad mode, click-and-drag etc) which are not
applicable for hardware inputs.

Rename the current "mouse events" to "touch events" to clarify which
input that triggered an event. As this is the first commit in multi-
commit change, the mouse input need to use the "touch events" until
a new "mouse event" is implemented.
2023-05-15 12:43:39 +02:00
D G Turner
f1d2ba701a WII: Add Code for GDB Debugging Over Ethernet using TCP
The Gecko USB serial adapter is no longer easy to obtain and using
the Ethernet adapter instead is supported by devkitPro/libogc.

However, when enabled, this fails to link when dynamic plugins are
enabled due to missing symbols for gdbstub_getoffsets() found in
devkitPro/libogc/libdb/debug_supp.c. To be exact, this is the
u8 __text_fstart[],__data_fstart[],__bss_fstart[] which should be
implicitly provided by the linker(?)

A monolithic static build with this enabled does succeed, but has not
yet been tested.
2023-05-15 00:51:27 +01:00
Cameron Cawley
30bdbb6f76 Revert "GUI: Ensure that all keymap widgets fit within the scroll container"
This reverts commit d255fbe671f6d5f7effa99988131dd92845b8b5b.
2023-05-14 22:43:57 +02:00
elasota
ee758dee53 BACKENDS: Undo some formatting-only changes. 2023-05-14 22:42:59 +02:00
elasota
6c8ceeae25 BACKENDS: Refactor some things to make getDoubleClickTime behavior with event recorder simpler. 2023-05-14 22:42:59 +02:00
elasota
126ccc5983 BACKENDS: Fix double click time pull from event recorder not working correctly. 2023-05-14 22:42:59 +02:00
elasota
74ddbe5eaa BACKENDS: Add double-click time feature to support OS-configurable double-click intervals, implement it for Windows. 2023-05-14 22:42:59 +02:00
Hubert Maier
bce0eeb91c AMIGAOS: amigaos.cpp - Set default gfxmode to "surfacesdl" 2023-05-14 23:07:10 +03:00
Giovanni Cascione
14335f50aa LIBRETRO: refactor OSystem_libretro 2023-05-14 18:56:15 +02:00
Giovanni Cascione
a062f06bd1 LIBRETRO: add auto setup for extra/theme folders 2023-05-11 20:50:48 +02:00
Giovanni Cascione
2e98da4e9e LIBRETRO: add core path as fallback for system and save folders 2023-05-11 20:50:35 +02:00
Giovanni Cascione
3590bb387c LIBRETRO: add osd_notification 2023-05-11 20:50:22 +02:00
Giovanni Cascione
20ce78d889 LIBRETRO: move retroQuit in close_emu_thread loop 2023-05-11 20:50:06 +02:00
Giovanni Cascione
bf7938991d LIBRETRO: update libretro-common 2023-05-11 20:49:54 +02:00
Miro Kropacek
a6a5b8ab42 BACKENDS: ATARI: Handle themes in installation script
- "fat" version uses repacked (zip -0) archives; also separate "data"
  and "themes" folders
- "slim" version doesn't use any external themes (for speed reasons)
2023-05-11 00:03:44 +02:00
Miro Kropacek
aa8935e447 BACKENDS: ATARI: grabOverlay() uses accelerated blitting 2023-05-10 22:59:56 +02:00
Miro Kropacek
76d3706492 BACKENDS: ATARI: Add build scripts
- consolidate public #define's (just ATARI)
- cpu compiler flags are specified in the script
- allow explicit move16, SV and SV Blitter features enabled/disabled

Provide two build scripts:

1. "Fat" one targeted at 040/060 machines (possibly with SuperVidel)

This one is optimized for 68020-60 (so it's still possible to try
highres engines on 68030 machines).

2. "Slim" one targeted at 030 machines (Falcon030+DFB/CT2 or TT030)

This one is optimized for 68030 and stripped from even more features:
"fancy" (highres) themes, move16 & SuperVidel routines and most
importantly the highres engines.
2023-05-10 22:58:26 +02:00
Giovanni Cascione
72c3b53ae4 LIBRETRO: update libretro-deps 2023-05-09 21:57:15 +02:00
Giovanni Cascione
a96eca3025 LIBRETRO: add git version to debug log 2023-05-09 21:51:54 +02:00
Lars Sundström
4de20a8032 IOS7: Adjust the frame on safeAreaInsetsDidChange calls
There is a race condition when iOS updates the safe insets and
the view is updated on orientation changes. When rotating the
device the callback function interfaceOrientationChanged is
called. This triggers rebuildSurface to be called, which will
call updateOutputSurface, which will trigger initSurface. That
function will finally will adjust the main frame towards the
safe areas by calling the function adjustViewFrameForSafeArea.

But it seems that when adjustViewFrameForSafeArea is called the
safe insets values are not updated which will lead to wrong
offset values in the frame for touches which will make the mouse
pointer inaccurate.

The iOS system makes calls to safeAreaInsetsDidChange whenever
the safe insets values are updated. Make sure to update the frame
on these calls to get correct touch offsets.
2023-05-09 14:33:56 +02:00
Giovanni Cascione
842a52fd42 LIBRETRO: fix delayMillis regular method 2023-05-07 15:25:11 +02:00
Giovanni Cascione
6be7019fb0 LIBRETRO: move timer handler calls 2023-05-06 13:30:52 +02:00
Lars Sundström
5817e72d0d IOS7: Implement Apple GCVirtualController
Apple introduced the GCVirtualController in iOS 15 which is a
software emulation of a real controller. The virtual controllers
can be configurable with different inputs. See more info at:
https://developer.apple.com/documentation/gamecontroller/gcvirtualcontroller

A simple gamepad configuration with a dPad and A and B buttons
is added. The user can enable/disable the virtual game controller
swiping two fingers right to left, or through the port-specific
option dialog.
2023-05-05 22:35:03 +02:00
Lars Sundström
045ddca927 IOS7: Add dpad actions to gamepad controller
Some game engines requires the dpad to control a character. The GRIM
engine is an example of this where the user steer the character by
the arrow keys or dpad controller.
2023-05-05 22:35:03 +02:00
Lars Sundström
fac7008914 IOS7: Call correct delegate method
The wrong delegate method was called for touchesCancelled. This
led to button presses ended too early if moving the fingers.
2023-05-05 22:35:03 +02:00
Lars Sundström
6d325f26c6 IOS7: Write changes to mouse modes to ConfMan
When changing "Touchpad mode" or "Mouse-click-and-drag mode" by
swipe gestures, these changes must be stored in ConfMan.
2023-05-05 22:35:03 +02:00
Lars Sundström
7861bca156 IOS7: Don't disable "touchpad" mode when enabling "click-and-drag"
The "touchpad" mode and "click-and-drag" mode was mutual exclusive
when enabling "click-and-drag" using swipe gesture.

The difference between "touchpad" mode and "click-and-drag" mode
is how the button down/up events are sent. In touchpad mode the
button down and button up events are sent on touches ended, while
in click-and-drag the button down event is sent on touches began
and button up on touches ended.
2023-05-05 22:35:03 +02:00
Lars Sundström
a690552301 IOS7: Remove legacy gesture recognizers
These gesture recognizers were inherited from the iphone port. The
ios7 port use the UIGestureRecognizers to accomplish the same.
2023-05-05 22:35:03 +02:00
Lars Sundström
9bc623a8a4 IOS7: Implement port-specifc option widget
Include the newly added ios7_options implementation to the project.
Change the file type to .mm which is Objective C++ to be able to use
the @availble mechanism.

Implement virtual functions and fix build errors in initial code.
Also add help section for the tvOS port when building for tvOS.

Add ios7_options to POTFILES to get automatic translation on the
help section.
2023-05-05 22:35:03 +02:00
D G Turner
91b8c1bb89 WII: Fix Build When Debugging Wii Memory Usage 2023-05-05 18:16:57 +01:00
Giovanni Cascione
b84bc71c25 LIBRETRO: rework delayMillis 2023-05-05 04:50:43 +02:00
Giovanni Cascione
b71a9808a6 LIBRETRO: add libretro timer 2023-05-05 04:50:25 +02:00
Thierry Crozat
0b92f048dc IOS: Add back new delegate methods but keep old ones
On iOS 12 and below, the one delegate methods are called. On iOS13.2
and above if both sets are implemented only the new delegate methods
are called, which prevent getting the deprecation warning.
2023-05-03 21:35:17 +01:00
Thierry Crozat
d2554266b3 Revert "IOS7: Implement new delegate methods replacing deprecated ones"
This reverts commit 46d6a76b8ea36998665edf01a1e6fc989f255514.
The commit broke saving and restoring state when compiling with SDK 13
or above and running on iOS 12 or below. The functions to save/restore
were no longer called.
2023-05-03 01:54:22 +01:00
Giovanni Cascione
90680549f4 LIBRETRO: improve auto frameskip 2023-05-02 22:53:35 +02:00
Giovanni Cascione
65aed42e7f LIBRETRO: add retroDestroy() 2023-05-02 18:03:15 +02:00
Eugene Sandulenko
d362dc924e
BACKENDS: IOS7: Add inital code for port-specifc options 2023-05-02 11:13:02 +02:00
Lars Sundström
46d6a76b8e IOS7: Implement new delegate methods replacing deprecated ones
The delegate methods application:shouldRestoreApplicationState
is replaced with application:shouldRestoreSecureApplicationState
and the method application:shouldSaveApplicationState with
application:shouldSaveSecureApplicationState.

To support older versions of iOS, put them in a version check
macro.
2023-05-02 08:02:12 +02:00
Lars Sundström
50b67d97c4 IOS7: Implement use of Timer Dispatch Sources to drive timeHandler
The timeHandler was driven by calls to the pollEvent callback function.
Each time pollEvent was called the timeHandler called the TimeManager
handle function to advance in time and make sure scheduled tasks were
triggered.

This worked good for most game engines but some, e.g. the Hypno engine
was using the TimeManager to schedule tasks without calling pollEvent
since it was expecting nor handling events at the specific point in
time.

Since iOS have threads the timerHandler can be called from a separate
thread and not rely on pollEvent.
Implement timerHandler to use a Timer Dispatch Source which and make
it operate on a background thread rather than the main thread.
Read more on Dispatch Sources here:
https://developer.apple.com/library/archive/documentation/General/
Conceptual/ConcurrencyProgrammingGuide/GCDWorkQueues/GCDWorkQueues.html
2023-05-02 08:02:12 +02:00
Eugene Sandulenko
d78a28c816
BACKENDS: NETWORKING: Remove unneeded include 2023-04-29 23:45:58 +02:00
Giovanni Cascione
b5ca1b340e LIBRETRO: BUILD: add test for zip availability 2023-04-29 03:22:55 +02:00
Giovanni Cascione
b25798ac34 LIBRETRO: BUILD: define LDFLAGS as simple expanded var 2023-04-29 00:00:00 +02:00
Giovanni Cascione
e6a7bac64b LIBRETRO: add LIBRETRO_DEBUG mode 2023-04-28 23:59:41 +02:00
Giovanni Cascione
6722fbf5c3 LIBRETRO: align scummvm and libretro log levels 2023-04-28 23:59:18 +02:00
Thierry Crozat
59c6d6fe4b IOS7: Add check of size for log file to make sure it does not grow too much 2023-04-27 01:24:30 +01:00