Skip to content

Fish Tales (Williams 1992)

A landmark VPW Premium build spanning from early Lite physics work through a complete toolkit rebuild. One of the most technically rich VPW projects, advancing rubber band rigging, render probe roughness optimization (40% FPS gain), EXR HDR pipeline, flipper trick tuning, and lightning flipper physics. Collaborative build across fluffhead35, sixtoe, apophis79, rothbauerw, benji084, brad1x, tomate80, iaakki, jlouloulou, niwak, flupper1, and others.

Build Story

Fish Tales began as a Lite physics build (2021) and grew into a full Premium toolkit table through 2025. Brad1x created complete playfield and plastic redraws in Adobe Illustrator traced from high-resolution scans. The project produced many of VPW's most influential technical discoveries, particularly around performance optimization and flipper physics calibration.

Table-Specific Details

Mechanisms & Hardware

  • Fishing Reel -- Animated using nFozzy tween interpolation, which replaces VPX's built-in animation sequencer for smooth frame-rate-independent animation. The tween method introduced floating-point position values that broke the reel's integer-based ball entry/exit detection. The timer interval -1 extra execution bug also caused the reel to over-rotate past its target position, manifesting more in VR (90 Hz) than desktop (144 Hz).
  • Lightning Flippers -- 2.875" / ~73mm (vs standard 3" / ~76mm). JLou physically measured real lightning flippers to confirm dimensions. AddPt indexing for nFozzy velocity correction must be sequentially indexed (1, 2, 3), with three typical points: base, middle, tip.

Art & Visuals

  • Full playfield and plastic redraws by brad1x in Adobe Illustrator, producing perfectly clean vector art at any resolution. The redraw vs scan debate was central to this build -- redraws provide better source material for toolkit tables where high-resolution rendering exposes scan artifacts.
  • Playfield alignment verification using the manual blueprint at 50% opacity, with guide pin holes as high-precision alignment anchors.
  • EXR DWAA compression research: levels 20-25 approximate Blender defaults; level 45 loses HDR brightness data. Post-processing EXR files requires the uncompressed-save-then-Blender-resave workflow.
  • EXR HDR pipeline: flashers rendered at full brightness retain detail across the entire brightness range as VPX fades them, impossible with 8-bit images that clip at 1.0.
  • VR room with animated water (fishing theme) and baked lighting, reaching 75MB due to animation frames.

Physics & Gameplay

  • Rubber band rigging: 5 objects per rubber band assembly -- 2 post primitives, 2 side walls, 1 middle section. Short rubber material set between post elasticity and standard rubber band elasticity.
  • EOSReturn and EOSTorque tuning: EOSReturn 0.4 + EOSTorque 0.375 produced more realistic flipper trick behavior than adjusting either alone. EOSReturn controls release speed (backhands vs flick passes); EOSTorque controls held-position resistance (tap pass ball hop).
  • Leaf switch vs keyboard polling input latency: KL25Z boards limited to ~20ms; PS/2 keyboard hack achieves 5-8ms. For tap passes to feel natural, sosramp needs to be very low (~0.5).
  • Duplicate collidable primitives caused choppy ball movement -- visual and physics ramps both set to collidable.

Known Issues

Techniques Developed Here

See Also