Files
spoopyghosty0--frameport/native/adapter/headset_model.c
T
spoopyghosty0 1e1c435191 Headset model per game, Quest 3 by default (#373)
Games saw a Quest 2: OVRPort's dispatcher hardcodes the system name "Oculus Quest2" and a Quest 2
headset UUID (XR_META_headset_id), and OVRPlugin decides the headset type from the UUID first, then the
name. device.headset_model (Customize; Quest 3 default for every Quest game, also Quest 3S, Quest Pro,
Quest 2) rewrites both in the dispatcher after checking the original bytes; Quest 2 leaves the build
byte-identical. FrameBridge reports the same name to games that call the runtime directly. A library
migration adds the default to existing recipes (installed games show Update on Frame).
Lepton's ro.product.model ("Lepton") can't be overridden by boot properties, so Build.MODEL is unchanged.

Verified on the Frame: OVRPlugin logs "systemName Meta Quest 3" (was "Oculus Quest2").
2026-10-17 15:18:45 -04:00

22 lines
822 B
C

// Per-game OpenXR identity. 0/2 preserve the runtime's original Quest 2 compatibility behaviour.
// OVRPort owns XR_META_headset_id above this layer; the APK patch rewrites its UUID.
static int headset_model;
static void headset_model_setting(const char *line) {
int value;
char trailing;
if (sscanf(line, "headset_model=%d %c", &value, &trailing) == 1 && value >= 2 && value <= 5)
headset_model = value;
}
static void headset_model_properties(XrSystemProperties *properties) {
const char *name = NULL;
switch (headset_model) {
case 3: name = "Meta Quest 3"; break;
case 4: name = "Meta Quest 3S"; break;
case 5: name = "Meta Quest Pro"; break;
}
if (properties && name)
snprintf(properties->systemName, sizeof(properties->systemName), "%s", name);
}