World Cup Soccer

Partial

Midway1994WPCmidway.world-cup-soccer.1994

5 unresolved conflicts

  • Legacy sources disagree on label: 'Coin Button 1' versus 'Coin 1'. binding:pinmame.input.switch/1/None
  • Legacy sources disagree on label: 'Coin Button 2' versus 'Coin 2'. binding:pinmame.input.switch/2/None
  • Legacy sources disagree on label: 'Coin Button 3' versus 'Coin 3'. binding:pinmame.input.switch/3/None
  • Legacy sources disagree on label: 'Coin Button 4' versus 'Coin 4'. binding:pinmame.input.switch/4/None
  • Legacy sources disagree on label: 'ROM Started' versus 'Skill Shot Flasher'. binding:pinmame.output.solenoid/19/None

Wire it up

what an authoring tool needs first
Bind this ROM
wcs_l2

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 (68)
Solenoids
1–48 (27)
Lamps
11–128 (71)
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.

68 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
11
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.

68 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
12
Left Magna Save
switch.left-magna-save
candidate
14
Tilt
switch.tilt
candidate
15
Left Outlane
switch.left-outlane
candidate
16
Target / Left Return Lane
switch.target-left-return-lane
candidate
17
Right Return Lane
switch.right-return-lane
candidate
18
Right Outlane
switch.right-outlane
candidate
22
Coin Door Closed
switch.coin-door-closed
candidate
23
Extra Button
switch.extra-button
candidate
24
Coin Door Closed (Keep)
switch.coin-door-closed-keep
candidate
25
Standup Target
switch.standup-target
candidate
26
Rollover Switch
switch.rollover-switch
candidate
27
Spinner
switch.spinner
candidate
28
Standup Target
switch.standup-target.28
candidate
31
Trough Ball 1
switch.trough-ball-1
candidate
32
Trough Ball 2
switch.trough-ball-2
candidate
33
Trough Ball 3
switch.trough-ball-3
candidate
34
Trough Ball 4
switch.trough-ball-4
candidate
35
Trough Ball 5
switch.trough-ball-5
candidate
36
Ball Release / Shooter Lane
switch.ball-release-shooter-lane
candidate
37
Standup Target
switch.standup-target.37
candidate
38
Shooter Lane
switch.shooter-lane
candidate
41
Goal
switch.goal
candidate
42
Goal Popper
switch.goal-popper
candidate
43
Goalie Position Right
switch.goalie-position-right
candidate
44
Goalie Position Left
switch.goalie-position-left
candidate
45
TV Popper
switch.tv-popper
candidate
47
Rollover Switch
switch.rollover-switch.47
candidate
48
Goalie Hit
switch.goalie-hit
candidate
51
Skill Shot 1
switch.skill-shot-1
candidate
52
Skill Shot 2
switch.skill-shot-2
candidate
53
Skill Shot 3
switch.skill-shot-3
candidate
54
Right Eject Hole
switch.right-eject-hole
candidate
55
Upper Eject Hole
switch.upper-eject-hole
candidate
56
Left Eject Hole
switch.left-eject-hole
candidate
61
Rollover 1
switch.rollover-1
candidate
62
Rollover 2
switch.rollover-2
candidate
63
Rollover 3
switch.rollover-3
candidate
64
Rollover 4
switch.rollover-4
candidate
65
Tackle Target
switch.tackle-target
candidate
66
Standup Target
switch.standup-target.66
candidate
67
Standup Target
switch.standup-target.67
candidate
71
Left Ramp Made (Left)
switch.left-ramp-made-left
candidate
72
Left Ramp Entry Spinner
switch.left-ramp-entry-spinner
candidate
74
Left Ramp Made (Right)
switch.left-ramp-made-right
candidate
75
Right Ramp Entry Spinner
switch.right-ramp-entry-spinner
candidate
76
Mini Playfield Entry
switch.mini-playfield-entry
candidate
77
Mini Playfield Switch
switch.mini-playfield-switch
candidate
78
Right Ramp Made
switch.right-ramp-made
candidate
81
Bumper 1
switch.bumper-1
candidate
82
Bumper 2
switch.bumper-2
candidate
83
Bumper 3
switch.bumper-3
candidate
84
Left Slingshot
switch.left-slingshot
candidate
85
Right Slingshot
switch.right-slingshot
candidate
86
Rollover Switch
switch.rollover-switch.86
candidate
87
Rollover Switch
switch.rollover-switch.87
candidate
88
Rollover Switch
switch.rollover-switch.88
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

