Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
systems:vpinball [2024/05/28 03:36] – [Customize Sounds] fix altsound path lbrpdxsystems:vpinball [2025/07/11 14:26] (current) – Fix VPinballX_GL path lbrpdx
Line 11: Line 11:
  
 This system scrapes metadata for the "vpinball" group(s) and loads the ''vpinball'' set from the currently selected theme, if available. This system scrapes metadata for the "vpinball" group(s) and loads the ''vpinball'' set from the currently selected theme, if available.
 +
 +<WRAP center round info>
 +Batocera **v40** and higher will have all components of the emulated pinball machine (the table, the scoring DMD system, the backglass recreation, etc.) on the main display by default, however some components can be sent to additional real-world displays such as [[:hardware:lcd_led_marquees#pixelcade|LED marquees]].
 +
 +Batocera **v39** and lower do not support multi-screen configurations of any kind.
 +</WRAP>
 +
 </WRAP> </WRAP>
  
Line 23: Line 30:
   * **Folder:** ''/userdata/roms/vpinball''   * **Folder:** ''/userdata/roms/vpinball''
   * **Accepted ROM formats:** ''.vpx''   * **Accepted ROM formats:** ''.vpx''
- 
-===== WARNING: Desktop configuration only (before batocera 40) ===== 
-Before version 40, vpinball on Batocera is **not** for creating pincab configurations with multiple screens. 
- 
-Before version 40, the goal is to create a pleasant and easy experience of a "Desktop" pinball where everything (the table, the scoring DMD system, the backglass recreation,...) is on one screen. It supports some accessories though (starting from  v39), such as [[https://pixelcade.org/|PixelCade]] and [[https://www.artcab.fr/dmd/608-zedmd-pret-a-l-emploi.html|ZeDMD]]. 
  
 ===== BIOS ===== ===== BIOS =====
  
 No Visual Pinball X emulator in Batocera needs a BIOS file to run. No Visual Pinball X emulator in Batocera needs a BIOS file to run.
- 
-But many tables recreations require the original pinball rom to run. 
  
 ===== ROMs ===== ===== ROMs =====
Line 39: Line 39:
 The current version of Visual Pinball supports version 10 (''.vpx'' extension) tables. The current version of Visual Pinball supports version 10 (''.vpx'' extension) tables.
  
-Community based tables for can be downloaded from [[https://www.vpforums.org|https://www.vpforums.org]] or [[https://vpuniverse.com|https://vpuniverse.com]]+The [[https://virtualpinballspreadsheet.github.io/|Virtual Pinball Spreadsheet]] is an excellent online resource for tracking down your old favorite tables or helping you find new ones, all created by the community and freely available. Tables and other content can then be found at [[https://www.vpforums.org|The Virtual Pinball Forums]] or [[https://vpuniverse.com|Virtual Pinball Universe]].
  
-Place your VPX tables in the ''.vpx'' format in ''/userdata/roms/vpinball/<table_name>/'' (eg''/userdata/roms/vpinball/Haunted House (Gottlieb 1982)/Haunted House (Gottlieb 1982) VPW 2.1.vpx'')+Place your VPX tables in the ''.vpx'' format in ''/userdata/roms/vpinball/<table_name>/'' (eg''/userdata/roms/vpinball/Haunted House (Gottlieb 1982)/Haunted House (Gottlieb 1982) VPW 2.1.vpx'')
  
 ==== PinMAME ==== ==== PinMAME ====
  
-Many historical tables require the original rom file extracted from the pinball machine to run. To play these tables, you need to put the proper rom in ''.zip'' format in the +Many historical tables require the original ROM file extracted from the pinball machine mainboard to run. You have two choices in how to organize your ROM files: either all in one directory or per table.
-  * ''/userdata/system/configs/vpinball/pinmame/roms'' (v38) +
-  * ''/userdata/roms/vpinball/<table_name>/roms'' (v39+) (Eg: ''/userdata/roms/vpinball/Phantom Of The Opera (Data East 1990)/roms/poto_a32.zip''+
  
-A few tables also require nvram ''.nv'' file placed in+If you choose to put them all in one directory, they need to be placed in ''/userdata/system/configs/vpinball/pinmame/roms/'' in zip format. A few tables that also require an nvram ''.nv'' file require them to be placed in ''/userdata/system/configs/vpinball/pinmame/nvram/''. You will also need to set **MAIN MENU** -> **GAME SETINGS** -> **PER SYSTEM ADVANCED CONFIGURATION** -> **VISUAL PINBALL X** -> **PER TABLE FOLDER** to "Off" for Visual Pinball to find your ROMs when organized this way. 
-  * ''/userdata/system/configs/vpinball/pinmame/nvram'' (v38) + 
-  * ''/userdata/roms/vpinball/<table_name>/nvram'' (v39+)+If you choose to have the ROMs organized per table (the default in **v39+**), then the proper ROM(s) in ''.zip'' format are placed in ''/userdata/roms/vpinball/<table_name>/roms'' (eg. ''/userdata/roms/vpinball/Phantom Of The Opera (Data East 1990)/roms/poto_a32.zip''). A few tables also require an nvram ''.nv'' file placed in ''/userdata/roms/vpinball/<table_name>/nvram''. You should have the **PER TABLE FOLDER** setting for **VISUAL PINBALL X** mentioned above to "Auto" or "On" if you organize your ROMs in this fashion. 
 + 
 +<WRAP center round info> 
 +Regardless of how you choose to organize your ROM files for Visual Pinball, you'll still want to otherwise follow the organization recommended in [[#per_table_folder_organisation_v39|Per Table folder organisation]] for the rest of the files related to each table. 
 + 
 +If the table isn't loading properly, check ''/userdata/system/configs/vpinball/vpinball.log'' for any error messages in the loading of the ROMs. This file is rewritten every time a new table is started from the EmulationStation GUI. 
 + 
 +In Batocera **v38** and lower, the ROM and nvram files were always placed within their respective folders inside ''/userdata/system/configs/vpinball/pinmame''
 +</WRAP>
  
 ==== Additional .vbs files ==== ==== Additional .vbs files ====
  
-Visual Pinball uses VBScript as the scripting engine for tables. Due to incomplete support in Wine, some tables will open briefly, then close+Visual Pinball uses VBScript (VBS) as the scripting engine for tables. Due to incomplete support in Wine, some tables will fail to run without modification.
  
-These tables may run with a modified ''.vbs'' script which can be found here:  +These tables may run with a modified VBS file which can be found at [[https://github.com/jsm174/vpx-standalone-scripts|https://github.com/jsm174/vpx-standalone-scripts]]
-[[https://github.com/jsm174/vpx-standalone-scripts|https://github.com/jsm174/vpx-standalone-scripts]]+
  
-Put the ''.vbs'' file in ''/userdata/roms/vpinball/<table_name>'' folder, next to your vpx table. Only the ''.vbs'' file is required (not the ''.vbs.original'', nor the ''.vbs.patch'' files). The name must match the exact name of the table (eg''/userdata/roms/vpinball/Guns N Roses (Data East 1994)/Guns N Roses (Data East 1994) VPW v1.1.vbs'')+Put the ''.vbs'' file in ''/userdata/roms/vpinball/<table_name>'', next to the VPX table. Only the ''.vbs'' file is required (not the ''.vbs.original'', nor the ''.vbs.patch'' files). The name must match the exact name of the table (eg''/userdata/roms/vpinball/Guns N Roses (Data East 1994)/Guns N Roses (Data East 1994) VPW v1.1.vbs'')
  
 ===== All Paths ===== ===== All Paths =====
 +
 +==== Per Table folder organisation (V39+) ====
 +
 +Virtual Pinball is very flexible and provides support for alternative, optional features (alternate sound effects, colorized Dot Matrix Displays, etc) that may be separate from the main table download. These features are contained in files that are separate downloads and best organized in separate folders within that for the table. The recommended folder organization for use within Batocera **v39+** is shown below. 
 +
 +^ Folder                                          ^ Description                                                                                                                                                                                                                                                                                                                                                                        ^
 +| /userdata/roms/vpinball/<table_name>            | The VPX and any associated ''.directb2s'' or ''.vbs'' files. Any associated ''.UltraDMD'' folders should also be in this folder. Note: All file names (''.directb2s'', ''.vbs'') should match the ''.vpx'' file name exactly.                                                                                                                                                      |
 +| /userdata/roms/vpinball/<table_name>/roms       | The PinMAME ROM of the table (in ''.zip'' format). (eg: ''userdata/roms/vpinball/AC-DC LUCI Premium (Stern 2013)/roms/acd_170h.zip''). You will need to create this directory for those tables that require ROMs as they are a separate download from the table itself. Alternatively, you can put all your PinMAME ROMs in the PinMAME directory [[#pinmame|as described here]].  |
 +| /userdata/roms/vpinball/<table_name>/altcolor   | Optional Serum colorizations directory <rom_name>/<rom.cRZ> (eg: ''userdata/roms/vpinball/AC-DC LUCI Premium (Stern 2013)/altcolor/acd_170h/acd_170h.cRZ''). Create this directory as needed. Note that VP Standalone only supports the Serum (.crz) colorization format. Other colorization formats (.pac, .vni, etc) are closed source and not supported.                        |
 +| /userdata/roms/vpinball/<table_name>/altsound   | Optional alternative sound packages directory <rom_name>/<sound files> (eg: ''userdata/roms/vpinball/Batman (Data East 1991)/altsound/btmn_106''). Create this directory as needed.                                                                                                                                                                                                |
 +| /userdata/roms/vpinball/<table_name>/music      | The table's music files, if any. Create this directory for those tables where a separate download for the music files is required (e.g. ''Halloween 1978-1981 (Original 2022) 1.03.vpx''                                                                                                                                                                                         |
 +| /userdata/roms/vpinball/<table_name>/nvram      | PinMAME NVRAM (Non Volatile Memory with Pinball settings)                                                                                                                                                                                                                                                                                                                          |
 +| /userdata/roms/vpinball/<table_name>/pupvideos  | Pup Pack directory <rom_name> (eg: ''userdata/roms/vpinball/Tron Legacy (Stern 2011)/pupvideos/trn_174h''). You will need to create this directory if the Pup Pack is a separate download and not included with the table itself.                                                                                                                                                  |
 +| /userdata/system/configs/vpinball               | This directory is created automatically by Batocera for the ''VPinballX.ini'' configuration file and associated log files. If you have a problem getting a table to run, check the ''vpinball.log'' file in this directory.                                                                                                                                                        |
 +
 ==== V38 ==== ==== V38 ====
-folder                                              content description                                                                                                                                                                                ^+ 
 +Folder                                              Description                                                                                                                                                                                ^
 | /userdata/roms/vpinball                             | Your .vpx & and any associated .directb2s or .vbs files. Any associated .UltraDMD folders should also be in the vpinball roms folders. Note: .directb2s files should match the .vpx file name.     | | /userdata/roms/vpinball                             | Your .vpx & and any associated .directb2s or .vbs files. Any associated .UltraDMD folders should also be in the vpinball roms folders. Note: .directb2s files should match the .vpx file name.     |
-| /userdata/system/configs/vpinball                   | VPinball configuration log files                                                                                                                                                                 |+| /userdata/system/configs/vpinball                   | VPinball configuration and log files                                                                                                                                                                 |
 | /userdata/system/configs/vpinball/user              | VPinball user directory                                                                                                                                                                            | | /userdata/system/configs/vpinball/user              | VPinball user directory                                                                                                                                                                            |
-| /userdata/system/configs/vpinball/pinmame           | VPinball generated PinMAME settings, ex. sound, cheat, dmd_red                                                                                                                                     |+| /userdata/system/configs/vpinball/pinmame           | VPinball generated PinMAME settings, eg. sound, cheat, dmd_red                                                                                                                                     |
 | /userdata/system/configs/vpinball/pinmame/roms      | PinMAME ROMs directory                                                                                                                                                                             | | /userdata/system/configs/vpinball/pinmame/roms      | PinMAME ROMs directory                                                                                                                                                                             |
 | /userdata/system/configs/vpinball/pinmame/nvram     | PinMAME NVRAM directory                                                                                                                                                                            | | /userdata/system/configs/vpinball/pinmame/nvram     | PinMAME NVRAM directory                                                                                                                                                                            |
Line 75: Line 96:
 | /userdata/system/configs/vpinball/pinmame/vpinball  | VPinball PinMAME settings directory                                                                                                                                                                | | /userdata/system/configs/vpinball/pinmame/vpinball  | VPinball PinMAME settings directory                                                                                                                                                                |
 | /userdata/system/configs/vpinball/music             | VPinball music directory, put your music here, or in the same folder as your vpx file in it's own 'music' folder. The music folder, should be lowercase - i.e. /userdata/roms/vpinball/Kiss/music  | | /userdata/system/configs/vpinball/music             | VPinball music directory, put your music here, or in the same folder as your vpx file in it's own 'music' folder. The music folder, should be lowercase - i.e. /userdata/roms/vpinball/Kiss/music  |
-Due to the huge amount of files per table, it is recommended to opt for a folder per table organisation (default starting from v39): 
-  -  open the ''/userdata/system/configs/vpinball/VPinballX.ini'' file. 
-  - Change ''PinMAMEPath ='' to ''PinMAMEPath = ./'' 
-==== Per Table folder organisation (V39+) ==== 
-Starting from v39, each table folder will contain all the necessary files to launch the table. 
-^ folder                                          ^ content description                                                                                                                                                                                        ^ 
-| /userdata/roms/vpinball/<table_name>            | Your .vpx & and any associated .directb2s or .vbs files. Any associated .UltraDMD folders should also be in this folder. Note: all file names (.directb2s, .vbs) should match the .vpx file name exactly.  | 
-| /userdata/roms/vpinball/<table_name>/roms       | The PinMAME rom of your table (in ''.zip'' format). (eg: ''userdata/roms/vpinball/AC-DC LUCI Premium (Stern 2013)/roms/acd_170h.zip''                                                                    | 
-| /userdata/roms/vpinball/<table_name>/altcolor   | Serum colorizations directory <rom_name>/<rom.cRZ> (eg: ''userdata/roms/vpinball/AC-DC LUCI Premium (Stern 2013)/altcolor/acd_170h/acd_170h.cRZ''                                                        | 
-| /userdata/roms/vpinball/<table_name>/altsound   | Alternative sound packages directory <rom_name>/<sound files> (eg: ''userdata/roms/vpinball/Batman (Data East 1991)/altsound/btmn_106''                                                                  | 
-| /userdata/roms/vpinball/<table_name>/music      | put your music here (required by some tables). The music folder, should be lowercase                                                                                                                       | 
-| /userdata/roms/vpinball/<table_name>/nvram      | PinMAME NVRAM                                                                                                                                                                                              | 
-| /userdata/roms/vpinball/<table_name>/pupvideos  | Pup Pack directory <rom_name> (eg: ''userdata/roms/vpinball/Tron Legacy (Stern 2011)/pupvideos/trn_174h''                                                                                                | 
-| /userdata/system/configs/vpinball               | VPinballX.ini configuration file & log files                                                                                                                                                               | 
-Another possibility is to create a ''pinmame'' folder inside your table folder, containing the sub-folders ''roms'',''nvram'',''altsound''... 
-eg: ''/userdata/roms/vpinball/Haunted House (Gottlieb 1982)/pinmame/roms/hh.zip'', ''/userdata/roms/vpinball/Haunted House (Gottlieb 1982)/pinmame/nvram/hh.nv'',... 
-===== Emulators ===== 
  
-==== vpinball standalone====+<WRAP center round important> 
 +In Batocera **v39** and lower, the default configuration does not allow for using subfolders in ''/userdata/roms/vpinball/'' to store and run pinball tables. This can be changed by editing the line in ''/userdata/system/configs/vpinball/VPinballX.ini'' from ''PinMAMEPath ='' to ''PinMAMEPath ./''
  
-[[https://github.com/vpinball/vpinball/tree/standalone/standalone|Visual Pinball Standalone]] is a modified version of VPinballX that is designed to run on non-Windows platforms. It is an open source cross platform pinball table simulator. It targets Desktop users, but also Pincab users and has a lot of options and components to create complete Pincabs.+In Batocera **v40** and higher, this is the default. 
 +</WRAP>
  
-=== vpinball configuration ===+===== Emulators =====
  
-Standardized features available to all cores of this emulator: ''vpinball.videomode'', ''vpinball.padtokeyboard'', ''vpinball.videomode'', ''vpinball.bezel'', ''vpinball.bezel_stretch'', ''vpinball.hud'', ''vpinball.hud_corner'', ''vpinball.bezel.tattoo'', ''vpinball.bezel.tattoo_corner'', ''vpinball.bezel.tattoo_file'', ''vpinball.bezel.resize_tattoo''+==== Visual Pinball Standalone ====
  
 +[[https://github.com/vpinball/vpinball/tree/standalone/standalone|Visual Pinball Standalone]] is a modified version of VPinballX that is designed to run on non-Windows platforms. It is an open source cross-platform pinball table simulator that targets not only Desktop users but Pincab users as well. Standalone is not currently as full-featured as its Windows counterpart (it does not include the table editor nor does it support head tracking, for example) but the features it has are enough to support a dedicated cabinet. Standalone is also in active development and new functionality is being added on a regular basis.
  
-===== Controls ===== +=== Visual Pinball configuration ===
-==== Keyboard Keys for Visual Pinball ====+
  
-^ key      ^ action                                                                    ^ +Standardized features available to all cores of this emulator: ''vpinball.videomode''''vpinball.padtokeyboard'', ''vpinball.videomode'', ''vpinball.bezel''''vpinball.bezel_stretch'', ''vpinball.hud'', ''vpinball.hud_corner'', ''vpinball.bezel.tattoo'', ''vpinball.bezel.tattoo_corner''''vpinball.bezel.tattoo_file''''vpinball.bezel.resize_tattoo''
-| 1        | start game / add player                                                   | +
-| 2        | buy extraball at the end of the game (judge dreddindiana jones tpa...)  | +
-| 5        | insert coin 1                                                             | +
-| 4        | insert coin 2                                                             | +
-| Enter    | launch ball                                                               | +
-| L Shift  | left flipper                                                              | +
-| R Shift  | right flipper                                                             | +
-| L Ctrl   | left magna save                                                           | +
-| R Ctrl   | right magna save                                                          | +
-| L Alt    | lockbar fire button (ac/dcterminator 2...)                              | +
-| Q        | quit                                                                      | +
-| T        | mechanical tilt                                                           | +
-| Space    | nudge forward                                                             | +
-| Z        | nudge from left                                                           | +
-| /        | nudge from right                                                          | +
-| Esc      | contextual menu to pause emulator / launch webserver / adjust camera      | +
-| F11      | display stats (press twice to have graphical stats)                       | +
- +
-==== Keyboard Keys for Stern S.A.MPinballs ==== +
-Very useful to access and manipulate the service menu of the pinballin order to change the volumeor the number of balls in play (and many other parameters) +
-^ key    ^ action                         ^ +
-| 3,4,5  | insert coin 1, 2 , 3           | +
-| 7      | back                           | +
-| 8      | minus                          | +
-| 9      | plus                           | +
-| 0      | select  / access to the menus  | +
-| home   | slam tilt                      |+
  
-Here are the default Visual Pinball X's controls shown on a [[:configure_a_controller|Batocera RetroPad]]:+==== Accessing Service Menu ====
  
-==== Accessing Service Menu ==== 
 Due to the extreme variety of hardware, no generic procedure exists to change the volume or the number of balls. But an excellent topic on this subject is here: Due to the extreme variety of hardware, no generic procedure exists to change the volume or the number of balls. But an excellent topic on this subject is here:
 [[https://www.vpforums.org/index.php?showtopic=38669#entry388038|https://www.vpforums.org/index.php?showtopic=38669#entry388038]] [[https://www.vpforums.org/index.php?showtopic=38669#entry388038|https://www.vpforums.org/index.php?showtopic=38669#entry388038]]
-==== Customize your keyboard keys ==== 
-Example: you want to replace the ''AddCreditKey'' by ''I'' keypress:  
-  * open the ''/userdata/system/configs/vpinball/VPinballX.ini'' file. 
-  * In the ''Keyboard input mappings'' section, replace ''AddCreditKey = 23'' 
-  * the keycodes are available here: [[https://github.com/vpinball/vpinball/tree/standalone/standalone#keyboard 
-|https://github.com/vpinball/vpinball/tree/standalone/standalone#keyboard 
-]] 
  
-==== Customize your gamepad buttons ==== +For non DMD tables, the options are configured through Dip switches. Vpinball standalone version doesn't support pressing ''[F6]'' to display a window with the options. A way to access dip switches settings (and many more...) is to use the very powerful [[https://github.com/francisdb/vpxtool/|vpxtool]]Most of the time, a description with what each dip switch does is also included directly in the ''.vbs'' file, where they can be edited. eg. In the Fathom table, you can have 5 balls per play instead of 3 by changing this part:
-You should have a look at the Pad2Key system as modifications of ''/userdata/system/configs/vpinball/VPinballX.ini'' for the joystick are not taken into account.+
  
-In **v40+**, you can control the plunger with the right stick by editing your ''VPinballX.ini'': 
 <code> <code>
-[Player] +' Number of Balls / game 
-; Plunger + SetDip &H40000000,1 'Number of balls.  0,0 = 3, 0,1 = 3, 1,0 = 5, 1,1 = 5 
-PlungerAxis = 5 + SetDip &H80000000,0 
-</code> +</code>
  
-Default gamepad layout:+More information on what each Dip switch does is found in the table's user manual. 
 +===== Customizing the Table =====
  
-{{https://raw.githubusercontent.com/batocera-linux/batocera-controller-overlays/master/solid-4k/vpinball.png}}+==== Visual Settings ==== 
 + 
 +<WRAP center round todo> 
 +Default controls example should include the Batocera retropad's controls. 
 +</WRAP>
  
-===== Customize your Table ===== 
-==== Visual Settings ==== 
 === Change the Point of View and Lighting === === Change the Point of View and Lighting ===
   - Press ''Esc'' then choose ''Adjust Camera''   - Press ''Esc'' then choose ''Adjust Camera''
Line 172: Line 144:
 In v38, this creates a ''.pov'' file next to your table ''.vpx'' file, with the same name (in ''/userdata/roms/vpinball''). Note that ''Environment Emission'' is not saved in this ''.pov'' file and must be set in your table's ''.ini'' file In v38, this creates a ''.pov'' file next to your table ''.vpx'' file, with the same name (in ''/userdata/roms/vpinball''). Note that ''Environment Emission'' is not saved in this ''.pov'' file and must be set in your table's ''.ini'' file
  
-The ''.pov'' files are deprecated in v39 (following evolutions of vpinball). The customisation process remains exactly the same (press ''Esc'' then choose ''Adjust Camera''), but it now creates a ''.ini'' file. It's recommended to remove the old ''.pov'' files to use the new ''.ini'' files, and also to choose the ''Camera'' view instead of the ''Legacy'' view. +The ''.pov'' files are deprecated in **v39**. The customization process remains exactly the same (press ''Esc'' then choose ''Adjust Camera''), but it now creates a ''.ini'' file. It's recommended to remove the old ''.pov'' files to use the new ''.ini'' files, and also to choose the ''Camera'' view instead of the ''Legacy'' view. (FIXME is this **required** or **optional**?)
  
 === Display a ball trail (to better see it) === === Display a ball trail (to better see it) ===
 +
 +<WRAP center round todo>
 +Options should be listed and described in [[#vpinball_standalone|the appropriate emulator's config section]]
 +</WRAP>
 +
 It'll help keep track of your ball in fast moments or with dark tables. It'll help keep track of your ball in fast moments or with dark tables.
   * **v38**: in the ''VPinballX.ini'' file, put these values   * **v38**: in the ''VPinballX.ini'' file, put these values
Line 195: Line 172:
 </code> </code>
   * **v39**: you can configure this directly in the Advanced Options of the emulator   * **v39**: you can configure this directly in the Advanced Options of the emulator
 +
 +
 ==== Customize Sounds ==== ==== Customize Sounds ====
 === Change the Sound Volumes === === Change the Sound Volumes ===
Line 229: Line 208:
  
 ==== Have PUP Pack Animations on the Backglass ==== ==== Have PUP Pack Animations on the Backglass ====
-In **v40+**, there's initial supportIn ''VPinballX.ini'', there are new settings. If you want to activate pup support:+<WRAP center round important OR todo> 
 +__Preliminary__ support for PUP Pack Animations was introduced in Batocera **v40**. It is a work in progress at time of writingBroken or missing functionality on some tables is expected. 
 +</WRAP> 
 +If you want to activate PUP support, edit these settings in ''VPinballX.ini'':
 <code> <code>
 [Standalone] [Standalone]
Line 239: Line 221:
 Download the corresponding PUP Pack and copy it into ''/userdata/roms/vpinball/<table_folder>/pupvideos/<rom_name>/'' (eg: ''/userdata/roms/vpinball/Lord of the Rings (Stern 2003)/pupvideos/lotr''). Download the corresponding PUP Pack and copy it into ''/userdata/roms/vpinball/<table_folder>/pupvideos/<rom_name>/'' (eg: ''/userdata/roms/vpinball/Lord of the Rings (Stern 2003)/pupvideos/lotr'').
  
-You need to be patient: don't expect everything to work as it's a WIP (eg: musics don't work yet).+The expected ratio for the backglass and the FullDMD are 16:9. For the topper, it's not strictly defined, so 4:1 ratio is a good starting point to start experimenting. 
 + 
 +You need to be patient: don't expect everything to work as it's a WIP.
  
 If it's not working as expected, you can check if you have the correct (ie: adapted to desktop or 2 screens, or 3 screens...) ''playlists.pup'', ''screens.pup'' and ''triggers.pup'' files in ''/userdata/roms/vpinball/<table_folder>/pupvideos/<rom_name>/''. Most of the time, you have a ''PuP-Pack_Options'' folder with some preconfigured ready-to-use files. Eg: for ''Batman 66 Stern Tribute (2021)'', you need to replace the 3 .pup files in ''/userdata/roms/vpinball/Batman 66 Stern Tribute (2021)/pupvideos/b66_orig/'' by the ones from ''/userdata/roms/vpinball/Batman 66 Stern Tribute (2021)/pupvideos/b66_orig/PuP-Pack_Options/Option 3 - Desktop''. If it's not working as expected, you can check if you have the correct (ie: adapted to desktop or 2 screens, or 3 screens...) ''playlists.pup'', ''screens.pup'' and ''triggers.pup'' files in ''/userdata/roms/vpinball/<table_folder>/pupvideos/<rom_name>/''. Most of the time, you have a ''PuP-Pack_Options'' folder with some preconfigured ready-to-use files. Eg: for ''Batman 66 Stern Tribute (2021)'', you need to replace the 3 .pup files in ''/userdata/roms/vpinball/Batman 66 Stern Tribute (2021)/pupvideos/b66_orig/'' by the ones from ''/userdata/roms/vpinball/Batman 66 Stern Tribute (2021)/pupvideos/b66_orig/PuP-Pack_Options/Option 3 - Desktop''.
 +
 +A few ideas if a puppack is not working:
 +  * sometimes you need to activate it in the .vbs script (eg: the goonies table)
 +  * make sure the folder "PupCapture" is spelled this way (this folder is currently case-sensitive, so it won't work if it's "PuPCapture" for example)
 +
 +
 ==== I want to use Batocera for a Visual Pinball Cabinet ==== ==== I want to use Batocera for a Visual Pinball Cabinet ====
  
-Starting with Batocera 40you can use Batocera as the OS for a VPX-based pincab. Here are the configuration steps:+Starting with Batocera **v40**, Batocera supports running on a VPX-based pincab. Here are the configuration steps:
  
   * First, define if you want the primary screen for ES to be the playfield or the backglass (assuming you have at least 2 screens for your pincab).   * First, define if you want the primary screen for ES to be the playfield or the backglass (assuming you have at least 2 screens for your pincab).
-  * Let's assume that you choose the backglass as the primary ES screen. You need to define it with its identifier and resolution in EmulationStation (**SYSTEM SETTINGS** -> **VIDEO OUTPUT**). Don't keep the **AUTO** value. If necessary, you can tweak the resolution in **SYSTEM SETTINGS** -> **ADVANCED FRONTEND OPTIONS**) +  * Let's assume that you choose the backglass as the primary ES screen. Define its identifier and resolution in EmulationStation (**SYSTEM SETTINGS** -> **VIDEO OUTPUT**). Don't keep the **AUTO** value (FIXME why?). If necessary, tweak the resolution in **SYSTEM SETTINGS** -> **ADVANCED FRONTEND OPTIONS** (FIXME any specific reason outside of the usual reasons for wanting to adjust resolution?)
-  * Then, in **SYSTEM SETTINGS** -> **MULTISCREEN** you need to define the output for your secondary ES screen. In our example here, this would be the playfield for VPX, and the information screen for EmulationStation. +  * Then, in **SYSTEM SETTINGS** -> **MULTISCREEN** define the output for the secondary screen. In our example here, this would be the playfield for VPX, and the information screen for EmulationStation. 
-  * Now, for the DMD, you have two options here+  * For the DMD, you have two options: 
-    * Either you use another screen for DMD, and then you need to define it as the **DMD SCREEN** in this **MULTISCREEN** menu; +    * Either use another screen for DMD, defined as the **DMD SCREEN** in this **MULTISCREEN** menu; 
-    * Or you have a physical LED-based DMD like a [[hardware:lcd_led_marquees|Pixelcade]] or a [[hardware:diy_zedmd|ZeDMD]] and you need to configure it in **SYSTEM SETTINGS** -> **DMD**.+    * Or a physical LED-based DMD like a [[hardware:lcd_led_marquees|Pixelcade]] or a [[hardware:diy_zedmd|ZeDMD]], configured it in **SYSTEM SETTINGS** -> **DMD**.
   * If you use a 3rd screen as the DMD, go to **SYSTEM SETTINGS** -> **DMD** and set the server to **DMDSIMULATOR**. If you have a physical LED-based DMD, set this option to **DMDSERVER (FOR REAL DMDs)**.   * If you use a 3rd screen as the DMD, go to **SYSTEM SETTINGS** -> **DMD** and set the server to **DMDSIMULATOR**. If you have a physical LED-based DMD, set this option to **DMDSERVER (FOR REAL DMDs)**.
   * When you launch a VPX table, Batocera will try and detect which screen is the backglass, which screen is the playfield (independently from the selection that has been made for EmulationStation). If it gets inverted, you can swap the screens for the playfield and the backglass with the option **INVERSE PLAYFIELD AND B2S** in the advanced settings of Virtual Pinball.   * When you launch a VPX table, Batocera will try and detect which screen is the backglass, which screen is the playfield (independently from the selection that has been made for EmulationStation). If it gets inverted, you can swap the screens for the playfield and the backglass with the option **INVERSE PLAYFIELD AND B2S** in the advanced settings of Virtual Pinball.
   * When using Batocera in a pincab, in the same advanced settings for the Virtual Pinball system, set the **PLAYFIELD MODE** to **FULLSCREEN**.   * When using Batocera in a pincab, in the same advanced settings for the Virtual Pinball system, set the **PLAYFIELD MODE** to **FULLSCREEN**.
-  * If you launch a table, and the playfield is not set up correctly, like it is in single-screen mode and not the right playfield view you expect, you can fix it from the VPX menu:+  * If the playfield is not set up correctly, like it is in single-screen mode and not the right playfield view you expect, it can be fixed from the VPX menu:
     * Plug a keyboard to your Batocera machine and press **ESC** to enter the VPX menus     * Plug a keyboard to your Batocera machine and press **ESC** to enter the VPX menus
     * Go to **table options**, then **Page 2/3  Point of View**     * Go to **table options**, then **Page 2/3  Point of View**
Line 262: Line 252:
     * Press the key 1 on your keyboard to save the setting.     * Press the key 1 on your keyboard to save the setting.
  
-As of now, not everything is supported on Batocera 40, but things move fast. In particular what is missing compared to traditional Windows-based pincabs:+As of now, not everything is supported in Batocera **v40**, but things move fast. In particular what is missing compared to traditional Windows-based pincabs:
   * DOFlink to control toys (addressable LEDs, shakers...)   * DOFlink to control toys (addressable LEDs, shakers...)
   * SFF and multi-output sound systems   * SFF and multi-output sound systems
  
 +Even if SFF is not fully supported yet, you can still use multiple sound cards. For example, on my pincab, I have two sound cards: one for the backglass music and sound effects, and one for the ball and bumper "physical" sounds. I can list all the sound outputs supported by VPinballX by logging into Batocera and running:
 +<code>
 +# /usr/bin/vpinball/VPinballX_GL -listsn
 +2025-06-14 15:18:37.153 INFO  [10019] [VPApp::InitInstance@926] Starting VPX - v10.8.0 Final (Rev. 9999 (unknown), linux OpenGL 64bits)
 +2025-06-14 15:18:37.154 INFO  [10019] [VPApp::InitInstance@929] Settings file was loaded from /userdata/system/.vpinball/VPinballX.ini
 +2025-06-14 15:18:37.154 INFO  [10019] [VPApp::InitInstance@930] m_logicalNumberOfProcessors=4
 +2025-06-14 15:18:37.154 INFO  [10019] [VPApp::InitInstance@931] m_szMyPath=/usr/bin/vpinball/
 +2025-06-14 15:18:37.154 INFO  [10019] [VPApp::InitInstance@932] m_szMyPrefPath=/userdata/system/.vpinball/
 +2025-06-14 15:18:37.154 INFO  [10019] [VPApp::InitInstance@980] Available sound devices:
 +2025-06-14 15:18:37.171 INFO  [10019] [VPApp::InitInstance@985] id 1: name=Default, enabled=1
 +2025-06-14 15:18:37.171 INFO  [10019] [VPApp::InitInstance@985] id 2: name= USB Audio: USB Audio, enabled=1
 +2025-06-14 15:18:37.171 INFO  [10019] [VPApp::InitInstance@985] id 3: name=HDA Intel PCH: ALC221 Analog, enabled=1
 +2025-06-14 15:18:37.171 INFO  [10019] [VPApp::InitInstance@985] id 4: name=HDA NVidia: LG TV, enabled=1
 +2025-06-14 15:18:37.171 INFO  [10019] [VPApp::InitInstance@985] id 5: name=HDA NVidia: HDMI 1, enabled=1
 +2025-06-14 15:18:37.171 INFO  [10019] [VPApp::InitInstance@985] id 6: name=HDA NVidia: HDMI 2, enabled=1
 +2025-06-14 15:18:37.171 INFO  [10019] [VPApp::InitInstance@985] id 7: name=HDA NVidia: HDMI 3, enabled=1
 +2025-06-14 15:18:37.171 INFO  [10019] [VPApp::InitInstance@985] id 8: name=HDA Intel HDMI: HDMI 0 *, enabled=1
 +2025-06-14 15:18:37.171 INFO  [10019] [VPApp::InitInstance@985] id 9: name=HDA Intel HDMI: HDMI 1, enabled=1
 +2025-06-14 15:18:37.171 INFO  [10019] [VPApp::InitInstance@985] id 10: name=HDA Intel HDMI: HDMI 2, enabled=1
 +2025-06-14 15:18:37.171 INFO  [10019] [VPApp::InitInstance@985] id 11: name=Default Audio Device, enabled=1
 +2025-06-14 15:18:37.171 INFO  [10019] [VPApp::InitInstance@985] id 12: name=Rate Converter Plugin Using Samplerate Library, enabled=1
 +2025-06-14 15:18:37.171 INFO  [10019] [VPApp::InitInstance@985] id 13: name=Rate Converter Plugin Using Speex Resampler, enabled=1
 +2025-06-14 15:18:37.171 INFO  [10019] [VPApp::InitInstance@985] id 14: name=Open Sound System, enabled=1
 +2025-06-14 15:18:37.171 INFO  [10019] [VPApp::InitInstance@985] id 15: name=PipeWire Sound Server, enabled=1
 +2025-06-14 15:18:37.171 INFO  [10019] [VPApp::InitInstance@985] id 16: name=PulseAudio Sound Server, enabled=1
 +2025-06-14 15:18:37.171 INFO  [10019] [VPApp::InitInstance@985] id 17: name=Plugin using Speex DSP (resample, agc, denoise, echo, dereverb), enabled=1
 +2025-06-14 15:18:37.171 INFO  [10019] [VPApp::InitInstance@985] id 18: name=Plugin for channel upmix (4,6,8), enabled=1
 +2025-06-14 15:18:37.171 INFO  [10019] [VPApp::InitInstance@985] id 19: name=Plugin for channel downmix (stereo) with a simple spacialization, enabled=1
 +</code>
 +
 +In my case, I want to use my default speakers for the backglass music and effects, which is managed by PipeWire Sound Server (''id 15'' above) and my other USB sound card for the ball and bumper physical effects with ''id 2'' above. I can edit the ''batocera.conf'' file and add:
 +
 +<code>
 +vpinball.vpinball_sounddevice=2
 +vpinball.vpinball_sounddevicebg=15
 +</code>
 +
 +
 +For earlier Batocera **v39** and lower, this is not supported. A pinball and Batocera fan shared information about how to tweak Batocera **v39** for pincabs [[https://gist.github.com/jsm174/19e9841174dada68d01026b2763f0f06|at this location]].
 +
 +===== Controls =====
 +
 +==== Keyboard Keys for Visual Pinball ====
 +
 +^ key      ^ action                                                                    ^
 +| 1        | start game / add player                                                   |
 +| 2        | buy extraball at the end of the game (judge dredd, indiana jones tpa...)  |
 +| 5        | insert coin 1                                                             |
 +| 4        | insert coin 2                                                             |
 +| Enter    | launch ball                                                               |
 +| L Shift  | left flipper                                                              |
 +| R Shift  | right flipper                                                             |
 +| L Ctrl   | left magna save                                                           |
 +| R Ctrl   | right magna save                                                          |
 +| L Alt    | lockbar fire button (ac/dc, terminator 2...)                              |
 +| Q        | quit                                                                      |
 +| T        | mechanical tilt                                                           |
 +| Space    | nudge forward                                                             |
 +| Z        | nudge from left                                                           |
 +| /        | nudge from right                                                          |
 +| Esc      | contextual menu to pause emulator / launch webserver / adjust camera      |
 +| F11      | display stats (press twice to have graphical stats)                       |
 +
 +==== Keyboard Keys for Stern S.A.M. Pinballs ====
 +Very useful to access and manipulate the service menu of the pinball, in order to change the volume, or the number of balls in play (and many other parameters)
 +^ key    ^ action                         ^
 +| 3,4,5  | insert coin 1, 2 , 3           |
 +| 7      | back                           |
 +| 8      | minus                          |
 +| 9      | plus                           |
 +| 0      | select  / access to the menus  |
 +| home   | slam tilt                      |
 +
 +Here are the default Visual Pinball X's controls shown on a [[:configure_a_controller|Batocera RetroPad]]:
 +
 +{{https://raw.githubusercontent.com/batocera-linux/batocera-controller-overlays/master/solid-4k/vpinball.png}}
 +
 +==== Customizing keyboard keys ====
 +
 +<WRAP center round todo>
 +These sections should be moved to https://wiki.batocera.org/remapping_controls_per_emulator
 +</WRAP>
 +
 +Example: you want to replace the ''AddCreditKey'' by ''I'' keypress: 
 +  * open the ''/userdata/system/configs/vpinball/VPinballX.ini'' file.
 +  * In the ''Keyboard input mappings'' section, replace ''AddCreditKey = 23''
 +  * the keycodes are available here: [[https://github.com/vpinball/vpinball/tree/standalone/standalone#keyboard
 +|https://github.com/vpinball/vpinball/tree/standalone/standalone#keyboard
 +]]
 +
 +==== Customizing gamepad buttons ====
 +
 +You should have a look at the Pad2Key system as modifications of ''/userdata/system/configs/vpinball/VPinballX.ini'' for the joystick are not taken into account.
 +
 +In **v40+**, you can control the plunger with the right stick by editing your ''VPinballX.ini'':
 +<code>
 +[Player]
 +; Plunger
 +PlungerAxis = 5
 +</code> 
  
-For earlier versions of Batocera, this is not supported, and requires some manual work with many steps. A pinball & batocera fan shared information about how to tweak Batocera 39 for pincabs [[https://gist.github.com/jsm174/19e9841174dada68d01026b2763f0f06|at this location]]. 
 ===== Troubleshooting ===== ===== Troubleshooting =====
-  * a lot is logged in ''/userdata/system/configs/vpinball/vpinball.log''. That'll help you investigate your problem. +The main log file is located in ''/userdata/system/configs/vpinball/vpinball.log'' 
-  * the table opens briefly then closes: + 
-     do you have the correct rom in ''.zip'' format in ''/userdata/system/configs/vpinball/pinmame/roms'' ? +==== The table opens briefly then closes ==== 
-     did you check if the table needs an additionnal ''.vbs'' file from [[https://github.com/jsm174/vpx-standalone-scripts]] ? +  Ensure the correct ROM file (in ZIP format) is present at ''/userdata/system/configs/vpinball/pinmame/roms''. 
-  * my dmd is not showing[[https://github.com/vpinball/vpinball/tree/standalone/standalone#my-game-is-not-displaying-a-dmd]]. The [[https://github.com/jsm174/vpx-standalone-scripts]] repository also has a bunch of files with a ''.vbs.dmd'' extension: they contain some hacks to display the DMD if you're playing on a single screen. Just rename the extension to ''.vbs'' and put this file next to your table (with the exact same name). +  Some tables require the correct [[#additional_vbs_files|VBS file]]. 
-  I can't add coins + 
-      * sometimes you have to launch a table twice: the 1st timethe rom is initiated. You have to quit and launch the table again. + 
 +==== My dmd is not showing ==== 
 +[[https://github.com/vpinball/vpinball/tree/standalone/standalone#my-game-is-not-displaying-a-dmd]]. The [[https://github.com/jsm174/vpx-standalone-scripts]] repository also has a bunch of files with a ''.vbs.dmd'' extension: they contain some hacks to display the DMD if you're playing on a single screen. Just rename the extension to ''.vbs'' and put this file next to your table (with the exact same name). 
 + 
 +==== I can't add coins ==== 
 +      * some tables are configured after their first launch, try exiting and relaunching it again.
       * some Bally and Gottlieb tables (gts3 type: cueball wizard for example) need a pre-initialized nvram to accept coins. You can get some files here [[https://www.vpforums.org/index.php?app=downloads&showfile=1362]] and copy them to ''/userdata/system/configs/vpinball/pinmame/roms''       * some Bally and Gottlieb tables (gts3 type: cueball wizard for example) need a pre-initialized nvram to accept coins. You can get some files here [[https://www.vpforums.org/index.php?app=downloads&showfile=1362]] and copy them to ''/userdata/system/configs/vpinball/pinmame/roms''
-  * lot is logged in ''/userdata/system/configs/vpinball/vpinball.log''. That'll help you investigate your problem. + 
-  * the table opens briefly then closes: + 
-     * do you have the correct rom in ''.zip'' format in ''/userdata/system/configs/vpinball/pinmame/roms''+==== The table tilts on its own/the ball starts to behave in crazy way ==== 
-     * did you check if the table needs an additionnal ''.vbs'' file from [[https://github.com/jsm174/vpx-standalone-scripts]] ? + 
-  * my dmd is not showing: [[https://github.com/vpinball/vpinball/tree/standalone/standalone#my-game-is-not-displaying-a-dmd]]. The [[https://github.com/jsm174/vpx-standalone-scripts]] repository also has a bunch of files with a ''.vbs.dmd'' extension: they contain some hacks to display the DMD if you're playing on a single screen. Just rename the extension to ''.vbs'' and put this file next to your table (with the exact same name). +<WRAP center round todo> 
-  * When I touch the left stick, the ball starts to behave in a crazy way (**v40+**):  +This should be an advanced system setting, considering how impactful it is
-      * there's some analog control support in v40+ versions. You should disable the accelorometer support by editing the ''VPinballX.ini'' file, put these values+</WRAP> 
 + 
 +Batocera may be unintentionally interpreting readings from your controller as that from an accelerometer, whether your controller has one (PS4 Dualshock) or not (XBox 360)Edit the file ''/userdata/system/configs/vpinball/VPinballX.ini'' to turn this off
 <code> <code>
 [Player] [Player]
Line 290: Line 387:
 </code> </code>
  
 +Note that you will still be able to nudge the table with the DPad even after this change.
 ==== Performance Tips ==== ==== Performance Tips ====
 +Press ''F11'' to display the FPS.
 +
 If your table is not playing smoothly: If your table is not playing smoothly:
-  - Press ''F11'' to display the fps. +  - Use a lower resolution: go to **Advanced System Options** -**Video Mode**.  
-  - Easy fix: use a lower resolution: go to ''Options> Advanced System Options > Video Mode''.  +  - Starting with **v39**, the Advanced Options have performance presets to match your hardware's capabilities
-  - Another easy fix: starting with **v39**, the Advanced Options have presets to match your hardware. +  - More advanced fix: fine tuning the settings in ''VPinballX.ini'' may allow you to play at a higher resolution by sacrifying visual effects. For example, a table will look much nicer at 4K without dynamic ambient occlusion than at 1080p with dynamic ambient occlusion (which can bring your GPU to its knees...). You could start with:
-  - More advanced fix: fine tuning the settings in ''VPinballX.ini'' may allow you to play at a higher resolution (4k 60fps for example), by sacrifying a few less visible visual effects. For example, a table will look much nicer at 4k without dynamic ambient occlusion than at 1080p with dynamic ambient occlusion (which can bring your gpu to its knees...). You could start with:+
 <code> <code>
 [Player] [Player]
Line 310: Line 409:
 PFReflection = 4 PFReflection = 4
 </code>  </code> 
-Note: Some settings in the VPinballX.ini file only apply to specific systems (windows for eg). Eg: ''UseNVidiaAPI'' has no effect on standalone version.+Note: Some settings in the ''VPinballX.ini'' file only apply to specific systems (windows for eg). Eg: ''UseNVidiaAPI'' has no effect on standalone version. 
 ==== Further troubleshooting ==== ==== Further troubleshooting ====
  
 For further troubleshooting, refer to the [[:support|generic support pages]]. For further troubleshooting, refer to the [[:support|generic support pages]].
  
  • systems/vpinball.1716867362.txt.gz
  • Last modified: 2 years ago
  • by lbrpdx