Skip to content

Jurassic Park (Data East)

Jurassic Park (Data East 1993) is a VPW table build featuring an incredibly packed playfield, a complex T-Rex animated toy mechanism, CRUSE scanner playfield acquisition, Blender Toolkit VLM pipeline, and detailed physical layout verification against real machines.

Build Notes

Playfield Scan

ClarkKent provided a corrected CRUSE playfield scan at 600 DPI (~13000x28000px). He compared single-pass CRUSE scan vs stitched scan and aligned dimensions to less than 1mm tolerance. The original scan had a slight twist (top left and bottom right fractionally out), corrected by jigsawing sections and aligning individual bits rather than simple rotation.

Layered Playfield Mesh

For complex areas like the T-Rex head zone with multiple depth levels, use a layered playfield mesh with extrusions representing height changes. The T-Rex area has approximately 0.5" depth for the lowest cutout. Getting the VPX saucer depth correct matters -- too deep causes unrealistic behavior.

Blueprint Overlay Workflow

Export blueprints from the Blender toolkit -- a playfield-level view and optionally a ramp-level view. Two blueprints (upper for ramps, lower without ramps) is better because ramps hide elements underneath. Blueprint overlay in VPX editor allows visual alignment of physical walls to rendered walls.

Staged Flipper Support

Staged flipper support is built into some DE.vbs files. Not all post-1988 tables had staged flippers -- a spreadsheet exists tracking which tables support them. PinMAME had issues with DE staged flippers resolved in VPM 3.6 final and 3.7.

Data East Flipper Coils

Coil specifications use gauge-turns format: lower flippers 25-1800 (25 gauge, 1800 turns = 13.8 ohms), upper right flipper 23-900 (23 gauge, 900 turns = 3.8 ohms). Reference slope: 6-6.5, flipper strength 2700, PF friction 0.23.

Table Size

JP at 2K render was under 200MB. A Python optimization script further reduced file size by 65MB.

Scripting

T-Rex Animation

The T-Rex animation should use the tween method for smoother motion rather than direct position stepping. Converting from direct solenoid callback to tween resolves UseVPMModSol timing issues. The T-Rex position switches are timing-critical.

T-Rex ball float code conflicted with nFozzy physics because pslope was defined in both systems. Fix: ensure float code operates independently of physics slope definitions.

T-Rex lightmap animation: Create a Trex_Animate sub that copies x, y, z, objrotx, objroty, objrotz from each BakeMap primitive to associated lightmap primitives. Call in the frame timer immediately after bakemaps move.

Kickball Code Pattern

Always release the ball variable after kicking:

Sub sw_Hit : Set swBall = ActiveBall : End Sub
Sub sw_UnHit : Set swBall = Nothing : End Sub
' In kick sub: check "If Not swBall Is Nothing" before kicking
' After kick: Set swBall = Nothing

Without this, ball search or unexpected solenoid firing causes balls floating, growing large, or appearing in wrong locations.

GI Relay Systems

Data East uses relays for GI (instant on/off, not PWM dimming). One benefit: no bulb flicker with LEDs.

Ramp Diverter Initialization

The diverter was rendered in the "on" position in Blender, so VPX showed it as "on" by default. Fix: initialize the diverter position in script to match the resting/off state.

UpdateBallBrightness

When GI goes off, balls should get darker to simulate loss of ambient light. Not automatic -- must be implemented per table. Referenced in VLM tutorial video #8.

3D & Art

T-Rex Export and Animation Setup

T-Rex primitive export: default position must face directly down-table. ObjRotZ rotates off-center for correct bend-down motion. Head and jaw share setup but have different origin points. The plastic collar must be aligned with the head in the Blender file. Jaw close angle: objrotx offset approximately -10 to -12.

Blender Toolkit Mod Collections

To add alternate parts (like alternate sling plastics): create a new collection inside vlm.bake named "mods", place alternate parts there. In VLM settings, name the plastics to toggle visibility.

Bumper Cap Modeling

For raised logo detail: knife-projecting an SVG onto cap geometry works but is difficult. The center material is smooth on top, textured inside, with slightly raised black image. The surrounding ring is "frosted" not triangulated. Decimate modifier needed for 3D scan reduction.

3D Scan Decimation

T-Rex scan reduced from 180,000 tris to 5,400 tris using Blender decimate modifier. UV unwrapping done manually.

TonyMcMapface Tonemapper

With TonyMcMapface/AGX, 2700K (physically correct) works properly instead of needing 3000-3200K with Filmic. Red inserts blow out less. Custom LUT available: ColorGradeLUT256x16_1to1gam0.7vibr100.png.

Backface Removal

Setting of 40 degrees was causing missing faces on domes and the T-Rex when it bends. Increased to 45 degrees for domes. Objects that animate and reveal back side need "no optimization" ticked. Objects visible from below in VR (like pteranodons) also need backface removal disabled.

Amber Block with Mosquito

The real amber has a flat front with mosquito relief on the backside. Use a normal map on the back face. Assign a refraction probe with high thickness. Real machine has both a lamp (2 bulbs) and a flasher behind the amber.

Insert Masking

Dark pixels around white outlines indicate imperfect transparency masks. Black paint on inserts should not be transmissive -- it's completely opaque. Reference real machine videos (not photos) for insert brightness.

Pteranodon Wobble

Both pteranodons need correct pivot points (not 0,0,0) -- they animate using rotx and roty. Wobble randomization needed to prevent sync. Shake dinos when shaker motor runs.

Flasher vs Insert Lightmap Naming

Lightmaps for playfield insert flashers must use "F" prefix (e.g., F5), not "L" prefix. "L" causes them to fire on lamp callbacks instead of solenoid callbacks.

Troubleshooting

Ball Visible in Subway

Check "hide objects behind" for the playfield primitive to hide the ball rolling through subways beneath the playfield.

Stuck Balls

Ball getting stuck in T-Rex recessed area: add a mild invisible slope on the recessed area to funnel into the hole. Multiple stuck ball locations required precise wall alignment to blueprint overlays.

UseVPMModSol T-Rex Conflict

UseVPMModSol=2 caused T-Rex to bob up and down. Setting to 0 fixed it. Root cause: timing/tolerance in solenoid callbacks conflicting with animation sequence.

No Balls / Startup Issues

Multiple causes: (1) Need VPM F1 "Skip Pinball Startup Test". (2) jupk_600 is child ROM requiring jupk_513 as parent. (3) Difficulty outside 0-100 range. (4) Delete NVRAM after updating from older version. (5) Requires latest VPinMAME and VPX 10.8 RC3+.

Timer Stutters and FastFlips

Timers fixed in v029. v030 switched to SolCallback2 supporting FastFlips but broke upper right flipper on DE tables. Reverted in v031. VPX later integrated a better solution.

Game Knowledge

Layout Characteristics

JP has an incredibly packed playfield with practically zero dead space, which is why it plays fast. The T-Rex toy mechanism is sensitive and prone to going wrong. The upper right saucer rejects balls frequently even on real machines. The mission scoop eject can lead to drains -- this is accurate to real play. Backhanding the ramp from right flipper IS possible on real machines.

ROM 6.00 Unofficial Mod

From PinballCode.com (jupk_600): adds random mode start, closes spammable modes, balances scoring, makes wizard modes worth more. Holding plunger button while starting skips T-Rex diagnostics.

Physical Verification Process

  1. Watch PAPA/tournament gameplay videos for shot behavior reference
  2. Cross-reference flipper strength with real coil specifications
  3. Test scoop eject catchability
  4. Verify backhand shot possibilities against Pinside threads
  5. Go through solenoid test menus
  6. Check inlane slowdown behavior

Resources

  • Sketchfab user "dark0verseer" has original JP VPX table models
  • Insert library standardization needed for unique table-specific shapes
  • GNR blend file has some unique inserts usable for JP