Commit Graph
4357 Commits
Author SHA1 Message Date
Cameron Cawley 7f2d9fd0fd GRAPHICS: Split conversion.cpp into multiple files 2022-12-22 23:45:14 +01:00
Cameron Cawley 8cd1f1413f DS: Fix building from a clean source directory 2022-12-22 19:36:56 +00:00
Cameron Cawley 066979c96a DS: Display the ScummVM logo on the top screen when the launcher is active 2022-12-22 18:21:04 +00:00
Cameron Cawley 435ced7c5c DS: Separate the Background class from Graphics::Surface 2022-12-22 12:25:47 +00:00
Rudis Muiznieks 930028522e ANDROID: Simplify Joystick axis scaling
The scaling of Joystick axis values has been moved to the Java event
handler.
2022-12-19 00:36:51 +00:00
Rudis Muiznieks c33a65e32b ANDROID: Map Joystick inputs to Joystick events
Previously joystick motion inputs were being translated to direct mouse
movement events. This changes those into Joystick AXIS events instead.
Also updates joystick button inputs into joystick button events instead
of mouse clicks and key presses.
2022-12-19 00:36:51 +00:00
Rudis Muiznieks fb9416eacb ANDROID: Map gamepad inputs to joystick events
Previously most buttons were being ignored and A and B were mapped to
mouse clicks. This maps A and B and several more buttons to Joypad
button presses instead.
2022-12-19 00:36:51 +00:00
Vladimir Serbinenko 2638e6b2a0 3DS: Make path to bannertool and makerom configurable.
This allows to set them without adding to path
2022-12-14 12:17:39 +01:00
Vladimir Serbinenko e34c41eaaa 3DS: Add explicit path to picasso, bin2s and co
This avoid the need to add them to $PATH explicitly
2022-12-14 12:17:39 +01:00
sluicebox 442792eb78 WIN32: Remove SHGetSpecialFolderPath warnings on Win95 2022-12-07 16:26:07 -08:00
Lars Sundström f76cf2195e IOS7: Make "touchpad mode" usable again
"Touchpad mode" is a mode where the mouse cursor is moved based on touch
movements rather on clicks. The problem was that when "touchpad mode"
was enabled it was very hard to click on items because the cursor moved
on every single click.

Make the action occur based on the current pointer position rather on
the touch location  when in "touchpad mode".

Make the movement more intuitive when in "touchpad mode" by calculating
the delta of locations of touches and update the pointerPosition based
on that. That will give a feeling of using a real touchpad where the
location of where the touch occur doesn't matter for the cursor.

