mirror of
https://github.com/mitch030504/AstroQuest-Frame.git
synced 2026-10-24 21:01:20 +02:00
The first worn try of the Quest app with the headset's own controllers ended at the catapult of the first level: the right stick pulled back and let go did not shoot it. And nothing told the player that the pad is pressed (the water cannon) by pressing that stick in. Why the catapult failed: the game reads the pad once for every frame it draws (the newest of the states it is handed), and takes the place it first finds the finger at for the start of a pull. A stick is at its end within a few hundredths of a second, so the finger that followed it there had, for the game, begun where it ended. By a model of the game's rule (tools/tests/touch_game_model.h: read at 0xc04cc3, y = 1 - raw / 950, the catapult of 0x436fc0 wants more than 0.25 s and more than 0.4 of the pad) one fast pull in four failed at 60 frames a second and two in three at 30, which is what the reports of Issue #2 say and what the headset draws. - Input::MovedFinger: a finger that stays where it lands until the game has seen it there, goes no faster than a finger flicks and counts as arrived once it was seen at its end. - Input::StickFinger is built on it: the finger comes down behind the pad's middle, on the side the stick comes from, and is dragged to where the stick points. - Input::PadGestures: what the game asks of the pad, done by buttons it has no use for in play (it only asks about them in a few menus, and is still told of them): the pad pressed while a button is held, a swipe forward for each press of another, a pull back that is held and let go with a third. On the headset's own controllers the trigger and the grip of the hand that holds the controller in the game and the other hand's trigger; on a gamepad without a touchpad R2, R1 and L2. In the Quest app's router, the PC host's code for the headset's controllers and the PC's gamepads. - The Quest app shows a card over the game that names those buttons, when the game starts and whenever OPTIONS is pressed (the game's pause). - SHADPS4_PAD_TOUCH_TRACE=1 has the log say what the game was given of the touchpad at each of its reads; input scripts can press the gesture buttons (gesture=press|swipe|pull); the Quest app's dry start pulls the right stick and presses R1. Tried: the tests (stick_finger_test and pad_gestures_test against the model at 26 to 60 frames a second, pad_router_test); with the trace, in the game on the PC (62 reads a second) and on a Quest 3 without wearing it (48 in its sandbox, 36 through the whole app): a pull is given as 0.74 to 0.76 of the pad over 0.34 s and more, a swipe as 0.67 over a dozen reads, a press for as long as it is held. Not tried: the catapult itself going off (a script did not get through the level to it), and all of it worn. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>