27
27 shown
# Name Device ID Kind Evidence
1
Goal Popper
device.goal-popper Coil candidate
2
TV Popper
device.tv-popper Coil candidate
3
Kickback
device.kickback Coil candidate
4
Lock Release Post
device.lock-release-post Coil candidate
5
Upper Eject Hole
device.upper-eject-hole Coil candidate
6
Ball Release
device.ball-release Coil candidate
14
Right Eject Hole
device.right-eject-hole Coil candidate
15
Left Eject Hole
device.left-eject-hole Coil candidate
16
Ramp Diverter
device.ramp-diverter Coil candidate
17
Goal Cage Top Flasher
device.goal-cage-top-flasher Coil candidate
18
Goal Flasher
device.goal-flasher Coil candidate
19
ROM Started
device.game-on Coil candidate
20
Jet Bumpers Flasher
device.jet-bumpers-flasher Coil candidate
21
Goalie Drive Motor
device.goalie-drive-motor Motor candidate
22
Spinning Ball Flasher
device.spinning-ball-flasher Coil candidate
23
Soccer Ball Motor Clockwise
device.soccer-ball-motor-clockwise Motor candidate
24
Soccer Ball Motor Counter-Clockwise
device.soccer-ball-motor-counter-clockwise Motor candidate
25
Left Ramp Entrance Flasher
device.left-ramp-entrance-flasher Coil candidate
26
Lock Area Flasher
device.lock-area-flasher Coil candidate
27
Flipper Lanes Flasher
device.flipper-lanes-flasher Coil candidate
28
Ramp Rear Flasher
device.ramp-rear-flasher Coil candidate
31
Game On Solenoid
device.game-on-solenoid Coil candidate
33
Goalie Magnet
device.goalie-magnet Magnet candidate
34
Loop Gate
device.loop-gate Coil candidate
35
Lock Magnet
device.lock-magnet Magnet candidate
46
Lower Right Flipper
device.lower-right-flipper Coil candidate
48
Lower Left Flipper
device.lower-left-flipper Coil candidate

Lamps

