Skip to content

future-pinball-fploader - RetroBIOS

Type standalone
Classification Enhanced forks
Source https://github.com/ravarcade/BAM_FPloader
Upstream https://www.ravarcade.pl/
Version 1.5-408
Profiled 2026-08-11
Cores future-pinball-fploader, bam
Systems fpinball
Source 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.
Technical 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; 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\

.cfg and cfg\
.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/.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; 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 .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

70 files | 3 required, 67 optional | 68 in repo, 2 missing Categories: 38 BIOS, 32 game data

BAM.dll required in repo bundled
The mod, injected into Future Pinball and holding every feature

  • System: fpinball
  • Size: 7.9 MB
  • Source: BAM_FPloader FPLoader.cpp:45, BAM_FPloader FPLoader.cpp:166-182
  • Taken from the loader's directory, else from C:\Games\Future Pinball\BAM. Neither present ends the loader with a message box.

renderingengine.dll required in repo bundled
Rendering engine and asset loader behind BAM

  • System: fpinball
  • Size: 8.4 MB
  • Source: BAM.dll 1.5-408 import directory, BAM_FPloader FPLoader.cpp:249-257
  • Bound statically by BAM.dll, so the injected LoadLibraryA fails without it. The loader adds its own directory to %PATH% for this file alone.

Future Pinball.exe required in repo
The program BAM starts and modifies

  • System: fpinball
  • Size: 27.2 MB
  • Source: BAM_FPloader FPLoader.cpp:41, BAM_FPloader FPLoader.cpp:46, BAM_FPloader FPLoader.cpp:184-240
  • 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.

BAM-Tracker.exe optional in repo bundled
Head tracking calibration host

  • System: fpinball
  • Size: 202.2 KB
  • Source: BAM-Tracker.exe import directory, BAM.dll 1.5-408 .text:0x1008320e
  • 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.

ModelImporter.exe optional in repo bundled
Converts models to the .fpm form tables import

  • System: fpinball
  • Size: 4.3 MB
  • Source: ModelImporter.exe import directory, .rdata dialog filter
  • Bound to renderingengine.dll for the Assimp side. Its open dialog accepts .fpm, .obj, .ms3d, .md5mesh and .fbx.

bam.cfg optional in repo
Key bindings and screenshot paths, the one text config

  • System: fpinball
  • Size: 316 B
  • Aliases: Keyboard.cfg
  • Source: BAM.dll 1.5-408 .text:0x100c3960-0x100c3a97
  • Keyboard.cfg is the older name and is renamed on sight. 9999 in a key slot leaves the function unbound.

default.cfg optional in repo
Global camera, lighting, physics and rendering settings

  • System: fpinball
  • Size: 3.0 KB
  • Source: BAM.dll 1.5-408 .text:0x100326ba-0x100371bc
  • A binary block of the same shape as a per table cfg. Saving it reports "default.cfg saved".

default.seq optional in repo game_data bundled
Camera animation sequences used when a table brings none

  • System: fpinball
  • Size: 1.3 KB
  • Source: BAM.dll 1.5-408 .text:0x10025e40-0x1002608f
  • 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.

default.xml optional in repo
Physics values applied when a table specifies none

  • System: fpinball
  • Source: BAM.dll 1.5-408 .text:0x100ae843-0x100ae8a7, 0x10037130-0x100371de
  • 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.

default.zip optional in repo game_data
Texture pack applied to every table

  • System: fpinball
  • Source: BAM.dll 1.5-408 .text:0x100ae8ec-0x100ae990
  • Holds BMP/.bmp entries keyed by Future Pinball resource id, the form the ball packs and the Zendonius packs use.

XML_Presets.txt optional missing
List of physics documents offered in the presets menu

  • System: fpinball
  • Source: BAM.dll 1.5-408 .text:0x100fba6a-0x100fbd8a
  • 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.

Reality.dat optional in repo
Physical measurements of the cabinet and the screen

  • System: fpinball
  • Size: 920 B
  • Source: BAM.dll 1.5-408 .text:0x10031bbb, 0x10031ebe
  • Read at startup and rewritten from the Reality submenu. Head tracking and stereo geometry are computed from it.

