-
OpenMoHAA VR 0.2.0 — Quest prerelease Pre-Release
released this
2026-10-15 01:00:34 +02:00 | -53 commits to main since this releaseOpenMoHAA VR is a standalone VR port of Medal of Honor: Allied Assault targeting Meta Quest and Steam Frame, built on OpenMoHAA and OpenXR. This Quest prerelease is based on the OpenMoHAA 0.83.0 engine. Quest 3 is the headset tested so far; other Quest models are unverified. Steam Frame integration is pending and no Steam Frame build is included.
Changes since 0.1.0
- Body holsters, grip-driven ladder climbing, and controller-velocity grenade throws; hands remain visible while unarmed.
- An on-demand HUD on the off-hand X button, grouping compass, objectives, health, and ammo. The compass includes objective and damage-direction indicators.
- Corrected use interaction, weapon-wheel placement, health colors, objective initialization, and death/mission screen presentation.
- Fixed stereo subtitle/message lifetimes, upright sprite disappearance, offscreen sprite culling, invalid sprite handles, and multipass font color/opacity handling.
- Removed forced per-eye GPU waits during normal play, reduced redundant HUD parsing/render submissions, and corrected world/HUD/backend timing reports.
- Safer OpenXR swapchain retries and stereo submission: timed-out images are not rendered or released early, and incomplete eye pairs are not submitted.
- Release configuration starts at the normal menu with cheats, test-map loading, automatic weapon grants, and diagnostic logging disabled.
- Included the Android Gradle build scripts in the source tree and fixed CMake tracking of new client-game sources.
Install or upgrade
The APK contains the engine only. You need your own Medal of Honor: Allied Assault game data. Copy all
.pk3archives from the game'smain/directory to:/sdcard/Android/data/org.openmoh.openmohaa/files/main/Install the APK and replace the external configuration with this release's
autoexec.cfg:adb install -r openmohaa-vr-quest3-0.2.0.apk adb push autoexec.cfg /sdcard/Android/data/org.openmoh.openmohaa/files/main/autoexec.cfg adb shell am force-stop org.openmoh.openmohaaThen launch OpenMoHAA from inside the headset, under Unknown Sources. This published APK retains that launcher name; newer source builds use OpenMoHAA VR. Do not launch it with
adb shell am start.Upgrading preserves the old configuration. Install the new
autoexec.cfgas well as the APK; it supplies the dynamic-lighting workaround and removes the development autostart. Back up any personal configuration changes before replacing it. Let the app create its ownmain/saveandmain/configsdirectories so it can write saves and settings.The APK uses the same signing certificate as 0.1.0, Android version code 2, and version name 0.83.0-vr0.2.0. It packages optimized Release native libraries with the debug-signed Android wrapper, as before. The renderer is GL1 through gl4es.
Validation and known limits
The fixes passed desktop and Android GL1/GL2 builds plus targeted regression and sanitizer checks. The release APK was rebuilt from the tagged source; its package metadata, signature compatibility, and packaged native-library build IDs were checked.
No headset was connected for the latest review or release preparation. Visual changes and performance impact have not been measured on a device; previously reported frame rates are not measurements of this release.
- Font-atlas black boxes remain unresolved; fixing multipass font settings does not fix the underlying zero-texture-ID issue.
- World dynamic lighting can darken scenery. The supplied configuration keeps
r_worldDlights 0as a workaround; the APK's default alone does not include it. - Per-weapon grip alignment, remaining foliage behavior, and controller interactions still need device testing/tuning. Quest 3 is the intended target; other headsets are unverified.
SHA256SUMScovers the APK and configuration. After downloading all three assets, verify them withsha256sum -c SHA256SUMS.Full changes · Port status and build instructions
Project overview and platform status · Quest installation guide
Downloads
-
OpenMoHAA VR for Quest 3 — 0.1.0 Pre-Release
released this
2026-10-15 01:00:37 +02:00 | 11 commits to vr-quest3 since this releaseA native OpenXR port of OpenMoHAA — the
open-source Medal of Honor: Allied Assault engine — running standalone on a Meta
Quest 3. No PC, no streaming.This is a pre-release: it plays, but it is a port in progress and several
things below are known to be unfinished.You need the original game data
The APK is the engine only. Medal of Honor: Allied Assault is not free software
and none of its content is distributed here — you need a copy you own (the GOG
War Chest release is what this was developed against).Copy the
main/folder from your install to:/sdcard/Android/data/org.openmoh.openmohaa/files/main/Install
adb install -r openmohaa-vr-quest3-0.1.0.apk adb push autoexec.cfg /sdcard/Android/data/org.openmoh.openmohaa/files/main/autoexec.cfg adb shell am force-stop org.openmoh.openmohaaThen launch it from inside the headset, from Unknown Sources. Do not start it
withadb shell am start— the launch goes through an interstitial and the
app comes up without a usable surface.autoexec.cfgis optional. It is the only way to set a cvar on a device with no
console, and it is worth having if you want to change anything, but every value
the port needs to be correct is compiled in — the APK behaves without it.Two traps worth knowing, both of which cost time here:
adb install -rdoes not kill the running process. Force-stop after
installing, or the next launch resumes the old build.- Never create
main/saveormain/configsyourself withadb. A directory
made byadb shell mkdiris owned byshelland nochmodmakes it
app-writable. The game autosaves on mission start and treats the failure as
fatal, so the symptom is a black screen after New Game. Let the engine create
them.
What works
Stereo VR at 90 Hz with 6DoF head tracking. Stick locomotion, snap turning, and
menus on a quad layer fixed in the room. The weapon is held in your hand and
aimed by the controller rather than by your head, with a hand model on each
controller anchored to its own bone. Missions start and play.Known limits
- It does not hold 90 fps while moving. The eyes render at the full
1680×1760 per eye: 90 fps standing, 77–85 while moving, so most frames in
motion are reprojected by the compositor. This is a deliberate trade — it
plays well and the picture is much sharper — andvr_resolutionScaleis the
first thing to give back. - The HUD is still flat screen space during gameplay, so it does not
converge properly. Menus are fine; they are on the quad layer. - Weapon grip alignment is one global setting (
vr_weaponAdjust) shared
across every weapon, so a pistol and a bazooka sit the same way in the hand. - Untested on device: the two-handed hold, the reload gesture (tap the weapon
hand's grip), and off-hand steering. - Some foliage still rotates with head movement.
- A SIGSEGV in the Adreno driver appears in the log at every launch. It predates
all VR work, was present in the flat builds, and the process survives it.
Only the Quest 3 has been tested. Other Android XR devices may work and none are
supported.Notes
The APK is debug-signed — there is no release signing config in the tree — which
is why it installs as an unknown source. It is aReleaseCMake build of the
engine; only the APK wrapper is the debug variant.The renderer is
renderergl1on gl4es rather thanrenderergl2. rend2 ran this
content at 10–15 fps, spending 50–60 ms of CPU per eye binding GLSL programs for
lighting that art authored in 2002 has no maps to feed, while the GPU finished
in 3 ms.Build instructions are in
docs/markdown/04-coding/03-android.md. The state of
the port, including what was learned that contradicts the original plan, is in
VR_PORT_STATUS.md.QUEST_PORTING_GUIDE.mdis the reusable version, written
for the next id Tech port rather than for this one.Built on Team Beef's RTCWQuest, which is
the reference this port was checked against throughout, and on the work of the
OpenMoHAA project.Downloads
mirror of
https://github.com/bearstonem/openmohaa-vr.git
synced 2026-10-17 11:00:21 +02:00