Commit graph

9681 commits

Author SHA1 Message Date
Eugene Sandulenko
c506c495c1
ANDROID: This is 2.8.1.1 2024-09-07 17:27:55 +02:00
Le Philousophe
e1d61b5abe ANDROID: Add bundle build method 2024-08-29 16:56:39 +02:00
Le Philousophe
e2b1299d85 ANDROID: Hide on-screen buttons while native code is not started 2024-04-13 19:45:55 +02:00
Le Philousophe
61a832e5bb ANDROID: Don't display burger menu when in launcher 2024-04-13 19:45:55 +02:00
Le Philousophe
b8874fc265 ANDROID: Make on screen icons depend on screen orientation 2024-04-13 19:43:31 +02:00
Le Philousophe
b8d11f417b ANDROID: Rename showKeyboardControl to showOnScreenControls
This matches what the function really do: hide input method and main
menu icons
2024-04-13 19:43:31 +02:00
Miro Kropacek
c08705d440 BACKENDS: ATARI: Fix numpad mappings 2024-04-07 03:13:21 +02:00
Le Philousophe
060acc0aba IOS7: Fix build 2024-03-18 15:39:12 +01:00
Lars Sundström
6aeb738a2d IOS7: Update backend options tab layout
The backend options widget is now in a scrollcontainer widget.
Change the options widget to not be scrollable since the parent
widget is and remove unnecessary padding.

Cherry-pick of: 15be37dd64
2024-03-15 15:37:02 +01:00
Lars Sundström
9380859de0 IOS7: Add backend help information about external keyboards
Add tab describing the external keyboard support.

Cherry-pick of: b34b5ba2f1
2024-03-15 15:37:02 +01:00
Lars Sundström
862ec93457 IOS7: Fix memory leak when switching 3D framebuffers
When a 3D game does not support arbitrary resolutions a framebuffer
has to be created. The initSize method can be called multiple times
with different resolutions. Make sure to delete any existing
framebuffer before creating a new.

Cherry-pick of: 69554e0e52
2024-03-15 15:37:02 +01:00
Lars Sundström
d03dc0a37a IOS7: Make project build in Xcode 10.1
Builtin checks are not present in older Xcode versions. Add macros
to check the target iOS version.

Cherry-pick of: 975ac38f72
2024-03-15 15:37:02 +01:00
Lars Sundström
ef0c7e904f IOS7: Fix left mouse clicks with tap gesture on some devices
Left mouse clicks are generated by tap gestures. To protect against
false mouse clicks the tap gesture is cancelled if the finger is
moved. Normally a tap gesture is generating a touchesBegan event
but doesn't generate any touchesMoved events. But for some devices,
not sure if it's the device or if the screen is broken, a false
touchesMoved event can be triggered even though the coordinates
aren't changed at all.

Add a check to see if the coordinate has changed from when the touch
began to see if the tap gesture should be cancelled or not.

Cherry-pick of: dde3fa0ec3
2024-03-15 15:37:02 +01:00
Miro Kropacek
ea5ea3cd13 BACKENDS: ATARI: Prepare for 2.8.1 release 2024-03-10 22:28:41 +01:00
Miro Kropacek
d1884ece85 BACKENDS: ATARI: Disable aspect ratio correction
It's used only in surfacesdl backend.
2024-03-10 22:04:10 +01:00
Cameron Cawley
7d4e3f1601 DS: Remove duplicate FilesystemFactory creation 2024-03-08 13:52:07 +00:00
Cameron Cawley
079dca873d DS: Disable stdio buffering from newlib 2024-03-05 22:53:13 +00:00
Lars Sundström
823a060601 IOS7: Use new key overload functions
Call the overload functions for key inputs and return the results
as an array of UIKeyCommands.

Cherry-pick of: 498b9e9e31
2024-03-02 12:06:27 +01:00
Lars Sundström
28c5aaa40b IOS7: Add functions creating UIKeyCommands for special keys
Use the helper function to create an array of UIKeyCommands for the
END, HOME, PAGE UP, PAGE DOWN and the ESC keys. Add a generic handler
function that decides which action for which key.

