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 recordc_flipper_lower_rightwas retained as a migration note only.platforms/bally.json#/coils/2: Unbound legacy outputs recordc_flipper_lower_leftwas retained as a migration note only.platforms/bally.json#/coils/3: Unbound legacy outputs recordc_flipper_upper_rightwas retained as a migration note only.platforms/bally.json#/coils/4: Unbound legacy outputs recordc_flipper_upper_leftwas retained as a migration note only.games/btc.json#/switches/0._inferred_type: drop_targetgames/btc.json#/switches/0._note: DTHit 1 — part of 1-6 bank, reset by sol 11games/btc.json#/switches/1._inferred_type: drop_targetgames/btc.json#/switches/1._note: DTHit 2 — part of 1-6 bank, reset by sol 11games/btc.json#/switches/2._inferred_type: drop_targetgames/btc.json#/switches/2._note: DTHit 3 — part of 1-6 bank, reset by sol 11games/btc.json#/switches/3._inferred_type: drop_targetgames/btc.json#/switches/3._note: DTHit 4 — part of 1-6 bank, reset by sol 11games/btc.json#/switches/4._inferred_type: drop_targetgames/btc.json#/switches/4._note: DTHit 5 — part of 1-6 bank, reset by sol 11games/btc.json#/switches/5._inferred_type: drop_targetgames/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: troughgames/btc.json#/switches/6._note: Physical trough, single ball. Initialized in Table1_Init with Controller.Switch(8)=1games/btc.json#/switches/7._note: Mapped to RightFlipperKey in KeyDown/KeyUpgames/btc.json#/switches/8._inferred_type: triggergames/btc.json#/switches/9._note: vpmNudge.TiltSwitch=15games/btc.json#/switches/10._inferred_type: triggergames/btc.json#/switches/11._inferred_type: standup_targetgames/btc.json#/switches/11._note: STHit 17 — pulsed via Roth ST systemgames/btc.json#/switches/12._inferred_type: standup_targetgames/btc.json#/switches/12._note: STHit 18games/btc.json#/switches/13._inferred_type: standup_targetgames/btc.json#/switches/13._note: STHit 19games/btc.json#/switches/14._inferred_type: standup_targetgames/btc.json#/switches/14._note: STHit 20games/btc.json#/switches/15._inferred_type: standup_targetgames/btc.json#/switches/15._note: STHit 21games/btc.json#/switches/16._inferred_type: triggergames/btc.json#/switches/17._inferred_type: triggergames/btc.json#/switches/18._inferred_type: bumpergames/btc.json#/switches/18._note: Bumper1 — pulsed via vpmTimer.PulseSw 25games/btc.json#/switches/19._inferred_type: bumpergames/btc.json#/switches/19._note: Bumper2 — pulsed via vpmTimer.PulseSw 26games/btc.json#/switches/20._inferred_type: bumpergames/btc.json#/switches/20._note: Bumper3 — pulsed via vpmTimer.PulseSw 27games/btc.json#/switches/21._inferred_type: slingshotgames/btc.json#/switches/21._note: Pulsed via vpmTimer.PulseSw 28games/btc.json#/switches/22._inferred_type: slingshotgames/btc.json#/switches/22._note: Pulsed via vpmTimer.PulseSw 29games/btc.json#/switches/23._inferred_type: triggergames/btc.json#/switches/24._inferred_type: triggergames/btc.json#/switches/25._inferred_type: triggergames/btc.json#/switches/25._note: Also toggles L16 lamp state on hit/timergames/btc.json#/switches/26._inferred_type: standup_targetgames/btc.json#/switches/26._note: STHit 33games/btc.json#/switches/27._inferred_type: standup_targetgames/btc.json#/switches/27._note: STHit 34games/btc.json#/switches/28._inferred_type: standup_targetgames/btc.json#/switches/28._note: STHit 35games/btc.json#/switches/29._inferred_type: standup_targetgames/btc.json#/switches/29._note: STHit 36games/btc.json#/switches/30._inferred_type: triggergames/btc.json#/switches/31._inferred_type: triggergames/btc.json#/switches/32._inferred_type: triggergames/btc.json#/switches/33._inferred_type: triggergames/btc.json#/switches/34._inferred_type: drop_targetgames/btc.json#/switches/34._note: DTHit 45 — standalone target, reset by sol 10games/btc.json#/switches/35._inferred_type: kickergames/btc.json#/switches/35._note: Kicked by sol 8 (SolOut46)games/btc.json#/switches/36._inferred_type: kickergames/btc.json#/switches/36._note: Kicked by sol 9 (SolOut47)games/btc.json#/coils/0._vbscript_callback: Flasher6games/btc.json#/coils/0._inferred_type: flashergames/btc.json#/coils/0._note: Controls 4 sub-flashers: F6a, F6b, F6c, F6dgames/btc.json#/coils/1._vbscript_callback: Flasher7games/btc.json#/coils/1._inferred_type: flashergames/btc.json#/coils/1._note: No-op in script (empty sub)games/btc.json#/coils/2._vbscript_callback: SolOut46games/btc.json#/coils/2._inferred_type: kickergames/btc.json#/coils/2._note: Kicks ball from sw46games/btc.json#/coils/3._vbscript_callback: SolOut47games/btc.json#/coils/3._inferred_type: kickergames/btc.json#/coils/3._note: Kicks ball from sw47games/btc.json#/coils/4._vbscript_callback: SolDropUpDTRgames/btc.json#/coils/4._inferred_type: drop_target_resetgames/btc.json#/coils/4._note: Raises sw45games/btc.json#/coils/5._vbscript_callback: SolDropUpDTLgames/btc.json#/coils/5._inferred_type: drop_target_resetgames/btc.json#/coils/5._note: Raises sw1-5,7 (full left bank)games/btc.json#/coils/6._vbscript_callback: SolReleasegames/btc.json#/coils/6._inferred_type: ball_managementgames/btc.json#/coils/6._note: Releases ball from sw8 troughgames/btc.json#/coils/7._vbscript_callback: vpmSolSound SoundFX("Knocker_1",DOFKnocker),games/btc.json#/coils/7._inferred_type: knockergames/btc.json#/coils/8._vbscript_callback: SolGIOngames/btc.json#/coils/8._inferred_type: gi_relaygames/btc.json#/coils/8._note: Controls playfield general illumination via SetGIgames/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.jsonat the pinned migration revision.