Skip to content

Instantly share code, notes, and snippets.

@milnak
Last active September 18, 2024 00:49
Show Gist options
  • Save milnak/4a185382dea8cbe4e8de11f0b8427558 to your computer and use it in GitHub Desktop.
Save milnak/4a185382dea8cbe4e8de11f0b8427558 to your computer and use it in GitHub Desktop.
Visual Pinball X / VPinMAME Install

Visual Pinball X and VPinMAME Install

I couldn't find easy to follow instructions for setting up Visual Pinball X with VPinMAME, so I created one. I've tested these instructions using Windows 11. With these settings, I can run any VPX game at full speed at 2560x1440 resolution on my i9-9900K CPU with a GTX1050Ti video card.

Replace "D:" with whatever drive you prefer in the instructions that follow.

Installation

Follow these steps in order.

VPinballX 10.7.2 (complete release)

Download and run "Main.Download.Installer.-.VPX72setup.exe". Install to D:\Visual Pinball.

Example:

Invoke-WebRequest -Uri 'https://github.com/vpinball/vpinball/releases/download/v10.7.2-366-f94da1e/Main.Download.Installer.-.VPX72setup.exe' -OutFile 'VPX72setup.exe'

./VPX72setup.exe

VPinballX 10.8.0 RC4 (latest pre-release) Update

Download and extract "VPinballX-10.8.0-1975-051104c-Release-win-x64.zip" to D:\Visual Pinball, overwriting any existing files.

Example:

Invoke-WebRequest -Uri 'https://github.com/vpinball/vpinball/releases/download/v10.8.0-1975-051104c/VPinballX-10.8.0-1975-051104c-Release-win-x64.zip' -OutFile 'VPinballX-10.8.0-1975-051104c-Release-win-x64.zip'

Expand-Archive -Path 'VPinballX-10.8.0-1975-051104c-Release-win-x64.zip' -DestinationPath 'D:\Visual Pinball' -Force

VPinMame 3.6.0 Update

Download and extract "VPinMAME-sc-3.6.0-998-a77c2d2-win-x64.zip" to D:\Visual Pinball\VPinMAME, overwriting any existing files.

Example:

Invoke-WebRequest -Uri 'https://github.com/vpinball/pinmame/releases/download/v3.6.0-998-a77c2d2/VPinMAME-sc-3.6.0-998-a77c2d2-win-x64.zip' -OutFile 'VPinMAME-sc-3.6.0-998-a77c2d2-win-x64.zip'

Expand-Archive -Path 'VPinMAME-sc-3.6.0-998-a77c2d2-win-x64.zip' -DestinationPath 'D:\Visual Pinball\VPinMAME' -Force

Visual Pinball X Dependencies

Install both of these, if they aren't already installed. This is so that the correct 64-bit versions of the DLL are on the system. Otherwise it tries to load the 32-bit versions of xinput1_3.dll and d3dx9_43.dll that's in the Visual Pinball directory placed by the VPX 10.7.2 installer and then just crash.

Front End UI (optional)

See VPX Launcher instructions for installation and use.

Configure Visual Pinball X

Note: Settings are stored in $env:AppData\VPinballX\VPinballX.ini, unless Options > UI Options "Store settings file in same folder as executable" is checked.

cd 'D:\Visual Pinball'

Launch .\VPinballX64.exe.

Press "Cancel" on the "Select a Table" dialog that shows.

Choose Preferences > Video/Graphics Options...

Click "Reset to Defaults", then "Set for High End PC".

  • Choose monitor native resolution, color depth AND refresh rate, e.g. "2560 x 1440 (59Hz 16:9)"
  • Exclusive full screen
  • Under Anti-Aliasing, set "Post-Processed AA" and "Sharpen" to Disabled.

Click "Save Changes" then "Close".

Preferences > Scripting Security Options...

  • Always create controls

Configure VPinMAME

Note: Settings are stored in HKEY_CURRENT_USER\Software\Freeware\Visual PinMame. Defaults are under the "default" key.

cd 'D:\Visual Pinball\VPinMAME'

Run ./setup64.exe

Click "Install".

Click "OK" on "Global Settings"

