Star Wars Episode I Racer PCVR v1.5 - Smoother Cockpit
Cockpit view is much calmer on rough ground, and VR is now far easier to get running.
Five people couldn't start it, and not one of them had put the files in the wrong place.
Smoother cockpit view
On rough stretches, cockpit view could feel harsh and jarring in a way the rest of the race
doesn't. It was measured rather than guessed at: the pod's body rises and falls about the same
everywhere, but through those stretches its nose pitches up and down five to seven times a
second, and in cockpit view that went straight into your eyes.
Nose-bob smoothing steadies only that fast pitching. Steering is never touched, and hills,
ramps and jumps still follow the pod. It's on by default; set it to 0 in F5 for the v1.4 camera.
One-click setup
The archive now contains setup.bat. It finds the game through Steam's registry, in every Steam
library, or through GOG. It backs up whatever it replaces, copies the mod, and then checks your
PC before you ever put the headset on.
That check is the point. The four things that actually stopped people were a missing 32-bit
OpenXR runtime, Meta's runtime, a stale ReShade API layer, and the game running on the
integrated GPU. All four are visible from the desktop beforehand, in plain text, instead of
afterwards in a log file while wearing a headset.
You can re-run just the check any time, without copying anything:
powershell -ExecutionPolicy Bypass -File setup.ps1 -CheckOnly
When VR still won't start, the mod now tells you why
vr_report.txtappears next to the game's exe: a short file with only the VR startup
lines. The same lines were always inhook.log, around line 2,500, which is why two support
threads stalled trying to find them.- Error codes are decoded, and the advice matches the error.
XR_ERROR_GRAPHICS_DEVICE_INVALID
now explains GPU selection instead of talking about the headset service. The person who
hit it confirmed that was the fix. - Broken OpenXR API layers are detected and bypassed for this game only. A stale ReShade
layer fails every runtime identically, which is why swapping runtimes didn't help anyone
who had one. - A working 32-bit runtime is found automatically if the registered one can't serve a
32-bit game. It applies to this game only, and your system-wide setting is left alone.
Ground no longer disappears when you look down
The engine culls to a cone built from the pod's camera, and that cone is not round: it derives
its vertical angle from the horizontal one and the window's aspect ratio. On a 16:9 window,
with the game's own 45° field of view, the result was a 28° vertical cone, narrower than
the headset's own view. The engine was discarding track you could plainly see, along a dead
straight line, and a seated player looking down lost most of it.
The cone now follows your head. Engine cull FOV boost becomes a floor rather than the main
control.
Fixes
- Black results screen and hub after a race. After the finish, cockpit view could keep
driving the camera from a race that had already ended, reading your pod's position from memory
the game had freed. The camera ended up in the void and nothing rendered until the main menu.
Whether it happened depended on what was left in that memory, so it came and went. Cockpit view
now only takes the camera while the game's own camera is following your pod. - Cockpit view survives a death. It reverted to the chase camera after every respawn, and
no other view did. - Look back (X) works in cockpit view again. It broke when cockpit view arrived: cockpit
view replaces the game's camera, so the game entered look-back and the view never turned. - Menus: one stick direction at a time. A thumbstick near a corner counted as two
directions, so one flick moved a list and changed a setting. Adjustable, and switchable
off. Racing is untouched. - Settings save reliably, including all twenty-three per-pod seat positions.
New settings
dpi_unaware=0in the[vr]block opts out of the v1.4 display-scaling change.- Bump smoothing (cockpit view, off by default) filters the vertical jolt from a seam
in the track. It works by holding your head still while the pod moves, so at higher values
it can put your viewpoint inside the pod's own geometry. 0 is the v1.4 camera.
Two corrections to the v1.4 notes
Both were wrong, and both were in the README as well:
-
v1.4 said the display-scaling change left the headset image unaffected. It did not. The
eye texture is copied from the game's framebuffer, so on a scaled display that change
lowered headset resolution too. The trade was worth it on the machines where it was
measured, but it is a trade, and it should have been described as one.dpi_unaware=0
gives the old behaviour back. -
The README said the default world scale was derived from the pod's dimensions, because a
podracer is about 7 m. 7 m is one engine, not the whole vehicle, so the reference was
measuring the wrong part. The measurement is fixed and now reports itself inhook.log,
but the default is deliberately unchanged until there are enough real readings to set it
honestly. Treat World units per metre as a comfort dial, not a calibrated one.
Thanks
To everyone who sent a log instead of just saying it didn't work, and in particular to the
tester who filed nine numbered, reproducible issues with video for each. Four of them
are fixed above.