mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-10 13:33:24 -05:00
feat: reprofile visual pinball, realign three profiles
This commit is contained in:
1 parent
f2336161bb
commit
ccd8a98315
4 files changed
+378
-127
No files matched your search
@@ -4,7 +4,7 @@ core_classification: game_engine
|
||||
source: "https://github.com/lightspark/lightspark"
|
||||
upstream: "https://github.com/lightspark/lightspark"
|
||||
profiled_date: "2026-08-08"
|
||||
source_commit: "d51ab60193b7baa56b2f6ec55f9a7789f99f6ee9"
|
||||
source_commit: "bfe122834a17ab63a80f5ec36ff7c0dbfcac0321"
|
||||
core_version: "0.9.0"
|
||||
display_name: "Adobe Flash (Lightspark)"
|
||||
cores:
|
||||
@@ -24,7 +24,7 @@ notes: |
|
||||
Startup reads nothing. The two GLSL shaders sit in the tree as
|
||||
src/lightspark.frag and src/lightspark.vert but the preprocessor pulls them
|
||||
into string literals, "directly include shader source to avoid filesystem
|
||||
access" (src/backends/rendering.cpp:1039-1042,1059-1062), which is also how
|
||||
access" (src/backends/rendering.cpp:1059-1062,1079-1082), which is also how
|
||||
0.8.7 builds them. The face given to nanoVG for text is Roboto Medium, decoded
|
||||
at runtime from a base85 array in the binary (src/launcher.cpp:1567,
|
||||
src/platforms/engineutils.cpp:500-502), and the launcher icon face is embedded
|
||||
@@ -36,7 +36,7 @@ notes: |
|
||||
Fonts named by the content go through fontconfig, which answers with whatever
|
||||
face the host has installed: FcFontMatch then FcPatternGetString(FC_FILE) hands
|
||||
a path straight to nvgCreateFont (src/backends/cachedsurface.cpp:147-168). No
|
||||
name, path, size or hash is fixed anywhere, README:27-30 marks fontconfig
|
||||
name, path, size or hash is fixed anywhere, README.md:27-30 marks fontconfig
|
||||
itself optional, and an unmatched family leaves nanoVGFontID at -1 and falls
|
||||
back to the embedded face.
|
||||
|
||||
@@ -44,7 +44,7 @@ notes: |
|
||||
commit and at 0.8.7 (src/parsing/textfile.cpp:74-106). fontPath holds
|
||||
"TimesNewRoman.ttf" on Windows (src/backends/rendering.cpp:102) but reaches
|
||||
only cairo_select_font_face, which takes a family name rather than a path, and
|
||||
only under ENABLE_CAIRO (src/backends/rendering.cpp:1274), left FALSE by
|
||||
only under ENABLE_CAIRO (src/backends/rendering.cpp:1294), left FALSE by
|
||||
CMakeLists.txt.
|
||||
|
||||
Files the player writes rather than expects: lightspark.conf, an INI carrying
|
||||
|
||||
@@ -4,7 +4,7 @@ core_classification: game_engine
|
||||
source: "https://github.com/ruffle-rs/ruffle"
|
||||
upstream: "https://github.com/ruffle-rs/ruffle"
|
||||
profiled_date: "2026-09-17"
|
||||
source_commit: "74ade97342205ac55d264f2ceb1e642573a21d48"
|
||||
source_commit: "ed55e72394d21d7784b0a914fd4525608c6a5661"
|
||||
core_version: "0.6.0"
|
||||
display_name: "Adobe Flash (Ruffle)"
|
||||
cores:
|
||||
@@ -24,7 +24,7 @@ notes: |
|
||||
vulkan --config /var/data/ruffle --save-directory <saves>/ruffle <rom>`. The
|
||||
ActionScript class library is compiled by build_playerglobal into
|
||||
playerglobal_avm1.swf and playerglobal_avm2.swf and linked into the binary
|
||||
from OUT_DIR (core/src/avm1/globals.rs:89, core/src/avm2/globals.rs:548), so
|
||||
from OUT_DIR (core/src/avm1/globals.rs:88, core/src/avm2/globals.rs:549), so
|
||||
startup reads nothing. Locale texts, wgsl shaders, the window icon and the
|
||||
OpenH264 license are embedded the same way (desktop/src/gui/locale.rs:7-12,
|
||||
desktop/src/app.rs:464, render/wgpu/src/shaders.rs:30-95,
|
||||
@@ -33,7 +33,7 @@ notes: |
|
||||
|
||||
H.264 video is the one external dependency. external_video is a default
|
||||
feature and pulls ruffle_video_external with openh264
|
||||
(desktop/Cargo.toml:26,83,90), and enable_openh264 defaults to true
|
||||
(desktop/Cargo.toml:27,84,92), and enable_openh264 defaults to true
|
||||
(desktop/src/preferences.rs:291,316). OpenH264Codec::load first dlopens the
|
||||
system sonames libopenh264.so.7, libopenh264.so.2.4.1 and libopenh264.so on
|
||||
Linux, then falls back to <cache>/ruffle/video/ and fetches the Cisco binary
|
||||
@@ -45,7 +45,7 @@ notes: |
|
||||
(video/external/src/decoder/openh264.rs:135-146), and WelsGetCodecVersion must
|
||||
answer 2.4.1 exactly (video/external/src/decoder/openh264.rs:46,153-166). The
|
||||
cache root comes from dirs::cache_dir(), ~/.cache/ruffle by default, and
|
||||
--cache-directory moves it (desktop/src/cli.rs:29-33,140). Without the library
|
||||
--cache-directory moves it (desktop/src/cli.rs:31-35,148). Without the library
|
||||
the player still starts: ExternalVideoBackend wraps SoftwareVideoBackend, so
|
||||
H.263, Screen Video and VP6 keep decoding and only H.264 streams fail
|
||||
(video/external/src/backend.rs:41,51-69,73-80).
|
||||
@@ -59,7 +59,7 @@ notes: |
|
||||
to freetype, which routes Linux builds through FreetypeFontRenderer instead;
|
||||
the freetype default feature only compiles that branch, the preference
|
||||
selects it (desktop/src/backends/ui.rs:190-192,443-487,489-519,
|
||||
desktop/src/preferences/read.rs:74-75, desktop/Cargo.toml:83). The families
|
||||
desktop/src/preferences/read.rs:74-75, desktop/Cargo.toml:84). The families
|
||||
asked for are Times New Roman, Arial, Courier New and their metric-compatible
|
||||
substitutes, plus the CJK, Hebrew, Arabic and Thai faces
|
||||
(desktop/src/player.rs:361-414, desktop/src/gui/controller.rs:620-694), and
|
||||
@@ -68,15 +68,15 @@ notes: |
|
||||
fixed anywhere. The compiled-in Noto Sans subset sits behind the default_font
|
||||
feature, which the web and exporter crates enable and the desktop build does
|
||||
not (core/src/player.rs:84-85, core/Cargo.toml:82,95, web/Cargo.toml:63-65,
|
||||
exporter/Cargo.toml:16, desktop/Cargo.toml:22), so on the desktop an
|
||||
exporter/Cargo.toml:16, desktop/Cargo.toml:23), so on the desktop an
|
||||
unmatched family leaves the run without that face rather than falling back
|
||||
to a bundled one.
|
||||
|
||||
Files the player writes rather than expects: preferences.toml, bookmarks.toml
|
||||
and recents.toml under --config, each defaulted when absent
|
||||
(desktop/src/preferences.rs:54-96), .sol SharedObjects under --save-directory
|
||||
(frontend-utils/src/backends/storage.rs:31-60, desktop/src/cli.rs:129-130),
|
||||
and the log file under <cache>/ruffle/log (desktop/src/main.rs:155-166).
|
||||
(frontend-utils/src/backends/storage.rs:31-60, desktop/src/cli.rs:137-138),
|
||||
and the log file under <cache>/ruffle/log (desktop/src/main.rs:165-176).
|
||||
ruffle-bundle.toml is the manifest inside a .ruf bundle, which is content
|
||||
alongside the .swf rather than a runtime input
|
||||
(frontend-utils/src/bundle/info.rs:11, frontend-utils/src/bundle.rs:42-53).
|
||||
|
||||
+10
-10
@@ -7,9 +7,9 @@ source:
|
||||
upstream: "https://github.com/trzy/Supermodel"
|
||||
profiled_date: "2026-09-17"
|
||||
source_commit:
|
||||
standalone: "24d2ffcfc7f14229337f05f4920fe26b56633d9d"
|
||||
libretro: "9f0a51daf6cef6ec2a304538f18c6dbb4c4b9da2"
|
||||
upstream_commit: "24d2ffcfc7f14229337f05f4920fe26b56633d9d"
|
||||
standalone: "8b4de239bf3e0fd921f4383edcd3c21c2e62067b"
|
||||
libretro: "84bc106b45b279bf868a53b9232897c8dc10ca17"
|
||||
upstream_commit: "8b4de239bf3e0fd921f4383edcd3c21c2e62067b"
|
||||
core_version:
|
||||
standalone: "0.3a-WIP"
|
||||
libretro: "v0.3a-libretro"
|
||||
@@ -51,7 +51,7 @@ notes: |
|
||||
and Saves/<game>.st<slot> are written by the emulator itself.
|
||||
ref: Src/OSD/Windows/FileSystemPath.cpp:28-49, Src/OSD/OSX/FileSystemPath.cpp:28-48,
|
||||
Src/OSD/Unix/FileSystemPath.cpp:51-157, Src/OSD/SDL/Main.cpp:1394-1413,
|
||||
Src/OSD/SDL/Main.cpp:1451, Src/OSD/SDL/Main.cpp:2239
|
||||
Src/OSD/SDL/Main.cpp:1445, Src/OSD/SDL/Main.cpp:2233
|
||||
|
||||
Libretro: retro_init joins "supermodel" to the frontend system directory and
|
||||
the core creates that directory through the VFS. Supermodel.ini, Games.xml and
|
||||
@@ -63,7 +63,7 @@ notes: |
|
||||
afterwards. Music.xml has no embedded copy.
|
||||
ref: Src/OSD/libretro/libretro.cpp:855-863, Src/OSD/libretro/libretro.cpp:889-894,
|
||||
Src/OSD/libretro/libretro.cpp:1113, Src/OSD/libretro/LibretroWrapper.cpp:166-206,
|
||||
Src/OSD/libretro/LibretroWrapper.cpp:208-228, Makefile:638-647, Makefile:653-655
|
||||
Src/OSD/libretro/LibretroWrapper.cpp:208-228, Makefile:640-653, Makefile:659-661
|
||||
|
||||
Libretro NVRAM is the frontend .srm through the memory API. On the first frame
|
||||
a <game>.nv written by the standalone build is imported from the save directory
|
||||
@@ -94,7 +94,7 @@ files:
|
||||
md5: "0c7cfc0cba2f2cd674d94e093936f9f8"
|
||||
description: "ROM set definitions"
|
||||
note: "Parsed at startup into the game database. Every ROM region, file name and CRC32 the loader matches against comes from here, so an unreadable file leaves no set to resolve and the launch returns before the emulator is built. The path is a config key, so -game-xml-file moves it. Nothing about the file is verified beyond parsing; the hash is that of the copy the pinned revision ships."
|
||||
source_ref: "Src/OSD/SDL/Main.cpp:117, Src/OSD/SDL/Main.cpp:1506, Src/OSD/SDL/Main.cpp:1963, Src/OSD/SDL/Main.cpp:2326-2336, Src/GameLoader.cpp:549-559, Src/GameLoader.cpp:1014-1017"
|
||||
source_ref: "Src/OSD/SDL/Main.cpp:117, Src/OSD/SDL/Main.cpp:1500, Src/OSD/SDL/Main.cpp:1957, Src/OSD/SDL/Main.cpp:2319-2329, Src/GameLoader.cpp:549-559, Src/GameLoader.cpp:1014-1017"
|
||||
|
||||
- name: Games.xml
|
||||
path: "supermodel/Games.xml"
|
||||
@@ -111,7 +111,7 @@ files:
|
||||
- "29fd5bc40cea222e040c1a1cfd60ea2e"
|
||||
description: "ROM set definitions, libretro copy"
|
||||
note: "Read through the VFS from {system}/supermodel/Games.xml, or Config/Games.xml under it, and parsed from memory. When the read yields nothing the bytes compiled in from Config/Games.xml are parsed instead, so the core identifies every set without a file on disk; a file that is present takes precedence. The second hash is the embedded array, which predates the indentation cleanup of the repository copy by one tab."
|
||||
source_ref: "Src/OSD/libretro/LibretroWrapper.cpp:187-206, Src/OSD/libretro/LibretroWrapper.cpp:221-222, Src/OSD/libretro/LibretroWrapper.cpp:822, Src/OSD/libretro/LibretroWrapper.cpp:834-859, Src/GameLoader.cpp:1019-1030, Makefile:645-647"
|
||||
source_ref: "Src/OSD/libretro/LibretroWrapper.cpp:187-206, Src/OSD/libretro/LibretroWrapper.cpp:221-222, Src/OSD/libretro/LibretroWrapper.cpp:822, Src/OSD/libretro/LibretroWrapper.cpp:834-859, Src/GameLoader.cpp:1019-1030, Makefile:651-653"
|
||||
|
||||
- name: Supermodel.ini
|
||||
path: "supermodel/Supermodel.ini"
|
||||
@@ -124,7 +124,7 @@ files:
|
||||
md5: "06533608174992f6ea180ae190011778"
|
||||
description: "Configuration override"
|
||||
note: "Read from {system}/supermodel/Supermodel.ini, or Config/Supermodel.ini under it, when present; a file that fails to parse aborts the load. Core options are applied over it afterwards, so it only reaches keys the options do not set and per-game sections. Extracted from the embedded copy when absent."
|
||||
source_ref: "Src/OSD/libretro/LibretroWrapper.cpp:187-206, Src/OSD/libretro/LibretroWrapper.cpp:219-220, Src/OSD/libretro/LibretroWrapper.cpp:812-817, Src/OSD/libretro/LibretroWrapper.cpp:858, Src/OSD/libretro/LibretroWrapper.cpp:865-866, Makefile:653-655"
|
||||
source_ref: "Src/OSD/libretro/LibretroWrapper.cpp:187-206, Src/OSD/libretro/LibretroWrapper.cpp:219-220, Src/OSD/libretro/LibretroWrapper.cpp:812-817, Src/OSD/libretro/LibretroWrapper.cpp:858, Src/OSD/libretro/LibretroWrapper.cpp:865-866, Makefile:659-661"
|
||||
|
||||
- name: p1crosshair.bmp
|
||||
standalone_path: "Assets/p1crosshair.bmp"
|
||||
@@ -136,7 +136,7 @@ files:
|
||||
bundled: true
|
||||
description: "Player 1 light gun crosshair texture"
|
||||
note: "Both bitmaps are read on every launch whatever CrosshairStyle holds, since the load runs before the style decides anything, and a null surface aborts startup ahead of the Model 3 object. 32 bit BMP with alpha, sides a multiple of 2. The libretro build opens the same two files from the Assets directory of the standalone layout, outside the frontend directories, but forces the vector style and never draws them, and its repository does not ship them."
|
||||
source_ref: "Src/OSD/SDL/Crosshair.cpp:34-51, Src/OSD/SDL/Main.cpp:2379-2385, Assets/DIR.txt, Src/OSD/libretro/libretroCrosshair.cpp:36-60, Src/OSD/libretro/LibretroWrapper.cpp:465-471, Src/OSD/libretro/LibretroConfigProvider.h:361"
|
||||
source_ref: "Src/OSD/SDL/Crosshair.cpp:34-51, Src/OSD/SDL/Main.cpp:2372-2378, Assets/DIR.txt, Src/OSD/libretro/libretroCrosshair.cpp:36-60, Src/OSD/libretro/LibretroWrapper.cpp:465-471, Src/OSD/libretro/LibretroConfigProvider.h:361"
|
||||
|
||||
- name: p2crosshair.bmp
|
||||
standalone_path: "Assets/p2crosshair.bmp"
|
||||
@@ -148,7 +148,7 @@ files:
|
||||
bundled: true
|
||||
description: "Player 2 light gun crosshair texture"
|
||||
note: "Read in the same call as the player 1 bitmap and equally fatal when it fails to load."
|
||||
source_ref: "Src/OSD/SDL/Crosshair.cpp:35, 49-51, Src/OSD/SDL/Main.cpp:2379-2385, Src/OSD/libretro/libretroCrosshair.cpp:39, 55-58"
|
||||
source_ref: "Src/OSD/SDL/Crosshair.cpp:35, 49-51, Src/OSD/SDL/Main.cpp:2372-2378, Src/OSD/libretro/libretroCrosshair.cpp:39, 55-58"
|
||||
|
||||
- name: Music.xml
|
||||
path: "supermodel/Music.xml"
|
||||
|
||||
+356
-105
@@ -3,9 +3,9 @@ type: standalone
|
||||
core_classification: game_engine
|
||||
source: "https://github.com/vpinball/vpinball"
|
||||
upstream: "https://github.com/vpinball/vpinball"
|
||||
profiled_date: "2026-09-04"
|
||||
source_commit: "d363edb180b8219b4ddd5ec94f87932141efb3b6"
|
||||
core_version: "10.8.0"
|
||||
profiled_date: "2026-10-04"
|
||||
source_commit: "a31565f1589c17afd0502a8c6a690f408ede14b2"
|
||||
core_version: "10.8.1"
|
||||
display_name: "Visual Pinball X"
|
||||
cores:
|
||||
- vpinball
|
||||
@@ -17,24 +17,30 @@ mode: standalone
|
||||
notes: |
|
||||
Pinball table simulator. The table is the content: .vpx and .vpt files are
|
||||
OLE Compound Documents holding the geometry, textures, sounds and a VBScript
|
||||
program, read through POLE on non-Windows platforms. The standalone branch
|
||||
ports the Windows original by embedding Wine's VBScript engine, stubbing COM
|
||||
and ATL from Wine and ReactOS sources, and linking libpinmame, libaltsound,
|
||||
libdmdutil, libdof and BASS in place of the Windows COM servers
|
||||
(standalone/README.md:11-120). ES-DE finds VPinballX_BGFX or VPinballX_GL and
|
||||
program, read through POLE (src/parts/pintable.cpp:1424-1427). 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 and hidapi; PinMAME, AltSound,
|
||||
DMDUtil, DOF, FlexDMD, B2S, PUP, Serum, VNI and ScoreView are plugins staged
|
||||
in plugins/ next to the binary (make/CMakeLists_app.txt:525-546,597-603,
|
||||
make/CMakeLists_sources.txt:809-815, make/CMakeLists_plugins.txt:21-25,39-56).
|
||||
ES-DE finds VPinballX_BGFX or VPinballX_GL and
|
||||
runs `<binary> -play <rom>`, Batocera builds the standalone tree at
|
||||
3ec37c7f9a into /usr/bin/vpinball and runs `VPinballX_GL -PrefPath <dir> -Ini
|
||||
<dir>/VPinballX.ini -Play <rom>`, RetroBat drives the Windows build with its
|
||||
registered VPinMAME COM server.
|
||||
|
||||
File location now sits in one class. FileLocator holds m_appPath, the
|
||||
File location sits in one class. FileLocator holds m_appPath, the
|
||||
read-only installation folder, and m_prefPath, the preferences folder that
|
||||
-PrefPath overrides, and it works in one of two layout modes: AppPrefData
|
||||
splits static data, settings and table files across the three, AppOnly keeps
|
||||
everything in the application folder, which is the legacy Windows 9x
|
||||
behaviour. Which one applies is decided by where the application ini file is
|
||||
found (src/core/FileLocator.h:11-25,57,63-66,
|
||||
src/core/FileLocator.cpp:379-412). Batocera's 001-default-path.patch
|
||||
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,57,63-66,
|
||||
src/core/FileLocator.cpp:195-206). 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
|
||||
redirects the PinMAME root from $HOME/.pinmame to <prefpath>/pinmame.
|
||||
|
||||
Table scripts pull their libraries through SearchScript, which walks ten
|
||||
@@ -42,97 +48,319 @@ notes: |
|
||||
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:379-412,
|
||||
src/parts/pintable.cpp:470-480, src/core/main.h:118-119). The
|
||||
scripts/ directory the build ships carries the ~70 .vbs files tables include
|
||||
src/core/ScriptGlobalTable.cpp:346-375). The
|
||||
scripts/ directory the build ships carries the 71 .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), and the editor's
|
||||
completion parser no longer shares that search: ParseVPCore opens core.vbs
|
||||
at one place, the Scripts application subfolder, and shows a warning box when
|
||||
it is not there (src/ui/win/codeview.cpp:2171-2179, CMakeLists.txt:948).
|
||||
The same four roots are handed to table scripts as the UserDirectory,
|
||||
TablesDirectory, MusicDirectory and ScriptsDirectory properties, each falling
|
||||
back from the install directory to the table folder to the preferences path
|
||||
(src/parts/pintable.cpp:484-560).
|
||||
scripts (WPC.vbs, sam.vbs, s11.vbs, zac.vbs and the rest), copied from
|
||||
src/scripts (make/CMakeLists_app.txt:619-623). 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:2068-2076,
|
||||
src/core/FileLocator.cpp:238-245).
|
||||
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
|
||||
table's music folder with an optional subfolder, ScriptsDirectory scripts/
|
||||
under the installation folder; each fails when its directory does not exist
|
||||
(src/core/ScriptGlobalTable.cpp:377-418, src/core/FileLocator.cpp:251-259).
|
||||
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 and music/ is tried under the installation
|
||||
folder, the table folder, then the preferences folder
|
||||
(src/core/FileLocator.cpp:267-377).
|
||||
|
||||
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 (src/renderer/Renderer.cpp:204),
|
||||
the bumper and kicker textures (src/parts/bumper.cpp:244,
|
||||
src/parts/kicker.cpp:274), TableSizes.csv, which the live UI reads to
|
||||
guess the glass position of a table that does not declare one
|
||||
(src/core/TableDB.cpp:16), vpx.html for the built-in
|
||||
web server (lib/src/WebServer.cpp:94) and
|
||||
Default_gamecontrollerdb.txt; shader10.8.0/ holds the .glfx and .fxh sources
|
||||
compiled at runtime (src/renderer/Shader.cpp:1419); flexdmd/ holds the bitmap
|
||||
fonts UltraDMD asks for by resource name, the FlexDMD.Resources. prefix being
|
||||
stripped before the lookup (plugins/flexdmd/UltraDMD.cpp:32,
|
||||
plugins/flexdmd/UltraDMD.cpp:20-22).
|
||||
assets/ holds BallEnv.exr, AODither.webp and EnvMap.webp, the first two
|
||||
loaded with no fallback (src/renderer/Renderer.cpp:176-188),
|
||||
the bumper and kicker textures (src/parts/bumper.cpp:148,160,172,186,
|
||||
src/parts/kicker.cpp:198-239), the segment display textures
|
||||
(src/renderer/Renderer.cpp:1493-1510), 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 textbox font
|
||||
used when the table folder holds no <FontName>-<Style>.ttf
|
||||
(src/parts/textbox.cpp:701-722), the editor/ part icons
|
||||
(src/ui/live/editor/EditorChrome.cpp:200) and four starter tables,
|
||||
blankTable.vpx, exampleTable.vpx, lightSeqTable.vpx and strippedTable.vpx:
|
||||
the live editor loads blankTable.vpx when started without a table or when
|
||||
the requested one fails to load, and its New Table menu loads any of the
|
||||
four (src/core/AppCommands.cpp:277-283, src/ui/live/EditorUI.cpp:334-353).
|
||||
OpenGL builds also get shaders-10.8.1/, the .glfx and .fxh sources parsed at
|
||||
runtime (src/core/FileLocator.cpp:223, src/renderer/Shader.cpp:1827-1828,2234-2237,
|
||||
make/CMakeLists_app.txt:625-635); the directory is not copied for the BGFX
|
||||
renderer. Three plugins carry resources of their own: plugins/flexdmd/assets/
|
||||
holds the bitmap fonts UltraDMD asks for by resource name, the
|
||||
FlexDMD.Resources. prefix being stripped before the lookup
|
||||
(plugins/flexdmd/UltraDMD.cpp:20-24,32-34,
|
||||
plugins/flexdmd/resources/AssetManager.cpp:103-109,252-272),
|
||||
plugins/scoreview/layouts/ the default .scv layouts
|
||||
(plugins/scoreview/ScoreViewPlugin.cpp:64-77) and plugins/inspector/assets/
|
||||
the pages of the inspector's web server
|
||||
(plugins/inspector/InspectorPlugin.cpp:618-626).
|
||||
|
||||
Two parts of that tree ship without a reader on this target. The four starter
|
||||
tables in assets/, blankTable.vpx, exampleTable.vpx, lightSeqTable.vpx and
|
||||
strippedTable.vpx, are loaded only by InitBuiltinTable, whose body is one
|
||||
`#ifndef __STANDALONE__` block (src/ui/win/WinEditor.cpp:2240), and
|
||||
docs/Changelog.txt is read by dialogs/AboutDialog.cpp:27-31, which is not in
|
||||
the standalone source list at all.
|
||||
Two parts of that tree ship without a reader on the desktop targets.
|
||||
docs/Changelog.txt is read by the About dialog
|
||||
(src/ui/win/dialogs/AboutDialog.cpp:34), which sits in the Windows source
|
||||
list only (make/CMakeLists_sources.txt:491,540-541,
|
||||
make/CMakeLists_app.txt:78-80), and assets/web/, vpx.html with its scripts
|
||||
and style sheet, is served by the web server that only the iOS and Android
|
||||
library build compiles (lib/src/WebServer.cpp:92-99,
|
||||
make/CMakeLists_sources.txt:817-823, make/CMakeLists_app.txt:669).
|
||||
|
||||
PinMAME is where the emulation happens. Tables that recreate a real solid
|
||||
state machine hand a ROM name to the controller, which resolves its root as
|
||||
the pinmame folder beside the table, else the PinMAMEPath setting, else
|
||||
$HOME/.pinmame (plugins/pinmame/PinMAMEPlugin.cpp:326-356). libpinmame then hangs roms,
|
||||
the pinmame folder beside the table when that folder holds roms/, else the
|
||||
PinMAMEPath setting, else $HOME/.pinmame on Linux and macOS
|
||||
(plugins/pinmame/PinMAMEPlugin.cpp:214,322-367). libpinmame then hangs roms,
|
||||
nvram, samples, cfg, hi, inp, memcard and sta off that root
|
||||
(pinmame src/libpinmame/libpinmame.cpp:816-823). Every ROM set is a game, one
|
||||
zip per machine; PinMAME declares no BIOS root set anywhere in its tree, and
|
||||
carries neither GAME_IS_BIOS_ROOT nor ROM_SYSTEM_BIOS, so nothing in the ROM
|
||||
path is shared between machines.
|
||||
(pinmame src/libpinmame/libpinmame.cpp:1080-1087) and reads alias.txt from
|
||||
it, a list that renames a requested game before the driver lookup
|
||||
(pinmame src/libpinmame/libpinmame.cpp:304-337,343-346). A memmaps folder,
|
||||
beside roms/ in the table's pinmame folder or under the PinMAMEPath setting,
|
||||
is scanned for an index.json that maps the ROM name to an NVRAM memory map,
|
||||
loaded with the platforms/<platform>.json it names
|
||||
(plugins/pinmame/PinMAMEPlugin.cpp:339,346-347,
|
||||
plugins/pinmame/Controller.cpp:183-241).
|
||||
|
||||
Three shared data files sit outside that per-machine content and are listed
|
||||
below. Two more that the MAME lineage would suggest are unreachable here. The
|
||||
A ROM set is one zip per machine, and every ROM is looked up in the game's
|
||||
zip first, then up its parent chain (pinmame src/common.c:1343-1348).
|
||||
PinMAME carries neither GAME_IS_BIOS_ROOT nor ROM_SYSTEM_BIOS; what it has
|
||||
are nine container sets flagged NOT_A_DRIVER, gts1, gts1s, gts80, gts80s,
|
||||
gts80a, gts80as, allied, gp_110 and recel, each the parent of its family's
|
||||
games and holding the family's system ROMs. A game declares its system ROMs
|
||||
in its own set as well, so they are read from the game zip when it carries
|
||||
them and from the container zip otherwise; the Allied Leisure and Game Plan
|
||||
110 games declare nothing else. The nine are listed below.
|
||||
|
||||
Two shared data files sit outside that ROM content and are listed below as
|
||||
well. Two more that the MAME lineage would suggest are unreachable here. The
|
||||
mechanical sample set named by pinmame_sample_names, "*pinmame" followed by
|
||||
eighteen .wav members (pinmame src/wpc/wpcsam.c:31-57), is dead twice over:
|
||||
readsamples returns before opening anything unless options.use_samples is set
|
||||
(pinmame src/common.c:271), the two files that register that option live in
|
||||
src/windows/config.c and src/unix/sound.c and neither is in the libpinmame
|
||||
source list, and PinmameSetConfig zeroes the whole options struct
|
||||
(pinmame src/libpinmame/libpinmame.cpp:807); independently, SAMPLESINTERFACE
|
||||
(pinmame src/libpinmame/libpinmame.cpp:1071); independently, SAMPLESINTERFACE
|
||||
is defined in the PinMAME tree (pinmame src/wpc/wpcsam.h:23) and no driver
|
||||
references it. history.dat and mameinfo.dat (pinmame src/datafile.c:619-623,
|
||||
649-653) are read only by displayhistory, a page of the MAME on-screen menu
|
||||
(pinmame src/usrintrf.c:2846-2851), and by the listing path in
|
||||
pinmame src/info.c:820 which libpinmame never calls; VPX passes NULL for
|
||||
fn_IsKeyPressed, the thirteenth member of PinmameConfig
|
||||
(plugins/pinmame/Controller.cpp:73, pinmame src/libpinmame/libpinmame.h:418-433),
|
||||
(plugins/pinmame/PinMAMEPlugin.cpp:304-320, pinmame src/libpinmame/libpinmame.h:422-438),
|
||||
so osd_is_key_pressed always answers 0
|
||||
(pinmame src/libpinmame/libpinmame.cpp:355-361) and the menu cannot be opened.
|
||||
(pinmame src/libpinmame/libpinmame.cpp:519-525) and the menu cannot be opened.
|
||||
|
||||
The pinmame observations were read at f102dc6cce7eb51e64427dd0b52bed37dbd2adea.
|
||||
The pinmame observations were read at 268854a18be9ad334569b5654345c06a7d0ef521,
|
||||
the revision the build scripts fetch (platforms/config.sh:11).
|
||||
|
||||
files:
|
||||
|
||||
- name: gts1.zip
|
||||
path: "pinmame/roms/gts1.zip"
|
||||
system: vpinball
|
||||
category: bios_zip
|
||||
required: false
|
||||
description: "Gottlieb System 1 system ROMs"
|
||||
source_ref: "pinmame src/wpc/gts1games.c:15-22,33-34, pinmame src/wpc/gts1.h:229-233, pinmame src/common.c:1343-1348, pinmame src/fileio.c:953-966"
|
||||
note: >-
|
||||
Container set, parent of every System 1 game. The path is the layout
|
||||
beside a table; roms/ sits the same way under the PinMAMEPath setting or
|
||||
$HOME/.pinmame. Each game declares the same two ROMs and reads them from
|
||||
its own zip first, so this archive is only reached when the game zip
|
||||
lacks them. A member is matched by name, then by checksum.
|
||||
contents:
|
||||
- name: A1752CF.bin
|
||||
size: 2048
|
||||
crc32: "614a3bd9"
|
||||
sha1: "febca18fb6f96037ca82e515dd161dfcb0e4c776"
|
||||
- name: A1753CE.bin
|
||||
size: 2048
|
||||
crc32: "4cd312dd"
|
||||
sha1: "31245daa9972ef8652caee69986585bb8239e86e"
|
||||
|
||||
- name: gts1s.zip
|
||||
path: "pinmame/roms/gts1s.zip"
|
||||
system: vpinball
|
||||
category: bios_zip
|
||||
required: false
|
||||
description: "Gottlieb System 1 with sound board, system ROMs"
|
||||
source_ref: "pinmame src/wpc/gts1games.c:24-31,36-37, pinmame src/wpc/gts1.h:229-233"
|
||||
note: "Container set, clone of gts1 with the same two ROMs, so gts1.zip answers for it."
|
||||
contents:
|
||||
- name: A1752CF.bin
|
||||
size: 2048
|
||||
crc32: "614a3bd9"
|
||||
sha1: "febca18fb6f96037ca82e515dd161dfcb0e4c776"
|
||||
- name: A1753CE.bin
|
||||
size: 2048
|
||||
crc32: "4cd312dd"
|
||||
sha1: "31245daa9972ef8652caee69986585bb8239e86e"
|
||||
|
||||
- name: gts80.zip
|
||||
path: "pinmame/roms/gts80.zip"
|
||||
system: vpinball
|
||||
category: bios_zip
|
||||
required: false
|
||||
description: "Gottlieb System 80 with speech board, system ROMs"
|
||||
source_ref: "pinmame src/wpc/gts80games.c:48-60,62-74,90-91"
|
||||
note: >-
|
||||
Container set, parent of the System 80 games, which declare the same two
|
||||
ROMs themselves. The 7-digit conversions declare u2g807dc.bin and
|
||||
u3g807dc.bin in their place, which this set does not hold.
|
||||
contents:
|
||||
- name: u2_80.bin
|
||||
size: 4096
|
||||
crc32: "4f0bc7b1"
|
||||
sha1: "612cbacdca5cfa6ad23940796df3b7c385be79fe"
|
||||
- name: u3_80.bin
|
||||
size: 4096
|
||||
crc32: "1e69f9d0"
|
||||
sha1: "ad738cac2555830257b531e5e533b15362f624b9"
|
||||
|
||||
- name: gts80s.zip
|
||||
path: "pinmame/roms/gts80s.zip"
|
||||
system: vpinball
|
||||
category: bios_zip
|
||||
required: false
|
||||
description: "Gottlieb System 80, system ROMs"
|
||||
source_ref: "pinmame src/wpc/gts80games.c:48-60,92-93"
|
||||
note: "Container set, clone of gts80 with the same two ROMs, so gts80.zip answers for it."
|
||||
contents:
|
||||
- name: u2_80.bin
|
||||
size: 4096
|
||||
crc32: "4f0bc7b1"
|
||||
sha1: "612cbacdca5cfa6ad23940796df3b7c385be79fe"
|
||||
- name: u3_80.bin
|
||||
size: 4096
|
||||
crc32: "1e69f9d0"
|
||||
sha1: "ad738cac2555830257b531e5e533b15362f624b9"
|
||||
|
||||
- name: gts80a.zip
|
||||
path: "pinmame/roms/gts80a.zip"
|
||||
system: vpinball
|
||||
category: bios_zip
|
||||
required: false
|
||||
description: "Gottlieb System 80A with speech board, system ROMs"
|
||||
source_ref: "pinmame src/wpc/gts80games.c:76-88,95-96"
|
||||
note: "Container set, parent of the System 80A games, which declare the same two ROMs themselves."
|
||||
contents:
|
||||
- name: u2_80a.bin
|
||||
size: 4096
|
||||
crc32: "241de1d4"
|
||||
sha1: "9d5942704cbdec6565d6335e33e9f7e4c60a41ac"
|
||||
- name: u3_80a.bin
|
||||
size: 4096
|
||||
crc32: "2d77ccdc"
|
||||
sha1: "47241ccd365e8d74d5aa5b775acf6445cc95b8a8"
|
||||
|
||||
- name: gts80as.zip
|
||||
path: "pinmame/roms/gts80as.zip"
|
||||
system: vpinball
|
||||
category: bios_zip
|
||||
required: false
|
||||
description: "Gottlieb System 80A, system ROMs"
|
||||
source_ref: "pinmame src/wpc/gts80games.c:76-88,97-98"
|
||||
note: "Container set, clone of gts80a with the same two ROMs, so gts80a.zip answers for it."
|
||||
contents:
|
||||
- name: u2_80a.bin
|
||||
size: 4096
|
||||
crc32: "241de1d4"
|
||||
sha1: "9d5942704cbdec6565d6335e33e9f7e4c60a41ac"
|
||||
- name: u3_80a.bin
|
||||
size: 4096
|
||||
crc32: "2d77ccdc"
|
||||
sha1: "47241ccd365e8d74d5aa5b775acf6445cc95b8a8"
|
||||
|
||||
- name: allied.zip
|
||||
path: "pinmame/roms/allied.zip"
|
||||
system: vpinball
|
||||
category: bios_zip
|
||||
required: false
|
||||
description: "Allied Leisure system ROMs"
|
||||
source_ref: "pinmame src/wpc/allied.c:872-879"
|
||||
note: >-
|
||||
Container set, parent of the Allied Leisure games. Those games declare
|
||||
these three ROMs and no other, so each one runs from its own zip or from
|
||||
this one.
|
||||
contents:
|
||||
- name: alliedu5.bin
|
||||
size: 1024
|
||||
crc32: "e4fb64fb"
|
||||
sha1: "a3d9de7cbfb42180a860e0bbbeaeba96d8bd1e20"
|
||||
- name: alliedu6.bin
|
||||
size: 1024
|
||||
crc32: "dca980dd"
|
||||
sha1: "3817d75413854d889fc1ce4fd6a51d820d1e0534"
|
||||
- name: alliedu3.bin
|
||||
size: 1024
|
||||
crc32: "13f42789"
|
||||
sha1: "baa0f73fda08a3c5d6f1423fb329e4febb07ef97"
|
||||
|
||||
- name: gp_110.zip
|
||||
path: "pinmame/roms/gp_110.zip"
|
||||
system: vpinball
|
||||
category: bios_zip
|
||||
required: false
|
||||
description: "Game Plan Model 110 system ROMs"
|
||||
source_ref: "pinmame src/wpc/gpgames.c:68-74, pinmame src/wpc/gp.h:201-205"
|
||||
note: >-
|
||||
Container set, parent of the Game Plan cocktail games. Those games declare
|
||||
these two ROMs and no other, so each one runs from its own zip or from
|
||||
this one.
|
||||
contents:
|
||||
- name: a-110.u12
|
||||
size: 2048
|
||||
crc32: "ed0d518b"
|
||||
sha1: "8f3ca8792ad907c660d9149a1aa3a3528c7573e3"
|
||||
- name: b1-110.u13
|
||||
size: 2048
|
||||
crc32: "a223f2e8"
|
||||
sha1: "767e15e19e11399935c890c1d1034dccf1ad7f92"
|
||||
|
||||
- name: recel.zip
|
||||
path: "pinmame/roms/recel.zip"
|
||||
system: vpinball
|
||||
category: bios_zip
|
||||
required: false
|
||||
description: "Recel System III shared program"
|
||||
source_ref: "pinmame src/wpc/recelgames.c:70-73, pinmame src/wpc/recel.h:119-130"
|
||||
note: "Container set, parent of the Recel games, which declare the same two ROMs beside their own game PROM."
|
||||
contents:
|
||||
- name: a2361.b1
|
||||
size: 2048
|
||||
crc32: "d0c4695d"
|
||||
sha1: "4846adb3f6c292626840ba5255ffc5e788a69301"
|
||||
- name: a2362.b2
|
||||
size: 2048
|
||||
crc32: "39a70611"
|
||||
sha1: "8545e168a5f256150bcff12d1e6d8efffd08c3cd"
|
||||
|
||||
- name: hiscore.dat
|
||||
system: vpinball
|
||||
category: game_data
|
||||
required: false
|
||||
description: "MAME high score memory map database, read once per machine start"
|
||||
source_ref: "pinmame src/hiscore.c:18,223-230, pinmame src/cpuexec.c:332-334,393,1755"
|
||||
source_ref: "pinmame src/hiscore.c:18,223-230, pinmame src/cpuexec.c:332-334,393,1755, src/core/player.cpp:457-459"
|
||||
note: >-
|
||||
hs_open is called unconditionally at the top of cpu_run for every PinMAME
|
||||
machine, and the whole body sits behind `if (f)`, so an absent file is a
|
||||
no-op. It resolves to a bare filename against the working directory, which
|
||||
is the table's own folder: libpinmame sets paths for eight file types and
|
||||
FILETYPE_HIGHSCORE_DB is not among them, and the option table that would
|
||||
supply a default is linked only by the Windows COM build
|
||||
(pinmame src/libpinmame/libpinmame.cpp:816-823,
|
||||
pinmame src/libpinmame/fileio.c:140, pinmame src/win32com/VPinMAMEConfig.cpp:127).
|
||||
the player sets to the table's own folder: libpinmame sets paths for eight
|
||||
file types and FILETYPE_HIGHSCORE_DB is not among them, and the option
|
||||
table that would supply a default is linked only by the Windows COM build
|
||||
(pinmame src/libpinmame/libpinmame.cpp:1080-1087,
|
||||
pinmame src/libpinmame/fileio.c:141, pinmame src/win32com/VPinMAMEConfig.cpp:127).
|
||||
|
||||
- name: cheat.dat
|
||||
system: vpinball
|
||||
category: game_data
|
||||
required: false
|
||||
description: "MAME cheat database, read when the per-ROM ini enables cheats"
|
||||
source_ref: "pinmame src/cheat.c:8434,8602-8614, pinmame src/mame.c:578-583, plugins/pinmame/Controller.cpp:156"
|
||||
description: "MAME cheat database, read when the PinMAME plugin's Cheat setting is on"
|
||||
source_ref: "pinmame src/cheat.c:8434,8602-8614, pinmame src/mame.c:581-587, pinmame src/libpinmame/libpinmame.cpp:1141-1144, plugins/pinmame/PinMAMEPlugin.cpp:215,373, plugins/pinmame/Controller.cpp:162"
|
||||
note: >-
|
||||
Off by default: PinmameSetConfig zeroes options, and VPX only turns it on
|
||||
from the `cheat` key of <pinmame root>/ini/<romname>.ini, which it also
|
||||
rewrites on every run. With it on, InitCheat loads the database and an
|
||||
Off by default: PinmameSetConfig zeroes options, and the plugin's Cheat
|
||||
setting, false unless the user changes it, is handed to PinmameSetCheat
|
||||
before each run. With it on, InitCheat loads the database and an
|
||||
absent file leaves the menu showing "cheat database not found"
|
||||
(pinmame src/cheat.c:2463). Same bare-filename resolution as hiscore.dat.
|
||||
|
||||
@@ -142,62 +370,85 @@ analysis:
|
||||
Copied into the build output next to the executable and installed as one
|
||||
unit by every distribution, so they arrive with the emulator rather than
|
||||
being sourced separately.
|
||||
source_ref: "CMakeLists.txt:948"
|
||||
source_ref: "make/CMakeLists_app.txt:619-623"
|
||||
entries:
|
||||
- what: "scripts/, the .vbs library tables include"
|
||||
source_ref: "src/parts/pintable.cpp:470-480, src/core/main.h:118-119, src/core/FileLocator.cpp:379-412, src/ui/win/codeview.cpp:2171-2179"
|
||||
- what: "assets/, textures, TableSizes.csv, vpx.html, the two defaults"
|
||||
source_ref: "src/renderer/Renderer.cpp:204, src/parts/bumper.cpp:244, src/parts/kicker.cpp:274, src/core/TableDB.cpp:16, lib/src/WebServer.cpp:94,100"
|
||||
- what: "shader10.8.0/, .glfx and .fxh compiled at runtime"
|
||||
source_ref: "src/renderer/Shader.cpp:1419"
|
||||
- what: "flexdmd/, the bitmap fonts UltraDMD names as FlexDMD.Resources.*"
|
||||
source_ref: "plugins/flexdmd/UltraDMD.cpp:32, plugins/flexdmd/UltraDMD.cpp:20-22"
|
||||
- what: "user/ and tables/, the two roots exposed to table scripts as directory properties"
|
||||
source_ref: "src/parts/pintable.cpp:484-521"
|
||||
source_ref: "src/core/FileLocator.cpp:379-412, src/core/ScriptGlobalTable.cpp:346-375, src/ui/win/codeview.cpp:2068-2076"
|
||||
- what: "assets/, textures, segment display maps, TableSizes.csv, the window icon, the fallback font, the editor icons"
|
||||
source_ref: "src/renderer/Renderer.cpp:176-188,1493-1510, src/parts/bumper.cpp:148,160,172,186, src/parts/kicker.cpp:198-239, src/core/TableDB.cpp:16, src/renderer/Window.cpp:280, src/parts/textbox.cpp:719-720, src/ui/live/editor/EditorChrome.cpp:200"
|
||||
- what: "assets/blankTable.vpx, exampleTable.vpx, lightSeqTable.vpx, strippedTable.vpx"
|
||||
source_ref: "src/core/AppCommands.cpp:277-283, src/ui/live/EditorUI.cpp:334-353"
|
||||
note: "The live editor's default table and its four New Table templates."
|
||||
- what: "shaders-10.8.1/, .glfx and .fxh parsed at runtime by the OpenGL renderer"
|
||||
source_ref: "src/core/FileLocator.cpp:223, src/renderer/Shader.cpp:1827-1828,2234-2237, make/CMakeLists_app.txt:625-635"
|
||||
- what: "plugins/flexdmd/assets/, the bitmap fonts UltraDMD names as FlexDMD.Resources.*"
|
||||
source_ref: "plugins/flexdmd/UltraDMD.cpp:20-24,32-34, plugins/flexdmd/resources/AssetManager.cpp:103-109,252-272, make/CMakeLists_plugin_FlexDMD.txt:179-182"
|
||||
- what: "plugins/scoreview/layouts/, the default score view layouts"
|
||||
source_ref: "plugins/scoreview/ScoreViewPlugin.cpp:64-77, make/CMakeLists_plugin_ScoreView.txt:92"
|
||||
- what: "plugins/inspector/assets/, the inspector web pages"
|
||||
source_ref: "plugins/inspector/InspectorPlugin.cpp:618-626, make/CMakeLists_plugin_Inspector.txt:96"
|
||||
|
||||
shipped_without_a_reader:
|
||||
note: "Copied into the build output but unreachable in the standalone binary"
|
||||
note: "Copied into the build output but unreachable in the desktop standalone binary"
|
||||
entries:
|
||||
- what: "assets/blankTable.vpx, exampleTable.vpx, lightSeqTable.vpx, strippedTable.vpx"
|
||||
source_ref: "src/ui/win/WinEditor.cpp:2240"
|
||||
note: "InitBuiltinTable is one #ifndef __STANDALONE__ block; the editor's New Table entries are the only callers."
|
||||
- what: "docs/Changelog.txt"
|
||||
source_ref: "dialogs/AboutDialog.cpp:27-31, CMakeLists.txt:949"
|
||||
note: "The About dialog is not in the standalone source list."
|
||||
source_ref: "src/ui/win/dialogs/AboutDialog.cpp:34, make/CMakeLists_sources.txt:540-541, make/CMakeLists_app.txt:622"
|
||||
note: "The About dialog is in the Windows editor source list only."
|
||||
- what: "assets/web/, vpx.html and the files it pulls"
|
||||
source_ref: "lib/src/WebServer.cpp:92-99, make/CMakeLists_sources.txt:817-823"
|
||||
note: "The web server is compiled into the iOS and Android library build only."
|
||||
|
||||
user_supplied_paths:
|
||||
note: "Per table, keyed on the table folder or the ROM name, with no fixed filename"
|
||||
note: "Per table, keyed on the table folder or the ROM name"
|
||||
entries:
|
||||
- what: "PinMAME ROM sets, <pinmame root>/roms/<romname>.zip"
|
||||
source_ref: "plugins/pinmame/PinMAMEPlugin.cpp:326-356, pinmame src/libpinmame/libpinmame.cpp:816"
|
||||
source_ref: "plugins/pinmame/PinMAMEPlugin.cpp:322-367, pinmame src/libpinmame/libpinmame.cpp:1080"
|
||||
note: >-
|
||||
One zip per machine. The root is the pinmame folder beside the table
|
||||
when present, else the PinMAMEPath setting, else $HOME/.pinmame;
|
||||
Batocera patches that last fallback to <prefpath>/pinmame.
|
||||
- what: "backglass, <table basename>.directb2s"
|
||||
source_ref: "plugins/b2slegacy/forms/FormBackglass.cpp:370"
|
||||
note: "Version-checked against the B2S server on load; absence only warns."
|
||||
- what: "Serum colorizations, the folder named by the SerumPath setting"
|
||||
source_ref: "plugins/serum/serum.cpp:60"
|
||||
note: "Handed to libdmdutil as a path when the AltColor setting is on and the directory exists."
|
||||
- what: "alternative sound packages, under the PinMAME root by ROM name"
|
||||
source_ref: "plugins/altsound/AltSoundPlugin.cpp:189-193"
|
||||
- what: "PUP video packs, <table folder>/pupvideos"
|
||||
source_ref: "plugins/pup/PUPManager.cpp:125, plugins/pup/PUPPlugin.cpp:288"
|
||||
- what: "table music, music/ beside the install, the table or the preferences path"
|
||||
source_ref: "src/audio/AudioPlayer.cpp:75-77, src/parts/pintable.cpp:524-545"
|
||||
- what: "table sidecars, the .vbs script override and the per-table .ini"
|
||||
source_ref: "src/parts/pintable.cpp:704,794"
|
||||
when it holds roms/, else the PinMAMEPath setting, else $HOME/.pinmame
|
||||
on Linux and macOS; Batocera patches that last fallback to
|
||||
<prefpath>/pinmame.
|
||||
- what: "PinMAME game aliases, <pinmame root>/alias.txt"
|
||||
source_ref: "pinmame src/libpinmame/libpinmame.cpp:304-337,343-346"
|
||||
note: "Optional. Each line pairs a requested game name with the ROM set loaded in its place."
|
||||
- what: "NVRAM memory maps, memmaps/index.json and the map files it names"
|
||||
source_ref: "plugins/pinmame/PinMAMEPlugin.cpp:339,346-347, plugins/pinmame/Controller.cpp:183-241"
|
||||
note: >-
|
||||
Optional. index.json maps the ROM name to a map file, whose
|
||||
_metadata.platform names the platforms/<platform>.json loaded with it.
|
||||
- what: "backglass, <table basename>.directb2s, else <table folder name>.directb2s"
|
||||
source_ref: "plugins/b2s/B2SServer.cpp:33-45, plugins/b2slegacy/forms/FormBackglass.cpp:370-378,411-423"
|
||||
note: "The legacy plugin checks the file version against the B2S server version on load."
|
||||
- what: "Serum colorizations, <table folder>/serum/<rom>/<rom>.cROMc or .cRZ, else the SerumPath setting"
|
||||
source_ref: "plugins/serum/serum.cpp:49,561-602"
|
||||
note: "A namespace folder may sit above the ROM folder; PinMAME games are also looked up in <table folder>/pinmame/altcolor."
|
||||
- what: "VNI colorizations, <table folder>/vni/<rom>/<rom>.pal with an optional .vni, else the VniPath setting"
|
||||
source_ref: "plugins/vni/vni.cpp:39,326-376"
|
||||
note: "pin2dmd.pal and pin2dmd.vni are accepted in the same folder; PinMAME games are also looked up in <table folder>/pinmame/altcolor."
|
||||
- what: "alternative sound packages, <table folder>/altsound/<rom>, else <table folder>/pinmame/altsound/<rom>, else the plugin's Folder setting"
|
||||
source_ref: "plugins/altsound/AltSoundPlugin.cpp:28,110-143"
|
||||
- what: "PUP video packs, <table folder>/pupvideos/<rom>, else pupvideos/ under the PUPFolder setting"
|
||||
source_ref: "plugins/pup/PUPManager.cpp:129-157, plugins/pup/PUPPlugin.cpp:64,292-294"
|
||||
- what: "score view layout, <table basename>.scv, else <table folder name>.scv, else the LayoutFolder setting"
|
||||
source_ref: "plugins/scoreview/ScoreViewPlugin.cpp:23,46-62"
|
||||
- what: "table music, music/ beside the table"
|
||||
source_ref: "src/core/ScriptGlobalTable.cpp:116-130, src/core/FileLocator.cpp:267-377"
|
||||
note: "In the legacy layout, music/ under the installation folder, then the table folder, then the preferences folder."
|
||||
- what: "textbox fonts, <table folder>/<FontName>-<Style>.ttf"
|
||||
source_ref: "src/parts/textbox.cpp:701-722"
|
||||
- what: "table sidecars, the .vbs script override, the per-table .ini and the legacy .pov"
|
||||
source_ref: "src/parts/pintable.cpp:1322-1328,1380-1396, src/parts/pintable.h:562-589"
|
||||
|
||||
generated_files:
|
||||
- what: "VPinballX.ini, the settings file"
|
||||
source_ref: "lib/src/VPinballLib.cpp:192"
|
||||
source_ref: "src/core/VPApp.cpp:270-284, src/core/AppCommands.cpp:533-539"
|
||||
note: >-
|
||||
Created on first run under the preferences path, or read from beside the
|
||||
binary when one is there. Batocera seeds it from
|
||||
assets/Default_VPinballX.ini and rewrites it before every launch.
|
||||
- what: "VPReg.ini, per-table settings; vpinball.log"
|
||||
source_ref: "src/utils/Logger.cpp:167"
|
||||
- what: "PinMAME state: nvram/, cfg/, hi/, inp/, memcard/, sta/ and ini/"
|
||||
source_ref: "pinmame src/libpinmame/libpinmame.cpp:817-823, plugins/pinmame/Controller.cpp:166-171"
|
||||
note: "The ini directory is created when missing; the others are written by PinMAME as the machine runs."
|
||||
Looked up in the preferences folder, then beside the binary; when
|
||||
neither holds one the preferences path is kept. -Ini names another file.
|
||||
Batocera seeds it from the assets/Default_VPinballX.ini its pinned tree
|
||||
carries and rewrites it before every launch.
|
||||
- what: "VPReg.ini, values saved by table scripts in the table's user folder; vpinball.log in the preferences folder"
|
||||
source_ref: "src/core/ScriptGlobalTable.cpp:521-551, src/utils/Logger.cpp:164-165"
|
||||
- what: "PinMAME state: nvram/, cfg/, hi/, inp/, memcard/ and sta/"
|
||||
source_ref: "pinmame src/libpinmame/libpinmame.cpp:1081,1083-1087"
|
||||
note: "Written by PinMAME as the machine runs."
|
||||
Reference in new issue
Block a user