spoopyghosty0 94bc4c479e PC VR playability (auto SteamVR, OpenVR backend) + honest Frame routing
Make PC VR games actually reach VR, and stop mis-claiming Frame support:

- PC: auto-start SteamVR on Play/launch (winhost.start_steamvr) — Oculus games
  ran as a flat window because SteamVR wasn't up; Revive has no runtime to bind
  to without it. Default PC installs to Revive's OpenVR (SteamVR) backend
  (pcvr.revive_openvr on) instead of the OpenXR backend that was crashing; the
  Frame launcher still uses /openxr. Play toast warns if SteamVR can't come up.
- Routing: detect OpenVR (openvr_api imports/DLLs, not the universal-in-Unreal
  IVRSystem/VR_InitInternal strings). frame_native = (openxr or openvr) and not
  libovr; any LibOVR game is Oculus -> needs Revive -> PC only. The game page
  says per-game where it runs; installing an Oculus game on the Frame warns
  first. Rick and Morty runs on the Frame via its catalog recipe. Migration
  rift_frame_native re-analyzes + re-derives existing entries.

Note: Oculus/LibOVR games can't run on the Frame — Revive's hooks don't work
under Proton-arm64 (ARM64EC), and FramePort does not defeat the Oculus runtime
Authenticode signature check. Those games are PC-only (SteamVR + Revive).

Bump to 0.2.0. 133 tests pass.
2026-09-30 09:34:12 -04:00

FramePort

Play your Meta Quest standalone games on the Valve Steam Frame. FramePort patches a Quest APK so it runs in the Frame's Lepton Android runtime, validates the result, installs it over Wi-Fi and adds it to your Steam library with artwork. Think Morphe/ReVanced Manager, for Quest → Steam Frame:

  1. Connect your Frame once: the app shows one command to paste into the Frame's desktop terminal (it turns on SSH, trusts the app, and installs Lepton). After that the app finds the Frame on your network by itself.
  2. Add games: scan a folder of Quest dumps (APK + OBB) or add an APK.
  3. Review patches: every game gets suggested patches (overport's plus Steam Frame fixes), each with a reason. 34 games have verified recipes; unknown games get heuristics.
  4. Patch, validate, install: signature/alignment/dependency checks, upload (resumable, skips data already on the Frame), Steam shortcut + artwork, and a headless launch test with log triage that suggests fixes.

FramePort downloads and manages its own tools (Java runtime, overport CLI, apksigner). Nothing is installed system-wide, and no Android SDK/NDK is needed.

Install

  • App bundles: download from Releases (Windows x64, macOS Apple Silicon, Linux x64); see docs/INSTALL.md for the first-launch warning (self-signed / ad-hoc signed) and how to verify a download. Built by CI (.github/workflows/build.yml, flet build).
  • From source: uv sync && uv run frameport-gui (CLI: uv run frameport --help).

Status of tested games

See catalog/games/ (and the Library screen): 23 work, 5 work with issues, 6 can't run on the Frame (3 are 32-bit only; PC VR alternatives are listed). Details and how problems were solved: docs/PLAYBOOK.md. All 34 recipes were verified by rebuilding from the original dumps (docs/parity-report.md: 34/34 match the hand-made known-good builds) and reinstalling + launch-testing on a Frame (docs/parity-device-report.md: 0 regressions).

Use only with games you own. FramePort does not download games. It is GPL-3.0-only because it bundles code derived from GPL-3.0 projects (Quest2Frame's hook technique in the adapter, the Android-XR-Bridge/OVRPort VrApi bridge). overport is downloaded from its official releases and is not redistributed.

Development

See CLAUDE.md (architecture, commands, findings) and docs/ARCHITECTURE.md.

S
Description
GitHub pull mirror of spoopyghosty0/frameport. GitHub repository ID: 1400913845. Gitea import mode: github-full.
https://github.com/spoopyghosty0/frameport Readme GPL-3.0
10 MiB
0 Stars 1 Watchers 0 Forks
2026-10-06 06:21:39 +02:00
Languages
Python 74.3%
C 17.5%
C++ 6.6%
Assembly 1.2%
Shell 0.3%