Files
Claude 28a25108c6 Run the same-device Vulkan OpenXR backend on desktop Linux
Lepton's Vulkan driver has no external memory or sync fd extensions,
so the Steam Frame gets a native SteamOS build instead. Its backend is
the PC's: OpenXR creates Dawn's own Vulkan instance and device, and the
eyes are copied into the swapchain on Dawn's queue, with nothing shared
between devices.

- openxr_vulkan_win32 and Aurora's vulkan_win32_interop now compile on
  desktop Linux. Dawn links statically there, so the bridge calls the
  patched package's hooks directly, and exists only when the package's
  aurora-dawn.json declares the Vulkan hook ABI (AuroraDawnProvider
  turns AuroraVulkanAbi into AURORA_DAWN_VULKAN_HOOKS); a stock Dawn
  keeps the stubs and VR falls back to the desktop.
- openxr_integration.cpp gains a Linux branch: XR_KHR_vulkan_enable2,
  the timespec clock, refresh rate, performance level, the Frame
  controllers and eye gaze; fragment density maps are requested on
  Linux as on the Quest (fdm.cpp and gpu.cpp, AURORA_FDM=0/1 overrides).
- Controller motion uses XR_KHR_convert_timespec_time on any Linux.
- CMake: Vulkan headers are fetched for Linux OpenXR builds, the
  headset option is MKW_HEADSET on Android and Linux, and Linux aarch64
  builds take MKW_LINUX_CPU (cortex-x4 for the Steam Frame, else native).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019HBRGKTE1GnN2ah8gcZKr3
2026-10-04 09:48:48 +00: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
2026-10-04 08:46:49 +00:00

WiiCompiled VR for Meta Quest (Android)

Standalone Android/OpenXR build of the Mario Kart Wii recompilation for Quest 1, Quest 2, Quest 3, Quest 3S and Quest Pro, and, as the steamFrame flavour, for Valve's Steam Frame under Lepton (docs/steam-frame.md). 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
powershell -ExecutionPolicy Bypass -File android/Build-Quest.ps1 -Headset frame         # Steam Frame flavour
powershell -ExecutionPolicy Bypass -File android/Build-Quest.ps1 -Headset quest1 -Install # Quest 1 flavour

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 -Headset quest1 -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.