FunHouse

Partial

Williams1990WPC-ALPHAwilliams.funhouse.1990

2 unresolved conflicts

  • The lamp-locations parts list (manual printed page 2-36) reads "Gangway 10,000" for lamp 12, confirmed at 600 dpi. The lamp-matrix wiring page (printed page 2-37) reads "Gangway 100,000" for the same address, also confirmed at 600 dpi. Lamps 11/13/14/15/16 print an unambiguous ascending award ladder on both pages (75,000 / 150,000 / 200,000 / 250,000 / Extra Ball), which only 100,000 continues monotonically; 10,000 would be a value smaller than the first rung. No independent third source (the retained script does not implement scoring-value text) was available to settle this outright. The promoted definition's label uses "Gangway 100,000" on the strength of the award-ladder pattern, but the disagreement itself is unresolved and the smaller-value reading has not been ruled out as a genuine factory print. Unresolved. outputs[binding.device=12,group=pinmame.output.lamp]
  • The manual's printed general-illumination locations page (2-40) labels G.I. string 02 "Front Playfield" and string 05 "Top Playfield". The retained known-working script's own UpdateGI/UpdateGI2 region header comment labels the same two addresses (0-based Case 1 and Case 4) "Rudy" and "Lower Playfield" respectively, and its actual implemented behavior matches those script labels exactly: Case 1 drives only the RudySign1/RudySign2/RudyShade collection (not a generic front-playfield wash), and Case 4 drives the GI_Lower collection (the reverse of "Top"). G.I. string 01 ("Upper Backglass"/Case 0) agrees between both sources, and string 03 ("Rear Playfield"/Case 2 "Upper Playfield") is a plausible reconciliation under this project's y=0-is-rear coordinate convention, but strings 02 and 05 remain a direct disagreement about which physical region each address illuminates. The promoted definition uses the manual's printed label as the device name (physical-construction authority) while using the script's real implemented objects for spatial placement (runtime authority) and discloses the disagreement in each device's notes. Unresolved. outputs[binding.group=pinmame.output.gi,binding.device=1,4]

Wire it up

what an authoring tool needs first
Bind this ROM
fh_l9

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

Controller platform
pinmame.wpc-alpha

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
  • Player 1/3 sixteen-character alphanumeric display16 digits
  • Player 2/4 sixteen-character alphanumeric display16 digits
Address space
Switches
1–88 (72)
Solenoids
1–28 (28)
Lamps
11–88 (64)
GI
0–4 (5)
DIP
1–8 (8)
Cabinet & flipper inputs
1cabinet.coin.12cabinet.coin.23cabinet.coin.34cabinet.coin.413cabinet.start14cabinet.tilt21cabinet.slam-tilt22cabinet.coin-door

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

141 placements · 15 stacked · normalised player view · outline is nominal

11 Right Flipper12 Left Flipper15 Steps Lights Frenzy16 Upper Ramp Switch17 S-T-E-P "S"318 Left Jet Bumper · 9 Left Jet Bumper · 52 Upper Jet Bumper25 Lock Mech Right26 Steps Lights Ex. Ball27 Lock Mech Center28 Lock Mech Left31 S-T-E-P "P"32 Top Superdog Standup Target33 Lt. Gangway Rollunder34 Bottom Superdog Standup Target35 Steps Track Lower36 Steps 500,00037 Center Superdog Standup Target38 Steps Track Upper241 Left Slingshot · 12 Left Slingshot42 Lt. Flipper Return Lane43 Left Outlane44 Wind Tunnel Hole45 Trap Door Open246 Rudy Hideout Kickbig · 3 Kickbig47 Left Ballshooter448 Ramp Exit Track · 77 Right Jet Bumper · 10 Right Jet Bumper · 72 Upper Rt. Jet Bumper751 Dummy Jaw · 21 Mouth Motor · 22 Up/Down Driver · 25 Eyes Right · 26 Eyelids Open · 27 Eyelids Close · 28 Eyes Left52 Right Outlane253 Right Slingshot · 13 Right Slingshot54 S-T-E-P "T"55 Steps Superdog256 Ramp Entrance · 57 Ramp Overhead Lamp57 Jet Bumper Lane58 Tunnel Kickout61 Rt. Inside Return Lane62 Right Ballshooter64 S-T-E-P "E"265 Dummy Eject Hole · 16 Dummy Eject Hole66 Right Gangway Lane67 Lower Right Drop Hole368 Lower Jet Bumper · 11 Lower Jet Bumper · 51 Lower Jet Bumper71 Rt. Outside Return Lane72 Left Trough273 Outhole · 1 Outhole74 Center Trough275 Upper Right Loop · 1 Front Playfield G.I.376 Trap Door Closed · 5 Trap Door Open · 6 Trap Door Closed2 Ramp Diverter4 Tunnel Kickbig28 Multi-ball Release · 28 Clock 0 Minutes14 Steps Gate15 Trough17 3 Blue Flashers18 Dummy Flashers19 2 Clock Flashers220 2 Superdog Flashers · 53 Superdog Lamp23 3 Red Flashers24 3 Clear Flashers11 Gangway 75,00012 Gangway 100,00013 Gangway 150,00014 Gangway 200,00015 Gangway 250,00016 Gangway Lights Extra Ball17 Shoot Again18 Steps Open (Gate)21 Clock 45 Minutes22 Clock 8 O'Clock23 Clock 6 O'Clock24 Clock 25 Minutes25 Clock 15 Minutes26 Clock 10 Minutes27 Clock 12 Minutes31 Clock 40 Minutes32 Clock 35 Minutes33 Clock 30 Minutes34 Clock 20 Minutes35 Clock 3 O'Clock36 Clock 1 O'Clock37 Clock 11 O'Clock38 Clock 50 Minutes41 Clock 9 O'Clock42 Clock 7 O'Clock43 Clock 5 O'Clock44 Clock 4 O'Clock45 Clock 2 O'Clock46 Clock 5 Minutes47 Clock 55 Minutes48 Clock 10 O'Clock53 Superdog Lamp58 Rt. Gangway Overhead Lamp61 Rt. Flipper Lanes61 Rt. Flipper Lanes62 S-T-E-P "S"63 Trap Door Bonus64 Ramp Scores 250,00065 S-T-E-P "T"66 Upper Lt. Gangway Lane67 Extra Ball Lamp68 Lock671 Magic Mirror Lights Ex. Ball · 74 Magic Mirror Lights Million · 75 Magic Mirror Lights Jet Bumper · 76 Magic Mirror Lights Superdog · 77 Magic Mirror Opens Gate · 78 Magic Mirror Lights Quick Multi-ball73 S-T-E-P "P"81 Million Plus82 Special Outlanes82 Special Outlanes83 Trap Door Frenzy84 Ramp "Steps" Lamp85 Magic Mirror Arrow86 S-T-E-P "E"87 Million1 Front Playfield G.I.1 Front Playfield G.I.

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 playfield72
  • sensorsenses the ball48
  • effectmoves the ball21
  • nStackseveral devices in one spot15
136 devices shown

