Whirlwind

Partial

Williams1990SYSTEM-11williams.whirlwind.1990

1 unresolved conflict

  • The Solenoid Table names all eleven of these addresses after playfield features they light -- e.g. 'R Ramp Top/Upr Jets Flashers' (28), 'BP Lightning (L) Flashers' (37) -- implying bulbs mounted on or near the playfield feature itself, and the manual's Solenoid Table 'p'/'bp' bulb-quantity footnotes ('#906 flashlamps... p' for playfield bulbs elsewhere in the same table) draw exactly that playfield/backbox distinction. The retained known-working VPX script implements every one of these eleven addresses purely as a backglass effect: each SolNN(enabled) handler toggles the visibility of an FlSolNN Flasher object, and all eleven FlSol25-FlSol32/FlSol37/FlSol39/FlSol40 objects are confirmed members of the script's BGArr backglass-repositioning array with raw pos_y values far outside the 0-2162 playfield bounds (e.g. FlSol25.pos_y=-902.14825). No playfield coordinate can be derived from this table for any of the eleven addresses. Resolution path: a second retained table, a photograph of an unrestored machine's lower playfield, or the manual's Section 3 wiring diagrams (not transcribed here) showing a distinct playfield connector run for one of these circuits, would settle whether real playfield-mounted bulbs exist alongside (or instead of) the backglass effect this table models. Unresolved. outputs[binding.device=25,26,27,28,29,30,31,32,37,39,40]

Wire it up

what an authoring tool needs first
Bind this ROM
whirl_l3

5 ROM sets resolve to this machine. Clones share the definition unless a hardware difference is listed.

Controller platform
pinmame.system-11

PinMAME already reports logical active state. Do not invert again in the table — normally-closed is a physical fact recorded per switch, not a runtime transform.

Displays
  • 16-character x 2-line alphanumeric display16×2
Address space
Switches
-7–64 (68)
Solenoids
1–50 (50)
Lamps
1–64 (64)
DIP
0–0 (1)
Cabinet & flipper inputs
1cabinet.tilt3cabinet.service4cabinet.coin5cabinet.coin6cabinet.coin7cabinet.tilt8cabinet.service57cabinet.flipper-lane-change58cabinet.flipper-lane-change

Portable roles — the consuming engine maps them to its own input actions.

Playfield

Where each address physically sits. The switch and lamp maps below show the electrical layout — this shows the same devices as the player sees them.

Playfield map

123 placements · 20 stacked · normalised player view · outline is nominal

210 Outhole · 1 Outhole Kicker411 Ball Trough #1 (Left) · 12 Ball Trough #2 (Middle) · 13 Ball Trough #3 (Right) · 2 Shooter Lane Feeder15 Right Return Lane16 Right Outlane17 Left Outlane18 Left Return Lane219 Right Cellar · 40 Right Cellar Arrow220 Left Cellar · 14 Cellar Kickback21 Left Standup222 Left Lock 1 (Lower) · 4 Left Locking Kickback23 Left Lock 2 (Middle)24 Left Lock 3 (Upper)25 Right Standup226 1-Bank Drop Target · 8 1-Bank Drop Target Reset27 3-Bank Drop Target (Lower)228 3-Bank Drop Target (Middle) · 7 3-Bank Drop Target Reset29 3-Bank Drop Target (Top)30 Middle Standup33 Enter Left Ramp234 Left Ramp Score (Top) · 38 Right Loop (Top)35 Left Ramp Score (Bottom)36 Left Loop (Top)37 Left Loop (Bottom)39 Right Loop (Bottom)40 Inner Loop241 Spinner · 64 Spinner342 Right Ramp Down · 3 Right Ramp Lifter · 22 Right Ramp Down243 Top Right Eject · 5 Top Eject44 Right Ramp Score (Top)45 Right Ramp Score (Bottom)247 Left Standup (Right Ramp) · 53 Right Ramp Left Standup48 Right Standup (Right Ramp)349 Left Top Jet Bumper · 17 Left Upper Jet Bumper · 36 Top Jets Left350 Right Top Jet Bumper · 19 Right Upper Jet Bumper · 37 Top Jets Right351 Lower Top Jet Bumper · 21 Top Upper Jet Bumper · 38 Top Jets Bottom352 Left Bottom Jet Bumper · 9 Left Lower Jet Bumper · 33 Bottom Jets Left353 Right Bottom Jet Bumper · 15 Right Lower Jet Bumper · 35 Bottom Jets Right354 Upper Bottom Jet Bumper · 10 Top Lower Jet Bumper · 34 Bottom Jets Top255 Bottom-Left Kicker (Slingshot) · 18 Left Kicker (Slingshot)256 Bottom-Right Kicker (Slingshot) · 20 Right Kicker (Slingshot)59 Ball Shooter Lane60 Left 110 Point61 Right 110 Point13 Diverter16 Lower Playfield / Backbox GI Relay41 Spin Wheels Motor1 Middle Standup9 Left Outlane10 Right Outlane11 Top Drop 50K12 Top Drop 75K13 Top Drop 100K14 Top Drop 150K15 Top Drop Quick16 Top Drop Extra Ball17 S Compass Arrow18 SW Compass Arrow19 W Compass Arrow20 NW Compass Arrow21 N Compass Arrow22 NE Compass Arrow23 E Compass Arrow24 SE Compass Arrow25 Toll 126 Toll 227 Toll 328 Toll 429 Toll 530 Toll 3031 Toll 2032 Toll 1039 Left Cellar Arrow41 Right Ramp Lock42 Right Ramp Double43 Left Ramp Million Plus44 Left Ramp Million45 Left Ramp Release46 Skill Shot Right47 Skill Shot Middle48 Skill Shot Left49 Left Return Lane50 Left Loop51 Left Standup52 Inner Loop Arrow54 Right Ramp Right Standup55 Right Loop56 Right Standup57 Shoot Again58 2X59 3X60 4X61 5X62 6X Lites Extra Ball63 6X Lites Special

Hover a marker to identify it, or click to keep it selected. Numbered markers are several devices in one spot — clicking lists them.

Show
Marker shape
  • emitterlights the playfield58
  • sensorsenses the ball46
  • effectmoves the ball19
  • nStackseveral devices in one spot20
123 devices shown

Not on the playfield22 cabinet or service, 15 virtual, 8 unused, 2 internal nonvisual, 1 dip switch — declared rather than missing.

Coverage

Partial

Real evidence exists, but authoring requirements are still missing or in conflict. Verify before shipping a table.

Catalog Identity
validated
Address Enumeration
validated
Semantic Naming
validated
Physical Wiring
validated
Mechanisms
validated
Variant Coverage
validated
Recreation Knowledge
validated
Still missing · 3
PolaritySpatial PlacementUnresolved Conflicts

Switches

The addresses PinMAME reports as closed. Numbers are the public API values, not matrix hardware pins.

68 addresses

Switch map

Sequential addresses, grouped in columns of eight.

used unused
 
+0
+1
+2
+3
+4
+5
+6
+7
1–8
9–16
17–24
25–32
33–40
41–48
49–56
57–64
Hover or tap an address to identify it.

Outside the matrix-7, -6, -5, -4 — dedicated, diagnostic or flipper-column addresses. See the table below.

