Special Force

Partial

Bally1986BALLYbally.special-force.1986

4 unresolved conflicts

  • Legacy sources disagree on label: 'Ball Roll Tilt' versus 'Chopper Top'. binding:pinmame.input.switch/2/None
  • Legacy sources disagree on label: 'Tilt' versus 'Right Magna Save Button'. binding:pinmame.input.switch/7/None
  • Legacy sources disagree on label: 'Slam Tilt' versus 'Standup Target'. binding:pinmame.input.switch/16/None
  • Legacy sources disagree on label: 'ROM Started' versus 'Unused / Empty'. binding:pinmame.output.solenoid/19/None

Wire it up

what an authoring tool needs first
Bind this ROM
specforc

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

Controller platform
pinmame.bally

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
-7–84 (47)
Solenoids
1–19 (14)
Lamps
1–105 (90)
Cabinet & flipper inputs
82flipper.lower.right84flipper.lower.left6cabinet.start9cabinet.coin.310cabinet.coin.211cabinet.coin.1

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.

47 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
Hover or tap an address to identify it.

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

47 shown
# Name Device ID Role Evidence
-7
Self Test
switch.self-test
candidate
-6
CPU Diagnose
switch.cpu-diagnose
candidate
-5
Sound Diagnose
switch.sound-diagnose
candidate
1
Collect Weapon
switch.collect-weapon
candidate
2
Ball Roll Tilt
switch.ball-roll-tilt
candidate
3
Chopper Bottom
switch.chopper-bottom
candidate
4
Return Lane Rubbers
switch.return-lane-rubbers
candidate
5
Left Magna Save Button
switch.left-magna-save-button
candidate
6
Start Button
switch.start-button
cabinet.start
candidate
7
Tilt
switch.tilt
candidate
8
Outhole
switch.outhole
candidate
9
Coin Button 3
switch.coin-3
cabinet.coin.3
candidate
10
Coin Button 2
switch.coin-2
cabinet.coin.2
candidate
11
Coin Button 1
switch.coin-1
cabinet.coin.1
candidate
12
Rollover / Lane Switch
switch.rollover-lane-switch
candidate
13
Rollover / Lane Switch
switch.rollover-lane-switch.13
candidate
16
Slam Tilt
switch.slam-tilt
candidate
17
Standup Target
switch.standup-target
candidate
18
Standup Target
switch.standup-target.18
candidate
19
Standup Target
switch.standup-target.19
candidate
20
Standup Target
switch.standup-target.20
candidate
21
Standup Target
switch.standup-target.21
candidate
22
Standup Target
switch.standup-target.22
candidate
23
Saucer / Kicker
switch.saucer-kicker
candidate
24
Rollover / Lane Switch
switch.rollover-lane-switch.24
candidate
25
Left Pop Bumper
switch.left-pop-bumper
candidate
26
Right Pop Bumper
switch.right-pop-bumper
candidate
27
Middle Pop Bumper
switch.middle-pop-bumper
candidate
30
Trough Ball 1 (front)
switch.trough-ball-1-front
candidate
31
Trough Ball 2
switch.trough-ball-2
candidate
32
Trough Ball 3 (rear)
switch.trough-ball-3-rear
candidate
33
Standup Target
switch.standup-target.33
candidate
34
Standup Target
switch.standup-target.34
candidate
35
Standup Target
switch.standup-target.35
candidate
36
Standup Target
switch.standup-target.36
candidate
38
Single Capture Drop Target
switch.single-capture-drop-target
candidate
40
Drop Target
switch.drop-target
candidate
41
Rollover / Lane Switch
switch.rollover-lane-switch.41
candidate
42
Gate / Rollover (dual triggers)
switch.gate-rollover-dual-triggers
candidate
43
Standup Target
switch.standup-target.43
candidate
44
Standup Target (with bounce)
switch.standup-target-with-bounce
candidate
45
Inline Drop Target (bottom)
switch.inline-drop-target-bottom
candidate
46
Inline Drop Target (middle)
switch.inline-drop-target-middle
candidate
47
Inline Drop Target (top)
switch.inline-drop-target-top
candidate
48
Road Switch
switch.road-switch
candidate
82
Lower Right Flipper
switch.flipper-lower-right
flipper.lower.right
candidate
84
Lower Left Flipper
switch.flipper-lower-left
flipper.lower.left
candidate