WiiMoteCams.dat optional in repo
WiiMote identifiers kept for the WiiMote camera mode

  • System: fpinball
  • Size: 16 B
  • Source: BAM.dll 1.5-408 .text:0x10031d22, 0x10032f9f

CalibrationBoardData.cfg optional in repo
Dimensions of the printed board used to calibrate cameras

  • System: fpinball
  • Size: 272 B
  • Source: BAM.dll 1.5-408 .text:0x10031ad8, 0x10032d4b

stereoCalibrationData.cfg optional in repo
Result of the two camera calibration pass

  • System: fpinball
  • Size: 1.1 KB
  • Source: BAM.dll 1.5-408 .text:0x10031c75, 0x10032de3

axis.zip optional in repo game_data bundled
Ball texture showing the rotation axes

  • Path: Balls/axis.zip
  • System: fpinball
  • Size: 469.6 KB
  • Source: BAM.dll 1.5-408 .text:0x1002d513-0x1002d52d

Baseball.zip optional in repo game_data bundled
Baseball ball texture

  • Path: Balls/Baseball.zip
  • System: fpinball
  • Size: 242.7 KB
  • Source: BAM.dll 1.5-408 .text:0x1002d513-0x1002d52d

Basketball 1.zip optional in repo game_data bundled
Basketball ball texture

  • Path: Balls/Basketball 1.zip
  • System: fpinball
  • Size: 145.4 KB
  • Source: BAM.dll 1.5-408 .text:0x1002d513-0x1002d52d

Basketball 2.zip optional in repo game_data bundled
Second basketball ball texture

  • Path: Balls/Basketball 2.zip
  • System: fpinball
  • Size: 72.6 KB
  • Source: BAM.dll 1.5-408 .text:0x1002d513-0x1002d52d

Cue Black.zip optional in repo game_data bundled
Black cue ball texture

  • Path: Balls/Cue Black.zip
  • System: fpinball
  • Size: 535.2 KB
  • Source: BAM.dll 1.5-408 .text:0x1002d513-0x1002d52d

Cue White.zip optional in repo game_data bundled
White cue ball texture

  • Path: Balls/Cue White.zip
  • System: fpinball
  • Size: 541.1 KB
  • Source: BAM.dll 1.5-408 .text:0x1002d513-0x1002d52d

earth.zip optional in repo game_data bundled
Globe ball texture, three BMP resources

  • Path: Balls/earth.zip
  • System: fpinball
  • Size: 711.4 KB
  • Source: BAM.dll 1.5-408 .text:0x1002d513-0x1002d52d

EYETOY.zip optional in repo game_data bundled
EyeToy ball texture

  • Path: Balls/EYETOY.zip
  • System: fpinball
  • Size: 365.1 KB
  • Source: BAM.dll 1.5-408 .text:0x1002d513-0x1002d52d

Fireball.zip optional in repo game_data bundled
Fireball ball texture

  • Path: Balls/Fireball.zip
  • System: fpinball
  • Size: 234.7 KB
  • Source: BAM.dll 1.5-408 .text:0x1002d513-0x1002d52d

Knight.zip optional in repo game_data bundled
Knight ball texture

  • Path: Balls/Knight.zip
  • System: fpinball
  • Size: 411.4 KB
  • Source: BAM.dll 1.5-408 .text:0x1002d513-0x1002d52d

latlong.zip optional in repo game_data bundled
Latitude and longitude grid ball texture

  • Path: Balls/latlong.zip
  • System: fpinball
  • Size: 1.0 MB
  • Source: BAM.dll 1.5-408 .text:0x1002d513-0x1002d52d

Soccer Ball 1.zip optional in repo game_data bundled
Soccer ball texture

  • Path: Balls/Soccer Ball 1.zip
  • System: fpinball
  • Size: 53.1 KB
  • Source: BAM.dll 1.5-408 .text:0x1002d513-0x1002d52d

fp-p1.0.xml optional in repo game_data bundled
Physics 1.0 preset

  • Path: XML/fp-p1.0.xml
  • System: fpinball
  • Size: 6.1 KB
  • Source: BAM.dll 1.5-408 .text:0x100fba6a-0x100fbb73