On "Default Options" page:

  • Skip Pinball Startup Test
  • Cabinet Mode
  • Show DMD/Display window

Click "OK".

Important: Text should now read "* Visual PinMAME Version ... is currently installed on your computer."

Associate VPX extension with Visual Pinball X

Run the following commands elevated.

New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT
New-ItemProperty -Path 'HKCR:.VPX' -Name '(Default)' -Value 'vpx_file'

New-Item -Path 'HKCR:vpx_file'
New-Item -Path 'HKCR:vpx_file\shell'
New-Item -Path 'HKCR:vpx_file\shell\open'
New-Item -Path 'HKCR:vpx_file\shell\open\command'
New-ItemProperty -Path 'HKCR:vpx_file\shell\open\command' -Name '(Default)' -Value '"D:\Visual Pinball\VPinballX64.exe" -ExtMinimized -Play "%1"'

Test game and download ROM

Download Champion Pub (Williams 1998) and copy "Champion Pub (Williams 1998) v1.43.vpx" to D:\Visual Pinball\Tables.

cd 'D:\Visual Pinball\Tables'

& '.\Champion Pub (Williams 1998) v1.43.vpx'

This should fail indicating "Champion Pub, the (1.6)" (cp_16) ROMs are missing.

To fix, download Champion Pub (1.6) - ROM - cp_16.zip and copy (not extract) the ZIP file to D:\Visual Pinball\VPinMAME\roms.

The next time you start the table, it should work fine.

VPX keyboard mapping

Button Key
Insert Coin 5
Start Button 1
Left Flipper L Shift
Right Flipper R Shift
Plunger Enter
Left Nudge Z
Fwd Nudge Space
Right Nudge /
Left Magna Save L Ctrl
Right Magna Save R Ctrl
Lock bar Fire Menu
Custom 1 Up
Custom 2 (e.g. Plunger Strength) Down
Custom 3 Left
Custom 4 Right
Mech Tilt T
Exit Game Q (twice)
Pause P (or ESC)
Volume - -
Volume + =

VPinMAME keyboard mapping

Button Key
VPinMAME Settings F1
Key Assignment List F2
VPM Restart F3
Table Options F6
Debug/Perf Info F11
Tweak F12

VPM Restart: If you see "Factory settings restored - bookkeeping totals cleared" message on a machine, press the "VPM Restart" key to get the machine ready to accept coins.

Tables

Links to some high quality verified tables. Extract/Copy all VPX files to D:\Visual Pinball\Tables.

ROM set (if needed) is also named. Copy (not extract) the ROM ZIP file to D:\Visual Pinball\VPinMAME\roms.

