Skip to content

Flash Gordon

Bally's 1981 Flash Gordon table, featuring VLM conversion with 3D insert technique development.

Build Notes

3D Insert Implementation

The table uses an experimental 3D insert technique combining Flupper methods:

  1. 3D bake targets (cylinders positioned below insert holes)
  2. Surface primitives with translucency over insert holes
  3. Bulb glass material colored to match insert color
  4. Bottom face of bake target removed
  5. Harsh lightmaps applied to playfield

Challenges include opacity balance, saturation control, and depth bias tuning. Expect 2-3 iterations to dial in proper settings.

Drop Target Shadows

Dynamic drop target shadow best practices:

  • Set targets to "hide from others" in Blender (prevents baking shadows into playfield)
  • Crop shadow images to minimum needed size (not full playfield)
  • Make shadows darker/less transparent in source; tweak opacity in VPX
  • VPX must uncompress images before use - 90% clear pixels still consume RAM
  • Not worth implementing for inline drops surrounded by lights (shadows not visible)

Without "hide from others", shadows bake into the playfield and dynamic shadows overlay static shadows (useless).

Stacked Plastics Refraction

Multiple plastics stacked need individual refraction probes - one per layer. Disappearing transparent parts indicate depth bias issues. If overlapping transparencies (ramps + plastics), split into separate groups with different probe numbers.

Scripting

FlipperCoilRampupMode and Upper Flipper Lag

Upper flipper can feel laggy with FlipperCoilRampupMode=2. Reducing to 1 or 0 helps responsiveness. Trade-off: 0 minimizes lag but may affect tap passing. Compare real machine EOS timing to virtual. Minimizing flipper lag is more important than perfect tap passing for most players.

Flipper Color Options

Simpler than multiple renders:

  1. Split rubber from bat in Blender
  2. Color rubber white (white rubber material)
  3. F12 menu code changes rubber materials (yellow/red/etc)
  4. Add materials to room brightness array

Caveat: If light maps near flippers are very bright, cancels out material color when lit. May need two flipper sets if LPF issue.

Troubleshooting

PulseTimer Missing Breaks ROM Communication

Symptom: Table won't accept coins or control drop targets.

Root cause: Missing PulseTimer object.

Fix: Needs timer with specific settings to communicate with VPinMAME. This is a common oversight when updating tables and affects entire table functionality.

Custom ROM Child Set Requirements

Flash Gordon ROM variants:

  • Early production: Vocalizer/Sounds Plus modules with strobe (flashgdv.zip)
  • Parent: Squwak and Talk board (operators complained about strobe)
  • Prototype: 68701 CPU with alphanum displays (flashgp2.zip)

Custom ROM mods exist but require hardware changes - not VPinMAME compatible.

Insert Mask vs Nestmap Bloom

Symptom: Insert decals showing unwanted bloom pattern baked into VLM.

Solutions:

  1. Export insert decals separately, show instead of VLM versions
  2. Remove nestmap from insert prims, add VPX metallic material
  3. Adjust nestmap if pattern in source

Removing nestmap from prims is cleaner approach for metallic inserts with decals.

3D & Art

Bumper Cap Subsurface Scatter

Add subsurface scatter to bumper cap shader for internal light diffusion. Creates brighter core light appearance. Easy to overdo - start conservative and tune. Metallic cap decals separate from nestmap (remove nestmap from prims, use VPX metallic material).

Lane Guide Texture Reference

Lane guides don't have brushed texture but have clear coat texture. Take reference photos from real machines when possible. Ramp middles similar - clear coat over texture.

Resources