451 Commits
Author SHA1 Message Date
Miro Kropacek b5434d3922 BACKENDS: ATARI: Add MetaDOS audiocd support 2026-05-17 18:42:04 +10:00
Miro Kropacek 3a6a355c20 BACKENDS: SDL: Add plugins support for Atari/FireBee 2026-04-27 02:05:36 +10:00
Miro Kropacek 83ebddc748 BACKENDS: ATARI: Implement plugins 2026-04-27 02:05:36 +10:00
Miro Kropacek e09b9dfad6 PLUGINS: Provide __cxa_atexit & __cxa_finalize
Atari's mintelf platform has ELF support but its libc does not provide
__cxa_atexit / __cxa_finalize, so -fuse-cxa-atexit cannot be used out of
the box. Add a minimal shim (plus a __dso_handle definition for the main
executable) so plugins can register and finalize their function-local
static destructors per DSO on unload.

Note: earlier version ran __cxa_finalize from the host via
findSymbol("__dso_handle"). That works as long as exactly one
__dso_handle ends up in the plugin's symtab (the plugin's own).

When the main binary also defines __dso_handle (so the host's
function-local statics can link with -fuse-cxa-atexit), it breaks: the
plugin link uses --just-symbols=<main binary> and imports that as a
second __dso_handle, and findSymbol can then return the host-imported
one instead of the plugin's own. The two addresses differ, so
__cxa_finalize matches nothing.

The plugin-side helper avoids the ambiguity on every target by using
whichever __dso_handle the plugin's own code already resolved against --
the same one embedded in its __cxa_atexit calls. (PSP2's plugin runtime
has always called __cxa_finalize from inside the plugin for the same
reason; see backends/plugins/psp2/plugin.cpp.)
2026-04-27 02:05:36 +10:00
Le Philousophe 1fd96b5085 ANDROID: Rework the audio subsystem and use Oboe
It would appear that Oboe is the new audio library.
It's way more complex to handle (especially on really old devices), but
it brings low latency.
Oboe also comes with its share of warkaround to apply that have no
real doc... A fine piece of software...
2026-04-12 17:28:26 +02:00
Lars Sundström b699159689 IOS7: Integrate CoreMIDI into the iOS & tvOS backends
Integrate the existing CoreMIDI implementation used in the MacOS
backend into the iOS7 backend. The CoreMIDI framework is available
from iOS 4.2 and tvOS 15.0.

This allows ScummVM to detect external MIDI devices connected to
the device running ScummVM and to be selected as MIDI music output
device.
2026-03-01 15:51:57 +01:00
Eugene Sandulenko 9f3ec07fa7 COMMON: Move default PrintingManager implementation to common/
This should resolve the circular dependency.

Also, reverting hack to Makefile.common introduced in 9d8dada525
2026-02-16 19:02:04 +01:00
Henrik "Henke37" Andersson 5214c42246 WIN32: Add printman subclass 2026-02-15 14:37:24 +01:00
Henrik "Henke37" Andersson a49d7a90e1 COMMON: Add PrintingManager 2026-02-15 14:37:24 +01:00
Thierry Crozat 28cbd667d5 TTS: MACOS, IOS: Implement Text to Speech using AVSpeechSynthesizer
The NSSpeechSynthesizer API has been deprecated in recent macOS versions.
This commits adds an implementation using the newer AVSpeechSynthesizer,
available since macOS 10.14. The new implementation is only used when
building for Apple Silicon. In theory we could also use it when building
for 64 bit Intel macs and targetting macOS 10.14 or above, but there is
not much benefit in doing so.

