Commit Graph
233 Commits
Author SHA1 Message Date
Madison 247d8be660 Keep the game data in Documents on the Frame
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).
2026-10-04 18:44:21 +09:00
Madison afe3c6f890 Add Valve Frame controller bindings
On the Frame build the bindings go to the Frame's own profile first
(valve/frame_controller_valve), then Index, then Touch. The Pico profile
isn't tried there. Every profile logs what the runtime said to the
suggestion.

The game's actions stay the same: sticks, triggers, grips, stick clicks
and A/B are where they are on Quest. The Frame has no X/Y on the left
controller, so the torch is the left bumper (or the right X) and the
screen view is View (or the right Y). Menu is the right one and is the
pause. Holding View for a second recentres, three seconds also takes the
head height as the standing height, with a buzz on both controllers.
The left-handed schemes get the same physical buttons.

The layout only kicks in when the runtime says the Frame profile is
the active one, so Index or Touch controllers on SteamVR behave like they
do on Quest. Index has no Menu for apps, so its pause is the left
trackpad pressed hard.

Builds. Haven't tried it in the headset yet.
2026-10-04 18:43:20 +09:00
Madison 9ad98dcf51 Make the OpenXR setup work on SteamVR for the Frame build
SteamVR doesn't offer what the Quest and Pico runtimes do, and the frame
loop assumed they were there. All of this is behind L1VR_STEAM_FRAME, so
the Quest and Pico code paths stay as they were.

- Only OpenGL ES is required. Everything else (android create instance,
  performance settings, refresh rate, the Valve controller extension) is
  enabled when the runtime lists it. The android create instance struct
  only goes in the chain if that extension is on.
- No Pico or Meta calls on the Frame, and no assuming OPENXR_HMD is set.
- The graphics binding gets the EGLConfig instead of the surface.
- The eye framebuffers fall back to plain GLES 3 when there's no
  multisampling, so the runtime doesn't need the EXT extension.
- Render at the recommended size, not 1.3x of it.
- In standby (shouldRender false) the frame goes in with no layers and
  the game waits too. Before, the server kept simulating.
- SteamVR quitting the app (exiting, loss pending) goes through the
  normal shutdown instead of spinning on events.
- A recentre that takes the head's yaw and floor position, for the
  controller code to call. It keeps the view yaw and the world position,
  so nothing jumps.
- Log what's going on with an [openxr] prefix: runtime, extensions,
  swapchain format and size, session state, refresh rates.

