The Machine: Bride of Pinbot

Partial

Williams1991WPCwilliams.the-machine-bride-of-pinbot.1991

1 unresolved conflict

  • Legacy sources disagree on label: 'ROM Started' versus 'Flasher - Jackpot'. binding:pinmame.output.solenoid/19/None

Wire it up

what an authoring tool needs first
Bind this ROM
bop_l7

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

Controller platform
pinmame.wpc

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

No display inventory recorded yet.

Address space
Switches
1–118 (57)
Solenoids
1–48 (23)
Lamps
11–119 (82)
GI
2–4 (2)
Cabinet & flipper inputs
112flipper.lower.right114flipper.lower.left116flipper.upper.right118flipper.upper.left1cabinet.coin.12cabinet.coin.23cabinet.coin.34cabinet.coin.4

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

Coverage

Partial

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

Catalog Identity
observed
Address Enumeration
candidate
Semantic Naming
candidate
Physical Wiring
candidate
Mechanisms
unknown
Variant Coverage
candidate
Recreation Knowledge
candidate
Still missing · 13
IdentityController PlatformInput EnumerationInput SemanticsOutput EnumerationOutput SemanticsDisplay InventoryMechanism InventoryMechanism BehaviorPolarityVariant DifferencesRecreation NotesProvenance

Switches

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

57 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
65–72
73–80
81–88
89–96
97–104
105–112
113–120
Hover or tap an address to identify it.
57 shown
# Name Device ID Role Evidence
1
Coin Button 1
switch.coin-1
cabinet.coin.1
candidate
2
Coin Button 2
switch.coin-2
cabinet.coin.2
candidate
3
Coin Button 3
switch.coin-3
cabinet.coin.3
candidate
4
Coin Button 4
switch.coin-4
cabinet.coin.4
candidate
5
Cancel
switch.cancel
service.cancel
candidate
6
Down
switch.down
service.down
candidate
7
Up
switch.up
service.up
candidate
8
Enter
switch.enter
service.enter
candidate
11
Right Flipper Cabinet Switch
switch.right-flipper-cabinet-switch
candidate
12
Left Flipper Cabinet Switch
switch.left-flipper-cabinet-switch
candidate
14
Plumb Bob TiltNC
switch.plumb-bob-tilt
candidate
15
Left Outlane
switch.left-outlane
candidate
16
Right Outlane
switch.right-outlane
candidate
17
Left Inlane
switch.left-inlane
candidate
18
Right Inlane
switch.right-inlane
candidate
25
Trough 3 (Ball Release)
switch.trough-3-ball-release
candidate
26
Trough 2
switch.trough-2
candidate
27
Trough 1
switch.trough-1
candidate
28
Standup Target
switch.standup-target
candidate
31
Shooter Lane / Plunger
switch.shooter-lane-plunger
candidate
32
Right Ramp Made
switch.right-ramp-made
candidate
33
Left Ramp Made
switch.left-ramp-made
candidate
34
Inner Loop
switch.inner-loop
candidate
35
Outer Loop
switch.outer-loop
candidate
36
Standup Target (Center)
switch.standup-target-center
candidate
37
Standup Target (Right)
switch.standup-target-right
candidate
38
Drain / Outhole
switch.drain-outhole
candidate
41
Enter Skill Shot Lane
switch.enter-skill-shot-lane
candidate
43
Rollover Switch
switch.rollover-switch
candidate
44
Rollover Switch
switch.rollover-switch.44
candidate
45
Rollover Switch
switch.rollover-switch.45
candidate
46
Ball Scoop / Kickout Hole
switch.ball-scoop-kickout-hole
candidate
47
Skill Shot Target
switch.skill-shot-target
candidate
51
Spinner
switch.spinner
candidate
52
Right Return Lane
switch.right-return-lane
candidate
53
Left Jet Bumper
switch.left-jet-bumper
candidate
54
Lower Jet Bumper
switch.lower-jet-bumper
candidate
55
Upper Jet Bumper
switch.upper-jet-bumper
candidate
56
Upper Slingshot
switch.upper-slingshot
candidate
57
Left Slingshot
switch.left-slingshot
candidate
58
Right Slingshot
switch.right-slingshot
candidate
63
Left Eye (Head Face 2)
switch.left-eye-head-face-2
candidate
64
Right Eye (Head Face 2)
switch.right-eye-head-face-2
candidate
65
Mouth (Head Face 1)
switch.mouth-head-face-1
candidate
67
Head Position Switch
switch.head-position-switch
candidate
71
Drop Target / Lock Entrance
switch.drop-target-lock-entrance
candidate
72
Ball Lock
switch.ball-lock
candidate
73
Right Ramp Entry
switch.right-ramp-entry
candidate
74
Left Ramp Entry
switch.left-ramp-entry
candidate
75
Jet Bumper Lane Entry
switch.jet-bumper-lane-entry
candidate
76
Right Loop
switch.right-loop
candidate
77
Left Loop / Orbit
switch.left-loop-orbit
candidate
100
Rubber Band Contact
switch.rubber-band-contact
candidate
112
Lower Right Flipper
switch.flipper-lower-right
flipper.lower.right
candidate
114
Lower Left Flipper
switch.flipper-lower-left
flipper.lower.left
candidate
116
Upper Right Flipper
switch.flipper-upper-right
flipper.upper.right
candidate
118
Upper Left Flipper
switch.flipper-upper-left
flipper.upper.left
candidate

