1516 Commits

Author SHA1 Message Date
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
Miro Kropacek 182ad45eae AUDIO: Introduce DISABLE_MAME_OPL
Similar to DISABLE_DOSBOX_OPL and DISABLE_NUKED_OPL. Now with the null
driver available, weaker backends can be completely OPL emulation free.
2026-04-21 22:16:19 +03:00
Lothar Serra Mari bbe40c58c5 BASE: GUI: Show version build date/time only on non-release builds
Historically, we should the version build date wherever we display
the current ScummVM version.

However, this leads to issues with toolchains that care about reproducible
builds and thus set "fake" timestamps, e.g.

https://github.com/flathub/org.scummvm.ScummVM/pull/60#issuecomment-4150167445

Since we can derive the approximate release date based on our
new versioning scheme, it makes sense to hide the build date
from release builds and only use it for development builds
to keep track of "old" and "new" builds.
2026-04-12 14:38:56 +02:00
Cameron Cawley b93419019d ENGINES: Change SaveStateDescriptor description to use Common::String 2026-04-08 15:16:28 +03:00
ma-moon dd9af4c5d4 LIBRETRO: Add Libretro MIDI Out plugin 2026-04-06 14:13:56 +02:00
Donovan Watteau 756cbd0040 BASE: BUILD: Differentiate Apple Clang from vanilla Clang in About dialog 2026-04-06 01:27:00 +02:00
Eugene Sandulenko 7dc7a42904 RELEASE: This is 2026.2.1git 2026-03-28 21:47:26 +01:00
Eugene Sandulenko d21ef2e4cb RELEASE: This is 2026.2.0 2026-03-28 19:30:47 +01:00
Taz 22eaa6dfc3 LAUNCHER: Remove temporary game ID when detection fails. 2026-03-27 02:06:42 +01:00
Lothar Serra Mari 5c5db9e4b3 BASE: Add support for SDL3 in About dialog 2026-03-25 12:15:01 +01:00
Eugene Sandulenko 4bb4770c41 BASE: Added --dump-all-dialogs command line option
Is not intended for usage by users, hence not documented.

Also, make sure we cleanup its internally used settings,
it talsk to ConfMan via "dumper_force_resize" key
2026-03-02 23:17:27 +01:00
Lars Sundström 9712daeaa7 BASE: Do not register COREMIDI plugin for tvOS
tvOS doesn't have full CoreMIDI support as iOS and macOS have. Disable
the COREMIDI plugin so it's not included in the Apple TV builds.
2026-03-01 18:15:54 +01: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
elasota 276116a492 BASE: Fix --md5 complaining about Mac resources when used on non-Mac files 2026-02-18 00:53:59 +02:00
Eugene Sandulenko 44b8450bfe RELEASE: This is in fact 2026.1.1git (I forgot the suffix) 2026-01-20 22:44:13 +01:00
Eugene Sandulenko 2ef022d35f RELEASE: This is 2026.1.1 (or later) 2026-01-17 20:46:11 +01:00
Martin Gerhardy 27424c4894 BASE: EVENTRECORDER: control fast mode via record-mode argument 2026-01-05 13:25:04 +01:00
Martin Gerhardy 39682d3769 BASE: EVENTRECORDER: expose fast-mode to the command line 2026-01-05 13:25:04 +01:00
Martin Gerhardy f268d17f54 BASE: added json version of --list-engines 2026-01-05 13:25:04 +01:00
Martin Gerhardy a5d0c880e3 BASE: added json version of --list-targets 2026-01-05 13:25:04 +01:00
Martin Gerhardy 54de49d72a BASE: added --list-games-json option 2026-01-05 13:25:04 +01:00
Martin Gerhardy bc8208721f BASE: added --list-records-json for the event recorder 2026-01-05 13:25:04 +01:00
Cameron Cawley a166015406 GUI: Translate the default OK button in message boxes 2026-01-04 03:01:19 +03:00
Eugene Sandulenko ce9e35fddc RELEASE: This is 3.1.0git 2025-11-14 21:59:12 +01:00
Donovan Watteau 2ae50a5059 JANITORIAL: Update some old URLs, and use web.archive.org for deleted content 2025-10-29 14:22:37 +01:00
Christian Krause 49d2ba984d COMMON: Fix --renderer commandline option
- store the value of the renderer option properly in ConfMan
- fixes the problem that the 3D renderer for the GRIM engine
  could not be chosen
