Everything got better when I became a green-haired 2D girl. I do fun and unusual things with video games and pinball.

cohost inspired me to do more. Thank you



arborelia
@arborelia

I wanted to write a straightforward guide to installing Visual Pinball X, the most versatile pinball emulator. There's a lot of conflicting information out there about the best way to install it, and welp I guess I'll add to that!

These instructions are for installing VPX on a Windows desktop computer. I do not, at any point, assume that you have or aspire to have a pinball cabinet, which most of the directions out there do. For the basic instructions, I even suppose that you have just one monitor.


arborelia
@arborelia

Some virtual pinball tables have built in score displays in desktop mode. Some don't. You probably want to see your score on the ones that don't!

In addition, if you set up a portrait monitor that shows just the table surface (this is called "cabinet mode" even if it's not running on a cabinet), you need to put the score somewhere else.

This is a problem with multiple different and overlapping solutions, and that's because there have been various eras of pinball with completely different ways of showing scores:

  • 1930s: printed on the table and you need to add it up yourself
  • 1940s-1960: lights corresponding to different score amounts
  • 1960-1977: mechanical score reels
  • 1977-1991: 7-segment or alphanumeric displays
  • 1991-2015: dot matrix displays (DMDs)
  • 2013-present: sometimes an entire LCD monitor

With only a few exceptions, the score on a pinball table will be displayed somewhere on the backglass. So setting up a backglass display will very likely show you the score. And backglasses also look cool. (That's their job.)

DirectB2S: a program for displaying the backglass

DirectB2S is a separate program from VPX. Here's a download link for DirectB2S version 1.4.1, the latest version as I write this.

Update: DirectB2S now has informative documentation!

  • Download and extract it. I extracted it into C:\Visual Pinball\B2SServer.
  • Once you've extracted it, run B2SBackglassServerRegisterApp.exe.
  • Copy ScreenRes.txt into the Tables folder where your pinball tables are stored, because it looks for it there.
  • Maybe edit ScreenRes.txt (more on that later).

When you have DirectB2S configured, whenever you launch a table in VPX, it will look for a similarly-named .directb2s file next to it. ("Similarly-named" here allows fuzzy matching, which helps when the filenames are slightly different and is obnoxious if it happens to pick the wrong backglass.)

Getting backglasses

Like ROMs, backglasses usually have their own download pages that you can find on Virtual Pinball Spreadsheet. If the table maker was nice, they included it with the .vpx file, but it's frequently something you have to download separately.

If you look up Viking (1980) on Virtual Pinball Spreadsheet, the most recent version by Bord includes the backglass (and it's also an excellent table). Let's get that one.

  • Download the ROM and save it in your VPinMAME\roms folder.
  • Download the VPX by Bord, Nestorgian, et al., and extract it in your Tables folder.
  • Run the VPX.

If DirectB2S is set up, you'll have a window showing the backglass, like at the top of this post.

Configuring DirectB2S

You might see a problem already: the backglass window is taking up like a quarter of your screen, and it might be on top of part of the table.

You can right-click on the backglass and get some kind of configuration window. Don't ask me how to use this, though the documentation probably has something to say about it. What I find more effective is to edit that ScreenRes.txt file.

It starts like this:

# Playfield Screen resolution width/height
1920
1080
# Backglass Screen resolution width/height
800
600
# Backglass Display Devicename screen number (\\.\DISPLAY)x for the Playfield or screen on position (@x) or screen index (=x)
1
# width/height of the DMD area in pixels - For 3 screen setup
800
200
# X/Y position of the DMD area relative to the upper left corner of the backglass screen - For 3 screen setup
0
600

Change those numbers as you see fit. If you have one display, you probably want it to be smaller, like 400x300 or 400x400. (It doesn't have to be shaped like a monitor! Many backglasses are square.)

Changing the "Display Devicename screen number" can put it on a different monitor. I have no idea how it's determined which number means which monitor; this is Windows configuration trivia. Change the number and see what happens.

The "DMD area" seems a bit confusingly named, because the backglass usually doesn't render the dot matrix display itself -- it leaves room for something else to render it, like Freezy's DMD display, which is covered in the next part. This area seems to be used for rendering a picture of the area where the DMD would be installed. On some Williams tables, like Whirlwind, this area also includes informative displays.

Anyway, I made the "DMD area" an 800x200 area directly below my backglass, and haven't had to worry about it. I think this matters a lot more if you have a particular kind of pinball cabinet setup.

Congrats! Now you can see the table and the backglass, and the score is on at least one of them.

But you probably want DMDs to be more visible, so continue to part 3.


You must log in to comment.

in reply to @arborelia's post:

Thanks for the tutorial, I managed to install it on my Steam Deck but it freezes loading the Hang Glider table 🥲 hope it gets better Linux/Wine support someday (sounds like there's a rewrite/alternate version in Unity currently in progress which might give me hope?)

oh no. I wouldn't get your hopes up for a rewrite fixing things anytime soon. So much of virtual pinball is just hobbyists going along with the thing that already works, unless there's a big push to update something.

There's been a lot of tables lost in the change from VP9 to VPX, which I think was five years ago, because they're not backward compatible and someone would need to put in the effort to update the tables.

I would guess an alternate version, whenever it happens, would have engine differences that would require tables to specifically support it also, and would be another 5+ year effort.