Table Manufacturer Year ROM
8 Ball Williams 1966
AC/DC Stern 2013 acd_170h
Addams Family Bally 1992 taf_l7
Adventures of Rocky and Bullwinkle and Friends Data East 1993 rab_320
Ali Stern 1980 ali
Amazing Spider-Man Classic Edition Stern 2016 smanve_101
Apollo 13 Sega 1995 apollo13
Atlantis Bally 1989 atlantis
Attack from Mars Bally 1995 afm_113b
Austin Powers Stern 2001 austin
Bad Cats Williams 1989 bcats_l5
Bally Game Show Bally 1990 gs_la3
Banzai Run Williams 1988 bnzai_l3
Barracora Williams 1981 barra_l1
Batman Data East 1991 btmn_106
Big Bang Bar Capcom 1996 bbb109
Big Brave Gottlieb" 1974
Big Buck Hunter Pro Stern 2010 bbh_170
Black Knight Williams 1980 bk_l4
Black Rose Bally 1992 br_l4
Bobby Orr Power Play Hockey Bally 1977 pwerplay
Bone Busters Inc. Gottlieb 1989 bonebstr
Bram Stoker's Dracula Williams 1993 drac_l1
Breakshot Capcom 1996 bsv103
Bugs Bunny's Birthday Ball Bally 1991 bbnny_l2
Cactus Canyon Bally 1998 cc_13
Cactus Jacks Gottlieb 1991 cactjack
Capersville Bally 1966
Capt. Fantastic and The Brown Dirt Cowboy Bally 1976
Card Whiz aka Royal Flush Gottlieb 1976
Centigrade 37 Gottlieb 1977
Champion Pub Williams 1998 cp_16
Checkpoint Data East 1991 ckpt_a17
Cheetah Stern 1980 cheetah2
Circus Gottlieb 1980 circus7
Cirqus Voltaire Bally 1997 cv_20h
Class of 1812 Gottlieb 1991 clas1812
Congo Williams 1995 congo_21
Creature from the Black Lagoon Bally 1992 cftbl_l4
Deadly Weapon Gottlieb 1990 deadweap
Diner Williams 1990 diner_l4
Dr. Dude & His Excellent Ray Bally 1990 dd_l2
Earthshaker Williams 1989 esha_la3
Eight Ball Deluxe Bally 1981 eballdlx
El Dorado Gottlieb 1975
Elektra Bally 1981 elektra
Elvira and the Party Monsters Bally 1989 eatpm_l4
Elvis Stern 2004 elvis
Embryon Bally 1981 embryond
Evel Knievel Bally 1977 evelknie
Fathom Bally 1981 fathom
Fireball Bally 1972
Fish Tales Williams 1992 ft_l5
Flash Gordon Bally 1981 flashgdn
Flash Williams 1979 flash_l1
Flintstones Williams 1994 fs_lx5
Four Million B.C. Bally 1971
Freddy a Nightmare on Elm Street Gottlieb 1994 freddy
Genesis Gottlieb 1986 genesis
Genie Gottlieb 1979 genie
Gigi Gottlieb 1963
Gilligan's Island Bally 1991 gi_l9
Godzilla Sega 1998 godzilla
Goldeneye Sega 1996 gldneye
Gorgar Williams 1979 grgar_l1
Guns N' Roses Data East 1994 gnr_300
Harlem Globetrotters On Tour Bally 1979 hglbtrtb
Haunted House Gottlieb 1982 hh
Heat Wave Williams 1964
High Speed Williams 1986 hs_l4
Indiana Jones: The Pinball Adventure Williams 1993 ij_l7
Indianapolis 500 Bally 1995 i500_11r
Iron Man Vault Edition Stern 2014 im_185ve
Jet Spin Gottlieb 1977
Johnny Mnemonic Williams 1995 jm_12r
Jokerz! Williams 1988 jokrz_l6
Judge Dredd Bally 1993 jd_l1
Jungle Lord Williams 1981 jngld_l2
Jurassic Park Data East 1993 jupk_600
King of Diamonds Gottlieb 1967
KISS Bally 1979 kissc
Lady Luck Bally 1986 ladyluck
Laser War Data East 1987 lwar_a83
Last Action Hero Data East 1993 lah_113
Lawman Gottlieb 1971
Lethal Weapon 3 Data East 1992 lw3_208
Lord of the Rings Stern 2003 lotr
Machine: Bride of Pin·bot Williams 1991 bop_l7
Magic City Williams 1967
Maverick Data East 1994 mav_402
Medieval Madness Williams 1997 mm_109c
Metallica Stern 2013 mtl_180h
Monster Bash Williams 1998 mb_106b
Mustang Stern 2014 mt_145h
NBA Fastbreak Bally 1997 nbaf_31
No Fear: Dangerous Sports Williams 1995 nf_23x
Operation Thunder Gottlieb 1992 opthund
Outer Space Gottlieb 1972
OXO Williams 1973
Party Zone Bally 1991 pz_f4
Pat Hand Williams 1975
Phantom of the Opera Data East 1990 poto_a32
Police Force Williams 1989 polic_l4
Popeye Saves the Earth Bally 1994 pop_lx5
Quicksilver Stern 1980 quicksil
Radical Bally 1990 radcl_l1
Red & Ted's Road Show Williams 1994 rs_l6
Rescue 911 Gottleb 1994 rescu911
Ripley's Believe it or Not Stern 2004 ripleys
Road Race Gottlieb 1969
Robocop Data East 1989 robo_a34
Robot Zaccaria 1985 robot
RollerCoaster Tycoon Stern 2002 rctycn
Safe Cracker Bally 1996 sc_18n11
Simpsons Pinball Party Stern 2003 simpprty
Sing Along Gottlieb 1967
Slick Chick Gottlieb 1963
Sopranos Stern 2005 sopranos
Sorcerer Williams 1985 sorcr_l2
Space Mission Williams 1976
Star Trek: The Next Generation Williams 1993 sttng_l7
Star Wars Data East 1992 stwr_107
Stargod Zaccaria 1980 stargoda
Starship Troopers Sega 1997 startrp2
Stellar Wars Williams 1979 stlwr_l2
Stingray Stern 1977 stingray
Surfer Gottlieb 1976
Tales from the Crypt Data East 1993 tftc_400
Tales of the Arabian Nights Williams 1996 totan_14
Tee'd Off Gottlieb 1993 teedoff3
Terminator 2: Judgment Day Williams 1991 t2_l8
Transformers Stern 2011 tf_180
Tron Legacy Stern 2011
Twilight Zone Bally 1993 tz_94h
Twister Sega 1996 twst_405
Victory Gottlieb 1987 victory
Walking Dead Stern 2014 twd_160h
Wheel of Fortune Stern 2007 wof_500
White Water Williams 1993 ww_lh6
Who Dunnit Bally 1995 wd_12
Who's Tommy Pinball Wizard Data East 1994 tomy_500
Whoa Nellie! Stern 2015
World Cup Soccer Bally 1994 wcs_l2
X-Men Stern 2012 xmn_151h