Not on the playfield16 cabinet or service, 10 unused, 8 dip switch, 1 constant — 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
conflicted
Physical Wiring
validated
Mechanisms
validated
Variant Coverage
validated
Recreation Knowledge
validated
Still missing · 3
Spatial PlacementUnresolved ConflictsRecreation Notes

Switches

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

71 addresses

Switch map

Column × row matrix — the address is column·row.

used unused
 
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
Hover or tap an address to identify it.

Outside the matrix1, 2, 3, 4, 5, 6, 7, 8 — dedicated, diagnostic or flipper-column addresses. See the table below.

71 shown
# Name Device ID Role Wiring Evidence
1
Left Coin Chute
Button
switch.cabinet-1
cabinet.coin.1
J205-1Orange-Brown
WPC-Alpha CPU board
validated
2
Center Coin Chute
Button
switch.cabinet-2
cabinet.coin.2
J205-2Orange-Red
WPC-Alpha CPU board
validated
3
Right Coin Chute
Button
switch.cabinet-3
cabinet.coin.3
J205-3Orange-Black
WPC-Alpha CPU board
validated
4
4th Coin Chute
Button
switch.cabinet-4
cabinet.coin.4
J205-4Orange-Yellow
WPC-Alpha CPU board
validated
5
Service Credits / Escape
Button
switch.cabinet-5
service.escape
J205-6Orange-Green
WPC-Alpha CPU board
validated
6
Volume Down / Down
Button
switch.cabinet-6
service.down
J205-7Orange-Blue
WPC-Alpha CPU board
validated
7
Volume Up / Up
Button
switch.cabinet-7
service.up
J205-8Orange-Violet
WPC-Alpha CPU board
validated
8
Begin Test / Enter
Button
switch.cabinet-8
service.enter
J205-9Orange-Gray
WPC-Alpha CPU board
validated
11
Right Flipper
Leaf
switch.matrix-11
J207-1Green-Brown
J209-1White-Brown
WPC-Alpha CPU board
validated
12
Left Flipper
Leaf
switch.matrix-12
J207-1Green-Brown
J209-2White-Red
WPC-Alpha CPU board
validated
13
Start Button
Button
switch.matrix-13
cabinet.start
J207-1Green-Brown
J209-3White-Orange
WPC-Alpha CPU board
validated
14
Plumb Bob Tilt
Tilt
switch.matrix-14
cabinet.tilt
J207-1Green-Brown
J209-4White-Yellow
WPC-Alpha CPU board
validated
15
Steps Lights Frenzy
Microswitch
switch.matrix-15
J207-1Green-Brown
J209-5White-Green
WPC-Alpha CPU board
validated
16
Upper Ramp Switch
Microswitch
switch.matrix-16
J207-1Green-Brown
J209-7White-Blue
WPC-Alpha CPU board
validated
17
S-T-E-P "S"
Microswitch
switch.matrix-17
J207-1Green-Brown
J209-8White-Violet
WPC-Alpha CPU board
validated
18
Left Jet Bumper
Other
switch.matrix-18
J207-1Green-Brown
J209-9White-Gray
WPC-Alpha CPU board
validated
21
Slam Tilt
Leaf
switch.matrix-21
cabinet.slam-tilt
J207-2Green-Red
J209-1White-Brown
WPC-Alpha CPU board
validated
22
Front Door
Microswitch
switch.matrix-22
cabinet.coin-door
J207-2Green-Red
J209-2White-Red
WPC-Alpha CPU board
validated
23
Not Used Matrix Position 23
switch.matrix-23
J207-2Green-Red
J209-3White-Orange
WPC-Alpha CPU board
validated
25
Lock Mech Right
Microswitch
switch.matrix-25
J207-2Green-Red
J209-5White-Green
WPC-Alpha CPU board
validated
26
Steps Lights Ex. Ball
Microswitch
switch.matrix-26
J207-2Green-Red
J209-7White-Blue
WPC-Alpha CPU board
validated
27
Lock Mech Center
Microswitch
switch.matrix-27
J207-2Green-Red
J209-8White-Violet
WPC-Alpha CPU board
validated
28
Lock Mech Left
Microswitch
switch.matrix-28
J207-2Green-Red
J209-9White-Gray
WPC-Alpha CPU board
validated
31
S-T-E-P "P"
Microswitch
switch.matrix-31
J207-3Green-Orange
J209-1White-Brown
WPC-Alpha CPU board
validated
32
Top Superdog Standup Target
Microswitch
switch.matrix-32
J207-3Green-Orange
J209-2White-Red
WPC-Alpha CPU board
validated
33
Lt. Gangway Rollunder
Microswitch
switch.matrix-33
J207-3Green-Orange
J209-3White-Orange
WPC-Alpha CPU board
validated
34
Bottom Superdog Standup Target
Microswitch
switch.matrix-34
J207-3Green-Orange
J209-4White-Yellow
WPC-Alpha CPU board
validated
35
Steps Track Lower
Microswitch
switch.matrix-35
J207-3Green-Orange
J209-5White-Green
WPC-Alpha CPU board
validated
36
Steps 500,000
Microswitch
switch.matrix-36
J207-3Green-Orange
J209-7White-Blue
WPC-Alpha CPU board
validated
37
Center Superdog Standup Target
Microswitch
switch.matrix-37
J207-3Green-Orange
J209-8White-Violet
WPC-Alpha CPU board
validated
38
Steps Track Upper
Microswitch
switch.matrix-38
J207-3Green-Orange
J209-9White-Gray
WPC-Alpha CPU board
validated
41
Left Slingshot
Leaf
switch.matrix-41
J207-4Green-Yellow
J209-1White-Brown
WPC-Alpha CPU board
validated
42
Lt. Flipper Return Lane
Microswitch
switch.matrix-42
J207-4Green-Yellow
J209-2White-Red
WPC-Alpha CPU board
validated
43
Left Outlane
Microswitch
switch.matrix-43
J207-4Green-Yellow
J209-3White-Orange
WPC-Alpha CPU board
validated
44
Wind Tunnel Hole
Microswitch
switch.matrix-44
J207-4Green-Yellow
J209-4White-Yellow
WPC-Alpha CPU board
validated
45
Trap Door Open
Microswitch
switch.matrix-45
J207-4Green-Yellow
J209-5White-Green
WPC-Alpha CPU board
validated
46
Rudy Hideout Kickbig
Microswitch
switch.matrix-46
J207-4Green-Yellow
J209-7White-Blue
WPC-Alpha CPU board
validated
47
Left Ballshooter
Microswitch
switch.matrix-47
J207-4Green-Yellow
J209-8White-Violet
WPC-Alpha CPU board
validated
48
Ramp Exit Track
Microswitch
switch.matrix-48
J207-4Green-Yellow
J209-9White-Gray
WPC-Alpha CPU board
validated
51
Dummy JawNC
Opto
switch.matrix-51
J207-5Green-Black
J209-1White-Brown
WPC-Alpha CPU board
validated
52
Right Outlane
Microswitch
switch.matrix-52
J207-5Green-Black
J209-2White-Red
WPC-Alpha CPU board
validated
53
Right Slingshot
Leaf
switch.matrix-53
J207-5Green-Black
J209-3White-Orange
WPC-Alpha CPU board
validated
54
S-T-E-P "T"
Microswitch
switch.matrix-54
J207-5Green-Black
J209-4White-Yellow
WPC-Alpha CPU board
validated
55
Steps SuperdogNC
Opto
switch.matrix-55
J207-5Green-Black
J209-5White-Green
WPC-Alpha CPU board
validated
56
Ramp Entrance
Microswitch
switch.matrix-56
J207-5Green-Black
J209-7White-Blue
WPC-Alpha CPU board
validated
57
Jet Bumper Lane
Microswitch
switch.matrix-57
J207-5Green-Black
J209-8White-Violet
WPC-Alpha CPU board
validated
58
Tunnel Kickout
Microswitch
switch.matrix-58
J207-5Green-Black
J209-9White-Gray
WPC-Alpha CPU board
validated
61
Rt. Inside Return Lane
Microswitch
switch.matrix-61
J207-6Green-Blue
J209-1White-Brown
WPC-Alpha CPU board
validated
62
Right Ballshooter
Microswitch
switch.matrix-62
J207-6Green-Blue
J209-2White-Red
WPC-Alpha CPU board
validated
63
Right Trough
Microswitch
switch.matrix-63
J207-6Green-Blue
J209-3White-Orange
WPC-Alpha CPU board
validated
64
S-T-E-P "E"
Microswitch
switch.matrix-64
J207-6Green-Blue
J209-4White-Yellow
WPC-Alpha CPU board
validated
65
Dummy Eject Hole
Microswitch
switch.matrix-65
J207-6Green-Blue
J209-5White-Green
WPC-Alpha CPU board
validated
66
Right Gangway Lane
Microswitch
switch.matrix-66
J207-6Green-Blue
J209-7White-Blue
WPC-Alpha CPU board
validated
67
Lower Right Drop Hole
Microswitch
switch.matrix-67
J207-6Green-Blue
J209-8White-Violet
WPC-Alpha CPU board
validated
68
Lower Jet Bumper
Other
switch.matrix-68
J207-6Green-Blue
J209-9White-Gray
WPC-Alpha CPU board
validated
71
Rt. Outside Return Lane
Microswitch
switch.matrix-71
J207-7Green-Violet
J209-1White-Brown
WPC-Alpha CPU board
validated
72
Left Trough
Microswitch
switch.matrix-72
J207-7Green-Violet
J209-2White-Red
WPC-Alpha CPU board
validated
73
Outhole
Microswitch
switch.matrix-73
J207-7Green-Violet
J209-3White-Orange
WPC-Alpha CPU board
validated
74
Center Trough
Microswitch
switch.matrix-74
J207-7Green-Violet
J209-4White-Yellow
WPC-Alpha CPU board
validated
75
Upper Right Loop
Microswitch
switch.matrix-75
J207-7Green-Violet
J209-5White-Green
WPC-Alpha CPU board
validated
76
Trap Door Closed
Microswitch
switch.matrix-76
J207-7Green-Violet
J209-7White-Blue
WPC-Alpha CPU board
validated
77
Right Jet Bumper
Other
switch.matrix-77
J207-7Green-Violet
J209-8White-Violet
WPC-Alpha CPU board
validated
78
Not Used Matrix Position 78
switch.matrix-78
J207-7Green-Violet
J209-9White-Gray
WPC-Alpha CPU board
validated
81
Not Used Matrix Position 81
switch.matrix-81
J207-8Green-Gray
J209-1White-Brown
WPC-Alpha CPU board
validated
82
Not Used Matrix Position 82
switch.matrix-82
J207-8Green-Gray
J209-2White-Red
WPC-Alpha CPU board
validated
83
Not Used Matrix Position 83
switch.matrix-83
J207-8Green-Gray
J209-3White-Orange
WPC-Alpha CPU board
validated
84
Not Used Matrix Position 84
switch.matrix-84
J207-8Green-Gray
J209-4White-Yellow
WPC-Alpha CPU board
validated
85
Not Used Matrix Position 85
switch.matrix-85
J207-8Green-Gray
J209-5White-Green
WPC-Alpha CPU board
validated
86
Not Used Matrix Position 86
switch.matrix-86
J207-8Green-Gray
J209-7White-Blue
WPC-Alpha CPU board
validated
87
Not Used Matrix Position 87
switch.matrix-87
J207-8Green-Gray
J209-8White-Violet
WPC-Alpha CPU board
validated
88
Not Used Matrix Position 88
switch.matrix-88
J207-8Green-Gray
J209-9White-Gray
WPC-Alpha 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
device.outhole Coil
Q82
WPC-Alpha power driver board
validated
2
Ramp Diverter
device.ramp-diverter Coil
Q80
WPC-Alpha power driver board
validated
3
Kickbig
device.kickbig Coil
Q78
WPC-Alpha power driver board
validated
4
Tunnel Kickbig
device.tunnel-kickbig Coil
Q76
WPC-Alpha power driver board
validated
5
Trap Door Open
device.trap-door-open Coil
Q64
WPC-Alpha power driver board
validated
6
Trap Door Closed
device.trap-door-closed Coil
Q66
WPC-Alpha power driver board
validated
7
Knocker
device.knocker Coil
cabinet.knocker
Q68
WPC-Alpha power driver board
validated
8
Multi-ball Release
device.multi-ball-release Coil
Q70
WPC-Alpha power driver board
validated
9
Left Jet Bumper
device.left-jet-bumper Coil
Q58
WPC-Alpha power driver board
validated
10
Right Jet Bumper
device.right-jet-bumper Coil
Q56
WPC-Alpha power driver board
validated
11
Lower Jet Bumper
device.lower-jet-bumper Coil
Q54
WPC-Alpha power driver board
validated
12
Left Slingshot
device.left-slingshot Coil
Q52
WPC-Alpha power driver board
validated
13
Right Slingshot
device.right-slingshot Coil
Q50
WPC-Alpha power driver board
validated
14
Steps Gate
device.steps-gate Coil
Q48
WPC-Alpha power driver board
validated
15
Trough
device.trough Coil
Q46
WPC-Alpha power driver board
validated
16
Dummy Eject Hole
device.dummy-eject-hole Coil
Q44
WPC-Alpha power driver board
validated
21
Mouth Motor
device.mouth-motor Motor
validated
22
Up/Down Driver
device.up-down-driver Motor
validated
25
Eyes Right
device.eyes-right Coil
validated
26
Eyelids Open
device.eyelids-open Coil
validated
27
Eyelids Close
device.eyelids-close Coil
validated
28
Eyes Left
device.eyes-left Coil
validated