fp-p2.0.xml optional in repo game_data bundled
Physics 2.0 preset

  • Path: XML/fp-p2.0.xml
  • System: fpinball
  • Size: 6.1 KB
  • Source: BAM.dll 1.5-408 .text:0x100fba6a-0x100fbb73

fp-p2.1.xml optional in repo game_data bundled
Physics 2.1 preset

  • Path: XML/fp-p2.1.xml
  • System: fpinball
  • Size: 6.1 KB
  • Source: BAM.dll 1.5-408 .text:0x100fba6a-0x100fbb73

fp-p2.2.xml optional in repo game_data bundled
Physics 2.2 preset

  • Path: XML/fp-p2.2.xml
  • System: fpinball
  • Size: 6.1 KB
  • Source: BAM.dll 1.5-408 .text:0x100fba6a-0x100fbb73

fp-p2.3 Version 1.xml optional in repo game_data bundled
Physics 2.3 preset, first variant

  • Path: XML/fp-p2.3 Version 1.xml
  • System: fpinball
  • Size: 6.1 KB
  • Source: BAM.dll 1.5-408 .text:0x100fba6a-0x100fbb73

fp-p2.3 Version 2.xml optional in repo game_data bundled
Physics 2.3 preset, second variant

  • Path: XML/fp-p2.3 Version 2.xml
  • System: fpinball
  • Size: 6.1 KB
  • Source: BAM.dll 1.5-408 .text:0x100fba6a-0x100fbb73

fp-p2.4.xml optional in repo game_data bundled
Physics 2.4 preset

  • Path: XML/fp-p2.4.xml
  • System: fpinball
  • Size: 6.1 KB
  • Source: BAM.dll 1.5-408 .text:0x100fba6a-0x100fbb73

fp-p2.5.xml optional in repo game_data bundled
Physics 2.5 preset

  • Path: XML/fp-p2.5.xml
  • System: fpinball
  • Size: 6.2 KB
  • Source: BAM.dll 1.5-408 .text:0x100fba6a-0x100fbb73

fp-p2.5 slamtilt rubbers.xml optional in repo game_data bundled
Physics 2.5 preset with the slamtilt rubber values

  • Path: XML/fp-p2.5 slamtilt rubbers.xml
  • System: fpinball
  • Size: 6.2 KB
  • Source: BAM.dll 1.5-408 .text:0x100fba6a-0x100fbb73

fp-p2.6.xml optional in repo game_data bundled
Physics 2.6 preset

  • Path: XML/fp-p2.6.xml
  • System: fpinball
  • Size: 6.2 KB
  • Source: BAM.dll 1.5-408 .text:0x100fba6a-0x100fbb73

fp-p2.7.xml optional in repo game_data bundled
Physics 2.7 preset

  • Path: XML/fp-p2.7.xml
  • System: fpinball
  • Size: 6.2 KB
  • Source: BAM.dll 1.5-408 .text:0x100fba6a-0x100fbb73

Zendonius_v1.0.xml optional in repo game_data bundled
Zendonius physics preset

  • Path: XML/Zendonius_v1.0.xml
  • System: fpinball
  • Size: 6.2 KB
  • Source: BAM.dll 1.5-408 .text:0x100fba6a-0x100fbb73

Zendonius_v1.1.xml optional in repo game_data bundled
Zendonius physics preset, second revision

  • Path: XML/Zendonius_v1.1.xml
  • System: fpinball
  • Size: 6.2 KB
  • Source: BAM.dll 1.5-408 .text:0x100fba6a-0x100fbb73

zedonius_v1_0.zip optional in repo game_data bundled
Texture pack for the Zendonius preset, resources 315 to 464

  • Path: XML/zedonius_v1_0.zip
  • System: fpinball
  • Size: 842.1 KB
  • Source: BAM.dll 1.5-408 .text:0x100ae8ec-0x100ae990

zedonius_v1_1.zip optional in repo game_data bundled
Texture pack for the second Zendonius revision

  • Path: XML/zedonius_v1_1.zip
  • System: fpinball
  • Size: 842.1 KB
  • Source: BAM.dll 1.5-408 .text:0x100ae8ec-0x100ae990

