Jump to content



Submitter

SUPPORT TOPIC File Information

  • Submitted: Dec 24 2016 11:36 AM
  • Last Updated: Mar 04 2026 06:46 PM
  • File Size: 15.18MB
  • Views: 156746
  • Downloads: 34,552

Previous Versions

  • 18 Dec 2025 Download B2S Backglass Server 2.1.5.1
  • 17 Dec 2025 Download B2S Backglass Server 2.1.5
  • 14 Nov 2025 Download B2S Backglass Server 2.1.4 mashup

Download B2S Backglass Server 2.1.6

* * * * * 71 Votes
B2S Backglass Server directB2S Backglass



System files to run 'directB2S' backglasses, usually in combination with Visual Pinball tables.
 
What Stefan Wuehr ('Herweh') started in 2012 continues here.
 
For beta releases and full change log check the github repo https://github.com/v...l/b2s-backglass 
 
For installation, examples and explanation of the new features check the new wiki here https://github.com/v...-backglass/wiki
 
Please do not forget to like and review..., what is important for content creators (tables, backglasses, DMD colorization?)...
... is as important for us writing the tool-set
 
For the download of the "B2S Backglass Designer" to customize already existing or create new directB2S backglasses please click here.


make sure you do NOT mix VPX 10.8.1 in your older VPX installation

What's New in Version 2.1.6 (See full changelog)

  • B2S Server v2.1.6 compatible with VPX 10.8.1
  • - B2SWindowPunch punched to big, now fixed.
  • - B2SWindowPunch can punch rounded edges. Third parameter control radius (cutterradius).
  • - B2SInit timeout can be controlled through res file (cuttertimeout)
  • - B2SScreenResIdentifier crash when changing checkboxes #132
  • - B2SBackglassServerRegisterApp unblock files while registering #64
  • - B2SBackglassServerRegisterApp clean up unused registry keys #169
  • - B2SServer should not produce unused registry keys #169
  • - Corrected Fuzzy matching #157, Thanks bthlonewolf
  • - Add back right click context menu on VPX #127
  • - ScreenRes files should searched first for the backglass and then VPX file name #163
  • - Stop searching window title for tablename when VPX feeds this through COM. This is a error prone way of getting the name of the table. #167
  • From VPX 10.8.0-2079 (vpinball #5057) and VPX 10.8.1-4620 this is now solved in VPX script Controller.vbs
  • The B2S Server is now compatible with VPX 10.8.1 BGFX!




 

I would like to organize my tables and backglasses into folders. I am finding hard to maintain a ScreenRes.txt in the same folder as every table. Here is a change that will look for ScreenRes.TXT in the install folder if it isn't found next to the table. Would this be OK?

 

From:B2SScreen.vb

#Region "get backglass settings and show backglass"

    Private Sub ReadB2SSettingsFromFile()
...
        Try
            specialFileName = IO.Path.Combine(B2SData.TableFileName & ".res")
            loadSpecialOne = IO.File.Exists(specialFileName)
            specialDirFileName = IO.Path.Combine(B2SData.TableFileName, FileName)
            loadSpecialDirOne = IO.File.Exists(specialDirFileName)
        Catch
        End Try

''''Change starts here'''''
        'If ScreenRes Not found near table then look in install path
        If Not IO.File.Exists(FileName) Then
            Dim exePath As String = Application.StartupPath()
            FileName = exePath + "/ScreenRes.txt"
        End If
''''Change ends here''''

        If loadSpecialOne OrElse loadSpecialDirOne OrElse IO.File.Exists(FileName) Then

            ' open settings file
            FileOpen(1, If(loadSpecialOne, specialFileName, If(loadSpecialDirOne, specialDirFileName, FileName)), OpenMode.Input)

Since we now are on github, it is rather easy to add bug fixes or requests for new features.

 

If you want or need a change, an issue on github and a pull request ->and a change like this should be possible!

 

/Jarr3

 

I would like to organize my tables and backglasses into folders. I am finding hard to maintain a ScreenRes.txt in the same folder as every table. Here is a change that will look for ScreenRes.TXT in the install folder if it isn't found next to the table. Would this be OK?

 

From:B2SScreen.vb

#Region "get backglass settings and show backglass"

    Private Sub ReadB2SSettingsFromFile()
...
        Try
            specialFileName = IO.Path.Combine(B2SData.TableFileName & ".res")
            loadSpecialOne = IO.File.Exists(specialFileName)
            specialDirFileName = IO.Path.Combine(B2SData.TableFileName, FileName)
            loadSpecialDirOne = IO.File.Exists(specialDirFileName)
        Catch
        End Try

''''Change starts here'''''
        'If ScreenRes Not found near table then look in install path
        If Not IO.File.Exists(FileName) Then
            Dim exePath As String = Application.StartupPath()
            FileName = exePath + "/ScreenRes.txt"
        End If
''''Change ends here''''

        If loadSpecialOne OrElse loadSpecialDirOne OrElse IO.File.Exists(FileName) Then

            ' open settings file
            FileOpen(1, If(loadSpecialOne, specialFileName, If(loadSpecialDirOne, specialDirFileName, FileName)), OpenMode.Input)

 

I have now added this as an issue on github:  https://github.com/v...glass/issues/24
 
I invite everyone with good ideas how to improve the B2S-Backglass project to go to the github page and file an issue, or even help development with a pull-request:
 
Do not be afraid, I did not know Visual Basic until 6 months ago... yes I do development for living, but a completely other field  ;)
 