As a bonus it should also work on iOS.
2026-02-02 20:33:05 +00:00
Le Philousophe 980fd5b54d ANDROID: Implement platform specific networking features
This allows to use system security services instead of us providing curl
and openssl.
HTTP, Socket and URL are all implemented with proxy support.
2025-11-02 09:12:23 +01:00
Le Philousophe 14a78e4eaf NETWORKING: Abstract CurlSocket and CurlURL
This will allow alternative providers.
2025-11-02 09:12:23 +01:00
Le Philousophe 57df0a6049 BACKENDS: Untangle networking USE flags
A new USE_HTTP define is created to indicate that an HTTP backend is
available (using either libcurl or emscripten platform).
USE_CLOUD now only builds cloud providers storage support, while
USE_SDL_NET determines if a local web server is built.
USE_LIBCURL is now only used when the feature really depends on libcurl
(that is lobby support for Scumm HE).
2025-08-13 18:38:54 +02:00
Christian Kündig ebfc9c8f55 CLOUD: Refactor ConnectionManager and NetworkReadStream 2025-08-13 18:38:54 +02:00
Christian Kündig f35ff12669 CLOUD: FS: EMSCRIPTEN: Implement cloud-backed filesystem so games can directly be run from cloud storage 2025-08-13 18:38:54 +02:00
Christian Kündig 629150b6e9 EMSCRIPTEN: CLOUD: Implement cloud support in Emscripten 2025-08-13 18:38:54 +02:00
Christian Kündig ea3c595ce8 CLOUD: Rename 'backends/networking/curl' to 'backends/networking/http' for future alternative http clients 2025-08-13 18:38:54 +02:00
Christian Kündig a7b33fbd9b CLOUD: Remove unneeded checks for USE_LIBCURL
USE_CLOUD is only set if libcurl (or another potential future http client) is enabled.
2025-08-13 18:38:54 +02:00
Christian Kündig c4fa025aae EMSCRIPTEN: FS: Implement filesystems in C++ and remove BrowserFS dependency 2025-08-04 01:02:47 +02:00
Christian Kündig 412c8f248e MIDI: EMSCRIPTEN: Add Web MIDI Driver 2025-08-04 01:02:47 +02:00
Miro Kropacek b3074272da BACKENDS: ATARI: Separate SuperVidel code
- Introduce AtariSurface: a surface which represents either a
  bitplane-based or pixel-based surface (on SuperVidel, as an inherited
  SuperVidelSurface). Screen::surf / Screen::offsettedSurf are its
  instances.

- Graphics::Surface::create / free now handle all Atari-related surfaces
  via dlmalloc: ST RAM (TT/Falcon), VRAM (SuperVidel - 0xA0xxxxxx) and
  VRAM for generic surfaces (SuperBlitter - 0xA1xxxxxx or ST/TT RAM).
  This allowed me to remove all the hacky stuff from atari-graphics and
  atari-superblitter.h.

- blit-atari.cpp now contains only blitting code
  (SuperBlitter/move16/fallback), SV code is in
  atari-supervidel.{cpp,h}.

- Take advantage of Common::ScopedPtr and Graphics::ManagedSurface's
  dispose flag for Screen::surf as well Graphics::ManagedSurface's
  ownership for Screen::offsettedSurf.

- Improve recoverability if an error/assert happens in
  AtariGraphicsManager's c-tor/d-tor.
