The Android container on the Frame shows the headset's Steam folders at the
same paths, read only. At start the app looks for steamapps/common/Half-Life
(valve/liblist.gam) in the Steam library and in the other libraries
libraryfolders.vdf lists, and gives the engine that folder as XASH3D_RODIR.
The engine searches it after the writable folder, so the saves, the
settings and the files this app puts in /sdcard/Documents/Lambda1VR (the
replacement models and sprites) win over Steam's. Nothing is written into the
Steam folder. If there's no Half-Life there, a copy in Documents is used as
before, and a [data] line in the log says which one it was.
Builds. Haven't tried it on the headset yet.
On the Quest the data is in /sdcard/xash. On the Frame that would be gone
whenever the Android container gets reset, so it uses
/sdcard/Documents/Lambda1VR there, which is the headset's own
~/Documents/Lambda1VR. The Java side, the chdir and the engine's
default path all follow it. The Quest path is the same as before.
The container on the Frame has no settings page for the all files
permission, so on that build we just check we can write to the folder
and only ask if we can't (and don't fall over if there's no page).
The Frame runs Android apps in a container (Lepton) that has no OpenXR
loader broker, so the APK needs its own loader. This adds a "frame" build
type: ./gradlew assembleFrame.
It's release plus:
- applicationId .frame, minSdk 30 (the container is Android 11)
- a manifest overlay that drops the headtracking requirement and the
Quest/Pico metadata, since the install fails with it
- the Khronos loader 1.1.63, fetched from Maven Central at build time,
checked against a SHA-256 and unpacked into build/ (not committed)
- L1VR_STEAM_FRAME for the native code, BuildConfig.STEAM_FRAME for Java
Quest builds don't see any of this. I also added the gradle wrapper script
to Projects/Android, since the wrapper jar and properties were already
there, and -Wall for the VR sources.
Haven't run it on the headset yet.
- Update version to 1.5.0
- Ability to select refresh rate in Video Options
- Changed deadzones for controllers
- Updated to build against latest Mobile SDK 1.50
- Enabled Extra Latency Mode
- Building against NDK 21.0.6113669
- Removed hacky use of LOAD_GLES2 and use gl4es properly
- Added Team Beef to Credits
- Correct some bad C
You can now define a selection of commands to run on the console in a commands.lst file. These will be placed in the Console Commands menu.
This is particularly useful if you a) just want to cheat or b) need to skip a scene or to a particular map because a mod isn't working correctly.
- Don't ask player name in multipler (just use config.cfg)
- Don't double copy model files
- Crouch cvar now controls at which height (multiplied by player height) the crouch mechanic will kick in, set to 0 if you wish to disable it
- Updated missing manifest flag
- HUD icon to show player crouched ("Stealth")
- cvar to disable crouch mechanic
- height adjustment cvar
- flashlight model cvar
- Player height in game is now player height irl
- Reduce decal count for performance