Controlled devices

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

Coils, magnets & motors

15
15 shown
# Name Device ID Evidence
1
Outhole Kicker
device.outhole-kicker candidate
2
Ball Release / Trough Eject
device.ball-release-trough-eject candidate
3
Ball Scoop Kickout
device.ball-scoop-kickout candidate
4
Diverter Gate
device.diverter-gate candidate
5
Skill Shot Launch
device.skill-shot-launch candidate
6
Ball Lock Post
device.ball-lock-post candidate
7
Knocker
device.knocker candidate
8
Mouth Eject
device.mouth-eject candidate
15
Left Eye Eject
device.left-eye-eject candidate
16
Right Eye Eject
device.right-eye-eject candidate
27
Head Motor Direction
device.head-motor-direction candidate
28
Head Motor Drive
device.head-motor-drive candidate
40
Flipper Relay Enable
device.flipper-relay-enable candidate
46
Right Flipper
device.flipper-lower-right candidate
48
Left Flipper
device.flipper-lower-left candidate

Flashers

8
8 shown
# Name Device ID Evidence
17
Flasher - Billions
device.flasher-billions candidate
18
Flasher - Left Ramp
device.flasher-left-ramp candidate
19
ROM Started
device.game-on candidate
20
Flasher - Skill Shot
device.flasher-skill-shot candidate
21
Flasher - Left Helmet Dome
device.flasher-left-helmet-dome candidate
22
Flasher - Right Helmet Dome
device.flasher-right-helmet-dome candidate
23
Flasher - Jets Enter Dome
device.flasher-jets-enter-dome candidate
24
Flasher - Left Loop Dome
device.flasher-left-loop-dome candidate

Lamps