DesktopCam.dll optional in repo bundled
Head tracking from any webcam, desktop geometry

  • Path: plugins/DesktopCam.dll
  • System: fpinball
  • Size: 3.2 MB
  • Source: BAM.dll 1.5-408 .text:0x100cf400-0x100cf75c
  • Bound to AVICAP32 and MSVFW32 and reads the cascade files below.

Simple Cam.dll optional in repo bundled
Head tracking from any webcam, cabinet geometry

  • Path: plugins/Simple Cam.dll
  • System: fpinball
  • Size: 3.1 MB
  • Source: BAM.dll 1.5-408 .text:0x100cf400-0x100cf75c

PS3Eye.dll optional in repo bundled
Head tracking from a PlayStation Eye

  • Path: plugins/PS3Eye.dll
  • System: fpinball
  • Size: 1.6 MB
  • Source: BAM.dll 1.5-408 .text:0x100cf400-0x100cf75c
  • Bound to CLEyeMulticam.dll, which comes from the CL-Eye SDK.

DesktopPS3Eye.dll optional in repo bundled
PlayStation Eye tracking with desktop geometry

  • Path: plugins/DesktopPS3Eye.dll
  • System: fpinball
  • Size: 1.7 MB
  • Source: BAM.dll 1.5-408 .text:0x100cf400-0x100cf75c

HT-PS3Eyes.dll optional in repo bundled
Two PlayStation Eye cameras tracking an infrared marker

  • Path: plugins/HT-PS3Eyes.dll
  • System: fpinball
  • Size: 1.4 MB
  • Source: BAM.dll 1.5-408 .text:0x100cf400-0x100cf75c
  • Keeps its calibration in HT-PS3Eyes.dat and HT-PS3Eyes-FixCamExport.dat beside itself, both produced by the calibration pass.

Kinect.dll optional in repo bundled
Head tracking from a Kinect for Xbox 360

  • Path: plugins/Kinect.dll
  • System: fpinball
  • Size: 2.7 MB
  • Source: BAM.dll 1.5-408 .text:0x100cf400-0x100cf75c
  • Bound to Kinect10.dll and FaceTrackLib.dll.

DesktopKinect.dll optional in repo bundled
Kinect tracking with desktop geometry

  • Path: plugins/DesktopKinect.dll
  • System: fpinball
  • Size: 31.2 KB
  • Source: BAM.dll 1.5-408 .text:0x100cf400-0x100cf75c

Kinect2.dll optional in repo bundled
Head tracking from a Kinect for Windows v2

  • Path: plugins/Kinect2.dll
  • System: fpinball
  • Size: 2.7 MB
  • Source: BAM.dll 1.5-408 .text:0x100cf400-0x100cf75c
  • Bound to Kinect20.dll.

FaceTrackLib.dll optional in repo bundled
Microsoft face tracking library used by the Kinect plugins

  • Path: plugins/FaceTrackLib.dll
  • System: fpinball
  • Size: 898.7 KB
  • Source: DesktopKinect.dll, Kinect.dll import directories

FaceTrackData.dll optional in repo bundled
Model data for the face tracking library

  • Path: plugins/FaceTrackData.dll
  • System: fpinball
  • Size: 10.2 MB
  • Source: FaceTrackLib.dll .rdata, wide literal FaceTrackData.dll

FreeTrack.dll optional in repo bundled
Head tracking from a FreeTrack server

  • Path: plugins/FreeTrack.dll
  • System: fpinball
  • Size: 93.2 KB
  • Source: BAM.dll 1.5-408 .text:0x100cf400-0x100cf75c

TrackIR.dll optional in repo bundled
Head tracking from a NaturalPoint TrackIR

  • Path: plugins/TrackIR.dll
  • System: fpinball
  • Size: 19.7 KB
  • Source: BAM.dll 1.5-408 .text:0x100cf400-0x100cf75c, TrackIR.dll .text:0x100018c7
  • 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.

PostFX.dll optional in repo bundled
Bloom and the unfinished ambient occlusion pass

  • Path: plugins/PostFX.dll
  • System: fpinball
  • Size: 38.7 KB
  • Source: BAM.dll 1.5-408 .text:0x100cf5ff, BAM_Plugins PostFX/PostFX.cpp:41-45
  • 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.

