Beat The Clock

Partial

Bally1985BALLYbally.beat-the-clock.1985

3 unresolved conflicts

  • Legacy sources disagree on label: 'Ball Roll Tilt' versus 'Drop Target 2 (Left Bank)'. binding:pinmame.input.switch/2/None
  • Legacy sources disagree on label: 'Tilt' versus 'Drop Target 6 (Left Bank)'. binding:pinmame.input.switch/7/None
  • Legacy sources disagree on label: 'Slam Tilt' versus 'Wire Trigger'. binding:pinmame.input.switch/16/None

Wire it up

what an authoring tool needs first
Bind this ROM
beatclck

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

Controller platform
pinmame.bally

PinMAME already reports logical active state. Do not invert again in the table — normally-closed is a physical fact recorded per switch, not a runtime transform.

Displays

No display inventory recorded yet.

Address space
Switches
-7–84 (46)
Solenoids
6–19 (10)
Lamps
2–95 (73)
Cabinet & flipper inputs
82flipper.lower.right84flipper.lower.left6cabinet.start9cabinet.coin.310cabinet.coin.211cabinet.coin.1

Portable roles — the consuming engine maps them to its own input actions.

Coverage

Partial

Real evidence exists, but authoring requirements are still missing or in conflict. Verify before shipping a table.

Catalog Identity
observed
Address Enumeration
candidate
Semantic Naming
candidate
Physical Wiring
candidate
Mechanisms
unknown
Variant Coverage
candidate
Recreation Knowledge
candidate
Still missing · 13
IdentityController PlatformInput EnumerationInput SemanticsOutput EnumerationOutput SemanticsDisplay InventoryMechanism InventoryMechanism BehaviorPolarityVariant DifferencesRecreation NotesProvenance

Switches

The addresses PinMAME reports as closed. Numbers are the public API values, not matrix hardware pins.

46 addresses

Switch map

Sequential addresses, grouped in columns of eight.

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

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

46 shown
# Name Device ID Role Evidence
-7
Self Test
switch.self-test
candidate
-6
CPU Diagnose
switch.cpu-diagnose
candidate
-5
Sound Diagnose
switch.sound-diagnose
candidate
1
Drop Target 1 (Left Bank)
switch.drop-target-1-left-bank
candidate
2
Ball Roll Tilt
switch.ball-roll-tilt
candidate
3
Drop Target 3 (Left Bank)
switch.drop-target-3-left-bank
candidate
4
Drop Target 4 (Left Bank)
switch.drop-target-4-left-bank
candidate
5
Drop Target 5 (Left Bank)
switch.drop-target-5-left-bank
candidate
6
Start Button
switch.start-button
cabinet.start
candidate
7
Tilt
switch.tilt
candidate
8
Trough / Outhole
switch.trough-outhole
candidate
9
Coin Button 3
switch.coin-3
cabinet.coin.3
candidate
10
Coin Button 2
switch.coin-2
cabinet.coin.2
candidate
11
Coin Button 1
switch.coin-1
cabinet.coin.1
candidate
12
Upper Right Flipper Button
switch.upper-right-flipper-button
candidate
13
Wire Trigger (Left)
switch.wire-trigger-left
candidate
15
Tilt
switch.tilt.15
candidate
16
Slam Tilt
switch.slam-tilt
candidate
17
Standup Target 1 (Upper Bank)
switch.standup-target-1-upper-bank
candidate
18
Standup Target 2 (Upper Bank)
switch.standup-target-2-upper-bank
candidate
19
Standup Target 3 (Upper Bank)
switch.standup-target-3-upper-bank
candidate
20
Standup Target 4 (Upper Bank)
switch.standup-target-4-upper-bank
candidate
21
Standup Target 5 (Upper Bank)
switch.standup-target-5-upper-bank
candidate
23
Wire Trigger
switch.wire-trigger
candidate
24
Wire Trigger
switch.wire-trigger.24
candidate
25
Top Pop Bumper
switch.top-pop-bumper
candidate
26
Middle Pop Bumper
switch.middle-pop-bumper
candidate
27
Bottom Pop Bumper
switch.bottom-pop-bumper
candidate
28
Left Slingshot
switch.left-slingshot
candidate
29
Right Slingshot
switch.right-slingshot
candidate
30
Star Trigger 1
switch.star-trigger-1
candidate
31
Star Trigger 2
switch.star-trigger-2
candidate
32
Star Trigger 3
switch.star-trigger-3
candidate
33
Standup Target 1 (Lower Bank)
switch.standup-target-1-lower-bank
candidate
34
Standup Target 2 (Lower Bank)
switch.standup-target-2-lower-bank
candidate
35
Standup Target 3 (Lower Bank)
switch.standup-target-3-lower-bank
candidate
36
Standup Target 4 (Lower Bank)
switch.standup-target-4-lower-bank
candidate
37
Wire Trigger
switch.wire-trigger.37
candidate
38
Wire Trigger
switch.wire-trigger.38
candidate
39
Wire Trigger
switch.wire-trigger.39
candidate
40
Wire Trigger
switch.wire-trigger.40
candidate
45
Single Drop Target (Right)
switch.single-drop-target-right
candidate
46
Left Saucer
switch.left-saucer
candidate
47
Middle Saucer
switch.middle-saucer
candidate
82
Lower Right Flipper
switch.flipper-lower-right
flipper.lower.right
candidate
84
Lower Left Flipper
switch.flipper-lower-left
flipper.lower.left
candidate

