Commit Graph

9292 Commits

Author SHA1 Message Date
PushmePullyu
e7fa161386 AMIGAOS: Cleanup and free signals via atexit()
Fixes #6956 "ScummVM returned with unfreed signals (AmigaOS4)"
2023-06-21 08:27:04 +03:00
antoniou79
8cef7b8b69 JANITORIAL: Fix code indentation 2023-06-17 22:14:37 +03:00
antoniou79
68c293a004 GUI: Ommit aspect ratio checkbox if this feature is missing
Also fix compilation when building for --disable-aspect (buggy end bracket in backends/graphics/surfacesdl/surfacesdl-graphics.cpp)
2023-06-17 20:21:29 +02:00
antoniou79
38e88cde66 BACKENDS: GRAPHICS: Implement scaler scrolling for OpenGL
Using the Ctrl+Alt+0 or 9 keymap

Also added a guard check for kFeatureScalers to allow the actions (kActionNextScaleFilter, kActionPreviousScaleFilter) to change scaler (but not scaler factor) in sdl/sdl-graphics.cpp
2023-06-17 20:21:29 +02:00
hax0kartik
76bf31f630 KEYMAPPER: Add functions to enable/disable keymaps 2023-06-16 16:45:57 +02:00
Miro Kropacek
d9eee7906a BACKENDS: ATARI: Use unordered_set for dirty rects
This allows efficient redraw of surfaces which don't change their
position too much.
2023-06-15 22:58:13 +02:00
Miro Kropacek
2ce02658ec BACKENDS: ATARI: DMA playback is not always active
E.g. in the overlay there's no need to steal cycles for playing empty
sample buffer.

Also make STMIDI default audio driver for the slim version.
2023-06-15 22:57:55 +02:00
Miro Kropacek
5537759c53 BACKENDS: ATARI: Rework
- Atari TT support
- all video and audio is now handled via XBIOS
- reworked IKBD handling using Kbdvbase vectors, esp. Kbdvec()
- video uses proper triple buffer
- arbitrary game screen size support
- many fixes and optimizations
2023-06-15 22:57:55 +02:00
Miro Kropacek
62d3a3c16e BACKENDS: ATARI: work around engines with unaligned pitch
Too complex to investigate so don't align every 8-bit surface on a
16-byte boundary there.
2023-06-10 23:27:57 +02:00
Le Philousophe
caa7e5c8df ALL: Add limits for all codebase 2023-06-06 08:14:25 +02:00
Le Philousophe
906a957b4a SURFACESDL: Apply the key color in the cursor margins
This avoids artefacts on borders when using scalers like AdvMame.
This fixes bug #14308
2023-06-04 18:24:06 +02:00
Le Philousophe
6ee040ee55 ANDROID: Fix glClearColor call
This function takes floats between 0 and 1 and not integers
2023-06-04 18:22:59 +02:00
Le Philousophe
a95f42317c BACKENDS: OPENGL: Clear screen using opaque black instead of transparent
This looks like an overlook since the creation of the backend.
Previous Android backend used this and it shouldn't harm other
platforms.
This should fix a bug on ChromeOS.
2023-06-04 18:22:59 +02:00
Le Philousophe
287b228af0 POSIX: Add AppImage support
And add a target to generate the image
2023-06-01 20:39:17 +02:00
Le Philousophe
f683b9b916 DISTS: Fix AppData id and update it to latest specification
AppData id should really be a rDNS but its filename and desktop
filename must match this id.
This commit makes everything match.
The provides directive must not mention its own desktop file but
launchable should.
2023-06-01 20:39:17 +02:00
Thierry Crozat
0eca37a262 BACKENDS: Remove old iPhone backend
This backend was no longer maintained and have had no release
and no daily builds for several years.
2023-05-31 19:31:19 +01:00
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 d255fbe671.
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