mirror of
https://github.com/saphid/frame-control.git
synced 2026-10-06 06:00:33 +02:00
129 lines
6.2 KiB
Markdown
129 lines
6.2 KiB
Markdown
# Mod feasibility test, 2026-09-28
|
||
|
||
**Verified observations**, with limits below. Device: `aarch64`, SteamOS
|
||
`VERSION_ID=0.4.1`, `BUILD_ID=20260925.6191901`; Proton version file:
|
||
`1788505046 proton-11.0-2c-arm64`; `vrcmd --stats`: SteamVR `2.18.1`.
|
||
Times below are the Frame's AEST clock.
|
||
|
||
## Inventory and allowed content
|
||
|
||
`ssh frame 'python3 - owned' < ui/frame_steam.py` returned 868 games before
|
||
the test. Beat Saber (620980) and Skyrim VR (611670) were absent. Half-Life 2:
|
||
VR Mod – Episode One (2177750) was installed. Hogwarts Legacy (990080),
|
||
Horizon Zero Dawn (1151640) and Horizon Forbidden West (2420110) were listed
|
||
but not installed. The full personal library is not committed.
|
||
|
||
**Documented, owner report after these tests:** Alex has Beat Saber on a
|
||
Quest 2, which is charging. That copy was not accessed or inspected during
|
||
this test. Its version, transfer path and Frame compatibility remain unknown;
|
||
Steam ownership is still not established.
|
||
|
||
Gravitas's public Steam metadata reported `is_free: true`, developer Galaxy
|
||
Shark Studios, Windows only. Frame Control's existing Steam helper requested
|
||
its install. Steam first returned free-license state 3, then config state 7,
|
||
then queued the download. The helper did not accept state 3; a later read
|
||
found state 7. The source of that transition was not observed. A later
|
||
`install 1067310` returned `state: installed`. No purchase occurred.
|
||
|
||
UEVR was downloaded from the author's [1.05 release](https://github.com/praydog/UEVR/releases/tag/1.05),
|
||
not a mirror. `UEVR.zip` was 7,399,455 bytes. Its SHA-256 matched the author's
|
||
`UEVR.zip.sha256` (a UTF-16 text file):
|
||
|
||
```text
|
||
af4f2f91306802d7ee4e8497d483a547ac8e9a3067dbafb81324100524215d3c
|
||
```
|
||
|
||
Microsoft's Windows x64 .NET runtime and Windows Desktop runtime 6.0.36 ZIPs
|
||
were downloaded using URLs in the official release metadata. Both SHA-512
|
||
hashes matched that metadata. They were extracted into a test-only user
|
||
directory, not installed globally. No other mod manager was used.
|
||
|
||
## Half-Life 2 VR: visible setup, not gameplay
|
||
|
||
Launched the already-installed Episode One using
|
||
`steam steam://rungameid/2177750`. The existing manifest recorded build
|
||
25413453 and a shared base depot from app 658920, build 25413418.
|
||
|
||
Selected fresh Steam / SteamVR log lines:
|
||
|
||
```text
|
||
22:07:50 proton waitforexitandrun .../Half-Life 2 VR/ep1vr.exe
|
||
22:08:03 SetApplicationPid: Setting app steam.app.2177750 PID to 27990
|
||
22:08:03 Successfully loaded binding file '.../hlvr/cfg/steamvr/bindings_frame.json' for app 'steam.app.2177750'.
|
||
```
|
||
|
||
The game's `episodicvr/console.log` reached `Creating VR hand HUD...`,
|
||
`Creating VR weapon HUD...` and `Calibrating VR base position`. It also
|
||
contained missing material/weapon warnings. SteamVR logged a missing
|
||
`frame_hmd` binding as well as the successful controller binding load;
|
||
controller input was not exercised.
|
||
|
||
`ui/frame_vrshot.py` produced a stereo capture showing the mod's
|
||
“First time setup” and “Dominant hand” dialog. This establishes visible
|
||
startup, not a played level or comfortable performance. The capture includes
|
||
room passthrough and is deliberately not published. The test's `hl2.exe`
|
||
process was terminated; the pre-existing game installation was preserved.
|
||
|
||
## Gravitas and UEVR: injection unverified
|
||
|
||
The game was launched through Steam. The injector was then started in the
|
||
same `steamapps/compatdata/1067310` prefix using the shipped
|
||
`SteamLinuxRuntime_4-arm64/_v2-entry-point` and Proton 11 ARM64. The first
|
||
attempt reported:
|
||
|
||
```text
|
||
Application: UEVRInjector.exe
|
||
Message: You must install .NET to run this application.
|
||
Architecture: x64
|
||
App host version: 6.0.35
|
||
.NET location: Not found
|
||
```
|
||
|
||
With `DOTNET_ROOT` and `DOTNET_ROOT_X64` pointing at the test-only Windows
|
||
runtime directory, Proton loaded `Microsoft.NETCore.App/6.0.36` and
|
||
`Microsoft.WindowsDesktop.App/6.0.36`. A 25-second launcher timeout was too
|
||
short to establish whether the UI worked. A longer attempt produced a
|
||
625×372 `UEVR` X11 window on display `:1`. This is window creation evidence,
|
||
not a successful injection. That launcher returned exit 0; this was not
|
||
treated as proof that a mod worked.
|
||
|
||
A combined launch set `PROTON_REMOTE_DEBUG_CMD` to `UEVRInjector.exe` and
|
||
ran Gravitas's `Drop.exe` in the same runtime/prefix. The process
|
||
`SkyArk/Binaries/Win64/Drop-Win64-Shipping.exe` and a 1600×900 window titled
|
||
`SkyArk (64-bit, PCD3D_SM5)` appeared. The launcher exited **1** before an
|
||
injection or stereo game scene could be verified. Output included:
|
||
|
||
```text
|
||
Proton: Error while copying to ".../windows/system32/amdxcffx64.dll": No such file or directory
|
||
Error [GENERAL | xrCreateInstance | OpenXR-Loader] : xrCreateInstance failed
|
||
X Error of failed request: BadWindow (invalid Window parameter)
|
||
Major opcode of failed request: 10 (X_UnmapWindow)
|
||
X Error of failed request: XI_BadDevice (invalid Device parameter)
|
||
Minor opcode of failed request: 28 (X_GetDeviceButtonMapping)
|
||
```
|
||
|
||
These errors do **not** establish an ARM64/FEX incompatibility. Other work
|
||
was launching apps on the shared Frame. SteamVR's PIDs changed during the
|
||
experiment; `ps` recorded the replacement `vrserver` and `vrcompositor`
|
||
starting at **22:13:03**, corroborated by `steamvr.service` journal startup
|
||
lines. This test did not request a Steam/SteamVR restart. The combined
|
||
attempt ran at 22:14:17–22:14:27, after that restart. A stable, coordinated
|
||
session is needed to distinguish launcher/environment problems from game or
|
||
mod incompatibility.
|
||
|
||
## Cleanup and remaining checks
|
||
|
||
- No game executable or OpenVR DLL was replaced. No global runtime or power
|
||
setting was changed by this test. No R.E.A.L., OpenComposite or Beat Saber
|
||
payload was installed.
|
||
- Removed the test-only UEVR/.NET directory and downloaded ZIPs from the
|
||
Frame. Final process checks found no `UEVRInjector.exe`,
|
||
`Drop-Win64-Shipping.exe`, `ep1vr.exe` or `hl2.exe`. SteamVR was running.
|
||
- Gravitas and its Steam-created prefix remain installed for a repeat test;
|
||
the pre-existing HL2 VR install remains. Steam may retain normal shader
|
||
caches, logs and prefix temporary files.
|
||
- Still unverified: UEVR injection and removal, R.E.A.L. releases and
|
||
permissions, OpenComposite, Beat Saber playback on either build, and our
|
||
own manager's end-to-end install/uninstall. No installer UI is justified
|
||
by these results. See the [support table and next checks](../mods.md).
|