Skip to content

Twilight Zone (Bally 1993)

Premium VLM build by Niwak (3D/VLM) and sixtoe (physics/layout). Notable for powerball physics challenges (0.8x mass confirmed by weighing), the KickoutVariance pattern for randomized ejectors, tween-based diverter animation, under-playfield blocker wall requirements, and the discovery that VPX magnets cannot accurately simulate real multi-ball magnet physics.

Build Story

Twilight Zone was built primarily by Niwak and sixtoe, with apophis79, rothbauerw, mcarter78, and passion4pins contributing testing and physics feedback. The table's complex mechanism set (magnets, powerball, slot machine, mini playfield) pushed VPX's physics engine to its limits. PWM development was heavily driven by TZ since WPC hardware heavily abuses PWM for its lightshow, including an auxiliary board that standard PinMAME hacks didn't cover.

Table-Specific Details

Mechanisms & Hardware

  • Powerball mass: 0.8x standard ball mass confirmed by weighing (2.3oz vs 2.9oz steel). The lower mass causes physics edge cases: ball can balance on rubber posts unnaturally, sinks through playfield mesh more easily when cradling, and exhibits different magnet behavior.
  • Under-playfield blocker wall: Essential for powerball and cradling stability. Place at -0.01 Z, covering at minimum the plunger lane and flipper area. rothbauerw places the wall 25.01 VPX units below the ball's Z position at the plunger. TZ was the first table where this issue was discovered. See physics tuning.
  • VPX magnet limitations: Cannot accurately replicate real magnet behavior with multiple balls interacting simultaneously. During multiball, magnetically held balls fire off unpredictably when additional balls arrive. Niwak rewrote magnets for PWM (variable strength), but multi-ball interaction remains unreliable. Different ROM versions offered as workaround.
  • Slot machine kickout variance: Documented as "very inconsistent from machine to machine and, in fact, from minute to minute" in the 1994 rules sheet. Multiple real owners report contradictory behavior. This is inherent to the machine design, not a VPX error.
  • KickoutVariance function: Pattern for randomized ejector shots: KickoutVariance = aNumber + ((Rnd*2)-1)*aVariance. See vbscript patterns.

Art & Visuals

  • BM_Playfield depth bias: Controls whether VPX lights are visible through the playfield surface. Setting too negative (-1000) caused all GI and flasher illumination to disappear. Fix: set to -500.
  • Tonemapper comparison: Tony McMapFace preserves highlight detail significantly better than Filmic -- areas that go fully saturated under Filmic retain detail and desaturate toward white under TMF. See color management.

Physics & Gameplay

  • PWM requirements: Three things must be in sync: (1) PinMAME build with PWM support, (2) matching core.vbs version, (3) PWM explicitly enabled in script. Missing any one causes silent failures. See software setup.
  • SolCallback2 (experimental, short-lived): v2.5.3 used new SolCallback2 API for stutter-free solenoid handling. v2.5.4 reverted because VPX 10.8 integrated the fix natively.
  • Tween-based diverter animation: Replaces timer-based animation: Tween(TW_SHOOTER_DIV).Clear().TargetLength(180, 100.0).Done. More efficient and easier to tune than timer intervals and step calculations.
  • Ball reflection bug: PlayfieldReflectionScale set to anything other than 1 causes distorted "Matrix mirror" reflections. For the powerball, limit reflection to ~10% via script rather than setting to 0.

Known Issues

  • Ramp sound transitions: When ball transitions between plastic and wire ramp, previous rolling sound must be explicitly stopped before starting the new one. Without this, both play simultaneously.
  • Table lock feature: VPX table lock prevents users from accidentally modifying elements in the editor, then reporting results as bugs. Important for released tables.

Techniques Developed Here

See Also