Skip to content

Warlok

VLM implementation with VR backglass segment display innovation for Warlok (Gottlieb 1982).

Build Notes

VLM Backglass and Segment Display Rendering

Render segment displays using VLM toolkit for VR backglass:

  1. Create camera pointing horizontally at backbox
  2. Each segment in Blender like playfield light
  3. Use plastics material setup on backglass image
  4. Everything must be in camera view
  5. Apply prefix to export (e.g., "B" for backglass)

Segments render with depth and glow vs flat B2S approach. Check Bram Stoker Dracula for reference implementation.

Contributors: metated, apophis79

GI Control ROM Integration

GI not responding to ROM initially. Counter-intuitive fix: Change SolGi from TRUE to FALSE in Sub Table1_Init. Required for proper ROM GI control on Warlok.

See VPinMame integration primer for detailed information.

Contributors: metated, apophis79

Backglass Lamp ID Discovery Methods

Finding Controller.Lamp numbers for backglass lights:

  1. Check table manual for lamp matrix
  2. Study backglass wiring diagrams
  3. Watch videos of machine in action
  4. Use All-in-1 Visual B2S tool
  5. Check existing B2S files - IDs often named in editor

All-in-1 B2S provides visual render of ROM for finding correct IDs.

Contributors: apophis79, dgrimmreaper, hauntfreaks

3D & Art

Insert Tray Baking with Layer Separators

Insert images baking flat on playfield instead of in trays. Solutions:

  1. Add layer separator below playfield surface (like BtC setup)
  2. Link to PF object using VLM mask option
  3. Verify layer separator works in Blender rendering mode first
  4. Check plastic in non-opaque collection
  5. Verify layer separator material compatible with Blender 4.2+
  6. Set "hide parts behind" correctly on BM_Playfield

Tray image may bake correctly underneath but still show flat on top if layer separator incorrect.

Contributors: metated, apophis79

Spinner and Wire Visibility via Unwrapping

Spinner rods and wire gates barely visible after bake. Solution: Unwrap objects to force toolkit to keep all polygons.

Texture size recommendations:

  • 256x256: Minimum, ok for small wires
  • 512x512+: Better for VR face-on-glass viewing
  • Consider whole spinner vs just wire when choosing resolution

Contributors: apophis79, cyberpez

Metal Shader for Unwrapped Objects

Unwrapped Objects Rendering Black

Metal shaders only work with camera-rendered objects.

Unwrapped baked objects rendering black. Cause: Metal shader applied to unwrapped objects. Change to non-metal shader for unwrapped bakes.

Contributor: bord1947

Smart UV Unwrap vs Lightmap Pack

Lightmap Pack creates "mosaic" pattern up close - million tiny islands.

Better approaches:

  1. Start with Smart UV Unwrap
  2. If Smart UV doesn't look good, set seams manually then Unwrap
  3. Lightmap Pack ok for distant objects

Smart UV reported texture size limits at 100% bake on large objects - may need resolution reduction.

Contributors: metated, apophis79, oqqsan

Raytraced Ball Shadows GI Height Setting

Ball shadows not appearing on playfield from split GI lights.

Cause: GI light zPos too low (-8).

Solution: Set z to roughly ball center when resting on playfield - typically 28 (ball at 25 when resting). Shadows only cast from lights at proper height.

Contributors: apophis79, metated

VLM Nestmap Memory Errors

Error "expected 'Image' type found 'Image' instead" during nestmap process = out of memory.

Solution:

  1. Restart computer
  2. Close all other applications
  3. Retry nestmap generation

Caused by insufficient RAM for nestmap texture atlas generation.

Contributor: apophis79

Best Practices

Flipper Ghost Images from Static Lightmaps

Ghost flippers visible during gameplay but correct in Live Edit.

Cause: Flipper lightmaps set to "Static Rendering".

Solution: Uncheck Static Rendering for both bakemaps AND lightmaps. Live editor renders all non-static objects (why issue disappears there).

Toolkit auto-exports lightmaps as non-static but verify after manual changes.

Contributors: mechaenron, apophis79, metated

Troubleshooting

Playfield Transparency Shader Issues

Playfield semi-transparent in VPX.

Root cause: Missing hole mask in playfield shader. Hole mask different from insert mask:

  • Insert mask: Black (transparent inserts) and white (wood + insert decals)
  • Hole mask: Defines alpha holes in playfield

Temporary fix: Set hole mask input to 0 instead of 1.

Proper fix: Create actual hole mask image.

Contributors: frank_enste1n, metated