82

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
65–72
73–80
81–88
89–96
97–104
105–112
113–120
Hover or tap an address to identify it.
82 shown
# Name Device ID Evidence
11
Insert
lamp.insert candidate
12
Insert
lamp.insert.12 candidate
13
Insert
lamp.insert.13 candidate
14
Insert
lamp.insert.14 candidate
15
Insert
lamp.insert.15 candidate
16
Insert
lamp.insert.16 candidate
17
Insert
lamp.insert.17 candidate
18
Insert
lamp.insert.18 candidate
21
Insert
lamp.insert.21 candidate
22
Insert
lamp.insert.22 candidate
23
Insert
lamp.insert.23 candidate
24
Insert
lamp.insert.24 candidate
25
Insert
lamp.insert.25 candidate
26
Insert
lamp.insert.26 candidate
27
Insert
lamp.insert.27 candidate
28
Insert
lamp.insert.28 candidate
31
Insert
lamp.insert.31 candidate
32
Insert
lamp.insert.32 candidate
33
Insert
lamp.insert.33 candidate
34
Insert
lamp.insert.34 candidate
35
Insert
lamp.insert.35 candidate
36
Insert
lamp.insert.36 candidate
37
Insert / Helmet
lamp.insert-helmet candidate
38
Insert / Helmet (multi-object: l38a-m)
lamp.insert-helmet-multi-object-l38a-m candidate
41
Skill Shot Lane
lamp.skill-shot-lane candidate
42
Skill Shot Lane
lamp.skill-shot-lane.42 candidate
43
Skill Shot Lane
lamp.skill-shot-lane.43 candidate
44
Skill Shot Lane
lamp.skill-shot-lane.44 candidate
45
Skill Shot Lane
lamp.skill-shot-lane.45 candidate
46
Left Eye
lamp.left-eye candidate
47
Right Eye
lamp.right-eye candidate
48
Mouth
lamp.mouth candidate
51
Insert
lamp.insert.51 candidate
52
Insert
lamp.insert.52 candidate
53
Insert
lamp.insert.53 candidate
54
Insert
lamp.insert.54 candidate
55
Insert
lamp.insert.55 candidate
56
Insert
lamp.insert.56 candidate
57
Insert
lamp.insert.57 candidate
58
Insert
lamp.insert.58 candidate
61
Insert
lamp.insert.61 candidate
62
Insert
lamp.insert.62 candidate
63
Insert
lamp.insert.63 candidate
64
Ball Lock Light
lamp.ball-lock-light candidate
65
Insert
lamp.insert.65 candidate
66
Insert
lamp.insert.66 candidate
67
Insert
lamp.insert.67 candidate
68
Insert
lamp.insert.68 candidate
71
Backglass Body 8 (VR-only)
lamp.backglass-body-8-vr-only candidate
72
Backglass Body 7 (VR-only)
lamp.backglass-body-7-vr-only candidate
73
Backglass Body 6 (VR-only)
lamp.backglass-body-6-vr-only candidate
74
Backglass Body 5 (VR-only)
lamp.backglass-body-5-vr-only candidate
75
Backglass Body 4 (VR-only)
lamp.backglass-body-4-vr-only candidate
76
Backglass Body 3 (VR-only)
lamp.backglass-body-3-vr-only candidate
77
Backglass Body 2 (VR-only)
lamp.backglass-body-2-vr-only candidate
78
Backglass Body 1 (VR-only)
lamp.backglass-body-1-vr-only candidate
81
Backglass Hip (VR-only)
lamp.backglass-hip-vr-only candidate
82
Backglass Mid Leg (VR-only)
lamp.backglass-mid-leg-vr-only candidate
83
Backglass Knee (VR-only)
lamp.backglass-knee-vr-only candidate
84
Backglass Foot (VR-only)
lamp.backglass-foot-vr-only candidate
85
Backglass Shoulder (VR-only)
lamp.backglass-shoulder-vr-only candidate
86
Flasher / Lamp
lamp.flasher-lamp candidate
87
Flasher / Lamp
lamp.flasher-lamp.87 candidate
88
Flasher / Lamp
lamp.flasher-lamp.88 candidate
91
GI String
lamp.gi-string candidate
92
GI String
lamp.gi-string.92 candidate
93
GI String
lamp.gi-string.93 candidate
94
GI String
lamp.gi-string.94 candidate
95
GI String
lamp.gi-string.95 candidate
96
GI String
lamp.gi-string.96 candidate
97
GI String
lamp.gi-string.97 candidate
98
GI String
lamp.gi-string.98 candidate
101
GI String
lamp.gi-string.101 candidate
102
GI String
lamp.gi-string.102 candidate
103
GI String
lamp.gi-string.103 candidate
104
GI String
lamp.gi-string.104 candidate
105
GI String
lamp.gi-string.105 candidate
106
GI String
lamp.gi-string.106 candidate
107
GI String
lamp.gi-string.107 candidate
108
GI String
lamp.gi-string.108 candidate
117
Flasher - Billions
lamp.flasher-billions candidate
119
Flasher - Jackpot
lamp.flasher-jackpot candidate

General illumination

2
2 shown
# Name Device ID Evidence
2
GI Rear
gi.gi-rear candidate
4
GI Front
gi.gi-front candidate

Recreation notes

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

Coverage
partial - source-derived recreation knowledge requiring validation

Overview

Legacy evidence identifies this candidate as Williams (1991). The information below is preserved for recreation work but is not automatically treated as validated physical-machine fact.

Playfield devices

Switch, lamp/GI, and controlled-device candidates are in the adjacent machine definition. Source-specific implementation notes are retained below.

Custom mechanisms

