[Scummvm-git-logs] scummvm master -> b179e3bca01930b7f26d2c7068ce0d5c65dd9415

spleen1981 noreply at scummvm.org
Sun Mar 30 08:42:52 UTC 2025


This automated email contains information about 6 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
17e399b480 LIBRETRO: add kFeatureOpenGLForGame
746cc04b8d LIBRETRO: add kFeatureShadersForGame flag
92597f2996 LIBRETRO: BUILD: drop third party db supported extensions
5ef493824a LIBRETRO: JANITORIAL: fix typo
34c7bcb070 LIBRETRO: update README.md
b179e3bca0 LIBRETRO: update in-laucher playlist generator help


Commit: 17e399b480e3727c9dc338539e1ddacd16a86631
    https://github.com/scummvm/scummvm/commit/17e399b480e3727c9dc338539e1ddacd16a86631
Author: Giovanni Cascione (ing.cascione at gmail.com)
Date: 2025-03-30T10:41:05+02:00

Commit Message:
LIBRETRO: add kFeatureOpenGLForGame

Changed paths:
    backends/platform/libretro/src/libretro-graphics-opengl.cpp


diff --git a/backends/platform/libretro/src/libretro-graphics-opengl.cpp b/backends/platform/libretro/src/libretro-graphics-opengl.cpp
index 1e591bfdc47..2543bc66133 100644
--- a/backends/platform/libretro/src/libretro-graphics-opengl.cpp
+++ b/backends/platform/libretro/src/libretro-graphics-opengl.cpp
@@ -104,6 +104,7 @@ bool LibretroOpenGLGraphics::hasFeature(OSystem::Feature f) const {
 #ifdef SCUMMVM_NEON
 	    (f == OSystem::kFeatureCpuNEON) ||
 #endif
+	OSystem::kFeatureOpenGLForGame ||
 	    OpenGL::OpenGLGraphicsManager::hasFeature(f);
 }
 


Commit: 746cc04b8d857cccf3bee788b239caf567d7200a
    https://github.com/scummvm/scummvm/commit/746cc04b8d857cccf3bee788b239caf567d7200a
Author: Giovanni Cascione (ing.cascione at gmail.com)
Date: 2025-03-30T10:41:25+02:00

Commit Message:
LIBRETRO: add kFeatureShadersForGame flag

Changed paths:
    backends/platform/libretro/src/libretro-graphics-opengl.cpp


