[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