2025-06-25 23:50:34 +02:00
Le Philousophe a2005c416a BACKENDS: SDL: Cleanup the obsolete 3D graphics manager
Also remove the now unused common parts
2025-06-01 08:24:34 +02:00
Le Philousophe 3a3b109ed4 IOS7: Cleanup the obsolete 3D graphics manager 2025-06-01 08:24:34 +02:00
Le Philousophe f33a321fe3 ANDROID: Cleanup the obsolete 3D graphics manager 2025-06-01 08:24:34 +02:00
Le Philousophe 45afd86a42 BACKENDS: OPENGL: Add 3D rendering support 2025-06-01 08:24:34 +02:00
Miro Kropáček df6a43d233 BACKENDS: ATARI: Introduce AtariFilesystemNode
Currently it only uses available OS/2 code for presenting disk drives in a nicer (and unified) way.
2025-05-23 18:39:08 +03:00
Christian Kündig c8102c4c6f EMSCRIPTEN: TTS: Add TTS based on Web Speech API 2025-05-20 12:05:23 +03:00
scemino 8afb2c1f62 BACKENDS: Add SDL3 backend + update imgui 2025-02-18 22:13:56 +01:00
Cameron Cawley a9ca83819d BACKENDS: OPENGL: Use the shared Texture class for the overlay in 3D games 2024-11-30 18:21:47 +02:00
Miro Kropacek feef4e1bf1 BACKENDS: ATARI: Final screen resolution changes
- seamless resolution/palette switching (at least in theory, it still
  isn't artifact-free, no clue why)

- bugfixes (shake offset, some s_screenSurf corner cases)

- simplification the triple-buffering code
2024-11-21 11:31:25 +01:00
Martin Gerhardy a3adb2933c BACKENDS: moved imgui_logger code from directory engine into backends code 2024-10-11 09:06:43 +02:00
Martin Gerhardy 059f0ca1d2 BACKENDS: added imgui window for showing a Graphics::Palette instance 2024-10-10 11:31:39 +02:00
Cameron Cawley c4d1359f45 BACKENDS: Remove the legacy Dingux backend
# Conflicts:
#	backends/module.mk
2024-09-30 00:24:25 +02:00
Cameron Cawley 197ba8cbd5 BACKENDS: Remove leftover GP2X references 2024-09-29 22:48:29 +01:00
Le Philousophe 2eebb5db02 BACKENDS: SDL: Add SDL2 Renderer support for ImGui
Some adaptations will be needed for the the engines.
2024-09-29 17:04:03 +02:00
Cameron Cawley 8c2619dfe4 TESTBED: Add an ImGui test 2024-09-29 16:40:53 +03:00
Vladimir Serbinenko d4369c5666 SDL: Move finger handling to common SDL code
It's also useful on Linux be it on desktop with touchscreen or mobile Linux
2024-09-27 03:26:47 +03:00
Vladimir Serbinenko 820cbe391a SDL: Merge finger handling on vita and switch
This code is very similar and not specific to either platform but is generic
touchscreen handling with SDL

Tested on Switch and Vita
2024-09-25 18:43:58 +03:00
Miro Kropacek c7bc03d4f4 BACKENDS: ATARI: Move Screen outside AtariGraphicsManager 2024-07-15 19:42:51 +02:00
Miro Kropacek 957aa15e7e BACKENDS: ATARI: Move Cursor outside AtariGraphicsManager 2024-07-15 19:42:51 +02:00
Miro Kropacek e9c7c8e03c JANITORIAL: atari_c2p-asm -> atari-c2p-asm 2024-07-15 19:42:50 +02:00
Le Philousophe 63c04eb700 EVENTRECORDER: Fix build and obvious mistype error 2024-06-05 19:02:18 +02:00
Eugene Sandulenko f5fa7aeb0c IMGUI: Switched to FreeType2 rendering 2024-05-21 21:02:48 +02:00
Eugene Sandulenko 4cd62e3398 BACKENDS: IMGUI: Renamed modified files to minimize diff with upstream 2024-05-17 01:46:45 +02:00
scemino c3745698e2 BACKENDS: Add the ability to load ScummVM fonts in ImGui 2024-05-03 21:24:08 +02:00
scemino ab17f10a6f BACKENDS: Try to fix imgui compilation errors 2024-03-17 13:09:32 +01:00
scemino 0cba66b204 TWP: Move ImGui to backends 2024-03-07 20:08:26 +01:00
Miro Kropacek f7d78ec70a BACKENDS: ATARI: Implement internal downsampling to 8-bit
So we don't rely on STFA's questionable algorithms and we can use
X-SOUND, too.
2023-11-09 18:20:06 +01:00
elasota bd857272f4 BACKENDS: SDL: Use null mixer if audio initialization fails, and add a flag to forcibly disable it for testing. Add an alternate call that returns true if the mixer manager is a null device.
SDL audio init will fail on Windows if all audio output devices are disabled.
Only about 10 engines are checking for this case and numerous pieces of common code (EmulatedOPL, VideoDecoder) fail as well, so this acts as a fallback to prevent instability.
2023-11-07 02:45:49 +01:00
Ankush Dutt a26d00a2b7 DLC: Remove Playstore code 2023-09-14 08:22:56 +02:00