Commit graph

3424 commits

Author SHA1 Message Date
Cameron Cawley
153576f0b5 BACKENDS: Move implementations of hasFeature into the relevant OSystem subclasses 2020-03-27 22:50:41 +01:00
Cameron Cawley
a5b6a577de SDL: Remove unnecessary overrides of setFeatureState() and getFeatureState() 2020-03-27 22:50:41 +01:00
Cameron Cawley
205175c4e5 SDL: Don't allow switching to and from fullscreen if it isn't supported 2020-03-27 22:50:41 +01:00
Peter Kohaut
470a1d3586 ANDROID: Switch to Gradle
Updated NDK to r21 (LTS)
Switch target Android to 29 as it is required by Google Play Store
Switch minimum Android to 16 (4.1) as it is the lowest supported version by NDK
Removed MIPS and armeabi as they are no longer supported
Renamed Android build names into official ones
2020-03-27 22:45:25 +01:00
Thierry Crozat
8eac9606bc MACOSX: Check selector exists when trying to replace application menus
In particular it has been reported that setHelpMenu was introduced in
MacOS X 10.6. So hopefully this change will fix running ScummVM on
MacOS X 10.5 or older.

This might fix bug #11260: MAC OS X: App incomplete when launched on
OS X 10.5.8.
2020-03-22 20:36:35 +00:00
SupSuper
897efb1454 POSIX: Add support for native GTK file browserOnly enabled on platforms with libgtk 2020-03-22 20:46:42 +02:00
Bastien Bouclet
16d0687b66 SWITCH: Use ScummVM file buffering instead of newlib's implementation
Fixes #11384.
2020-03-16 14:53:09 -05:00
Bastien Bouclet
9cc2fee887 SDL: Enable joystick input by default
Game controller input is now enabled whenever a compatible device is
connected. The keymapper's keymaps are refreshed when a joystick is added
or removed.

Fixes #10366.
2020-03-16 18:41:27 +01:00
Cameron Cawley
3e94325df9 BACKENDS: Allow compiling certain backends for standard Linux platforms 2020-03-16 01:29:20 +02:00
rsn8887
bd1b346e08 BACKENDS: strip psp2 executable to reduce size 2020-03-14 00:46:46 -05:00
Bastien Bouclet
a155061ee4 KEYMAPPER: Set the default virtual mouse settings
Fixes the 3DS mouse cursor drifting.
2020-03-11 06:15:46 +01:00
Cameron Cawley
f2db412ba5 GUI: Store the shader name in the config file instead of the ID 2020-03-09 18:01:14 -05:00
Cameron Cawley
5fd8aed047 SDL: Move the compatibility functions into SurfaceSdlGraphicsManager 2020-03-09 22:15:45 +02:00
Bastien Bouclet
cd173c8739 3DS: Use the shared virtual mouse 2020-03-09 20:00:31 +01:00
Bastien Bouclet
568d882e80 KEYMAPPER: Introduce a Virtual Mouse event source
The Virtual Mouse is meant to provide a way to control the mouse cursor
on system without a physical mouse. It provides keymapper actions that
are expected to be bound to game controller axes or buttons.
2020-03-09 20:00:31 +01:00
Bastien Bouclet
d94c7c3bcc SDL: Move the keyboard mouse to a subclass of SdlEventSource
And deprecate it. The new Virtual Mouse system is expected to replace
it.
2020-03-09 20:00:31 +01:00
Eugene Sandulenko
75ba54aa3e BACKENDS: Remove LinuxMoto port.
This was a relatively short-lived port. We have it broken and
disabled on the buildbot since 2016. Also, the last builds
were provided in 2011. Thus, it makes a little sense to continue
to keep the code in the repository, as it gets bitrot.
2020-03-09 14:31:14 +01:00
rsn8887
32807393c5 SWITCH: Update platform readme 2020-03-06 23:25:18 -06:00
Bastien Bouclet
606a68172d 3DS: Set a translation context for the 3DS screen strings
So they can have dedicated translations.

Fixes #11371.
2020-02-28 05:46:36 +01:00
Thanasis Antoniou
bd1e2b8b87 ANDROID: Notes on superseded swap_menu_and_back_buttons conf key 2020-02-27 08:23:09 +02:00
Cameron Cawley
fffb25a47a
ANDROID: Add basic keymapper support (#2026)
* ANDROID: Remove hard-coded key mappings

* ANDROID: Add default key bindings
2020-02-26 10:23:47 +02:00
Cameron Cawley
a730e8775b SDL: Clean up keycode usage 2020-02-22 22:11:34 +02:00
Bastien Bouclet
e1358b966a 3DS: Defer texture updates when the palette changes
Fixes a performance issue with the Gob engine where the palette is
updated a large number of times during a single frame.
2020-02-14 06:21:46 +01:00
Bastien Bouclet
6218028f02 3DS: Add a note in the readme about using an older version of freetype2 2020-02-13 07:57:02 +01:00
Bastien Bouclet
2177e685b7 KEYMAPPER: Allow joystick half axes to be remapped 2020-02-09 08:34:16 -06:00
rsn8887
eea70a3c8c BACKEND: Allow SDL2 mapping of L2/R2, fix psp2/switch mapping 2020-02-09 08:34:16 -06:00
Bastien Bouclet
e4d17f881c 3DS: Convert RGB555 pixels to RGBA5551 when copying to the texture
It's faster than using Graphics::Surface::convertTo
2020-02-07 18:33:56 +01:00
Michael Ball
b08ab0e130 3DS: Implement dynamic graphics modes to improve performance
When launching a game, switch the graphics mode if necessary
(and by extension the pixel formats used for Graphics::Surfaces
and Sprites) to the one that most closely matches the pixel format
used in-game.

Additional Fixes:
- Fix to prevent cursor position from changing when exiting a menu.
- Fix to prevent updating of Magnification viewport position when
virtual keyboard is open.
- Cosmetic code fixes for improper whitespace and missing curly brackets.
- Remove RGB8 as a mode option because:
  1) It was already commented out in the master 3DS backend.
  2) There are currently no games that explicitly require it.

