mirror of
https://github.com/ddeverill/SteamlessController.git
synced 2026-10-18 20:59:45 -05:00
Two fixes to the hold, both found by forcing paths that do not occur on this machine. The liveness fallback never released. It asked whether the pid could be opened and read success as proof of life, but a pid stays valid for as long as anything holds a handle to the process object — and a launcher or an anti-cheat service generally does. Measured against Fortnite with the fallback forced: the game exited, the pid stayed openable, and the hold stood forever, leaving a PlayStation pad that never went back to Xbox. It now asks whether the process has exited rather than whether it can be opened. Both remaining ways to fool it — an exit code of 259, or pid reuse between two checks — leave a hold standing too long, which costs the deferred rebuild rather than causing a wrong one. The hold was also gated on the profile selection changing, having been written behind the early return that skips a foreground change selecting the profile already selected. But a hold follows a process and a selection follows a profile, and those do not change together: a loader handing off to the game it launched is the same profile wearing a new pid, so the selection does not change, the return fires, and the hold stays on the old process. When that one exits the pad rebuilds under a game that has only just started. Both liveness paths are now confirmed on hardware — Marathon and Fortnite by handle, Fortnite by pid with the fallback forced — holding across alt-tabs and releasing within the poll interval of the game closing. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
35 lines
458 B
Plaintext
35 lines
458 B
Plaintext
# Build output
|
|
build/
|
|
|
|
# Loose binaries committed by mistake
|
|
*.exe
|
|
*.dll
|
|
*.lib
|
|
*.pdb
|
|
|
|
# Claude Code local settings
|
|
.claude/
|
|
|
|
# Reverse engineering session data
|
|
Results/
|
|
HIDInfo
|
|
HIDReportDescriptor.rtf
|
|
|
|
# Claude Design files
|
|
ClaudeDesign/
|
|
|
|
# CMake user files
|
|
CMakeSettings.json
|
|
CMakeUserPresets.json
|
|
|
|
# Local-only debug tools (not for distribution)
|
|
src/probe/HapticTester.cpp
|
|
|
|
# Visual Studio
|
|
.vs/
|
|
*.user
|
|
*.suo
|
|
|
|
# Built installers and packaged output
|
|
Output/
|