PinballHighScore.dll optional in repo bundled
Records high scores across tables

  • Path: plugins/PinballHighScore.dll
  • System: fpinball
  • Size: 896.7 KB
  • Source: BAM.dll 1.5-408 .text:0x100cf400-0x100cf75c

PinballHighScore.cfg optional in repo bundled
Settings block the high score plugin reads and writes

  • Path: plugins/PinballHighScore.cfg
  • System: fpinball
  • Size: 1016 B
  • Source: BAM_Plugins Common/BAM.h:136-157

PinballHighScore.db optional in repo
Score database the plugin opens by name

  • Path: plugins/PinballHighScore.db
  • System: fpinball
  • Size: 44.0 KB
  • Source: PinballHighScore.dll .rdata
  • Only BAM-OpenVR.zip carries a copy; the plugin creates one otherwise.

PuPPlugin.dll optional in repo bundled
PuPCOM script object drawing PinUP Player video onto table textures

  • Path: plugins/PuPPlugin.dll
  • System: fpinball
  • Size: 234.6 KB
  • Source: BAM.dll 1.5-408 .text:0x100cf400-0x100cf75c, PuPPlugin.dll .rdata IPuPCOM, PuPVideo
  • Takes BAM_GetTextureId and BAM_ReplaceTexture from the plugin API.

icom.dll optional in repo bundled
Gives a table script the COM objects the cabinet stack exposes

  • Path: plugins/icom.dll
  • System: fpinball
  • Size: 65.7 KB
  • Source: BAM.dll 1.5-408 .text:0x100cf400-0x100cf75c, icom.dll .rdata ProgID pattern
  • Matches created objects against PinUpPlayer, Vpinmame, B2S, PUPDMDControl, UltraDMD, PinSSF and DirectOutput.

OpenVR.dll optional in repo bundled
Renders the table to an OpenVR headset

  • Path: plugins/OpenVR.dll
  • System: fpinball
  • Size: 409.5 KB
  • Source: BAM_Plugins OpenVR/main.cpp, BAM.dll 1.5-408 .text:0x100cf400-0x100cf75c
  • Ships only in BAM-OpenVR.zip, which ES-DE also looks for as BAM-OpenVR.

openvr_api.dll optional in repo bundled
Valve OpenVR runtime interface

  • Path: plugins/openvr_api.dll
  • System: fpinball
  • Size: 606.2 KB
  • Source: OpenVR.dll import directory

haarcascade_frontalface_alt.xml optional in repo game_data bundled
OpenCV Haar cascade for frontal faces

  • Path: plugins/haarcascades/haarcascade_frontalface_alt.xml
  • System: fpinball
  • Size: 898.3 KB
  • Source: DesktopCam.dll, PS3Eye.dll, Simple Cam.dll .rdata

haarcascade_frontalface_default.xml optional in repo game_data bundled
Second OpenCV Haar cascade for frontal faces

  • Path: plugins/haarcascades/haarcascade_frontalface_default.xml
  • System: fpinball
  • Size: 1.2 MB
  • Source: DesktopCam.dll, PS3Eye.dll, Simple Cam.dll .rdata

lbpcascade_frontalface.xml optional in repo game_data bundled
OpenCV local binary pattern cascade for frontal faces

  • Path: plugins/lbpcascades/lbpcascade_frontalface.xml
  • System: fpinball
  • Size: 50.6 KB
  • Source: DesktopCam.dll, PS3Eye.dll, Simple Cam.dll .rdata

opencv_ffmpeg2410.dll optional in repo
OpenCV 2.4.10 FFmpeg bridge, video files as a camera source

  • System: fpinball
  • Source: BAM.dll 1.5-408 .text:0x102a6013-0x102a605b
  • 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.

CLEyeMulticam.dll optional in repo
CL-Eye Platform SDK driver interface for the PlayStation Eye

Kinect10.dll optional in repo
Kinect for Windows SDK 1.x runtime

Kinect20.dll optional in repo
Kinect for Windows SDK 2.0 runtime

  • System: fpinball
  • Source: Kinect2.dll import directory

NPClient.dll optional missing
NaturalPoint TrackIR client library

  • System: fpinball
  • Source: TrackIR.dll .rdata
  • Comes from a TrackIR install rather than from any BAM distribution, which is why no path is given here.

Generated on 2026-08-23T16:12:06Z