This allows the application to register key presses of these keys,
however some of them requires iOS 13.4 or later.

Cherry-pick of: 633b7ea201
2024-03-02 12:06:27 +01:00
Lars Sundström
80dcfe0ff9 IOS7: Add functions creating UIKeyCommands for Fn keys
Use the helper function to create an array of UIKeyCommands for the
Fn keys. Add a generic handler function that decides which action
for which key.

This allows the application to register key presses of the Fn keys,
however only supoorted in iOS 13.4 and later.

Cherry-pick of: 7a251f010f
2024-03-02 12:06:27 +01:00
Lars Sundström
7fed8f4fe0 IOS7: Add functions creating UIKeyCommands for number keys
Use the helper function to create an array of UIKeyCommands for the
number keys. Add a generic handler function that decides which action
for which key.

Since not all keyboards have the function keys, Fn1-Fn12, e.g. the
Apple Magic Keyboard for iPads, map these keys to the number keys
when pressed together with the CMD modifier key. Fn11 and Fn12
requires CMD + Shift as modifier keys.

Cherry-pick of: 5c8315abbd
2024-03-02 12:06:27 +01:00
Lars Sundström
b423d3a327 IOS7: Add functions creating UIKeyCommands for roman letter keys
Use the helper function to create an array of UIKeyCommands for the
roman letter keys. Since most of the games supports input of roman
letters, overload these keys. Keys with other characters than these
are not overloaded and will therefore trigger the call to the
delegate function:
"textField:shouldChangeCharactersInRange:replacementString:"
and will therefore still be passed to the IOS7 event handler.
However no modifier flags will be passed for those and they will not
support repeated presses.

Add a generic handler function that decides which action
for which key.

Cherry-pick of: 1a5d247070
2024-03-02 12:06:27 +01:00
Lars Sundström
8c9608b928 IOS7: Add functions creating UIKeyCommands for arrow keys
Use the helper function to create an array of UIKeyCommands for the
arrow keys. Add a generic handler function that decides which action
for which key.

Since not all keyboards have the PAGE UP/DOWN nor HOME/END keys,
e.g. the Apple Magic Keyboard for iPads, map these keys to the arrow
keys when pressed together with the CMD modifier key.

Cherry-pick of: 77ecc595a3
2024-03-02 12:06:27 +01:00
Lars Sundström
9d6150fc84 IOS7: Add helper functions to overload keys
Currently the key inputs are sent to the IOS7 event handler on calls
to the delegate function:
"textField:shouldChangeCharactersInRange:replacementString:"
So when typing on either the software keyboard or a connected HW
keyboard the input is handled by the hidden textfield that is in
focus. The delegate is called on each key input and the character
typed is passed to the IOS7 event handler.

Doing as above has the drawback that if they user holds down a key,
common in games when shooting or moving, the key event is only sent
once. The delegate function is only called once per distinct key
press.

By implementing the keyCommands function and create UIKeyCommands
for a set of keys, the system will call a defined callback function.
This also enables repeatedly calls as long as the key is held down.

Modifier keys can also be configured to create UIKeyCommands to
trigger custom actions. This way we can overload the key functions
when they are pressed at the same time as a modifier key.

Add helper funtions that can be used to create UIKeyCommands for
a set of keys. Keys are represented by their input, e.g. the key
for the character 'c' is defined as a string with only one char,
the 'c', while special keys are represeented by strings defined
by the OS.

Register UIKeyCommands for all types of modifier keys and add a
function that can convert system modifier flags to flags used by
ScummVM.

Cherry-pick of: 7a1ebc05c9
2024-03-02 12:06:27 +01:00
Lars Sundström
b87b03ef16 IOS7: Pass key modifier flags to key events
Prepare the backend to send key modifier flags in the key events.
No modifier flags are sent at this point but will be added in
upcoming commits.

