[Scummvm-git-logs] scummvm master -> a0bbeba17a9c4caf8913b6c50f66345e43012a2d
sev-
noreply at scummvm.org
Sun May 24 15:21:08 UTC 2026
This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
e904b3bb7b PS3: Add spawn process method to OSystem_PS3
58a75c6b9c PS3: Add support for launching engines and the launcher in a chained loop
a0bbeba17a CONFIGURE: Added generating file with list of enabled engines
Commit: e904b3bb7b3b7dfb36c38fe84333371e702fd0a9
https://github.com/scummvm/scummvm/commit/e904b3bb7b3b7dfb36c38fe84333371e702fd0a9
Author: PaweÅ KoÅodziejski (aquadran at gmail.com)
Date: 2026-05-24T17:21:04+02:00
Commit Message:
PS3: Add spawn process method to OSystem_PS3
Changed paths:
backends/platform/sdl/ps3/ps3.cpp
backends/platform/sdl/ps3/ps3.h
diff --git a/backends/platform/sdl/ps3/ps3.cpp b/backends/platform/sdl/ps3/ps3.cpp
index 277f164d513..30cdd5f8d07 100644
--- a/backends/platform/sdl/ps3/ps3.cpp
+++ b/backends/platform/sdl/ps3/ps3.cpp
@@ -35,6 +35,7 @@
#include <dirent.h>
#include <sys/stat.h>
+#include <sys/process.h>
static const Common::HardwareInputTableEntry playstationJoystickButtons[] = {
// I18N: Hardware key on controller
@@ -143,3 +144,7 @@ bool OSystem_PS3::hasFeature(Feature f) {
return OSystem_SDL::hasFeature(f);
}
+
+void OSystem_PS3::spawnProcess(const char *path, const char **argv) {
+ sysProcessExitSpawn2(path, argv, nullptr, nullptr, 0, 1000, SYS_PROCESS_SPAWN_STACK_SIZE_256K);
+}
diff --git a/backends/platform/sdl/ps3/ps3.h b/backends/platform/sdl/ps3/ps3.h
index ff1f585653e..49ab92de148 100644
--- a/backends/platform/sdl/ps3/ps3.h
+++ b/backends/platform/sdl/ps3/ps3.h
@@ -30,6 +30,7 @@ public:
void initBackend() override;
bool hasFeature(Feature f) override;
Common::HardwareInputSet *getHardwareInputSet() override;
+ static void spawnProcess(const char *path, const char **argv);
protected:
Common::Path getDefaultConfigFileName() override;
Commit: 58a75c6b9c9212a6c3d9bd7060859e5ae072808e
https://github.com/scummvm/scummvm/commit/58a75c6b9c9212a6c3d9bd7060859e5ae072808e
Author: PaweÅ KoÅodziejski (aquadran at gmail.com)
Date: 2026-05-24T17:21:04+02:00
Commit Message:
PS3: Add support for launching engines and the launcher in a chained loop
Changed paths:
base/main.cpp
configure
diff --git a/base/main.cpp b/base/main.cpp
index e507766e6a2..ded510cde28 100644
--- a/base/main.cpp
+++ b/base/main.cpp
@@ -94,6 +94,10 @@
#include "backends/fs/android/android-fs-factory.h"
#endif
+#ifdef PLAYSTATION3
+#include "backends/platform/sdl/ps3/ps3.h"
+#endif
+
#include "gui/dump-all-dialogs.h"
static bool launcherDialog() {
@@ -776,6 +780,10 @@ extern "C" int scummvm_main(int argc, const char * const argv[]) {
// Then, get the relevant Engine plugin from MetaEngine.
enginePlugin = PluginMan.findEnginePlugin(engineId);
if (enginePlugin == nullptr) {
+#ifdef PS3_MULTI_MODULES
+ Common::FSNode node((Common::String(PLUGIN_DIRECTORY "/") + engineId + ".self").c_str());
+ if (!node.exists())
+#endif
result = Common::kEnginePluginNotFound;
}
}
@@ -814,6 +822,20 @@ extern "C" int scummvm_main(int argc, const char * const argv[]) {
if (ttsMan != nullptr) {
ttsMan->pushState();
}
+
+#ifdef PS3_MULTI_MODULES
+ // For launcher instance, the process was called without additional params
+ // Launching an engine flow will spawn new process with <target-id> param
+ // New process path will be "<plugin-dir>/<engine-id>.self"
+ if (argc == 1) {
+ const char *spawnArgv[2]{};
+ Common::String enginePath = Common::String(PLUGIN_DIRECTORY "/") + plugin->getName() + ".self";
+ spawnArgv[0] = ConfMan.getActiveDomainName().c_str();
+ system.destroy();
+ OSystem_PS3::spawnProcess(enginePath.c_str(), spawnArgv);
+ }
+#endif
+
// Try to run the game
result = runGame(enginePlugin, system, game, meDescriptor);
if (ttsMan != nullptr) {
@@ -899,6 +921,14 @@ extern "C" int scummvm_main(int argc, const char * const argv[]) {
// reset the graphics to default
setupGraphics(system);
if (nullptr == ConfMan.getActiveDomain()) {
+#ifdef PS3_MULTI_MODULES
+ // For engine instance, process was called with <target-id> param
+ // Return to launcher flow spawn new launcher process without params
+ if (argc > 1) {
+ system.destroy();
+ OSystem_PS3::spawnProcess(PREFIX "/scummvm.self", nullptr);
+ }
+#endif
launcherDialog();
}
}
diff --git a/configure b/configure
index 84a4c6a16f2..ec4ef16e15c 100755
--- a/configure
+++ b/configure
@@ -7857,6 +7857,11 @@ case $_host_os in
append_var LDFLAGS "-Wl,--gc-sections"
fi
;;
+ ps3)
+ # This enable separate modules/executables and chaining execution
+ # between the launcher and engine processes
+ define_in_config_if_yes "$_release_build" "PS3_MULTI_MODULES"
+ ;;
esac
# Promote any warning to an error, only if explicitly asked
Commit: a0bbeba17a9c4caf8913b6c50f66345e43012a2d
https://github.com/scummvm/scummvm/commit/a0bbeba17a9c4caf8913b6c50f66345e43012a2d
Author: PaweÅ KoÅodziejski (aquadran at gmail.com)
Date: 2026-05-24T17:21:04+02:00
Commit Message:
CONFIGURE: Added generating file with list of enabled engines
Changed paths:
configure
engines.awk
diff --git a/configure b/configure
index ec4ef16e15c..203588e7825 100755
--- a/configure
+++ b/configure
@@ -7858,6 +7858,9 @@ case $_host_os in
fi
;;
ps3)
+ # Print enabled engines to 'configure.engines' file.
+ # It will help external build script to handle multiple builds per engine
+ awk -f "$_srcdir/engines.awk" -v _print_enabled_engines=yes < /dev/null
# This enable separate modules/executables and chaining execution
# between the launcher and engine processes
define_in_config_if_yes "$_release_build" "PS3_MULTI_MODULES"
diff --git a/engines.awk b/engines.awk
index 4672448d18a..93c8f80d009 100755
--- a/engines.awk
+++ b/engines.awk
@@ -325,7 +325,9 @@ BEGIN {
config_mk = "config.mk.engines"
config_h = "config.h.engines"
- if (_pass == "pass1")
+ if (_print_enabled_engines == "yes")
+ print_enabled_engines = 1
+ else if (_pass == "pass1")
pass = 1
else
pass = 2
@@ -438,6 +440,27 @@ END {
}
}
+ # Print enabled engines to 'configure.engines' file
+ # It will help external build script to handle multiple builds per engine
+ if (print_enabled_engines) {
+ printf("") > "configure.engines"
+ for (e = 1; e <= engine_count; e++) {
+ engine = sorted_engines[e]
+ if (get_engine_build(engine) != "no" && get_engine_sub(engine) == "no") {
+ line = engine
+ subeng_count = get_engine_subengines(engine, subengines)
+ for (s = 1; s <= subeng_count; s++) {
+ subeng = subengines[s]
+ if (get_engine_build(subeng) != "no") {
+ line = line "," subeng
+ }
+ }
+ print(line) >> "configure.engines"
+ }
+ }
+ exit 0
+ }
+
#
# Process components
#
More information about the Scummvm-git-logs
mailing list