2025-10-29 12:44:22 +02:00
Eugene Sandulenko 4d9e3ceb9a RELEASE: This is 3.0.0git 2025-09-11 12:25:31 +02: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 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
Donovan Watteau 46adbc28e3 BASE: Remove an old strtol() limitation that was due to WinCE
The WinCE port is no more, so the strtol() check can use errno again.

This reverts some parts of commit 1b6453dff4.
2025-08-13 17:53:04 +03:00
Donovan Watteau 4e079189b1 BUILD: AUDIO: Drop support for Tremolo
Tremolo was an ARM-optimised fork of Tremor, bringing "better ogg
performance" on WinCE.

But the WinCE port is no more, and there are no other users of this
library.
2025-08-13 17:53:04 +03:00
Christian Kündig 412c8f248e MIDI: EMSCRIPTEN: Add Web MIDI Driver 2025-08-04 01:02:47 +02:00
Christian Kündig fa1d101027 AUDIO: Add a basic soundfont for fluidlite 2025-08-04 01:02:47 +02:00
Simon Delamarre e0634b8fd1 ENGINES: Move add-ons detection logic from GOB to base Engine class 2025-07-21 14:13:28 +02:00
Simon Delamarre 3ab25845ae ENGINES: Add a warning message for not supported add-ons 2025-07-21 14:13:28 +02:00
Eugene Sandulenko 7c013bdb2c BASE: Automatically detect Mac files
This essentially obsoletes --md5mac. Now, with --md5 we still
compute resource forks checksums if mac file is detected
2025-06-29 00:37:34 +02:00
Eugene Sandulenko 4c6dc99e5d BASE: Improve md5 calculations
* Explicitely designate full file checksum
* In case length ot engine is not specified, compute md5 for
  the most used sizes
2025-06-28 01:23:41 +02:00
Eugene Sandulenko fa3e9c0913 BASE: Fix engine setting for md5mac 2025-06-28 01:23:41 +02:00
Le Philousophe 3f7d37b03f COMMON: Make rotation mode fit other settings semantics
This also avoids configuration lookups at every frame update.
2025-06-15 13:22:31 +02:00
tunnelsociety 44b4b289b8 BASE: Show error description when game fails to run
The previous "not...any engine" message was appropriate in the past (circa
1a938956ec), but with changes over time it began appearing even for
other error conditions (e.g. some game data files missing); thus it was
sometimes incorrect.
2025-06-03 11:57:13 +03:00
Le Philousophe c80b3820dd BASE: Allow users to set antialiasing on command line 2025-06-01 08:24:34 +02:00
tunnelsociety fe142ede1a BASE: Fix MetaEngine leak in runGame
metaEngine could have been issued createInstance but not deleteInstance
if an engine failed to instantiate (e.g. if user cancels start of a
not-fully-supported game).
2025-05-14 23:27:12 +01:00
Miro Kropacek 24dcacfe69 JANITORIAL: Add missing references to const function parameters
Applied to all 'const Common::' and 'const Graphics::' instances.
2025-04-13 02:20:09 +03:00
Filippos Karapetis b0051b47b0 BASE: Use pointers when deleting inside range loops 2025-03-27 13:47:57 +08:00
Filippos Karapetis 4c5adb95ba BASE: Use C++ 11 range-based for loops 2025-03-27 13:47:57 +08:00
scemino 8afb2c1f62 BACKENDS: Add SDL3 backend + update imgui 2025-02-18 22:13:56 +01:00
naatje80 6829281937 Add support to select shader from the command line (#6429)
* Add support to select shader from the command line
2025-02-12 17:22:24 +01:00