This is an introduction to the VR setup of the open source free software Visual Pinball
Intended for use with Meta Quest
We recommend using Virtual Desktop
Associate .vpx files with VPinballX and click on the .vpx file to play the table.
See the File Associations page
JoyToKey (Option)
For controller mapping, you can use JoyToKey to map keyboard keys to a controller,
allowing you to easily and freely configure any controller.
https://joytokey.net/en/
Uninstall
Start both regdllview-x64 and regdllview with root privileges
Select the items related to VPX, right-click and delete
Update
User settings are saved in the following file, so be sure to backup.
Overwrite all folders.
If B2SServer has been updated, please refer to the uninstallation section, delete the B2SServer-related registry entries, and reinstall.
Restore the backed up user setting files.
Settings & Test Play
VPX Settings
Start VPinballX_GL64.exe
A file selection screen will appear, but close it by canceling
Preferences→Video/Graphics Options
Display: Window mode
View Mode: Desktop & FSS
Force Bloom Filter off: Enabled
Anti-Aliasing: Disable all
The reflection mode can also be set to Ball Only.
Preferences→Keys,Nudge DOF
Disable B2S: Disable
Preferences→VR Options
VR Mode: VR enable
Backglass/DMD/Capture: Both enabled
Test 2D(Desktop) mode
Launch VPinballX64.exe (only GL version supports VR)
File→Open
VPinballX/tables/Sonic The Hedgehog (Brendan Bailey 2005) VPX MOD Open 1.33.vpx
Press the play button to start the table
Left flipper
Left shift
Right flipper
Right shift
LMagnaSave
Left Ctrl
RMagnaSave
Right Ctrl
Coins
5
Start
1
Ball launch
Enter
VPinMame menu
F1
Key help
F2
Tweak menu
F12
Exit
Q
B2SServer settings
Right-click on the desktop backglass on the Sonic The Hedgehog play screen
Plugins : Active Plugins
Press More
B2STableSettingsExtendedPath : Enabled
VR mode test
Virtual on Quest Start Desktop (VD)
Disable SSW on VD
Set OpenXR Runtime on Virtual Desktop Streamer (PC) to VDXR
Start VPinballX_GL64.exe
File → Open
Open VPinballX/tables/Sonic The Hedgehog (Brendan Bailey 2005) VPX MOD 1.33.vpx
Press the play button to start the table in VR
Adjust the table position with the numeric keypad
Re-centering
5 (Numeric keypad)
Table Up
8 (Numeric keypad)
Table Down
2 (Numeric keypad)
Move front
↑
Move Back
↓
Move Left
←
Move Right
→
Screen
We recommend the following B2S, PuP and FlexDMD screens.
It is strictly forbidden to hide B2S, PuP, FlexDMD, etc. behind anything.
Be sure to leave a FullDMD area under the Backglass.
Enable hardware accelerated GPU scheduling in the PC graphics settings
How to get the table
Select a table with the VR tag on the VirtualPinballSpreadsheet page (https://virtualpinballspreadsheet.github.io/).
Normal tables do not take VR into consideration, so backglass and DMD will not be displayed.
Some tables require a ROM (VPinMame).
In that case, download the ROM as well and put it in the VPinMame Rom folder as a zip file.
If you need a directb2s file or UltraDMD, place it in the same folder as the table.
If you have a sound file, create a Music folder in the same folder as the table and place it inside.
If you have a PuPPack, place the PuPPack folder in PinUPPlayer/PUPVideos.
If you have an altcolor, create a folder with the Rom name in the altcolor folder in the VPinMame folder and place it inside.
If you have an altsound, create a folder with the Rom name in the altsound folder in the VPinMame folder and place it inside.
Special Settings
This VPX has expanded functionality from the original.
You can change setting by adding the following code to the [Player] item in VPinballX.ini.
See other key definitions for the corresponding key's <num>.
For example, define the key you want to correspond to Custom1 in the key settings.
JoyCustom1Key in VPinballX.ini is that <num>.
Analog Nudge visual sensitivity settings
AnalogNudgeGainX = <num>
AnalogNudgeGainY = <num>
default 100
A negative value will reverse the direction of table movement.
Digital Nudge sensitivity settings
NudgeTime = <num>
default 0 (0 uses the value defined in the table)
The time of the nudge changes physically
DigitalNudge = <num>
default 0 (0 uses the value defined in the table)
The strength of the nudge changes physically