/Jarr3

No to get too far off topic..  An interim workaround I use for having 1 ScreenRes.txt seen (and used) by all tables that are in subfolders is to create symbolic links (simlinks) to that file, in each of the tables' own folder(s).  

 

To create these all at once, I used this PowerShell script:

$tablesRootFolder = 'F:\Pinball\Visual Pinball\Tables'
$screenResFile = 'F:\Pinball\Visual Pinball\Tables\ScreenRes.txt'

# Get all subfolders
$Completed = Get-ChildItem $tablesRootFolder -Recurse -Directory

# Pipe the subfolders to ForEach-Object and create the symlink
$Completed | ForEach-Object {
    New-Item -ItemType SymbolicLink -Path "$($_.FullName)\ScreenRes.txt" -Target $screenResFile -force
}

pause

This will recurse through all subfolders in the "tablesRootFolder" that you set on the 1st line as well as all sub-subfolders, and add the symlink to each of those.

 

Example:

../tables/Star Wars/

../tables/Star Wars/Star Wars (Data East 1992)/

../tables/Star Wars/Star Wars The Empire Strikes Back/

../tables/Star Wars/Star Wars Millenium Edition/

../tables/Star Wars/Star Wars Trilogy (Sega 1997)/

 

...will each get a symlink added.

 