diff --git a/backends/platform/libretro/src/libretro-graphics-opengl.cpp b/backends/platform/libretro/src/libretro-graphics-opengl.cpp
index 2543bc66133..daf4606df71 100644
--- a/backends/platform/libretro/src/libretro-graphics-opengl.cpp
+++ b/backends/platform/libretro/src/libretro-graphics-opengl.cpp
@@ -102,10 +102,11 @@ void LibretroOpenGLGraphics::handleResizeImpl(const int width, const int height)
 bool LibretroOpenGLGraphics::hasFeature(OSystem::Feature f) const {
 	return
 #ifdef SCUMMVM_NEON
-	    (f == OSystem::kFeatureCpuNEON) ||
+	(f == OSystem::kFeatureCpuNEON) ||
 #endif
-	OSystem::kFeatureOpenGLForGame ||
-	    OpenGL::OpenGLGraphicsManager::hasFeature(f);
+	(f == OSystem::kFeatureOpenGLForGame) ||
+	(f == OSystem::kFeatureShadersForGame) ||
+	OpenGL::OpenGLGraphicsManager::hasFeature(f);
 }
 
 void LibretroHWFramebuffer::activateInternal() {


Commit: 92597f299616f20a25fb2d208f096f927516af8e
    https://github.com/scummvm/scummvm/commit/92597f299616f20a25fb2d208f096f927516af8e
Author: Giovanni Cascione (ing.cascione at gmail.com)
Date: 2025-03-30T10:41:43+02:00

Commit Message:
LIBRETRO: BUILD: drop third party db supported extensions

Changed paths:
    backends/platform/libretro/scripts/bundle_datafiles.sh


diff --git a/backends/platform/libretro/scripts/bundle_datafiles.sh b/backends/platform/libretro/scripts/bundle_datafiles.sh
index 590f017e798..a50c9c896eb 100755
--- a/backends/platform/libretro/scripts/bundle_datafiles.sh
+++ b/backends/platform/libretro/scripts/bundle_datafiles.sh
@@ -108,23 +108,13 @@ if [ -d "$BUNDLE_LOCAL_DATAFILES_DIR" -a ! -z "$(ls -A ${BUNDLE_LOCAL_DATAFILES_
 fi
 
 if [ ! $3 = "bundle" ]; then
-
-# Update from libretro ScummVM.dat
-if command -v wget >/dev/null; then
-  wget -NO "$BUILD_PATH"/ScummVM.dat https://raw.githubusercontent.com/libretro/libretro-database/master/dat/ScummVM.dat
-else
-  # if wget is not available use curl
-  curl -f -o "$BUILD_PATH"/ScummVM.dat https://raw.githubusercontent.com/libretro/libretro-database/master/dat/ScummVM.dat
-fi
-[ -f "$BUILD_PATH"/ScummVM.dat ] && SUPPORTED_EXTENSIONS="$(cat $BUILD_PATH/ScummVM.dat | grep 'rom (' | sed -e 's/\" .*//g' -e 's/.*\.//g' | sort -u | tr '\n' '|')" || SUPPORTED_EXTENSIONS="$ALLOWED_EXT"
-
 	# Create core.info file
 	set +e
 	read -d '' CORE_INFO_CONTENT <<EOF
 # Software Information
 display_name = "$NICE_NAME"
-authors = "SCUMMVMdev"
-supported_extensions = "$SUPPORTED_EXTENSIONS"
+authors = "ScummVM Team"
+supported_extensions = "$ALLOWED_EXT"
 corename = "$NICE_NAME"
 categories = "Game"
 license = "GPLv3"
@@ -159,7 +149,7 @@ EOF
 	set -e
 
 	CORE_INFO_CONTENT="${CORE_INFO_CONTENT}${CORE_INFO_DATS}
-description = \"The ScummVM adventure game engine ported to libretro. This core is built directly from the upstream repo and is synced upon stable releases, though it is not supported upstream. So please report any bug to Libretro and/or make sure the same apply to the standalone ScummVM program as well, before making any report to ScummVM Team.\""
+description = \"The ScummVM official port to libretro core.\""
 	echo "$CORE_INFO_CONTENT" > "${TARGET_PATH}/${INFO_FILE_PRE}_libretro.info"
 	echo "${INFO_FILE_PRE}_libretro.info created successfully"
 else


Commit: 5ef493824ac65200a17b034882f73d052d5ec763
    https://github.com/scummvm/scummvm/commit/5ef493824ac65200a17b034882f73d052d5ec763
Author: Giovanni Cascione (ing.cascione at gmail.com)
Date: 2025-03-30T10:41:59+02:00

Commit Message:
LIBRETRO: JANITORIAL: fix typo

Changed paths:
    backends/platform/libretro/include/libretro-core-options.h


diff --git a/backends/platform/libretro/include/libretro-core-options.h b/backends/platform/libretro/include/libretro-core-options.h
index 0c959b78da8..34293babe4c 100644
--- a/backends/platform/libretro/include/libretro-core-options.h
+++ b/backends/platform/libretro/include/libretro-core-options.h
@@ -595,7 +595,7 @@ struct retro_core_option_v2_definition option_defs_us[] = {
 		"scummvm_gui_h_res",
 		"Video > GUI resolution",
 		"ScummVM Launcher resolution",
-		"Set ScummVM Launcher aspect ratio.",
+		"Set ScummVM Launcher resolution.",
 		NULL,
 		"video",
 		{


Commit: 34c7bcb070a63821d29d086c4f78a11660727bd3
    https://github.com/scummvm/scummvm/commit/34c7bcb070a63821d29d086c4f78a11660727bd3
Author: Giovanni Cascione (ing.cascione at gmail.com)
Date: 2025-03-30T10:42:16+02:00

Commit Message:
LIBRETRO: update README.md

Changed paths:
    backends/platform/libretro/README.md


diff --git a/backends/platform/libretro/README.md b/backends/platform/libretro/README.md
index 8cb5a3cf123..7d9451c881b 100644
--- a/backends/platform/libretro/README.md
+++ b/backends/platform/libretro/README.md
@@ -1,10 +1,5 @@
-# ScummVM libretro core
-
-Libretro core built from untouched mainline ScummVM source.
-
-Datafiles and themes bundle (`scummvm.zip`) and `core.info` files are built automatically based on current submodule source.
-
-## Build
+# ScummVM libretro port
+## Building ScummVM core
 To build the core with the default configuration, type in a shell the following:
 ```
 git clone https://github.com/scummvm/scummvm
@@ -36,17 +31,47 @@ Extract `scummvm.zip` and select relevant paths in ScummVM GUI (or modify `scumm
 
 Note that both datafiles and themes included in `scummvm.zip` need to be consistent with ScummVM version in use, hence need to be generally rebuilt and replaced for each new version.
 
-## Core options and configuration
-All options and configuration of the legacy libretro core are applicable to this one as well, refer to relevant link in Resources.
-Some additional options and features have been added to this core:
+## Libretro playlists for ScummVM core
+Playlists used in Libretro frontends (e.g. Retroarch) are plain text lists used to directly launch a game with a specific core from the user interface. Those lists are structured to pass to the core the path of a specific content file to be loaded (e.g. a ROM zip fiile). Detailed info can be found in [Libretro documentation](https://docs.libretro.com/guides/roms-playlists-thumbnails/).
+
+> WARNING: ScummVM core playlist generation with Retroarch Scanner is **NOT recommended** as it is based on a third party database instead of ScummVM game detection system, hence it is not guaranteed to work properly.
+
+ScummVM core can accept as content the playlist-provided path to any of the files inside a valid game folder, the ScummVM internal detection system will try to autodetect the game from the content file parent folder and run the game with default ScummVM options.
+
+The core also supports dedicated per game **hook** plain text files with `.scummvm` extension, which can be used as target path in the playlist. Content of this file shall be a string corresponding to one of the following ScummVM identifiers:
+
+  - **target**: this is the game identifier of each entry in the internal Launcher list, hence corresponding to entries in ScummVM configuration file (e.g. 'scummvm.ini'). In this case the game must be added from ScummVM GUI first, and the hook files can be placed anywhere, as the path for the game files is already part of the target configuration. The game will be launched with the options set in ScummVM
 
-### New options
-* Set D-pad cursor acceleration time
+  - **game ID**: this is a unique identifier for any game supported by ScummVM. This identifier is hard coded in each engine source and can be subject to change, hence it is **not a recommended choice**. A list of current game IDs is available [here](https://scummvm.org/compatibility). In this case the game will be launched even if not added in ScummVM Launcher, the hook file must be placed in the game folder and the game will be launched with default ScummVM options
 
-### New features
-* On-screen virtual keyboard (retropad "select" button by default to activate/deactivate)<br>Resources from `scummvm.zip` are needed to be installed for this feature to be enabled.
+### Creating ScummVM core playlist
+The recommended way to generate a ScummVM core playlist is from within the ScummVM Launcher (i.e. the interal core GUI) with the Playlist Generator tool. Both needed hook files and the playlist are created automatically, based on ScummVM Launcher games list.
+  - Load the core from RetroArch and start it to reach the ScummVM GUI (i.e. the Launcher)
+  - Add games to the list as required using the GUI buttons ('Mass Add' available).
+  - Select **Global Options** and then the **Backend** tab.
+  - Check or select the path of frontend playlists. A `ScummVM.lpl` file will be created or overwritten in there.
+  - Check the 'Hooks location' setting, to have one `.scummvm` in each game folder or all of them in a `scummvm_hooks` folder in the `save` path.
+  - Check the 'Playlist version' setting. JSON format should be selected, 6-lines format is deprecated and provided for backwards compatibility only.
+  - Select the 'Clear existing hooks' checkbox to remove any existing `.scummvm` file in the working folders.
+  - Press the 'Generate playlist' button.
 
-* Cloud saving<br>This feature is currently disabled by default (e.g. on buildbot) as it has shared dependencies (libcurl-openssl).<br>To enable the feature, compile passing `USE_CLOUD=1` to make. `libcurl` package with `openssl` must be installed on host system as described [here](https://wiki.scummvm.org/index.php/Compiling_ScummVM).<br>Note that by default the entire retroarch `saves` folder will be syncronized, which may be a plus considering that this feature is currently not available in retroarch.
+Operation status will be shown in the same dialog, while details will be given in the frontend logs.
 
-## Resources
-[Legacy ScummVM libretro core](https://github.com/libretro-mirrors/scummvm) documentation is [here](https://docs.libretro.com/library/scummvm).
+## Core options
+### Cursor Movement
+  - **Exclusive cursor control with RetroPad**: allows the use of RetroPad only to control mouse cursor, excluding the other inputs (e.g. physical mouse, touch screen).
+  - **Gamepad Cursor Speed**: sets the mouse cursor speed multiplier when moving the cursor with the RetroPad left analog stick or D-Pad. The default value of '1.0' is optimised for games that have a native resolution of '320x200' or '320x240'. When running 'high definition' games with a resolution of '640x400' or '640x480', a Gamepad Cursor Speed of '2.0' is recommended.
+  - **Gamepad Cursor Acceleration**: the amount of time (In seconds) it takes for the cursor to reach full speed
+  - **Analog Cursor Response**: determines how the speed of the cursor varies when tilting the RetroPad left analog stick. 'Linear': Speed is directly proportional to analog stick displacement. This is standard behaviour with which most users will be familiar. 'Quadratic': Speed increases quadratically with analog stick displacement. This allows for greater precision when making small movements without sacrificing maximum speed at full analog range. This mode may require practice for effective use.
+  - **Analog Deadzone**: sets the deadzone in percentage of the RetroPad analog sticks. Used to eliminate cursor drift/unwanted input.
+  - **Mouse Speed**: sets the mouse cursor speed multiplier when moving the cursor with the RetroMouse.
+  - **Mouse Fine Control Speed Reduction**: sets the mouse cursor speed reduction as percentage of normal speed when fine control is activated.
+### Video settings
+  - **Hardware acceleration**: request video hardware acceleration (OpenGL or OpenGLES2) to the frontend if supported. It is needed to reload the core to apply this setting.
+  - **ScummVM Launcher aspect ratio**: set ScummVM Launcher aspect ratio.
+  - **ScummVM Launcher resolution**: set ScummVM Launcher aspect ratio.
+### Timing
+  - **Frame rate cap**: set core frame rate upper limit. Reducing the limit will improve the performance on lower end devices. Changing this setting will reset the core.
+  - **Sample rate**: set core sample rate. Reducing the rate will slightly improve the performance on lower end devices. Changing this setting will reset the core.
+### RetroPad mapping
+Settings to map each RetroPad key to ScummVM controls.


Commit: b179e3bca01930b7f26d2c7068ce0d5c65dd9415
    https://github.com/scummvm/scummvm/commit/b179e3bca01930b7f26d2c7068ce0d5c65dd9415
Author: Giovanni Cascione (ing.cascione at gmail.com)
Date: 2025-03-30T10:42:33+02:00

Commit Message:
LIBRETRO: update in-laucher playlist generator help

Changed paths:
    backends/platform/libretro/src/libretro-os-utils.cpp


diff --git a/backends/platform/libretro/src/libretro-os-utils.cpp b/backends/platform/libretro/src/libretro-os-utils.cpp
index 726397ca297..e4d7c4ed855 100644
--- a/backends/platform/libretro/src/libretro-os-utils.cpp
+++ b/backends/platform/libretro/src/libretro-os-utils.cpp
@@ -236,30 +236,16 @@ static const char *const helpTabs[] = {
 	    "## Libretro playlists for ScummVM core\n"
 	    "Playlists used in Libretro frontends (e.g. Retroarch) are plain text lists used to directly launch a game with a specific core from the user interface. Those lists are structured to pass to the core the path of a specific content file to be loaded (e.g. ROM).\n"
 	    "\n"
-	    "ScummVM core can accept as content the path to any of the files inside a valid game folder, the detection system will try to autodetect the game from the content file parent folder and run the game with default ScummVM options.\n"
+	    "ScummVM core can accept as content the playlist-provided path to any of the files inside a valid game folder, the detection system will try to autodetect the game from the content file parent folder and run the game with default ScummVM options.\n"
 	    "\n"
 	    "The core also supports dedicated per game **hook** plain text files with **." CORE_EXTENSIONS "** extension, which can be used as target in the playlist to specify one of the following ScummVM identifiers:\n"
 	    "\n"
-	    "  - **game ID**: this is a unique identifier for any game supported by ScummVM. In this case hook files must be placed inside each game folder, and there is no need to add the game from within ScummVM. Game will be launched with default ScummVM options.\n"
+	    "  - **target**: this is the game identifier of each entry in the internal Launcher list, hence corresponding to entries in ScummVM configuration file (e.g. 'scummvm.ini'). In this case the game must be added from ScummVM GUI first, and the hook files can be placed anywhere, as the path for the game files is already part of the target configuration. The game will be launched with the options set in ScummVM\n"
 	    "\n"
-	    "  - **target**: this is the game identifier from ScummVM configuration file (e.g. 'scummvm.ini'). In this case the game must be added from ScummVM GUI first, and the hook files can be placed anywhere, as the path for the game files is already part of the target configuration. The game will be launched with the options set in ScummVM\n"
+	    "  - **game ID**: this is a unique identifier for any game supported by ScummVM. This identifier is hard coded in each engine source and can be subject to change, hence it is **not a recommended choice**. A list of current game IDs is available [here](https://scummvm.org/compatibility). In this case the game will be launched even if not added in ScummVM Launcher, the hook file must be placed in the game folder and the game will be launched with default ScummVM options\n"
 	    "\n"
 	    "## Creating ScummVM core playlist\n"
-	    "ScummVM core playlist can be created in the following ways:\n"
-	    "\n"
-	    "  1. Manually (hook files to be created manually - optional)\n"
-	    "\n"
-	    "  2. Automatically from Retroarch scanner (hook files not used)\n"
-	    "\n"
-	    "  3. Automatically from ScummVM GUI (hook files created automatically)\n"
-	    "\n"
-	    "First two methods are not covered here, as outside of ScummVM scope. Detailed info can be found in [Libretro documentation](https://docs.libretro.com/guides/roms-playlists-thumbnails/).\n"
-	    "Note that Retroarch scanner is based on a third party database instead of ScummVM game detection system, hence it is not guaranteed to work properly.\n"
-	    "\n"
-	    "Third method is covered in the following subheading.\n"
-	    "\n"
-	    "## ScummVM Playlist Generator\n"
-	    "ScummVM core includes a tool to generate a Libretro playlist and needed hook files based on current ScummVM games list.\n"
+	    "The recommended way to generate a ScummVM core playlist is from within the ScummVM Launcher (i.e. the interal core GUI) with the Playlist Generator tool. Both needed hook files and the playlist are created automatically, based on ScummVM Launcher games list.\n"
 	    "\n"
 	    " - Load the core from RetroArch and start it to reach the ScummVM GUI (i.e. the Launcher)\n"
 	    "\n"




More information about the Scummvm-git-logs mailing list