WIP
DirectOutput framework for virtual pinball cabinets WIP
|
Go to: Overview |
The Directoutput framework relies on the B2S-Server which has been developed by Herweh/Stefan. The B2S-Server implements a plugin interface which can load and execute plugins. This framework has been developed as such a plugin.
Therefore you must first install and configure Herwehs B2S-Server before you can install the DirectOutput framework. You can download the B2S-Server from vpuniverse.com or VPForums.
The DirectOutput framework can be downloaded from the Direct Output Framework download section at vpuniverse.com and from the Frontends and Addons section at vpforums.org, but other sites might host the binaries as well.
You are also very welcome to fork/download and enhance the source code from GitHub.
Hosting applications which can use the DirectOutput framework, implement plugin interfaces which will automatically detect, load and use the library if it is correctly installed.
The DirectOutput framework can be installed in two ways:
To install DOF withing the directory structure of the application using the framework (e.g. B2S.Server), please do the following:
If this has been done correctly, the hosting application will automatically detect, load and use the framework.
Example: A typical installation of the framework for the B2S.Server (provided that B2S.Server is installed in the VP tables directory) will have to following directory and file structure:
Note: Depending on the DirectOutput framework version, more files might exist in the installation.
To avoid duplicate installations of the DirectOutput framework, the applications using the framework as a plugin can follow windows shortcuts to the directory containging DOF.
To install DirectOutput like this, please do the following:
To allow the hosting application (e.g. B2S.Server) to detect the DirectOutput framework, do the following:
Example: A typical installation of the framework in its own directory might resemble the following file and directory structure:
Note: Depending on the DirectOutput framework version, more files might exist in the installation.
If the framework is used with a B2S.Server installtion (which normaly reside in the VP table folder), you should have the following directory structure and shortcut (pointing to the directory containg the DirectOutput framework):
On platforms like Win7 or Vista you might need to unblock the files of the DirectOutput framework, before it can be recognized by hosting applications (e.g. B2S.Server).
Please exceute the following procedure for all dll and exe files of the DirectOutput installtion:
If the text about the file coming from another computer does not exist, everthing should be fine.
In order to activate the DirectOutput framwork you need to check the Active Plugins checkbox in the B2S Server settings window. If you plan to use DOF for tables not having a directB2S backglass file (e.g. a legacy Rosve style B2S table), make sure the "Error message without backglass" checkbox is unchecked. To open the settings window, you need to move the mouse pointer to the backglass (press T to toggle the visibility of the mousepointer) and press S.
Alternative you can also edit the B2STableSettings.xml file in the table directory. You will need to add the ArePluginsOn option to the file. The result should resemble to following example:
If you have used the VBScript solution to control your LedWiz before you will have to REMOVE the line loading ledcontrol.vbs from your core.vbs.
Depending on your version of core.vbs this line might looks like one of the following two:
If you dont remove the mentioned statement you'll run into trouble since the framework and the ledcontrol.vbs solutions will run simultaneously!
Tables using the DirectOutput framework resp. the B2S-Server have to instanciate the B2S.Server instead of the Pinmame.Controller. Replace the following line in the table scripts of the tables you want to use the B2S.Server and the DirectOutput framework
with
For EM tables it is also necessary to a some statements to send data about the table element statuses to DirectOutput and B2S.Server.
Please read the page on VP Table configuration for more detailed information on this topic.
The DirectOutput framework supports several configuration options:
If correctly installed the DirectOutput framework can configure itself automatically. This means that you dont need to create any of the config files mentioned in the sections below to get started.
Auto configuration will automatically detect the LedWiz units connected to your system and try to lookup the directoutputconfig.ini file(s) with table configurations in the following locations:
Up to 16 LedWiz units are supported, which can be controlled by numbered directoutputconfig.ini files. For LedWiz nr. 1 the file directoutputconfig.ini will be loaded, for LedWiz numbers 2-16 files ledcontrol{LedWizNumber}.ini (e.g. ledcontrol2.ini) will be loaded.
To create your own directoutputconfig.ini files it is best to use the DOF Config Tool.
At the moment only LedWiz units are automatically detected. If you are using other output controllers you will have to create a cabinet configuration file, specifying the output controllers and some matching LedWizEquivalent toys, to allow the use of ledcontrol files.
The DirectOutput framework can use one or several classical directoutputconfig.ini files to configure tables. If no other table config files are found, the framework will try to load the directoutputconfig.ini file(s). By default the framework tries to find the ledcontrol files specified in the Global Config file. If global config does not specify ledcontrol file(s) the framework will search for ledcontrol file(s) in the following directories:
Please check the page on ledcontrolfiles for details.
The auto configuration function of the framework does only support some basic functionality of the framework. If you want to unleash the full power of DirectOutput, you can venture into the more detailed configuration options.
The global configuration specifies some global settings for the framework, like the places where cabinet and table configurations are looked up.
If the framework is called through the B2S.Server Plugin it will search for a file named GlobalConfiguration_b2SServer.xml in the following places:
If no global configuration file can be found, the framework tries to configure itself by detecting LedWiz units and searching directoutputconfig.ini file in the table directory, the config directory of the DirectOutput framework or the dll directory of the framework (see section on auto configuration above). In this mode, the framework behaves like the vbscript solution.
To create your own global configuration, you can either use the built in global configuration editor or write a XML-file with the necessary information yourself.
Please read the page on global config for a detailed explanation of the settings.
The cabinet configuration specifies the output controllers (e.g. Ledwiz) and toys (e.g. contactors and RGB leds) in your cabinet.
Typically the cabinet configuration file will be named cabinet.xml and reside in the config directory of the DirectOutput framework. Be sure to configure a file pattern in the global configuration pointing on your own cabinet configuration file.
Please read the page on Cabinet Configuration for more information.
The table configuration specifies the elements on a pinball table (e.g. solenoids or lamps) and the effects assigned to the table elements.
Please read the page on VP Table configuration for details.