Flashers

6
6 shown
# Name Device ID Evidence
17
3 Blue Flashers
device.3-blue-flashers validated
18
Dummy Flashers
device.dummy-flashers validated
19
2 Clock Flashers
device.2-clock-flashers validated
20
2 Superdog Flashers
device.2-superdog-flashers validated
23
3 Red Flashers
device.3-red-flashers validated
24
3 Clear Flashers
device.3-clear-flashers validated

Lamps

64

Lamp map

Column × row matrix — the address is column·row.

used unused
 
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
Hover or tap an address to identify it.
64 shown
# Name Device ID Role Wiring Evidence
11
Gangway 75,000
lamp.matrix-11
Q98 column driver with Q90 row driver
WPC-Alpha power driver board
validated
12
Gangway 100,000
lamp.matrix-12
Q98 column driver with Q89 row driver
WPC-Alpha power driver board
validated
13
Gangway 150,000
lamp.matrix-13
Q98 column driver with Q88 row driver
WPC-Alpha power driver board
validated
14
Gangway 200,000
lamp.matrix-14
Q98 column driver with Q87 row driver
WPC-Alpha power driver board
validated
15
Gangway 250,000
lamp.matrix-15
Q98 column driver with Q86 row driver
WPC-Alpha power driver board
validated
16
Gangway Lights Extra Ball
lamp.matrix-16
Q98 column driver with Q85 row driver
WPC-Alpha power driver board
validated
17
Shoot Again
lamp.matrix-17
Q98 column driver with Q84 row driver
WPC-Alpha power driver board
validated
18
Steps Open (Gate)
lamp.matrix-18
Q98 column driver with Q83 row driver
WPC-Alpha power driver board
validated
21
Clock 45 Minutes
lamp.matrix-21
Q97 column driver with Q90 row driver
WPC-Alpha power driver board
validated
22
Clock 8 O'Clock
lamp.matrix-22
Q97 column driver with Q89 row driver
WPC-Alpha power driver board
validated
23
Clock 6 O'Clock
lamp.matrix-23
Q97 column driver with Q88 row driver
WPC-Alpha power driver board
validated
24
Clock 25 Minutes
lamp.matrix-24
Q97 column driver with Q87 row driver
WPC-Alpha power driver board
validated
25
Clock 15 Minutes
lamp.matrix-25
Q97 column driver with Q86 row driver
WPC-Alpha power driver board
validated
26
Clock 10 Minutes
lamp.matrix-26
Q97 column driver with Q85 row driver
WPC-Alpha power driver board
validated
27
Clock 12 Minutes
lamp.matrix-27
Q97 column driver with Q84 row driver
WPC-Alpha power driver board
validated
28
Clock 0 Minutes
lamp.matrix-28
Q97 column driver with Q83 row driver
WPC-Alpha power driver board
validated
31
Clock 40 Minutes
lamp.matrix-31
Q96 column driver with Q90 row driver
WPC-Alpha power driver board
validated
32
Clock 35 Minutes
lamp.matrix-32
Q96 column driver with Q89 row driver
WPC-Alpha power driver board
validated
33
Clock 30 Minutes
lamp.matrix-33
Q96 column driver with Q88 row driver
WPC-Alpha power driver board
validated
34
Clock 20 Minutes
lamp.matrix-34
Q96 column driver with Q87 row driver
WPC-Alpha power driver board
validated
35
Clock 3 O'Clock
lamp.matrix-35
Q96 column driver with Q86 row driver
WPC-Alpha power driver board
validated
36
Clock 1 O'Clock
lamp.matrix-36
Q96 column driver with Q85 row driver
WPC-Alpha power driver board
validated
37
Clock 11 O'Clock
lamp.matrix-37
Q96 column driver with Q84 row driver
WPC-Alpha power driver board
validated
38
Clock 50 Minutes
lamp.matrix-38
Q96 column driver with Q83 row driver
WPC-Alpha power driver board
validated
41
Clock 9 O'Clock
lamp.matrix-41
Q95 column driver with Q90 row driver
WPC-Alpha power driver board
validated
42
Clock 7 O'Clock
lamp.matrix-42
Q95 column driver with Q89 row driver
WPC-Alpha power driver board
validated
43
Clock 5 O'Clock
lamp.matrix-43
Q95 column driver with Q88 row driver
WPC-Alpha power driver board
validated
44
Clock 4 O'Clock
lamp.matrix-44
Q95 column driver with Q87 row driver
WPC-Alpha power driver board
validated
45
Clock 2 O'Clock
lamp.matrix-45
Q95 column driver with Q86 row driver
WPC-Alpha power driver board
validated
46
Clock 5 Minutes
lamp.matrix-46
Q95 column driver with Q85 row driver
WPC-Alpha power driver board
validated
47
Clock 55 Minutes
lamp.matrix-47
Q95 column driver with Q84 row driver
WPC-Alpha power driver board
validated
48
Clock 10 O'Clock
lamp.matrix-48
Q95 column driver with Q83 row driver
WPC-Alpha power driver board
validated
51
Lower Jet Bumper
lamp.matrix-51
Q94 column driver with Q90 row driver
WPC-Alpha power driver board
validated
52
Upper Jet Bumper
lamp.matrix-52
Q94 column driver with Q89 row driver
WPC-Alpha power driver board
validated
53
Superdog Lamp
lamp.matrix-53
Q94 column driver with Q88 row driver
WPC-Alpha power driver board
validated
54
Steps Lights Frenzy
lamp.matrix-54
Q94 column driver with Q87 row driver
WPC-Alpha power driver board
validated
55
Steps Lights Ex. Ball
lamp.matrix-55
Q94 column driver with Q86 row driver
WPC-Alpha power driver board
validated
56
Steps 500,000
lamp.matrix-56
Q94 column driver with Q85 row driver
WPC-Alpha power driver board
validated
57
Ramp Overhead Lamp
lamp.matrix-57
Q94 column driver with Q84 row driver
WPC-Alpha power driver board
validated
58
Rt. Gangway Overhead Lamp
lamp.matrix-58
Q94 column driver with Q83 row driver
WPC-Alpha power driver board
validated
61
Rt. Flipper Lanes
lamp.matrix-61
Q93 column driver with Q90 row driver
WPC-Alpha power driver board
validated
62
S-T-E-P "S"
lamp.matrix-62
Q93 column driver with Q89 row driver
WPC-Alpha power driver board
validated
63
Trap Door Bonus
lamp.matrix-63
Q93 column driver with Q88 row driver
WPC-Alpha power driver board
validated
64
Ramp Scores 250,000
lamp.matrix-64
Q93 column driver with Q87 row driver
WPC-Alpha power driver board
validated
65
S-T-E-P "T"
lamp.matrix-65
Q93 column driver with Q86 row driver
WPC-Alpha power driver board
validated
66
Upper Lt. Gangway Lane
lamp.matrix-66
Q93 column driver with Q85 row driver
WPC-Alpha power driver board
validated
67
Extra Ball Lamp
lamp.matrix-67
Q93 column driver with Q84 row driver
WPC-Alpha power driver board
validated
68
Lock
lamp.matrix-68
Q93 column driver with Q83 row driver
WPC-Alpha power driver board
validated
71
Magic Mirror Lights Ex. Ball
lamp.matrix-71
Q92 column driver with Q90 row driver
WPC-Alpha power driver board
validated
72
Upper Rt. Jet Bumper
lamp.matrix-72
Q92 column driver with Q89 row driver
WPC-Alpha power driver board
validated
73
S-T-E-P "P"
lamp.matrix-73
Q92 column driver with Q88 row driver
WPC-Alpha power driver board
validated
74
Magic Mirror Lights Million
lamp.matrix-74
Q92 column driver with Q87 row driver
WPC-Alpha power driver board
validated
75
Magic Mirror Lights Jet Bumper
lamp.matrix-75
Q92 column driver with Q86 row driver
WPC-Alpha power driver board
validated
76
Magic Mirror Lights Superdog
lamp.matrix-76
Q92 column driver with Q85 row driver
WPC-Alpha power driver board
validated
77
Magic Mirror Opens Gate
lamp.matrix-77
Q92 column driver with Q84 row driver
WPC-Alpha power driver board
validated
78
Magic Mirror Lights Quick Multi-ball
lamp.matrix-78
Q92 column driver with Q83 row driver
WPC-Alpha power driver board
validated
81
Million Plus
lamp.matrix-81
Q91 column driver with Q90 row driver
WPC-Alpha power driver board
validated
82
Special Outlanes
lamp.matrix-82
Q91 column driver with Q89 row driver
WPC-Alpha power driver board
validated
83
Trap Door Frenzy
lamp.matrix-83
Q91 column driver with Q88 row driver
WPC-Alpha power driver board
validated
84
Ramp "Steps" Lamp
lamp.matrix-84
Q91 column driver with Q87 row driver
WPC-Alpha power driver board
validated
85
Magic Mirror Arrow
lamp.matrix-85
Q91 column driver with Q86 row driver
WPC-Alpha power driver board
validated
86
S-T-E-P "E"
lamp.matrix-86
Q91 column driver with Q85 row driver
WPC-Alpha power driver board
validated
87
Million
lamp.matrix-87
Q91 column driver with Q84 row driver
WPC-Alpha power driver board
validated
88
Start Button
lamp.matrix-88
cabinet.start
Q91 column driver with Q83 row driver
WPC-Alpha power driver board
validated