Controlled devices

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

Coils, magnets & motors

8
8 shown
# Name Device ID Kind Evidence
8
Left Saucer Kicker
device.left-saucer-kicker Coil candidate
9
Middle Saucer Kicker
device.middle-saucer-kicker Coil candidate
10
Single Drop Target Reset (Right)
device.single-drop-target-reset-right Coil candidate
11
1-6 Drop Target Bank Reset
device.1-6-drop-target-bank-reset Coil candidate
14
Ball Release
device.ball-release Coil candidate
15
Knocker
device.knocker Coil candidate
17
GI Relay
device.gi-relay Relay candidate
19
ROM Started
device.game-on Coil candidate

Flashers

2
2 shown
# Name Device ID Evidence
6
Flasher 6
device.flasher-6 candidate
7
Flasher 7
device.flasher-7 candidate

Lamps

73

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
Hover or tap an address to identify it.
73 shown
# Name Device ID Evidence
2
outputs 2
lamp.outputs-2 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
31
outputs 31
lamp.outputs-31 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
58
outputs 58
lamp.outputs-58 candidate
59
outputs 59
lamp.outputs-59 candidate
60
outputs 60
lamp.outputs-60 candidate
62
outputs 62
lamp.outputs-62 candidate
63
outputs 63
lamp.outputs-63 candidate
65
outputs 65
lamp.outputs-65 candidate
66
outputs 66
lamp.outputs-66 candidate
67
outputs 67
lamp.outputs-67 candidate
68
outputs 68
lamp.outputs-68 candidate
69
outputs 69
lamp.outputs-69 candidate
74
outputs 74
lamp.outputs-74 candidate
75
outputs 75
lamp.outputs-75 candidate
76
outputs 76
lamp.outputs-76 candidate
77
outputs 77
lamp.outputs-77 candidate
78
outputs 78
lamp.outputs-78 candidate
79
outputs 79
lamp.outputs-79 candidate
81
outputs 81
lamp.outputs-81 candidate
82
outputs 82
lamp.outputs-82 candidate
83
outputs 83
lamp.outputs-83 candidate
84
outputs 84
lamp.outputs-84 candidate
85
outputs 85
lamp.outputs-85 candidate
89
outputs 89
lamp.outputs-89 candidate
90
outputs 90
lamp.outputs-90 candidate
91
outputs 91
lamp.outputs-91 candidate
92
outputs 92
lamp.outputs-92 candidate
93
outputs 93
lamp.outputs-93 candidate
94
outputs 94
lamp.outputs-94 candidate
95
outputs 95
lamp.outputs-95 candidate

Recreation notes

Working knowledge that has no schema field yet — edition differences, tuning values, pitfalls.

Coverage
partial - source-derived recreation knowledge requiring validation

Overview

Legacy evidence identifies this candidate as Bally (1985). The information below is preserved for recreation work but is not automatically treated as validated physical-machine fact.

Playfield devices

Switch, lamp/GI, and controlled-device candidates are in the adjacent machine definition. Source-specific implementation notes are retained below.

Custom mechanisms

No custom mechanism conclusion has been validated. Manuals, schematics, PinMAME source, and gameplay evidence still need to be checked.

Ball-state transitions

Ball paths, trough ordering, locks, kickouts, and causal transitions have not yet been normalized. Relevant source notes follow under Evidence notes.

Controller interactions

Controller callbacks and bindings are candidate evidence only until reconciled against PinMAME and physical documentation.

Service and setup information

Unknown; locate operator/service documentation.

Timing and tuning observations

