Defender

Partial

Williams1982S7williams.defender.1982

Wire it up

what an authoring tool needs first
Bind this ROM
dfndr_l4

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

Controller platform
pinmame.s7

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
9–61 (52)
Solenoids
1–48 (31)
Lamps
0–100 (64)

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.

52 addresses

Switch map

Sequential addresses, grouped in columns of eight.

used unused
 
+0
+1
+2
+3
+4
+5
+6
+7
1–8
9–16
17–24
25–32
33–40
41–48
49–56
57–64
Hover or tap an address to identify it.
52 shown
# Name Device ID Evidence
9
Left Outlane
switch.left-outlane candidate
10
Left Return Lane
switch.left-return-lane candidate
11
Right Return Lane
switch.right-return-lane candidate
12
Right Outlane
switch.right-outlane candidate
13
Left Bank Drop Target 1
switch.left-bank-drop-target-1 candidate
14
Left Bank Drop Target 2
switch.left-bank-drop-target-2 candidate
15
Left Bank Drop Target 3
switch.left-bank-drop-target-3 candidate
16
Left Bank Drop Target 4
switch.left-bank-drop-target-4 candidate
17
Left Bank Drop Target 5
switch.left-bank-drop-target-5 candidate
18
Standup Target 1
switch.standup-target-1 candidate
19
Standup Target 2
switch.standup-target-2 candidate
20
Standup Target 3
switch.standup-target-3 candidate
21
Standup Target 4
switch.standup-target-4 candidate
22
Standup Target 5
switch.standup-target-5 candidate
23
Right Bank Drop Target 1
switch.right-bank-drop-target-1 candidate
24
Right Bank Drop Target 2
switch.right-bank-drop-target-2 candidate
25
Right Bank Drop Target 3
switch.right-bank-drop-target-3 candidate
26
Right Bank Drop Target 4
switch.right-bank-drop-target-4 candidate
27
Right Bank Drop Target 5
switch.right-bank-drop-target-5 candidate
28
Standup Target 6
switch.standup-target-6 candidate
29
Standup Target 7
switch.standup-target-7 candidate
30
Standup Target 8
switch.standup-target-8 candidate
31
Standup Target 9
switch.standup-target-9 candidate
32
Standup Target 10
switch.standup-target-10 candidate
33
Center Drop Target 1
switch.center-drop-target-1 candidate
34
Center Drop Target 2
switch.center-drop-target-2 candidate
35
Center Drop Target 3
switch.center-drop-target-3 candidate
36
Standup Target 11
switch.standup-target-11 candidate
37
Standup Target 12
switch.standup-target-12 candidate
38
Scoring Rubber
switch.scoring-rubber candidate
39
Bottom Pod Drop Target
switch.bottom-pod-drop-target candidate
40
Top Pod Drop Target
switch.top-pod-drop-target candidate
41
Standup Target 13
switch.standup-target-13 candidate
42
Lock 1
switch.lock-1 candidate
43
Lock 2
switch.lock-2 candidate
44
Lock 3 (Saucer)
switch.lock-3-saucer candidate
45
Top Lane
switch.top-lane candidate
46
Outhole
switch.outhole candidate
47
Trough 1
switch.trough-1 candidate
48
Trough 2
switch.trough-2 candidate
49
Trough 3
switch.trough-3 candidate
50
Shooter Lane
switch.shooter-lane candidate
51
Wire Trigger 1
switch.wire-trigger-1 candidate
52
Wire Trigger 2
switch.wire-trigger-2 candidate
53
Wire Trigger 3
switch.wire-trigger-3 candidate
54
Wire Trigger 4
switch.wire-trigger-4 candidate
55
Left Pop Bumper
switch.left-pop-bumper candidate
56
Right Pop Bumper
switch.right-pop-bumper candidate
57
Left Slingshot
switch.left-slingshot candidate
58
Right Slingshot
switch.right-slingshot candidate
60
Right Magna Save / Fire Button
switch.right-magna-save-fire-button candidate
61
Left Magna Save
switch.left-magna-save candidate

Controlled devices

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

Coils, magnets & motors

