Commit Graph
4923 Commits
Author SHA1 Message Date
Cameron Cawley 68fe8f77da DS: Remove duplicaFilesystemFactory creation 2024-03-06 23:37:20 +00:00
Cameron Cawley 5fdb5edd20 DS: Disable stdio buffering from newlib 2024-03-05 22:47:35 +00:00
elasota 7cfae77aad DISTS: Fix out-of-source-tree Win builds and multiple deps problems
Make .rh files dependent on their contents (maybe they should be deps of the .rc file?)
Make .rh files dependent on the .mk file that their item lists come from
Fix .rh files not creating destination directory
Fix .rh dependencies of .rc file being source-relative instead of build-relative
Fix .rh clean paths being source-relative instead of build-relative
Fix .rh generation appending to the old .rh instead of overwriting
2024-03-02 18:09:12 +01:00
elasota 4dc9ef2771 DISTS: Move engine data defs to dedicated files 2024-02-27 17:12:15 +01:00
Christian Kündig 82d0a4b06c EMSCRIPTEN: Load icons directly (not from an archive) 2024-02-27 17:07:13 +01:00
Christian Kündig e36640efdf EMSCRIPTEN: GRAPHICS: Enable OpenGL graphics mode by default 2024-02-27 17:07:13 +01:00
Christian Kündig 7bdadaefae EMSCRIPTEN: GRAPHICS: Fix screenshots 2024-02-27 17:07:13 +01:00
Christian Kündig bc73ee4b71 EMSCRIPTEN: Add support for saving logfiles 2024-02-27 17:07:13 +01:00
Christian Kündig 45c5f4673a EMSCRIPTEN: Cleanup file paths 2024-02-27 17:07:13 +01:00
Christian Kündig 4ea65b1a96 EMSCRIPTEN: Update Emscripten and cleanup build scripts 2024-02-27 17:07:13 +01:00
Miro Kropacek 9152c3dc4e BACKENDS: ATARI: Buffer also mouse buttons state
Now double-click works also on really slow hardware. And Hatari.

Also, partially revert commit 01a2d2ed because events can't be passed
to the (multitasking) OS. So basically let's hope that it works fine now
even without handling IKBD overruns. I'm not able to replicate the issue
with Hatari + FF + slow UI + mouse movement anymore.
2024-02-24 06:21:43 +01:00
Miro Kropacek 01a2d2edab BACKENDS: ATARI: Call original keyboard/mouse routines
This helps to solve the issue when one pushes 'Return' immediately after
Hatari's start. This issue appeared after introducing the
interrupt-driven audio mixer.

Not sure whether this was a real bug but it's much cleaner
implementation now anyway.
2024-02-24 03:54:54 +01:00
Miro Kropacek f41a678ba1 GRAPHICS: ATARI: Utilize dlmalloc
- every malloc is now aligned on 16 bytes

- no need for the hidden pointers

