Jump to content



Submitter

SUPPORT TOPIC File Information

  • Submitted: Dec 24 2016 11:36 AM
  • Last Updated: Nov 14 2025 05:21 AM
  • File Size: 13.96MB
  • Views: 139412
  • Downloads: 33,857

Previous Versions

  • 03 Nov 2025 Download B2S Backglass Server 2.1.4
  • 29 Jan 2025 Download B2S Backglass Server 2.1.3
  • 31 Aug 2024 Download B2S Backglass Server 2.1.2

Download B2S Backglass Server 2.1.4 mashup

* * * * * 69 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.
 

What's New in Version 2.1.4 mashup (See full changelog)

  • Binaries from v2.1.4 but with B2SBackglassServer.dll from 2.1.3 while we are waiting for a new version.
  • There were problems running the latest B2SBackglassServer.dll with HD FlexDMD flippers, which cause VPX to hang.
  • There is no need to download it unless you have experienced this issue and have not created the same mix yourself.
  • - Settings mode Authentic or Fantasy not saved after selection
  • - Improve Fuzzy matching
  • - Add DPI awareness to B2S_ScreenResIdentifier and B2SBackglassServerEXE
  • - Add new VPM COM Version method including build number
  • - Allow setting screenres files file ending
  • - Allow entering % values on the ScreenRes.txt files (not finished yet, server done, B2S_ScreenResIdentifier missing)




 

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 ..





  • 18,149 Total Files
  • 57 Total Categories
  • 868 Total Authors
  • 24,590,815 Total Downloads
  • VooDoo Ranger - Wheel Latest File
  • Flying Dutchman Latest Submitter

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

members, guests, anonymous users