30
30 shown
# Name Device ID Kind Evidence
1
Left Bank Drop Target 1 Reset
device.left-bank-drop-target-1-reset Coil candidate
2
Left Bank Drop Target 2 Reset
device.left-bank-drop-target-2-reset Coil candidate
3
Left Bank Drop Target 3 Reset
device.left-bank-drop-target-3-reset Coil candidate
4
Left Bank Drop Target 4 Reset
device.left-bank-drop-target-4-reset Coil candidate
5
Left Bank Drop Target 5 Reset
device.left-bank-drop-target-5-reset Coil candidate
6
Left Bank Drop Target Bank Down
device.left-bank-drop-target-bank-down Coil candidate
7
Bottom Pod Drop Target Reset
device.bottom-pod-drop-target-reset Coil candidate
8
Ball Release
device.ball-release Coil candidate
9
Center Drop Target 1 Reset
device.center-drop-target-1-reset Coil candidate
10
Center Drop Target 3 Reset
device.center-drop-target-3-reset Coil candidate
12
Outhole Kicker
device.outhole-kicker Coil candidate
13
Auto Plunger
device.auto-plunger Coil candidate
14
Playfield GI Relay
device.playfield-gi-relay Relay candidate
15
Knocker
device.knocker Coil candidate
17
Left Pop Bumper
device.left-pop-bumper Coil candidate
18
Right Pop Bumper
device.right-pop-bumper Coil candidate
22
Flipper Diverter
device.flipper-diverter Coil candidate
25
Game On Relay
device.game-on-relay Coil candidate
33
Right Bank Drop Target 1 Reset
device.right-bank-drop-target-1-reset Coil candidate
34
Right Bank Drop Target 2 Reset
device.right-bank-drop-target-2-reset Coil candidate
35
Right Bank Drop Target 3 Reset
device.right-bank-drop-target-3-reset Coil candidate
36
Right Bank Drop Target 4 Reset
device.right-bank-drop-target-4-reset Coil candidate
37
Right Bank Drop Target 5 Reset
device.right-bank-drop-target-5-reset Coil candidate
38
Right Bank Drop Target Bank Down
device.right-bank-drop-target-bank-down Coil candidate
39
Top Pod Drop Target Reset
device.top-pod-drop-target-reset Coil candidate
40
Lock Release
device.lock-release Coil candidate
41
Center Drop Target 2 Reset
device.center-drop-target-2-reset Coil candidate
42
Center Drop Target Bank Down
device.center-drop-target-bank-down Coil candidate
46
Right Flipper
device.flipper-lower-right Coil candidate
48
Left Flipper
device.flipper-lower-left Coil candidate

Flashers

1
1 shown
# Name Device ID Evidence
21
Center Flasher
device.center-flasher candidate

Lamps

64

Lamp map

Sequential addresses, grouped in columns of eight.

used unused
 
+0
+1
+2
+3
+4
+5
+6
+7
1–8
9–16
17–24
25–32
33–40
41–48
49–56
57–64
65–72
73–80
81–88
89–96
97–104
Hover or tap an address to identify it.

Outside the matrix0 — dedicated, diagnostic or flipper-column addresses. See the table below.

