Skip to content

vpinball: update to support 10.8.1#15238

Draft
jsm174 wants to merge 1 commit intobatocera-linux:masterfrom
jsm174:vpinball-10-8-1
Draft

vpinball: update to support 10.8.1#15238
jsm174 wants to merge 1 commit intobatocera-linux:masterfrom
jsm174:vpinball-10-8-1

Conversation

@jsm174
Copy link
Contributor

@jsm174 jsm174 commented Jan 27, 2026

This PR is to start the migration of Visual Pinball 10.8.0 to 10.8.1 for Batocera 44.

10.8.1 has been in development for over two years, during which many concepts from the standalone branch were incorporated into master. (Standalone was merged into master on 11/27/2023, and 10.8.1 development started on 12/27/2023)

I'll add additional information here, but a few highlights are:

  • Completely overhauled graphics system using patched fork of BGFX
  • Completely rewritten audio system that no longer uses BASS and provides 7.1 audio support on Linux
  • Completely rewritten input system using SDL3
  • Core features are now split in dynamically loaded plugins
  • DMD (ScoreView) are now rendered using shaders
  • Backglass, ScoreView, and Toppers can now be rendered into external displays or playfield display
  • Supports B2S FullDMD with auto-positioned ScoreView
  • Support for unencrypted VNI colorizations
  • Support for PIN2DMD displays

Other notes:

  • Work will need to be done to all the config-gen as the ini is completely different.
  • The default ini is no longer an asset. And the file is generated via code on first launch.
  • Since other emulators could potentially use BGFX, and we are using a fork, BGFX is built locally. All other libraries and includes are in their correct places.
  • Shaders are no longer assets, so that folder is no longer needed.
  • The file layout for Visual Pinball have been documented here

ARCH = x86_64
endif

define VPINBALL_BUILD_BGFX
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you should add the dependency as a submodule that way you can easily control the version
this is how most other builds work for linux especially
then we can just use VPINBALL_GIT_SUBMODULES = YES
the associated build should then be handled in your cmake files.

Copy link
Contributor Author

@jsm174 jsm174 Jan 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Understood. The vpinball repo does not use submodules so this will not be possible.

https://github.com/vpinball/vpinball/tree/master/platforms/config.sh (contains the shas for external projects)
https://github.com/vpinball/vpinball/tree/master/platforms/* (external build scripts for each platform)

Copy link
Contributor Author

@jsm174 jsm174 Jan 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've updated the code to pull the BGFX_CMAKE_VERSION and BGFX_PATCH_SHA from the config.sh so they are no longer need in the vpinball.mk.

borrowed $(eval) logic from xemu.mk script.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why not have the team update it? don't you work with them? you can then add the bgfx build & possible patch to a main cmakelists.txt file then which will include os & architecture detection rather than copying files etc.

@jsm174 jsm174 force-pushed the vpinball-10-8-1 branch 4 times, most recently from bce46db to 6aafdc1 Compare January 27, 2026 22:46
ARCH = x86_64
endif

define VPINBALL_BUILD_BGFX
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why not have the team update it? don't you work with them? you can then add the bgfx build & possible patch to a main cmakelists.txt file then which will include os & architecture detection rather than copying files etc.


VPINBALL_PRE_CONFIGURE_HOOKS += VPINBALL_BUILD_BGFX

define VPINBALL_CMAKE_HACKS
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cmake hacks can also be avoided if they used find_package(PkgConfig) in the associated cmake for third-party libraries also.

@jsm174 jsm174 force-pushed the vpinball-10-8-1 branch 3 times, most recently from 328374a to ce527b7 Compare February 3, 2026 23:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants