mirror of
https://github.com/spoopyghosty0/frameport.git
synced 2026-10-17 16:02:22 +02:00
Klownicle's five fixes for Vader Immortal: Episode I, reimplemented as FramePort patches (found by Klownicle, GitHub #49; their prebuilt APK is not used): - frame.unreal_quest_precompile: UVRUtils::GetQuestShaderPrecompilePercent returned 0.0 on its non-Quest branch, so the menu waited forever on the loading card; that branch now returns 1.0. Located by symbol, every instruction around it checked (bl IsRunningOnSantaCruz; tbz w0,#0; fmov s0,wzr; ldp; ret); other builds stay untouched. - frame.unreal_quest_keymap: the RPOC key selector (shared by AddAxisMapping and AddActionMapping, so both mapping kinds were affected) picked the empty Gear VR key set for an Oculus HMD; the tbz to it becomes a nop. Located as the common callee of both functions, pattern-checked. - frame.zink_shader_fix + native/zinkfix (libVkLayer_fp_shaderfix.so): a Vulkan layer under Zink for GLES games that applies zink_shader_fix entries (vk_shader_fix format) to the SPIR-V Zink generates; it adds itself to GraphicsEnv's debug layer list from a constructor (the engine library loads it first). zink_shader_dump=1 captures modules. Vader's recipe carries the two lightspeed-shader fixes (12 OpStores each). - adapter proximity_emul (FrameBridge): OVRPlugin's thumb/index proximity actions get bindings to the capacitive touch inputs when the runtime lacks XR_FB_touch_controller_proximity (OVRPort offers the extension anyway): generic replacement for the libUE4 ThumbUp patch. - Vader's recipe: pose_time_fix + proximity_emul, status unknown (to test in the headset), min_app 0.12.1. Analysis records unreal_quest_gates (ANALYSIS_VERSION 4). Star Wars: Tales from the Galaxy's Edge (same studio) has neither gate (different engine build) and gets a catalog entry with pose_time_fix + proximity_emul. Headless on the dev Frame (Lepton 3.0.5): the layer loads into Zink's instances, the proximity bindings are accepted, and the game passes the loading card to the "guardian smaller than recommended, press any button" screen.