64 shown
# Name Device ID Evidence
0
GI
lamp.gi candidate
1
Shoot Again
lamp.shoot-again candidate
2
Ball In Play
lamp.ball-in-play candidate
3
Tilt
lamp.tilt candidate
4
Game Over
lamp.game-over candidate
5
Match
lamp.match candidate
6
High Score to Date
lamp.high-score-to-date candidate
7
Shoot Again
lamp.shoot-again.7 candidate
8
Wave In Play
lamp.wave-in-play candidate
9
Playfield Insert 9
lamp.playfield-insert-9 candidate
10
Playfield Insert 10
lamp.playfield-insert-10 candidate
11
Playfield Insert 11
lamp.playfield-insert-11 candidate
12
Playfield Insert 12
lamp.playfield-insert-12 candidate
13
Playfield Insert 13
lamp.playfield-insert-13 candidate
14
Playfield Insert 14
lamp.playfield-insert-14 candidate
15
Playfield Insert 15
lamp.playfield-insert-15 candidate
16
Playfield Insert 16
lamp.playfield-insert-16 candidate
17
Playfield Insert 17
lamp.playfield-insert-17 candidate
18
Playfield Insert 18
lamp.playfield-insert-18 candidate
19
Playfield Insert 19
lamp.playfield-insert-19 candidate
20
Playfield Insert 20
lamp.playfield-insert-20 candidate
21
Playfield Insert 21
lamp.playfield-insert-21 candidate
22
Playfield Insert 22
lamp.playfield-insert-22 candidate
23
Playfield Insert 23
lamp.playfield-insert-23 candidate
24
Playfield Insert 24
lamp.playfield-insert-24 candidate
25
Playfield Insert 25
lamp.playfield-insert-25 candidate
26
Playfield Insert 26
lamp.playfield-insert-26 candidate
27
Playfield Insert 27
lamp.playfield-insert-27 candidate
28
Playfield Insert 28
lamp.playfield-insert-28 candidate
29
Playfield Insert 29
lamp.playfield-insert-29 candidate
30
Playfield Insert 30
lamp.playfield-insert-30 candidate
31
Playfield Insert 31
lamp.playfield-insert-31 candidate
32
Playfield Insert 32
lamp.playfield-insert-32 candidate
33
Playfield Insert 33
lamp.playfield-insert-33 candidate
34
Playfield Insert 34
lamp.playfield-insert-34 candidate
35
Playfield Insert 35
lamp.playfield-insert-35 candidate
36
Playfield Insert 36
lamp.playfield-insert-36 candidate
37
Playfield Insert 37
lamp.playfield-insert-37 candidate
38
Playfield Insert 38
lamp.playfield-insert-38 candidate
39
Playfield Insert 39
lamp.playfield-insert-39 candidate
40
Playfield Insert 40
lamp.playfield-insert-40 candidate
41
Playfield Insert 41
lamp.playfield-insert-41 candidate
42
Playfield Insert 42
lamp.playfield-insert-42 candidate
43
Playfield Insert 43
lamp.playfield-insert-43 candidate
44
Playfield Insert 44
lamp.playfield-insert-44 candidate
45
Playfield Insert 45
lamp.playfield-insert-45 candidate
46
Playfield Insert 46
lamp.playfield-insert-46 candidate
47
Playfield Insert 47
lamp.playfield-insert-47 candidate
48
Playfield Insert 48
lamp.playfield-insert-48 candidate
49
Playfield Insert 49
lamp.playfield-insert-49 candidate
50
Playfield Insert 50
lamp.playfield-insert-50 candidate
51
Playfield Insert 51
lamp.playfield-insert-51 candidate
52
Playfield Insert 52
lamp.playfield-insert-52 candidate
53
Playfield Insert 53
lamp.playfield-insert-53 candidate
54
Playfield Insert 54
lamp.playfield-insert-54 candidate
55
Playfield Insert 55
lamp.playfield-insert-55 candidate
56
Playfield Insert 56
lamp.playfield-insert-56 candidate
57
Playfield Insert 57
lamp.playfield-insert-57 candidate
58
Playfield Insert 58
lamp.playfield-insert-58 candidate
59
Playfield Insert 59
lamp.playfield-insert-59 candidate
60
Playfield Insert 60
lamp.playfield-insert-60 candidate
61
Playfield Insert 61
lamp.playfield-insert-61 candidate
62
Playfield Insert 62
lamp.playfield-insert-62 candidate
100
Center Flasher
lamp.center-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 Williams (1982). 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

  • games/defender.json#/switches/4._inferred_type: drop_target
  • games/defender.json#/switches/4._note: 5-target left bank (sw13-17), reset individually by coils 1-5 or bank-dropped by coil 6
  • games/defender.json#/switches/5._inferred_type: drop_target
  • games/defender.json#/switches/6._inferred_type: drop_target
  • games/defender.json#/switches/7._inferred_type: drop_target
  • games/defender.json#/switches/8._inferred_type: drop_target
  • games/defender.json#/switches/9._inferred_type: standup_target
  • games/defender.json#/switches/10._inferred_type: standup_target
  • games/defender.json#/switches/11._inferred_type: standup_target
  • games/defender.json#/switches/12._inferred_type: standup_target
  • games/defender.json#/switches/13._inferred_type: standup_target
  • games/defender.json#/switches/14._inferred_type: drop_target
  • games/defender.json#/switches/14._note: 5-target right bank (sw23-27), reset individually by coils 33-37 or bank-dropped by coil 38 (multiplexed via sol 11)
  • games/defender.json#/switches/15._inferred_type: drop_target
  • games/defender.json#/switches/16._inferred_type: drop_target
  • games/defender.json#/switches/17._inferred_type: drop_target
  • games/defender.json#/switches/18._inferred_type: drop_target
  • games/defender.json#/switches/19._inferred_type: standup_target
  • games/defender.json#/switches/20._inferred_type: standup_target
  • games/defender.json#/switches/21._inferred_type: standup_target
  • games/defender.json#/switches/22._inferred_type: standup_target
  • games/defender.json#/switches/23._inferred_type: standup_target
  • games/defender.json#/switches/24._inferred_type: drop_target
  • games/defender.json#/switches/24._note: 3-target center bank (sw33-35), reset individually by coils 9/41/10 or bank-dropped by coil 42
  • games/defender.json#/switches/25._inferred_type: drop_target
  • games/defender.json#/switches/26._inferred_type: drop_target
  • games/defender.json#/switches/27._inferred_type: standup_target
  • games/defender.json#/switches/28._inferred_type: standup_target
  • games/defender.json#/switches/29._inferred_type: rubber
  • games/defender.json#/switches/29._note: Pulsed via vpmTimer.pulseSw 38
  • games/defender.json#/switches/30._inferred_type: drop_target
  • games/defender.json#/switches/30._note: Single drop target, reset by coil 7
  • games/defender.json#/switches/31._inferred_type: drop_target
  • games/defender.json#/switches/31._note: Single drop target, reset by coil 39 (multiplexed via sol 11)
  • games/defender.json#/switches/32._inferred_type: standup_target
  • games/defender.json#/switches/33._inferred_type: ball_lock
  • games/defender.json#/switches/33._note: 3-ball lock (sw42-44). Balls stack via UpdateLock cascade. Released by coil 40.
  • games/defender.json#/switches/34._inferred_type: ball_lock
  • games/defender.json#/switches/35._inferred_type: ball_lock
  • games/defender.json#/switches/35._note: Top of lock stack — SoundSaucerLock on hit
  • games/defender.json#/switches/38._note: 3-ball trough (sw47-49). Balls cascade via UpdateTrough timer. Ball release from sw47.
  • games/defender.json#/switches/41._note: Also sets BIPL flag on hit (Ball In Play Latch)
  • games/defender.json#/switches/46._inferred_type: bumper
  • games/defender.json#/switches/46._note: Bumper1 — pulsed via vpmTimer.PulseSw(55)
  • games/defender.json#/switches/47._inferred_type: bumper
  • games/defender.json#/switches/47._note: Bumper2 — pulsed via vpmTimer.PulseSw(56)
  • games/defender.json#/switches/48._inferred_type: slingshot
  • games/defender.json#/switches/48._note: Pulsed via vpmTimer.PulseSw 57
  • games/defender.json#/switches/49._inferred_type: slingshot
  • games/defender.json#/switches/49._note: Pulsed via vpmTimer.PulseSw 58
  • games/defender.json#/switches/50._note: Mapped to RightMagnaSave and LockBarKey keypresses
  • games/defender.json#/switches/51._note: Mapped to LeftMagnaSave keypress
  • games/defender.json#/coils/0._vbscript_callback: SolDTLBankUnhit 13,
  • games/defender.json#/coils/0._inferred_type: drop_target_reset
  • games/defender.json#/coils/0._note: Resets individual target sw13
  • games/defender.json#/coils/1._vbscript_callback: SolDTLBankUnhit 14,
  • games/defender.json#/coils/1._inferred_type: drop_target_reset
  • games/defender.json#/coils/1._note: Resets individual target sw14
  • games/defender.json#/coils/2._vbscript_callback: SolDTLBankUnhit 15,
  • games/defender.json#/coils/2._inferred_type: drop_target_reset
  • games/defender.json#/coils/2._note: Resets individual target sw15
  • games/defender.json#/coils/3._vbscript_callback: SolDTLBankUnhit 16,
  • games/defender.json#/coils/3._inferred_type: drop_target_reset
  • games/defender.json#/coils/3._note: Resets individual target sw16
  • games/defender.json#/coils/4._vbscript_callback: SolDTLBankUnhit 17,
  • games/defender.json#/coils/4._inferred_type: drop_target_reset
  • games/defender.json#/coils/4._note: Resets individual target sw17
  • games/defender.json#/coils/5._vbscript_callback: SolDTLBankDropDown
  • games/defender.json#/coils/5._inferred_type: drop_target_reset
  • games/defender.json#/coils/5._note: Drops all left bank targets (sw13-17)
  • games/defender.json#/coils/6._vbscript_callback: SolDTBPodDropUp
  • games/defender.json#/coils/6._inferred_type: drop_target_reset
  • games/defender.json#/coils/6._note: Raises sw39
  • games/defender.json#/coils/7._vbscript_callback: SolRelease
  • games/defender.json#/coils/7._inferred_type: ball_management
  • games/defender.json#/coils/7._note: Kicks ball from sw47 (trough position 1)
  • games/defender.json#/coils/8._vbscript_callback: SolDTBait1
  • games/defender.json#/coils/8._inferred_type: drop_target_reset
  • games/defender.json#/coils/8._note: Raises sw33
  • games/defender.json#/coils/9._vbscript_callback: SolDTBait3
  • games/defender.json#/coils/9._inferred_type: drop_target_reset
  • games/defender.json#/coils/9._note: Raises sw35
  • games/defender.json#/coils/10._vbscript_callback: SolDrain
  • games/defender.json#/coils/10._inferred_type: ball_management
  • games/defender.json#/coils/10._note: Kicks ball from sw46 (outhole) into trough
  • games/defender.json#/coils/11._vbscript_callback: SolAPlunger
  • games/defender.json#/coils/11._inferred_type: ball_management
  • games/defender.json#/coils/11._note: Fires Plunger1 to launch ball; pulls back on disable
  • games/defender.json#/coils/12._vbscript_callback: SolPFGI
  • games/defender.json#/coils/12._inferred_type: gi_relay
  • games/defender.json#/coils/12._note: Enabled = GI off (Lampz.state(0)=0, dark backglass), Disabled = GI on (Lampz.state(0)=1, illuminated backglass)
  • games/defender.json#/coils/13._vbscript_callback: SolKnocker
  • games/defender.json#/coils/13._inferred_type: knocker
  • games/defender.json#/coils/14._inferred_type: bumper
  • games/defender.json#/coils/14._note: SolCallback commented out in script
  • games/defender.json#/coils/15._inferred_type: bumper
  • games/defender.json#/coils/15._note: SolCallback commented out in script
  • games/defender.json#/coils/16._vbscript_callback: SolCenterFlasher
  • games/defender.json#/coils/16._inferred_type: flasher
  • games/defender.json#/coils/16._note: Controls Lampz.state(100) — mapped to flash1/flash2/flash3/flash4/flashh VPX objects
  • games/defender.json#/coils/17._vbscript_callback: SolFlipperDiverter
  • games/defender.json#/coils/17._inferred_type: diverter
  • games/defender.json#/coils/17._note: Uses Flipper3 RotateToEnd/RotateToStart for diverter motion
  • games/defender.json#/coils/18._vbscript_callback: SolRun
  • games/defender.json#/coils/18._inferred_type: game_on
  • games/defender.json#/coils/18._note: Enables flippers and slingshots; disables on game end
  • games/defender.json#/coils/19._vbscript_callback: SolDTRBankUnhit 23,
  • games/defender.json#/coils/19._inferred_type: drop_target_reset
  • games/defender.json#/coils/19._note: Multiplexed via sol 11. Resets individual target sw23
  • games/defender.json#/coils/20._vbscript_callback: SolDTRBankUnhit 24,
  • games/defender.json#/coils/20._inferred_type: drop_target_reset
  • games/defender.json#/coils/20._note: Multiplexed via sol 11. Resets individual target sw24
  • games/defender.json#/coils/21._vbscript_callback: SolDTRBankUnhit 25,
  • games/defender.json#/coils/21._inferred_type: drop_target_reset
  • games/defender.json#/coils/21._note: Multiplexed via sol 11. Resets individual target sw25
  • games/defender.json#/coils/22._vbscript_callback: SolDTRBankUnhit 26,
  • games/defender.json#/coils/22._inferred_type: drop_target_reset
  • games/defender.json#/coils/22._note: Multiplexed via sol 11. Resets individual target sw26
  • games/defender.json#/coils/23._vbscript_callback: SolDTRBankUnhit 27,
  • games/defender.json#/coils/23._inferred_type: drop_target_reset
  • games/defender.json#/coils/23._note: Multiplexed via sol 11. Resets individual target sw27
  • games/defender.json#/coils/24._vbscript_callback: SolDTRBankDropDown
  • games/defender.json#/coils/24._inferred_type: drop_target_reset
  • games/defender.json#/coils/24._note: Multiplexed via sol 11. Drops all right bank targets (sw23-27)
  • games/defender.json#/coils/25._vbscript_callback: SolDTTPodDropUp
  • games/defender.json#/coils/25._inferred_type: drop_target_reset
  • games/defender.json#/coils/25._note: Multiplexed via sol 11. Raises sw40
  • games/defender.json#/coils/26._vbscript_callback: SolUnlock
  • games/defender.json#/coils/26._inferred_type: ball_management
  • games/defender.json#/coils/26._note: Multiplexed via sol 11. Kicks ball from sw42 (lock position 1)
  • games/defender.json#/coils/27._vbscript_callback: SolDTBait2
  • games/defender.json#/coils/27._inferred_type: drop_target_reset
  • games/defender.json#/coils/27._note: Multiplexed via sol 11. Raises sw34
  • games/defender.json#/coils/28._vbscript_callback: SolDTBaitDropDown
  • games/defender.json#/coils/28._inferred_type: drop_target_reset
  • games/defender.json#/coils/28._note: Multiplexed via sol 11. Drops all center targets (sw33-35)
  • games/defender.json#/coils/29._note: SolCallback blanked for fast-flip workaround. Flipper driven directly via KeyDown/KeyUp calling SolRFlipper. Framework constant from S7.VBS.
  • games/defender.json#/coils/30._note: SolCallback blanked for fast-flip workaround. Flipper driven directly via KeyDown/KeyUp calling SolLFlipper. Also drives LeftFlipper1 (upper left). Framework constant from S7.VBS.
  • games/defender.json#/lamps/0._note: Solenoid-driven via SolPFGI (coil 14). Lampz.state(0) set by coil callback, not lamp matrix. Controls GI light collection.
  • games/defender.json#/lamps/1._note: Status lamp — Controller.Lamp(1) used in UpdateMultipleLamps (VR: l1, Desktop: ShootAgainReel)
  • games/defender.json#/lamps/2._note: Status lamp — Controller.Lamp(2)
  • games/defender.json#/lamps/3._note: Status lamp — Controller.Lamp(3)
  • games/defender.json#/lamps/4._note: Status lamp — Controller.Lamp(4)
  • games/defender.json#/lamps/5._note: Status lamp — Controller.Lamp(5)
  • games/defender.json#/lamps/6._note: Status lamp — Controller.Lamp(6), dual VPX objects l6/l6a
  • games/defender.json#/lamps/7._note: Playfield insert — Lampz.MassAssign(7)
  • games/defender.json#/lamps/8._note: Status lamp — Controller.Lamp(8)
  • games/defender.json#/lamps/9._note: Lampz.MassAssign(9) with Light9h highlight prim
  • games/defender.json#/lamps/39._note: Also has Light39f flasher variant
  • games/defender.json#/lamps/40._note: Also has Light40f flasher variant
  • games/defender.json#/lamps/41._note: Also has Light41f flasher variant
  • games/defender.json#/lamps/42._note: Also has Light42f flasher variant
  • games/defender.json#/lamps/55._note: Also has Light55f flasher variant
  • games/defender.json#/lamps/56._note: Also has Light56f flasher variant
  • games/defender.json#/lamps/63._note: Solenoid-driven via SolCenterFlasher (coil 21). Lampz.state(100) set by coil callback. Mapped to flash1/flash2/flash3/flash4/flashh VPX objects.
  • games/defender.json#/_source/confidence_notes: High confidence on switches/coils from SolCallback and sw*_Hit handlers. Lamp assignments from InitLampsNF Lampz.MassAssign and Controller.Lamp comments in UpdateMultipleLamps/UpdateDTLamps. Uses S7.VBS (Williams System 7). Solenoid 11 is multiplexed per System 7 convention — coils 33-42 are multiplexed via sol 11 (VPM 1.52+ handles automatically, older versions offset by +32). Lamp 0 is GI (solenoid-driven via SolPFGI on coil 14). Lamp 100 is center flasher (solenoid-driven via SolCenterFlasher on coil 21). Tilt switch is swTilt from S7.VBS framework (platform-defined, typically switch 2 on System 7). Flipper solenoid callbacks are blanked for fast-flip workaround — flippers are driven directly in KeyDown/KeyUp 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.defender: games/defender.json at the pinned migration revision.

ROM sets

Every driver that resolves to this physical machine.

ROM set Description Year Parent Hardware
dfndr_l4Defender (L-4) 1982

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

    games/defender.json; origin=vbscript-parser

    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