To use, create a text file and add in the above code. Change the 1st 2 lines to match your 'tables' folder and "ScreenRes.txt" file location. Respectively.  Save the file and the rename it with a ".ps1" file extension.  i.e. "Create ScreenRes Symlink.ps1"  (be careful that it doesn't get saved as "Create ScreenRes Symlink.ps1.txt")

 

To run this script, you need to open/run it with PowerShell as Administrator.  Symlink creation requires it (run as Admin).

No to get too far off topic..  An interim workaround I use for having 1 ScreenRes.txt seen (and used) by all tables that are in subfolders is to create symbolic links (simlinks) to that file, in each of the tables' own folder(s).  

 

To create these all at once, I used this PowerShell script:

$tablesRootFolder = 'F:\Pinball\Visual Pinball\Tables'
$screenResFile = 'F:\Pinball\Visual Pinball\Tables\ScreenRes.txt'

# Get all subfolders
$Completed = Get-ChildItem $tablesRootFolder -Recurse -Directory

# Pipe the subfolders to ForEach-Object and create the symlink
$Completed | ForEach-Object {
    New-Item -ItemType SymbolicLink -Path "$($_.FullName)\ScreenRes.txt" -Target $screenResFile -force
}

pause

This will recurse through all subfolders in the "tablesRootFolder" that you set on the 1st line as well as all sub-subfolders, and add the symlink to each of those.

 

Example:

../tables/Star Wars/

../tables/Star Wars/Star Wars (Data East 1992)/

../tables/Star Wars/Star Wars The Empire Strikes Back/

../tables/Star Wars/Star Wars Millenium Edition/

../tables/Star Wars/Star Wars Trilogy (Sega 1997)/

 

...will each get a symlink added.

 

To use, create a text file and add in the above code. Change the 1st 2 lines to match your 'tables' folder and "ScreenRes.txt" file location. Respectively.  Save the file and the rename it with a ".ps1" file extension.  i.e. "Create ScreenRes Symlink.ps1"  (be careful that it doesn't get saved as "Create ScreenRes Symlink.ps1.txt")

 

To run this script, you need to open/run it with PowerShell as Administrator.  Symlink creation requires it (run as Admin).

 

While looking at the existing code, this is how it currently works/worked:
 
B2SBackglassServer searches it's screenres files like this:
 
1. tablename.res next to the tablename.vpx
2. Screenres.txt ( or whatever you set in the registry) in the same folder as tablename.vpx
3. Screenres.txt ( or whatever you set in the registry) as tablename/Screenres.txt
 
And I am currently adding this way, which is as #2 but now we move the installation away from the tables folder...
 
4. Screenres.txt ( or whatever you set in the registry) in the B2SServer folder.

So even in the current solution (because of #3), you should not need your links?

While looking at the existing code, this is how it currently works/worked:

 
B2SBackglassServer searches it's screenres files like this:
 
1. tablename.res next to the tablename.vpx
2. Screenres.txt ( or whatever you set in the registry) in the same folder as tablename.vpx
3. Screenres.txt ( or whatever you set in the registry) as tablename/Screenres.txt
 
And I am currently adding this way, which is as #2 but now we move the installation away from the tables folder...
 
4. Screenres.txt ( or whatever you set in the registry) in the B2SServer folder.

So even in the current solution (because of #3), you should not need your links?

 

Thanks for the breakdown!  

 

#2 is essentially what the symlinks are doing.  But instead of a physical screenres.txt file in each tables [separate] folder, it's 'linking' back to the one in ../tables/screenres.txt.  (Basically the same as creating a shortcut to the file.)

 

My theory when I originally set it up this way was; I was still messing with the layout for playfield/backglass/DMD on a single monitor.  With the symlinks in place, I only needed to modify the one ../tables/screenres.txt  file to have it change for all tables.  This worked great until later on I realized not all backglass' are-the-same. lol  But it was great for creating a baseline.

 

I'm not really following #3.  It's kind of looking somewhat like #2.  Where it's still needs a separate screenres.txt.?. 

 

Regardless, #4 will round out nicely how tablename.res/screenres.txt are found. :)  

 

Thanks for all you and the team do!!!

 

I have now added this as an issue on github:  https://github.com/v...glass/issues/24
 

 

Hi, I have fixed so that it now should find a screenres also in an install folder like "C:\Visual Pinball\B2SServer\screenres.txt"
 
 
 
Since it is a pre-release, you need to login to github to get access. (It is a 2 minutes thing to add a user)
 
please test, so that we can close the issue... ;)

Hi, I have fixed so that it now should find a screenres also in an install folder like "C:\Visual Pinball\B2SServer\screenres.txt"

 

After creating a script to undo what I had done above , replacing the files with 1.4.1PR and re-registering B2S (I moved them into a folder similar to your example) it worked great!!!

 

The only issue I had was when B2STableSettings.xml [that was in with the tables folder] had plugins On (<ArePluginsOn>1</ArePluginsOn>), the backglass would not show at all. 

To be clear, I don't know why it was on in the 1st place (copy/paste from another folder??) and cannot attest to it working right before updating B2S.  But I'm fairly positive that things had worked within the past 2 weeks (without other changes).

 

It's not a big deal and easy for me to fix.  And I'm thinking it's actually probably operator-error on my part and maybe even a fluke that (I think) it had worked before. lol

 

Much thanks for the pre-release!!

 
Since it is a pre-release, you need to login to github to get access. (It is a 2 minutes thing to add a user)
 
This time it is about a new option called "FormNoFocus". it means for FormToFront similar to SendToBack, EVERYTHING is done to force the Forms not to react on mouse-clicks and any interaction which would mean the forms come above the DMD.
 
I tested this already with IT on a desktop with Backglass and FULL DMD and a Freezy DMD on top. It was rock solid, the windows stay in place and in order, no matter what I do.
 
Most certainly something for single screen users, though I believe it should be useful for all setups? 

Do I only need to download the 1 zip file 1.4 and not the rest correct? Also, any chance of this messing up my existing tables? Using 10.7 and pinball emporium 

Do I only need to download the 1 zip file 1.4 and not the rest correct? Also, any chance of this messing up my existing tables? Using 10.7 and pinball emporium 

 

Yes only the latest is needed, and a backup of your old folder and the complete setup is ALWAYS a good thing.


Other files you may be interested in ..





user(s) are online (in the past 15 minutes)

members, guests, anonymous users