[Bug 59891] New: Elgato Stream Deck 7.4.2 does not work under Wine (app fails to start, device does not render)
http://bugs.winehq.org/show_bug.cgi?id=59891 Bug ID: 59891 Summary: Elgato Stream Deck 7.4.2 does not work under Wine (app fails to start, device does not render) Product: Wine Version: 11.11 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@list.winehq.org Reporter: portal.thomas@gmail.com Distribution: --- The Elgato Stream Deck desktop software (Stream_Deck_7.4.2.22730.msi) does not work under Wine. Making it run and drive a Stream Deck Mini (USB 0fd9:0063) takes several independent fixes across user32, dnsapi, winebus, and hidclass. This bug collects them. Steps to reproduce: 1. Install Stream_Deck_7.4.2.22730.msi. Under Wine the install silently rolls back: the WiX firewall custom action returns E_NOTIMPL (there is no Windows Firewall COM under Wine), which triggers a full MSI rollback that removes the payload. Workaround: set the prefix to Windows 10 (the MSI has a VersionNT >= Win10 launch condition) and pass DISABLEROLLBACK=1. The install symptom is also covered by bug 50849. 2. Launch StreamDeck.exe from a real desktop session. Without the fixes below the app aborts during startup, and once it runs it neither detects nor draws to the device. Sub-issues and status: 1. user32: IsImmersiveProcess is a stub that does not return a value. The app calls it during startup and aborts. Fix: a stub returning FALSE (there are no immersive processes under Wine), modelled on the existing IsWindowArranged stub. Submitted: https://gitlab.winehq.org/wine/wine/-/merge_requests/11199 2. dnsapi: DnsServiceConstructInstance and DnsServiceFreeInstance are unimplemented. The app calls them for service discovery and aborts. Fix: implement both (build and free a DNS_SERVICE_INSTANCE, no network), add the struct and prototypes to windns.h, and add a test. Submitted: https://gitlab.winehq.org/wine/wine/-/merge_requests/11200 The app also calls DnsServiceRegister and DnsServiceResolve, which are still unimplemented and need separate work. 3. winebus: synthesized USB-HID devices do not expose the standard USB\Class_03 compatible IDs (with subclass and protocol) that a real Windows USB-HID device has. The app walks from the HID device to its USB parent with CM_Get_Parent and validates those IDs, so it rejects the device and reports "no device found". A fix that adds the USB-class compatible IDs is in progress; it needs to be gated to the USB bus and take the subclass and protocol from the interface descriptor. 4. hidclass: WriteFile on a numbered HID output report returns one byte less than the application submitted, because the report ID byte is subtracted from the transfer length. The app advances its per-key image upload by the WriteFile count, so the upload never progresses and the keys stay blank. Fix: return the full report length, which matches Windows. Submitted: https://gitlab.winehq.org/wine/wine/-/merge_requests/11204 With all four applied the Stream Deck Mini is detected, controllable, and renders the correct image on every key. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59891 --- Comment #1 from Thomas Portal <portal.thomas@gmail.com> --- Update: the winebus fix (sub-issue 3) is now submitted as https://gitlab.winehq.org/wine/wine/-/merge_requests/11205 -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
participants (1)
-
WineHQ Bugzilla