mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-20 18:59:07 -05:00
Every bundled flag was checked against the release or the build recipe of the build that reads the file. A libretro core zip holds the core alone: fMSX, Nuance, ep128emu and PCEE2 files the source tree carries are no longer bundled, and blueMSX, ARMSX2, YAPS2, Cemu and Jazz2 entries are split per build. Files the release ships and the profile missed are now bundled (POM2, ZQuest Classic, EmuCoreX, Linux Loader). Platform packages that differ are named: Batocera installs hcl and Hurrican without their data, ROCKNIX ships touchHLE's Liberation Sans fonts only, Batocera and RetroPie install blueMSX's machines beside the core.
886 lines
32 KiB
YAML
886 lines
32 KiB
YAML
emulator: future-pinball-fploader
|
|
type: standalone
|
|
core_classification: enhanced_fork
|
|
source: "https://github.com/ravarcade/BAM_FPloader"
|
|
upstream: "https://www.ravarcade.pl/"
|
|
profiled_date: "2026-08-11"
|
|
source_commit: "e13007994011ae57dd9d9f48674c1f774183914b"
|
|
core_version: "1.5-408"
|
|
display_name: "Future Pinball (BAM)"
|
|
cores:
|
|
- future-pinball-fploader
|
|
- bam
|
|
systems:
|
|
- fpinball
|
|
mode: standalone
|
|
|
|
notes: |
|
|
BAM, Better Arcade Mode, by Rafal Janicki. FPLoader.exe starts
|
|
Future Pinball.exe suspended, writes the BAM.dll path into the new process
|
|
with VirtualAllocEx and WriteProcessMemory, runs LoadLibraryA on it through
|
|
CreateRemoteThread, waits for that thread and resumes the main one. Everything
|
|
else lives in BAM.dll, which detours the running program. The loader is
|
|
published as source, and the shipped FPLoader.exe carries the same .text and
|
|
.rdata as the build committed to that repository and differs only by an
|
|
Authenticode blob, 9472 bytes against 5384.
|
|
ref: BAM_FPloader FPLoader.cpp:259-305, FPLoader.exe .text sha1
|
|
d5ca74154fe97002, PE timestamp 2016-04-25 19:17:12
|
|
|
|
BAM.dll is searched in the loader's own directory first, then in
|
|
C:\Games\Future Pinball\BAM\. Both missing puts up "Couldn't locate BAM.dll."
|
|
and returns -1. Future Pinball.exe comes from /FPEXE if that switch names an
|
|
existing file, otherwise from one level above the loader, then from the
|
|
loader's directory, then from C:\Games\Future Pinball\. The same failure path
|
|
reports "Couldn't locate Future Pinball.exe.". Before the process is created
|
|
the loader prepends its own directory to %PATH% so the system resolves
|
|
renderingengine.dll from there while the working directory is the game
|
|
directory. /STAYINRAM keeps the loader alive until the game thread ends. The
|
|
rest of the command line is handed to Future Pinball untouched, which is how
|
|
/Open, /Play, /Exit and /ArcadeRender reach it.
|
|
ref: BAM_FPloader FPLoader.cpp:40-48, 87-111, 166-240, 249-257
|
|
|
|
BAM.dll is closed source. Its version resource reads 1.5.408 and its debug
|
|
tags name BAM.cpp, dllmain.cpp, BallManager.cpp, RenderEngine.cpp,
|
|
plugin.cpp, pbo.cpp, stereo3d.cpp and debug.cpp. Twenty five entry points are
|
|
detoured in one pass: CreateFileA, CreateFileW, ReadFile, WriteFile,
|
|
CloseHandle, GetFileSize, DeleteFileA, FindResourceA, LoadResource,
|
|
LockResource, SizeofResource, CoCreateInstance, StgOpenStorage,
|
|
GetOpenFileNameA, ChooseColorA, GetDlgItem, SendMessageA, ShowWindow,
|
|
SwapBuffers, ChoosePixelFormat, SetPixelFormat, wglCreateContext,
|
|
wglDeleteContext, wglMakeCurrent and wglGetProcAddress, with glFrustum,
|
|
glTexImage2D and wglChoosePixelFormatARB taken separately. That is how BAM
|
|
sees the program's own resource and file traffic and can answer it. Newton is
|
|
reached through GetModuleHandleA on the copy Future Pinball already imported
|
|
followed by GetProcAddress on 83 entry points. No second copy is loaded.
|
|
ref: BAM.dll 1.5-408 .text:0x10082a75-0x10082f3d, 0x100831b3-0x100831d9,
|
|
0x1002ab92-0x1002abeb, .rsrc version, debug tags Routed_glTexImage2D and
|
|
Routed_wglChoosePixelFormatARB
|
|
|
|
Every path BAM builds hangs off the directory holding BAM.dll. The module
|
|
handle saved at load time goes through GetModuleFileNameA, the result is cut
|
|
at the last separator, and one of two format strings finishes the job:
|
|
"%s\%s.%s" for a name and an extension, "%s\%s" for the cfg subdirectory.
|
|
Settings for a table are cfg\<table>.cfg and cfg\<table>.seq, with default.cfg
|
|
and default.seq as the fallbacks.
|
|
ref: BAM.dll 1.5-408 .text:0x10025e40-0x1002605a, 0x100319a0-0x10031d48,
|
|
0x10032bdb-0x10032f23
|
|
|
|
Keys are the one text file. bam.cfg is read with fopen_s and parsed as
|
|
"%s = %s" lines over the names Menu, Menu2, Left, Right, Up, Down, Enter,
|
|
Snapshot, 3DSwitch, SaveXML, SnapShotPath, SnapShotBackboxPath, HeadTracking,
|
|
ForceArcadeMode, SwitchToNextBall, SwitchToPrevBall, RoomOnOff, Cam, Overlay,
|
|
BallShadows and OverlayAspectFix. A Keyboard.cfg found beside it is renamed to
|
|
bam.cfg first. RetroBat rewrites the two SnapShotPath lines before launching.
|
|
ref: BAM.dll 1.5-408 .text:0x100c3960-0x100c3a97, .rdata:0x10654208-0x10654324,
|
|
retrobat emulatorLauncher/Generators/Fpinball.Generator.cs:183-209
|
|
|
|
A ball or a room is a zip of BMP/<id>.bmp entries named for the resource ids
|
|
Future Pinball itself uses: the program carries 29 resources of type BMP and
|
|
every id the shipped packs contain is one of them, 452 being the ball.
|
|
balls\*.zip is walked with FindFirstFileA and each hit becomes a choice in the
|
|
menu, while default.zip in the BAM directory is applied without being chosen. The
|
|
routed FindResourceA answers the nine SHADERS resources the same way, while
|
|
the single XML resource, id 464, is read straight from the program by the save
|
|
path and is what the presets under XML\ are edited copies of. The 83 GLSL
|
|
programs BAM renders with are
|
|
resources of type TEXT inside BAM.dll, so no shader file is read from disk.
|
|
ref: BAM.dll 1.5-408 .text:0x1002d4f3-0x1002d52d, 0x100ae8ec-0x100ae990,
|
|
0x10037130-0x100371de, 0x1007e83b-0x1007e896, .rsrc TEXT,
|
|
Future Pinball.exe 1.9.1.20101231 .rsrc BMP, SHADERS, XML
|
|
|
|
Plugins are loaded by changing the working directory to plugins\, walking
|
|
*.dll with FindFirstFileA, calling LoadLibraryA on each and binding
|
|
BAM_PluginStart and BAM_PluginStop. A plugin keeps its settings by writing a
|
|
raw structure to <its own name>.cfg in that working directory, which is why
|
|
the cfg files beside the plugins carry no text.
|
|
ref: BAM.dll 1.5-408 .text:0x100cf400-0x100cf75c,
|
|
BAM_Plugins Common/BAM.h:116-157
|
|
|
|
renderingengine.dll is bound in BAM.dll's import directory through
|
|
FindProgram, SetModuleWithResources, LoadFileToMemory and SaveFileFromMemory,
|
|
so the loader resolves it before any BAM code runs. It carries Assimp, zlib,
|
|
libpng and libjpeg, reads the zip packs and writes the per table shadow cache
|
|
under Cache\.
|
|
ref: BAM.dll 1.5-408 import directory, .text:0x10105c18-0x1010697f
|
|
|
|
ES-DE declares the emulator as FUTURE-PINBALL-FPLOADER for Windows only,
|
|
finding FPLoader.exe under BAM\, BAM-OpenVR\ or BAM-OpenVR-OC\, and invokes it
|
|
with /Exit /Play /Open in the background. RetroBat reaches the same binary
|
|
under the emulator or core key bam, through the generator it shares with
|
|
Future Pinball. Two distributions are served: bam-setup.exe carries the
|
|
loader, the mod, the renderer, the tools, the plugins, the ball packs and the
|
|
physics presets, while BAM-OpenVR.zip carries the OpenVR plugin and the
|
|
settings files the other package leaves for the first save to create.
|
|
ref: es-de resources/systems/windows/es_find_rules.xml:448-461,
|
|
es-de resources/systems/windows/es_systems.xml:764,
|
|
retrobat emulatorLauncher/Generators/Fpinball.Generator.cs:131-135
|
|
|
|
files:
|
|
|
|
# -- The chain FPLoader needs before it can inject anything --
|
|
|
|
- name: BAM.dll
|
|
system: fpinball
|
|
required: true
|
|
bundled: true
|
|
size: 8266240
|
|
sha1: "ad5f6f31e506d4458720ad3c809d529d48103622"
|
|
description: "The mod, injected into Future Pinball and holding every feature"
|
|
source_ref: "BAM_FPloader FPLoader.cpp:45, 166-182"
|
|
note: >-
|
|
Taken from the loader's directory, else from C:\Games\Future Pinball\BAM\.
|
|
Neither present ends the loader with a message box.
|
|
|
|
- name: renderingengine.dll
|
|
system: fpinball
|
|
required: true
|
|
bundled: true
|
|
size: 8791552
|
|
sha1: "b471bb4affb974e0af9874ee6fe28c4417809926"
|
|
description: "Rendering engine and asset loader behind BAM"
|
|
source_ref: "BAM.dll 1.5-408 import directory, BAM_FPloader FPLoader.cpp:249-257"
|
|
note: >-
|
|
Bound statically by BAM.dll, so the injected LoadLibraryA fails without
|
|
it. The loader adds its own directory to %PATH% for this file alone.
|
|
|
|
- name: Future Pinball.exe
|
|
system: fpinball
|
|
required: true
|
|
size: 28547584
|
|
description: "The program BAM starts and modifies"
|
|
source_ref: "BAM_FPloader FPLoader.cpp:41, 46, 184-240"
|
|
note: >-
|
|
Probed with GetFileAttributesA at four locations, /FPEXE first. Absent,
|
|
the loader stops before creating any process. The size is that of
|
|
release 1.9.1.20101231.
|
|
|
|
# -- Tools shipped beside the loader --
|
|
|
|
- name: BAM-Tracker.exe
|
|
system: fpinball
|
|
required: false
|
|
bundled: true
|
|
size: 207104
|
|
description: "Head tracking calibration host"
|
|
source_ref: "BAM-Tracker.exe import directory, BAM.dll 1.5-408 .text:0x1008320e"
|
|
note: >-
|
|
Imports BAM.dll and runs it outside the game. BAM.dll lowercases the host
|
|
command line and looks for this name to know it is hosted by the tracker
|
|
rather than by Future Pinball.
|
|
|
|
- name: ModelImporter.exe
|
|
system: fpinball
|
|
required: false
|
|
bundled: true
|
|
size: 4553472
|
|
description: "Converts models to the .fpm form tables import"
|
|
source_ref: "ModelImporter.exe import directory, .rdata dialog filter"
|
|
note: >-
|
|
Bound to renderingengine.dll for the Assimp side. Its open dialog accepts
|
|
.fpm, .obj, .ms3d, .md5mesh and .fbx.
|
|
|
|
# -- Settings read from the BAM directory. BAM writes each of them, so a fresh
|
|
# install has only default.seq and the first save creates the rest.
|
|
|
|
- name: bam.cfg
|
|
system: fpinball
|
|
aliases:
|
|
- Keyboard.cfg
|
|
required: false
|
|
size: 316
|
|
description: "Key bindings and screenshot paths, the one text config"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x100c3960-0x100c3a97"
|
|
note: >-
|
|
Keyboard.cfg is the older name and is renamed on sight. 9999 in a key
|
|
slot leaves the function unbound.
|
|
|
|
- name: default.cfg
|
|
system: fpinball
|
|
required: false
|
|
size: 3072
|
|
description: "Global camera, lighting, physics and rendering settings"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x100326ba-0x100371bc"
|
|
note: >-
|
|
A binary block of the same shape as a per table cfg. Saving it reports
|
|
"default.cfg saved".
|
|
|
|
- name: default.seq
|
|
system: fpinball
|
|
required: false
|
|
bundled: true
|
|
size: 1284
|
|
category: game_data
|
|
description: "Camera animation sequences used when a table brings none"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x10025e40-0x1002608f"
|
|
note: >-
|
|
Read as text. Every line is a comment to Future Pinball's own parser and
|
|
carries a position, a scale, two angles and a duration.
|
|
|
|
- name: default.xml
|
|
system: fpinball
|
|
required: false
|
|
description: "Physics values applied when a table specifies none"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x100ae843-0x100ae8a7, 0x10037130-0x100371de"
|
|
note: >-
|
|
Same document shape as the presets under XML\. The save path produces one
|
|
by extracting resource 464 of type XML from Future Pinball, 6264 bytes, so
|
|
no copy ships.
|
|
|
|
- name: default.zip
|
|
system: fpinball
|
|
required: false
|
|
category: game_data
|
|
description: "Texture pack applied to every table"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x100ae8ec-0x100ae990"
|
|
note: >-
|
|
Holds BMP/<id>.bmp entries keyed by Future Pinball resource id, the form
|
|
the ball packs and the Zendonius packs use.
|
|
|
|
- name: XML_Presets.txt
|
|
system: fpinball
|
|
required: false
|
|
description: "List of physics documents offered in the presets menu"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x100fba6a-0x100fbd8a"
|
|
note: >-
|
|
Read whole and split on "%d: %s" lines. The menu entry Add current XML
|
|
appends to it, which is how the files under XML\ become reachable.
|
|
|
|
- name: Reality.dat
|
|
system: fpinball
|
|
required: false
|
|
size: 920
|
|
description: "Physical measurements of the cabinet and the screen"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x10031bbb, 0x10031ebe"
|
|
note: >-
|
|
Read at startup and rewritten from the Reality submenu. Head tracking and
|
|
stereo geometry are computed from it.
|
|
|
|
- name: WiiMoteCams.dat
|
|
system: fpinball
|
|
required: false
|
|
size: 16
|
|
description: "WiiMote identifiers kept for the WiiMote camera mode"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x10031d22, 0x10032f9f"
|
|
|
|
- name: CalibrationBoardData.cfg
|
|
system: fpinball
|
|
required: false
|
|
size: 272
|
|
description: "Dimensions of the printed board used to calibrate cameras"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x10031ad8, 0x10032d4b"
|
|
|
|
- name: stereoCalibrationData.cfg
|
|
system: fpinball
|
|
required: false
|
|
size: 1160
|
|
description: "Result of the two camera calibration pass"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x10031c75, 0x10032de3"
|
|
|
|
# -- Ball and room packs, walked as balls\*.zip --
|
|
|
|
- name: axis.zip
|
|
system: fpinball
|
|
path: "Balls/axis.zip"
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
size: 480842
|
|
description: "Ball texture showing the rotation axes"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x1002d513-0x1002d52d"
|
|
|
|
- name: Baseball.zip
|
|
system: fpinball
|
|
path: "Balls/Baseball.zip"
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
size: 248548
|
|
description: "Baseball ball texture"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x1002d513-0x1002d52d"
|
|
|
|
- name: Basketball 1.zip
|
|
system: fpinball
|
|
path: "Balls/Basketball 1.zip"
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
size: 148883
|
|
description: "Basketball ball texture"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x1002d513-0x1002d52d"
|
|
|
|
- name: Basketball 2.zip
|
|
system: fpinball
|
|
path: "Balls/Basketball 2.zip"
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
size: 74296
|
|
description: "Second basketball ball texture"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x1002d513-0x1002d52d"
|
|
|
|
- name: Cue Black.zip
|
|
system: fpinball
|
|
path: "Balls/Cue Black.zip"
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
size: 548084
|
|
description: "Black cue ball texture"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x1002d513-0x1002d52d"
|
|
|
|
- name: Cue White.zip
|
|
system: fpinball
|
|
path: "Balls/Cue White.zip"
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
size: 554040
|
|
description: "White cue ball texture"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x1002d513-0x1002d52d"
|
|
|
|
- name: earth.zip
|
|
system: fpinball
|
|
path: "Balls/earth.zip"
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
size: 728508
|
|
description: "Globe ball texture, three BMP resources"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x1002d513-0x1002d52d"
|
|
|
|
- name: EYETOY.zip
|
|
system: fpinball
|
|
path: "Balls/EYETOY.zip"
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
size: 373860
|
|
description: "EyeToy ball texture"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x1002d513-0x1002d52d"
|
|
|
|
- name: Fireball.zip
|
|
system: fpinball
|
|
path: "Balls/Fireball.zip"
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
size: 240337
|
|
description: "Fireball ball texture"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x1002d513-0x1002d52d"
|
|
|
|
- name: Knight.zip
|
|
system: fpinball
|
|
path: "Balls/Knight.zip"
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
size: 421287
|
|
description: "Knight ball texture"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x1002d513-0x1002d52d"
|
|
|
|
- name: latlong.zip
|
|
system: fpinball
|
|
path: "Balls/latlong.zip"
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
size: 1066167
|
|
description: "Latitude and longitude grid ball texture"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x1002d513-0x1002d52d"
|
|
|
|
- name: Soccer Ball 1.zip
|
|
system: fpinball
|
|
path: "Balls/Soccer Ball 1.zip"
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
size: 54397
|
|
description: "Soccer ball texture"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x1002d513-0x1002d52d"
|
|
|
|
# -- Physics documents, reached through XML_Presets.txt --
|
|
|
|
- name: fp-p1.0.xml
|
|
system: fpinball
|
|
path: "XML/fp-p1.0.xml"
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
size: 6290
|
|
description: "Physics 1.0 preset"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x100fba6a-0x100fbb73"
|
|
|
|
- name: fp-p2.0.xml
|
|
system: fpinball
|
|
path: "XML/fp-p2.0.xml"
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
size: 6267
|
|
description: "Physics 2.0 preset"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x100fba6a-0x100fbb73"
|
|
|
|
- name: fp-p2.1.xml
|
|
system: fpinball
|
|
path: "XML/fp-p2.1.xml"
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
size: 6267
|
|
description: "Physics 2.1 preset"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x100fba6a-0x100fbb73"
|
|
|
|
- name: fp-p2.2.xml
|
|
system: fpinball
|
|
path: "XML/fp-p2.2.xml"
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
size: 6267
|
|
description: "Physics 2.2 preset"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x100fba6a-0x100fbb73"
|
|
|
|
- name: fp-p2.3 Version 1.xml
|
|
system: fpinball
|
|
path: "XML/fp-p2.3 Version 1.xml"
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
size: 6278
|
|
description: "Physics 2.3 preset, first variant"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x100fba6a-0x100fbb73"
|
|
|
|
- name: fp-p2.3 Version 2.xml
|
|
system: fpinball
|
|
path: "XML/fp-p2.3 Version 2.xml"
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
size: 6278
|
|
description: "Physics 2.3 preset, second variant"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x100fba6a-0x100fbb73"
|
|
|
|
- name: fp-p2.4.xml
|
|
system: fpinball
|
|
path: "XML/fp-p2.4.xml"
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
size: 6267
|
|
description: "Physics 2.4 preset"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x100fba6a-0x100fbb73"
|
|
|
|
- name: fp-p2.5.xml
|
|
system: fpinball
|
|
path: "XML/fp-p2.5.xml"
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
size: 6315
|
|
description: "Physics 2.5 preset"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x100fba6a-0x100fbb73"
|
|
|
|
- name: fp-p2.5 slamtilt rubbers.xml
|
|
system: fpinball
|
|
path: "XML/fp-p2.5 slamtilt rubbers.xml"
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
size: 6335
|
|
description: "Physics 2.5 preset with the slamtilt rubber values"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x100fba6a-0x100fbb73"
|
|
|
|
- name: fp-p2.6.xml
|
|
system: fpinball
|
|
path: "XML/fp-p2.6.xml"
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
size: 6315
|
|
description: "Physics 2.6 preset"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x100fba6a-0x100fbb73"
|
|
|
|
- name: fp-p2.7.xml
|
|
system: fpinball
|
|
path: "XML/fp-p2.7.xml"
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
size: 6314
|
|
description: "Physics 2.7 preset"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x100fba6a-0x100fbb73"
|
|
|
|
- name: Zendonius_v1.0.xml
|
|
system: fpinball
|
|
path: "XML/Zendonius_v1.0.xml"
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
size: 6333
|
|
description: "Zendonius physics preset"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x100fba6a-0x100fbb73"
|
|
|
|
- name: Zendonius_v1.1.xml
|
|
system: fpinball
|
|
path: "XML/Zendonius_v1.1.xml"
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
size: 6333
|
|
description: "Zendonius physics preset, second revision"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x100fba6a-0x100fbb73"
|
|
|
|
- name: zedonius_v1_0.zip
|
|
system: fpinball
|
|
path: "XML/zedonius_v1_0.zip"
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
size: 862294
|
|
description: "Texture pack for the Zendonius preset, resources 315 to 464"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x100ae8ec-0x100ae990"
|
|
|
|
- name: zedonius_v1_1.zip
|
|
system: fpinball
|
|
path: "XML/zedonius_v1_1.zip"
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
size: 862287
|
|
description: "Texture pack for the second Zendonius revision"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x100ae8ec-0x100ae990"
|
|
|
|
# -- plugins\*.dll, every one walked and loaded at startup --
|
|
|
|
- name: DesktopCam.dll
|
|
system: fpinball
|
|
path: "plugins/DesktopCam.dll"
|
|
required: false
|
|
size: 3388680
|
|
description: "Head tracking from any webcam, desktop geometry"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x100cf400-0x100cf75c"
|
|
note: "Bound to AVICAP32 and MSVFW32 and reads the cascade files below. The 1.5-408 zip moves it to removed_plugins\\, while bam-setup.exe installs it here."
|
|
|
|
- name: Simple Cam.dll
|
|
system: fpinball
|
|
path: "plugins/Simple Cam.dll"
|
|
required: false
|
|
size: 3262728
|
|
description: "Head tracking from any webcam, cabinet geometry"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x100cf400-0x100cf75c"
|
|
note: "The 1.5-408 zip moves it to removed_plugins\\, while bam-setup.exe installs it here."
|
|
|
|
- name: PS3Eye.dll
|
|
system: fpinball
|
|
path: "plugins/PS3Eye.dll"
|
|
required: false
|
|
size: 1699080
|
|
description: "Head tracking from a PlayStation Eye"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x100cf400-0x100cf75c"
|
|
note: "Bound to CLEyeMulticam.dll, which comes from the CL-Eye SDK. The 1.5-408 zip moves it to removed_plugins\\, while bam-setup.exe installs it here."
|
|
|
|
- name: DesktopPS3Eye.dll
|
|
system: fpinball
|
|
path: "plugins/DesktopPS3Eye.dll"
|
|
required: false
|
|
size: 1813768
|
|
description: "PlayStation Eye tracking with desktop geometry"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x100cf400-0x100cf75c"
|
|
note: "The 1.5-408 zip moves it to removed_plugins\\, while bam-setup.exe installs it here."
|
|
|
|
- name: HT-PS3Eyes.dll
|
|
system: fpinball
|
|
path: "plugins/HT-PS3Eyes.dll"
|
|
required: false
|
|
bundled: true
|
|
size: 1432272
|
|
description: "Two PlayStation Eye cameras tracking an infrared marker"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x100cf400-0x100cf75c"
|
|
note: >-
|
|
Keeps its calibration in HT-PS3Eyes.dat and HT-PS3Eyes-FixCamExport.dat
|
|
beside itself, both produced by the calibration pass.
|
|
|
|
- name: Kinect.dll
|
|
system: fpinball
|
|
path: "plugins/Kinect.dll"
|
|
required: false
|
|
bundled: true
|
|
size: 2792144
|
|
description: "Head tracking from a Kinect for Xbox 360"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x100cf400-0x100cf75c"
|
|
note: "Bound to Kinect10.dll and FaceTrackLib.dll."
|
|
|
|
- name: DesktopKinect.dll
|
|
system: fpinball
|
|
path: "plugins/DesktopKinect.dll"
|
|
required: false
|
|
bundled: true
|
|
size: 31952
|
|
description: "Kinect tracking with desktop geometry"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x100cf400-0x100cf75c"
|
|
|
|
- name: Kinect2.dll
|
|
system: fpinball
|
|
path: "plugins/Kinect2.dll"
|
|
required: false
|
|
bundled: true
|
|
size: 2791632
|
|
description: "Head tracking from a Kinect for Windows v2"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x100cf400-0x100cf75c"
|
|
note: "Bound to Kinect20.dll."
|
|
|
|
- name: FaceTrackLib.dll
|
|
system: fpinball
|
|
path: "plugins/FaceTrackLib.dll"
|
|
required: false
|
|
bundled: true
|
|
size: 920272
|
|
description: "Microsoft face tracking library used by the Kinect plugins"
|
|
source_ref: "DesktopKinect.dll, Kinect.dll import directories"
|
|
|
|
- name: FaceTrackData.dll
|
|
system: fpinball
|
|
path: "plugins/FaceTrackData.dll"
|
|
required: false
|
|
bundled: true
|
|
size: 10650832
|
|
description: "Model data for the face tracking library"
|
|
source_ref: "FaceTrackLib.dll .rdata, wide literal FaceTrackData.dll"
|
|
|
|
- name: FreeTrack.dll
|
|
system: fpinball
|
|
path: "plugins/FreeTrack.dll"
|
|
required: false
|
|
bundled: true
|
|
size: 95440
|
|
description: "Head tracking from a FreeTrack server"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x100cf400-0x100cf75c"
|
|
|
|
- name: TrackIR.dll
|
|
system: fpinball
|
|
path: "plugins/TrackIR.dll"
|
|
required: false
|
|
bundled: true
|
|
size: 20176
|
|
description: "Head tracking from a NaturalPoint TrackIR"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x100cf400-0x100cf75c, TrackIR.dll .text:0x100018c7"
|
|
note: >-
|
|
Matches the name NPClient with strstr and pairs LoadLibraryA with
|
|
GetProcAddress on it. The plugin imports no registry function, so the
|
|
client library is resolved as a plain module name.
|
|
|
|
- name: PostFX.dll
|
|
system: fpinball
|
|
path: "plugins/PostFX.dll"
|
|
required: false
|
|
bundled: true
|
|
size: 39632
|
|
description: "Bloom and the unfinished ambient occlusion pass"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x100cf5ff, BAM_Plugins PostFX/PostFX.cpp:41-45"
|
|
note: >-
|
|
Named in BAM.dll and compared against the enumerated file names, so it is
|
|
the one plugin the mod knows by name. Its nine GLSL programs are TEXT
|
|
resources inside the plugin, read with FindResourceA. Two builds circulate
|
|
under this name, the 39632 bytes of bam-setup.exe and 191240 bytes in
|
|
BAM-OpenVR.zip.
|
|
|
|
- name: PinballHighScore.dll
|
|
system: fpinball
|
|
path: "plugins/PinballHighScore.dll"
|
|
required: false
|
|
bundled: true
|
|
size: 918224
|
|
description: "Records high scores across tables"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x100cf400-0x100cf75c"
|
|
|
|
- name: PinballHighScore.cfg
|
|
system: fpinball
|
|
path: "plugins/PinballHighScore.cfg"
|
|
required: false
|
|
bundled: true
|
|
size: 1016
|
|
description: "Settings block the high score plugin reads and writes"
|
|
source_ref: "BAM_Plugins Common/BAM.h:136-157"
|
|
|
|
- name: PinballHighScore.db
|
|
system: fpinball
|
|
path: "plugins/PinballHighScore.db"
|
|
required: false
|
|
size: 45056
|
|
description: "Score database the plugin opens by name"
|
|
source_ref: "PinballHighScore.dll .rdata"
|
|
note: "Only BAM-OpenVR.zip carries a copy. The plugin creates one otherwise."
|
|
|
|
- name: PuPPlugin.dll
|
|
system: fpinball
|
|
path: "plugins/PuPPlugin.dll"
|
|
required: false
|
|
bundled: true
|
|
size: 240216
|
|
description: "PuPCOM script object drawing PinUP Player video onto table textures"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x100cf400-0x100cf75c, PuPPlugin.dll .rdata IPuPCOM, PuPPlugin.dll PuPVideo"
|
|
note: "Takes BAM_GetTextureId and BAM_ReplaceTexture from the plugin API."
|
|
|
|
- name: icom.dll
|
|
system: fpinball
|
|
path: "plugins/icom.dll"
|
|
required: false
|
|
bundled: true
|
|
size: 67280
|
|
description: "Gives a table script the COM objects the cabinet stack exposes"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x100cf400-0x100cf75c, icom.dll .rdata ProgID pattern"
|
|
note: >-
|
|
Matches created objects against
|
|
PinUpPlayer, Vpinmame, B2S, PUPDMDControl, UltraDMD, PinSSF and
|
|
DirectOutput.
|
|
|
|
- name: OpenVR.dll
|
|
system: fpinball
|
|
path: "plugins/OpenVR.dll"
|
|
required: false
|
|
size: 419328
|
|
description: "Renders the table to an OpenVR headset"
|
|
source_ref: "BAM_Plugins OpenVR/main.cpp, BAM.dll 1.5-408 .text:0x100cf400-0x100cf75c"
|
|
note: "Ships only in BAM-OpenVR.zip, a separate build with its own BAM.dll, which ES-DE also looks for as BAM-OpenVR\\."
|
|
|
|
- name: openvr_api.dll
|
|
system: fpinball
|
|
path: "plugins/openvr_api.dll"
|
|
required: false
|
|
size: 620760
|
|
description: "Valve OpenVR runtime interface"
|
|
source_ref: "OpenVR.dll import directory"
|
|
|
|
- name: haarcascade_frontalface_alt.xml
|
|
system: fpinball
|
|
path: "plugins/haarcascades/haarcascade_frontalface_alt.xml"
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
size: 919871
|
|
description: "OpenCV Haar cascade for frontal faces"
|
|
source_ref: "DesktopCam.dll, PS3Eye.dll, Simple Cam.dll .rdata"
|
|
|
|
- name: haarcascade_frontalface_default.xml
|
|
system: fpinball
|
|
path: "plugins/haarcascades/haarcascade_frontalface_default.xml"
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
size: 1254733
|
|
description: "Second OpenCV Haar cascade for frontal faces"
|
|
source_ref: "DesktopCam.dll, PS3Eye.dll, Simple Cam.dll .rdata"
|
|
|
|
- name: lbpcascade_frontalface.xml
|
|
system: fpinball
|
|
path: "plugins/lbpcascades/lbpcascade_frontalface.xml"
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
size: 51856
|
|
description: "OpenCV local binary pattern cascade for frontal faces"
|
|
source_ref: "DesktopCam.dll, PS3Eye.dll, Simple Cam.dll .rdata"
|
|
|
|
# -- Named by the code, absent from both distributions --
|
|
|
|
- name: opencv_ffmpeg2410.dll
|
|
system: fpinball
|
|
required: false
|
|
description: "OpenCV 2.4.10 FFmpeg bridge, video files as a camera source"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x102a6013-0x102a605b"
|
|
note: >-
|
|
LoadLibraryA followed by GetProcAddress on cvCreateFileCapture_FFMPEG,
|
|
cvGrabFrame_FFMPEG and the rest. A null handle leaves the entry points
|
|
unbound and only the file source is lost.
|
|
|
|
- name: CLEyeMulticam.dll
|
|
system: fpinball
|
|
required: false
|
|
description: "CL-Eye Platform SDK driver interface for the PlayStation Eye"
|
|
source_ref: "PS3Eye.dll, DesktopPS3Eye.dll, HT-PS3Eyes.dll import directories"
|
|
|
|
- name: Kinect10.dll
|
|
system: fpinball
|
|
required: false
|
|
description: "Kinect for Windows SDK 1.x runtime"
|
|
source_ref: "Kinect.dll, DesktopKinect.dll, FaceTrackLib.dll import directories"
|
|
|
|
- name: Kinect20.dll
|
|
system: fpinball
|
|
required: false
|
|
description: "Kinect for Windows SDK 2.0 runtime"
|
|
source_ref: "Kinect2.dll import directory"
|
|
|
|
- name: NPClient.dll
|
|
system: fpinball
|
|
required: false
|
|
description: "NaturalPoint TrackIR client library"
|
|
source_ref: "TrackIR.dll .rdata"
|
|
note: >-
|
|
Comes from a TrackIR install rather than from any BAM distribution, which
|
|
is why no path is given here.
|
|
|
|
analysis:
|
|
written_not_read:
|
|
note: >-
|
|
Opened only for writing, so they are output rather than something to
|
|
obtain. All of them sit in the BAM directory.
|
|
entries:
|
|
- what: "cfg\\<table>.cfg and cfg\\<table>.seq, per table settings and camera sequences"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x10025e59, 0x100319b9, 0x10032bdb"
|
|
note: >-
|
|
Built as cfg\\<table> then finished with the extension. Saved from the
|
|
menu and read back on the next launch of the same table.
|
|
- what: "Cache\\<table>-shadows.zip, precomputed shadow maps"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x10105c18-0x1010697f"
|
|
note: >-
|
|
Checked with GetFileAttributesA and rebuilt when absent. Holds
|
|
shadowmaps.txt and one <name>-shadows.tga per light, written through
|
|
the rendering engine.
|
|
- what: "set3points.dat, the three point calibration of the screen corners"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x10077b80-0x10077bd7"
|
|
note: "fopen_s with wb, fwrite, fclose. No read site exists."
|
|
- what: "BAM_debug.log, BAM_CRASH.log and OpenGLdbg.log"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x1007a45b, 0x1007ae0a, 0x100d4318-0x100d4391"
|
|
note: >-
|
|
The crash log is written from the fault handler installed at load
|
|
time, the other two only when the matching switch is on the command
|
|
line.
|
|
|
|
shipped_but_not_loaded:
|
|
note: "Present in a distribution with no code path that opens it"
|
|
entries:
|
|
- what: "zlib.dll in BAM-OpenVR.zip"
|
|
source_ref: "BAM.dll, renderingengine.dll and every plugin import directory"
|
|
note: >-
|
|
No shipped binary imports it and neither BAM.dll nor
|
|
renderingengine.dll names it in any string. Both carry their own zlib.
|
|
- what: "License.txt, 3741 bytes"
|
|
source_ref: "bam-setup.exe payload"
|
|
note: "The zlib licence the loader source carries, copied into the install."
|
|
|
|
named_but_not_obtainable:
|
|
note: "A literal the code opens that no distribution can provide"
|
|
entries:
|
|
- what: "c:\\games\\ppmm.bin"
|
|
source_ref: "BAM.dll 1.5-408 .text:0x100cff69-0x100cffa5"
|
|
note: >-
|
|
fopen_s with rb then fread, guarded by two globals and reached only
|
|
after glGetFloatv has read the modelview and projection matrices. The
|
|
path is absolute and points at a directory no install creates.
|
|
|
|
platform_components:
|
|
note: >-
|
|
Named in import directories but supplied by Windows or by a Microsoft
|
|
redistributable, so they are prerequisites rather than payload.
|
|
entries:
|
|
- what: "MSVCP140.dll, VCRUNTIME140.dll, CONCRT140.dll and the api-ms-win-crt set"
|
|
source_ref: "BAM.dll, renderingengine.dll import directories"
|
|
note: "Visual C++ 2015 or later runtime. Neither distribution carries it."
|
|
- what: "MSVCR100.dll, MSVCR120.dll and MSVCP120.dll"
|
|
source_ref: "PostFX.dll, TrackIR.dll, DesktopKinect.dll, PinballHighScore.dll import directories"
|
|
note: "Visual C++ 2010 and 2013 runtimes, for the older plugins."
|
|
- what: "opengl32, glu32, dinput8, hid, avicap32, avifil32, msvfw32, d3d11, dxgi"
|
|
source_ref: "BAM.dll, renderingengine.dll, plugin import directories"
|
|
note: "Windows components."
|