- ct60_vmalloc() is called only once, the rest is handled
  by dlmalloc (SV XBIOS' vmalloc is pretty fragile)
2024-02-24 03:54:54 +01:00
Lars Sundström 414c427fd6 IOS7: Use new key overload functions
Call the overload functions for key inputs and return the results
as an array of UIKeyCommands.
2024-02-23 22:41:18 +01:00
Lars Sundström c5ef6ecb77 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.
2024-02-23 22:41:18 +01:00
Lars Sundström 25d7787d9f 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.
2024-02-23 22:41:18 +01:00
Lars Sundström a8314ea05b 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.
2024-02-23 22:41:18 +01:00
Lars Sundström 8baa1de5d0 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.
2024-02-23 22:41:18 +01:00
Lars Sundström 2bbbdc75fb 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.
2024-02-23 22:41:18 +01:00
Lars Sundström 99fb3faf9d 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.
2024-02-23 22:41:18 +01:00
Lars Sundström c8d93ad820 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.
2024-02-23 22:41:18 +01:00
Hubert Maier d6b08d4d8d AMIGAOS: Remove local aspect ratio setting 2024-02-22 14:56:10 +01:00
Hubert Maier 7afb1708b0 AMIGAOS: Fix typo 2024-02-22 14:56:10 +01:00
rsn8887 bce07435c1 BACKENDS: (PSP) Include plugins when building psp_release 2024-02-21 16:58:13 -06:00
rsn8887 29f808bada BACKENDS: (PSP) Fix no rule error in makefile 2024-02-21 16:40:09 -06:00
rsn8887 042dfc01a2 BACKENDS: (PSP) Improve makefile 2024-02-21 13:18:12 -06:00
rsn8887 22f0f63f12 BACKENDS: (PSP) Improve analog stick pointer control 2024-02-20 19:23:19 -06:00
rsn8887 fcddbb0fc1 BACKENDS: (PSP) Fix missing General Midi device error 2024-02-16 10:25:13 -06:00
rsn8887 5fe3c560b6 BACKENDS: (Switch/PSP2) Fix General Midi device error 2024-02-16 10:12:03 -06:00
Giovanni Cascione 6fa7403b8b LIBRETRO: BUILD: add -rdynamic for debug builds 2024-02-12 23:13:53 +01:00
Giovanni Cascione 3904a7dd15 LIBRETRO: add process_key_event_wrapper 2024-02-12 23:13:23 +01:00
Giovanni Cascione d3ecd6c184 LIBRETRO: fix condition for playlist separator 2024-02-12 23:12:56 +01:00
Giovanni Cascione 1acd07483a LIBRETRO: remove unused vars 2024-02-12 23:12:22 +01:00
Giovanni Cascione 2927be0280 LIBRETRO: add retroarch playlist path retrieving 2024-02-05 23:21:23 +01:00
Giovanni Cascione fc097c3dbf LIBRETRO: add setLibretroDir 2024-02-05 23:21:01 +01:00
Giovanni Cascione 3d5c3d7afa LIBRETRO: remove THREAD_SWITCH_UPDATE short loop 2024-02-05 23:20:46 +01:00
Giovanni Cascione cf30fe324f LIBRETRO: refactor and improve audio run loop 2024-02-05 23:20:30 +01:00
Giovanni Cascione f30910e636 LIBRETRO: fix free audio buffers 2024-02-05 23:20:13 +01:00
Vladimir Serbinenko 0d2f87768e MIYOOMINI: Enable neon and freetype2 in documented compilation script 2024-01-30 05:01:36 +02:00
Miro Kropacek e1bda48e05 BACKENDS: ATARI: Change version to 2.9.0 2024-01-28 21:59:13 +01:00
Miro Kropacek 3e85aa3f4b BACKENDS: ATARI: Provide dlmalloc locally
It's much cleaner and easier to use than to depend on an unofficial mintlib fork...

Plus we are going to use its MSPACES feature anyway.
2024-01-28 21:59:13 +01:00
Le Philousophe 27c7572bd7 ANDROID: Get HiDPI density from Android metrics 2024-01-24 21:53:07 +01:00
Lars Sundström ceb54851c5 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.
2024-01-21 10:57:27 +01:00
Lars Sundström da19f39164 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.
2024-01-21 10:57:27 +01:00
Lars Sundström 20d14337c9 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.
2024-01-21 10:57:27 +01:00
Lars Sundström 4db72b15d2 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.
2024-01-21 10:57:27 +01:00
Vladimir Serbinenko c09feede0d MIYOO: Add a build script for musl variant of miyoo CFW 2024-01-20 23:55:32 +01:00
Vladimir Serbinenko 0e23319c6c KOLIBRI: Add explicit paths for ogg and vorbis
Auto-detect fails which is kinda expected with such weird paths
2024-01-20 23:52:50 +01:00
Vladimir Serbinenko bb530c76ee KOLIBRI: build-kolibri: Temporarily disable ags engine as it fails to compile 2024-01-20 23:52:50 +01:00
Vladimir Serbinenko 595f0421f6 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:52:50 +01:00