I have just started to use VPX, and I still consider myself to be a beginner. It took me quite alot of time to get around the basics. One main problem with using VPX in VR is that VPVR is quite new and most of the tables are not yet optimised for VR. For this reason some tables do not show the DMD or all the digits that you usually see on the backglass, which make alot of tables unusable. But after a lot of research and many trials and errors, I have managed to tweak most of the tables in such a way that they become usable in VR. If I say usable that means that you have at least the DMD or the scoring somehow displayed in VR.
So I have decided to put all information I have collected together and write a little how to get started guide for VR users. I hope this tutorial will be helpful for VR beginners, but also for those who have some experience with VPVR but still have problems to get some tables to work in VR.
As I am myself still a beginner in VPX there are defnitely many things I have not yet found out by myself and there might also be some mistakes in my short guide. So let me know, if you have some proposals to improve this guide. Also, feel free to modify, change or copy this tutorial or any part of this tutorial as you like it. I do not claim any kind of copyright here. If you want to write a tutorial by yourself, you can use any part of this tutorial and integrate it in your tutorial as you like it. You do not have to ask for my permission for this.
This guide was written in February 2020. VR is very new for VPX and still under development. In future releases some of my suggestions might not work any more or may become obsolete. Unfortunately, I will most likely not have much time to keep this tutorial up to date. Please keep that in mind!
Before you make any changes of the table I do recommend to save the table under a different name that you can always go back to the original version as you might also risk that the table does not work at all after your have applied your changes. So keep a copy of the original table as you might want to come back to the original version at some point in the future.
Part 1 - "Installation"
1) Install VPX:
Search the internet for the latest AllinOne Installer of VPX. This will install many other programs which are needed and you would have to install otherwise seperately.
2) Install the latest beta update:
Download the zip file, unpack it and copy all the files into yout Visual Pinball folder.
3) Install the latest version of vpvr:
Download the zip file, unpack it and copy all the files into yout Visual Pinball folder.
4) Install the tables you want to play:
Download a table you want to play. For your first try you should choose a VR room table because these tables are optimized for VR and cause the least problems.
Read and follow the instructions of the table. Usually it gives you the instruction just to unzip and copy the files to your install folder.
NOTE: If the instructions say that you have to use DMDext or Freezy, an extra step will be required. I will describe this later in section 2.3 of this tutorial.
5) Install the ROMs for the tables you want to use: Remember even if the install description of your table does not mention it, you will most likely need a ROM unless you want to install a EM table or a original table. This is for a VPX veteran so obvious that they usually do not mention it in the install notes. Please refer to the ROM tutorial here, if you have problems finding the right ROM: https://www.vpforums...showtopic=43612 .
-Do NOT unzip the file. Just copy the zipped file as it is into the "...Visual Pinball/VPinMame/roms" folder.
6) Plug in your headset and start to play the table.
7) Position your table:
you can adjust move the table inside your play space in the:
"Preferences" - "VR Settings" section of your menu change
"VR Table Orientation", "VR Table X", "VR Table Y" and "VR Table Height"
to reposition the table.
(I like using a table height of 100 for a standing experience and 80 for a seated experience)
- If VPX crashes when starting a table:
There might be many different reasons for this. So there are also many different solutions. Here are some examples what you could do:
-- Try to close VPX and restart it again.
When using a VR headset it sometimes crashes the first time you load a table. But often it does not require any changes at all and it works flawlessly after one or two restarts of VPX.
I have noticed this especially after I change the settings of PinMame. (E.g. if I enable external DLL)
-- Check the script and check if you have installed the correct ROM (See my little tutoral about ROMs: https://www.vpforums...showtopic=43612 )
-- Check the script, if you have to make any settings in the script.
Sometimes you have to change a variable to adapt the script to your needs. Usually variables that should be altered by the user can be found somewhere in the upper part of the script. And usually the author of the script adds a comment that decribes how these variables should be changed. Especially look for a variable that defines what display method for the DMD should be used. If you find such a variable change the variable to choose the PinMAME option.
- If you just see a 2d table on your monitor and no VR version. Make sure you have VPVR installed and that you have started the correct exe (VPinballX_GL.exe or VPinballX_GL64.exe).
- If you see the left and right eye only on the monitor and not in the headset: There seems to be a bug when using VPVR with OpenVR:If you use Steam and start a table the second time the left and right eye will be shown only on the monitor and not in the headset. Restart VPX and the table should be correctly displayed in the headset.
- If your controller does not work, click on the window to be sure that VPX is the active window
- If you have no rom sound: maybe you need to look for another rom. Or try to set the volume of the rom. You can change the volume differntly depening on the type of rom you use. Search the internet to find a solution for your rom.
- If you do not see a DMD or your score in VR: Ḱeep reading. This will be covered later in this tutorial.
Part 2 - Adapting tables for VR
2.1 How to show your DMD in VR
You can add DMD in VR quite easily by following these two steps:
1 Edit the script
2 Add a flasher or a textbox and enable script DMD
2.1 Edit the script:
Once you have added your DMD by using either the "TextBox" or the "Flasher" method
you most likely will also have to edit your script.
Search the script for LoadVPM and enter these two lines before:
UseVPMDMD = true
Note: The first of these two lines "Dim UseVPMDMD" can only be once in the script.
If the original author of your table has already included this line in the script and you add this again, you will get an error message. Therefore in this case only add the second line "UseVMPDMD = True"
2.2 Add a flasher or a textbox and enable script DMD
2.2.1 The TextBox Method
If you want to use a table that does not show a DMD in VR, you can try the following these steps:
- Go to the editor an change your view to backglass mode (left icon in 3rd line of the icon bar in VPX editor)
- add a TextBox
- make sure your TextBox is selected by clicking on it
- click on the "Options" icon (left icon in 2nd line)
- then you will see a popup window with more options for your TextBox:
Edit this as follows:
In your "State & Physics" section:
check the "Use Script DMD" checkbox and/or write "DMD" into the "Text" field
Configuration of the DMD (colors, size, and position)
Now lets configure the DMD to make it look better...
Select the Textbox of your DMD and open the options window (if it isnot already opened. Here you can configure your DMD. Some settings here will have no effect in VR but you can make the following changes:
Changing the colors:
In your colors section: you can set the color fo your DMD (set black for the "Back Color" and red for "Text Color" to get the classic DMD look)
Color settings might not work here if you use DMDext
Changing the size:
In your "Position" section you can change with and height of yout DMD
I do like to set these values to "With: 1024" and "Height: 256"
This will give you a huge DMD, wich I makes it easy for me to read in VR
Try some values and see what is working best for you.
Changing the position:
Other position values like x and y value will have no effect.
As far as I know there is no way to move the DMD left or right if you use a TextBox (you have to use the Flasher Method to do that). However, you are able to move the DMD higher or lower by inceasing or decreasing the height of the whole backglass. In order to do so follow these steps:
- leave the Backglass view mode and go back into the Table view mode by clicking the backglass icon again (left icon in 3rd line of the icon bar in VPX editor)
- Make sure no object is selected by clicking with your mouse at a place that does not contain any objects of your table.
- Make sure that your option window is still enabled (if not click on the "Options" icon (left icon in 2nd line))
- Now in your Options Window you should see the options for your "Table"
- Expand the "Dimensions & Slope" section
- Edit the "Top Glass Height" value to move the DMD gigher and lower
This will not only increase or decrease the DMD but also all other objects on the DMD. If you want to change the height of the DMD without changing the height of the whole backglass us the Flasher Method.
2.2.2 The Flasher Method
The Flasher Method will give you more control on the positioning, but takes a little bit longer to implement as the positioning and sizing of flashers can be tedious.
The process is similar to the TextBox Method with a few differences:
- Instead of creating a TextBox you create a flasher
- Flashers must be added in the Table View mode while TextBoxes must be added in Backglass mode
- Select the flasher and enable the options window if it is not yet enabled
- Check the "Use Script DMD" checkbox
(you have no Text field in a flasher so this is the only way to tell VPX that this Flasher is should display a DMD)
- Flashers must be rotated by -90 degrees to be displayed on a backglass
(set RotX to -90)
- Change the size and position of the flasher as you like it you can move it in all directions...
2.3 How to use DMDext
In some cases (especially on older SS machines) you might need to enable dmdext to see your scores in VR.
This enables you to render one part of your monitor in VR.
- Open VPX
- Open "Preferences" - "Configure Keys, Nudge and DOF..." in your menu and make sure that you have "Capture External Dlls" checked.
(You can set this once and keep it checked so you will not have to do this again)
- Start your table
- Press "F1" This should open a dialog with the settings of VPinMame
- check use externaldll
- Restart VPVR
- Now you should see the upper left part of the monitor rendered at the dmd place in VR.
The next challenge might be, to position and size your DMD that it fits into your DMD in VR.
First make sure that a DMD display is shown on your monitor:
You can choose between two types of DMDs one ist what I call here "Original DMD"
(there is propably a better name for it so let me know )
The "Original DMD" is the DMD that is created without using external dlls,
while the "Virtual DMD" is created usind the external dlls of DMDext.
Depending on the table and your taste you might prefer one or the other.
- To display the original DMDOpen the script and look for ".hidden = in the init section of the table.
Then set this value to 0 in order to display the DMD on your monitor.
- Now you can reposition and resize this dmd as follows:
- Hover the mouse over the DMD and right click on it
- Then choose "show borders"
- Then you can change the size and position of the DMD with your mouse.
You might run into the problem that the position jumps back to its original size. In order to avoid this I recommend the following procedure:
-] After ajusting size and position of the DMD click once on the DMD and] then click once on the area outside of the DMD.
-] Then press "q" two times to quit the table.
-] Then save the table and quit VPX
-] Then restart VPX and reload the table and confirm if the your changes were saved correctly
-] If you still have problems with the positioning of the table, it might be helpful for you to know, that these position values are stored in the following windows registry path:
HKEY_CURRENT_USER - Software - Freeware - VisualPinMame - "your GameName"
You can also edit the position directly with your registry editor.
(Type regedit into your windows terminal)
If you want use DMDext external dlls a window will open that displays Virtual DMD
- If you don't see the Virtual DMD on the top left of your monitor. the reason for this might be that the window with the DMD is hidden behind the window of the table. In this case you might need to press the windows key and select the Virtual DMD window
- Now If you start the game you might have the problem that your controller does not work any more. This is because the controller passes its commands only to VPX if VPX is the active window. But as soon as you click on the VPX window to make the window active Virtual DMD might disappear again. If this is your problem, open the DmdDevice.ini in the VPinMAME folder and make sure it contains "stayontop = true".
By the way: This file can also help you to position and size your VirtualDMD according to your needs. Depending on your personal preferences you might also want to set here hidegrip to true or false, which enables or disables a small triangular resize icon on the bottom right of the DMD.
2.4 Moving digits to show your scores in VR
On some tables that are not optimized for VR you can see the scores but you can see the digits on or underneath the playfield
In this case you might want to move these digits to the left or to the right so that you can see them better in VR. In order to move them you have to select the items of the digits befor you can move them.
Select the items
- Go to the backglass view of VPX
- Then click on the select icon (which is the 2nd icon in the top row)
- Then box selelect with your mouse the digits you want to move around.
Alternative selection method: Press ctrl+shift+e or choose "Edit - Select element" from the menu bar to open the item selector. Then you can also select multple items in the item selector: While holding down the ctrl key , but be aware that one digit can consist of many different items. So it can be very difficult to select everything if you do not use the box select method.
The Collection Manager as a selection tool: There is also a "Collection Manager" which can be used to group items that belong together into a collection. This can help you to easily reselect a group of items once a collection is created. The collection manager can be opened by pressing F8.Once you have created a collection you can easily reselect this by expanding the select icon (2nd icon in the top row). Then choose yourcollectionname(COL). Quite often there is a huge list of items if you expoand this icon. If you deselect all layers by clicking on the "#" icon, however, only your collections will show up.
- After you have made a selection you can move these objects using one of the following three moving methods:
Moving Method I (Using the translate feature):
- After you have selected your items, move your mouse cursor over one of your selected items
- Then right click to open the context menu.
- In the context menu you should now have a "translate" options available.
If it is not available one reason might be that your mouse cursor was at a wrong position while you were clicking the right mouse button. In this case reselect all items you want to move and try it again.
- Then click on the translate option.
- Now a popup window should open.
- Here enter a positive or negative x value to move your object right or left,
or enter a positive or negative y value to move your object up or down.
- Now each time you click on "Apply" you can move all selectet items in the desired direction. As you can click apply several times in a row you can move your items fast.I recommend to use 10 or -10 for a quick movement and 1 or -1 for fine tuning.
- Once you have repositioned your Items you can close the popup window by clicking the "OK" button.
For me this Method I is the fastest and best way to move items around in the editor. I would recommend to try this method first. And if you have for some reasons problems with this method, you can try, if you get better results with the other two methods I describe below.
Moving Method II (Using the cursor keys):
You can also use the cursor keys to move some secleted items around in the editor.
But this method might not work or can be very slow:
- You might press several times on the "right arrow" key, and then you will see no reaction for a long time until the computer has finished all the calculations needed to move the object. (I have no idea why it takes so long and what the computer is calculating but be prepared that it can take a very long time until you see a reaction.)
- I had also no luck with moving some kind of objects (like flasher objects) using this method.
Moving Method III (Cut and paste)
Even if the editor does not support cut and paste you can reach the same result if you:
-] copy the selected items (without pasting it yet)
-] then delete the selected items
-] and then finally use "paste at" to to paste it at the place you want the items to be.
However, at least for me it is very difficult to place an object precisely using the "paste at" feature as the object does not appear at the place where I expect it to be placed. Maybe I am doing something wrong here.