Controlled devices

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

Coils, magnets & motors

14
14 shown
# Name Device ID Evidence
1
Left Pop Bumper
device.left-pop-bumper candidate
2
Right Pop Bumper
device.right-pop-bumper candidate
3
Middle Pop Bumper
device.middle-pop-bumper candidate
6
Multiplexed: Inline Drop Target Bank Reset / Bright Lights 1
device.multiplexed-inline-drop-target-bank-reset-bright-lights-1 candidate
7
Multiplexed: Lower Bottom Inline DT / Bright Lights 2
device.multiplexed-lower-bottom-inline-dt-bright-lights-2 candidate
8
Multiplexed: Lower Middle Inline DT / Bright Lights 3
device.multiplexed-lower-middle-inline-dt-bright-lights-3 candidate
9
Multiplexed: Lower Top Inline DT / Bright Lights 4
device.multiplexed-lower-top-inline-dt-bright-lights-4 candidate
10
Multiplexed: Saucer Kicker / Bright Lights 5
device.multiplexed-saucer-kicker-bright-lights-5 candidate
11
Drop Target sw40 Reset
device.drop-target-sw40-reset candidate
12
Drop Target sw40 Drop
device.drop-target-sw40-drop candidate
14
Multiplexed: Single Capture DT Reset / Outhole Drain
device.multiplexed-single-capture-dt-reset-outhole-drain candidate
15
Multiplexed: Ball Release / Knocker
device.multiplexed-ball-release-knocker candidate
17
Game On Relay
device.game-on-relay candidate
19
ROM Started
device.game-on candidate

Lamps

