Skip to content
 
 

Repository files navigation

ALVR - Air Light VR (Custom 90Hz & Raw Audio Fork)

This is a specialized custom fork of ALVR (Air Light VR) designed to bypass hardcoded hardware limitations, specifically tailored for the Oculus Quest 1 and similar devices.

🚀 Key Features & Modifications

1. 90Hz Refresh Rate Unlock (Quest 1)

The official ALVR builds strictly restrict the Oculus Quest 1 to 72Hz, forcing a fallback even if 90Hz is requested or forcefully set via root/ADB on the device.

  • Server-Side Modification: Removed the streaming_caps.refresh_rates check in the ALVR Streamer. The server now unconditionally pushes the user's preferred refresh rate (e.g., 90Hz) without falling back.
  • Client-Side OpenXR Patch: Removed the crash/panic triggered when OpenXR returns ERROR_DISPLAY_REFRESH_RATE_UNSUPPORTED_FB. The client now silently ignores the OS-level rejection and continues rendering and streaming at 90Hz logically, effectively bypassing the hardcoded hardware limitation check.

2. Unprocessed Microphone Audio (No Noise Gate)

The default ALVR Android client uses the VoiceCommunication audio preset, which forces aggressive Android hardware-level DSP (Noise Suppression, Echo Cancellation, and Automatic Gain Control). This results in a frustrating "noise gate" effect where your voice fades in and out while speaking in VRChat.

  • Client-Side Audio Patch: Changed the microphone input preset from VoiceCommunication to Unprocessed in client_core/src/audio.rs. This disables the hardware DSP entirely, transmitting raw, unaltered microphone audio directly to the PC.

📥 Installation

Since this is a custom fork, you must use the specifically compiled server (Streamer) and client (APK) together to experience these features.

  1. Install the Custom Client (APK): Use SideQuest or ADB to install the custom compiled alvr_client_android.apk onto your headset. Make sure to uninstall the official ALVR client first to avoid signature mismatch errors (INSTALL_FAILED_UPDATE_INCOMPATIBLE).

    adb uninstall alvr.client.dev
    adb install -r -d alvr_client_android.apk
  2. Run the Custom Server: Launch ALVR Dashboard.exe from the custom Windows build folder. Set your Video refresh rate to 90 Hz, and verify your Microphone settings are pointing to CABLE Output (VB-Audio Virtual Cable).

🛠️ Building From Source

To build this custom fork yourself:

  1. Follow the standard ALVR Build Guide to set up Rust, Android NDK/SDK, and dependencies.
  2. Clone this repository.
  3. Build the streamer (PC Server):
    cargo xtask build-streamer --release
  4. Build the Android Client (Headset APK):
    cargo xtask prepare-deps --platform android --ci
    cargo xtask build-client --release

(Note: Use the --ci flag on Windows to bypass UAC prompts during prepare-deps if unzip is available in your PATH).

⚠️ Notes & Known Issues

  • Running a Quest 1 at 90Hz requires the headset to be rooted or explicitly forced into 90Hz mode via system commands. Otherwise, the physical panels will refresh at 72Hz while ALVR processes frames at 90Hz.
  • Because the Android hardware-level microphone DSP is disabled, you might need to use Discord's or VRChat's software noise suppression to prevent picking up heavy background noise or fan sounds.
  • When the headset screen turns off (proximity sensor), Android will still mute the microphone at the hardware level. This is an OS restriction, not an ALVR restriction.

License & Credits

About

Stream VR games from your PC to your headset via Wi-Fi

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages