Skip to content

Street Fighter II (Gottlieb 1993)

Gottlieb System 3 build notable for the Piledriver spiral ramp physics, Chun Li multi-position spinner animation, and the skillshot center-pin target split into three hit zones. Rebuilt from scratch as a VLM toolkit table with sixtoe, gedankekojote97, and apophis79.

Build Story

Street Fighter II went through a significant lifecycle -- initially a physics tune-up, then escalated to a full VLM toolkit rebuild. The Gottlieb System 3 platform introduced platform-specific challenges around trough mechanics and NVRAM initialization that differ significantly from the more common Williams WPC tables.

Table-Specific Details

Mechanisms & Hardware

  • GTS3 gravity-fed trough: Uses only 2 switches managing 3 balls. The drain switch triggers a coil that pushes the ball uphill into the trough area. Switch sw31 sits on the last (third) stacked ball, not at the ball-release position. The ROM counts balls by tracking entry/exit events rather than reading individual positions -- fundamentally different from WPC-style troughs.
  • GTS3 NVRAM requirement: Ships with a pre-configured NVRAM file that must be placed in VPinMAME's nvram folder for the table to accept coins. Without it, the ROM enters a factory-default state where coin switches may not register.
  • Skillshot center-pin target: The ball can hit left, right, or dead center. A single VPX target only registers hits from one direction. Fix: 3 separate VPX targets sharing the same visual position, each facing a different direction but triggering the same ROM switch. Generalizable to any target needing multi-directional hit detection.
  • Piledriver spiral ramp: Helix-shaped collidable primitive with consistent wall height throughout to prevent ball escape. Friction on the spiral surface controls deceleration -- too low and the ball rockets out, too high and it gets stuck. Entry and exit points need smooth transitions. Built as a single continuous mesh.
  • Movable piledriver ramp: Two separate ramp meshes (up and down positions) with Collidable toggled between them via script. Both exist in the scene but only one has active physics at any time.
  • Backglass flasher lamp assignments: Gottlieb System 3 backglass flashers (labeled "Drv.0-7" in the manual) map to PinMAME lamp numbers l120-l127. When in doubt, open the existing B2S file in B2S Designer to see mappings rather than guessing from the manual.

Art & Visuals

  • Chun Li spinner animation: 4 separate meshes rendered at different rotation positions. The script reads the spinner's current rotation angle and blends visibility between the nearest two position meshes, creating smooth apparent rotation with correct pre-baked lighting at every angle.
  • Plastic walls without Blender: For builders without Blender access, plastic walls can be created using a VPX wall object with thickness plus a decal on top with artwork.

Physics & Gameplay

  • Balls sinking through primitives: Balls resting on collidable primitives slowly sink through over time due to floating-point precision drift. The car crash lower playfield ball would sink through the flipper and disappear if left idle. Fix: use VPX native wall objects for any surface where a ball needs to rest stationary.
  • Digital nudge sensitivity: Side nudge strength is configured separately from up nudge. The default side nudge can be too aggressive, triggering tilt warnings on nearly every attempt. Test all three directions independently.

Known Issues

  • PinMAME vs VPinMAME confusion: Installing standalone PinMAME.exe does not provide VPX with ROM emulation -- VPX needs the VPinMAME COM DLL. See software setup.
  • VPX GL mode debugger: Resize window 1 pixel smaller than screen resolution to avoid debug overlay obscuring the playfield.

Techniques Developed Here

See Also