Files
mitch030504--Wiicompiled_VR…/android
iChris4andClaude Opus 5.5 a21e22b605 Pose the cockpit hands from the headset's hand tracking
- New [vr] hand_tracking (default off, Quest only for now): the Quest launcher's Settings > VR and
  the headset panel's VR tab, under hand steering. Two XR_EXT_hand_tracking trackers are located
  every XR frame: with the controllers held the Quest builds the joints from their touch sensors
  (XR_EXT_hand_tracking_data_source's controller source), once they are put down from its
  cameras. The trackers exist only while the option and hand steering are on and also serve the
  runtime hand mesh; the extensions (plus XR_FB_hand_tracking_aim) are asked for when either is
  on at launch.
- Aurora skins the runtime mesh with the joints themselves (tracked pose times inverse bind pose,
  no curl, no grip); runtimes with joints but no mesh get a skeleton; non-finite joints put only
  that hand back on its grip curl. AuroraCockpitHand carries the 26 seated-frame joints and radii.
- The manifest declares horizonos.permission.HAND_TRACKING (and the deprecated
  com.oculus.permission.HAND_TRACKING), both normal permissions with no prompt on a Quest 3, and
  oculus.software.handtracking as optional; without it Horizon OS keeps the app controllers-only.
  Bare hands then drive khr/simple_controller, so on Android a hand whose squeeze action is
  inactive and select active is treated as bare: with the option off it presses nothing but the
  menu gesture, is not drawn and feeds no Wii Remote motion.
- Interaction-profile changes and tracker sources are logged. The pure rules (grasp from finger
  flexion, bare latch, pinch gate, bare-hand buttons, flick) live in the OpenXR-free
  vr/openxr_hand_tracking.h with mkw_vr_hand_tracking_tests; the driving and flick parts are
  wired in the next commits. Docs: OPENXR.md, docs/quest-port.md, README.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 00:05:48 +02:00
..
2026-09-24 01:12:02 +02:00
2026-09-16 22:06:34 +02:00
2026-09-16 22:06:34 +02:00

WiiCompiled VR for Meta Quest (Android)

Standalone Android/OpenXR build of the Mario Kart Wii recompilation for Quest 2, Quest 3, Quest 3S and Quest Pro. The full design, build walkthrough and current status live in docs/quest-port.md; this directory only holds the Gradle project, its helper scripts, the game kit tooling (QuestGameKit.psm1, Build-QuestGame.ps1), the on-headset build toolchain (Prepare-QuestToolchain.ps1, toolchain/) and nod-jni.

powershell -ExecutionPolicy Bypass -File android/Prepare-QuestDependencies.ps1          # stages the SDL3 3.4.4 AAR once
powershell -ExecutionPolicy Bypass -File android/Build-Quest.ps1 -Install               # the app, debug-signed, installs over adb

One app offers both games, with a toggle on Home: Mario Kart Wii and, when your translation includes the mod, Retro Rewind. The translated game (the translator's generated/ tree for your own PAL RMCP01 disc) is passed with -Generated <dir>; it defaults to the installer workspace next to this checkout. No game data is ever part of the APK, and neither is any translated game code: the APK carries one game kit holding a recipe per game, and your libmain.so is built from your own disc, either on the headset (Build on this Quest, about half an hour) or on a PC and imported:

powershell -ExecutionPolicy Bypass -File android/Build-QuestGame.ps1 -Product base -Install
powershell -ExecutionPolicy Bypass -File android/Build-QuestGame.ps1 -Product retro_rewind -Mod <RetroRewind6> -Install

-Mod puts the Retro Rewind pack in the package; Import from computer takes the same .wcgame from the Import folder. The headset can also fetch that pack itself with Download Retro Rewind on Home, from Retro Rewind's own distribution server, the way the PC launcher does. Copy your disc image to the headset (for example adb push MarioKart.iso /sdcard/Download/) and press Select disc image in the launcher, which checks and extracts it with nod, as the PC installer does. Or push an already extracted disc to

/sdcard/Android/data/org.wiicompiled.quest/files/WiiCompiledOpenXRVR/DATA

Config.toml, saves and logs live in the same WiiCompiledOpenXRVR directory.

The app opens on a 2D launcher panel modelled on the PC launcher (WheelWizard VR): Home picks the game with a toggle, starts it in the headset and says what is still missing (the disc files, the game itself, or Retro Rewind's pack), and Settings edits Config.toml (VR camera, render scale, virtual screen, resolution, controllers, audio), with an Other tab for the files and the games built from them, with a Reset installation action that removes the game files (and on request the built games and the Retro Rewind pack) so they can be set up again, and an About tab carrying the credits. The game itself is QuestActivity, in its own :game process; adb shell am start -n org.wiicompiled.quest/.QuestActivity still starts it directly.