General illumination

5
5 shown
# Name Device ID Role Wiring Evidence
0
Upper Backglass G.I.
gi.string-0
cabinet.insert-panel
Q12
WPC-Alpha power driver board
validated
1
Front Playfield G.I.
gi.string-1
Q10
WPC-Alpha power driver board
validated
2
Rear Playfield G.I.
gi.string-2
Q18
WPC-Alpha power driver board
validated
3
Cntr Bckglss/Rt. Rr Plfld G.I.
gi.string-3
cabinet.insert-panel
Q14
WPC-Alpha power driver board
validated
4
Top Playfield G.I.
gi.string-4
Q16
WPC-Alpha power driver board
validated

Configuration & other inputs

9 shown
# Name Device ID Kind Wiring Evidence
1
CPU DIP 1 (country/option configuration bit)
Dip
switch.dip-1 DIP switch
validated
2
CPU DIP 2 (country/option configuration bit)
Dip
switch.dip-2 DIP switch
validated
3
CPU DIP 3 (country/option configuration bit)
Dip
switch.dip-3 DIP switch
validated
4
CPU DIP 4 (country/option configuration bit)
Dip
switch.dip-4 DIP switch
validated
5
CPU DIP 5 (country/option configuration bit)
Dip
switch.dip-5 DIP switch
validated
6
CPU DIP 6 (country/option configuration bit)
Dip
switch.dip-6 DIP switch
validated
7
CPU DIP 7 (country/option configuration bit)
Dip
switch.dip-7 DIP switch
validated
8
CPU DIP 8 (country/option configuration bit)
Dip
switch.dip-8 DIP switch
validated
24
Test Position (Always Closed)
Other
switch.matrix-24 Constant
J207-2Green-Red
J209-4White-Yellow
WPC-Alpha CPU board
validated