71

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
121–128
Hover or tap an address to identify it.
71 shown
# Name Device ID Evidence
11
Lamp 11
lamp.lamp-11 candidate
12
Lamp 12
lamp.lamp-12 candidate
13
Lamp 13
lamp.lamp-13 candidate
14
Lamp 14
lamp.lamp-14 candidate
15
Lamp 15
lamp.lamp-15 candidate
16
Lamp 16
lamp.lamp-16 candidate
17
Lamp 17
lamp.lamp-17 candidate
18
Lamp 18
lamp.lamp-18 candidate
21
Lamp 21
lamp.lamp-21 candidate
22
Lamp 22
lamp.lamp-22 candidate
23
Lamp 23
lamp.lamp-23 candidate
24
Lamp 24
lamp.lamp-24 candidate
25
Lamp 25
lamp.lamp-25 candidate
26
Lamp 26
lamp.lamp-26 candidate
27
Lamp 27
lamp.lamp-27 candidate
28
Lamp 28
lamp.lamp-28 candidate
31
Lamp 31
lamp.lamp-31 candidate
32
Lamp 32
lamp.lamp-32 candidate
33
Lamp 33
lamp.lamp-33 candidate
34
Lamp 34
lamp.lamp-34 candidate
35
Lamp 35
lamp.lamp-35 candidate
36
Lamp 36
lamp.lamp-36 candidate
37
Lamp 37
lamp.lamp-37 candidate
38
Lamp 38
lamp.lamp-38 candidate
41
Lamp 41
lamp.lamp-41 candidate
42
Lamp 42
lamp.lamp-42 candidate
43
Lamp 43
lamp.lamp-43 candidate
44
Lamp 44
lamp.lamp-44 candidate
45
Lamp 45
lamp.lamp-45 candidate
46
Lamp 46
lamp.lamp-46 candidate
47
Lamp 47
lamp.lamp-47 candidate
48
Lamp 48
lamp.lamp-48 candidate
51
Lamp 51
lamp.lamp-51 candidate
52
Lamp 52
lamp.lamp-52 candidate
53
Lamp 53
lamp.lamp-53 candidate
54
Lamp 54
lamp.lamp-54 candidate
55
Lamp 55
lamp.lamp-55 candidate
56
Lamp 56
lamp.lamp-56 candidate
57
Lamp 57
lamp.lamp-57 candidate
58
Lamp 58
lamp.lamp-58 candidate
61
Lamp 61
lamp.lamp-61 candidate
62
Lamp 62
lamp.lamp-62 candidate
63
Lamp 63
lamp.lamp-63 candidate
64
Lamp 64
lamp.lamp-64 candidate
65
Lamp 65
lamp.lamp-65 candidate
66
Lamp 66
lamp.lamp-66 candidate
67
Lamp 67
lamp.lamp-67 candidate
68
Lamp 68
lamp.lamp-68 candidate
71
Lamp 71
lamp.lamp-71 candidate
72
Lamp 72
lamp.lamp-72 candidate
73
Lamp 73
lamp.lamp-73 candidate
74
Lamp 74
lamp.lamp-74 candidate
75
Lamp 75
lamp.lamp-75 candidate
76
Lamp 76
lamp.lamp-76 candidate
77
Lamp 77
lamp.lamp-77 candidate
78
Lamp 78
lamp.lamp-78 candidate
81
Lamp 81
lamp.lamp-81 candidate
82
Lamp 82
lamp.lamp-82 candidate
83
Lamp 83
lamp.lamp-83 candidate
84
Lamp 84
lamp.lamp-84 candidate
85
Lamp 85
lamp.lamp-85 candidate
86
Lamp 86
lamp.lamp-86 candidate
117
Goal Cage Top Flasher
lamp.goal-cage-top-flasher candidate
118
Goal Flasher
lamp.goal-flasher candidate
119
Skill Shot Flasher
lamp.skill-shot-flasher candidate
120
Jet Bumpers Flasher
lamp.jet-bumpers-flasher candidate
122
Spinning Ball Flasher
lamp.spinning-ball-flasher candidate
125
Left Ramp Entrance Flasher
lamp.left-ramp-entrance-flasher candidate
126
Lock Area Flasher
lamp.lock-area-flasher candidate
127
Flipper Lanes Flasher
lamp.flipper-lanes-flasher candidate
128
Ramp Rear Flasher
lamp.ramp-rear-flasher 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 Midway (1994). 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/wcs.json#/switches/0._vbscript_name: swCoin1
  • games/wcs.json#/switches/0._inferred_type: cabinet
  • games/wcs.json#/switches/0._note: WPC framework constant from WPC.vbs
  • games/wcs.json#/switches/1._vbscript_name: swCoin2
  • games/wcs.json#/switches/1._inferred_type: cabinet
  • games/wcs.json#/switches/1._note: WPC framework constant from WPC.vbs
  • games/wcs.json#/switches/2._vbscript_name: swCoin3
  • games/wcs.json#/switches/2._inferred_type: cabinet
  • games/wcs.json#/switches/2._note: WPC framework constant from WPC.vbs
  • games/wcs.json#/switches/3._vbscript_name: swCoin4
  • games/wcs.json#/switches/3._inferred_type: cabinet
  • games/wcs.json#/switches/3._note: WPC framework constant from WPC.vbs
  • games/wcs.json#/switches/4._vbscript_name: swCancel
  • games/wcs.json#/switches/4._inferred_type: cabinet
  • games/wcs.json#/switches/4._note: WPC framework constant from WPC.vbs
  • games/wcs.json#/switches/5._vbscript_name: swDown
  • games/wcs.json#/switches/5._inferred_type: cabinet
  • games/wcs.json#/switches/5._note: WPC framework constant from WPC.vbs
  • games/wcs.json#/switches/6._vbscript_name: swUp
  • games/wcs.json#/switches/6._inferred_type: cabinet
  • games/wcs.json#/switches/6._note: WPC framework constant from WPC.vbs
  • games/wcs.json#/switches/7._vbscript_name: swEnter
  • games/wcs.json#/switches/7._inferred_type: cabinet
  • games/wcs.json#/switches/7._note: WPC framework constant from WPC.vbs
  • games/wcs.json#/switches/8._vbscript_name: Controller.Switch(12)
  • games/wcs.json#/switches/8._inferred_type: button
  • games/wcs.json#/switches/8._note: Activated via LeftMagnaSave keycode
  • games/wcs.json#/switches/9._vbscript_name: vpmNudge.TiltSwitch
  • games/wcs.json#/switches/9._inferred_type: cabinet
  • games/wcs.json#/switches/9._note: Set via vpmNudge.TiltSwitch = 14
  • games/wcs.json#/switches/10._vbscript_name: sw15
  • games/wcs.json#/switches/10._inferred_type: rollover
  • games/wcs.json#/switches/11._vbscript_name: sw16
  • games/wcs.json#/switches/11._inferred_type: rollover
  • games/wcs.json#/switches/11._note: Also has target T16 pulsing sw16
  • games/wcs.json#/switches/12._vbscript_name: sw17
  • games/wcs.json#/switches/12._inferred_type: rollover
  • games/wcs.json#/switches/13._vbscript_name: sw18
  • games/wcs.json#/switches/13._inferred_type: rollover
  • games/wcs.json#/switches/14._vbscript_name: Controller.Switch(22)
  • games/wcs.json#/switches/14._inferred_type: cabinet
  • games/wcs.json#/switches/14._note: Set to 1 at init
  • games/wcs.json#/switches/15._vbscript_name: Controller.Switch(23)
  • games/wcs.json#/switches/15._inferred_type: button
  • games/wcs.json#/switches/15._note: Activated via keycode 3
  • games/wcs.json#/switches/16._vbscript_name: Controller.Switch(24)
  • games/wcs.json#/switches/16._inferred_type: cabinet
  • games/wcs.json#/switches/16._note: Set to 1 at init
  • games/wcs.json#/switches/17._vbscript_name: T25
  • games/wcs.json#/switches/17._inferred_type: target
  • games/wcs.json#/switches/17._note: PulseSw 25 on T25_Hit
  • games/wcs.json#/switches/18._vbscript_name: sw26
  • games/wcs.json#/switches/18._inferred_type: rollover
  • games/wcs.json#/switches/19._vbscript_name: sw27spinner
  • games/wcs.json#/switches/19._inferred_type: spinner
  • games/wcs.json#/switches/19._note: PulseSw 27 on sw27spinner_Spin
  • games/wcs.json#/switches/20._vbscript_name: T28
  • games/wcs.json#/switches/20._inferred_type: target
  • games/wcs.json#/switches/20._note: PulseSw 28 on T28_Hit
  • games/wcs.json#/switches/21._vbscript_name: bsTrough.InitSw
  • games/wcs.json#/switches/21._inferred_type: trough
  • games/wcs.json#/switches/21._note: bsTrough.InitSw 0, 31, 32, 33, 34, 35, 0, 0
  • games/wcs.json#/switches/22._vbscript_name: bsTrough.InitSw
  • games/wcs.json#/switches/22._inferred_type: trough
  • games/wcs.json#/switches/22._note: bsTrough.InitSw 0, 31, 32, 33, 34, 35, 0, 0
  • games/wcs.json#/switches/23._vbscript_name: bsTrough.InitSw
  • games/wcs.json#/switches/23._inferred_type: trough
  • games/wcs.json#/switches/23._note: bsTrough.InitSw 0, 31, 32, 33, 34, 35, 0, 0
  • games/wcs.json#/switches/24._vbscript_name: bsTrough.InitSw
  • games/wcs.json#/switches/24._inferred_type: trough
  • games/wcs.json#/switches/24._note: bsTrough.InitSw 0, 31, 32, 33, 34, 35, 0, 0
  • games/wcs.json#/switches/25._vbscript_name: bsTrough.InitSw
  • games/wcs.json#/switches/25._inferred_type: trough
  • games/wcs.json#/switches/25._note: bsTrough.InitSw 0, 31, 32, 33, 34, 35, 0, 0
  • games/wcs.json#/switches/26._vbscript_name: vpmTimer.PulseSw 36
  • games/wcs.json#/switches/26._inferred_type: ball_release
  • games/wcs.json#/switches/26._note: Pulsed in SolRelease when ball exits trough
  • games/wcs.json#/switches/27._vbscript_name: T37
  • games/wcs.json#/switches/27._inferred_type: target
  • games/wcs.json#/switches/27._note: PulseSw 37 on T37_Hit
  • games/wcs.json#/switches/28._vbscript_name: sw38
  • games/wcs.json#/switches/28._inferred_type: rollover
  • games/wcs.json#/switches/28._note: Controller.Switch set; triggers CheckBallCount after 1000ms
  • games/wcs.json#/switches/29._vbscript_name: sw41
  • games/wcs.json#/switches/29._inferred_type: target
  • games/wcs.json#/switches/29._note: PulseSw 41 on sw41_Hit; plays goal sounds
  • games/wcs.json#/switches/30._vbscript_name: sw42
  • games/wcs.json#/switches/30._inferred_type: vuk
  • games/wcs.json#/switches/30._note: bsGoalPopper.InitSw 0, 42; VUK kicker
  • games/wcs.json#/switches/31._vbscript_name: mGoalie.AddSw 43
  • games/wcs.json#/switches/31._inferred_type: mech
  • games/wcs.json#/switches/31._note: mGoalie.AddSw 43, 60, 79 -- goalie mech position switch
  • games/wcs.json#/switches/32._vbscript_name: mGoalie.AddSw 44
  • games/wcs.json#/switches/32._inferred_type: mech
  • games/wcs.json#/switches/32._note: mGoalie.AddSw 44, 0, 20 -- goalie mech position switch
  • games/wcs.json#/switches/33._vbscript_name: sw45
  • games/wcs.json#/switches/33._inferred_type: vuk
  • games/wcs.json#/switches/33._note: bsTVPopper.InitSw 0, 45; VUK kicker
  • games/wcs.json#/switches/34._vbscript_name: sw47
  • games/wcs.json#/switches/34._inferred_type: rollover
  • games/wcs.json#/switches/35._vbscript_name: vpmTimer.PulseSw 48
  • games/wcs.json#/switches/35._inferred_type: target
  • games/wcs.json#/switches/35._note: PulseSw 48 on GWalls_Hit -- goalie wall collision
  • games/wcs.json#/switches/36._vbscript_name: sw51
  • games/wcs.json#/switches/36._inferred_type: rollover
  • games/wcs.json#/switches/36._note: PulseSw 51; skill shot target
  • games/wcs.json#/switches/37._vbscript_name: sw52
  • games/wcs.json#/switches/37._inferred_type: rollover
  • games/wcs.json#/switches/37._note: PulseSw 52; skill shot target
  • games/wcs.json#/switches/38._vbscript_name: sw53
  • games/wcs.json#/switches/38._inferred_type: rollover
  • games/wcs.json#/switches/38._note: PulseSw 53; skill shot target
  • games/wcs.json#/switches/39._vbscript_name: sw54
  • games/wcs.json#/switches/39._inferred_type: saucer
  • games/wcs.json#/switches/39._note: bsRightEjectHole.InitKicker sw54, 54
  • games/wcs.json#/switches/40._vbscript_name: sw55
  • games/wcs.json#/switches/40._inferred_type: saucer
  • games/wcs.json#/switches/40._note: bsUpperEjectHole.InitKicker sw55, 55
  • games/wcs.json#/switches/41._vbscript_name: sw56
  • games/wcs.json#/switches/41._inferred_type: saucer
  • games/wcs.json#/switches/41._note: bsLeftEjectHole.InitKicker sw56, 56
  • games/wcs.json#/switches/42._vbscript_name: sw61
  • games/wcs.json#/switches/42._inferred_type: rollover
  • games/wcs.json#/switches/42._note: PulseSw 61; animates Rollover81
  • games/wcs.json#/switches/43._vbscript_name: sw62
  • games/wcs.json#/switches/43._inferred_type: rollover
  • games/wcs.json#/switches/43._note: PulseSw 62; animates Rollover82
  • games/wcs.json#/switches/44._vbscript_name: sw63
  • games/wcs.json#/switches/44._inferred_type: rollover
  • games/wcs.json#/switches/44._note: PulseSw 63; animates Rollover83
  • games/wcs.json#/switches/45._vbscript_name: sw64
  • games/wcs.json#/switches/45._inferred_type: rollover
  • games/wcs.json#/switches/45._note: PulseSw 64; animates Rollover84
  • games/wcs.json#/switches/46._vbscript_name: sw65
  • games/wcs.json#/switches/46._inferred_type: target
  • games/wcs.json#/switches/46._note: PulseSw 65; TackleSW per comment
  • games/wcs.json#/switches/47._vbscript_name: T66
  • games/wcs.json#/switches/47._inferred_type: target
  • games/wcs.json#/switches/47._note: PulseSw 66 on T66_Hit
  • games/wcs.json#/switches/48._vbscript_name: T67
  • games/wcs.json#/switches/48._inferred_type: target
  • games/wcs.json#/switches/48._note: PulseSw 67 on T67_Hit
  • games/wcs.json#/switches/49._vbscript_name: sw71
  • games/wcs.json#/switches/49._inferred_type: rollover
  • games/wcs.json#/switches/49._note: PulseSw 71; left_ramp_made_L per comment
  • games/wcs.json#/switches/50._vbscript_name: sw72
  • games/wcs.json#/switches/50._inferred_type: spinner
  • games/wcs.json#/switches/50._note: Controller.Switch set; left_ramp_entry per comment
  • games/wcs.json#/switches/51._vbscript_name: sw74
  • games/wcs.json#/switches/51._inferred_type: rollover
  • games/wcs.json#/switches/51._note: PulseSw 74; left_ramp_made_R per comment
  • games/wcs.json#/switches/52._vbscript_name: sw75
  • games/wcs.json#/switches/52._inferred_type: spinner
  • games/wcs.json#/switches/52._note: Controller.Switch set; right_ramp_entry per comment
  • games/wcs.json#/switches/53._vbscript_name: sw76
  • games/wcs.json#/switches/53._inferred_type: rollover
  • games/wcs.json#/switches/53._note: Controller.Switch set; minipf per comment; adjusts BallCount
  • games/wcs.json#/switches/54._vbscript_name: sw77
  • games/wcs.json#/switches/54._inferred_type: rollover
  • games/wcs.json#/switches/54._note: Controller.Switch set; minipf per comment
  • games/wcs.json#/switches/55._vbscript_name: sw78
  • games/wcs.json#/switches/55._inferred_type: rollover
  • games/wcs.json#/switches/55._note: PulseSw 78; right_ramp_made per comment
  • games/wcs.json#/switches/56._vbscript_name: Bumper1
  • games/wcs.json#/switches/56._inferred_type: bumper
  • games/wcs.json#/switches/56._note: PulseSw 81 on Bumper1_Hit
  • games/wcs.json#/switches/57._vbscript_name: Bumper2
  • games/wcs.json#/switches/57._inferred_type: bumper
  • games/wcs.json#/switches/57._note: PulseSw 82 on Bumper2_Hit
  • games/wcs.json#/switches/58._vbscript_name: Bumper3
  • games/wcs.json#/switches/58._inferred_type: bumper
  • games/wcs.json#/switches/58._note: PulseSw 83 on Bumper3_Hit
  • games/wcs.json#/switches/59._vbscript_name: SlingShotLeft
  • games/wcs.json#/switches/59._inferred_type: slingshot
  • games/wcs.json#/switches/59._note: PulseSw 84 on SlingShotLeft_Slingshot
  • games/wcs.json#/switches/60._vbscript_name: SlingShotRight
  • games/wcs.json#/switches/60._inferred_type: slingshot
  • games/wcs.json#/switches/60._note: PulseSw 85 on SlingShotRight_Slingshot
  • games/wcs.json#/switches/61._vbscript_name: sw86
  • games/wcs.json#/switches/61._inferred_type: rollover
  • games/wcs.json#/switches/62._vbscript_name: sw87
  • games/wcs.json#/switches/62._inferred_type: rollover
  • games/wcs.json#/switches/63._vbscript_name: sw88
  • games/wcs.json#/switches/63._inferred_type: rollover
  • games/wcs.json#/switches/64._vbscript_name: swLRFlip
  • games/wcs.json#/switches/64._inferred_type: cabinet
  • games/wcs.json#/switches/64._note: WPC framework constant from WPC.vbs
  • games/wcs.json#/switches/65._vbscript_name: swLLFlip
  • games/wcs.json#/switches/65._inferred_type: cabinet
  • games/wcs.json#/switches/65._note: WPC framework constant from WPC.vbs
  • games/wcs.json#/switches/66._vbscript_name: swURFlip
  • games/wcs.json#/switches/66._inferred_type: cabinet
  • games/wcs.json#/switches/66._note: WPC framework constant from WPC.vbs
  • games/wcs.json#/switches/67._vbscript_name: swULFlip
  • games/wcs.json#/switches/67._inferred_type: cabinet
  • games/wcs.json#/switches/67._note: WPC framework constant from WPC.vbs
  • games/wcs.json#/coils/0._vbscript_callback: bsgoalpopper.SolOut
  • games/wcs.json#/coils/0._inferred_type: vuk
  • games/wcs.json#/coils/1._vbscript_callback: SolTvPopper
  • games/wcs.json#/coils/1._inferred_type: vuk
  • games/wcs.json#/coils/1._note: Originally bstvpopper.SolOut, overridden with custom sub
  • games/wcs.json#/coils/2._vbscript_callback: KickBack
  • games/wcs.json#/coils/2._inferred_type: kickback
  • games/wcs.json#/coils/3._vbscript_callback: LockRelease
  • games/wcs.json#/coils/3._inferred_type: post
  • games/wcs.json#/coils/4._vbscript_callback: SolUpperEjectHole
  • games/wcs.json#/coils/4._inferred_type: saucer
  • games/wcs.json#/coils/4._note: Originally bsupperejecthole.SolOut, overridden with custom sub
  • games/wcs.json#/coils/5._vbscript_callback: SolRelease
  • games/wcs.json#/coils/5._inferred_type: ball_release
  • games/wcs.json#/coils/6._vbscript_callback: bsrightejecthole.SolOut
  • games/wcs.json#/coils/6._inferred_type: saucer
  • games/wcs.json#/coils/7._vbscript_callback: bsleftejecthole.SolOut
  • games/wcs.json#/coils/7._inferred_type: saucer
  • games/wcs.json#/coils/8._vbscript_callback: RampDiverter
  • games/wcs.json#/coils/8._inferred_type: diverter
  • games/wcs.json#/coils/8._note: Diverter_Hold; originally SolCallback(8), reassigned to 16
  • games/wcs.json#/coils/9._vbscript_callback: SetModLamp 117,
  • games/wcs.json#/coils/9._inferred_type: flasher
  • games/wcs.json#/coils/9._note: Modulated solenoid; maps to lamp 117 (goalcagetop)
  • games/wcs.json#/coils/10._vbscript_callback: SetModLamp 118,
  • games/wcs.json#/coils/10._inferred_type: flasher
  • games/wcs.json#/coils/10._note: Modulated solenoid; maps to lamp 118 (goal)
  • games/wcs.json#/coils/11._vbscript_callback: SetModLamp 119,
  • games/wcs.json#/coils/11._inferred_type: flasher
  • games/wcs.json#/coils/11._note: Modulated solenoid; maps to lamp 119 (skillshot)
  • games/wcs.json#/coils/12._vbscript_callback: SetModLamp 120,
  • games/wcs.json#/coils/12._inferred_type: flasher
  • games/wcs.json#/coils/12._note: Modulated solenoid; maps to lamp 120 (jetbumpers)
  • games/wcs.json#/coils/13._vbscript_callback: mGoalie.Sol1
  • games/wcs.json#/coils/13._inferred_type: motor
  • games/wcs.json#/coils/13._note: cvpmMech single-sol goalie mechanism; vpmMechLinear + vpmMechReverse + vpmMechOneSol
  • games/wcs.json#/coils/14._vbscript_callback: SetModLamp 122,
  • games/wcs.json#/coils/14._inferred_type: flasher
  • games/wcs.json#/coils/14._note: Modulated solenoid; maps to lamp 122 (spinningball)
  • games/wcs.json#/coils/15._vbscript_callback: ttBall.SolMotorState True,
  • games/wcs.json#/coils/15._inferred_type: motor
  • games/wcs.json#/coils/15._note: mBall.Sol1=23; ball_clockwise for spinnerDisk
  • games/wcs.json#/coils/16._vbscript_callback: ttBall.SolMotorState False,
  • games/wcs.json#/coils/16._inferred_type: motor
  • games/wcs.json#/coils/16._note: mBall.Sol2=24; ball_counter_clockwise for spinnerDisk
  • games/wcs.json#/coils/17._vbscript_callback: SetModLamp 125,
  • games/wcs.json#/coils/17._inferred_type: flasher
  • games/wcs.json#/coils/17._note: Modulated solenoid; maps to lamp 125 (leftramp_entrance)
  • games/wcs.json#/coils/18._vbscript_callback: SetModLamp 126,
  • games/wcs.json#/coils/18._inferred_type: flasher
  • games/wcs.json#/coils/18._note: Modulated solenoid; maps to lamp 126 (lock_area)
  • games/wcs.json#/coils/19._vbscript_callback: SetModLamp 127,
  • games/wcs.json#/coils/19._inferred_type: flasher
  • games/wcs.json#/coils/19._note: Modulated solenoid; maps to lamp 127 (flipper_lanes)
  • games/wcs.json#/coils/20._vbscript_callback: SetModLamp 128,
  • games/wcs.json#/coils/20._inferred_type: flasher
  • games/wcs.json#/coils/20._note: Modulated solenoid; maps to lamp 128 (ramp_rear)
  • games/wcs.json#/coils/21._vbscript_name: GameOnSolenoid
  • games/wcs.json#/coils/21._inferred_type: system
  • games/wcs.json#/coils/21._note: WPC framework constant from WPC.vbs
  • games/wcs.json#/coils/22._vbscript_callback: SolGoalieMagnet
  • games/wcs.json#/coils/22._inferred_type: magnet
  • games/wcs.json#/coils/22._note: Originally mGoalieMagnet.MagnetOn=, overridden with SolGoalieMagnet sound sub
  • games/wcs.json#/coils/23._vbscript_callback: LoopGate
  • games/wcs.json#/coils/23._inferred_type: gate
  • games/wcs.json#/coils/24._vbscript_callback: SolLockMagnet
  • games/wcs.json#/coils/24._inferred_type: magnet
  • games/wcs.json#/coils/25._vbscript_callback: SolRFlipper
  • games/wcs.json#/coils/25._vbscript_name: sLRFlipper
  • games/wcs.json#/coils/25._inferred_type: flipper
  • games/wcs.json#/coils/25._note: core.vbs framework constant sLRFlipper = 46
  • games/wcs.json#/coils/26._vbscript_callback: SolLFlipper
  • games/wcs.json#/coils/26._vbscript_name: sLLFlipper
  • games/wcs.json#/coils/26._inferred_type: flipper
  • games/wcs.json#/coils/26._note: core.vbs framework constant sLLFlipper = 48
  • games/wcs.json#/lamps/24._note: Multiple VPX objects: lf41/lf41a
  • games/wcs.json#/lamps/25._note: Multiple VPX objects: lf42/lf42a
  • games/wcs.json#/lamps/26._note: Multiple VPX objects: lf43/lf43a
  • games/wcs.json#/lamps/29._note: Multiple VPX objects: lf46/lf46a
  • games/wcs.json#/lamps/30._note: Multiple VPX objects: lf47/lf47a
  • games/wcs.json#/lamps/31._note: Multiple VPX objects: l48/l48a
  • games/wcs.json#/lamps/47._note: Multiple VPX objects: l68/l68a/l68b
  • games/wcs.json#/lamps/48._note: Multiple VPX objects: l71/l71a
  • games/wcs.json#/lamps/55._note: Multiple VPX objects: l78/l78a
  • games/wcs.json#/lamps/60._note: Multiple VPX objects: l85/l85a/l85b
  • games/wcs.json#/lamps/61._note: Multiple VPX objects: l86/l86a/l86b
  • games/wcs.json#/lamps/62._inferred_type: flasher
  • games/wcs.json#/lamps/62._note: Driven by SolModCallBack(17). VPX objects: l117/f117/f117a
  • games/wcs.json#/lamps/63._inferred_type: flasher
  • games/wcs.json#/lamps/63._note: Driven by SolModCallBack(18). VPX objects: f118a
  • games/wcs.json#/lamps/64._inferred_type: flasher
  • games/wcs.json#/lamps/64._note: Driven by SolModCallBack(19). VPX objects: l119a/f119/f119a/f119c/f119e
  • games/wcs.json#/lamps/65._inferred_type: flasher
  • games/wcs.json#/lamps/65._note: Driven by SolModCallBack(20); shares VPX object lf47a. VPX objects: lf47a
  • games/wcs.json#/lamps/66._inferred_type: flasher
  • games/wcs.json#/lamps/66._note: Driven by SolModCallBack(22). VPX objects: f122a/f122b
  • games/wcs.json#/lamps/67._inferred_type: flasher
  • games/wcs.json#/lamps/67._note: Driven by SolModCallBack(25). VPX objects: f125
  • games/wcs.json#/lamps/68._inferred_type: flasher
  • games/wcs.json#/lamps/68._note: Driven by SolModCallBack(26). VPX objects: l126/f126a/f126b/f126c
  • games/wcs.json#/lamps/69._inferred_type: flasher
  • games/wcs.json#/lamps/69._note: Driven by SolModCallBack(27). VPX objects: f127
  • games/wcs.json#/lamps/70._inferred_type: flasher
  • games/wcs.json#/lamps/70._note: Driven by SolModCallBack(28). VPX objects: l128a/l128b/f128a/f128b/f128c/f128d/f128e/f128f
  • games/wcs.json#/_source/confidence_notes: High confidence on switches, coils, and lamps. No Const sw* or Const s* declarations in table script -- all switch/coil IDs are hardcoded numeric in Controller.Switch(), vpmTimer.PulseSw(), SolCallback(), and ball stack init calls. Lamp numbers extracted from UpdateLamps() flash/flashm/lampmod/flashmod calls. Flipper solenoid IDs (sLRFlipper=46, sLLFlipper=48) from core.vbs framework. WPC platform confirmed via LoadVPM wpc.VBS. Trough config uses 5 balls with switches 31-35. Goalie and soccer ball mechs use cvpmMech with solenoids 21,23,24. Some commented-out SolCallback lines preserved as notes.

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.wcs: games/wcs.json at the pinned migration revision.

ROM sets

Every driver that resolves to this physical machine.

ROM set Description Year Parent Hardware
wcs_f62bWorld Cup Soccer (FreeWPC 0.62b) 2020wcs_l2
wcs_l3cWorld Cup Soccer (LX-3C Competition MOD) 2016wcs_l2
wcs_p6World Cup Soccer (PX-6 LED Ghost Fix) 1994wcs_l2
wcs_p5World Cup Soccer (PA-5 LED Ghost Fix) 1994wcs_l2
wcs_p3World Cup Soccer (PX-3 Prototype) 1994wcs_l2
wcs_p2World Cup Soccer (PA-2 Prototype) 1994wcs_l2
wcs_la2World Cup Soccer (LA-2) 1994wcs_l2
wcs_la1World Cup Soccer (LA-1) 1994wcs_l2

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

    games/wcs.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