No custom mechanism conclusion has been validated. Manuals, schematics, PinMAME source, and gameplay evidence still need to be checked.

Ball-state transitions

Ball paths, trough ordering, locks, kickouts, and causal transitions have not yet been normalized. Relevant source notes follow under Evidence notes.

Controller interactions

Controller callbacks and bindings are candidate evidence only until reconciled against PinMAME and physical documentation.

Service and setup information

Unknown; locate operator/service documentation.

Timing and tuning observations

Source timing values may describe a particular VPX implementation rather than physical hardware and require review.

Recreation guidance

Do not treat this partial definition as a complete authoring specification. Resolve every coverage requirement and conflict before promotion.

Evidence notes

  • platforms/wpc.json#/coils/1: Unbound legacy outputs record c_flipper_lower_right was retained as a migration note only.
  • platforms/wpc.json#/coils/2: Unbound legacy outputs record c_flipper_lower_left was retained as a migration note only.
  • platforms/wpc.json#/coils/3: Unbound legacy outputs record c_flipper_upper_right was retained as a migration note only.
  • platforms/wpc.json#/coils/4: Unbound legacy outputs record c_flipper_upper_left was retained as a migration note only.
  • games/bop.json#/switches/0._note: Set via Controller.Switch(11) in Table1_KeyDown/KeyUp on RightFlipperKey
  • games/bop.json#/switches/1._note: Set via Controller.Switch(12) in Table1_KeyDown/KeyUp on LeftFlipperKey
  • games/bop.json#/switches/2._note: vpmNudge.TiltSwitch = 14
  • games/bop.json#/switches/3._note: Hit/UnHit rollover switch
  • games/bop.json#/switches/4._note: Hit/UnHit rollover switch
  • games/bop.json#/switches/5._note: Hit/UnHit rollover switch
  • games/bop.json#/switches/6._note: Hit/UnHit rollover switch
  • games/bop.json#/switches/7._note: Top trough switch closest to shooter lane. CreateSizedballWithMass at init. Trough exit — kicked by solenoid 2.
  • games/bop.json#/switches/8._note: Middle trough switch. CreateSizedballWithMass at init.
  • games/bop.json#/switches/9._note: Bottom trough switch (drain end). CreateSizedballWithMass at init.
  • games/bop.json#/switches/10._note: PulseSw 28 from sw28_Hit. Drop target with animation.
  • games/bop.json#/switches/11._note: Hit/UnHit rollover switch. Also used as plungerIM.switch for impulse plunger.
  • games/bop.json#/switches/12._note: Hit/UnHit rollover switch
  • games/bop.json#/switches/13._note: Hit/UnHit rollover switch
  • games/bop.json#/switches/14._note: Hit/UnHit rollover switch
  • games/bop.json#/switches/15._note: Hit/UnHit rollover switch
  • games/bop.json#/switches/16._note: PulseSw 36 from sw36_Hit. Drop target with animation.
  • games/bop.json#/switches/17._note: PulseSw 37 from sw37_Hit. Drop target with animation.
  • games/bop.json#/switches/18._note: Set via controller.switch(38) in Drain_hit. Cleared by kisort (solenoid 1).
  • games/bop.json#/switches/19._note: PulseSw 41 from sw41_Hit
  • games/bop.json#/switches/20._note: Hit/UnHit rollover switch
  • games/bop.json#/switches/21._note: Hit/UnHit rollover switch
  • games/bop.json#/switches/22._note: Hit/UnHit rollover switch
  • games/bop.json#/switches/23._note: Hit/UnHit kicker switch. Ejected by solenoid 3 (SolKickout).
  • games/bop.json#/switches/24._note: PulseSw 47 from sw47_Hit
  • games/bop.json#/switches/25._note: PulseSw 51 from sw51_Spin sub
  • games/bop.json#/switches/26._note: Hit/UnHit rollover switch
  • games/bop.json#/switches/27._note: PulseSw 53 from Bumper1_Hit
  • games/bop.json#/switches/28._note: PulseSw 54 from Bumper3_Hit
  • games/bop.json#/switches/29._note: PulseSw 55 from Bumper2_Hit
  • games/bop.json#/switches/30._note: PulseSw 56 from UpperSlingShot_Slingshot
  • games/bop.json#/switches/31._note: PulseSw 57 from LeftSlingShot_Slingshot
  • games/bop.json#/switches/32._note: PulseSw 58 from RightSlingShot_Slingshot
  • games/bop.json#/switches/33._note: Controller.Switch(63) set in sw63x_Hit. Enabled only when currentFace=2. Ejected by solenoid 15 (KickLeftEye).
  • games/bop.json#/switches/34._note: Controller.Switch(64) set in sw64x_Hit. Enabled only when currentFace=2. Ejected by solenoid 16 (KickRightEye).
  • games/bop.json#/switches/35._note: Controller.Switch(65) set in sw65x_Hit. Enabled only when currentFace=1. Ejected by solenoid 8 (KickMouth).
  • games/bop.json#/switches/36._note: Mechanism switch. Set to TRUE when currentFace is 1, 2, or 3 (faces that close the switch). Managed by HeadMechCallback. Set to 1 on init.
  • games/bop.json#/switches/37._note: Hit/UnHit switch
  • games/bop.json#/switches/38._note: Hit/UnHit switch. LockWall dropped/raised on hit/unhit.
  • games/bop.json#/switches/39._note: PulseSw 73 from sw73_Hit
  • games/bop.json#/switches/40._note: PulseSw 74 from sw74_Hit
  • games/bop.json#/switches/41._note: PulseSw 75 from sw75_Hit
  • games/bop.json#/switches/42._note: PulseSw 76 from sw76_Hit
  • games/bop.json#/switches/43._note: PulseSw 77 from sw77_Hit
  • games/bop.json#/switches/44._note: PulseSw 100 from multiple wall_Hit subs (wall69, wall75, wall77, wall79, wall80, wall81, wall82, wall83, wall84). Likely mapped in WPC switch matrix extension or opto group.
  • games/bop.json#/coils/0._vbscript_callback: kisort
  • games/bop.json#/coils/0._inferred_type: coil
  • games/bop.json#/coils/0._note: Kicks ball from Drain kicker. Clears switch 38.
  • games/bop.json#/coils/1._vbscript_callback: KickBallToLane
  • games/bop.json#/coils/1._inferred_type: coil
  • games/bop.json#/coils/1._note: Kicks ball from trough to shooter lane.
  • games/bop.json#/coils/2._vbscript_callback: SolKickout
  • games/bop.json#/coils/2._inferred_type: coil
  • games/bop.json#/coils/2._note: Ejects ball from scoop kicker (switch 46).
  • games/bop.json#/coils/3._vbscript_callback: SolGate3
  • games/bop.json#/coils/3._inferred_type: coil
  • games/bop.json#/coils/3._note: Controls Gate3 diverter via vpmSolGate.
  • games/bop.json#/coils/4._vbscript_callback: SolSS
  • games/bop.json#/coils/4._inferred_type: coil
  • games/bop.json#/coils/4._note: Auto-fires impulse plunger for skill shot.
  • games/bop.json#/coils/5._vbscript_callback: solBallLockPost
  • games/bop.json#/coils/5._inferred_type: coil
  • games/bop.json#/coils/5._note: Drops/raises ball lock post (BL wall).
  • games/bop.json#/coils/6._vbscript_callback: KnockerSolenoid
  • games/bop.json#/coils/6._inferred_type: coil
  • games/bop.json#/coils/6._note: Cabinet knocker solenoid. Sound only in VPX.
  • games/bop.json#/coils/7._vbscript_callback: KickMouth
  • games/bop.json#/coils/7._inferred_type: coil
  • games/bop.json#/coils/7._note: Ejects ball from mouth (switch 65, Face 1). Launches ball upward.
  • games/bop.json#/coils/8._vbscript_callback: KickLeftEye
  • games/bop.json#/coils/8._inferred_type: coil
  • games/bop.json#/coils/8._note: Ejects ball from left eye (switch 63, Face 2). Launches ball upward.
  • games/bop.json#/coils/9._vbscript_callback: KickRightEye
  • games/bop.json#/coils/9._inferred_type: coil
  • games/bop.json#/coils/9._note: Ejects ball from right eye (switch 64, Face 2). Launches ball upward.
  • games/bop.json#/coils/10._vbscript_callback: SetLamp 117,
  • games/bop.json#/coils/10._inferred_type: flasher
  • games/bop.json#/coils/10._note: Routes to Lampz lamp 117. Uses SolModCallBack for PWM when UsePinmameModulatedSolenoids=true.
  • games/bop.json#/coils/11._vbscript_callback: SolFlashLR
  • games/bop.json#/coils/11._inferred_type: flasher
  • games/bop.json#/coils/11._note: Left ramp flasher. Custom fading sub. Backglass: Left SpaceShip.
  • games/bop.json#/coils/12._vbscript_callback: SetLamp 119,
  • games/bop.json#/coils/12._inferred_type: flasher
  • games/bop.json#/coils/12._note: Routes to Lampz lamp 119. Backglass: Jackpot. Uses SolModCallBack for PWM.
  • games/bop.json#/coils/13._vbscript_callback: SolFlashSK
  • games/bop.json#/coils/13._inferred_type: flasher
  • games/bop.json#/coils/13._note: Skill shot flasher. Custom fading sub. Backglass: Heart.
  • games/bop.json#/coils/14._vbscript_callback: SetProcRedDome1
  • games/bop.json#/coils/14._inferred_type: flasher
  • games/bop.json#/coils/14._note: Left helmet dome flasher. Uses SolModCallBack SetRedDome1 for PWM. Backglass: Face.
  • games/bop.json#/coils/15._vbscript_callback: SetProcRedDome2
  • games/bop.json#/coils/15._inferred_type: flasher
  • games/bop.json#/coils/15._note: Right helmet dome flasher. Uses SolModCallBack SetRedDome2 for PWM. Backglass: Bottom Right.
  • games/bop.json#/coils/16._vbscript_callback: SetProcRedDome4
  • games/bop.json#/coils/16._inferred_type: flasher
  • games/bop.json#/coils/16._note: Jets entrance dome flasher. Uses SolModCallBack SetRedDome4 for PWM. Backglass: Title Left.
  • games/bop.json#/coils/17._vbscript_callback: SetProcRedDome3
  • games/bop.json#/coils/17._inferred_type: flasher
  • games/bop.json#/coils/17._note: Left loop dome flasher. Uses SolModCallBack SetRedDome3 for PWM. Backglass: Title Right.
  • games/bop.json#/coils/18._vbscript_callback: motor_dir
  • games/bop.json#/coils/18._inferred_type: mechanism
  • games/bop.json#/coils/18._note: PROC-only SolCallback. Controls head rotation direction. Non-PROC uses cvpmMyMech.Sol2=27.
  • games/bop.json#/coils/19._vbscript_callback: motor_sol
  • games/bop.json#/coils/19._inferred_type: mechanism
  • games/bop.json#/coils/19._note: PROC-only SolCallback. Drives head motor on/off. Non-PROC uses cvpmMyMech.Sol1=28.
  • games/bop.json#/coils/20._vbscript_callback: FlipperRelay
  • games/bop.json#/coils/20._inferred_type: coil
  • games/bop.json#/coils/20._note: PROC-only SolCallback. Enables/disables flippers. Non-PROC handles flipper enable via PinMAME framework.
  • games/bop.json#/coils/21._vbscript_callback: SolRFlipper
  • games/bop.json#/coils/21._inferred_type: coil
  • games/bop.json#/coils/21._note: Framework constant sLRFlipper=46 from core.vbs/WPC.VBS. Custom sub handles nFozzy flipper physics.
  • games/bop.json#/coils/22._vbscript_callback: SolLFlipper
  • games/bop.json#/coils/22._inferred_type: coil
  • games/bop.json#/coils/22._note: Framework constant sLLFlipper=48 from core.vbs/WPC.VBS. Custom sub handles nFozzy flipper physics.
  • games/bop.json#/lamps/48._note: VR room backglass lamp
  • games/bop.json#/lamps/49._note: VR room backglass lamp
  • games/bop.json#/lamps/50._note: VR room backglass lamp
  • games/bop.json#/lamps/51._note: VR room backglass lamp
  • games/bop.json#/lamps/52._note: VR room backglass lamp
  • games/bop.json#/lamps/53._note: VR room backglass lamp
  • games/bop.json#/lamps/54._note: VR room backglass lamp
  • games/bop.json#/lamps/55._note: VR room backglass lamp
  • games/bop.json#/lamps/56._note: VR room backglass lamp
  • games/bop.json#/lamps/57._note: VR room backglass lamp
  • games/bop.json#/lamps/58._note: VR room backglass lamp
  • games/bop.json#/lamps/59._note: VR room backglass lamp
  • games/bop.json#/lamps/60._note: VR room backglass lamp
  • games/bop.json#/lamps/61._note: Lampz.MassAssign only, no callback
  • games/bop.json#/lamps/62._note: Lampz.MassAssign only, no callback
  • games/bop.json#/lamps/63._note: Lampz.MassAssign only, no callback
  • games/bop.json#/lamps/80._note: Driven by solenoid 17 via SetLamp/Lampz
  • games/bop.json#/lamps/81._note: Driven by solenoid 19 via SetLamp/Lampz
  • games/bop.json#/gi/0._note: ModLampz GI string 2. Maps to Lampz index 112 in non-modulated mode. GIRear collection. Includes DecalHeart1 material color fade.
  • games/bop.json#/gi/1._note: ModLampz GI string 4. Maps to Lampz index 114 in non-modulated mode. GIFront collection + AmbientOverhead.
  • games/bop.json#/_source/confidence_notes: High confidence on switches/coils. No Const sw* definitions in script — switches identified from _Hit/_UnHit subs, Controller.Switch() calls, PulseSw calls, and trough init. Custom nFozzy trough (not cvpmTrough) with 3 balls at sw27/sw26/sw25(ballrelease). Head mechanism uses cvpmMyMech with sol 27 (direction) and sol 28 (motor), switch 67 (head position). Solenoids 17-24 are flashers — 17 (Billions) and 19 (Jackpot) route through SetLamp to Lampz; 18 (left ramp) and 20 (skill shot) use custom flash subs; 21-24 are dome flashers on the helmet. Solenoids 27/28 are head motor (PROC only via SolCallback, non-PROC uses cvpmMyMech). Solenoid 40 (FlipperRelay) is PROC-only. Flipper coils use framework constants (sLRFlipper=46, sLLFlipper=48 from core.vbs). Cabinet flipper switches 11/12 set directly in KeyDown/KeyUp. UseSolenoids=2 (FastFlips), UseLamps=0, UseSync=1. Script supports both PinMAME and PROC modes. Lamp assignments from Lampz.MassAssign — comprehensive coverage of inserts 11-68, helmet/backglass lamps 71-88, GI at 91-108. Backglass body lamps 71-78 and 81-85 are VR-only. Switch 100 is rubber band impact sensor (PulseSw 100 from multiple wall_Hit subs).

