WIP
DirectOutput framework for virtual pinball cabinets WIP
Go to:
Overview 
Cabinet Configuration
Warning
This page is not fully up to date and needs to be updated!

Introduction

The Cabinet configuration defines the parts of a virtual pinball cabinet. The parts of the cabinet are divided into the following main areas:

  • Output controllers are the units which connects the computer in the cabinet to the installed toys. A typical example of a output controller is the LedWiz.
  • Toys are all the fun gadgets like contactors, lamps, RGB-leds and shakers which are installed in a cabinet to make the gaming experience more realistic.
  • Colors are color definitions which allow toys that can display colors (e.g. RGB-Leds) to use named colors insted of numeric color representations.

Cabinet configuration file

The configuration file for a cabinet defines the installed output controllers, their outputs and the installed toys.

Cabinet configuration files are XML files with the following basic structure:

1 <?xml version="1.0"?>
2 <Cabinet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
3  <Name>Name of the cabinet</Name>
4  <OutputControllers>
5  ... configuration of any number of output controllers ...
6  </OutputControllers}
7  <Toys>
8  ... configuration of any number toys ...
9  </Toys>
10  <Colors>
11  ... any number of color definitions ...
12  </Colors>
13 </Cabinet>

OutputControllers section

The OutputControllers section contains the configurations for the output controllers installed in the cabinet. The required tags and values depend on the type of output controller used. The minimal structure for every type of output controller is as follows:

1 <TypeOfOutputController>
2  <Name>Unique name of the output controller</Name>
3  ... more output controller specific configuration tags ...
4  <Outputs>
5  ... configuration of output of the output controller ....
6  </Outputs>
7 </TypeOfOutputController>

Output controllers might require additional tags to configure their behaviour. For a LedWiz the basic structure for the output controller configuration looks as follows:

1 <LedWiz>
2  <Name>LedWiz 01</Name>
3  <Number>1</Number>
4  <Outputs>
5  ... configuration of outputs of the output controller ....
6  </Outputs>
7 </LedWiz>

The Outputs section of the output controller configuration defines the outputs for the output controller. The required tags and structure depend on the type of output used by the output controller. The minimal structure for a output configuration looks as follows:

1 <TypeOfOutput>
2  <Name>Unique name of the output</Name>
3  ... more output specific configuration tags ...
4 </TypeOfOutput>

This structure is repeated for every output of the output controller.

Typically outputs will require additional tags for a proper configuration. For the outputs of a LedWiz this structure would contain the following:

1 <LedWizOutput>
2  <Name>LedWizOutput 01.01</Name>
3  <LedWizOutputNumber>1</LedWizOutputNumber>
4 </LedWizOutput>

Toys section

The toys section configures the gadgets installed in a cabinet. The structure and tags required depend on the type of toy beeing configured. A toy configuration will at least have the follwing mininmal structure:

1 <TypeOfTheToy>
2  <Name>Unique name of the toy</Name>
3  ... more toy specific configuration tags ....
4 </TypeOfTheToy>

In addition to the minimal tags in the example above, a typical toy will have at least one tag defining the name of the output to which the toy is connected. For a toy of type Contactor this looks as follows:

1 <Contactor>
2  <Name>Unique name of the Contactor</Name>
3  <OutputName>Name of the output </OutputName>
4 </Contactor>

Example cabinet configuration

The following xml is the config for a cabinet with 1 LedWiz unis, 10 contactors, 1 replay knocker, 5 lamps, 5 RGB-leds and one shaker installed. In addition 1 LedWizEquivalent toy is configured to allow the system, to use legacy directoutputconfig.ini files.