Builds. Haven't tried it in the headset yet.
2026-10-04 18:41:58 +09:00
Madison b3058f76f6 Add a Steam Frame build type with the Khronos OpenXR loader
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.
2026-10-04 18:36:18 +09:00
DrBeef 99a0d62ebb Fix black edges + prevent accidental weapon switching 2026-09-02 22:52:05 +01:00
DrBeef 8fa5e6b276 Use our updated background 2026-01-07 19:03:32 +00:00
DrBeef 3e3572d89e Multiple fixes to improve QoL
- Prevent the highest IPD setting on Quest 2 and Quest 3s from making the view move with the controller
- Smooth Turn menu option (so user doesn't have to faff with setting a low value)
- Gesture Trigger Use is now enabled by default
- Fixed positional not working at higher refresh rates
- Improvements to the use of the pointer in the menu screen (also seems to fix scroll bars)
- Improved menu item layout
- change to sv_game.c which seems to stop the menu hanging on Start New Game sometimes
- Adjusted draw location of hands
- Don't draw offhand backwards if "Reverse Torch Direction" is enabled
2026-01-05 11:42:10 +00:00
DrBeef d6d9ee4d08 Updated Android API level to 32
improved permission handling request
new crowbar pointer sprite
2025-10-16 10:07:17 +01:00
DrBeef 482bd03fd1 few minor fixes
- permissions bug
- updated gradle configuration
- fix missing mouse cursor
2025-10-15 22:28:55 +01:00
Simon 6fe7d75c0c Option to reverse the direction of the flashlight 2023-07-01 15:46:59 +01:00
Simon 20f282c161 Fix incorrect movement speed on the diagonal (Pico) 2023-05-29 14:16:13 +01:00
Simon c0b09aab2d Ensure menu displayed in front of player on start-up 2023-05-01 17:38:42 +01:00
Simon 1281fe7e4c Updated SDK for gesture use (thanks @petr666 ) 2023-05-01 17:28:40 +01:00
Simon cb3000f57f Implement clean shutdown
- increase version number to 1.6.1
2023-05-01 09:57:09 +01:00
Simon ae567ebd9b Fix crash on quest firmware v53 2023-04-28 19:47:17 +01:00
Simonandpetr666 5352b02167 Extra changes required for use gesture
Co-Authored-By: petr666 <5103207+petr666@users.noreply.github.com>
2023-03-17 21:33:19 +00:00
Simon 1724d3e3ca Merge branch 'feature/use-gesture' of https://github.com/petr666/Lambda1VR into petr666-feature/use-gesture 2023-03-17 21:28:34 +00:00
SimonandIgor Valjevic 6ace772cd3 @MuadDib's Use Gesture
Co-Authored-By: Igor Valjevic <177352+MuadDib@users.noreply.github.com>
2023-03-17 20:32:47 +00:00
Simon 425a209319 Renamed cvar 2023-03-17 20:19:47 +00:00
Simon 385af10513 Fix issues with Op Force 2023-03-17 20:04:26 +00:00
Simon 2aa7dfddc5 Final bits for OpenXR support
fixed projection
2023-03-16 22:05:05 +00:00
Simon 1f60a9d2c4 Starting to get OpenXR working
Runs on the Pico, but has issues (no headtracking)
2023-03-15 23:48:41 +00:00
Petr Bartos aecb3eeb67 Use gesture 2023-02-24 19:47:22 +01:00
Simon 8d3b6851fa Update to blushift
allow blue HUD
2022-11-04 23:52:06 +00:00
Simon bcd365ebab Merge branch 'master' of https://github.com/DrBeef/Lambda1VR 2022-09-20 20:40:14 +01:00
Simon 079e67a0fa Crowbar..
Made the corwbar a little "longer" and requires lower velocity to trigger a hit.. should be easier to hit headcrabs with
2022-09-20 20:40:11 +01:00
Grant Bagwell 8200a40bcb Fix issue when people have their menu buttons switched 2022-09-20 19:47:23 +02:00
Simon 50d94ce705 Couple of extra changes...
- Reverse direction primary thumbstick cycles weapons
- Default ladder climbing to use HMD angles, rather than off-hand
2022-09-09 19:34:58 +01:00
Simon d35f933cb7 Update L1VR_SurfaceView.c 2022-09-04 23:21:56 +01:00
Simon faef5863ac Apply smoothing to left hand joystick
- fixes issue with occasional incorrect joystick reading (on older touch controllers) causing jittery movement
2022-09-04 14:17:28 +01:00
Simon 547118fed9 Couple of small things..
- Fix glitchiness due to slightly dodfy controller thumbstick
- Increase default CPU to level 3
2022-09-04 11:40:15 +01:00
Simon 8cb8435b6d 64-bit build 2022-09-04 11:25:13 +01:00
Simon 42a557e6cd Merge pull request #92 from kote2345/master
Support mods They Hunger and Afraid of Monsters: Director's Cut
2022-09-04 10:47:18 +01:00
Simon 161422b701 Merge branch 'master' into master 2022-09-04 10:44:19 +01:00
Simon 1bf0a13e4d Various QoL Fixes / Changes
- 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
2022-09-04 10:42:36 +01:00
kote2345 eb3c9a7585 Update submodule 2022-08-06 00:10:14 +04:00
kote2345 8de93c2430 Update submodules 2022-08-04 23:45:54 +04:00
kote2345 828a97a822 Support They Hunger and Afraid of Monsters Director's Cut 2022-08-04 22:27:37 +04:00
kote2345 d77216d94d Add submodules 2022-07-12 22:59:42 +04:00
Michael Thomas 3bf2b1f4f2 New backpack implementation 2022-05-07 17:16:00 +07:00
Simon e8250ffdbf Corrected positional movement on Quest 2 2021-01-26 22:52:39 +00:00
Simon 4d001d7f75 Ensure Quest 2 STAY2 at 90hz
VrApi was unnecessarily reducing it to 72hz!
2020-12-12 11:48:42 +00:00
Simon fa4d216b7a 90hz Mode support for Quest 2 2020-12-10 20:56:10 +00:00
Simon a8e07c0e2c Updated to fix FOV issues 2020-10-18 22:19:03 +01:00
Simon 3cd847191f Fixes for Quest 2 2020-10-14 19:10:49 +01:00
Simon e0a5c1a9fb Fix random crash 2020-04-12 15:03:49 +01:00
Simon 7ac3a2bcff Allow user to throw/place more than a single satchel 2020-04-12 14:22:22 +01:00
Simon 5d68d5e910 Make geneworm scream when shot 2020-02-23 22:56:49 +00:00
Simon f3c1e4d0be Update hlsdk-xash3d-opfor 2020-02-19 19:10:49 +00:00
Simon bcd7f5b98b Support for hand models...
...when not holding torch or holding weapon.
2020-02-18 22:59:11 +00:00