Skip to content

Doctor Who

VPW build of Bally's 1992 Doctor Who, featuring VR environmental image tuning, Lampz integration, 3D insert implementation, and staged flipper investigation. Development spanned 2022 through 2024 with contributions from apophis79, sixtoe, rothbauerw, Flupperone, and others.

Build Notes

VR Environmental Image Issues

Environmental image with white bloom in the middle causes a washed-out look on the left side of the table in VR. Blacks appear grey. Switching to Flupper's shinyenvironment and dropping the day/night slider resolved the issue. Visible in both desktop and VR modes.

Lightning Flipper Sizing

Doctor Who uses lightning flippers: 2.875 inches (not standard 3 inches). To calculate VPX units:

flipper_length * 50 / 1.0625

Example: 2.85" x 50 / 1.0625 = 134 VPX units. Rubbers on flippers add another 0.125 inches to length.

Ball Image Selection

Ball too dark and difficult to see. Tested various ball images. File named I_cant_see_god_damn_it_ball.hdr works well -- might be slightly too bright but can tune with ballbrightness parameter.

Scripting

VpmMapLights for Automatic Insert Control

Old technique for controlling inserts: vpmMapLights AllLights. Set the lamp number as the timer interval in the light object. Alternative to Lampz for automatic lamp mapping. Can convert to Lampz if preferred.

Lampz Integration

Adjusted playfield and TimeExpander material transparency to eliminate light bleed in VR. Added l47p and l58p to Lampz (Tardis and Time Expander bulbs) as they were broken. These specific lamps required manual Lampz assignment.

GI On/Off Logic Inversion

GI logic was inverted. Correct behavior: SetRelayGI 0 = GI is ON, SetRelayGI 1 = GI is OFF. If GI does not come back on after timed events, invert the logic.

Upper Flipper Power Coil

Upper flipper Power test does not work (Hold works). Table set up to not use that coil -- it is faked. Using the actual coil would enable staged flippers. Requires solcallback implementation.

3D & Art

Cutting Alpha Holes in Playfields

A tedious process even when optimized (hours-long). Using alpha masks makes it more forgiving than direct cutting.

Flupper 3D Insert Rendering

Hot highlights issue: color in center of insert becomes more white than green/yellow. Indicates pre-rendered light source saturation. Optimize inserts in Photoshop for VPX, not HDR. HDR is unreliable in VPX -- results quickly become either too bright or too dark.

GI Lights for Ball Reflection

Add GI lights at about 52 units high around slings to give the ball a nice lit-up effect when near light clusters. Technique used by Skitso. Enhances ball visibility.

Insert Bloom Size Guidelines

Blooms being used are too large. Check Judge Dredd implementation -- blooms are considerably smaller, roughly 1/3 the size. Can tune blooms out but better to start with smaller size.

Troubleshooting

ROM Sounds Missing

Doctor Who parent ROM was updated in PinMAME Christmas 2020. VPU has the updated ROM. Other ROM sets have a sound ROM but it is the wrong one so PinMAME does not load it. Redownload ROM from VPU if experiencing no sound.

ROM Resets During Games

ROM resets occurring during league play. Generally not a VPX table-level issue -- VPX only takes information from VPinMAME. Would also happen on a real table if it is a ROM-level issue.

Ball Stuck Behind Drop Wall in Wizard Mode

Ball can escape behind raised walls in extreme cases. Converting to physical trough would fix but is time-consuming. Likely requires frame skip or large tilt at precise moment.

Ball Lock Impact Crash

Crash when ball hits locked ball. Error in sw76wall_hit and sw77wall_hit subs:

Sub sw76wall_hit()
    OnBallBallCollision activeball, Empty, BallSpeed(Activeball)*1.5
End Sub

Fixed by fortifying FlipperCradleCollision against missing balls. Issue occurs when there is a ball on the flipper during a ball-ball collision event.