Unresolved questions

  • Is the I/O enumeration complete for every supported physical/controller variant?
  • Which inferred VPX behaviors reflect real hardware, and which are table-script conveniences?
  • Are all mechanism home states, sensors, motion constraints, and ball interactions documented?

Sources

  • legacy.game.bop: games/bop.json at the pinned migration revision.

ROM sets

Every driver that resolves to this physical machine.

ROM set Description Year Parent Hardware
bop_l7Machine: Bride of Pinbot, The (L-7) 1992
bop_l8Machine: Bride of Pinbot, The (L-8 billionaire multiplayer patch) 1991bop_l7
bop_l6Machine: Bride of Pinbot, The (L-6) 1991bop_l7
bop_l5Machine: Bride of Pinbot, The (L-5) 1991bop_l7
bop_l4Machine: Bride of Pinbot, The (L-4) 1991bop_l7
bop_l3Machine: Bride of Pinbot, The (L-3) 1991bop_l7
bop_l2Machine: Bride of Pinbot, The (L-2) 1991bop_l7
bop_d8Machine: Bride of Pinbot, The (D-8 LED Ghost Fix) 1991bop_l7

Parent set: bop_l7 — 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.

  • Legacy definition

    legacy.game.bop

    games/bop.json; origin=vbscript-parser

    by
    pinmame-game-defs contributors
    rev
    4ea106d08072
  • Legacy definition

    legacy.platform.wpc

    platforms/wpc.json

    by
    pinmame-game-defs contributors
    rev
    4ea106d08072
  • PinMAME catalog

    BSD-3-Clause

    pinmame.catalog.4ec52ff0ac13

    PinmameGetGames

    by
    PinMAME contributors
    rev
    4ec52ff0ac13

Something wrong or missing?

This definition still has 13 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