Work of 2026-10-04, committed as it was (README-QUEST-VR.md tells each step):
- 0.14: every start shows a panel in the headset to choose how much of the field of view
the game draws (left and right on the D-pad or the left stick, X to play). Less is the
same pixels over fewer degrees, a sharper picture; the choice is remembered. Below all of
it, each eye gets a soft-edged squircle border, drawn where the host copies the frame.
- 0.15: the percent is of the headset's own view, read from OpenXR before Play is offered
and handed to the emulator before the game starts (SHADPS4_VR_HEADSET_FOV_TAN), 50 to 100.
- 0.16: the border sits around each eye's straight ahead, which a headset's uneven view
does not have in the middle of the picture.
- 0.17: both eyes draw the same, even view around straight ahead that takes in the
headset's own (SHADPS4_VR_FOV_SYMMETRIC), so that what one eye shows the other shows too
when the view is narrowed.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
On top of the shadps4-arm64 core imported in the previous commit:
- PlayStation VR emulation: headset, tracker, reprojection, camera and social screen; the
player's seat and view reset; head velocity for head-butts; field of view settings
- Sound: a native Ngs2 engine (samplers, submixers, effects), the Audio3d spatializer, virtual
surround for headset speakers, microphone pass-through; libSceJson2; libSceFiber on FEX
- Fixes for CUSA12392 under emulation: real-time step, pace and resolution governor, larger
render sizes on the PC, save loading at start
- Renderer: geometry shaders fed with fans/polygons/loops, cube-array layers of light probes,
sample-count mismatches on Adreno, timeline semaphore hang, FXAA in place of the MSAA
resolve, sharpening, VR frame export
- quest-host: the Quest app (OpenXR host that runs the glibc core as a child process, frames
through AHardwareBuffers, DualSense mapping, hand-tracked controller placement, KGSL shim)
- PC: in-process OpenXR host (Virtual Desktop or any OpenXR runtime), Touch controllers as the
gamepad, launcher with a settings window; vendored OpenXR SDK 1.1.63
- Builds keep the build machine's folders out of the binaries (-ffile-prefix-map); machine
settings (Python, headset serial, signing key) live in git-ignored tools/*.local files
- tools: build, packaging and test scripts for Windows and the headset
- README with installation, license (GPL-2.0-or-later), third-party notices and thanks
No game files are part of the repository; .gitignore only lets listed paths in.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>