Hook

Partial

Data East1992DATAEASTdata-east.hook.1992

Wire it up

what an authoring tool needs first
Bind this ROM
hook_408

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

Controller platform
pinmame.dataeast

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–53 (41)
Solenoids
1–32 (24)
Lamps
1–114 (60)

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.

41 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
Hover or tap an address to identify it.
41 shown
# Name Device ID Evidence
1
Tilt (Plumb Bob)NC
switch.tilt-plumb-bob candidate
10
Trough Entry (Drain)
switch.trough-entry-drain candidate
11
Trough 3 (Nearest Shooter)
switch.trough-3-nearest-shooter candidate
12
Trough 2
switch.trough-2 candidate
13
Trough 1 (Nearest Drain)
switch.trough-1-nearest-drain candidate
14
Plunger Lane / Shooter Lane
switch.plunger-lane-shooter-lane candidate
17
Top Lane (Left)
switch.top-lane-left candidate
18
Top Lane (Center)
switch.top-lane-center candidate
19
Top Lane (Right)
switch.top-lane-right candidate
20
Stand-Up Target (Left)
switch.stand-up-target-left candidate
21
Left Outlane
switch.left-outlane candidate
22
Left Return Lane
switch.left-return-lane candidate
23
Right Return Lane
switch.right-return-lane candidate
24
Right Outlane
switch.right-outlane candidate
25
Drop Target 1 (Left Bank)
switch.drop-target-1-left-bank candidate
26
Drop Target 2 (Left Bank)
switch.drop-target-2-left-bank candidate
27
Drop Target 3 (Left Bank)
switch.drop-target-3-left-bank candidate
28
Drop Target 4 (Left Bank)
switch.drop-target-4-left-bank candidate
29
Left Orbit / Left Loop
switch.left-orbit-left-loop candidate
30
Right Orbit / Right Loop
switch.right-orbit-right-loop candidate
31
Upper Playfield Switch
switch.upper-playfield-switch candidate
32
Skill Shot Kicker (Saucer)
switch.skill-shot-kicker-saucer candidate
33
Pop Bumper Top Left / Stand-Up Target
switch.pop-bumper-top-left-stand-up-target candidate
34
Pop Bumper Center / Stand-Up Target
switch.pop-bumper-center-stand-up-target candidate
35
Pop Bumper Top Right / Stand-Up Target
switch.pop-bumper-top-right-stand-up-target candidate
36
Left Ramp Switch
switch.left-ramp-switch candidate
37
Right Ramp Entry
switch.right-ramp-entry candidate
40
Right Ramp
switch.right-ramp candidate
41
Stand-Up Target Row 1
switch.stand-up-target-row-1 candidate
42
Stand-Up Target Row 2
switch.stand-up-target-row-2 candidate
43
Stand-Up Target Row 3
switch.stand-up-target-row-3 candidate
44
Stand-Up Target Row 4
switch.stand-up-target-row-4 candidate
45
Stand-Up Target Row 5
switch.stand-up-target-row-5 candidate
46
Stand-Up Target Row 6
switch.stand-up-target-row-6 candidate
47
Subway Entrance
switch.subway-entrance candidate
48
PowerScoop (Kicker)
switch.powerscoop-kicker candidate
49
Dead Sling / Bumper
switch.dead-sling-bumper candidate
50
Upper Playfield Switch
switch.upper-playfield-switch.50 candidate
51
Left VUK (Kicker)
switch.left-vuk-kicker candidate
52
Left Slingshot
switch.left-slingshot candidate
53
Right Slingshot
switch.right-slingshot candidate

Controlled devices

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

Coils, magnets & motors

12
12 shown
# Name Device ID Kind Evidence
1
Trough Entry
device.trough-entry Coil candidate
2
Trough Eject / Ball Release
device.trough-eject-ball-release Coil candidate
3
Left VUK Kick
device.left-vuk-kick Coil candidate
4
Kickback / Skill Shot Release
device.kickback-skill-shot-release Coil candidate
5
Drop Target Bank Reset
device.drop-target-bank-reset Coil candidate
6
PowerScoop Kickout
device.powerscoop-kickout Coil candidate
7
Ticket Dispenser (Unused)
device.ticket-dispenser-unused Coil candidate
8
Knocker
device.knocker Coil candidate
10
L/R Coil Select Relay (Unused)
device.l-r-coil-select-relay-unused Coil candidate
11
GI Relay (Inverted)
device.gi-relay-inverted Relay candidate
15
Auto-Plunge / Ball Launch
device.auto-plunge-ball-launch Coil candidate
22
Diverter
device.diverter Coil candidate

Flashers

12
12 shown
# Name Device ID Evidence
9
Flash 9 — Top Right Ramp Flasher
device.flash-9-top-right-ramp-flasher candidate
12
Flash 12 — Top Right Ramp Flasher
device.flash-12-top-right-ramp-flasher candidate
13
Flash Skull
device.flash-skull candidate
14
Right VUK Flasher
device.right-vuk-flasher candidate
25
Flash 1B — Pirate Town
device.flash-1b-pirate-town candidate
26
Flash 2B
device.flash-2b candidate
27
Flash 3B
device.flash-3b candidate
28
Flash 4B
device.flash-4b candidate
29
Flash 5B
device.flash-5b candidate
30
Flash 6B
device.flash-6b candidate
31
Flash 7B
device.flash-7b candidate
32
Flash 8B — Top Right Ramp Flasher
device.flash-8b-top-right-ramp-flasher candidate

Lamps

60

Lamp map

Sequential addresses, grouped in columns of eight.

used unused
 
+0
+1
+2
+3
+4
+5
+6
+7
1–8
9–16
17–24
25–32
33–40
41–48
49–56
57–64
65–72
73–80
81–88
89–96
97–104
105–112
113–120
Hover or tap an address to identify it.
60 shown
# Name Device ID Evidence
1
outputs 1
lamp.outputs-1 candidate
2
outputs 2
lamp.outputs-2 candidate
3
outputs 3
lamp.outputs-3 candidate
4
outputs 4
lamp.outputs-4 candidate
5
outputs 5
lamp.outputs-5 candidate
6
outputs 6
lamp.outputs-6 candidate
7
outputs 7
lamp.outputs-7 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
outputs 15
lamp.outputs-15 candidate
16
outputs 16
lamp.outputs-16 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
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
48
outputs 48
lamp.outputs-48 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
56
outputs 56
lamp.outputs-56 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
64
outputs 64
lamp.outputs-64 candidate
92
Flasher 2B lamp
lamp.flasher-2b-lamp candidate
95
Flasher 5B lamp
lamp.flasher-5b-lamp candidate
114
Right VUK Flasher lamp
lamp.right-vuk-flasher-lamp 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 Data East (1992). 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/hook.json#/switches/0._note: vpmNudge.TiltSwitch = 1
  • games/hook.json#/switches/1._note: bsTrough.EntrySw = 10. Trigger1_Hit decrements BallsOnPlayfield.
  • games/hook.json#/switches/2._note: bsTrough.InitSwitches Array(13,12,11) — sw11 is position 3 (nearest eject). Size=3.
  • games/hook.json#/switches/3._note: bsTrough.InitSwitches Array(13,12,11) — sw12 is position 2.
  • games/hook.json#/switches/4._note: bsTrough.InitSwitches Array(13,12,11) — sw13 is position 1 (nearest drain).
  • games/hook.json#/switches/5._note: Sw14_Hit/UnHit — tracks BIPL (BallInPlungerLane) variable. Controller.Switch(14) on/off.
  • games/hook.json#/switches/6._note: Controller.Switch(17) on/off.
  • games/hook.json#/switches/7._note: Controller.Switch(18) on/off.
  • games/hook.json#/switches/8._note: Controller.Switch(19) on/off.
  • games/hook.json#/switches/9._inferred_type: standup_target
  • games/hook.json#/switches/9._note: vpmTimer.PulseSw 20 in Sw20_Hit. MoveTarget20 animates target depression.
  • games/hook.json#/switches/10._note: Controller.Switch(21) on/off.
  • games/hook.json#/switches/11._note: Controller.Switch(22) on/off.
  • games/hook.json#/switches/12._note: Controller.Switch(23) on/off.
  • games/hook.json#/switches/13._note: Controller.Switch(24) on/off.
  • games/hook.json#/switches/14._inferred_type: drop_target
  • games/hook.json#/switches/14._note: sw25_dropped() calls dtLDrop.Hit 1. cvpmDropTarget bank of 4.
  • games/hook.json#/switches/15._inferred_type: drop_target
  • games/hook.json#/switches/15._note: sw26_dropped() calls dtLDrop.Hit 2.
  • games/hook.json#/switches/16._inferred_type: drop_target
  • games/hook.json#/switches/16._note: sw27_dropped() calls dtLDrop.Hit 3.
  • games/hook.json#/switches/17._inferred_type: drop_target
  • games/hook.json#/switches/17._note: sw28_dropped() calls dtLDrop.Hit 4.
  • games/hook.json#/switches/18._note: Controller.Switch(29) on/off.
  • games/hook.json#/switches/19._note: Controller.Switch(30) on/off.
  • games/hook.json#/switches/20._note: Controller.Switch(31) on/off.
  • games/hook.json#/switches/21._inferred_type: kicker
  • games/hook.json#/switches/21._note: Sw32_Hit adds ball to SkillShotR (cvpmBallStack). InitSaucer Sw32,32. Sw32_UnHit fires plunger release animation.
  • games/hook.json#/switches/22._inferred_type: bumper
  • games/hook.json#/switches/22._note: Bumper1B_Hit pulses sw33. Sw33_Hit also pulses sw33 with MoveTarget33 — same switch used for both bumper and stand-up target.
  • games/hook.json#/switches/23._inferred_type: bumper
  • games/hook.json#/switches/23._note: Bumper3B_Hit pulses sw34. Sw34_Hit also pulses sw34 with MoveTarget34.
  • games/hook.json#/switches/24._inferred_type: bumper
  • games/hook.json#/switches/24._note: Bumper2B_Hit pulses sw35. Sw35_Hit also pulses sw35 with MoveTarget35.
  • games/hook.json#/switches/25._note: Sw36_Hit/UnHit — Controller.Switch(36) on/off. UnHit applies speed adjustment for ramp boost.
  • games/hook.json#/switches/26._note: Controller.Switch(37) on/off. Hit triggers LEDFlash.
  • games/hook.json#/switches/27._note: Controller.Switch(40) on/off. Hit applies speed dampening.
  • games/hook.json#/switches/28._inferred_type: standup_target
  • games/hook.json#/switches/28._note: vpmTimer.PulseSw 41 in Sw41_Hit. MoveTarget41 animation.
  • games/hook.json#/switches/29._inferred_type: standup_target
  • games/hook.json#/switches/29._note: vpmTimer.PulseSw 42 in Sw42_Hit. MoveTarget42 animation.
  • games/hook.json#/switches/30._inferred_type: standup_target
  • games/hook.json#/switches/30._note: vpmTimer.PulseSw 43 in Sw43_Hit. MoveTarget43 animation.
  • games/hook.json#/switches/31._inferred_type: standup_target
  • games/hook.json#/switches/31._note: vpmTimer.PulseSw 44 in Sw44_Hit. MoveTarget44 animation.
  • games/hook.json#/switches/32._inferred_type: standup_target
  • games/hook.json#/switches/32._note: vpmTimer.PulseSw 45 in Sw45_Hit. MoveTarget45 animation.
  • games/hook.json#/switches/33._inferred_type: standup_target
  • games/hook.json#/switches/33._note: vpmTimer.PulseSw 46 in Sw46_Hit. MoveTarget46 animation.
  • games/hook.json#/switches/34._inferred_type: trigger
  • games/hook.json#/switches/34._note: vpmTimer.PulseSw 47 in Sw47_Hit. Enables Sw48 kicker. Ball enters subway.
  • games/hook.json#/switches/35._inferred_type: kicker
  • games/hook.json#/switches/35._note: Controller.Switch(48) on/off. SolKickout (coil 6) ejects. Ball arrives from subway (sw47).
  • games/hook.json#/switches/36._note: vpmTimer.PulseSw 49 in Sw49_Hit.
  • games/hook.json#/switches/37._note: Controller.Switch(50) on/off.
  • games/hook.json#/switches/38._inferred_type: kicker
  • games/hook.json#/switches/38._note: Controller.Switch(51) on/off. SolVUKKick (coil 3) ejects. SoundSaucerLock on hit.
  • games/hook.json#/switches/39._inferred_type: slingshot
  • games/hook.json#/switches/39._note: LeftSlingShot_Slingshot pulses sw52. VPX built-in slingshot object.
  • games/hook.json#/switches/40._inferred_type: slingshot
  • games/hook.json#/switches/40._note: RightSlingShot_Slingshot pulses sw53. VPX built-in slingshot object.
  • games/hook.json#/coils/0._vbscript_callback: bsTrough.SolIn
  • games/hook.json#/coils/0._inferred_type: trough
  • games/hook.json#/coils/0._note: cvpmTrough SolIn — stacks ball into trough.
  • games/hook.json#/coils/1._vbscript_callback: bsTrough.SolOut
  • games/hook.json#/coils/1._inferred_type: trough
  • games/hook.json#/coils/1._note: cvpmTrough SolOut — ejects ball to shooter lane. InitExit BallRelease, 90, 6.
  • games/hook.json#/coils/2._vbscript_callback: SolVUKKick
  • games/hook.json#/coils/2._inferred_type: kicker
  • games/hook.json#/coils/2._note: sw51.kick 60,100. Ejects ball from left VUK upward.
  • games/hook.json#/coils/3._vbscript_callback: SolKickback
  • games/hook.json#/coils/3._inferred_type: kicker
  • games/hook.json#/coils/3._note: Calls SkillShotR.ExitSol_On — ejects ball from skill shot saucer (sw32).
  • games/hook.json#/coils/4._vbscript_callback: dtLDrop.SolDropUp
  • games/hook.json#/coils/4._inferred_type: drop_target_reset
  • games/hook.json#/coils/4._note: cvpmDropTarget.SolDropUp — resets 4-target bank (sw25-28).
  • games/hook.json#/coils/5._vbscript_callback: SolKickout
  • games/hook.json#/coils/5._inferred_type: kicker
  • games/hook.json#/coils/5._note: sw48.kick 35,65. Ejects ball from PowerScoop (sw48).
  • games/hook.json#/coils/6._inferred_type: unused
  • games/hook.json#/coils/6._note: Commented out: 'Ticket Dispenser (Unused)
  • games/hook.json#/coils/7._vbscript_callback: Solknocker
  • games/hook.json#/coils/7._inferred_type: knocker
  • games/hook.json#/coils/7._note: KnockerSolenoid called when enabled.
  • games/hook.json#/coils/8._vbscript_callback: SolFlash9
  • games/hook.json#/coils/8._inferred_type: flasher
  • games/hook.json#/coils/8._note: Custom flash sub with opacity fade. Originally SetLamp 109 but replaced with direct flash handler.
  • games/hook.json#/coils/9._inferred_type: unused
  • games/hook.json#/coils/9._note: Commented out: 'L/R Coil Select Relay
  • games/hook.json#/coils/10._vbscript_callback: SolGI
  • games/hook.json#/coils/10._inferred_type: gi_relay
  • games/hook.json#/coils/10._note: Inverted logic: enabled=true calls GiOFF, enabled=false calls GiON. DE A-board GI relay.
  • games/hook.json#/coils/11._vbscript_callback: SolFlash12
  • games/hook.json#/coils/11._inferred_type: flasher
  • games/hook.json#/coils/11._note: Custom flash sub with opacity fade. Originally SetLamp 112 but replaced with direct handler.
  • games/hook.json#/coils/12._vbscript_callback: SolFlashSkull
  • games/hook.json#/coils/12._inferred_type: flasher
  • games/hook.json#/coils/12._note: Skull flasher with custom fade. FlasherSkull/FlasherSkulla/FlasherSkullb opacity. Also affects skullP blenddisablelighting.
  • games/hook.json#/coils/13._vbscript_callback: SetLamp 114,
  • games/hook.json#/coils/13._inferred_type: flasher
  • games/hook.json#/coils/13._note: Lamp 114 driven by solenoid 14. NFadeLm 114, s114 / s114a in lamp update.
  • games/hook.json#/coils/14._vbscript_callback: SolAutoPlunge
  • games/hook.json#/coils/14._inferred_type: ball_launch
  • games/hook.json#/coils/14._note: LaserKick.Enabled toggled. Kicks ball from shooter lane into play.
  • games/hook.json#/coils/15._vbscript_callback: SolRdiv
  • games/hook.json#/coils/15._inferred_type: diverter
  • games/hook.json#/coils/15._note: DivOpen/DivClose walls toggle. DivP primitive rotates. 1500ms timer auto-close.
  • games/hook.json#/coils/16._vbscript_callback: SolFlash1B
  • games/hook.json#/coils/16._inferred_type: flasher
  • games/hook.json#/coils/16._note: Custom flash sub. Flasher25/25a/25b/25c1/25c2/25c3 IntensityScale fade. PirateTownP blenddisablelighting.
  • games/hook.json#/coils/17._vbscript_callback: SetLamp 92,
  • games/hook.json#/coils/17._inferred_type: flasher
  • games/hook.json#/coils/17._note: Lamp 92 driven by solenoid 26. NFadeLm 92, f2b1 / NFadeL 92, f2b2 in lamp update.
  • games/hook.json#/coils/18._vbscript_callback: SolFlash3B
  • games/hook.json#/coils/18._inferred_type: flasher
  • games/hook.json#/coils/18._note: Custom flash sub. Flasherf3a/f3b opacity and f3a/f3b IntensityScale fade.
  • games/hook.json#/coils/19._vbscript_callback: SolFlash4B
  • games/hook.json#/coils/19._inferred_type: flasher
  • games/hook.json#/coils/19._note: Custom flash sub. Flasherf4a/f4b opacity and f4a/f4b IntensityScale fade.
  • games/hook.json#/coils/20._vbscript_callback: SetLamp 95,
  • games/hook.json#/coils/20._inferred_type: flasher
  • games/hook.json#/coils/20._note: Lamp 95 driven by solenoid 29. NFadeL 95, f5b in lamp update.
  • games/hook.json#/coils/21._vbscript_callback: SolFlash6B
  • games/hook.json#/coils/21._inferred_type: flasher
  • games/hook.json#/coils/21._note: Custom flash sub with fade.
  • games/hook.json#/coils/22._vbscript_callback: SolFlash7B
  • games/hook.json#/coils/22._inferred_type: flasher
  • games/hook.json#/coils/22._note: Custom flash sub with fade.
  • games/hook.json#/coils/23._vbscript_callback: SolFlash8
  • games/hook.json#/coils/23._inferred_type: flasher
  • games/hook.json#/coils/23._note: Custom flash sub with fade. Originally SetLamp 98 but replaced with direct handler.
  • games/hook.json#/lamps/14._note: Also NFadeLm 15, L19 (additional mapped object).
  • games/hook.json#/lamps/15._note: Also NFadeLm 16, Light16a (two objects).
  • games/hook.json#/lamps/20._note: Also Flash 24, Light24a (flash effect on same lamp).
  • games/hook.json#/lamps/27._note: Also NFadeL 32, Light32a (two objects).
  • games/hook.json#/lamps/31._note: Also NFadeLm 36, Light36a (two objects).
  • games/hook.json#/lamps/32._note: Also NFadeLm 37, Light37a (two objects).
  • games/hook.json#/lamps/33._note: Skull right eye.
  • games/hook.json#/lamps/34._note: Skull left eye.
  • games/hook.json#/lamps/56._note: Also NFadeLm 64, Light64a (two objects).
  • games/hook.json#/lamps/57._note: Also NFadeL 92, f2b2. Driven by solenoid 26 via SetLamp.
  • games/hook.json#/lamps/58._note: Driven by solenoid 29 via SetLamp.
  • games/hook.json#/lamps/59._note: Also NFadeLm 114, s114a. Driven by solenoid 14 via SetLamp.
  • games/hook.json#/_source/confidence_notes: High confidence on switches/coils. No Const sw* definitions — switches identified from _Hit/_UnHit subs, Controller.Switch() calls, PulseSw calls, and cvpmTrough/cvpmDropTarget/cvpmBallStack setup. Lamp IDs from NFadeL/NFadeLm calls in lamp update sub. Trough is 3-ball cvpmTrough with switches 13,12,11 and entry switch 10. GI Relay (sol 11) is inverted — enabled=true cuts GI, enabled=false turns GI on. Solenoids 7,10,16-21,23-24 unused/commented out. Solenoids 17-21 commented as bumpers/slings but handled by VPX physics. Flasher solenoids 25-32 map to Flash 1B-8B. Solenoids 9,12 use custom flash subs (not SetLamp). Sol 14 uses SetLamp 114 for RightVUK flasher. Sol 26 uses SetLamp 92 (Flash 2B), sol 29 uses SetLamp 95 (Flash 5B). Bumper1B/2B/3B pulse sw33/35/34 respectively AND separate Sw33/Sw34/Sw35 targets also pulse same switches — same switch numbers used for both bumpers and stand-up targets. Sw32 is skill shot kicker (cvpmBallStack). Sw47 is subway entrance. Sw48 is PowerScoop (kicker). Sw51 is left VUK. Sw36/37 are ramp switches. Sw40 is right ramp.

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

ROM sets

Every driver that resolves to this physical machine.

ROM set Description Year Parent Hardware
hook_501Hook (5.01 unofficial MOD) 2018hook_408
hook_500Hook (5.00 unofficial MOD) 2016hook_408
hook_f401Hook (4.01, French Display 4.01) 1992hook_408
hook_e406Hook (4.06 English) 1992hook_408
hook_408Hook (4.08) 1992
hook_404Hook (4.04) 1992hook_408
hook_401pHook (4.01 with Prototype Sound) 1992hook_408
hook_401Hook (4.01) 1992hook_408

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

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