OpenMoHAA 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 .pk3 archives from the game's main/ 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.cfg as 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 own main/save and main/configs directories 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.
SHA256SUMS covers the APK and configuration. After downloading all three assets, verify them with sha256sum -c SHA256SUMS.
Full changes · Port status and build instructions
Project overview and platform status · Quest installation guide