90

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
Hover or tap an address to identify it.
90 shown
# Name Device ID Evidence
1
Lamp 1
lamp.lamp-1 candidate
2
Lamp 2
lamp.lamp-2 candidate
4
Lamp 4
lamp.lamp-4 candidate
5
Lamp 5
lamp.lamp-5 candidate
6
Lamp 6
lamp.lamp-6 candidate
7
Lamp 7
lamp.lamp-7 candidate
8
Lamp 8
lamp.lamp-8 candidate
9
Lamp 9
lamp.lamp-9 candidate
10
Lamp 10
lamp.lamp-10 candidate
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
17
Lamp 17
lamp.lamp-17 candidate
18
Lamp 18
lamp.lamp-18 candidate
19
Lamp 19
lamp.lamp-19 candidate
20
Lamp 20
lamp.lamp-20 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
29
Lamp 29
lamp.lamp-29 candidate
30
Lamp 30
lamp.lamp-30 candidate
31
Lamp 31
lamp.lamp-31 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
39
Lamp 39
lamp.lamp-39 candidate
40
Lamp 40
lamp.lamp-40 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
49
Lamp 49
lamp.lamp-49 candidate
50
Lamp 50
lamp.lamp-50 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
59
Lamp 59
lamp.lamp-59 candidate
60
GI Lamp 60
lamp.gi-lamp-60 candidate
61
GI Lamp 61
lamp.gi-lamp-61 candidate
62
GI Lamp 62
lamp.gi-lamp-62 candidate
63
GI Lamp 63
lamp.gi-lamp-63 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
69
Lamp 69
lamp.lamp-69 candidate
70
Lamp 70
lamp.lamp-70 candidate
71
Lamp 71
lamp.lamp-71 candidate
73
Lamp 73
lamp.lamp-73 candidate
74
Lamp 74
lamp.lamp-74 candidate
75
Lamp 75
lamp.lamp-75 candidate
76
GI Lamp 76
lamp.gi-lamp-76 candidate
77
GI Lamp 77
lamp.gi-lamp-77 candidate
78
GI Lamp 78
lamp.gi-lamp-78 candidate
79
GI Lamp 79
lamp.gi-lamp-79 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
87
Lamp 87
lamp.lamp-87 candidate
89
Lamp 89
lamp.lamp-89 candidate
91
GI Lamp 91
lamp.gi-lamp-91 candidate
92
GI Lamp 92
lamp.gi-lamp-92 candidate
93
GI Lamp 93
lamp.gi-lamp-93 candidate
94
GI Lamp 94
lamp.gi-lamp-94 candidate
100
GI Group (4 zones: 100a, 100b, 100c, 100d)
lamp.gi-group-4-zones-100a-100b-100c-100d candidate
101
Bright Light Relay 1
lamp.bright-light-relay-1 candidate
102
Bright Light Relay 2
lamp.bright-light-relay-2 candidate
103
Bright Light Relay 3
lamp.bright-light-relay-3 candidate
104
Bright Light Relay 4
lamp.bright-light-relay-4 candidate
105
Bright Light Relay 5
lamp.bright-light-relay-5 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 Bally (1986). 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/bally.json#/coils/1: Unbound legacy outputs record c_flipper_lower_right was retained as a migration note only.
  • platforms/bally.json#/coils/2: Unbound legacy outputs record c_flipper_lower_left was retained as a migration note only.
  • platforms/bally.json#/coils/3: Unbound legacy outputs record c_flipper_upper_right was retained as a migration note only.
  • platforms/bally.json#/coils/4: Unbound legacy outputs record c_flipper_upper_left was retained as a migration note only.
  • games/specfor.json#/switches/0._inferred_type: target
  • games/specfor.json#/switches/0._note: Pulsed via vpmTimer.PulseSw 1
  • games/specfor.json#/switches/1._inferred_type: target
  • games/specfor.json#/switches/1._note: Pulsed via vpmTimer.PulseSw 2
  • games/specfor.json#/switches/2._inferred_type: target
  • games/specfor.json#/switches/2._note: Pulsed via vpmTimer.PulseSw 3. Also triggers wire ramp on/off based on ball direction.
  • games/specfor.json#/switches/3._inferred_type: rubber
  • games/specfor.json#/switches/3._note: Pulsed via vpmTimer.PulseSw 4 from sw4Rubber1-5_Hit
  • games/specfor.json#/switches/4._note: Activated by LeftMagnaSave key
  • games/specfor.json#/switches/5._note: Activated by RightMagnaSave key
  • games/specfor.json#/switches/6._note: Drain switch — ball enters here, kicked to trough by SolDrain (Mult14 when L3=1)
  • games/specfor.json#/switches/7._inferred_type: rollover
  • games/specfor.json#/switches/8._inferred_type: rollover
  • games/specfor.json#/switches/9._inferred_type: standup_target
  • games/specfor.json#/switches/9._note: Hit via STHit 16
  • games/specfor.json#/switches/10._inferred_type: standup_target
  • games/specfor.json#/switches/10._note: Hit via STHit 17
  • games/specfor.json#/switches/11._inferred_type: standup_target
  • games/specfor.json#/switches/11._note: Hit via STHit 18
  • games/specfor.json#/switches/12._inferred_type: standup_target
  • games/specfor.json#/switches/12._note: Hit via STHit 19
  • games/specfor.json#/switches/13._inferred_type: standup_target
  • games/specfor.json#/switches/13._note: Hit via STHit 20
  • games/specfor.json#/switches/14._inferred_type: standup_target
  • games/specfor.json#/switches/14._note: Hit via STHit 21
  • games/specfor.json#/switches/15._inferred_type: standup_target
  • games/specfor.json#/switches/15._note: Hit via STHit 22
  • games/specfor.json#/switches/16._inferred_type: kicker
  • games/specfor.json#/switches/16._note: Ball locks in saucer. Kicked out by Mult10 (sol 10) when L3=1.
  • games/specfor.json#/switches/17._inferred_type: rollover
  • games/specfor.json#/switches/18._inferred_type: bumper
  • games/specfor.json#/switches/18._note: Bumper1 — pulsed via vpmTimer.PulseSw(25)
  • games/specfor.json#/switches/19._inferred_type: bumper
  • games/specfor.json#/switches/19._note: Bumper2 — pulsed via vpmTimer.PulseSw(26)
  • games/specfor.json#/switches/20._inferred_type: bumper
  • games/specfor.json#/switches/20._note: Bumper3 — pulsed via vpmTimer.PulseSw(27)
  • games/specfor.json#/switches/24._inferred_type: standup_target
  • games/specfor.json#/switches/24._note: Hit via STHit 33
  • games/specfor.json#/switches/25._inferred_type: standup_target
  • games/specfor.json#/switches/25._note: Hit via STHit 34
  • games/specfor.json#/switches/26._inferred_type: standup_target
  • games/specfor.json#/switches/26._note: Hit via STHit 35
  • games/specfor.json#/switches/27._inferred_type: standup_target
  • games/specfor.json#/switches/27._note: Hit via STHit 36
  • games/specfor.json#/switches/28._inferred_type: drop_target
  • games/specfor.json#/switches/28._note: Hit via DTHit 38. Reset by Mult14 (sol 14) when L3=1.
  • games/specfor.json#/switches/29._inferred_type: drop_target
  • games/specfor.json#/switches/29._note: Hit via DTHit 40. Reset by sol 11 (DTRaise40), dropped by sol 12 (DTDrop40).
  • games/specfor.json#/switches/30._inferred_type: rollover
  • games/specfor.json#/switches/31._inferred_type: rollover
  • games/specfor.json#/switches/31._note: Two VPX triggers (sw42a, sw42b) both map to ROM switch 42. Ball velocity dampened on exit.
  • games/specfor.json#/switches/32._inferred_type: standup_target
  • games/specfor.json#/switches/32._note: Hit via STHit 43
  • games/specfor.json#/switches/33._inferred_type: standup_target
  • games/specfor.json#/switches/33._note: Hit via STHit 44 with TargetBouncer applied
  • games/specfor.json#/switches/34._inferred_type: drop_target
  • games/specfor.json#/switches/34._note: Hit via DTHit 45. Part of 3-target inline bank (sw45-47). Reset by Mult6 (sol 6) when L3=1.
  • games/specfor.json#/switches/35._inferred_type: drop_target
  • games/specfor.json#/switches/35._note: Hit via DTHit 46. Part of 3-target inline bank (sw45-47). Reset by Mult6 (sol 6) when L3=1.
  • games/specfor.json#/switches/36._inferred_type: drop_target
  • games/specfor.json#/switches/36._note: Hit via DTHit 47. Part of 3-target inline bank (sw45-47). Reset by Mult6 (sol 6) when L3=1.
  • games/specfor.json#/switches/37._inferred_type: target
  • games/specfor.json#/switches/37._note: Pulsed via vpmTimer.PulseSw 48
  • games/specfor.json#/coils/0._vbscript_callback: SolLBumper
  • games/specfor.json#/coils/0._inferred_type: bumper
  • games/specfor.json#/coils/0._note: Fires Bumper1
  • games/specfor.json#/coils/1._vbscript_callback: SolRBumper
  • games/specfor.json#/coils/1._inferred_type: bumper
  • games/specfor.json#/coils/1._note: Fires Bumper2
  • games/specfor.json#/coils/2._vbscript_callback: SolMBumper
  • games/specfor.json#/coils/2._inferred_type: bumper
  • games/specfor.json#/coils/2._note: Fires Bumper3
  • games/specfor.json#/coils/3._vbscript_callback: Mult6
  • games/specfor.json#/coils/3._inferred_type: multiplexed
  • games/specfor.json#/coils/3._note: When L3=1: resets inline drop targets sw45-47. When L3=0: controls bright lights group 101. Bally -35 multiplexed solenoid.
  • games/specfor.json#/coils/4._vbscript_callback: Mult7
  • games/specfor.json#/coils/4._inferred_type: multiplexed
  • games/specfor.json#/coils/4._note: When L3=1: drops sw45 (bottom inline target). When L3=0: controls bright lights group 102.
  • games/specfor.json#/coils/5._vbscript_callback: Mult8
  • games/specfor.json#/coils/5._inferred_type: multiplexed
  • games/specfor.json#/coils/5._note: When L3=1: drops sw46 (middle inline target). When L3=0: controls bright lights group 103.
  • games/specfor.json#/coils/6._vbscript_callback: Mult9
  • games/specfor.json#/coils/6._inferred_type: multiplexed
  • games/specfor.json#/coils/6._note: When L3=1: drops sw47 (top inline target). When L3=0: controls bright lights group 104.
  • games/specfor.json#/coils/7._vbscript_callback: Mult10
  • games/specfor.json#/coils/7._inferred_type: multiplexed
  • games/specfor.json#/coils/7._note: When L3=1: kicks ball from saucer (sw23). When L3=0: controls bright lights group 105.
  • games/specfor.json#/coils/8._vbscript_callback: DTRaise40
  • games/specfor.json#/coils/8._inferred_type: drop_target_reset
  • games/specfor.json#/coils/8._note: Raises drop target sw40
  • games/specfor.json#/coils/9._vbscript_callback: DTDrop40
  • games/specfor.json#/coils/9._inferred_type: drop_target_drop
  • games/specfor.json#/coils/9._note: Drops drop target sw40
  • games/specfor.json#/coils/10._vbscript_callback: Mult14
  • games/specfor.json#/coils/10._inferred_type: multiplexed
  • games/specfor.json#/coils/10._note: When L3=1: resets single capture drop target sw38. When L3=0: SolDrain — kicks ball from outhole (sw8) to trough.
  • games/specfor.json#/coils/11._vbscript_callback: Mult15
  • games/specfor.json#/coils/11._inferred_type: multiplexed
  • games/specfor.json#/coils/11._note: When L3=1: SolRelease — releases ball from trough (sw30). When L3=0: fires knocker solenoid.
  • games/specfor.json#/coils/12._vbscript_callback: SolGameOn
  • games/specfor.json#/coils/12._inferred_type: game_on
  • games/specfor.json#/coils/13._note: SolCallback assigned to empty string
  • games/specfor.json#/lamps/72._note: GI string — controlled via LM_GI_l60a
  • games/specfor.json#/lamps/73._note: GI string — controlled via LM_GI_l61a
  • games/specfor.json#/lamps/74._note: GI string — controlled via LM_GI_l62a
  • games/specfor.json#/lamps/75._note: GI string — controlled via LM_GI_l63a
  • games/specfor.json#/lamps/76._note: GI string — controlled via LM_GI_l76a
  • games/specfor.json#/lamps/77._note: GI string — controlled via LM_GI_l77a
  • games/specfor.json#/lamps/78._note: GI string — controlled via LM_GI_l78
  • games/specfor.json#/lamps/79._note: GI string — controlled via LM_GI_l79a
  • games/specfor.json#/lamps/80._note: GI string — controlled via LM_GI_l91a
  • games/specfor.json#/lamps/81._note: GI string — controlled via LM_GI_l92a
  • games/specfor.json#/lamps/82._note: GI string — controlled via LM_GI_l93a
  • games/specfor.json#/lamps/83._note: GI string — controlled via LM_GI_l94a
  • games/specfor.json#/lamps/84._note: GI string — controlled via LM_GI_l100a through l100d. Represents 4 GI zones across playfield.
  • games/specfor.json#/lamps/85._note: Solenoid-driven via Mult6 (sol 6) when L3=0. BRL group controlled by ManualLightsUpdate.
  • games/specfor.json#/lamps/86._note: Solenoid-driven via Mult7 (sol 7) when L3=0. BRL group controlled by ManualLightsUpdate.
  • games/specfor.json#/lamps/87._note: Solenoid-driven via Mult8 (sol 8) when L3=0. BRL group controlled by ManualLightsUpdate.
  • games/specfor.json#/lamps/88._note: Solenoid-driven via Mult9 (sol 9) when L3=0. BRL group controlled by ManualLightsUpdate.
  • games/specfor.json#/lamps/89._note: Solenoid-driven via Mult10 (sol 10) when L3=0. BRL group controlled by ManualLightsUpdate.
  • games/specfor.json#/_source/confidence_notes: High confidence on switches/coils from SolCallback and sw*_Hit handlers. Uses 6803.VBS (Bally 6803 MPU). Solenoids 6-10, 14-15 are multiplexed: when L3 is lit they control drop targets/kicker/ball management, when L3 is off they control bright light relays (lamps 101-105) or knocker/outhole. swTilt is a framework constant from 6803.VBS (typically sw14 on Bally -35/6803). Lamp numbers extracted from VLM baked lighting arrays (LM_Inserts_l##). GI lamps (60-63, 76-79, 91-94, 100a-d) and BRL lamps (101-105) are solenoid-controlled bright lights. Manual trough with 3 balls (sw30-32) and outhole (sw8).

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

ROM sets

Every driver that resolves to this physical machine.

ROM set Description Year Parent Hardware
specforcSpecial Force 1986

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

    games/specfor.json; origin=vbscript-parser

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

    legacy.platform.bally

    platforms/bally.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