From 1c763daa0baaf9bab74681e10a44b711390f1111 Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Mon, 9 Nov 2026 08:07:02 +0100 Subject: [PATCH] chore: advance visual-pinball to 375b2d0 --- emulators/visual-pinball.yml | 134 ++++++++++++++++++----------------- 1 file changed, 68 insertions(+), 66 deletions(-) diff --git a/emulators/visual-pinball.yml b/emulators/visual-pinball.yml index fe72f75f7..562f6d590 100644 --- a/emulators/visual-pinball.yml +++ b/emulators/visual-pinball.yml @@ -4,8 +4,8 @@ core_classification: game_engine source: "https://github.com/vpinball/vpinball" upstream: "https://github.com/vpinball/vpinball" profiled_date: "2026-10-27" -source_commit: "63770cd66eee66c84c10ba2f4d2edff918ab85d3" -prose_written_at: "63770cd66eee66c84c10ba2f4d2edff918ab85d3" +source_commit: "375b2d0a30d8f574489abb9ffd592b055522e8e6" +prose_written_at: "375b2d0a30d8f574489abb9ffd592b055522e8e6" core_version: "10.8.1" version_basis: kind: file @@ -26,17 +26,19 @@ notes: | program, read through POLE (src/parts/pintable.cpp:1550-1553), and a .vpz pack, a zip or a plain folder of JSON part files, is read through the JSON serializer instead (src/parts/pintable.cpp:1459, - src/utils/JSONSerializer.cpp:1096-1102). Every build other than the Windows + src/utils/JSONSerializer.cpp:1244-1250). Every build other than the Windows editor compiles the shared source set with __STANDALONE__ and links libwinevbs, Wine's VBScript engine with its COM and ATL headers, beside SDL3, - SDL3_ttf, FreeImage, hidapi, libspatialaudio and libmysofa with zlib - (make/CMakeLists_app.txt:558-579,630-640, make/CMakeLists_sources.txt:829-835). + SDL3_ttf, FreeImage, hidapi, opusfile with opus and ogg, libspatialaudio and + libmysofa with zlib (make/CMakeLists_app.txt:579-604,655-668, make/CMakeLists_sources.txt:854-860). AlphaDMD, AltSound, B2S, BAM (Windows only), DMDUtil, DOF, FlexDMD, HelloScript, HelloWorld, Inspector, Nixie, PinMAME, PUP, RemoteControl, Serum, UpscaleDMD, VNI and WMP are plugins staged in plugins/ next to the binary, ../PlugIns on macOS - (make/CMakeLists_plugins.txt:21-25,39-56). The player scans that folder and - loads every subfolder whose plugin.cfg names a library for the running - platform (src/core/player.cpp:145, src/core/FileLocator.cpp:216-222, + (make/CMakeLists_plugins.txt:21-25,55-72). The player scans that folder, then + plugins/ under the preferences folder when it exists, the first plugin found + for an id winning, and loads every subfolder whose plugin.cfg names a + library for the running platform (src/core/player.cpp:198-199, + src/core/FileLocator.cpp:214-220, src/core/FileLocator.cpp:230-236, plugins/plugins/MsgPluginManager.cpp:425-436). ES-DE finds VPinballX_BGFX or VPinballX_GL and runs ` -play `, Batocera builds the standalone tree at @@ -51,26 +53,26 @@ notes: | everything in the application folder, which is the legacy Windows 9x behaviour. Which one applies is decided by where VPinballX.ini is found: in the preferences folder gives AppPrefData, else beside the executable gives - AppOnly, else AppPrefData (src/core/FileLocator.h:11-25,60,66-69, - src/core/FileLocator.cpp:195-206). The preferences folder is the SDL + AppOnly, else AppPrefData (src/core/FileLocator.h:12-26,67,73-76, + src/core/FileLocator.cpp:201-212). The preferences folder is the SDL preference path for VPinballX with a major.minor subfolder - (src/core/FileLocator.cpp:46-53). Batocera's 001-default-path.patch + (src/core/FileLocator.cpp:52-59). Batocera's 001-default-path.patch redirects the PinMAME root from $HOME/.pinmame to /pinmame. Table scripts pull their libraries through SearchScript, which walks ten locations in order, each case-insensitively: the table's own folder, then user/ and scripts/ beside it, then the installation folder with user/, scripts/ and tables/ under it, then the preferences folder with user/ and - scripts/ under it (src/core/FileLocator.cpp:400-433, + scripts/ under it (src/core/FileLocator.cpp:414-447, src/core/ScriptGlobalTable.cpp:396-425). The scripts/ directory the build ships carries the 73 .vbs files tables include by name, core.vbs and controller.vbs beside the per-manufacturer machine scripts (WPC.vbs, sam.vbs, s11.vbs, zac.vbs and the rest), copied from - src/scripts (make/CMakeLists_app.txt:656-660). The Windows editor's + src/scripts (make/CMakeLists_app.txt:684-688). The Windows editor's completion parser asks for core.vbs through the same search without a table, so in the seven installation and preferences locations, and shows a warning box when none holds it (src/ui/win/codeview.cpp:2053-2061, - src/core/FileLocator.cpp:238-245). + src/core/FileLocator.cpp:252-259). Table scripts also read four directory properties. UserDirectory is the table's user folder, created on demand, TablesDirectory the system documents folder or the installation folder when SDL reports none, MusicDirectory the @@ -78,51 +80,51 @@ notes: | under the installation folder. MusicDirectory falls back to the folders 10.8 searched, listed under table music below. Each fails when its directory does not exist (src/core/ScriptGlobalTable.cpp:120-148, 427-480, - src/core/FileLocator.cpp:251-259). + src/core/FileLocator.cpp:265-273). In AppPrefData mode user/, music/, cache// and autosave/ sit beside the table. A folder missing there on a read is looked up the AppOnly way, where user/ hangs off the installation folder, the cache sits under Cache/
in the preferences folder and music/ is tried under the installation folder, the table folder, then the preferences folder - (src/core/FileLocator.cpp:267-398). + (src/core/FileLocator.cpp:281-412). The rest of the install tree is read the same way and ships with the binary: assets/ holds BallEnv.exr, AODither.webp and EnvMap.webp, the first two - loaded with no fallback (src/renderer/Renderer.cpp:178-190), + loaded with no fallback (src/renderer/Renderer.cpp:165-177), the bumper and kicker textures (src/parts/bumper.cpp:150,162,171,186, src/parts/kicker.cpp:200-241), the segment display textures, each with a -cov.png coverage atlas loaded beside it and dropped when its width is - not twice the texture's (src/renderer/Renderer.cpp:1580-1595,1674-1717), + not twice the texture's (src/renderer/Renderer.cpp:968-983,1068-1111), TableSizes.csv, the table size database (src/core/TableDB.cpp:16), vpinball.png for the window icon - (src/renderer/Window.cpp:280), LiberationSans-Regular.ttf, the font textboxes + (src/renderer/Window.cpp:287), LiberationSans-Regular.ttf, the font textboxes and decals fall back to when neither the table folder, as -