Warlok

Partial

Williams1982S7williams.warlok.1982

Wire it up

what an authoring tool needs first
Bind this ROM
wrlok_l3

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
1–38 (31)
Solenoids
1–23 (12)
Lamps
2–63 (59)

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.

31 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
Hover or tap an address to identify it.
31 shown
# Name Device ID Evidence
1
Tilt (Plumb Bob)NC
switch.tilt-plumb-bob candidate
9
Drain
switch.drain candidate
10
Spinner 1
switch.spinner-1 candidate
11
Spinner 2
switch.spinner-2 candidate
12
Spinner 3
switch.spinner-3 candidate
13
Bottom Bumper
switch.bottom-bumper candidate
14
Middle Bumper
switch.middle-bumper candidate
15
Top Bumper
switch.top-bumper candidate
16
Wire Trigger (Rollover)
switch.wire-trigger-rollover candidate
17
Wire Trigger (Rollover)
switch.wire-trigger-rollover.17 candidate
18
Wire Trigger (Rollover)
switch.wire-trigger-rollover.18 candidate
19
Standup Target
switch.standup-target candidate
20
Left Slingshot
switch.left-slingshot candidate
21
Right Slingshot
switch.right-slingshot candidate
22
Rollunder Gate
switch.rollunder-gate candidate
23
Wire Trigger (Rollover)
switch.wire-trigger-rollover.23 candidate
24
Wire Trigger (Rollover)
switch.wire-trigger-rollover.24 candidate
25
Wire Trigger (Rollover)
switch.wire-trigger-rollover.25 candidate
26
Wire Trigger (Rollover)
switch.wire-trigger-rollover.26 candidate
27
Drop Target Bank 1 - Target 1
switch.drop-target-bank-1-target-1 candidate
28
Drop Target Bank 1 - Target 2
switch.drop-target-bank-1-target-2 candidate
29
Drop Target Bank 1 - Target 3
switch.drop-target-bank-1-target-3 candidate
30
Drop Target Bank 2 - Target 1
switch.drop-target-bank-2-target-1 candidate
31
Drop Target Bank 2 - Target 2
switch.drop-target-bank-2-target-2 candidate
32
Drop Target Bank 2 - Target 3
switch.drop-target-bank-2-target-3 candidate
33
Drop Target Bank 3 - Target 1
switch.drop-target-bank-3-target-1 candidate
34
Drop Target Bank 3 - Target 2
switch.drop-target-bank-3-target-2 candidate
35
Drop Target Bank 3 - Target 3
switch.drop-target-bank-3-target-3 candidate
36
Right Flipper Button (Cabinet)
switch.right-flipper-button-cabinet candidate
37
Rollunder Gate
switch.rollunder-gate.37 candidate
38
Rollunder Gate
switch.rollunder-gate.38 candidate

Controlled devices

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

Coils, magnets & motors

11
11 shown
# Name Device ID Evidence
1
Drop Target Bank 1 Reset
device.drop-target-bank-1-reset candidate
2
Drop Target Bank 2 Reset
device.drop-target-bank-2-reset candidate
3
Drop Target Bank 3 Reset
device.drop-target-bank-3-reset candidate
4
Drain Ball Release
device.drain-ball-release candidate
5
Drop Target 33 Individual Drop
device.drop-target-33-individual-drop candidate
6
Drop Target 34 Individual Drop
device.drop-target-34-individual-drop candidate
7
Drop Target 35 Individual Drop
device.drop-target-35-individual-drop candidate
14
Right Flipper
device.flipper-lower-right candidate
15
Knocker
device.knocker candidate
16
Left Flipper
device.flipper-lower-left candidate
23
Game On Relay
device.game-on-relay candidate

Flashers

1
1 shown
# Name Device ID Evidence
8
GI Relay (Inverted)
device.gi-relay-inverted candidate

Lamps

59

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
Hover or tap an address to identify it.
59 shown
# Name Device ID Evidence
2
Ball In Play (Backglass)
lamp.ball-in-play-backglass candidate
3
Tilt (Backglass)
lamp.tilt-backglass candidate
4
Game Over (Backglass)
lamp.game-over-backglass candidate
5
Match (Backglass)
lamp.match-backglass candidate
6
High Score To Date (Backglass)
lamp.high-score-to-date-backglass candidate
8
outputs 8
lamp.outputs-8 candidate
9
outputs 9
lamp.outputs-9 candidate
10
outputs 10
lamp.outputs-10 candidate
11
outputs 11
lamp.outputs-11 candidate
12
outputs 12
lamp.outputs-12 candidate
13
outputs 13
lamp.outputs-13 candidate
14
outputs 14
lamp.outputs-14 candidate
15
Shoot Again (Backglass)
lamp.shoot-again-backglass candidate
16
outputs 16
lamp.outputs-16 candidate
17
outputs 17
lamp.outputs-17 candidate
18
outputs 18
lamp.outputs-18 candidate
19
outputs 19
lamp.outputs-19 candidate
20
outputs 20
lamp.outputs-20 candidate
21
outputs 21
lamp.outputs-21 candidate
22
outputs 22
lamp.outputs-22 candidate
23
outputs 23
lamp.outputs-23 candidate
24
outputs 24
lamp.outputs-24 candidate
25
outputs 25
lamp.outputs-25 candidate
26
outputs 26
lamp.outputs-26 candidate
27
outputs 27
lamp.outputs-27 candidate
28
outputs 28
lamp.outputs-28 candidate
29
outputs 29
lamp.outputs-29 candidate
30
outputs 30
lamp.outputs-30 candidate
31
outputs 31
lamp.outputs-31 candidate
32
outputs 32
lamp.outputs-32 candidate
33
outputs 33
lamp.outputs-33 candidate
34
outputs 34
lamp.outputs-34 candidate
35
outputs 35
lamp.outputs-35 candidate
36
outputs 36
lamp.outputs-36 candidate
37
outputs 37
lamp.outputs-37 candidate
38
outputs 38
lamp.outputs-38 candidate
39
outputs 39
lamp.outputs-39 candidate
40
outputs 40
lamp.outputs-40 candidate
41
outputs 41
lamp.outputs-41 candidate
42
outputs 42
lamp.outputs-42 candidate
43
outputs 43
lamp.outputs-43 candidate
44
outputs 44
lamp.outputs-44 candidate
45
outputs 45
lamp.outputs-45 candidate
46
outputs 46
lamp.outputs-46 candidate
47
outputs 47
lamp.outputs-47 candidate
49
outputs 49
lamp.outputs-49 candidate
50
outputs 50
lamp.outputs-50 candidate
51
outputs 51
lamp.outputs-51 candidate
52
outputs 52
lamp.outputs-52 candidate
53
outputs 53
lamp.outputs-53 candidate
54
outputs 54
lamp.outputs-54 candidate
55
outputs 55
lamp.outputs-55 candidate
57
outputs 57
lamp.outputs-57 candidate
58
outputs 58
lamp.outputs-58 candidate
59
outputs 59
lamp.outputs-59 candidate
60
outputs 60
lamp.outputs-60 candidate
61
outputs 61
lamp.outputs-61 candidate
62
outputs 62
lamp.outputs-62 candidate
63
outputs 63
lamp.outputs-63 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/warlok.json#/switches/0._note: vpmNudge.TiltSwitch = 1. Sensitivity = 3. TiltObj = Array(Bumper1, LeftSlingshot, RightSlingshot).
  • games/warlok.json#/switches/1._note: Controller.Switch(9) set on Drain_Hit/Drain_UnHit. Ball pre-created at init (Drain.Createball, Controller.Switch(9)=1). Single-ball drain, no trough — typical System 7 design.
  • games/warlok.json#/switches/2._note: sw10_Spin sub fires vpmTimer.PulseSw(10). Spinner object with VLM rod animation (BM_Spin1Rod).
  • games/warlok.json#/switches/3._note: sw11_Spin sub fires vpmTimer.PulseSw(11). Spinner object with VLM rod animation (BM_Spin2Rod).
  • games/warlok.json#/switches/4._note: sw12_Spin sub fires vpmTimer.PulseSw(12). Spinner object with VLM rod animation (BM_Spin3Rod).
  • games/warlok.json#/switches/5._note: Bumper1_Hit fires vpmTimer.PulseSw 13. Has VLM skirt animation (BP_Bumper1Skirt).
  • games/warlok.json#/switches/6._note: Bumper2_Hit fires vpmTimer.PulseSw 14. Has VLM skirt animation (BP_Bumper2Skirt). Sound: RandomSoundBumperMiddle.
  • games/warlok.json#/switches/7._note: Bumper3_Hit fires vpmTimer.PulseSw 15. Has VLM skirt animation (BP_Bumper3Skirt). Sound: RandomSoundBumperTop.
  • games/warlok.json#/switches/8._note: Controller.Switch(16) on/off via sw16_Hit/sw16_UnHit. Grouped with other wire triggers. VLM wire animation (CurrentAnimOffset).
  • games/warlok.json#/switches/9._note: Controller.Switch(17) on/off via sw17_Hit/sw17_UnHit. Grouped with other wire triggers.
  • games/warlok.json#/switches/10._note: Controller.Switch(18) on/off via sw18_Hit/sw18_UnHit. Grouped with other wire triggers.
  • games/warlok.json#/switches/11._note: Tsw19_Hit fires PrimStandupTgtHit 19 (animated standup target with BM_HT primitive) then vpmTimer.PulseSw 19.
  • games/warlok.json#/switches/12._note: LeftSlingShot_Slingshot fires vpmTimer.PulseSw 20. Has 3-frame VLM sling arm animation (BP_LSling1, BP_LSling2, BP_LSlingArm).
  • games/warlok.json#/switches/13._note: RightSlingShot_Slingshot fires vpmTimer.PulseSw 21. Has 3-frame VLM sling arm animation (BP_RSling1, BP_RSling2, BP_RSlingArm).
  • games/warlok.json#/switches/14._note: Controller.Switch(22) on/off via sw22_Hit/sw22_UnHit. Grouped under 'rollunder gates' comment.
  • games/warlok.json#/switches/15._note: Controller.Switch(23) on/off via sw23_Hit/sw23_UnHit. Grouped under 'Wire Triggers' comment. VLM animation.
  • games/warlok.json#/switches/16._note: Controller.Switch(24) on/off via sw24_Hit/sw24_UnHit. Grouped under 'Wire Triggers' comment. VLM animation.
  • games/warlok.json#/switches/17._note: Controller.Switch(25) on/off via sw25_Hit/sw25_UnHit. Grouped under 'Wire Triggers' comment. VLM animation.
  • games/warlok.json#/switches/18._note: Controller.Switch(26) on/off via sw26_Hit/sw26_UnHit. Grouped under 'Wire Triggers' comment. VLM animation.
  • games/warlok.json#/switches/19._note: Sw27_Hit calls DTHit 27. Part of Bank 1 (sw27-29). DT27 = new DropTarget(sw27, sw27y, BM_DT1_1, 27). Reset by Sol 1 (Sol1DropUp).
  • games/warlok.json#/switches/20._note: Sw28_Hit calls DTHit 28. Part of Bank 1 (sw27-29). DT28 = new DropTarget(sw28, sw28y, BM_DT1_2, 28). Reset by Sol 1.
  • games/warlok.json#/switches/21._note: Sw29_Hit calls DTHit 29. Part of Bank 1 (sw27-29). DT29 = new DropTarget(sw29, sw29y, BM_DT1_3, 29). Reset by Sol 1.
  • games/warlok.json#/switches/22._note: Sw30_Hit calls DTHit 30. Part of Bank 2 (sw30-32). DT30 = new DropTarget(sw30, sw30y, BM_DT2_1, 30). Reset by Sol 2 (Sol2DropUp).
  • games/warlok.json#/switches/23._note: Sw31_Hit calls DTHit 31. Part of Bank 2 (sw30-32). DT31 = new DropTarget(sw31, sw31y, BM_DT2_2, 31). Reset by Sol 2.
  • games/warlok.json#/switches/24._note: Sw32_Hit calls DTHit 32. Part of Bank 2 (sw30-32). DT32 = new DropTarget(sw32, sw32y, BM_DT2_3, 32). Reset by Sol 2.
  • games/warlok.json#/switches/25._note: Sw33_Hit calls DTHit 33. Part of Bank 3 (sw33-35). DT33 = new DropTarget(sw33, sw33y, BM_DT3_1, 33). Reset by Sol 3 (Sol3DropUp). Also individually dropped by Sol 5 (dt1drop).
  • games/warlok.json#/switches/26._note: Sw34_Hit calls DTHit 34. Part of Bank 3 (sw33-35). DT34 = new DropTarget(sw34, sw34y, BM_DT3_2, 34). Reset by Sol 3. Also individually dropped by Sol 6 (dt2drop).
  • games/warlok.json#/switches/27._note: Sw35_Hit calls DTHit 35. Part of Bank 3 (sw33-35). DT35 = new DropTarget(sw35, sw35y, BM_DT3_3, 35). Reset by Sol 3. Also individually dropped by Sol 7 (dt3drop).
  • games/warlok.json#/switches/28._note: Controller.Switch(36)=1 on RightFlipperKey down, =0 on key up. Used for lane change or special feature — not a playfield switch. Set directly from keyboard handler.
  • games/warlok.json#/switches/29._note: Controller.Switch(37) on/off via sw37_Hit/sw37_UnHit. Grouped under 'rollunder gates' comment.
  • games/warlok.json#/switches/30._note: Controller.Switch(38) on/off via sw38_Hit/sw38_UnHit. Grouped under 'rollunder gates' comment.
  • games/warlok.json#/coils/0._vbscript_callback: Sol1DropUp
  • games/warlok.json#/coils/0._inferred_type: drop_target_reset
  • games/warlok.json#/coils/0._note: Raises drop targets sw27, sw28, sw29 (Bank 1) via DTRaise. Sound: RandomSoundDropTargetReset.
  • games/warlok.json#/coils/1._vbscript_callback: Sol2DropUp
  • games/warlok.json#/coils/1._inferred_type: drop_target_reset
  • games/warlok.json#/coils/1._note: Raises drop targets sw30, sw31, sw32 (Bank 2) via DTRaise. Sound: RandomSoundDropTargetReset.
  • games/warlok.json#/coils/2._vbscript_callback: Sol3DropUp
  • games/warlok.json#/coils/2._inferred_type: drop_target_reset
  • games/warlok.json#/coils/2._note: Raises drop targets sw33, sw34, sw35 (Bank 3) via DTRaise. Sound: RandomSoundDropTargetReset.
  • games/warlok.json#/coils/3._vbscript_callback: SolRelease
  • games/warlok.json#/coils/3._inferred_type: ball_management
  • games/warlok.json#/coils/3._note: Kicks ball from Drain kicker (Drain.kick 66,20). Checks BallCntOver for sound selection. No trough — simple single-ball drain/release mechanism typical of System 7.
  • games/warlok.json#/coils/4._vbscript_callback: dt1drop
  • games/warlok.json#/coils/4._inferred_type: drop_target
  • games/warlok.json#/coils/4._note: Raises individual drop target sw33 (Bank 3, Target 1) via DTRaise 33. Sound: RandomSoundDropTargetReset.
  • games/warlok.json#/coils/5._vbscript_callback: dt2drop
  • games/warlok.json#/coils/5._inferred_type: drop_target
  • games/warlok.json#/coils/5._note: Raises individual drop target sw34 (Bank 3, Target 2) via DTRaise 34. Sound: RandomSoundDropTargetReset.
  • games/warlok.json#/coils/6._vbscript_callback: dt3drop
  • games/warlok.json#/coils/6._inferred_type: drop_target
  • games/warlok.json#/coils/6._note: Raises individual drop target sw35 (Bank 3, Target 3) via DTRaise 35. Sound: RandomSoundDropTargetReset.
  • games/warlok.json#/coils/7._vbscript_callback: SolGi
  • games/warlok.json#/coils/7._inferred_type: gi_relay
  • games/warlok.json#/coils/7._note: GI relay with INVERTED logic — when enabled, GI turns OFF (all lights in GI collection set to state=0). When disabled, GI turns ON. Comment says 'The GI is inverted for some reason when the Orbit shot is made (MetaTed hack fix)'. Initialized with SolGi(False) at table init to turn GI on.
  • games/warlok.json#/coils/8._vbscript_callback: SolRFlipper
  • games/warlok.json#/coils/8._inferred_type: flipper
  • games/warlok.json#/coils/8._note: sLRFlipper=14 (S7.VBS framework constant). nFozzy flipper implementation with RF.Fire, ReflipAngle=20, live catch, FlipperTricks. EOSTnew=1.5 (EM to late 80s setting).
  • games/warlok.json#/coils/9._vbscript_callback: SolKnocker
  • games/warlok.json#/coils/9._inferred_type: knocker
  • games/warlok.json#/coils/9._note: Cabinet knocker solenoid. Calls KnockerSolenoid sound function.
  • games/warlok.json#/coils/10._vbscript_callback: SolLFlipper
  • games/warlok.json#/coils/10._inferred_type: flipper
  • games/warlok.json#/coils/10._note: sLLFlipper=16 (S7.VBS framework constant). nFozzy flipper implementation with LF.Fire, ReflipAngle=20, live catch, FlipperTricks. EOSTnew=1.5 (EM to late 80s setting).
  • games/warlok.json#/coils/11._vbscript_callback: vpmNudge.SolGameOn
  • games/warlok.json#/coils/11._inferred_type: mechanism
  • games/warlok.json#/coils/11._note: Game-on solenoid handled by VPM framework. Controls nudge/tilt enable state.
  • games/warlok.json#/lamps/0._note: Backglass indicator lamp. Controller.Lamp(2) drives gi27 VPX object via LampCallback/UpdateMultipleLamps.
  • games/warlok.json#/lamps/1._note: Backglass indicator lamp. Controller.Lamp(3) drives gi29 VPX object via UpdateMultipleLamps.
  • games/warlok.json#/lamps/2._note: Backglass indicator lamp. Controller.Lamp(4) drives gi25 VPX object via UpdateMultipleLamps.
  • games/warlok.json#/lamps/3._note: Backglass indicator lamp. Controller.Lamp(5) drives gi28 VPX object via UpdateMultipleLamps.
  • games/warlok.json#/lamps/4._note: Backglass indicator lamp. Controller.Lamp(6) drives gi30 VPX object via UpdateMultipleLamps.
  • games/warlok.json#/lamps/5._note: Playfield insert lamp. VLM lightmap array BL_L_L8 with Inserts, Parts, Playfield primitives.
  • games/warlok.json#/lamps/6._note: Playfield insert lamp. VLM lightmap array BL_L_L9 with Inserts, Parts, Playfield, Spin1 primitives.
  • games/warlok.json#/lamps/7._note: Playfield insert lamp. VLM lightmap array BL_L_L10 with Gate_4, Inserts, Parts, Playfield, Spin2 primitives.
  • games/warlok.json#/lamps/8._note: Playfield insert lamp. VLM lightmap array BL_L_L11 with Inserts, Parts, Playfield, Spin3 primitives.
  • games/warlok.json#/lamps/9._note: Playfield insert lamp. VLM lightmap array BL_L_L12 with Gate_1, Inserts, Parts, Playfield primitives.
  • games/warlok.json#/lamps/10._note: Playfield insert lamp. VLM lightmap array BL_L_L13 with Inserts, Parts, Playfield primitives.
  • games/warlok.json#/lamps/11._note: Playfield insert lamp. VLM lightmap array BL_L_L14 with Gate_6, Inserts, Parts, Playfield primitives.
  • games/warlok.json#/lamps/12._note: Backglass indicator lamp AND playfield insert. Controller.Lamp(15) drives gi26 via UpdateMultipleLamps. Also has VLM lightmap array BL_L_L15 with FlipperR, FlipperRup, Inserts, Parts, Playfield, RSling primitives.
  • games/warlok.json#/lamps/13._note: Playfield insert lamp. VLM lightmap array BL_L_L16 with Inserts, Parts, Playfield primitives.
  • games/warlok.json#/lamps/14._note: Playfield insert lamp. VLM lightmap array BL_L_L17 with Inserts, Parts, Playfield primitives.
  • games/warlok.json#/lamps/15._note: Playfield insert lamp. VLM lightmap array BL_L_L18 with Gate_5, Inserts, Parts, Playfield primitives.
  • games/warlok.json#/lamps/16._note: Playfield insert lamp near Bumper 1. VLM lightmap array BL_L_L19 with BR1, Bumper1Skirt, HT, Inserts, Parts, Playfield primitives.
  • games/warlok.json#/lamps/17._note: Playfield insert lamp near Drop Target Bank 1. VLM lightmap array BL_L_L20 with DT1_1, DT1_2, DT1_3, Inserts, Parts, Playfield primitives.
  • games/warlok.json#/lamps/18._note: Playfield insert lamp near Drop Target Bank 2. VLM lightmap array BL_L_L21 with DT2_1, DT2_2, DT2_3, Inserts, Parts, Playfield primitives.
  • games/warlok.json#/lamps/19._note: Playfield insert lamp near Drop Target Bank 3. VLM lightmap array BL_L_L22 with DT3_1, DT3_2, DT3_3, Inserts, Parts, Playfield primitives.
  • games/warlok.json#/lamps/20._note: Playfield insert lamp. VLM lightmap array BL_L_L23 with DT1_2, Inserts, Parts, Playfield primitives.
  • games/warlok.json#/lamps/21._note: Playfield insert lamp. VLM lightmap array BL_L_L24 with DT2_1, DT2_2, DT2_3, Inserts, Parts, Playfield primitives.
  • games/warlok.json#/lamps/22._note: Playfield insert lamp near Bumper 2. VLM lightmap array BL_L_L25 with BR2, Bumper2Skirt, DT3_1, DT3_2, DT3_3, Inserts, Parts, Playfield primitives.
  • games/warlok.json#/lamps/23._note: Playfield insert lamp. VLM lightmap array BL_L_L26 with Inserts, Parts, Playfield primitives.
  • games/warlok.json#/lamps/24._note: Playfield insert lamp. VLM lightmap array BL_L_L27 with Inserts, Parts, Playfield primitives.
  • games/warlok.json#/lamps/25._note: Playfield insert lamp. VLM lightmap array BL_L_L28 with Inserts, Parts, Playfield primitives.
  • games/warlok.json#/lamps/26._note: Playfield insert lamp. VLM lightmap array BL_L_L29 with Inserts, Parts, Playfield primitives.
  • games/warlok.json#/lamps/27._note: Playfield insert lamp. VLM lightmap array BL_L_L30 with Inserts, Parts, Playfield primitives.
  • games/warlok.json#/lamps/28._note: Playfield insert lamp near left flipper. VLM lightmap array BL_L_L31 with FlipperL, FlipperLup, Inserts, LSling1, LSling2, Parts, Playfield primitives.
  • games/warlok.json#/lamps/29._note: Playfield insert lamp. VLM lightmap array BL_L_L32 with Inserts, Parts, Playfield primitives.
  • games/warlok.json#/lamps/30._note: Playfield insert lamp. VLM lightmap array BL_L_L33 with Inserts, Parts, Playfield primitives.
  • games/warlok.json#/lamps/31._note: Playfield insert lamp near flippers. VLM lightmap array BL_L_L34 with FlipperLup, FlipperR, FlipperRup, Inserts, Parts, Playfield primitives.
  • games/warlok.json#/lamps/32._note: Playfield insert lamp. VLM lightmap array BL_L_L35 with Gate_5, Inserts, Parts, Playfield primitives.
  • games/warlok.json#/lamps/33._note: Playfield insert lamp. VLM lightmap array BL_L_L36 with Inserts, Parts, Playfield primitives.
  • games/warlok.json#/lamps/34._note: Playfield insert lamp. VLM lightmap array BL_L_L37 with Inserts, Parts, Playfield primitives.
  • games/warlok.json#/lamps/35._note: Playfield insert lamp. VLM lightmap array BL_L_L38 with Inserts, Parts, Playfield, RSling, RSling1, RSling2 primitives.
  • games/warlok.json#/lamps/36._note: Playfield insert lamp near Bumper 1. VLM lightmap array BL_L_L39 with BR1, Bumper1Skirt, HT, Inserts, Parts, Playfield primitives.
  • games/warlok.json#/lamps/37._note: Playfield insert lamp near left slingshot. VLM lightmap array BL_L_L40 with Inserts, LSling, LSling1, LSling2, Parts, Playfield primitives.
  • games/warlok.json#/lamps/38._note: Playfield insert lamp near left slingshot. VLM lightmap array BL_L_L41 with Inserts, LSling, LSling1, LSling2, Parts, Playfield primitives.
  • games/warlok.json#/lamps/39._note: Playfield insert lamp. VLM lightmap array BL_L_L42 with Inserts, Parts, Playfield primitives.
  • games/warlok.json#/lamps/40._note: Playfield insert lamp. VLM lightmap array BL_L_L43 with Inserts, Parts, Playfield primitives.
  • games/warlok.json#/lamps/41._note: Playfield insert lamp. VLM lightmap array BL_L_L44 with Inserts, Parts, Playfield primitives.
  • games/warlok.json#/lamps/42._note: Playfield insert lamp. VLM lightmap array BL_L_L45 with Inserts, Playfield primitives.
  • games/warlok.json#/lamps/43._note: Playfield insert lamp. VLM lightmap array BL_L_L46 with Inserts, Parts, Playfield primitives.
  • games/warlok.json#/lamps/44._note: Playfield insert lamp near right slingshot. VLM lightmap array BL_L_L47 with Inserts, Parts, Playfield, RSling, RSling1, RSling2 primitives.
  • games/warlok.json#/lamps/45._note: Playfield insert lamp near left slingshot. VLM lightmap array BL_L_L49 with Inserts, LSling, LSling1, LSling2, Parts, Playfield primitives.
  • games/warlok.json#/lamps/46._note: Playfield insert lamp. VLM lightmap array BL_L_L50 with Inserts, Parts, Playfield primitives.
  • games/warlok.json#/lamps/47._note: Playfield insert lamp. VLM lightmap array BL_L_L51 with Inserts, Parts, Playfield primitives.
  • games/warlok.json#/lamps/48._note: Playfield insert lamp. VLM lightmap array BL_L_L52 with Inserts, Parts, Playfield primitives.
  • games/warlok.json#/lamps/49._note: Playfield insert lamp. VLM lightmap array BL_L_L53 with Inserts, Parts, Playfield primitives.
  • games/warlok.json#/lamps/50._note: Playfield insert lamp. VLM lightmap array BL_L_L54 with Inserts, Parts, Playfield primitives.
  • games/warlok.json#/lamps/51._note: Playfield insert lamp near right slingshot. VLM lightmap array BL_L_L55 with Inserts, Parts, Playfield, RSling, RSling1, RSling2 primitives.
  • games/warlok.json#/lamps/52._note: Playfield insert lamp near left slingshot. VLM lightmap array BL_L_L57 with Inserts, LSling, LSling1, LSling2, Playfield primitives.
  • games/warlok.json#/lamps/53._note: Playfield insert lamp. VLM lightmap array BL_L_L58 with Inserts, Playfield primitives.
  • games/warlok.json#/lamps/54._note: Playfield insert lamp near right flipper. VLM lightmap array BL_L_L59 with FlipperR, Inserts, Parts, Playfield primitives.
  • games/warlok.json#/lamps/55._note: Playfield insert lamp. VLM lightmap array BL_L_L60 with Inserts, Parts, Playfield primitives.
  • games/warlok.json#/lamps/56._note: Playfield insert lamp. VLM lightmap array BL_L_L61 with Inserts, Parts, Playfield primitives.
  • games/warlok.json#/lamps/57._note: Playfield insert lamp. VLM lightmap array BL_L_L62 with Inserts, Parts, Playfield primitives.
  • games/warlok.json#/lamps/58._note: Playfield insert lamp. VLM lightmap array BL_L_L63 with Inserts, Parts, Playfield, RSling2 primitives.
  • games/warlok.json#/_source/confidence_notes: High confidence extraction from VPW VBScript. Platform identified as Williams System 7 via LoadVPM '01560000', 'S7.VBS', 3.26. ROM name 'wrlok_l3' from cGameName constant. This is an early-80s EM/SS hybrid era table with no traditional trough — instead uses a single Drain kicker (VPX object 'Drain') with Controller.Switch(9) set on Drain_Hit/Drain_UnHit and SolCallback(4)='SolRelease' which kicks the ball out with Drain.kick(66,20). Ball is pre-created on the Drain object at table init (Drain.Createball / Controller.Switch(9)=1). No bsTrough or cvpmBallStack objects used — this is a simple single-ball drain-and-release pattern typical of System 7 era. Switches identified from Controller.Switch on/off pairs (drain sw9, wire triggers sw16-18/23-26, rollunder gates sw22/37/38, flipper button sw36), PulseSw calls (spinners sw10-12, bumpers sw13-15, standup target sw19, slingshots sw20-21), and DTHit calls (drop targets sw27-35 across three banks). Solenoids 1-3 are drop target bank resets (Sol1DropUp resets sw27-29, Sol2DropUp resets sw30-32, Sol3DropUp resets sw33-35). Solenoids 5-7 are individual drop target actuators (dt1drop/dt2drop/dt3drop raise sw33/34/35). Sol 8 is GI relay with inverted logic (enabled=GI off, per MetaTed hack fix comment for orbit shot). Sol 15 is knocker. Sol 23 is game-on relay via vpmNudge.SolGameOn. Flipper solenoids use S7.VBS framework constants sLRFlipper=14 and sLLFlipper=16. Lamps mapped via vpmMapLights AllLamps using VPX light TimerInterval values — lamp IDs 8-63 (with gaps at 48, 56) identified from BL_L_L* VLM lightmap arrays. Six backglass indicator lamps (2,3,4,5,6,15) driven by LampCallback/UpdateMultipleLamps reading Controller.Lamp() and setting gi25-gi30 VPX objects. GI controlled by Sol 8 with inverted behavior. Switch 36 is right flipper cabinet button, set via Controller.Switch(36) on RightFlipperKey press/release — unusual for S7 where cabinet switches are typically ROM-managed, but this appears to be a VPW implementation choice for the flipper EOS or lane change feature.

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

ROM sets

Every driver that resolves to this physical machine.

ROM set Description Year Parent Hardware
wrlok_l3Warlok (L-3) 1982

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

    games/warlok.json; origin=vbscript-agent-extracted

    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