Source timing values may describe a particular VPX implementation rather than physical hardware and require review.

Recreation guidance

Do not treat this partial definition as a complete authoring specification. Resolve every coverage requirement and conflict before promotion.

Evidence notes

  • platforms/bally.json#/coils/1: Unbound legacy outputs record c_flipper_lower_right was retained as a migration note only.
  • platforms/bally.json#/coils/2: Unbound legacy outputs record c_flipper_lower_left was retained as a migration note only.
  • platforms/bally.json#/coils/3: Unbound legacy outputs record c_flipper_upper_right was retained as a migration note only.
  • platforms/bally.json#/coils/4: Unbound legacy outputs record c_flipper_upper_left was retained as a migration note only.
  • games/btc.json#/switches/0._inferred_type: drop_target
  • games/btc.json#/switches/0._note: DTHit 1 — part of 1-6 bank, reset by sol 11
  • games/btc.json#/switches/1._inferred_type: drop_target
  • games/btc.json#/switches/1._note: DTHit 2 — part of 1-6 bank, reset by sol 11
  • games/btc.json#/switches/2._inferred_type: drop_target
  • games/btc.json#/switches/2._note: DTHit 3 — part of 1-6 bank, reset by sol 11
  • games/btc.json#/switches/3._inferred_type: drop_target
  • games/btc.json#/switches/3._note: DTHit 4 — part of 1-6 bank, reset by sol 11
  • games/btc.json#/switches/4._inferred_type: drop_target
  • games/btc.json#/switches/4._note: DTHit 5 — part of 1-6 bank, reset by sol 11
  • games/btc.json#/switches/5._inferred_type: drop_target
  • games/btc.json#/switches/5._note: DTHit 7 — part of 1-6 bank, reset by sol 11. Bank is sw1-5,7 (no sw6)
  • games/btc.json#/switches/6._inferred_type: trough
  • games/btc.json#/switches/6._note: Physical trough, single ball. Initialized in Table1_Init with Controller.Switch(8)=1
  • games/btc.json#/switches/7._note: Mapped to RightFlipperKey in KeyDown/KeyUp
  • games/btc.json#/switches/8._inferred_type: trigger
  • games/btc.json#/switches/9._note: vpmNudge.TiltSwitch=15
  • games/btc.json#/switches/10._inferred_type: trigger
  • games/btc.json#/switches/11._inferred_type: standup_target
  • games/btc.json#/switches/11._note: STHit 17 — pulsed via Roth ST system
  • games/btc.json#/switches/12._inferred_type: standup_target
  • games/btc.json#/switches/12._note: STHit 18
  • games/btc.json#/switches/13._inferred_type: standup_target
  • games/btc.json#/switches/13._note: STHit 19
  • games/btc.json#/switches/14._inferred_type: standup_target
  • games/btc.json#/switches/14._note: STHit 20
  • games/btc.json#/switches/15._inferred_type: standup_target
  • games/btc.json#/switches/15._note: STHit 21
  • games/btc.json#/switches/16._inferred_type: trigger
  • games/btc.json#/switches/17._inferred_type: trigger
  • games/btc.json#/switches/18._inferred_type: bumper
  • games/btc.json#/switches/18._note: Bumper1 — pulsed via vpmTimer.PulseSw 25
  • games/btc.json#/switches/19._inferred_type: bumper
  • games/btc.json#/switches/19._note: Bumper2 — pulsed via vpmTimer.PulseSw 26
  • games/btc.json#/switches/20._inferred_type: bumper
  • games/btc.json#/switches/20._note: Bumper3 — pulsed via vpmTimer.PulseSw 27
  • games/btc.json#/switches/21._inferred_type: slingshot
  • games/btc.json#/switches/21._note: Pulsed via vpmTimer.PulseSw 28
  • games/btc.json#/switches/22._inferred_type: slingshot
  • games/btc.json#/switches/22._note: Pulsed via vpmTimer.PulseSw 29
  • games/btc.json#/switches/23._inferred_type: trigger
  • games/btc.json#/switches/24._inferred_type: trigger
  • games/btc.json#/switches/25._inferred_type: trigger
  • games/btc.json#/switches/25._note: Also toggles L16 lamp state on hit/timer
  • games/btc.json#/switches/26._inferred_type: standup_target
  • games/btc.json#/switches/26._note: STHit 33
  • games/btc.json#/switches/27._inferred_type: standup_target
  • games/btc.json#/switches/27._note: STHit 34
  • games/btc.json#/switches/28._inferred_type: standup_target
  • games/btc.json#/switches/28._note: STHit 35
  • games/btc.json#/switches/29._inferred_type: standup_target
  • games/btc.json#/switches/29._note: STHit 36
  • games/btc.json#/switches/30._inferred_type: trigger
  • games/btc.json#/switches/31._inferred_type: trigger
  • games/btc.json#/switches/32._inferred_type: trigger
  • games/btc.json#/switches/33._inferred_type: trigger
  • games/btc.json#/switches/34._inferred_type: drop_target
  • games/btc.json#/switches/34._note: DTHit 45 — standalone target, reset by sol 10
  • games/btc.json#/switches/35._inferred_type: kicker
  • games/btc.json#/switches/35._note: Kicked by sol 8 (SolOut46)
  • games/btc.json#/switches/36._inferred_type: kicker
  • games/btc.json#/switches/36._note: Kicked by sol 9 (SolOut47)
  • games/btc.json#/coils/0._vbscript_callback: Flasher6
  • games/btc.json#/coils/0._inferred_type: flasher
  • games/btc.json#/coils/0._note: Controls 4 sub-flashers: F6a, F6b, F6c, F6d
  • games/btc.json#/coils/1._vbscript_callback: Flasher7
  • games/btc.json#/coils/1._inferred_type: flasher
  • games/btc.json#/coils/1._note: No-op in script (empty sub)
  • games/btc.json#/coils/2._vbscript_callback: SolOut46
  • games/btc.json#/coils/2._inferred_type: kicker
  • games/btc.json#/coils/2._note: Kicks ball from sw46
  • games/btc.json#/coils/3._vbscript_callback: SolOut47
  • games/btc.json#/coils/3._inferred_type: kicker
  • games/btc.json#/coils/3._note: Kicks ball from sw47
  • games/btc.json#/coils/4._vbscript_callback: SolDropUpDTR
  • games/btc.json#/coils/4._inferred_type: drop_target_reset
  • games/btc.json#/coils/4._note: Raises sw45
  • games/btc.json#/coils/5._vbscript_callback: SolDropUpDTL
  • games/btc.json#/coils/5._inferred_type: drop_target_reset
  • games/btc.json#/coils/5._note: Raises sw1-5,7 (full left bank)
  • games/btc.json#/coils/6._vbscript_callback: SolRelease
  • games/btc.json#/coils/6._inferred_type: ball_management
  • games/btc.json#/coils/6._note: Releases ball from sw8 trough
  • games/btc.json#/coils/7._vbscript_callback: vpmSolSound SoundFX("Knocker_1",DOFKnocker),
  • games/btc.json#/coils/7._inferred_type: knocker
  • games/btc.json#/coils/8._vbscript_callback: SolGIOn
  • games/btc.json#/coils/8._inferred_type: gi_relay
  • games/btc.json#/coils/8._note: Controls playfield general illumination via SetGI
  • games/btc.json#/_source/confidence_notes: High confidence on switches/coils from SolCallback and sw*_Hit handlers. Uses BALLY.VBS platform. Physical trough with single ball (sw8). Lamps extracted from VLM BL_L_l## arrays (light numbers correspond to ROM lamp outputs via vpmMapLights AllLamps with TimerInterval). Flashers driven via solenoid 6 (4 sub-flashers F6a-F6d) and solenoid 7 (no-op in script). GI controlled by solenoid 17 via SetGI. Drop targets use Roth DT system (DTHit/DTRaise). Standup targets use Roth ST system (STHit with PulseSw). ROM beatclc2 has flasher support; beatclck is alternate without.

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

ROM sets

Every driver that resolves to this physical machine.

ROM set Description Year Parent Hardware
beatclckBeat the Clock 1985
beatclc2Beat the Clock (with flasher support) 1985beatclck

Parent set: beatclck — 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.btc

    games/btc.json; origin=vbscript-parser

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

    legacy.platform.bally

    platforms/bally.json

    by
    pinmame-game-defs contributors
    rev
    4ea106d08072
  • PinMAME catalog

    BSD-3-Clause

    pinmame.catalog.4ec52ff0ac13

    PinmameGetGames

    by
    PinMAME contributors
    rev
    4ec52ff0ac13

Something wrong or missing?

This definition still has 13 unmet requirements, listed under Coverage above. Fixes belong in the definition itself — editing on GitHub forks it for you and opens the pull request.

Cite a source for anything you change — a manual page, a line in a working VPX script, PinMAME source, or a reading from the machine's own service menu. Claims without provenance cannot be validated.

Same platform