Notes:
- As these graphics modes are automatically implemented on a per-game basis, they
are meant for backend use only and are purposefully not accessible through the
Options menu.
- RGBA8 (aka RGBA8888) remains the default pixel format, being used for the launcher
menu, CLUT8, and for games which do not specify a particular format.
2020-02-07 18:33:56 +01:00
Bastien Bouclet
99b9db456a 3DS: Disable newlib buffered io and use ScummVM's implementation
Fixes #11342.
2020-02-07 18:33:56 +01:00
Thierry Crozat
98b7095527 IOS7: Fix implementation of getMillis()
The documentation indicates that it should return the number of
milliseconds since the application started. It was however using
a different reference (last boot of the device minus the sleep time)
resulting in a much bigger value than expected.
2020-02-01 22:56:25 +00:00
Bastien Bouclet
81aedefad0 3DS: Fix libcurl detection 2020-02-01 09:36:10 +01:00
Bastien Bouclet
a13ce39538 3DS: Fix keymap defaults to match documentation 2020-02-01 09:36:10 +01:00
Thanasis Antoniou
3c9741a4c3 ANDROID: Early fix for Android 9+ crash and config/save path issues 2020-01-31 17:23:15 +02:00
Eugene Sandulenko
6817478967 BACKENDS: SDL: Add override keywords 2020-01-31 12:39:23 +01:00
Bastien Bouclet
161ca5285d PS3: Fix controller button name
Geometrically accurate is not good enough.
2020-01-29 16:28:36 +01:00
Bastien Bouclet
05a7ca7b76 PS3: Use the appropriate gamepad button names for the keymapper 2020-01-29 08:51:30 +01:00
Bastien Bouclet
78ab571519 3DS: Update the port to take advantage of the new keymapper 2020-01-29 08:51:30 +01:00
Bastien Bouclet
2ef7365401 KEYMAPPER: Change backend default bindings to replace keymap defaults
Previously backend defaults where added to the keymap defaults.
However, it became apparent backends need to change the default bindings
to resolve conflicts.
2020-01-29 08:51:30 +01:00
Bastien Bouclet
43184657e9 EVENTS: Disable ScummVM's source of keyboard repeat events by default
Backends can still (and do) generate such events. This works around an
issue with the keymapper where the "DOWN" event would be mapped to a
key, but the corresponding "UP" event would be mapped to another one due
to a keymap change. The keyboard repeat generation system would believe
the key to be still pressed and send a continuous stream of repeat
events.
Ideally the keymapper should be fixed to always generate matching event
pairs. However this source of an infinite stream of events still looks
like trouble waiting to happen to me. Hence disabling it by default.
2020-01-29 08:51:30 +01:00
Bastien Bouclet
e973092aef KEYMAPPER: Enable remapping of the mouse buttons 2020-01-29 08:51:29 +01:00
Bastien Bouclet
426867f4bc KEYMAPPER: Give human readable descriptions to the keymaps 2020-01-29 08:51:29 +01:00
Bastien Bouclet
32174c9067 KEYMAPPER: Actions can now be bound to joystick buttons 2020-01-29 08:51:29 +01:00
Bastien Bouclet
df7ce0c55f KEYMAPPER: Rework HardwareInputSet not to allocate all possible inputs 2020-01-29 08:51:29 +01:00
Bastien Bouclet
df4bf6556c KEYMAPPER: Introduce custom engine actions
Custom engine actions are a new type of event the Keymapper can produce.
When an engine declares its keymap, it can declare it wants to receive
custom action events when the corresponding key is pressed, instead of
the originating hardware input events.

This system allows:
* Key bindings to be specified only once when declaring the keymap,
  instead of twice (when handling the events).
* To truly rebind keys in the keymaps dialog. When using traditional
  event mapping, the keymapper remaps the user keypress to the keypress
  expected by the game engine to perform the action. However, the engine
  still accepts the original keys.

The new concept of 'standard actions' defines a set of engine actions
that are commonly available in the games supported by ScummVM. Backends
can define default bindings for the standard actions to hardware
specific input devices.
2020-01-29 08:51:29 +01:00
Bastien Bouclet
be49fc4b9a SDL: Add a keymap for the graphics manager 2020-01-29 08:51:29 +01:00
Bastien Bouclet
7617723ab5 KEYMAPPER: Allow backends to register multiple keymaps 2020-01-29 08:51:29 +01:00
Bastien Bouclet
14663c4790 KEYMAPPER: Make the keymapper mandatory 2020-01-29 08:51:29 +01:00
Bastien Bouclet
cc336635a1 KEYMAPPER: Change custom backend action events not to be instant
Allows action consumers to choose if they want to react on the start or
on the end of an user interaction.
2020-01-29 08:51:29 +01:00
Bastien Bouclet
19de568e24 KEYMAPPER: Untangle the dependencies between Action and Keymap 2020-01-26 23:09:08 +02:00
Bastien Bouclet
3d48b54288 KEYMAPPER: Remove the ascii value from the hardware keys
The ascii value is for text input, which is not related to hotkeys.
2020-01-26 19:07:53 +01:00