Cherry-pick of: b66dca78ae
2024-03-02 12:06:27 +01:00
Lars Sundström
326833c0e3 IOS7: Make specific options if running in macOS
Add a convenience function to check if the application is running
in macOS. Use this method to change the default visibility of on-
screen control buttons and function bar.
Neither of these are needed when running on macOS since both mouse
and keyboard are available. Also the mouse pointer in ScummVM does
not access the on-screen control buttons.

However this requires function keys and key combinations like e.g.
Alt+X to work to be able to save and quit games.
These will be added in future commits.

Cherry-pick of: 3d1fa1c1dd
2024-03-02 12:06:27 +01:00
Lars Sundström
6684dea683 IOS7: Update the window size correctly
Applications running on iOS are usually full screen. On newer iPads
and when running iOS applications on macOS the application window
size can be changed.

When running the iOS application on macOS using "Designed for iPad"
option, the window can be changed, also to full screen. The function
"safeAreaInsetsDidChange" is then called. Update the screen size
using the view window property instead of checking the UIScreen
window bounds since these never changes.

If forcing the application to run in full screen setting the option
UIRequiresFullScreen to TRUE, it seems to trigger ScummVM to run
in portrait mode instead of landscape mode when running the app in
macOS using "Designed for iPad" on Apple silicon macs.

The UI doesn't require full screen since the application handles
resolution changes nice.

Cherry-pick of: 2eb03dbc04
2024-03-02 12:06:27 +01:00
Lars Sundström
bef7933e25 IOS7: Make "Designed for iPad" on Mac silicon great again
It is possible to run iOS applications on macOS on Mac computers
running on Apple Silicon. This was possible before moving to the
ModularGraphicsBackend implementation in the iOS7 port with just
a little tweaking.

After the move to ModularGraphicsBackend, the ScummVM application
crashed on launch. There were two reasons for crashing;

1. dlsym() was called with the special handle RTLD_SELF to search
for the address binding of the GLES2 load symbol. Using RTLD_SELF
the search for the symbol is limited to the shared object issuing
the call to dlsym() and those shared objjects which were loaded
after it. When running an iOS app in macOS it seems that the app
is running inside a wrapper, which means that the objects resides
in a different level. Changing the search level to RTLD_DEFAULT
changes the search to also include all objects loaded at program
start-up.

2. As for the native macOS application, XCode also adds the
argument -NSDocumentRevisionsDebugMode YES if XCode option
"Allow debugging when using document Versions Browser" is on.
Make sure not to parse that argument also when building the
IPHONE target.

Cherry-pick of: 9d63f3901c
2024-03-02 12:06:27 +01:00
Lars Sundström
2fb03e4a51 IOS7: Fix toggling of mouse mode when HW keyboard connected
It was not possible to change the mouse mode between "Direct mouse"
and "Touchpad emulation" if a hardware keyboard was connected when
using the on-screen control button.

Fix this by checking if a hardware keyboard is connected.

Cherry-pick of: 19d173ea1b
2024-03-02 12:06:27 +01:00
Le Philousophe
c9083c8229 PLUGINS: Implement NONE relocations
ARM emit them in some cases and add it to MIPS for completeness