This will solve issue #13917
2022-12-05 22:02:13 +00:00
Donovan Watteau af87992771 DS: Clean map.txt leftover from -Wl,-Map,map.txt 2022-12-02 13:46:09 +01:00
Eugene Sandulenko fb7095f5a4 COMMON: Move all compression-related files to a separate directory 2022-12-01 11:53:02 +01:00
Donovan Watteau 06380fc9c3 MACOSX: Prefer openURL/openURLs over openFile on macOS 10.15+
They're the recommended APIs now, and openFile is deprecated starting
with macOS 11.0. openURLs:withApplicationAtURL (for TextEdit usage)
requires macOS 10.15+, so we need different code paths.
2022-11-29 00:11:03 +01:00
Cameron Cawley e04000d4b0 COMMON: Move FFT, DCT, MDCT, RDFT, SineTable, CosineTable and getSineWindow into Math 2022-11-20 14:32:05 +01:00
Cameron Cawley 9f4f22b3bf AUDIO: Support mono audio output in the mixer 2022-11-18 17:17:00 +01:00
Hubert Maier c8f89326a8 AMIGAOS: Add first time user defaults 2022-11-15 08:36:33 +00:00
Gleb Mazovetskiy d516833aef OPENDINGUX: Reduce default cursor speed (#4422)
The default cursor speed is too fast to navigate the menus and
pixel-hunt. Reduces the default speed to 2 ("8") to make it manageable.

Also makes the cursor speed configurable from the UI.
2022-11-13 13:28:16 +01:00
Gleb Mazovetskiy 8801b4eed2 OPENDINGUX: Update build instructions (#4421)
1. Point to the new releases page.
2. Explain how to install the toolchain.
2022-11-13 08:35:01 +01:00
Le Philousophe 87bad2cc7d COMMON: Allow games to use overlay for something else than GUI
This can be used for subtitles without changing the mouse coordinates.
2022-11-12 19:12:05 +01:00
Donovan Watteau 5db6e27eca MACOSX: Fix NSUInteger definition on macOS 10.4
NSUInteger should be an `unsigned int` on 32-bit Tiger, and an
`unsigned long` on 64-bit Tiger. In practice, this wasn't really a
problem since we were always using `unsigned long` which has the same
width on 32-bit Tiger, but still it's more correct to do what the
official 10.5 SDK does.

The preprocessor defines come from Apple's documentation and from
their SDK. We can use it as-is, since we're in the backend code, and
already in an ifdef only targeting Tiger (where I've tested this
change).

Also fix a small GCC warning while there.
2022-11-09 12:27:51 +01:00
rsn8887 984341d73f BACKENDS: PSP: Remove unused code in RGBA8888 path 2022-11-06 10:59:02 -06:00
rsn8887 6ae4512a42 BACKENDS: PSP: Support RGBA8888 by swapping bytes 2022-11-05 14:00:32 -05:00
Donovan Watteau 4f5ccdbe75 MACOSX: Update some comments about macOS 10.4/10.5 behavior
Found while doing a review of our existing workarounds for those
versions, and the system features which can be used there.

Also fix indentation and some typos while there.
2022-11-05 10:09:58 +01:00
Hubert Maier a10cbd3199 BACKENDS: Correct spelling mistake
occured -> occurred
2022-10-27 15:56:04 +02:00
Le Philousophe 6524f7beb5 COMMON: Forbid use of unsafe sprintf and vsprintf 2022-10-23 22:46:19 +02:00
Le Philousophe f61400075f PSP: Don't use unsafe sprintf and vsprintf 2022-10-23 22:46:19 +02:00
Le Philousophe 29f5d51972 DC: Don't use unsafe sprintf and vsprintf 2022-10-23 22:46:19 +02:00
Le Philousophe 9c04d72471 COMMON: Forbid use of unsafe strcat and strcpy 2022-10-23 22:46:19 +02:00
Le Philousophe 6293c2b3c2 WIN32: Don't use unsafe strcat and strcpy 2022-10-23 22:46:19 +02:00
Le Philousophe 387da5b820 WII: Don't use unsafe strcat and strcpy 2022-10-23 22:46:19 +02:00
Le Philousophe 6f5ac54828 DC: Don't use unsafe strcat and strcpy 2022-10-23 22:46:19 +02:00
jacobhyman 6931714c2f ANDROID: Fix touchscreen stylus check 2022-10-23 19:33:21 +02:00
Le Philousophe 42ff7120dc SDL: Fix missing replacement for enginesShadersSupported 2022-10-06 19:53:52 +02:00
Donovan Watteau bf5e489567 JANITORIAL: Fix "to to" and "if if" typos in some comments 2022-09-11 17:45:25 +02:00
Le Philousophe 111d259015 ALL: Add limits.h for all codebase 2022-08-22 15:38:10 +02:00
Le Philousophe a0f02d93c5 JANITORIAL: Refresh all portdefs
Make sure all needed includes are really included
2022-08-22 15:38:10 +02:00
Lars Sundström f9e1806b14 IOS7: Update README.md with support for external devices 2022-08-08 21:08:56 +01:00
Lars Sundström e7759ac0ef IOS7: Implement getHardwareInputSet to get connected devices
Trigger EVENT_INPUT_CHANGED when devices connects to make the ScummVM
engine update the hardware input set.
2022-08-08 21:08:56 +01:00
Lars Sundström d76bc708c0 IOS7: Add isConnected property to GameControllers 2022-08-08 21:08:56 +01:00
Lars Sundström 8d395fd790 IOS7: Add support for Extended Gamepad controllers
Add support for Extended Gamepad controllers. What defines extended
gamepad controllers can be found here:
https://developer.apple.com/documentation/gamecontroller/gcextendedgamepad

Support has been added for controlling the pointer position using the
left thumbstick, left clicks using the A-button and right clicks using
the B-button. Also the Main menu can be accessed using the Home/Menu
button.

The thumbstick values are received when changed, however if holding the
thumbstick in the same position the valueChangedHandler will not be
called. Therefore store the X- and Y-axis values and begin to poll
readings of the stored values for as long as the thumbstick is out of
the center position.
2022-08-08 21:08:56 +01:00
Lars Sundström f18305e715 IOS7: Add support for Joystick actions in GameController
Joystick actions are suitable for joysticks and gamepads where the
movements are updated by a controller stick. On gamepads that's usually
a thumbstick.

Add joystick events which can be triggered by each implemented
controller that should utilize the ScummVM Joystick events.
2022-08-08 21:08:56 +01:00
Lars Sundström c3513a151e IOS7: Add Mouse support using GameController framework
Add support for mouses using the GameController framework. This requires
iOS 14 and up. The trackpad on the magic keyboard to iPads is connected
as a mouse and of course other connected mouses.

The mouse movements triggers calls to the mouseMovedHandler code
block. The calls delivers delta movements on the X and Y axis from the
last pointer position. It doesn't keep track on where the pointer is in
the view. That's where pointerPosition property in the iPhoneView comes
into place.
2022-08-08 21:08:56 +01:00
Lars Sundström db2e15b3f1 IOS7: Factor out touch pointer handling to TouchController class
Move touch inputs to a TouchController class to move some logic from the
iPhoneView class. Only do this for touches on screen since connected
trackpads can generate touches as well. The latter ones are of type
UITouchTypeIndirectPointer while touches on screen are of type
UITouchTypeDirect. They are separated thanks to the preference key
UIApplicationSupportsIndirectInputEvents set to YES in Info.plist.
Without the preference above, there is no way to distinguish touches
from screen from a trackpad.
2022-08-08 21:08:56 +01:00
Lars Sundström 15507ebc50 IOS7: Add GameController base class
Add a GameController base class which handles user inputs from a
controller. The input is either a pointer move or a button action.
If the input is a pointer move, make sure that the move is within
valid coordinates in the game (respecting the resolution which is
most probably lower than the view resolution).
2022-08-08 21:08:56 +01:00
Lars Sundström 877d1ffa67 IOS7: Add pointerPosition property to iPhoneView class
Let the view keep the current pointer position as a property, allowing
it to be modified by controllers.
2022-08-08 21:08:56 +01:00
Lars Sundström 6387046666 IOS7: Make iPhoneView addEvent and getMouseCoords functions public
Squash with the one above
2022-08-08 21:08:56 +01:00
Lars Sundström f8604faf41 IOS7: Set view controller's preference to lock the pointer
Setting this property to true indicates the view controller’s preference
to lock the pointer, although the system may not honor the request.

For the system to consider locking the pointer:
The scene must be full screen, not in Split View or Slide Over, with no
other apps in Slide Over.
The scene must be in the UISceneActivationStateForegroundActive state.

The ScummVM iOS7 client fulfills the above so the pointer is locked.
Locking the pointer hides the OS cursor (the dot), however that's wanted
since the ScummVM engine draws its own pointer.
2022-08-08 21:08:56 +01:00
Le Philousophe 8829a9b4c0 VITA: Remove the now useless alternative targets 2022-08-07 18:15:09 +02:00
Le Philousophe 2a84d3e988 VITA: Add plugins support 2022-08-07 18:15:09 +02:00