1 <?xml version="1.0"?>
2 <Cabinet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
3  <Name>Lizard Pin</Name>
4 
5 
6  <OutputControllers>
7  <LedWiz>
8  <Name>LedWiz 01</Name>
9  <Number>1</Number>
10  </LedWiz>
11  </OutputControllers>
12 
13 
14  <Toys>
15  <Contactor>
16  <Name>Contactor Top Left</Name>
17  <OutputName>LedWiz 01.05</OutputName>
18  </Contactor>
19  <Contactor>
20  <Name>Contactor Top Center</Name>
21  <OutputName>LedWiz 01.10</OutputName>
22  </Contactor>
23  <Contactor>
24  <Name>Contactor Top Right</Name>
25  <OutputName>LedWiz 01.09</OutputName>
26  </Contactor>
27  <Contactor>
28  <Name>Contactor Middle Left</Name>
29  <OutputName>LedWiz 01.03</OutputName>
30  </Contactor>
31  <Contactor>
32  <Name>Contactor Middle Center</Name>
33  <OutputName>LedWiz 01.04</OutputName>
34  </Contactor>
35  <Contactor>
36  <Name>Contactor Middle Right</Name>
37  <OutputName>LedWiz 01.08</OutputName>
38  </Contactor>
39  <Contactor>
40  <Name>Contactor Slingshot Left</Name>
41  <OutputName>LedWiz 01.02</OutputName>
42  </Contactor>
43  <Contactor>
44  <Name>Contactor Slingshot Right</Name>
45  <OutputName>LedWiz 01.07</OutputName>
46  </Contactor>
47  <Contactor>
48  <Name>Contactor Flipper Left</Name>
49  <OutputName>LedWiz 01.01</OutputName>
50  </Contactor>
51  <Contactor>
52  <Name>Contactor Flipper Right</Name>
53  <OutputName>LedWiz 01.07</OutputName>
54  </Contactor>
55  <ReplayKnocker>
56  <Name>ReplayKnocker</Name>
57  <OutputName>LedWiz 01.11</OutputName>
58  </ReplayKnocker>
59  <Lamp>
60  <Name>Start Button</Name>
61  <OutputName>LedWiz 01.12</OutputName>
62  </Lamp>
63  <Lamp>
64  <Name>Extra Ball Button</Name>
65  <OutputName>LedWiz 01.13</OutputName>
66  </Lamp>
67  <Lamp>
68  <Name>Exit Button</Name>
69  <OutputName>LedWiz 01.14</OutputName>
70  </Lamp>
71  <Lamp>
72  <Name>Launch Ball Button</Name>
73  <OutputName>LedWiz 01.15</OutputName>
74  </Lamp>
75  <Lamp>
76  <Name>Coin Door</Name>
77  <OutputName>LedWiz 01.16</OutputName>
78  </Lamp>
79  <RGBLed>
80  <Name>Backboard Left</Name>
81  <OutputNameRed>LedWiz 01.17</OutputNameRed>
82  <OutputNameGreen>LedWiz 01.19</OutputNameGreen>
83  <OutputNameBlue>LedWiz 01.18</OutputNameBlue>
84  </RGBLed>
85  <RGBLed>
86  <Name>Backboard Center Left</Name>
87  <OutputNameRed>LedWiz 01.20</OutputNameRed>
88  <OutputNameGreen>LedWiz 01.22</OutputNameGreen>
89  <OutputNameBlue>LedWiz 01.21</OutputNameBlue>
90  </RGBLed>
91  <RGBLed>
92  <Name>Backboard Center</Name>
93  <OutputNameRed>LedWiz 01.23</OutputNameRed>
94  <OutputNameGreen>LedWiz 01.25</OutputNameGreen>
95  <OutputNameBlue>LedWiz 01.24</OutputNameBlue>
96  </RGBLed>
97  <RGBLed>
98  <Name>Backboard Center Right</Name>
99  <OutputNameRed>LedWiz 01.26</OutputNameRed>
100  <OutputNameGreen>LedWiz 01.28</OutputNameGreen>
101  <OutputNameBlue>LedWiz 01.27</OutputNameBlue>
102  </RGBLed>
103  <RGBLed>
104  <Name>Backboard Right</Name>
105  <OutputNameRed>LedWiz 01.29</OutputNameRed>
106  <OutputNameGreen>LedWiz 01.31</OutputNameGreen>
107  <OutputNameBlue>LedWiz 01.30</OutputNameBlue>
108  </RGBLed>
109  <Shaker>
110  <Name>Shaker</Name>
111  <OutputName>LedWiz 01.31</OutputName>
112  </Shaker>
113 
114 
115  <LEDWizEquivalent>
116  <Name>LedWizEquivalent 1</Name>
117  <Outputs>
118  <LEDWizEquivalentOutput>
119  <OutputName>LedWiz 01\LedWiz 01.01</OutputName>
120  <LedWizEquivalentOutputNumber>1</LedWizEquivalentOutputNumber>
121  </LEDWizEquivalentOutput>
122  <LEDWizEquivalentOutput>
123  <OutputName>LedWiz 01\LedWiz 01.02</OutputName>
124  <LedWizEquivalentOutputNumber>2</LedWizEquivalentOutputNumber>
125  </LEDWizEquivalentOutput>
126  <LEDWizEquivalentOutput>
127  <OutputName>LedWiz 01\LedWiz 01.03</OutputName>
128  <LedWizEquivalentOutputNumber>3</LedWizEquivalentOutputNumber>
129  </LEDWizEquivalentOutput>
130  <LEDWizEquivalentOutput>
131  <OutputName>LedWiz 01\LedWiz 01.04</OutputName>
132  <LedWizEquivalentOutputNumber>4</LedWizEquivalentOutputNumber>
133  </LEDWizEquivalentOutput>
134  <LEDWizEquivalentOutput>
135  <OutputName>LedWiz 01\LedWiz 01.05</OutputName>
136  <LedWizEquivalentOutputNumber>5</LedWizEquivalentOutputNumber>
137  </LEDWizEquivalentOutput>
138  <LEDWizEquivalentOutput>
139  <OutputName>LedWiz 01\LedWiz 01.06</OutputName>
140  <LedWizEquivalentOutputNumber>6</LedWizEquivalentOutputNumber>
141  </LEDWizEquivalentOutput>
142  <LEDWizEquivalentOutput>
143  <OutputName>LedWiz 01\LedWiz 01.07</OutputName>
144  <LedWizEquivalentOutputNumber>7</LedWizEquivalentOutputNumber>
145  </LEDWizEquivalentOutput>
146  <LEDWizEquivalentOutput>
147  <OutputName>LedWiz 01\LedWiz 01.08</OutputName>
148  <LedWizEquivalentOutputNumber>8</LedWizEquivalentOutputNumber>
149  </LEDWizEquivalentOutput>
150  <LEDWizEquivalentOutput>
151  <OutputName>LedWiz 01\LedWiz 01.09</OutputName>
152  <LedWizEquivalentOutputNumber>9</LedWizEquivalentOutputNumber>
153  </LEDWizEquivalentOutput>
154  <LEDWizEquivalentOutput>
155  <OutputName>LedWiz 01\LedWiz 01.10</OutputName>
156  <LedWizEquivalentOutputNumber>10</LedWizEquivalentOutputNumber>
157  </LEDWizEquivalentOutput>
158  <LEDWizEquivalentOutput>
159  <OutputName>LedWiz 01\LedWiz 01.11</OutputName>
160  <LedWizEquivalentOutputNumber>11</LedWizEquivalentOutputNumber>
161  </LEDWizEquivalentOutput>
162  <LEDWizEquivalentOutput>
163  <OutputName>LedWiz 01\LedWiz 01.12</OutputName>
164  <LedWizEquivalentOutputNumber>12</LedWizEquivalentOutputNumber>
165  </LEDWizEquivalentOutput>
166  <LEDWizEquivalentOutput>
167  <OutputName>LedWiz 01\LedWiz 01.13</OutputName>
168  <LedWizEquivalentOutputNumber>13</LedWizEquivalentOutputNumber>
169  </LEDWizEquivalentOutput>
170  <LEDWizEquivalentOutput>
171  <OutputName>LedWiz 01\LedWiz 01.14</OutputName>
172  <LedWizEquivalentOutputNumber>14</LedWizEquivalentOutputNumber>
173  </LEDWizEquivalentOutput>
174  <LEDWizEquivalentOutput>
175  <OutputName>LedWiz 01\LedWiz 01.15</OutputName>
176  <LedWizEquivalentOutputNumber>15</LedWizEquivalentOutputNumber>
177  </LEDWizEquivalentOutput>
178  <LEDWizEquivalentOutput>
179  <OutputName>LedWiz 01\LedWiz 01.16</OutputName>
180  <LedWizEquivalentOutputNumber>16</LedWizEquivalentOutputNumber>
181  </LEDWizEquivalentOutput>
182  <LEDWizEquivalentOutput>
183  <OutputName>LedWiz 01\LedWiz 01.17</OutputName>
184  <LedWizEquivalentOutputNumber>17</LedWizEquivalentOutputNumber>
185  </LEDWizEquivalentOutput>
186  <LEDWizEquivalentOutput>
187  <OutputName>LedWiz 01\LedWiz 01.18</OutputName>
188  <LedWizEquivalentOutputNumber>18</LedWizEquivalentOutputNumber>
189  </LEDWizEquivalentOutput>
190  <LEDWizEquivalentOutput>
191  <OutputName>LedWiz 01\LedWiz 01.19</OutputName>
192  <LedWizEquivalentOutputNumber>19</LedWizEquivalentOutputNumber>
193  </LEDWizEquivalentOutput>
194  <LEDWizEquivalentOutput>
195  <OutputName>LedWiz 01\LedWiz 01.20</OutputName>
196  <LedWizEquivalentOutputNumber>20</LedWizEquivalentOutputNumber>
197  </LEDWizEquivalentOutput>
198  <LEDWizEquivalentOutput>
199  <OutputName>LedWiz 01\LedWiz 01.21</OutputName>
200  <LedWizEquivalentOutputNumber>21</LedWizEquivalentOutputNumber>
201  </LEDWizEquivalentOutput>
202  <LEDWizEquivalentOutput>
203  <OutputName>LedWiz 01\LedWiz 01.22</OutputName>
204  <LedWizEquivalentOutputNumber>22</LedWizEquivalentOutputNumber>
205  </LEDWizEquivalentOutput>
206  <LEDWizEquivalentOutput>
207  <OutputName>LedWiz 01\LedWiz 01.23</OutputName>
208  <LedWizEquivalentOutputNumber>23</LedWizEquivalentOutputNumber>
209  </LEDWizEquivalentOutput>
210  <LEDWizEquivalentOutput>
211  <OutputName>LedWiz 01\LedWiz 01.24</OutputName>
212  <LedWizEquivalentOutputNumber>24</LedWizEquivalentOutputNumber>
213  </LEDWizEquivalentOutput>
214  <LEDWizEquivalentOutput>
215  <OutputName>LedWiz 01\LedWiz 01.25</OutputName>
216  <LedWizEquivalentOutputNumber>25</LedWizEquivalentOutputNumber>
217  </LEDWizEquivalentOutput>
218  <LEDWizEquivalentOutput>
219  <OutputName>LedWiz 01\LedWiz 01.26</OutputName>
220  <LedWizEquivalentOutputNumber>26</LedWizEquivalentOutputNumber>
221  </LEDWizEquivalentOutput>
222  <LEDWizEquivalentOutput>
223  <OutputName>LedWiz 01\LedWiz 01.27</OutputName>
224  <LedWizEquivalentOutputNumber>27</LedWizEquivalentOutputNumber>
225  </LEDWizEquivalentOutput>
226  <LEDWizEquivalentOutput>
227  <OutputName>LedWiz 01\LedWiz 01.28</OutputName>
228  <LedWizEquivalentOutputNumber>28</LedWizEquivalentOutputNumber>
229  </LEDWizEquivalentOutput>
230  <LEDWizEquivalentOutput>
231  <OutputName>LedWiz 01\LedWiz 01.29</OutputName>
232  <LedWizEquivalentOutputNumber>29</LedWizEquivalentOutputNumber>
233  </LEDWizEquivalentOutput>
234  <LEDWizEquivalentOutput>
235  <OutputName>LedWiz 01\LedWiz 01.30</OutputName>
236  <LedWizEquivalentOutputNumber>30</LedWizEquivalentOutputNumber>
237  </LEDWizEquivalentOutput>
238  <LEDWizEquivalentOutput>
239  <OutputName>LedWiz 01\LedWiz 01.31</OutputName>
240  <LedWizEquivalentOutputNumber>31</LedWizEquivalentOutputNumber>
241  </LEDWizEquivalentOutput>
242  <LEDWizEquivalentOutput>
243  <OutputName>LedWiz 01\LedWiz 01.32</OutputName>
244  <LedWizEquivalentOutputNumber>32</LedWizEquivalentOutputNumber>
245  </LEDWizEquivalentOutput>
246  </Outputs>
247  <LedWizNumber>1</LedWizNumber>
248  </LEDWizEquivalent>
249  </Toys>
250  <Effects />
251 
252 
253  <Colors>
254  <Color>
255  <Name>Black</Name>
256  <HexColor>#000000</HexColor>
257  </Color>
258  <Color>
259  <Name>Red</Name>
260  <HexColor>#FF0000</HexColor>
261  </Color>
262  <Color>
263  <Name>Green</Name>
264  <HexColor>#0000FF</HexColor>
265  </Color>
266  <Color>
267  <Name>Blue</Name>
268  <HexColor>#00FF00</HexColor>
269  </Color>
270  <Color>
271  <Name>White</Name>
272  <HexColor>#FFFFFF</HexColor>
273  </Color>
274  <Color>
275  <Name>Yellow</Name>
276  <HexColor>#FF00FF</HexColor>
277  </Color>
278  <Color>
279  <Name>Orange</Name>
280  <HexColor>#FF0080</HexColor>
281  </Color>
282  <Color>
283  <Name>Cyan</Name>
284  <HexColor>#00FFFF</HexColor>
285  </Color>
286  <Color>
287  <Name>Purple</Name>
288  <HexColor>#40FF00</HexColor>
289  </Color>
290  <Color>
291  <Name>Violet</Name>
292  <HexColor>#80FF00</HexColor>
293  </Color>
294  <Color>
295  <Name>Magenta</Name>
296  <HexColor>#FFFF00</HexColor>
297  </Color>
298  </Colors>
299 </Cabinet>