Fixes: #14905
2024-03-02 11:58:23 +01:00
Le Philousophe
1df4e92d29 BACKENDS: OPENGL: Don't take the alpha channel from the game texture
It's not always set correctly by engines (AGS) and a fill call to clear
the screen will set it to 0 along with the other components.
Setting the framebuffer to some transparent value is not something we
intend to do as this let the content underneath the drawing texture
visible like it's the case on ChromeOS.
This has been reported here: https://forums.scummvm.org/viewtopic.php?p=99293
2024-02-24 16:48:39 +01:00
rsn8887
e90a369a03 BACKENDS: (PSP) Improve analog stick pointer control 2024-02-20 19:25:02 -06:00
NoSFeRaTU
54a8a4eacb MM: XEEN: Initial MT32/LAPC-1 support
Some non-essential subroutines in fxEndSubroutine is not implemented.
Support is currently the same as original game, so Roland GS and there are no conversion to GM.
Music tracks requires at least MT32-compatible device with support of capital tone fallback in ROM.
Game is also extensively uses extended sounds found in CM-32L for sound effects, MT-32 will produce silence for those.
So using in combination with real CM-32L or emulated one is the best for now.
2024-02-17 15:20:37 -08:00
rsn8887
bca26826e8 BACKENDS: (PSP) Fix missing General Midi device error 2024-02-16 10:27:15 -06:00
rsn8887
57a79d4fd3 BACKENDS: (Switch/PSP2) Fix General Midi device error 2024-02-16 10:14:52 -06:00
rsn8887
c09039a39e SWITCH: remove dual panel touch remnants from Vita 2024-02-16 10:14:40 -06:00
Torbjörn Andersson
0e36250c29
SURFACESDL: Refresh cursor scaler along whith standard scaler (bug #14872)
Otherwise, the cursor scaler and standard scaler may be different types,
which can lead to scaling the cursor with a scaler that normally doesn't
allow it. In this particular bug report, it caused ScummVM to crash.
2024-02-11 16:35:08 +01:00
Miro Kropacek
10bafbe162 BACKENDS: ATARI: Fix a crash
_offsettedSurf must have the original screen dimensions, similar as done in
AtariGraphicsManager::Screen::reset().

Strangely, this bug was reproducible only in MagiC and not in FreeMiNT+MP.
2024-01-28 22:00:58 +01:00
Vladimir Serbinenko
b2768587e6
MIYOO: Add a build script for musl variant of miyoo CFW 2024-01-20 23:55:54 +01:00
Vladimir Serbinenko
1472a17918 KOLIBRI: Add explicit paths for ogg and vorbis
Auto-detect fails which is kinda expected with such weird paths
2024-01-20 23:51:30 +01:00
Vladimir Serbinenko
850cd4b2f5 KOLIBRI: build-kolibri: Temporarily disable ags engine as it fails to compile 2024-01-20 23:51:30 +01:00
Vladimir Serbinenko
845dbd9ba6 KOLIBRI: build-kolibri: Use a more common path to SDK
~/sdk is a pretty unusual path for kolibri SDK. Use a bit more natural
paths resulting from manual checkout.
2024-01-20 23:51:30 +01:00
Vladimir Serbinenko
76e3c79d8e KOLIBRI: Replace kos32sys.h
kos32sys.h is no longer available. Just declare DLL-related functions ourselves
like other programs do.
2024-01-20 23:51:30 +01:00
Vladimir Serbinenko
b42f769159 KOLIBRI: Remove sdl-stubs
Now similar SDL stubs are in the SDL library. We now have a conflict due
to slightly different prototypes. Just remove the stubs
2024-01-20 23:51:30 +01:00
Vladimir Serbinenko
d7bdb4b48b KOLIBRI: Update for new ksys.h
New ksys has renamed few structs and function. Propagate rename and
use _ksys_file_read_dir function instead of manual filling
2024-01-20 23:51:30 +01:00
Eugene Sandulenko
1d472ce32b
SDL: Print reported DPI info for Mac and SDL in the same format 2024-01-20 20:17:01 +01:00
Miro Kropacek
af55e17514 BACKENDS: ATARI: Disable ultima & hugo engines
- The only non-hires ultima engine is ultima1, not worth it. See
  also https://bugs.scummvm.org/ticket/14790. This prevents adding
  the 15 MB ultima.dat to the release archive.

- Disable hugo also in full version (oversight).

- Mention freemint version in readme.txt.
2024-01-01 16:28:27 +01:00
Eugene Sandulenko
4e9830bc21
HELP: Added explanation what ScummVM is and where to get help for Android and iOS 2023-12-26 15:21:57 +01:00
Alexander Reim
9c5eb67381 WII: Removed system restart when exiting ScummVM
Quitting ScummVM resulted in a black screen around DevKitPPC R33. With the current version, a forced restart of the WII is no longer necessary. After exiting ScummVM, the WII jumps back to the start menu or the Homebrew Channel.
2023-12-20 09:22:38 +01:00
Miro Kropacek
dc3c7f1daf BACKENDS: ATARI: Last minute changes (cosmetic) 2023-12-19 14:49:08 +01:00