68 shown
# Name Device ID Role Wiring Evidence
-7
Advance (Diagnostic)
Button
switch.diagnostic-7
service.advance
validated
-6
Up/Down (Diagnostic)
Button
switch.diagnostic-6
service.updown
validated
-5
CPU Diagnostic
Button
switch.diagnostic-5
service.cpu-diag
validated
-4
Sound Diagnostic
Button
switch.diagnostic-4
service.sound-diag
validated
1
Plumb Bob Tilt
Tilt
switch.matrix-1
cabinet.tilt
1J8-1GRN-BRN
1J10-9WHT-BRN
System 11B CPU board
validated
2
C Side Power A/C Relay
Other
switch.matrix-2
internal.ac-relay-feedback
1J8-1GRN-BRN
1J10-8WHT-RED
System 11B CPU board
validated
3
Game Start (Credit) Button
Button
switch.matrix-3
cabinet.service
1J8-1GRN-BRN
1J10-7WHT-ORN
System 11B CPU board
validated
4
Right Coin Chute (USA)
Other
switch.matrix-4
cabinet.coin
1J8-1GRN-BRN
1J10-6WHT-YEL
System 11B CPU board
validated
5
Center Coin Chuteopt
Other
switch.matrix-5
cabinet.coin
1J8-1GRN-BRN
1J10-5WHT-GRN
System 11B CPU board
validated
6
Left Coin Chute (USA)
Other
switch.matrix-6
cabinet.coin
1J8-1GRN-BRN
1J10-3WHT-BLU
System 11B CPU board
validated
7
Slam Tilt
Tilt
switch.matrix-7
cabinet.tilt
1J8-1GRN-BRN
1J10-2WHT-VIO
System 11B CPU board
validated
8
High Score Reset
Button
switch.matrix-8
cabinet.service
1J8-1GRN-BRN
1J10-1WHT-GRY
System 11B CPU board
validated
9
Not Used (Matrix Position 9)
switch.matrix-9
1J8-2GRN-RED
1J10-9WHT-BRN
System 11B CPU board
validated
10
Outhole
Microswitch
switch.matrix-10
1J8-2GRN-RED
1J10-8WHT-RED
System 11B CPU board
validated
11
Ball Trough #1 (Left)
Microswitch
switch.matrix-11
1J8-2GRN-RED
1J10-7WHT-ORN
System 11B CPU board
validated
12
Ball Trough #2 (Middle)
Microswitch
switch.matrix-12
1J8-2GRN-RED
1J10-6WHT-YEL
System 11B CPU board
validated
13
Ball Trough #3 (Right)
Microswitch
switch.matrix-13
1J8-2GRN-RED
1J10-5WHT-GRN
System 11B CPU board
validated
14
Not Used (Matrix Position 14)
switch.matrix-14
1J8-2GRN-RED
1J10-3WHT-BLU
System 11B CPU board
validated
15
Right Return Lane
Microswitch
switch.matrix-15
1J8-2GRN-RED
1J10-2WHT-VIO
System 11B CPU board
validated
16
Right Outlane
Microswitch
switch.matrix-16
1J8-2GRN-RED
1J10-1WHT-GRY
System 11B CPU board
validated
17
Left Outlane
Microswitch
switch.matrix-17
1J8-3GRN-ORN
1J10-9WHT-BRN
System 11B CPU board
validated
18
Left Return Lane
Microswitch
switch.matrix-18
1J8-3GRN-ORN
1J10-8WHT-RED
System 11B CPU board
validated
19
Right Cellar
Microswitch
switch.matrix-19
1J8-3GRN-ORN
1J10-7WHT-ORN
System 11B CPU board
validated
20
Left Cellar
Microswitch
switch.matrix-20
1J8-3GRN-ORN
1J10-6WHT-YEL
System 11B CPU board
validated
21
Left Standup
Microswitch
switch.matrix-21
1J8-3GRN-ORN
1J10-5WHT-GRN
System 11B CPU board
validated
22
Left Lock 1 (Lower)
Microswitch
switch.matrix-22
1J8-3GRN-ORN
1J10-3WHT-BLU
System 11B CPU board
validated
23
Left Lock 2 (Middle)
Microswitch
switch.matrix-23
1J8-3GRN-ORN
1J10-2WHT-VIO
System 11B CPU board
validated
24
Left Lock 3 (Upper)
Microswitch
switch.matrix-24
1J8-3GRN-ORN
1J10-1WHT-GRY
System 11B CPU board
validated
25
Right Standup
Microswitch
switch.matrix-25
1J8-4GRN-YEL
1J10-9WHT-BRN
System 11B CPU board
validated
26
1-Bank Drop Target
Opto
switch.matrix-26
1J8-4GRN-YEL
1J10-8WHT-RED
System 11B CPU board
validated
27
3-Bank Drop Target (Lower)
Opto
switch.matrix-27
1J8-4GRN-YEL
1J10-7WHT-ORN
System 11B CPU board
validated
28
3-Bank Drop Target (Middle)
Opto
switch.matrix-28
1J8-4GRN-YEL
1J10-6WHT-YEL
System 11B CPU board
validated
29
3-Bank Drop Target (Top)
Opto
switch.matrix-29
1J8-4GRN-YEL
1J10-5WHT-GRN
System 11B CPU board
validated
30
Middle Standup
Microswitch
switch.matrix-30
1J8-4GRN-YEL
1J10-3WHT-BLU
System 11B CPU board
validated
31
Not Used (Matrix Position 31)
switch.matrix-31
1J8-4GRN-YEL
1J10-2WHT-VIO
System 11B CPU board
validated
32
Not Used (Matrix Position 32)
switch.matrix-32
1J8-4GRN-YEL
1J10-1WHT-GRY
System 11B CPU board
validated
33
Enter Left Ramp
Microswitch
switch.matrix-33
1J8-5GRN-BLK
1J10-9WHT-BRN
System 11B CPU board
validated
34
Left Ramp Score (Top)
Microswitch
switch.matrix-34
1J8-5GRN-BLK
1J10-8WHT-RED
System 11B CPU board
validated
35
Left Ramp Score (Bottom)
Microswitch
switch.matrix-35
1J8-5GRN-BLK
1J10-7WHT-ORN
System 11B CPU board
validated
36
Left Loop (Top)
Microswitch
switch.matrix-36
1J8-5GRN-BLK
1J10-6WHT-YEL
System 11B CPU board
validated
37
Left Loop (Bottom)
Microswitch
switch.matrix-37
1J8-5GRN-BLK
1J10-5WHT-GRN
System 11B CPU board
validated
38
Right Loop (Top)
Microswitch
switch.matrix-38
1J8-5GRN-BLK
1J10-3WHT-BLU
System 11B CPU board
validated
39
Right Loop (Bottom)
Microswitch
switch.matrix-39
1J8-5GRN-BLK
1J10-2WHT-VIO
System 11B CPU board
validated
40
Inner Loop
Microswitch
switch.matrix-40
1J8-5GRN-BLK
1J10-1WHT-GRY
System 11B CPU board
validated
41
Spinner
Microswitch
switch.matrix-41
1J8-7GRN-BLU
1J10-9WHT-BRN
System 11B CPU board
validated
42
Right Ramp Down
Microswitch
switch.matrix-42
1J8-7GRN-BLU
1J10-8WHT-RED
System 11B CPU board
validated
43
Top Right Eject
Microswitch
switch.matrix-43
1J8-7GRN-BLU
1J10-7WHT-ORN
System 11B CPU board
validated
44
Right Ramp Score (Top)
Microswitch
switch.matrix-44
1J8-7GRN-BLU
1J10-6WHT-YEL
System 11B CPU board
validated
45
Right Ramp Score (Bottom)
Microswitch
switch.matrix-45
1J8-7GRN-BLU
1J10-5WHT-GRN
System 11B CPU board
validated
46
Not Used (Matrix Position 46)
switch.matrix-46
1J8-7GRN-BLU
1J10-3WHT-BLU
System 11B CPU board
validated
47
Left Standup (Right Ramp)
Microswitch
switch.matrix-47
1J8-7GRN-BLU
1J10-2WHT-VIO
System 11B CPU board
validated
48
Right Standup (Right Ramp)
Microswitch
switch.matrix-48
1J8-7GRN-BLU
1J10-1WHT-GRY
System 11B CPU board
validated
49
Left Top Jet Bumper
Leaf
switch.matrix-49
1J8-8GRN-VIO
1J10-9WHT-BRN
System 11B CPU board
validated
50
Right Top Jet Bumper
Leaf
switch.matrix-50
1J8-8GRN-VIO
1J10-8WHT-RED
System 11B CPU board
validated
51
Lower Top Jet Bumper
Leaf
switch.matrix-51
1J8-8GRN-VIO
1J10-7WHT-ORN
System 11B CPU board
validated
52
Left Bottom Jet Bumper
Leaf
switch.matrix-52
1J8-8GRN-VIO
1J10-6WHT-YEL
System 11B CPU board
validated
53
Right Bottom Jet Bumper
Leaf
switch.matrix-53
1J8-8GRN-VIO
1J10-5WHT-GRN
System 11B CPU board
validated
54
Upper Bottom Jet Bumper
Leaf
switch.matrix-54
1J8-8GRN-VIO
1J10-3WHT-BLU
System 11B CPU board
validated
55
Bottom-Left Kicker (Slingshot)
Leaf
switch.matrix-55
1J8-8GRN-VIO
1J10-2WHT-VIO
System 11B CPU board
validated
56
Bottom-Right Kicker (Slingshot)
Leaf
switch.matrix-56
1J8-8GRN-VIO
1J10-1WHT-GRY
System 11B CPU board
validated
57
Right Flipper Lane Change
Opto
switch.matrix-57
cabinet.flipper-lane-change
1J8-9GRN-GRY
1J10-9WHT-BRN
System 11B CPU board
validated
58
Left Flipper Lane Change
Opto
switch.matrix-58
cabinet.flipper-lane-change
1J8-9GRN-GRY
1J10-8WHT-RED
System 11B CPU board
validated
59
Ball Shooter Lane
Microswitch
switch.matrix-59
1J8-9GRN-GRY
1J10-7WHT-ORN
System 11B CPU board
validated
60
Left 110 Point
Microswitch
switch.matrix-60
1J8-9GRN-GRY
1J10-6WHT-YEL
System 11B CPU board
validated
61
Right 110 Point
Microswitch
switch.matrix-61
1J8-9GRN-GRY
1J10-5WHT-GRN
System 11B CPU board
validated
62
Not Used (Matrix Position 62)
switch.matrix-62
1J8-9GRN-GRY
1J10-3WHT-BLU
System 11B CPU board
validated
63
Not Used (Matrix Position 63)
switch.matrix-63
1J8-9GRN-GRY
1J10-2WHT-VIO
System 11B CPU board
validated
64
Not Used (Matrix Position 64)
switch.matrix-64
1J8-9GRN-GRY
1J10-1WHT-GRY
System 11B CPU board
validated

Controlled devices

Everything the ROM can energise, grouped the way a table author builds it.

Coils, magnets & motors

22
22 shown
# Name Device ID Kind Role Wiring Evidence
1
Outhole Kicker
device.outhole-kicker Coil
Q33
System 11B CPU board
validated
2
Shooter Lane Feeder
device.shooter-lane-feeder Coil
Q25
System 11B CPU board
validated
3
Right Ramp Lifter
device.right-ramp-lifter Coil
Q32
System 11B CPU board
validated
4
Left Locking Kickback
device.left-locking-kickback Coil
Q24
System 11B CPU board
validated
5
Top Eject
device.top-eject Coil
Q31
System 11B CPU board
validated
6
Knocker
device.knocker Coil
cabinet.knocker
Q23
System 11B CPU board
validated
7
3-Bank Drop Target Reset
device.3-bank-drop-target-reset Coil
Q30
System 11B CPU board
validated
8
1-Bank Drop Target Reset
device.1-bank-drop-target-reset Coil
Q22
System 11B CPU board
validated
9
Left Lower Jet Bumper
device.left-lower-jet-bumper Coil
Q17
System 11B CPU board
validated
10
Top Lower Jet Bumper
device.top-lower-jet-bumper Coil
Q9
System 11B CPU board
validated
12
A/C Select Relay
device.a-c-select-relay Relay
internal.ac-select-relay
Q8
System 11B CPU board
validated
13
Diverter
device.diverter Coil
Q15
System 11B CPU board
validated
14
Cellar Kickback
device.cellar-kickback Coil
Q7
System 11B CPU board
validated
15
Right Lower Jet Bumper
device.right-lower-jet-bumper Coil
Q14
System 11B CPU board
validated
17
Left Upper Jet Bumper
device.left-upper-jet-bumper Coil
Q75
System 11B CPU board
validated
18
Left Kicker (Slingshot)
device.left-kicker-slingshot Coil
Q71
System 11B CPU board
validated
19
Right Upper Jet Bumper
device.right-upper-jet-bumper Coil
Q73
System 11B CPU board
validated
20
Right Kicker (Slingshot)
device.right-kicker-slingshot Coil
Q69
System 11B CPU board
validated
21
Top Upper Jet Bumper
device.top-upper-jet-bumper Coil
Q77
System 11B CPU board
validated
22
Right Ramp Down
device.right-ramp-down Coil
Q79
System 11B CPU board
validated
38
Blower Motor (Fan)
device.blower-motor-fan Motor
cabinet.fan
Q4
Sound Overlay Solenoid Board
validated
41
Spin Wheels Motor
device.spin-wheels-motor Motor
Q13
Sound Overlay Solenoid Board
validated

Flashers

11
11 shown
# Name Device ID Wiring Evidence
25
Bottom Right Flasher
device.bottom-right-flasher
Q33
System 11B CPU board
validated
26
Spinner Flasher
device.spinner-flasher
Q25
System 11B CPU board
validated
27
Right Ramp Top/Upper Jets Flashers
device.right-ramp-top-upper-jets-flashers
Q32
System 11B CPU board
validated
28
Right Ramp Upper Middle/Million Flashers
device.right-ramp-upper-middle-million-flashers
Q24
System 11B CPU board
validated
29
Ramp Lower Middle/Lower Jets Flashers
device.ramp-lower-middle-lower-jets-flashers
Q31
System 11B CPU board
validated
30
Right Ramp Bottom Flasher
device.right-ramp-bottom-flasher
Q23
System 11B CPU board
validated
31
3-Bank Target/Middle Target Flashers
device.3-bank-target-middle-target-flashers
Q30
System 11B CPU board
validated
32
Million+/Compass Flashers
device.million-compass-flashers
Q22
System 11B CPU board
validated
37
BP Lightning (Left) Flashers
device.bp-lightning-left-flashers
Q1
Sound Overlay Solenoid Board
validated
39
BP Thunder (Middle) Flasher
device.bp-thunder-middle-flasher
Q7
Sound Overlay Solenoid Board
validated
40
BP Thunder (Right) Flashers
device.bp-thunder-right-flashers
Q10
Sound Overlay Solenoid Board
validated

Lamps

64

Lamp map

Sequential addresses, grouped in columns of eight.

used unused
 
+0
+1
+2
+3
+4
+5
+6
+7
1–8
9–16
17–24
25–32
33–40
41–48
49–56
57–64
Hover or tap an address to identify it.
64 shown
# Name Device ID Role Wiring Evidence
1
Middle Standup
lamp.matrix-1
column driver Q66
System 11B CPU board
validated
2
Upper Jets On
lamp.backglass-reel-2
cabinet.backglass-reel
System 11B CPU board
validated
3
250K
lamp.backglass-reel-3
cabinet.backglass-reel
System 11B CPU board
validated
4
Extra Ball On
lamp.backglass-reel-4
cabinet.backglass-reel
System 11B CPU board
validated
5
3-Bank 100K
lamp.backglass-reel-5
cabinet.backglass-reel
System 11B CPU board
validated
6
500K
lamp.backglass-reel-6
cabinet.backglass-reel
System 11B CPU board
validated
7
Lite Million
lamp.backglass-reel-7
cabinet.backglass-reel
System 11B CPU board
validated
8
Lower Jets On
lamp.backglass-reel-8
cabinet.backglass-reel
System 11B CPU board
validated
9
Left Outlane
lamp.matrix-9
column driver Q64
System 11B CPU board
validated
10
Right Outlane
lamp.matrix-10
column driver Q64
System 11B CPU board
validated
11
Top Drop 50K
lamp.matrix-11
column driver Q64
System 11B CPU board
validated
12
Top Drop 75K
lamp.matrix-12
column driver Q64
System 11B CPU board
validated
13
Top Drop 100K
lamp.matrix-13
column driver Q64
System 11B CPU board
validated
14
Top Drop 150K
lamp.matrix-14
column driver Q64
System 11B CPU board
validated
15
Top Drop Quick
lamp.matrix-15
column driver Q64
System 11B CPU board
validated
16
Top Drop Extra Ball
lamp.matrix-16
column driver Q64
System 11B CPU board
validated
17
S Compass Arrow
lamp.matrix-17
column driver Q62
System 11B CPU board
validated
18
SW Compass Arrow
lamp.matrix-18
column driver Q62
System 11B CPU board
validated
19
W Compass Arrow
lamp.matrix-19
column driver Q62
System 11B CPU board
validated
20
NW Compass Arrow
lamp.matrix-20
column driver Q62
System 11B CPU board
validated
21
N Compass Arrow
lamp.matrix-21
column driver Q62
System 11B CPU board
validated
22
NE Compass Arrow
lamp.matrix-22
column driver Q62
System 11B CPU board
validated
23
E Compass Arrow
lamp.matrix-23
column driver Q62
System 11B CPU board
validated
24
SE Compass Arrow
lamp.matrix-24
column driver Q62
System 11B CPU board
validated
25
Toll 1
lamp.matrix-25
column driver Q60
System 11B CPU board
validated
26
Toll 2
lamp.matrix-26
column driver Q60
System 11B CPU board
validated
27
Toll 3
lamp.matrix-27
column driver Q60
System 11B CPU board
validated
28
Toll 4
lamp.matrix-28
column driver Q60
System 11B CPU board
validated
29
Toll 5
lamp.matrix-29
column driver Q60
System 11B CPU board
validated
30
Toll 30
lamp.matrix-30
column driver Q60
System 11B CPU board
validated
31
Toll 20
lamp.matrix-31
column driver Q60
System 11B CPU board
validated
32
Toll 10
lamp.matrix-32
column driver Q60
System 11B CPU board
validated
33
Bottom Jets Left
lamp.matrix-33
column driver Q58
System 11B CPU board
validated
34
Bottom Jets Top
lamp.matrix-34
column driver Q58
System 11B CPU board
validated
35
Bottom Jets Right
lamp.matrix-35
column driver Q58
System 11B CPU board
validated
36
Top Jets Left
lamp.matrix-36
column driver Q58
System 11B CPU board
validated
37
Top Jets Right
lamp.matrix-37
column driver Q58
System 11B CPU board
validated
38
Top Jets Bottom
lamp.matrix-38
column driver Q58
System 11B CPU board
validated
39
Left Cellar Arrow
lamp.matrix-39
column driver Q58
System 11B CPU board
validated
40
Right Cellar Arrow
lamp.matrix-40
column driver Q58
System 11B CPU board
validated
41
Right Ramp Lock
lamp.matrix-41
column driver Q56
System 11B CPU board
validated
42
Right Ramp Double
lamp.matrix-42
column driver Q56
System 11B CPU board
validated
43
Left Ramp Million Plus
lamp.matrix-43
column driver Q56
System 11B CPU board
validated
44
Left Ramp Million
lamp.matrix-44
column driver Q56
System 11B CPU board
validated
45
Left Ramp Release
lamp.matrix-45
column driver Q56
System 11B CPU board
validated
46
Skill Shot Right
lamp.matrix-46
column driver Q56
System 11B CPU board
validated
47
Skill Shot Middle
lamp.matrix-47
column driver Q56
System 11B CPU board
validated
48
Skill Shot Left
lamp.matrix-48
column driver Q56
System 11B CPU board
validated
49
Left Return Lane
lamp.matrix-49
column driver Q54
System 11B CPU board
validated
50
Left Loop
lamp.matrix-50
column driver Q54
System 11B CPU board
validated
51
Left Standup
lamp.matrix-51
column driver Q54
System 11B CPU board
validated
52
Inner Loop Arrow
lamp.matrix-52
column driver Q54
System 11B CPU board
validated
53
Right Ramp Left Standup
lamp.matrix-53
column driver Q54
System 11B CPU board
validated
54
Right Ramp Right Standup
lamp.matrix-54
column driver Q54
System 11B CPU board
validated
55
Right Loop
lamp.matrix-55
column driver Q54
System 11B CPU board
validated
56
Right Standup
lamp.matrix-56
column driver Q54
System 11B CPU board
validated
57
Shoot Again
lamp.matrix-57
column driver Q52
System 11B CPU board
validated
58
2X
lamp.matrix-58
column driver Q52
System 11B CPU board
validated
59
3X
lamp.matrix-59
column driver Q52
System 11B CPU board
validated
60
4X
lamp.matrix-60
column driver Q52
System 11B CPU board
validated
61
5X
lamp.matrix-61
column driver Q52
System 11B CPU board
validated
62
6X Lites Extra Ball
lamp.matrix-62
column driver Q52
System 11B CPU board
validated
63
6X Lites Special
lamp.matrix-63
column driver Q52
System 11B CPU board
validated
64
Spinner
lamp.matrix-64
column driver Q52
System 11B CPU board
validated

General illumination

2
2 shown
# Name Device ID Role Wiring Evidence
11
Upper Playfield GI Relay
device.upper-playfield-gi-relay
gi.upper-playfield
Q16
System 11B CPU board
validated
16
Lower Playfield / Backbox GI Relay
device.lower-playfield-backbox-gi-relay
gi.lower-playfield-and-backbox
Q6
System 11B CPU board
validated

Virtual & other outputs

15
15 shown
# Name Device ID Role Evidence
23
PinMAME Flipper/Switched-Solenoid Enable State
device.pinmame-flipper-switched-solenoid-enable-state
internal.game-on-enable
validated
24
Unassigned Solenoid Slot 24
device.unassigned-solenoid-slot-24
internal.unused-platform-slot
validated
33
Unused Upper Flipper Coil 33
device.unused-upper-flipper-coil-33
internal.unused-platform-slot
validated
34
Unused Upper Flipper Coil 34
device.unused-upper-flipper-coil-34
internal.unused-platform-slot
validated
35
Unused Upper Flipper Coil 35
device.unused-upper-flipper-coil-35
internal.unused-platform-slot
validated
36
Unused Upper Flipper Coil 36
device.unused-upper-flipper-coil-36
internal.unused-platform-slot
validated
42
Unused Sound Overlay Board Slot 42
device.unused-sound-overlay-board-slot-42
internal.unused-platform-slot
validated
43
Unused Sound Overlay Board Slot 43
device.unused-sound-overlay-board-slot-43
internal.unused-platform-slot
validated
44
Unused Sound Overlay Board Slot 44
device.unused-sound-overlay-board-slot-44
internal.unused-platform-slot
validated
45
Synthetic Lower Right Flipper Power
device.synthetic-lower-right-flipper-power
internal.synthetic-flipper
validated
46
Synthetic Lower Right Flipper Hold
device.synthetic-lower-right-flipper-hold
internal.synthetic-flipper
validated
47
Synthetic Lower Left Flipper Power
device.synthetic-lower-left-flipper-power
internal.synthetic-flipper
validated
48
Synthetic Lower Left Flipper Hold
device.synthetic-lower-left-flipper-hold
internal.synthetic-flipper
validated
49
PinMAME Simulator Ball-Shooter Channel
device.pinmame-simulator-ball-shooter-channel
internal.unused-platform-slot
validated
50
Unassigned Solenoid Slot 50
device.unassigned-solenoid-slot-50
internal.unused-platform-slot
validated

Configuration & other inputs

1 shown
# Name Device ID Evidence
0
Country Jumper (USA/Germany)
Dip
switch.dip-0 validated

Mechanisms

Logical assemblies with their actuators, sensors and observed behaviour. Click a chip to jump to the address it refers to.

Three motorized spinning discs

mechanism.spinning-discs

Motorized

A single motor (Wheels Drive Assembly, p/n D-13199) drives a shaft/pinion/gear train (72T/84T/115T gears) turning three playfield discs (LeftWheel, MiddleWheel, RightWheel) simultaneously through solenoid 41. The retained script spins the middle disc opposite sense (+50) from the two outer discs (-50) and coasts the assembly down (SpinnerStep decays by 0.05/tick) rather than stopping instantly when the solenoid de-energizes. The Wheels Drive Assembly parts list lists no switch, opto, or sensor part of any kind, and no Controller.Switch call anywhere in the retained script is associated with any of the three discs or their cvpmTurntable collision helpers -- both independent sources agree this is a pure motor-driven obstacle with no position or ball-pass feedback.

Backbox knocker

mechanism.knocker

Other

Solenoid 6 raps a knocker coil mounted in the backbox to give an audible award/replay signal; no switch is associated with it.

Drives

Cabinet blower fan

mechanism.fan

Motorized

A blower motor mounted atop the backbox (driven via the Sound Overlay Solenoid Board and a Triac board, p/n 14-7956) with no associated switch. The retained script only toggles a backglass glow cue (FlSol38) and starts/stops a 'Topper_Fan' sound effect; no fan mesh exists anywhere in the retained table's extraction.

Four-position ball trough and outhole

mechanism.trough

Kicker

A ball draining from the playfield lands in the outhole (switch 10) and is kicked into the trough proper (solenoid 1, Outhole Kicker); up to three balls queue at trough positions 1-3 (switches 11-13); solenoid 2 (Shooter Lane Feeder) ejects the lead ball into the shooter lane through the BallRelease kicker. The retained script manages all four switches through its cvpmBallStack helper (bsTrough.InitSw 10,11,12,13) with no individual per-position trigger objects.

Left/right cellar subway

mechanism.cellar

Kicker

A ball entering the right cellar opening (switch 19, kCellarRight) or left cellar opening (switch 20, kCellarLeft) travels through a below-playfield subway; solenoid 14 (Cellar Kickback) ejects it back to the playfield through the left cellar exit (kCellarLeft, exit speed/angle 157/16 per the retained script's cvpmTrough helper).

Three-position left ball lock

mechanism.ball-lock

Kicker

A locking kickback assembly (p/n B-13269) holds up to three balls in a row along the left playfield edge, sensed by switches 22 (lower), 23 (middle), and 24 (upper). Solenoid 4 (Left Locking Kickback) releases the chain by firing Kicker3, then (on Kicker3's own hit event) Kicker2, then Kicker1 in sequence, walking a ball down from the top position to the exit.

Top-right saucer/eject hole

mechanism.top-saucer

Kicker

A ball resting on switch 43 (Top Right Eject, the saucer's own named kicker object) is kicked back to the playfield by solenoid 5 (Top Eject) through the retained script's cvpmBallStack saucer helper.

Right ramp lifter/diverter

mechanism.right-ramp

Diverter

Solenoid 3 (Right Ramp Lifter) raises the right ramp entry into its 'up' geometry (RightRampUp visible and collidable, RightRampDown hidden) and solenoid 22 (Right Ramp Down, a 'special' solenoid) reverses it; the retained script tracks which geometry is active directly via Controller.Switch(42), matching switch 42's real printed part (5647-12001-00) even though no separate VPX trigger object senses it. Solenoid 13 (Diverter) independently rotates a playfield diverter (25deg/0deg) that steers ball flow near the ramp entrance.

Single and 3-bank opto drop targets

mechanism.drop-targets

Drop Target Bank

A single drop target (switch 26, opto-sensed via the 1-Bank Opto Board C-13311) and a 3-bank drop target group (switches 27-29, opto-sensed via the 3-Bank Opto Board C-13205-1) are reset by solenoids 8 and 7 respectively. The retained script's dtT/dtL drop-target helper objects fire Hit(1)/Hit(2)/Hit(3) as each bank target falls.

Six-bumper jet nest (two triangular clusters)

mechanism.jet-bumpers

Other

Two clusters of three jet bumpers each: an upper cluster near the top of the playfield (switches 49-51, solenoids 17/19/21) and a lower cluster nearer the cellar (switches 52-54, solenoids 9/15/10). Each bumper's coil and switch are the same physical assembly (B-12030-2).

Bottom-left and bottom-right slingshot kickers

mechanism.slingshots

Other

Two slingshot kickers (BL/BR Kicker, each a paired kicker-actuating switch assembly per the switch-locations *** footnote) sensed at switches 55/56 and fired by solenoids 18/20. The retained script's LeftSlingShot_Slingshot/RightSlingShot_Slingshot handlers play a multi-frame flip-book animation on each kick.

Three cabinet-fired flippers (lower-left, lower-right, upper-right)

mechanism.flippers

Other

Three physical flipper assemblies (Lower Left C-11626-L-3, Lower Right C-11626-R-3, Upper Right C-11626-R-3; no upper-left flipper exists). Pinned PinMAME declares FLIP_SWNO(58,57) with no FLIP_SOL bit: the cabinet flipper buttons (SW-10A-48 left, SW-1010A-13 right) fire their coils directly through a relay/fuse circuit with zero CPU involvement (no public solenoid address corresponds to a real driver-board output), while a separate Backbox Interconnect Board optotransistor pair independently watches the same buttons and reports their state to the CPU at matrix addresses 57 (right) and 58 (left) for the 'Flipper Lane Change' feature. The retained script's SolRFlipper handler rotates both RightFlipper (lower) and RightFlipper1 (upper) together, confirming the upper-right flipper shares the lower-right flipper's coil/button rather than having an independent one.

Direct wiring

Connections that exist in copper, not in the ROM. These fire whether or not a game is running.

Recreation notes

Working knowledge that has no schema field yet — edition differences, tuning values, pitfalls.

Coverage
partial - complete physical I/O inventory, System 11 bindings, mechanism causality, driver-variant boundary, and recreation behavior validated; spatial placement candidate pending two unresolved gaps (see below)

Identity and evidence precedence

This is the Williams System 11B physical product released 1990. It covers the five-driver whirl_* clone tree: whirl_l3 (parent, US/Canadian production LA-3), whirl_l2 (LU-2 firmware revision), and whirl_g1/whirl_g2/whirl_g3 (German-localized LG-1/LG-2/LG-3 firmware revisions). All five share one static whirlGameData/init_whirl pair (input_ports_whirl aliases the shared input_ports_s11 table), so every driver is physically identical.

Evidence precedence for this definition: the retained known-working VPX script is runtime and mechanism-causality ground truth; the Williams operations manual controls physical construction, part numbers, wiring, and device presence; pinned PinMAME controls controller generation, public address topology, and per-game GI/bulb-type metadata; the retained VPX geometry supplies normalized coordinates. Unlike several prior games in this project, this manual carries a genuine OCR text layer, but every multi-column table used here was still read from 300 dpi rendered pages and transcribed by hand into external:pinmame-review-artifacts/whirlwind/manual-transcription.md -- the text layer interleaves columns badly and is never treated as authoritative for tabular data.

Controller platform and address topology: System 11, not WPC

This is the first System 11 machine curated in this project, and it introduces controllers/pinmame/system-11.json, derived entirely from pinned PinMAME source (src/wpc/s11.c, s11.h, s11games.c, core.h) rather than by analogy with any WPC profile. Four structural facts do not carry over from WPC and must be re-learned for every future System 11 game:

  1. Switches and lamps share one sequential, column-major 1-64 address space with no dedicated-switch namespace. The base PinMAME driver registers core_swSeq2m/core_m2swSeq (n+7, so column=((n-1)/8)+1, row=((n-1)%8)+1) for every generation that does not override it, and s11.c never overrides it (unlike wpc.c's wpc_sw2m, the familiar column-times-ten scheme). s11.c documents this in its own source comment: "S11 is 1-64, convert to 0-64 (+8), i.e. 1=8, 2=9...". Column 1 (public 1-8) is not a separate WPC-style dedicated/coin-door namespace -- it is ordinary matrix column 1, loaded from the shared S11_COMINPORT/S11_COMPORTS keyboard ports, and it reads through the identical core_getSw/core_setSw path as every other address.
  2. General illumination is not a separate channel. System 11 has no coreGlobals.gi[] string abstraction at all (that field is WPC/Whitestar/SAM-only per core.h's own comment, and s11.c never touches it). GI is simply two ordinary solenoid addresses (11, 16 for Whirlwind) whose per-game bulb-type metadata (CORE_MODOUT_BULB_44_6_3V_AC_REV) happens to be continuous AC GI bulbs; the addresses are resolved from pinned PinMAME's own MACHINE_INIT(s11) per-game strncasecmp(gn,...) block, not from any fixed platform range. Two other System 11 games in the same driver file (Earthshaker, Big Guns) use three and two GI addresses respectively at entirely different numbers -- there is no fixed GI count or address range across the platform.
  3. No printed-flipper-address translation, because these flippers are not CPU-controlled at all. Whirlwind declares FLIP_SWNO(58,57) with no FLIP_SOL bit. On real hardware the cabinet flipper button fires its coil directly through a relay/fuse circuit with zero CPU involvement -- the manual's own Switches parts list confirms this by listing the flipper buttons (SW-10A-48 left, SW-1010A-13 right) as unnumbered entries with no matrix address at all. PinMAME's public addresses 45-48 are purely synthetic: core_updateSw fabricates them from live switch 57/58 state for ball-physics purposes only, and no physical driver-board output exists behind them.
  4. The 8-solenoid A/C-relay multiplex is real hardware, not an emulator artifact. Solenoid 12 (A/C Select Relay) switches the solenoid B+ power bus between two circuits: de-energized, addresses 1-8 ("A"-side) fire their nominal devices (Outhole Kicker, Shooter Lane Feeder, etc.); energized, the same eight driver transistors fire a second bank of devices at addresses 25-32 ("C"-side, address = A-side + 24) -- for Whirlwind, eight backglass flasher circuits. This is documented explicitly in the manual's own Figure 4 and page-95 schematic as a deliberate "multiplexing" technique, one driver transistor controlling two separate solenoid circuits.

Addresses 17-22 are "special" solenoids, each fired from one PIA CA2/CB2 line; the PIA-to-public-address map is scrambled by silkscreen order (setSSSol's ssSolNo[0]={5,4,1,2,0,3} table) but resolves to a clean sequential 17-22 once un-scrambled, matching the manual's own numbering exactly. Addresses 37-41 are the Sound Overlay Solenoid Board, routed over a ribbon cable to a separate board; the manual's own board-local item numbers (23-27, "Snd O/L 1-5") are not the public address -- the offset (public = manual item + 14) is resolved by cross-referencing pinned PinMAME's own doc comment ("37-41 Sound overlay board") against the retained script's own SolCallback registrations, which directly confirm two of the five points (SolBackwallFan at 38 = manual item 24 "Blower Motor"; SolSpinWheelsMotor at 41 = manual item 27 "Spin Wheels Motor").

Address 23 (CORE_SSFLIPENSOL/S11_GAMEONSOL) is an emulator/ROM-internal "flipper and switched-solenoid enable" pulse with no physical driver-board output -- it is easy to confuse with the manual's own item 23 (a real device, "BP Lightning (L) Flashers", at the different public address 37) and the two must not be conflated.

Pinned PinMAME source disagreement, noted but not blocking

Pinned s11.c's per-game bulb-type declarations for Whirlwind (core_set_pwm_output_type calls naming PWM indices 40-42 as "Sound Overlay Board #1"/"#3&4") do not cleanly agree with core_getSol's own generic GEN_ALLS11 bit-formula for public 37-44, nor with the raw pia5cb2_w write path (which targets PWM indices 40-47). Rather than trust either of these secondary, mutually-inconsistent source comments, the address assignments above are resolved from the retained known-working script's own direct SolCallback registrations (decisive, since two of the five addresses are independently confirmed by name-matched physical function) plus the doc-comment's address count ("37-41", five addresses, matching the manual's own five Sound Overlay items exactly). This is a real internal inconsistency in the pinned driver worth flagging for any future contributor cross-referencing s11.c directly, but it does not affect this definition's own conclusions.

Ball paths: trough/outhole, cellar subway, and the three-position lock

A ball draining from the playfield lands in the outhole (switch 10) and is kicked into the trough proper by solenoid 1 (Outhole Kicker); up to three balls queue at trough positions 1-3 (switches 11-13), and solenoid 2 (Shooter Lane Feeder) ejects the lead ball through the BallRelease kicker into the shooter lane. None of these four switches has an individual VPX trigger object in the retained table -- the script's cvpmBallStack helper (bsTrough.InitSw 10,11,12,13) manages them abstractly against the single BallRelease exit kicker -- so they are documented projections onto the two real anchor objects that bound the mechanism (Kicker.Drain for the outhole, Kicker.BallRelease for the three trough positions) rather than invented coordinates.

A ball entering either cellar opening (switch 19 right, switch 20 left) travels a below-playfield subway and is returned to the playfield through the left cellar exit by solenoid 14 (Cellar Kickback, printed "Under P'fld Kickback" on the Solenoid Table and "Cellar Kickback" on the page-95 schematic -- the same device, confirmed by cross-reference).

The left ball lock (assembly B-13269) holds up to three balls sensed by switches 22 (lower), 23 (middle), and 24 (upper); solenoid 4 (Left Locking Kickback) releases the chain by firing Kicker3, then Kicker2 on its own hit event, then Kicker1, walking a ball down from the top position to the exit one kicker at a time.

The headline mechanism: three motorized spinning discs, no sensor

A single motor (Wheels Drive Assembly, p/n D-13199, solenoid 41 "Spin Wheels Motor") drives a shaft/pinion/gear train (72T/84T/115T gears) turning three playfield discs simultaneously. The retained script spins the middle disc opposite sense (+50) from the two outer discs (-50) and coasts the assembly down (SpinnerStep decays by 0.05/tick) rather than stopping instantly when the solenoid de-energizes. Two independent primary sources agree there is no position or ball-pass sensor of any kind: the manual's own Wheels Drive Assembly parts list names only mechanical parts (bracket, shaft, gears, motor, bearings) with no switch or opto part anywhere; and no Controller.Switch call anywhere in the retained script is associated with any of the three disc primitives or their cvpmTurntable collision-helper objects. This is a pure motorized obstacle, not a scored or sensed feature in itself.

The cabinet fan: sound and glow only, no geometry

Solenoid 38 ("Blower Motor", manual item 24, driven via the Sound Overlay board and a Triac board) is a fan mounted atop the backbox with no associated switch. The retained script's SolBackwallFan handler only toggles a backglass glow cue (FlSol38) and starts/stops a "Topper_Fan" sound effect; no fan mesh or primitive exists anywhere in the retained table's extraction. Cabinet-mounted, no playfield coordinate -- matching the expectation set before curation began.

Unresolved: backglass-vs-playfield flasher mounting (conflict.flasher-backglass-vs-playfield-mounting)

Eleven flasher solenoid addresses (the eight A/C-mux "C"-side flashers 25-32, plus three of the five Sound Overlay flashers, 37/39/40) are named by the manual after playfield features they light -- "R Ramp Top/Upr Jets Flashers", "BP Lightning (L) Flashers", and so on -- implying bulbs mounted on or near those features. The retained script implements every one of them purely as a backglass effect: each handler toggles the visibility of an FlSolNN Flasher object, and all eleven are confirmed members of the script's BGArr backglass-repositioning array with raw pos_y values far outside the playfield's 0-2162 bounds (e.g. FlSol25.pos_y = -902.14825). No playfield coordinate can be derived from this table for any of the eleven, and the definition does not guess either way -- their spatial keys are omitted, and the disagreement is recorded as a first-class, unresolved conflict rather than silently resolved in either source's favor.

General illumination

Solenoid 11 (Upper Playfield GI) and solenoid 16 (Lower Playfield / Backbox GI) are the machine's only two GI addresses, both confirmed by pinned PinMAME's own MACHINE_INIT block naming them exactly this way. The manual's GI relay-board page (printed 53) shows solenoid 16 energizing two physically separate relays simultaneously -- one on the playfield-side C-11902-1 board (lower playfield GI) and a second, separate C-11998-1 board in the backbox (backbox/backglass GI) -- while solenoid 11 drives only the single upper-playfield relay on the same C-11902-1 board. The retained script's SolLowerGI handler matches this exactly, driving both the LowerGI light collection (one member, Light1) and a near-full-table Flasher4 overlay together. Solenoid 11's own UpperGI light collection is empty in this retained table -- a completeness gap in this specific VPX author's work, not evidence the physical upper-playfield GI bank does not exist -- so its spatial key is omitted rather than invented, matching the precedent Star Trek: The Next Generation's unresolved lamps established.

Jet bumpers, slingshots, and the manual's duplicate "Top Lower Jet Bumper" label

Six jet bumpers split into two triangular clusters: an upper cluster near the top of the playfield (switches 49-51, solenoids 17/19/21) and a lower cluster nearer the cellar (switches 52-54, solenoids 9/15/10). The Solenoid Table prints an identical label, verbatim, "Top Lower Jet Bumper", for both solenoid 10 and solenoid 21 -- almost certainly a proofing duplication, since the two solenoids sit in different wiring banks (9/10/15 are "Controlled"; 17/19/21 are "Special #1/#3/#5") that mirror the Left/Right/third-position naming pattern the matching switch labels use ("Top Jets left/right/bot" for the upper cluster, "Btm Jets left/right/top" for the lower). By that structure, solenoid 10 is the "top" position of the lower cluster (matching switch 54/Bumper6), and solenoid 21 is resolved as the "bottom" position of the upper cluster (matching switch 51/Bumper3) -- the same physical bumper switch 51 senses, not a fourth, undocumented device. This is recorded as a resolved labeling anomaly, not an unresolved conflict, since the wiring-bank and switch-naming structure independently triangulate a single answer; the manual's verbatim duplicate text is preserved in the retained excerpt for anyone who wants to re-derive it.

Two slingshot kickers (BL/BR Kicker, switches 55/56, solenoids 18/20) use the standard paired kicker-actuating switch construction the switch-locations page's *** footnote describes.

Flippers: three physical, one repurposed opto pair, no CPU control

Three physical flipper assemblies exist: lower-left, lower-right, and upper-right (C-11626-L-3/C-11626-R-3 x2 per the Playfield Parts list) -- there is no upper-left flipper. The retained script's SolRFlipper handler rotates both RightFlipper (lower) and RightFlipper1 (upper) together from the single right-flipper coil/button, confirming the upper-right flipper is mechanically/scripted-slaved to the lower-right button rather than having an independent coil or button of its own.

Matrix addresses 57 (right) and 58 (left) are a genuinely separate circuit from the physical flipper buttons: an optotransistor pair on the Backbox Interconnect board that watches the same button mechanism purely so the ROM can read button state in software, used for the "Flipper Lane Change" feature the Switches parts list names them after. Pinned PinMAME's own FLIP_SWNO(58,57) declaration independently confirms this exact pair (left=58, right=57) is what the emulator treats as "the flipper button, as read by the CPU" -- consistent with, not contradicting, the parts list's more precise "R/L Flipper Lane Change" label. Both addresses are opto-constructed but pinned PinMAME declares no inverted-switch mask at all for whirl_l3, so their rest-state polarity is unconfirmed (see below).

Switch 2: A/C relay feedback, not "ball tilt"

Pinned PinMAME sets hw.gameSpecific1's S11_MUXSW2 flag for Whirlwind, which makes SWITCH_UPDATE(s11) unconditionally overwrite public switch 2 with the live state of the A/C Select Relay (solenoid 12) rather than whatever nominal meaning the shared S11_COMPORTS keyboard convention might otherwise suggest for that bit position. The manual's own label for switch 2, "C Power-A/C Relay", independently confirms this identity -- there is no conflict here, just a platform mechanism worth knowing before assuming a generic dedicated-switch label applies.

Unconfirmed opto polarity (coverage.missing: polarity)

Four drop-target switches (26-29, opto-sensed via the 1-Bank and 3-Bank Opto Boards) and the flipper-lane-change opto pair (57, 58) have confirmed opto construction from the switch-locations parts list (blank switch part number paired with an opto-board part number, or the explicit "Optotransistor" footnote), but this manual states no shading legend or "typically closed" wording anywhere the way several WPC-era manuals in this project have. Separately, pinned PinMAME declares no inverted-switch mask at all for whirl_l3 (wpc.invSw is entirely unset in whirlGameData's positional initializer), so the public state is never emulator-normalized for any switch on this driver. Resolving the true rest-state polarity of these six addresses needs either a LibPinMAME gameplay-harness trace against a legal whirl_l3 ROM, or a clearer copy/edition of the manual that does carry a shading legend.

ROM sets

Every driver that resolves to this physical machine.

ROM set Description Year Parent Hardware
whirl_l3Whirlwind (LA-3)
Williams production LA-3 US/Canadian ROM shipped with the physical machine; the clone-tree parent.
1990identical
whirl_l2Whirlwind (LU-2)
Williams LU-2 firmware revision for the same physical machine; whirlGameData/init_whirl are shared with the parent, so the switch matrix, lamp matrix, solenoid table, and playfield hardware are unchanged.
1990whirl_l3identical
whirl_g3Whirlwind (LG-3 German)
Williams LG-3 German-localized firmware revision; same hardware as LG-1/LG-2.
1990whirl_l3identical
whirl_g2Whirlwind (LG-2 German)
Williams LG-2 German-localized firmware revision; same hardware as LG-1.
1990whirl_l3identical
whirl_g1Whirlwind (LG-1 German)
Williams LG-1 German-localized firmware; shares whirlGameData/init_whirl with the parent (input_ports_whirl aliases the shared input_ports_s11 table), no controller-address or playfield difference.
1990whirl_l3identical

Parent set: whirl_l3 — clones share this definition unless a hardware difference is noted.

Evidence

Every claim above traces to one of these. When they disagree: a known-working VPX script wins on controller addresses and causality, the manual wins on wiring and construction, pinned PinMAME wins on emulator routing and display layout.

  • PinMAME catalog

    BSD-3-Clause

    pinmame.catalog.4ec52ff0ac13

    Pinned catalog driver records for the whirl_* clone tree

    by
    PinMAME contributors
    rev
    4ec52ff0ac13
  • PinMAME source

    BSD-3-Clause

    pinmame.core.4ec52ff0ac13

    src/wpc/s11games.c whirlGameData INITGAME(whirl,GEN_S11B,s11_dispS11b2,12,FLIP_SWNO(58,57),S11_LOWALPHA|S11_DISPINV,S11_MUXSW2|S11_SNDOVERLAY), CORE_GAMEDEF/CORE_CLONEDEF for whirl_l3/l2/g1/g2/g3, input_ports_whirl=input_ports_s11; src/wpc/s11.c SWITCH_UPDATE(s11) dedicated-switch/mux-feedback logic, setSSSol special-solenoid PIA-to-address map, updsol A/C-relay mux copy, pia0b_w/pia1a_w/pia1b_w/pia2a_r/pia4a_r/pia4b_w/pia5cb2_w, s11_readmem/s11_writemem, MACHINE_INIT(s11) whirl_ GI/bulb-type block (addresses 11, 16, 25, 40, 42); src/wpc/s11.h S11_SWADVANCE/S11_SWUPDN/S11_SWCPUDIAG/S11_SWSOUNDDIAG, S11_COMINPORT/S11_COMPORTS, S11_MUXSW2/S11_SNDOVERLAY, COREPORT_DIPNAME Country jumper; src/wpc/core.h core_tGameData sxx.muxSol/sxx.ssSw, CORE_FIRSTSSSOL=17, CORE_SSFLIPENSOL=23, CORE_FIRSTEXTSOL=37, CORE_FIRSTUFLIPSOL=33, CORE_FIRSTLFLIPSOL=45, CORE_FIRSTSIMSOL=49, CORE_FIRSTCUSTSOL=51, CORE_MAXSOL=64; src/wpc/core.c core_swSeq2m/core_m2swSeq/core_getSw/core_setSw, core_getSol GEN_ALLS11 branch, core_updateSw synthetic-flipper-solenoid fallback; src/wpc/gen.h GEN_S11B==GEN_S11X==GEN_S11A; src/libpinmame/libpinmame.h PINMAME_HARDWARE_GEN_S11B=0x100

    by
    PinMAME contributors
    rev
    4ec52ff0ac13
  • Human review

    BSD-3-Clause

    controller-profile.pinmame-system-11

    System 11 public switch/lamp sequential-matrix numbering, dedicated diagnostic addresses, and the solenoid A/C-mux/special/sound-overlay/GI address rules

    internal:controllers/pinmame/system-11.json
    by
    PinMAME contributors
    rev
    repository
  • Operator manual

    manual.williams.whirlwind.1990

    110-page scan with an OCR text layer of the Williams Whirlwind operations manual (Internet Archive item arcademanual_Whirlwind_OPS). PDF page = printed page + 10 throughout Sections 1-3. Printed page 74 carries the switch-locations parts list; 75 the switch-matrix wiring table; 76 the lamp-matrix wiring table; 77 the lamp-locations parts list; 66 the Wheels Drive Assembly parts list; 53 the GI relay board parts lists; 33 and 95 the special/controlled solenoid circuit theory and schematic; 73/32 (plus the unpaginated front insert) the solenoid table and locations; 78 the playfield parts list (flipper assemblies).

    external:pinmame-manuals/by-machine/williams.whirlwind.1990/archive-arcademanual_Whirlwind_OPS/Whirlwind_OPS.pdf
    by
    Williams Electronics Games, Inc.; scanned by Heinz-Peter Bader, hosted by the Internet Archive
    sha256
    365421ffdc05…
  • Human review

    manual-support.williams.whirlwind.1990

    Retained human transcription of every rendered manual table used by this definition, cross-referencing the excerpts above.

    external:pinmame-review-artifacts/whirlwind/manual-transcription.md
    by
    pinmame-game-defs curation
    rev
    2026-08-07
    sha256
    af6d1a70eea9…
  • VPX table

    vpx-table.whirlwind-1990

    Retained known-working VPX recreation of the physical machine. Exact playfield bounds are left=0 top=0 right=964 bottom=2162; normalized coordinates are x/964 and y/2162. Geometry authority only for named table objects.

    external:pinmame-vpx-sources/williams/whirlwind-1990/source/Whirlwind%20%28Williams%201990%29.vpx
    by
    unattributed VPX table author
    sha256
    105477078e68…
  • VPX script

    vpx-script.whirlwind-1990

    Retained embedded script (89,549 bytes). Runtime and mechanism-causality authority: cGameName = "whirl_l3", UseLamps=0 with an explicit UpdateLamps routine (so lamp bindings come from that routine, not name-pattern matching), UseGI=0 with explicit SolUpperGI/SolLowerGI routines, the SolCallback table for solenoids 1-8, 11, 13, 14, 16, 22, 25-32, 37-41, and sLRFlipper/sLLFlipper, the Controller.Switch/vpmTimer.PulseSw switch semantics for the trough/cellar/lock/target/gate/bumper/slingshot state machines, SolSpinWheelsMotor driving the three-disc turntable mechanism, and SolBackwallFan driving the cabinet fan sound/glow cue. Full cross-reference in external:pinmame-review-artifacts/whirlwind/vpx-geometry.txt.

    external:pinmame-vpx-sources/williams/whirlwind-1990/extracted-vpxtool/script.vbs
    by
    unattributed VPX table author
    sha256
    e478206db104…
  • VPX table

    vpx-extraction.whirlwind-1990

    Retained vpxtool extraction, 1881 files, produced from the retained table. Bounds are left=0 top=0 right=964 bottom=2162.

    external:pinmame-vpx-sources/williams/whirlwind-1990/extracted-vpxtool/
    by
    vpxtool extraction

Something wrong or missing?

This definition still has 3 unmet requirements, listed under Coverage above. Fixes belong in the definition itself — editing on GitHub forks it for you and opens the pull request.

Cite a source for anything you change — a manual page, a line in a working VPX script, PinMAME source, or a reading from the machine's own service menu. Claims without provenance cannot be validated.