Mechanisms

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

Rudy's motorized jaw

mechanism.rudy-jaw

Motorized

A DC gearmotor (A-13997 Jaw Motor Assembly) drives Rudy's jaw open and closed through a worm gear/sector pair (Jaw Drive Assembly A-13752), not a coil stroke. Pinned fh_handleMech: if the jaw is open and solenoid 21 (Mouth Motor) is energized while solenoid 22 (Up/Down Driver) is not, the jaw closes; if the jaw is closed and both 21 and 22 are energized together, the jaw opens. Dummy Jaw opto 51 senses a ball landing in Rudy's open mouth (printed opto, normalized by PinMAME's inverted-switch mask).

Rudy's eyes

mechanism.rudy-eyes

Motorized

Four independent drive lines on Rudy's Head Assembly. Eyelids open (solenoid 26) and close (solenoid 27) latch a persistent open/closed state; eyes right (25) and eyes left (28) are read as momentary position signals each mechanics tick, with neither held meaning the eyes rest straight ahead. Pinned fh_handleMech tracks both the open/closed latch and the left/right/straight position independently. There is no dedicated switch for eye position or eyelid state; it is purely a scored callback effect with no sensor feedback to the controller.

Trap door

mechanism.trap-door

Gate

Solenoid 5 opens and solenoid 6 closes a trap door in the upper-right loop path. Pinned fh_handleMech and the retained script's TrapMover_Timer both derive Trap Door Closed switch 76 directly from the door's own rotation angle rather than reading a separate contact switch -- the retained script sets Controller.Switch(76)=1 once the door primitive's RotX falls to 90 degrees (closed) and clears it back to 0 once the door opens past 90 degrees. Upper Right Loop switch 75 senses a ball taking the loop shot when the door is closed, and the printed manual documents a scoring loop feature (Trap Door Bonus lamp 63, Trap Door Frenzy lamp 83) tied to whether the door is open when a ball reaches it.

Left outlane step gate

mechanism.step-gate

Gate

Solenoid 14 (printed "Steps Gate"; the retained script's own comment calls it the "Steps shooter lane diverter") opens a gate that reroutes a ball in the left outlane back to the left ballshooter lane (switch 47) instead of draining, functioning as a kickback-style save feature gated by whatever awards the STEP letters. Pinned fh_handleMech holds the gate open for a fixed 50-tick timer after the solenoid fires, then auto-closes it; there is no separate open/closed sensor switch for the gate itself.

Drives

Upper ramp/Steps track diverter

mechanism.ramp-diverter

Diverter

Solenoid 2 diverts a ball on the upper ramp between the Steps track (S-T-E-P letters, switches 17/31/54/64/86/73) and the main upper-ramp path (Upper Ramp Switch 16, Steps Track Lower/Upper 35/38, Ramp Exit Track 48, Ramp Entrance 56). Pinned fh_handleMech asserts the diverter open for a fixed 25-tick window after the solenoid fires (matching the printed "Ramp Diverter" high-power coil, AE-26-1200) and auto-closes it afterward; there is no separate diverter-position sensor switch.

Ball trough, outhole, and dual shooter lanes

mechanism.trough-and-shooters

Kicker

FunHouse has two manual shooter lanes (left, switch 47; right, switch 62) feeding a shared trough. Solenoid 1 (Outhole) kicks a drained ball into the trough; solenoid 15 (Trough, retained script comment "Main trough kickout") ejects a trough ball back to a shooter lane. Trough positions are Left Trough (72), Center Trough (74), and Right Trough (63, no VPX geometry resolved in this pass -- see coverage.missing).

Tunnel kickout hole

mechanism.tunnel-kickout

Kicker

A ball resting on opto-free microswitch 58 (Tunnel Kickout) is kicked back to the playfield by solenoid 4 (printed "Tunnel Kickbig"). The retained script's SolKickout handler fires two physical kicker objects in sequence (a primary kick followed by a delayed second-chute kick), consistent with the tunnel's own captive ball-return geometry rather than a single simple saucer.

Rudy's Hideout kickback

mechanism.rudys-hideout

Kicker

A ball landing behind Rudy's head (Rudy Hideout Kickbig switch 46, a skill-shot landing spot per the printed player rules) is returned to play by solenoid 3.

Dummy eject hole

mechanism.dummy-eject-hole

Kicker

A separate saucer near Rudy's head (Dummy Eject Hole switch 65) is kicked back to play by solenoid 16 (retained script comment "Rudy's mouth kickout", though it is a distinct switch and coil from the jaw mechanism proper).

Three-ball lock and multi-ball release

mechanism.multiball-lock

Kicker

Three lock switches (Lock Mech Right 25, Lock Mech Center 27, Lock Mech Left 28) share one printed 3-Switch Assembly (A-14138). The retained script's MBRelease handler fires solenoid 8, drops the WaSw28 lock wall, and rotates a release object to feed all locked balls to the trough together for multi-ball.

Left and right slingshots

mechanism.slingshots

Other

Each slingshot (printed "Kicker" on the solenoid table, "(sling) Kicker"/"Slingshot (Kicker)" on the switch tables) fires its own coil on the same event. The retained script's LeftSlingShot_Slingshot and RightSlingShot_Slingshot handlers pulse matrix addresses 41 and 53 and fire coils 12/13 together.

Lower flipper pair (no CPU-controlled solenoid)

mechanism.flippers

Other

FunHouse is a pre-Fliptronics WPC-Alpha machine: fhGameData declares FLIP_SWNO(12,11) (flipper switches only) with no FLIP_SOL() call, so pinned PinMAME's core_getSol never routes any public solenoid address to a flipper coil for this driver. The printed Flipper Circuits wiring page (page 120) confirms the physical construction: Left/Right Flipper Power and four Upper/Lower Flipper positions are wired through a dedicated flipper driver board (J109/J110) directly to the flipper buttons and end-of-stroke switches, entirely separate from the CPU-addressable solenoid matrix (1-50). Switches 11 (Right Flipper) and 12 (Left Flipper) sit in the ordinary switch matrix (not a dedicated Fliptronic column, which does not exist on this hardware generation) and are read by the CPU for scoring/combo purposes only; they do not gate whether the flipper fires. FunHouse has no upper flippers.

Recreation notes

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

Physical machine ID: williams.funhouse.1990. Manufacturer Williams, released 1990, design by Pat Lawlor. FunHouse is a Williams WPC-Alpha machine: two sixteen-character sixteen-segment alphanumeric displays (GEN_WPCALPHA_2, wpc_dispAlpha), not a dot-matrix display, and it predates Fliptronics — its flipper coils are wired directly through a dedicated flipper driver board rather than through the CPU-addressable solenoid matrix. This is the first WPC-Alpha machine curated in this project.

Identity and driver family

Pinned PinMAME's fh_l9 clone tree has fifteen drivers: the production fh_l9 (L-9, SL-3, 1992) parent plus fourteen clones spanning firmware revisions L-2 through L-9/9.05H/9.06H/9.07H, LED ghost-fix variants (D-3/D-4/D-5/D-9), an unofficial German translation MOD (L-9b/D-9b), a community LED-fix-plus-ball-saver MOD (9.07H), a FreeWPC 0.91 community firmware (fh_f91), and one genuinely distinct-generation prototype (fh_pa1, "L-2, Prototype PA-1 system 11 sound").

fh_pa1 deserves a specific note: pinned init_fh dispatches between two different core_tGameData structs by driver name — fhGameData (GEN_WPCALPHA_2) for every production driver, and fhpa1GameData (GEN_WPCALPHA_1) only for fh_pa1. The two structs are otherwise identical field-for-field (same FLIP_SWNO(12,11), same mechanism handlers, same lamp-position table, same inverted-switch mask), so fh_pa1 is the same physical playfield running on an earlier WPC-Alpha-1/System-11 sound-board generation rather than a different machine — the same class of relationship this project already established for BY35 firmware clones, just expressed through a second core_tGameData rather than a shared one.

The retained known-working table's own script binds fh_905h (Const cGameName="fh_905h", line 64) — note the line above it, 'Const cGameName="fh_905" (no trailing "h"), is commented out and is not the active binding. fh_905h is a clone of the production fh_l9 parent with an identical I/O inventory, so this definition's production-driver evidence transfers directly.

Controller platform

controllers/pinmame/wpc-alpha.json was reused unchanged. Its address rules (switches 1-8 and 11-88/111-118 matrix, solenoids 1-50, lamps 11-88, five G.I. strings 0-4) match fhGameData exactly. FunHouse itself never uses the 111-118 Fliptronic column at all — both flipper switches (11 Right Flipper, 12 Left Flipper) sit in the ordinary 8x8 matrix, confirmed directly by FLIP_SWNO(12,11)'s explicit switch-number override.

FunHouse has no CPU-controlled flipper solenoid

This is the single most important structural fact about this machine's I/O model, and it generalizes to every future WPC-Alpha/WPC-DMD (pre-Fliptronics) machine this project curates. fhGameData's flipper field is FLIP_SWNO(12,11) alone — no FLIP_SOL() call. Pinned core_getSol/core_updateSw only route a public solenoid address to a flipper-coil position (CORE_FIRSTLFLIPSOL=45, CORE_FIRSTUFLIPSOL=33) when the driver's own hw.flippers bitmask declares FLIP_SOL(...); FunHouse's bitmask never does. The printed Flipper Circuits wiring page (manual page 3-17) independently confirms the physical construction: Left/Right Flipper Power and four Upper/Lower Flipper positions are wired through a dedicated flipper driver board (connectors J109/J110) straight to the flipper buttons and end-of-stroke switches, with no printed solenoid address anywhere on that page. GENWPC_HASFLIPTRON in pinned wpc.c excludes both GEN_WPCALPHA_1/GEN_WPCALPHA_2 and GEN_WPCDMD — i.e. every WPC generation before true Fliptronics lacks CPU flipper-coil control entirely, not just the alphanumeric-display machines. A curator working a WPC-DMD (monochrome DMD, still pre-Fliptronics) machine should check this exact same fact rather than assuming a WPC-generation DMD game has Fliptronic addresses.

Switch matrix: a clean two-opto sweep

FunHouse's manual identifies opto construction by a plain "(opto)" suffix directly in a switch's printed description — never by matrix-cell shading (unlike Monster Bash's shaded "OPTO, TYPICALLY CLOSED" cells). Sweeping every printed cell on both the switch-locations page (2-38) and the switch-matrix wiring page (2-39) finds exactly two: switch 51 (Dummy Jaw) and switch 55 (Steps Superdog). Pinned fhGameData's inverted-switch mask is {0x00,0x00,0x00,0x00,0x00,0x11,0x00, 0x00,0x00,0x00,0x00,0x00} — column 5 = 0x11 = binary 00010001 = bits 1 and 5 set = row 1 (address 51) and row 5 (address 55). Zero disagreement: both printed optos are the exact two PinMAME normalizes, and nothing else in the matrix is opto construction on either page.

Two unresolved conflicts

conflict.gangway-lamp-12-value. The lamp-locations page (2-36) prints lamp 12 as "Gangway 10,000"; the lamp-matrix wiring page (2-37) prints the same address as "Gangway 100,000". Both were confirmed at 600 dpi — this is a genuine cross-page disagreement, not a misread. Lamps 11, 13, 14, 15, 16 print an unambiguous ascending ladder (75,000 / 150,000 / 200,000 / 250,000 / Extra Ball) on both pages, which only 100,000 continues monotonically. The promoted definition's label uses "Gangway 100,000" on the strength of that pattern, but the underlying print disagreement is recorded as unresolved rather than silently discarded — a plain "10,000" reading has not been independently ruled out (e.g. by a lower-value early-ladder step that just isn't the value the neighbors suggest).

conflict.gi-region-naming. The manual's G.I. locations page (2-40) labels string 02 "Front Playfield" and string 05 "Top Playfield". The retained known-working script's own UpdateGI/ UpdateGI2 region-header comment labels the same two addresses (0-based Case 1, Case 4) "Rudy" and "Lower Playfield" — and its actual implemented behavior matches the script's own labels exactly: Case 1 drives only the RudySign1/RudySign2/RudyShade collection (not a generic playfield wash), and Case 4 drives the GI_Lower collection (the opposite end of the table from "Top"). String 01 ("Upper Backglass"/Case 0) agrees between both sources, and string 03 ("Rear Playfield"/Case 2 "Upper Playfield") is a plausible reconciliation under this project's y=0-is-rear coordinate convention (the "upper" screen direction and the "rear" physical direction describe the same end of the table), but strings 02 and 05 remain a direct, unreconciled contradiction about which physical region each address illuminates. The promoted definition names each G.I. device from the manual (physical-construction authority) while using the script's real implemented light collections for spatial placement (runtime authority), and discloses the disagreement on both affected devices.

Rudy: three independent mechanisms sharing one figure

Rudy the animated dummy is genuinely three separate drive systems packed into one head assembly (A-13718 Head Assembly), not one:

  1. Jaw — solenoids 21 (Mouth Motor, A-13997 DC gearmotor) and 22 (Up/Down Driver, direction relay) together, through a worm gear/sector pair (A-13752 Jaw Drive Assembly). Pinned fh_handleMech: jaw open + (21 energized, 22 not) → close; jaw closed + (21 and 22 both energized) → open. This is a motor-plus-direction-relay mechanism, the same structural pattern this project has already documented for Monster Bash's Dracula motor and Tales of the Arabian Nights' Ringmaster — check for it whenever a manual lists two solenoids with "Motor"/"Driver" or "Forward"/"Backward"/"Up"/"Down" naming on a mechanism.
  2. Eyelid latch — solenoids 26 (open) / 27 (close), a persistent two-state latch independent of jaw position.
  3. Eye left/right — solenoids 25 (right) / 28 (left), read as a momentary position signal each mechanics tick rather than a latch; neither held means eyes-straight.

None of the five eye/jaw-adjacent solenoids (21, 22, 25-28) has a dedicated VPX mechanism object distinct from the head figure itself in the retained extraction, so all five are spatially projected onto switch 51 (Dummy Jaw), the only fixed point recorded for the assembly.

Trap door: switch state read from the door's own rotation, not a contact switch

The retained script's TrapMover_Timer sets Controller.Switch(76) = 1 (Trap Door Closed) once the door primitive's RotX falls to 90 degrees and clears it once the door opens past 90 — exactly the "sensor state derived from a continuous mechanism position, not a discrete switch object" pattern this project has repeatedly documented (Dracula's position optos, the Up/Down Bank, the Frankenstein table). Solenoid 5 opens and solenoid 6 closes the door; both are projected onto the same trap-door primitive as switch 76 for the same reason.

Two addresses named "Kickbig" that are not typos of each other

The manual prints "Kickbig" as a real term twice: solenoid 3 ("Kickbig", Rudy's Hideout kicker) and solenoid 4 ("Tunnel Kickbig", the tunnel kickout coil). These are two distinct, unrelated circuits — not a duplicated label or an OCR artifact — and the manual is internally consistent about it (the parts list, the switch table, and the schematic pages all use the same spelling). Do not silently "correct" this to "Kickback" without independent evidence; it is transcribed verbatim here.

Flasher solenoid quantities are disclosed, not individually placed

The solenoid table prints explicit bulb counts for six flasher circuits: 17 (3 Blue Flashers), 18 (Dummy Flashers, read as 1), 19 (2 Clock Flashers), 20 (2 Superdog Flashers), 23 (3 Red Flashers), 24 (3 Clear Flashers). Each is treated as one physical dome/flasher fixture location (using the retained table's primary dome/flasher render object) with the printed bulb count recorded in physical.quantity and physical.notes, rather than attempting to place each individual bulb — a flasher dome with multiple bulbs bundled together is a single fixture location in a way a lamp-matrix insert with (x N) spread across the playfield is not (compare lamps 53/61/82 below, which genuinely are spread across the playfield and get one placement per bulb).

Lamp matrix is fully populated; three multi-bulb addresses confirmed by geometry

Unlike the switch and solenoid tables (which both list several unfitted positions), the 64-address lamp matrix has no "Not Used" row at all — every position lights a real bulb. Three addresses carry an explicit (x 2) marker on the lamp-matrix page: 53 (Superdog Lamp), 61 (Left & Inside Rt Flipper Lanes), and 82 (Special Outlanes). The retained table's own object geometry independently confirms this is a real quantity, not a rendering artifact: l53/l53a sit roughly 48 units apart, and l61/l61a and l82/l82a sit on opposite sides of the table entirely (over 580 units apart for 61, matching its printed "Left & Inside Rt" description literally). By contrast, addresses 51, 52, and 72 (all "Jet Bumper" lamps) carry a second or third same-named object in the retained table (l51a/l51b, etc.) that sits within about 15-25 units of the primary object — the same bumper's own cap-plus-skirt lighting layers rather than a second physical bulb — and the manual prints no quantity marker for any of the three, so each gets exactly one placement.

Three lamps with a real bulb but no resolved coordinate

Addresses 54 (Steps Lights Frenzy), 55 (Steps Lights Ex. Ball), and 56 (Steps 500,000) are each modeled in the retained table by four separate "finger"-shaped Light objects (Bot_finger_1-4, Mid_finger_1-4, Top_finger_1-4) forming a chase-lit arrow icon, not by one bulb at one fixed coordinate. The manual states a single #555/#44 bulb per address with no quantity marker. Rather than guess which of the four finger segments is "the" bulb (or invent a centroid, which this project's own Centaur lamp-113 lesson already established as the worst kind of fabrication), spatial placement for these three addresses is left unresolved and named in coverage.missing.

G.I. strings 2 and 4: real light collections, individual bulbs not yet extracted

G.I. address 2 ("Rear Playfield") drives the retained script's GI_Upper collection (19 Light objects); address 4 ("Top Playfield") drives GI_Lower (45 objects). Both are genuine playfield lighting circuits with real implemented geometry, but per-bulb spatial extraction for these two collections was not completed in this curation pass — recorded as a named spatial gap rather than either skipped silently or approximated. G.I. address 1 ("Front Playfield"/script "Rudy") drives only three objects (RudySign1, RudySign2, RudyShade) and was fully placed. G.I. addresses 0 and 3 have no case handler in the retained script at all (no playfield lighting effect implemented for either), matching their manual descriptions as backbox/insert-panel circuits.

Outstanding work

  • switch.matrix-63 (Right Trough) has no dedicated VPX trigger/target object in the retained extraction.
  • Lamps 54/55/56 and G.I. strings 2/4's individual bulbs (see above).
  • The two unresolved conflicts above.
  • This note has not yet had the mandatory independent high-tier cross-provider review described in docs/INSTRUCTIONS.md; coverage.missing includes recreation_notes for exactly this reason.

ROM sets

Every driver that resolves to this physical machine.

ROM set Description Year Parent Hardware
fh_907hFunhouse (9.07H LED Ghost Fix + Ballsaver MOD)
9.07H LED ghost fix plus ball-saver MOD, a community patch of 9.05H; no controller-address or playfield change.
2026fh_l9identical
fh_906hFunhouse (9.06H Coin Play)
9.06H Coin Play game ROM; a later firmware revision of the same physical machine with no controller-address or playfield change.
1996fh_l9identical
fh_905hFunhouse (9.05H)
9.05H game ROM. This is the driver the retained known-working script binds to (Const cGameName="fh_905h"); it drives the identical I/O inventory as L-9.
1996fh_l9identical
fh_l9bFunhouse (L-9, SL-3 Improved German translation MOD)
L-9 with an unofficial improved German translation MOD; no controller-address or playfield change.
1992fh_l9identical
fh_l9Funhouse (L-9, SL-3)
Williams production L-9 game ROM (sound level SL-3) shipped with the physical machine; the switch matrix, lamp matrix, solenoid/flasher table, and playfield hardware are the reference for this definition.
1992identical
fh_d9bFunhouse (D-9, SL-3 Improved German translation MOD LED Ghost Fix)
D-9 with the same unofficial improved German translation MOD and LED ghost fix; no controller-address or playfield change.
1992fh_l9identical
fh_d9Funhouse (D-9, SL-3 LED Ghost Fix)
D-9 game ROM; an LED ghost-fix revision of L-9 with no controller-address or playfield change.
1992fh_l9identical
fh_l5Funhouse (L-5)
L-5 game ROM; no controller-address or playfield change.
1991fh_l9identical

Parent set: fh_l9 — 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 fh_* clone tree

    by
    PinMAME contributors
    rev
    4ec52ff0ac13
  • PinMAME source

    BSD-3-Clause

    pinmame.core.4ec52ff0ac13

    src/wpc/sims/wpc/full/fh.c fhGameData GEN_WPCALPHA_2 with wpc_dispAlpha, FLIP_SWNO(12,11) (flipper switches only, no FLIP_SOL -- no CPU-controlled flipper solenoid is declared for this driver), the inverted-switch mask {0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x00,0x00,0x00} (column 5 = 0x11 = bits 1 and 5 = addresses 51 and 55), swStart/swTilt/swSlamTilt/swCoinDoor dedicated switches, every swXX/sXX #define, fh_handleMech (diverter, step gate, trap door, Rudy jaw/eyes causality), fhpa1GameData (GEN_WPCALPHA_1 prototype variant), and init_fh's driver-name dispatch between the two; src/wpc/wpc.c wpc_dispAlpha layout and GENWPC_HASFLIPTRON/GENWPC_HASDMD exclusion of GEN_WPCALPHA_1/GEN_WPCALPHA_2; src/wpc/core.h CORE_MAXSWCOL=16 (columns 0-9 matrix, 10 coin door, 11 cabinet/flippers) and CORE_FIRSTLFLIPSOL/CORE_FIRSTUFLIPSOL; src/wpc/gen.h GEN_WPCALPHA_1/GEN_WPCALPHA_2 definitions.

    by
    PinMAME contributors
    rev
    4ec52ff0ac13
  • Human review

    BSD-3-Clause

    controller-profile.pinmame-wpc-alpha

    WPC-Alpha public switch, DIP, solenoid, lamp, and five-GI address rules, reused unchanged for this first WPC-Alpha machine curated in the project

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

    manual.williams.funhouse.1990

    122-page Williams FunHouse operations manual scan (Internet Archive item arcademanual_Funhouse_OPS), with a working but multi-column-scrambled text layer. Printed pages 2-36 through 2-40 carry the lamp/switch/solenoid/G.I. location parts lists and their matrix and wiring tables; printed pages 2-24 and 2-32 carry the Jaw Drive/Eject Assembly and Unique Parts pages that fix Rudy's and the trap door's mechanism construction; Section 3 (printed 3-15 through 3-17) carries the Interboard Wiring switch/lamp/solenoid/G.I./flipper circuit tables.

    external:pinmame-manuals/by-machine/williams.funhouse.1990/archive-arcademanual_Funhouse_OPS/Funhouse_OPS.pdf
    by
    Williams Electronics Games, Inc.; scan hosted by the Internet Archive
    sha256
    b658e7d0985a…
  • Human review

    manual-support.williams.funhouse.1990

    Consolidated retained human transcription of every rendered manual table used by this definition, together with the rendered PNG page cache under external:pinmame-manuals/rendered/williams.funhouse.1990/. Duplicates the in-repository evidence excerpts in one document for reviewer convenience.

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

    vpx-table.fh-1-3

    Retained known-working recreation of the physical machine, version 1.3. 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/funhouse-1990/source/Funhouse%20%28Williams%201990%29_1.3.vpx
    by
    VPX table authors
    sha256
    69c37fa9a84e…
  • VPX script

    vpx-script.fh-1-3

    Retained embedded script (80,593 bytes). Runtime and mechanism-causality authority: Const cGameName = "fh_905h" (line 64; the commented-out line 63 reads "fh_905" and is not the active binding), the SolCallback table for solenoids 1-8, 14-28, the UpdateLamps per-address light bindings, the UpdateGI/UpdateGI2 G.I. region dispatch (Case 0/1/2/3/4), the trap door TrapMover_Timer state machine (Controller.Switch(76) set from PrTrap.RotX), and the SolCallback(sLRFlipper)/SolCallback(sLLFlipper) generic core.vbs registration that this driver never exercises (fhGameData declares no FLIP_SOL).

    external:pinmame-vpx-sources/williams/funhouse-1990/extracted-vpxtool/script.vbslines 64
    by
    table authors
    sha256
    322fba2dec93…
  • VPX table

    vpx-extraction.fh-1-3

    Canonical manifest covering every sorted relative POSIX path, byte size, and SHA-256 under extracted-vpxtool; manifest SHA-256 85620e05458bd72bc57c2e203001a0f35db9806431e66e07ee08f05e90346ba9; 2212 files, 219908807 bytes, produced with vpxtool from the retained table. Bounds are left=0 top=0 right=964 bottom=2162.

    external:pinmame-vpx-sources/williams/funhouse-1990/extracted-vpxtool.manifest.json
    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.

Same platform