Star Wars Episode I Racer PCVR v1.0
Star Wars Episode I: Racer in VR — stereo rendering with true per-eye projection, head tracking, a world-locked panel for HUD and menus, and full Quest controller support. On a 1999 game with no available source, via a hook DLL.
Built on SW_RACER_RE by tim-tim707 and contributors. Full setup, controls, settings and known limitations are in PCVR_README.md.
Before you download
You need a 32-bit OpenXR runtime. This is the one hard requirement and it rules some setups out:
| Runtime | Works? |
|---|---|
| Virtual Desktop (VDXR) | Yes — ships and registers a 32-bit runtime |
| SteamVR | No — its OpenXR loader is 64-bit only |
| Meta / Oculus PC runtime | Probably — documented as supporting 32-bit apps, untested here |
The game is a 32-bit executable, so the runtime must be too. If yours has no 32-bit half, the game launches normally and runs flat, with the reason written to hook.log. To check: HKLM\SOFTWARE\WOW6432Node\Khronos\OpenXR\1\ActiveRuntime must exist and point at a 32-bit DLL.
You also need a legitimate copy of the game (GOG or Steam; developed against Steam). No game data is included in this download.
Installing
Unzip and drop dinput.dll, openxr_loader.dll and assets/ into the game folder next to SWEP1RCR.EXE. Start Virtual Desktop and connect your headset before launching.
Nothing else needs installing — dinput.dll is statically linked and imports only Windows system libraries. No Visual C++ redistributable, no MinGW runtime.
This also fixes the Steam release's launch crash. Verified on a clean machine: fresh Steam install crashed on launch vanilla; dropping these files in made it start and run. You do not need the dinput.dll that circulates on the Steam forums — this one takes the same slot.
What's in the box
Shaders and HD fonts only, about 440 KB. The community mod's assets/custom_tracks/ folder (~217 MB of user-made courses) is not included — it has nothing to do with VR. If you want it, take it from the SW_RACER_RE releases and drop it in beside the others; the two sets merge.
Known limitations
- Overhead place numbers are suppressed. The game stamps them as a screen-space effect during the HUD pass, which in VR is a flat panel, so they cannot anchor to the world. Drifting numbers are worse than no numbers.
- HUD and menus share one layer, so a size that suits racing can leave menus oversized. Separating them needs a second layer.
- Frame rate is mid-to-high 80s on a 90 Hz headset with strong hardware. The limit is CPU draw-call submission in a single-threaded 1999 engine rendered twice, not your GPU. 72 Hz is rock solid.
- Analog steering is experimental and off by default.
- Physics is framerate-coupled — the engine advances its simulation with the frame rate, which is why the community traditionally caps it at 24–30 fps. Higher rates work but change handling.
Lens flares are redrawn correctly as world-space geometry, fogged and depth-occluded per eye.
Reporting problems
Grab hook.log from the game folder before relaunching — it is overwritten each launch and opens with an environment block that answers most questions on its own. If it crashed, include the timestamped report from crashes/ too; those carry a symbolised stack. For anything obscure, set SWE1R_VR_VERBOSE=1.
Licence
AGPL-3.0, inherited from SW_RACER_RE. Complete corresponding source, including the VR layer, is the pcvr branch of this repository. openxr_loader.dll is the Khronos Group's OpenXR loader, redistributed unmodified under Apache-2.0. The original game is the property of LucasArts / Lucasfilm.