What is a "directb2s" file?

DirectB2S files are "Background to 2nd Screen" files, which allow for animated back glass to be sent to a second screen. This is useful for dedicated machines, or perhaps if you want an animated back glass on a second monitor.

I don't recommend using B2S on a single monitor setup.

See the B2S Wiki for more details.

Install B2S Server

To install, download B2S Server and extract to D:\Visual Pinball\B2S server.

Example:

Invoke-WebRequest -Uri 'https://github.com/vpinball/b2s-backglass/releases/download/v2.1.2/B2SServer-2.1.2-win.zip' -OutFile 'B2SServer-2.1.2-win.zip'

Expand-Archive -Path 'B2SServer-2.1.2-win.zip' -DestinationPath 'D:\Visual Pinball\B2S server' -Force

Configure B2S Server

Run "./B2SBackglassServerRegisterApp.exe". It will elevate. If it asks you to re-register, choose "Yes".

If it asks you to register the context menu, choose "No".

Configure ScreenResIdentifier

Run "B2S_ScreenResIdentifier.exe" in Tables folder.

Example:

cd 'd:\Visual Pinball\Tables`

& 'd:\Visual Pinball\B2s server\B2S_ScreenResIdentifier.exe'

Set up configuration for your display configuration.

Ensure "generate comments" and "Enhanced res file" are checked, and press "Save settings".

You will now have a "ScreenRes.txt" file in your Tables folder, which B2S uses to determine where to place the background window.

Uninstall B2S Server (optional)

If you decide you don't want B2S Server functionality, there's no built-in uninstall, but you can do the following in an elevated PowerShell to remove it.

reg.exe DELETE 'HKEY_CLASSES_ROOT\CLSID\{09E233A3-CC79-457A-B49E-F637588891E5}' /F

reg.exe DELETE 'HKEY_CLASSES_ROOT\B2S.Server' /F

What are the other EXEs?

In the Visual Pinball folder, there are other files. They're for playing older tables incompatible with the latest VPX. Here's what they are:

  • VPinball8.exe - version 0.8.9506
  • VPinball921.exe - version 9.2.1
  • VPinball99_PhysMod5_Updated.exe - version 9.9.0 (Physmod5 AccelMod PlungerMod SurroundMod)
  • VPinball995.exe - version 9.9.5
  • VPinballX.exe - version 10.7.2 Final (Revision 366, f94da1e, 32bit)
  • VPinballX64.exe - latest version

If everything is working for you with VPinballX64 (as it should), ignore all of those other versions.

How to view the VBS source code of a VPX?

Use: VPinballX64.exe -ExtractVBS [VPX_filename]. A VBS file will be created in the current directory.

Links

A set of pages I've found useful.

@aarcro
Copy link

aarcro commented Aug 26, 2024

You probably want to right click zip files and "unblock" them before extracting.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment