Last Action Hero

Partial

Data East1993DEdata-east.last-action-hero.1993

Wire it up

what an authoring tool needs first
Bind this ROM
lah_112

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

Controller platform
pinmame.de

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–62 (51)
Solenoids
1–48 (35)
Lamps
0–63 (61)

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.

51 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.
51 shown
# Name Device ID Evidence
1
Tilt
switch.tilt candidate
8
Plunger Button
switch.plunger-button candidate
9
#1 (Left) Ball Trough
switch.1-left-ball-trough candidate
10
#2 Ball Trough
switch.2-ball-trough candidate
11
#3 Ball Trough
switch.3-ball-trough candidate
12
#4 Ball Trough
switch.4-ball-trough candidate
13
#5 Ball Trough
switch.5-ball-trough candidate
14
#6 Ball Trough
switch.6-ball-trough candidate
15
#7 (Right) Ball Trough
switch.7-right-ball-trough candidate
16
Shooter Lane
switch.shooter-lane candidate
17
Drop Target 1 (Left)
switch.drop-target-1-left candidate
18
Drop Target 2
switch.drop-target-2 candidate
19
Drop Target 3
switch.drop-target-3 candidate
20
Drop Target 4
switch.drop-target-4 candidate
21
Drop Target 5 (Right)
switch.drop-target-5-right candidate
22
Lock Post / Upper Entrance
switch.lock-post-upper-entrance candidate
23
Lock Post / Lower Entrance
switch.lock-post-lower-entrance candidate
24
Left Inlane / Wire Rollover
switch.left-inlane-wire-rollover candidate
25
Standup Target 1
switch.standup-target-1 candidate
26
Standup Target 2
switch.standup-target-2 candidate
27
Standup Target 3
switch.standup-target-3 candidate
28
Wire Rollover / Lane
switch.wire-rollover-lane candidate
29
Wire Rollover / Lane
switch.wire-rollover-lane.29 candidate
30
Wire Rollover / Lane
switch.wire-rollover-lane.30 candidate
31
Right Scoop
switch.right-scoop candidate
32
Standup Target 4
switch.standup-target-4 candidate
33
Left Bumper
switch.left-bumper candidate
34
Right Bumper
switch.right-bumper candidate
35
Center Bumper
switch.center-bumper candidate
36
Left Slingshot
switch.left-slingshot candidate
37
Right Slingshot
switch.right-slingshot candidate
38
Wire Rollover / Lane
switch.wire-rollover-lane.38 candidate
39
Wire Rollover / Lane
switch.wire-rollover-lane.39 candidate
40
Standup Target 5
switch.standup-target-5 candidate
41
Wire Rollover / Lane
switch.wire-rollover-lane.41 candidate
42
Wire Rollover / Lane
switch.wire-rollover-lane.42 candidate
43
Wire Rollover / Lane
switch.wire-rollover-lane.43 candidate
44
Wire Rollover / Lane
switch.wire-rollover-lane.44 candidate
45
Wire Rollover / Lane
switch.wire-rollover-lane.45 candidate
46
Wire Rollover / Lane
switch.wire-rollover-lane.46 candidate
47
Top Right VUK
switch.top-right-vuk candidate
48
Ripper Kickback Lane
switch.ripper-kickback-lane candidate
54
Rollover / Trigger
switch.rollover-trigger candidate
55
Wire Rollover / Lane
switch.wire-rollover-lane.55 candidate
56
Standup Target 6
switch.standup-target-6 candidate
57
Middle Left Scoop
switch.middle-left-scoop candidate
58
Centre Right Subway
switch.centre-right-subway candidate
59
Spinner
switch.spinner candidate
60
Crane Position Left
switch.crane-position-left candidate
61
Crane Position Right
switch.crane-position-right candidate
62
Smart Bomb
switch.smart-bomb candidate

Controlled devices

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

Coils, magnets & motors

26
26 shown
# Name Device ID Kind Evidence
1
6 Ball Assy Lockout / Trough
device.6-ball-assy-lockout-trough Coil candidate
2
Ball Release
device.ball-release Coil candidate
3
Ball Launch (Auto Plunger)
device.ball-launch-auto-plunger Coil candidate
4
Crane Lock
device.crane-lock Coil candidate
5
VUK (Top Right)
device.vuk-top-right Coil candidate
6
Right Scoop
device.right-scoop Coil candidate
7
Ball Lock Release
device.ball-lock-release Coil candidate
8
Knocker
device.knocker Coil candidate
10
L/R Relay
device.l-r-relay Relay candidate
11
GI Relay
device.gi-relay Relay candidate
12
Diverter
device.diverter Coil candidate
13
Drop Target Reset
device.drop-target-reset Coil candidate
14
Crane Motor
device.crane-motor Motor candidate
15
Middle Scoop
device.middle-scoop Coil candidate
16
Shaker Motor
device.shaker-motor Motor candidate
17
Left Bumper Coil
device.left-bumper-coil Coil candidate
18
Center Bumper Coil
device.center-bumper-coil Coil candidate
19
Right Bumper Coil
device.right-bumper-coil Coil candidate
20
Left Slingshot Coil
device.left-slingshot-coil Coil candidate
21
Right Slingshot Coil
device.right-slingshot-coil Coil candidate
22
Ripper Kickback
device.ripper-kickback Coil candidate
37
Left Magnet
device.left-magnet Magnet candidate
38
Center Magnet
device.center-magnet Magnet candidate
39
Right Magnet
device.right-magnet Magnet candidate
46
Lower Right Flipper
device.flipper-lower-right Coil candidate
48
Lower Left Flipper
device.flipper-lower-left Coil candidate

Flashers

9
9 shown
# Name Device ID Evidence
9
Flash Crane + Backbox Inserts
device.flash-crane-backbox-inserts candidate
25
Flash Topper Right Police
device.flash-topper-right-police candidate
26
Flash Playfield Upper Left
device.flash-playfield-upper-left candidate
27
Flash Ramp
device.flash-ramp candidate
28
Flash Playfield Upper Right
device.flash-playfield-upper-right candidate
29
Flash Playfield Mid Right
device.flash-playfield-mid-right candidate
30
Flash Playfield Low Right
device.flash-playfield-low-right candidate
31
Flash Topper Left Police
device.flash-topper-left-police candidate
32
Flash Playfield Low Left
device.flash-playfield-low-left candidate

Lamps

61

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.

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

61 shown
# Name Device ID Evidence
0
GI String
lamp.gi-string candidate
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
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
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
41
outputs 41
lamp.outputs-41 candidate
42
outputs 42
lamp.outputs-42 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
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
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

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 (1993). 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/lah.json#/switches/0._note: vpmNudge.TiltSwitch=1
  • games/lah.json#/switches/1._note: Set via PlungerKey in Table1_KeyDown
  • games/lah.json#/switches/8._note: Virtual switch set by SolTrough/SolRelease, no VPX kicker object
  • games/lah.json#/switches/9._note: Also used by cvpmImpulseP plunger (.Switch 16)
  • games/lah.json#/switches/15._note: Lock post area — enables PostSettleTimer, triggers WireRampOff
  • games/lah.json#/switches/16._note: Lock post area — enables PostSettleTimer
  • games/lah.json#/switches/24._note: bsRScoop ball stack — InitSaucer sw31, solenoid 6
  • games/lah.json#/switches/26._note: vpmTimer.PulseSw 33
  • games/lah.json#/switches/27._note: vpmTimer.PulseSw 34
  • games/lah.json#/switches/28._note: vpmTimer.PulseSw 35
  • games/lah.json#/switches/29._note: vpmTimer.PulseSw 36
  • games/lah.json#/switches/30._note: vpmTimer.PulseSw 37
  • games/lah.json#/switches/40._note: bsVuk ball stack — InitSaucer sw47, solenoid 5
  • games/lah.json#/switches/41._note: vpmTimer.PulseSw 48 — used as kicker by SolRipperKick (sol 22)
  • games/lah.json#/switches/42._note: vpmTimer.PulseSw 54
  • games/lah.json#/switches/45._note: bsMLScoop ball stack — InitSaucer sw57, solenoid 15
  • games/lah.json#/switches/46._note: vpmTimer.PulseSw 58
  • games/lah.json#/switches/47._note: Sw59_Spin — vpmTimer.PulseSw 59
  • games/lah.json#/switches/48._note: Set by crane motor code — CraneIsLeft sets switch 60=1, CraneIsRight sets 60=0
  • games/lah.json#/switches/49._note: Set by crane motor code — CraneIsRight sets switch 61=1, CraneIsLeft sets 61=0
  • games/lah.json#/switches/50._note: Set via PlungerKey and LockBarKey in Table1_KeyDown — no physical VPX object
  • games/lah.json#/coils/0._vbscript_callback: SolTrough
  • games/lah.json#/coils/0._inferred_type: ball_management
  • games/lah.json#/coils/0._note: Kicks from sw14 to sw15, sets Controller.Switch(15)=1
  • games/lah.json#/coils/1._vbscript_callback: SolRelease
  • games/lah.json#/coils/1._inferred_type: ball_management
  • games/lah.json#/coils/1._note: Kicks from sw15 to shooter lane, sets Controller.Switch(15)=0
  • games/lah.json#/coils/2._vbscript_callback: AutoLaunch
  • games/lah.json#/coils/2._inferred_type: kicker
  • games/lah.json#/coils/2._note: cvpmImpulseP auto-fire plunger
  • games/lah.json#/coils/3._vbscript_callback: SolCraneLock
  • games/lah.json#/coils/3._inferred_type: mechanism
  • games/lah.json#/coils/3._note: Releases ball from crane when disabled and crane at left position (sw60)
  • games/lah.json#/coils/4._vbscript_callback: bsVuk.SolOut
  • games/lah.json#/coils/4._inferred_type: kicker
  • games/lah.json#/coils/4._note: cvpmBallStack eject — InitSaucer sw47
  • games/lah.json#/coils/5._vbscript_callback: bsRScoop.SolOut
  • games/lah.json#/coils/5._inferred_type: kicker
  • games/lah.json#/coils/5._note: cvpmBallStack eject — InitSaucer sw31
  • games/lah.json#/coils/6._vbscript_callback: SolLockRelease
  • games/lah.json#/coils/6._inferred_type: mechanism
  • games/lah.json#/coils/6._note: Drops lock post to release ball
  • games/lah.json#/coils/7._vbscript_callback: SolKnocker
  • games/lah.json#/coils/7._inferred_type: knocker
  • games/lah.json#/coils/8._vbscript_callback: Lampz.SetLamp 109,
  • games/lah.json#/coils/8._inferred_type: flasher
  • games/lah.json#/coils/8._note: Lampz index 109 — Crane(x2) + Backbox Inserts(x2)
  • games/lah.json#/coils/9._inferred_type: relay
  • games/lah.json#/coils/9._note: Commented out in VBScript — no callback assigned
  • games/lah.json#/coils/10._vbscript_callback: SolGI
  • games/lah.json#/coils/10._inferred_type: gi_relay
  • games/lah.json#/coils/10._note: Controls GI lighting via Lampz.state(0) — inverted logic (enabled=off, disabled=on)
  • games/lah.json#/coils/11._vbscript_callback: SolDiv
  • games/lah.json#/coils/11._inferred_type: diverter
  • games/lah.json#/coils/12._vbscript_callback: SoLDrop
  • games/lah.json#/coils/12._inferred_type: drop_target_reset
  • games/lah.json#/coils/12._note: Resets all 5 drop targets (sw17-sw21)
  • games/lah.json#/coils/13._vbscript_callback: SoLCraneMotor
  • games/lah.json#/coils/13._inferred_type: motor
  • games/lah.json#/coils/13._note: Enables CraneTimer — drives crane left/right, sets sw60/sw61
  • games/lah.json#/coils/14._vbscript_callback: bsMLScoop.SolOut
  • games/lah.json#/coils/14._inferred_type: kicker
  • games/lah.json#/coils/14._note: cvpmBallStack eject — InitSaucer sw57
  • games/lah.json#/coils/15._inferred_type: motor
  • games/lah.json#/coils/15._note: Commented out in VBScript — no callback assigned
  • games/lah.json#/coils/16._inferred_type: bumper
  • games/lah.json#/coils/16._note: Commented out in VBScript — bumpers handled by VPX physics
  • games/lah.json#/coils/17._inferred_type: bumper
  • games/lah.json#/coils/17._note: Commented out in VBScript — bumpers handled by VPX physics
  • games/lah.json#/coils/18._inferred_type: bumper
  • games/lah.json#/coils/18._note: Commented out in VBScript — bumpers handled by VPX physics
  • games/lah.json#/coils/19._inferred_type: slingshot
  • games/lah.json#/coils/19._note: Commented out in VBScript — slingshots handled by VPX physics
  • games/lah.json#/coils/20._inferred_type: slingshot
  • games/lah.json#/coils/20._note: Commented out in VBScript — slingshots handled by VPX physics
  • games/lah.json#/coils/21._vbscript_callback: SolRipperKick
  • games/lah.json#/coils/21._inferred_type: kicker
  • games/lah.json#/coils/21._note: Kicks ball from sw48 kicker
  • games/lah.json#/coils/22._vbscript_callback: Lampz.SetLamp 101,
  • games/lah.json#/coils/22._inferred_type: flasher
  • games/lah.json#/coils/22._note: Lampz index 101 — Topper Right Police(x4)
  • games/lah.json#/coils/23._vbscript_callback: Lampz.SetLamp 102,
  • games/lah.json#/coils/23._inferred_type: flasher
  • games/lah.json#/coils/23._note: Lampz index 102 — Playfield Upper Left(x3) + Backbox Insert
  • games/lah.json#/coils/24._vbscript_callback: Lampz.SetLamp 103,
  • games/lah.json#/coils/24._inferred_type: flasher
  • games/lah.json#/coils/24._note: Lampz index 103 — Ramp(x2) + Backbox Insert(x2)
  • games/lah.json#/coils/25._vbscript_callback: Lampz.SetLamp 104,
  • games/lah.json#/coils/25._inferred_type: flasher
  • games/lah.json#/coils/25._note: Lampz index 104 — Playfield Upper Right(x2) + Backbox Insert(x2)
  • games/lah.json#/coils/26._vbscript_callback: Lampz.SetLamp 105,
  • games/lah.json#/coils/26._inferred_type: flasher
  • games/lah.json#/coils/26._note: Lampz index 105 — Playfield Mid Right(x3) + Backbox Insert
  • games/lah.json#/coils/27._vbscript_callback: Lampz.SetLamp 106,
  • games/lah.json#/coils/27._inferred_type: flasher
  • games/lah.json#/coils/27._note: Lampz index 106 — Playfield Low Right(x4)
  • games/lah.json#/coils/28._vbscript_callback: Lampz.SetLamp 107,
  • games/lah.json#/coils/28._inferred_type: flasher
  • games/lah.json#/coils/28._note: Lampz index 107 — Topper Left Police(x4). MassAssign commented out in LampzHelper.
  • games/lah.json#/coils/29._vbscript_callback: Lampz.SetLamp 108,
  • games/lah.json#/coils/29._inferred_type: flasher
  • games/lah.json#/coils/29._note: Lampz index 108 — Playfield Low Left + Backbox Insert(x2). MassAssign commented out in LampzHelper.
  • games/lah.json#/coils/30._vbscript_callback: SolLeftMagnet
  • games/lah.json#/coils/30._inferred_type: magnet
  • games/lah.json#/coils/30._note: cvpmMagnet — InitMagnet LMagnet, strength 9
  • games/lah.json#/coils/31._vbscript_callback: SolCenterMagnet
  • games/lah.json#/coils/31._inferred_type: magnet
  • games/lah.json#/coils/31._note: cvpmMagnet — InitMagnet CMagnet, strength 9
  • games/lah.json#/coils/32._vbscript_callback: SolRightMagnet
  • games/lah.json#/coils/32._inferred_type: magnet
  • games/lah.json#/coils/32._note: cvpmMagnet — InitMagnet RMagnet, strength 9
  • games/lah.json#/coils/33._vbscript_name: sLRFlipper
  • games/lah.json#/coils/33._vbscript_callback: SolRFlipper
  • games/lah.json#/coils/33._inferred_type: flipper
  • games/lah.json#/coils/34._vbscript_name: sLLFlipper
  • games/lah.json#/coils/34._vbscript_callback: SolLFlipper
  • games/lah.json#/coils/34._inferred_type: flipper
  • games/lah.json#/lamps/0._note: Controlled by SolGI (sol 11) — Lampz index 0, inverted logic
  • games/lah.json#/_source/confidence_notes: High confidence on switches/coils from VPW VBScript. Trough is a 6-ball manual implementation (sw9-sw14, sw15 virtual). Switch descriptions are inferred from VBScript context (DTHit=drop target, STHit=standup, PulseSw=momentary, bsRScoop/bsVuk/bsMLScoop=ball stacks). Lamps l1-l63 are playfield inserts via Lampz.MassAssign. Flashers use Lampz indices 101-109 driven by SolCallback(9,25-32). GI is Lampz index 0, controlled by SolCallback(11) GI relay (inverted logic). Crane mechanism uses switches 60/61 for position and solenoids 4 (lock) and 14 (motor). Three magnets on solenoids 37-39. Flipper solenoids use framework constants sLRFlipper=46, sLLFlipper=48 from DE.VBS. No upper flippers on this game.

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

ROM sets

Every driver that resolves to this physical machine.

ROM set Description Year Parent Hardware
lah_113Last Action Hero (1.13 unofficial MOD) 2014lah_112
lah_l108_105Last Action Hero (1.08 Spanish, Display 1.05) 1993lah_112
lah_l108Last Action Hero (1.08 Spanish, Display 1.04) 1993lah_112
lah_l104Last Action Hero (1.04 Spanish) 1993lah_112
lah_f104Last Action Hero (1.04 French) 1993lah_112
lah_c106Last Action Hero (1.06 Canadian) 1993lah_112
lah_112Last Action Hero (1.12) 1993
lah_110Last Action Hero (1.10) 1993lah_112

Parent set: lah_112 — 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.lah

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