http://bugs.winehq.org/show_bug.cgi?id=35224
Bug ID: 35224 Summary: wbemprox needs to support USB device enumeration with VID/PID support Product: Wine Version: 1.7.8 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: blocker Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: laguest@archeia.com Classification: Unclassified
Created attachment 46981 --> http://bugs.winehq.org/attachment.cgi?id=46981 Last log running RS 2014.
I believe that Rocksmith detects the USB cable with wbemprox using code similar or same as http://msdn.microsoft.com/en-us/library/windows/desktop/ee417014%28v=vs.85%2...
http://bugs.winehq.org/show_bug.cgi?id=35224
Rosanne DiMesio dimesio@earthlink.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Severity|blocker |normal
--- Comment #1 from Rosanne DiMesio dimesio@earthlink.net --- Not a blocker. http://bugs.winehq.org/page.cgi?id=fields.html#importance
http://bugs.winehq.org/show_bug.cgi?id=35224
Luke A. Guest laguest@archeia.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Severity|normal |blocker
--- Comment #2 from Luke A. Guest laguest@archeia.com --- (In reply to comment #1)
Not a blocker. http://bugs.winehq.org/page.cgi?id=fields.html#importance
This bug tracker needs another importance level really if blocker only applies to wine itself, "app blocker" would be enough.
http://bugs.winehq.org/show_bug.cgi?id=35224
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Severity|blocker |normal
http://bugs.winehq.org/show_bug.cgi?id=35224
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW CC| |focht@gmx.net Component|-unknown |wmi&wbemprox Summary|wbemprox needs to support |Rocksmith 2014 fails to |USB device enumeration with |detect USB Rocksmith Real |VID/PID support |Tone cable (needs | |Win32_PnPEntity WMI class) Ever confirmed|0 |1
--- Comment #3 from Anastasius Focht focht@gmx.net --- Hello folks,
refining summary. Generic bug titles are not useful.
--- quote --- This bug tracker needs another importance level really if blocker only applies to wine itself, "app blocker" would be enough. --- quote ---
What part of "normal - For an application crash or loss of functionality" is unclear?
Technically 99% of the bugs are 'blockers'. There is no need to reword/introduce another severity/importance combination - 'normal' fits perfectly here.
If you introduce 'app blocker' you can practically remove all other severity levels. People are selfish and would always select 'blocker', thinking their own bug/app is most important, needing immediate attention/action.
Regards
http://bugs.winehq.org/show_bug.cgi?id=35224
--- Comment #4 from Anastasius Focht focht@gmx.net --- Hello Luke,
I've seen your post to wine-devel (I'm not subscribed but watch it).
Implementing 'Win32_PnPEntity' WMI class alone doesn't solve your problem. It's just another representation of information that is typically managed by the Windows Plug and Play (PnP) manager.
The information is maintained in registry:
HKLM\System\CurrentControlSet\Enum<enumerator><deviceID><instanceID>
To give you an overview how this information is created on Windows:
http://msdn.microsoft.com/en-us/library/windows/hardware/ff540535%28v=vs.85%... ("Adding a PnP Device to a Running System")
Implementing PNP manager and other needed infrastructure is obviously out of scope for now.
If you fake the registry data manually you need a proper way to retrieve it. This is typically done using setupapi's SetupDiXXX API.
There are many articles, blog posts etc. how to use that API.
Wine source for reference: http://source.winehq.org/git/wine.git/blob/HEAD:/dlls/setupapi/devinst.c
Regards
http://bugs.winehq.org/show_bug.cgi?id=35224
--- Comment #5 from Luke A. Guest laguest@archeia.com --- Thanks for the heads up. So, I must add the necessary registry keys at least?
Also, according to the wine USB doc page, it says to copy over the usb driver as well, is that necessary? It's a standard USB audio device (microphone).
Thanks, Luke.
http://bugs.winehq.org/show_bug.cgi?id=35224
--- Comment #6 from Anastasius Focht focht@gmx.net --- Hello Luke
--- quote --- I must add the necessary registry keys at least? --- quote ---
yes, they should be manually created in absence of PnP manager component. You don't need all the keys like on Windows.
--- quote --- Also, according to the wine USB doc page, it says to copy over the usb driver as well, is that necessary? It's a standard USB audio device (microphone). --- quote ---
The USB audio device driver (WDM?) can't work with Wine hence any .inf based installation would be pointless.
Hopefully the WMI query is just used to detect the presence of the device. You need to ensure that this 'thing' is properly working within Linux, e.g. some ALSA sound card it represents on the USB client side.
Regards
http://bugs.winehq.org/show_bug.cgi?id=35224
--- Comment #7 from Luke A. Guest laguest@archeia.com --- Here is the data from the registry, yet there is more under the VID_13BA&PID_00FF key as well, don't know why.
I don't know which keys I will need to replicate in wine.
Thanks, Luke.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_12BA&PID_00FF
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_12BA&PID_00FF\6&317ac08f&0&5 Capabilities: 0x84 ClassGUID: {36fc9e60-c465-11cf-8056-444553540000} CompatibleIDs: USB\DevClass_00&SubClass_00&Prot_00 USB\DevClass_00&SubClass_00 USB\DevClass_00 USB\COMPOSITE ConfigFlags: 0 ContainerID: {92974dec-6f2b-11e3-afbc-001d606d80b6} DeviceDesc: @usb.inf,%usb\composite.devicedesc%;USB Composite Device Driver: {36fc9e60-c465-11cf-8056-444553540000}\0020 HardwareID: USB\VID_12BA&PID_00FF&REV_0100 USB\VID_12BA&PID_00FF LocationInformation: Port_#0005.Hub_#0008 Mfg: @usb.inf,%generic.mfg%;(Standard USB Host Controller) ParentIdPrefix: 7&2140872f&1 Service: usbccgp
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_12BA&PID_00FF\6&317ac08f&0&5\Device Parameters SymbolicName: ??\USB#VID_12BA&PID_00FF#6&317ac08f&0&5#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_12BA&PID_00FF\6&317ac08f&0&5\Device Parameters\Ceip DeviceInformation: 0
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_12BA&PID_00FF\6&317ac08f&0&7 Capabilities: 0x84 ClassGUID: {36fc9e60-c465-11cf-8056-444553540000} CompatibleIDs: USB\DevClass_00&SubClass_00&Prot_00 USB\DevClass_00&SubClass_00 USB\DevClass_00 USB\COMPOSITE ConfigFlags: 0 ContainerID: {6365c7ce-8e67-11e2-af9b-806e6f6e6963} DeviceDesc: @usb.inf,%usb\composite.devicedesc%;USB Composite Device Driver: {36fc9e60-c465-11cf-8056-444553540000}\0010 HardwareID: USB\VID_12BA&PID_00FF&REV_0100 USB\VID_12BA&PID_00FF LocationInformation: Port_#0007.Hub_#0008 Mfg: @usb.inf,%generic.mfg%;(Standard USB Host Controller) ParentIdPrefix: 7&67bb972&0 Service: usbccgp
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_12BA&PID_00FF\6&317ac08f&0&7\Device Parameters SymbolicName: ??\USB#VID_12BA&PID_00FF#6&317ac08f&0&7#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_12BA&PID_00FF\6&317ac08f&0&7\Device Parameters\Ceip DeviceInformation: 0 TroubleshooterRootCauseId: 0
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_12BA&PID_00FF\6&39163c11&0&5 Capabilities: 0x84 ClassGUID: {36fc9e60-c465-11cf-8056-444553540000} CompatibleIDs: USB\DevClass_00&SubClass_00&Prot_00 USB\DevClass_00&SubClass_00 USB\DevClass_00 USB\COMPOSITE ConfigFlags: 0 ContainerID: {803f6f36-6977-11e3-afb8-001d606d80b6} DeviceDesc: @usb.inf,%usb\composite.devicedesc%;USB Composite Device Driver: {36fc9e60-c465-11cf-8056-444553540000}\0023 HardwareID: USB\VID_12BA&PID_00FF&REV_0100 USB\VID_12BA&PID_00FF LocationInformation: Port_#0005.Hub_#0008 Mfg: @usb.inf,%generic.mfg%;(Standard USB Host Controller) ParentIdPrefix: 7&17160600&0 Service: usbccgp
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_12BA&PID_00FF\6&39163c11&0&5\Device Parameters SymbolicName: ??\USB#VID_12BA&PID_00FF#6&39163c11&0&5#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_12BA&PID_00FF\6&39163c11&0&5\Device Parameters\Ceip DeviceInformation: 0 TroubleshooterRootCauseId: 0
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_12BA&PID_00FF&MI_00
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_12BA&PID_00FF&MI_00\7&17160600&0&0000 Capabilities: 0xa ClassGUID: {4d36e96c-e325-11ce-bfc1-08002be10318} CompatibleIDs: USB\Class_01&SubClass_01&Prot_00 USB\Class_01&SubClass_01 USB\Class_01 ConfigFlags: 0 ContainerID: {803f6f36-6977-11e3-afb8-001d606d80b6} DeviceDesc: @wdma_usb.inf,%usb\class_01.devicedesc%;USB Audio Device Driver: {4d36e96c-e325-11ce-bfc1-08002be10318}\0013 FriendlyName: Rocksmith USB Guitar Adapter HardwareID: USB\VID_12BA&PID_00FF&REV_0100&MI_00 USB\VID_12BA&PID_00FF&MI_00 LocationInformation: 0000.001a.0000.002.005.000.000.000.000 Mfg: @wdma_usb.inf,%mfgname%;(Generic USB Audio) Service: usbaudio
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_12BA&PID_00FF&MI_00\7&17160600&0&0000\Device Parameters ExtPropDescSemaphore: 1
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_12BA&PID_00FF&MI_00\7&17160600&0&0000\Device Parameters\e5b3b5ac-9725-4f78-963f-03dfb1d828c7
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_12BA&PID_00FF&MI_00\7&2140872f&1&0000 Capabilities: 0xa ClassGUID: {4d36e96c-e325-11ce-bfc1-08002be10318} CompatibleIDs: USB\Class_01&SubClass_01&Prot_00 USB\Class_01&SubClass_01 USB\Class_01 ConfigFlags: 0 ContainerID: {92974dec-6f2b-11e3-afbc-001d606d80b6} DeviceDesc: @wdma_usb.inf,%usb\class_01.devicedesc%;USB Audio Device Driver: {4d36e96c-e325-11ce-bfc1-08002be10318}\0011 FriendlyName: Rocksmith USB Guitar Adapter HardwareID: USB\VID_12BA&PID_00FF&REV_0100&MI_00 USB\VID_12BA&PID_00FF&MI_00 LocationInformation: 0000.001a.0007.002.005.000.000.000.000 Mfg: @wdma_usb.inf,%mfgname%;(Generic USB Audio) Service: usbaudio
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_12BA&PID_00FF&MI_00\7&2140872f&1&0000\Device Parameters ExtPropDescSemaphore: 1
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_12BA&PID_00FF&MI_00\7&2140872f&1&0000\Device Parameters\e5b3b5ac-9725-4f78-963f-03dfb1d828c7
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_12BA&PID_00FF&MI_00\7&67bb972&0&0000 Capabilities: 0xa ClassGUID: {4d36e96c-e325-11ce-bfc1-08002be10318} CompatibleIDs: USB\Class_01&SubClass_01&Prot_00 USB\Class_01&SubClass_01 USB\Class_01 ConfigFlags: 0 ContainerID: {6365c7ce-8e67-11e2-af9b-806e6f6e6963} DeviceDesc: @wdma_usb.inf,%usb\class_01.devicedesc%;USB Audio Device Driver: {4d36e96c-e325-11ce-bfc1-08002be10318}\0000 FriendlyName: Rocksmith USB Guitar Adapter HardwareID: USB\VID_12BA&PID_00FF&REV_0100&MI_00 USB\VID_12BA&PID_00FF&MI_00 LocationInformation: 0000.001a.0007.002.007.000.000.000.000 Mfg: @wdma_usb.inf,%mfgname%;(Generic USB Audio) Service: usbaudio
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_12BA&PID_00FF&MI_00\7&67bb972&0&0000\Device Parameters ExtPropDescSemaphore: 1
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_12BA&PID_00FF&MI_00\7&67bb972&0&0000\Device Parameters\e5b3b5ac-9725-4f78-963f-03dfb1d828c7
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_12BA&PID_00FF&MI_02
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_12BA&PID_00FF&MI_02\7&17160600&0&0002 Capabilities: 0x80 ClassGUID: {745a17a0-74d3-11d0-b6fe-00a0c90f57da} CompatibleIDs: USB\Class_03&SubClass_00&Prot_00 USB\Class_03&SubClass_00 USB\Class_03 ConfigFlags: 0 ContainerID: {803f6f36-6977-11e3-afb8-001d606d80b6} DeviceDesc: @input.inf,%hid.devicedesc%;USB Input Device Driver: {745a17a0-74d3-11d0-b6fe-00a0c90f57da}\0015 HardwareID: USB\VID_12BA&PID_00FF&REV_0100&MI_02 USB\VID_12BA&PID_00FF&MI_02 LocationInformation: 0000.001a.0000.002.005.000.000.000.000 Mfg: @input.inf,%stdmfg%;(Standard system devices) ParentIdPrefix: 8&19a58bc1&0 Service: HidUsb
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_12BA&PID_00FF&MI_02\7&17160600&0&0002\Device Parameters AllowIdleIrpInD3: 1 EnhancedPowerManagementEnabled: 1 ExtPropDescSemaphore: 1 SelectiveSuspendEnabled: 0
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_12BA&PID_00FF&MI_02\7&17160600&0&0002\Device Parameters\e5b3b5ac-9725-4f78-963f-03dfb1d828c7
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_12BA&PID_00FF&MI_02\7&2140872f&1&0002 Capabilities: 0x80 ClassGUID: {745a17a0-74d3-11d0-b6fe-00a0c90f57da} CompatibleIDs: USB\Class_03&SubClass_00&Prot_00 USB\Class_03&SubClass_00 USB\Class_03 ConfigFlags: 0 ContainerID: {92974dec-6f2b-11e3-afbc-001d606d80b6} DeviceDesc: @input.inf,%hid.devicedesc%;USB Input Device Driver: {745a17a0-74d3-11d0-b6fe-00a0c90f57da}\0011 HardwareID: USB\VID_12BA&PID_00FF&REV_0100&MI_02 USB\VID_12BA&PID_00FF&MI_02 LocationInformation: 0000.001a.0007.002.005.000.000.000.000 Mfg: @input.inf,%stdmfg%;(Standard system devices) ParentIdPrefix: 8&28956c34&0 Service: HidUsb
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_12BA&PID_00FF&MI_02\7&2140872f&1&0002\Device Parameters AllowIdleIrpInD3: 1 EnhancedPowerManagementEnabled: 1 ExtPropDescSemaphore: 1 SelectiveSuspendEnabled: 0
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_12BA&PID_00FF&MI_02\7&2140872f&1&0002\Device Parameters\e5b3b5ac-9725-4f78-963f-03dfb1d828c7
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_12BA&PID_00FF&MI_02\7&67bb972&0&0002 Capabilities: 0x80 ClassGUID: {745a17a0-74d3-11d0-b6fe-00a0c90f57da} CompatibleIDs: USB\Class_03&SubClass_00&Prot_00 USB\Class_03&SubClass_00 USB\Class_03 ConfigFlags: 0x20 ContainerID: {6365c7ce-8e67-11e2-af9b-806e6f6e6963} DeviceDesc: @input.inf,%hid.devicedesc%;USB Input Device Driver: {745a17a0-74d3-11d0-b6fe-00a0c90f57da}\0000 HardwareID: USB\VID_12BA&PID_00FF&REV_0100&MI_02 USB\VID_12BA&PID_00FF&MI_02 InstallFlags: 0x5 LocationInformation: 0000.001a.0007.002.007.000.000.000.000 Mfg: @input.inf,%stdmfg%;(Standard system devices) ParentIdPrefix: 8&2ca02e47&0 Service: HidUsb
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_12BA&PID_00FF&MI_02\7&67bb972&0&0002\Device Parameters AllowIdleIrpInD3: 1 EnhancedPowerManagementEnabled: 1 ExtPropDescSemaphore: 1 SelectiveSuspendEnabled: 0
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_12BA&PID_00FF&MI_02\7&67bb972&0&0002\Device Parameters\e5b3b5ac-9725-4f78-963f-03dfb1d828c7
http://bugs.winehq.org/show_bug.cgi?id=35224
--- Comment #8 from Luke A. Guest laguest@archeia.com --- (In reply to comment #7)
Here is the data from the registry, yet there is more under the VID_13BA&PID_00FF key as well, don't know why.
I don't know which keys I will need to replicate in wine.
I will say that I think that there is replication because Windows is just shit at removing devices that can be hot plugged.
http://bugs.winehq.org/show_bug.cgi?id=35224
Luke A. Guest laguest@archeia.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|wmi&wbemprox |-unknown Severity|normal |blocker
--- Comment #9 from Luke A. Guest laguest@archeia.com --- Also, there were some keys at PID_13BA&VID_00FF that were also related to the game/cable.
http://bugs.winehq.org/show_bug.cgi?id=35224
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |wmi&wbemprox Severity|blocker |normal
--- Comment #10 from Anastasius Focht focht@gmx.net --- Hello Luke,
please don't change Bugzilla fields.
Next time _attach_ the registry data as text file if you feel the need to provide them to this bug.
There is also wine-devel mailing list for answering questions related to adding new WMI classes. Alternatively - use the fo^H^Hsource, Luke. I think enough hints have been given.
Regards
http://bugs.winehq.org/show_bug.cgi?id=35224
w088ble rasmus.ry@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |rasmus.ry@gmail.com
--- Comment #11 from w088ble rasmus.ry@gmail.com --- Have you considered hooking/logging the SetupDi* api on the windows side? And then running the game. It would seem, at least as far as the device recognition is concerned, that you would want WINE to be able to replay this conversation.
I'm not familiar with the API but I'll try and see if I can find a suitable hooking framework.
http://bugs.winehq.org/show_bug.cgi?id=35224
--- Comment #12 from Luke A. Guest laguest@archeia.com --- Any ideas how to do this? I'd do it if I knew how. The only way I can think of is to provide a new version of the DLL that has every entrypoint mapped to a log and then calls the original.
http://bugs.winehq.org/show_bug.cgi?id=35224
--- Comment #13 from Luke A. Guest laguest@archeia.com --- Created attachment 47793 --> http://bugs.winehq.org/attachment.cgi?id=47793 An attempt to add Win32_PNPEntity
Does not work, don't know why, needs someone with more of a clue about this stuff than myself.
http://bugs.winehq.org/show_bug.cgi?id=35224
--- Comment #14 from Luke A. Guest laguest@archeia.com --- Comment on attachment 47793 --> http://bugs.winehq.org/attachment.cgi?id=47793 An attempt to add Win32_PNPEntity
Patch against git master
http://bugs.winehq.org/show_bug.cgi?id=35224
Cole Johnson coleharrisjohnson@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |coleharrisjohnson@gmail.com
--- Comment #15 from Cole Johnson coleharrisjohnson@gmail.com --- Still broken in 1.7.15
http://bugs.winehq.org/show_bug.cgi?id=35224
Ken Sharp imwellcushtymelike@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #47793|1 |0 is patch| | Attachment #47793|text/plain |application/gzip mime type| |
http://bugs.winehq.org/show_bug.cgi?id=35224
hellas@burntcomma.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |hellas@burntcomma.com
--- Comment #16 from hellas@burntcomma.com --- Created attachment 48444 --> http://bugs.winehq.org/attachment.cgi?id=48444 registry file to work around bug
Having looked into this, I don't think this bug actually has anything to do with Setupapi. It looks like Rocksmith gets the properties for each capture device, checks that it's a microphone, and then checks the USB ID numbers against those of the Realtone cable (12ba:00ff). With the attached registry file, both RS and RS2014 at least detect the cable correctly. {FAC4EC4C-C928-48E1-8A14-4A3CC3017F3D} is the GUID for Pulseaudio's capture device; you'll have to change this to something else if you're using ALSA.
The original Rocksmith ran for me with ALSA with this applied, though the input was too distorted to be usable. YMMV. It worked perfectly for me under Pulse - better than Windows, in fact - though I had to comment a few lines out of dlls/winepulse.drv/mmdevdrv.c first, to work around its lack of exclusivity mode. RS2014 also worked for me under Pulse, but crashes after a minute or so, perhaps for some other reason.
http://bugs.winehq.org/show_bug.cgi?id=35224
--- Comment #17 from hellas@burntcomma.com --- It turns out the RS2014 crashes were due to the CSMT patches I had installed; without them, it's working nicely. A couple of graphics crashes every so often, but nothing due to audio.
http://bugs.winehq.org/show_bug.cgi?id=35224
--- Comment #18 from hellas@burntcomma.com --- Sorry, the GUID in the reg file isn't the Pulse one - that's {25DA76D0-033C-4235-9002-19F48894AC6F}. You'll have to change it any event.
http://bugs.winehq.org/show_bug.cgi?id=35224
--- Comment #19 from Luke A. Guest laguest@archeia.com --- A bit of progress, thanks hellas.
By adding the following registry entries to HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\MMDevices\Audio\Capture{21C427CC-8370-4DB9-91C6-045C5BDCD062}\Properties
{B3F8FA53-0004-438E-9003-51A46E139BFC},2 = {1}.USB\VID_12BA&PID_00FF&MI_00\7&2443AC09&0&0000 {1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},8 = {DFF21BE1-F70F-11D0-B917-00A0C9223196} {1da5d803-d492-4edd-8c23-e0c0ffee7f0e},0 = DWORD:4
I managed to get an audio log of:
00000000: : INIT ExclusiveMode 1 00000000: : INIT LatencyBuffer 4 00000000: : INIT ForceWDM 0 00000000: : INIT ForceDirectXSink 0 00000060: : WASAPI::OpenStream(output): framesPerUser[ 128 ] framesPerHost[ 1440 ] latency[ 30.00ms ] exclusive[ NO ] wow64_fix[ NO ] mode[ POLL ] 00000060: : pSinkPortAudio->Init() == AK_Success00000061: : AkCreateThread EventMgrThread 0x1b8 ID = 15353920 00000061: : ************* NSoundInputMgr_Win32::SETUP mUsePortAudio 1 mUseNWin32 0 mUseWaveIn 0 mForceDirectXSink 0 mForceWDM 0 00026811: : ************* NSoundInputMgr_Win32::DetectInputDevices_PortAudio WASAPI Id 0 API 0 : In: Rocksmith USB Guitar Adapter - USB Audio[ff 12ba] 00026811: : ** NSoundInputMgr_Win32::DetectInputDevices_PortAudio Id 0 API 0 : In: Rocksmith USB Guitar Adapter - USB Audio[ff 12ba] 00026811: : ************* NSoundInputMgr_Win32::DetectInputDevices_PortAudio WASAPI Id 1 API 0 : In: HDA ATI SB - ALC892 Analog[0 0] 00026811: : ************* NSoundInputMgr_Win32::DetectInputDevices_PortAudio WASAPI Id 2 API 0 : In: HDA ATI SB - ALC892 Alt Analog[0 0] 00026811: : ************* NSoundInputMgr_Win32::DetectInputDevices_PortAudio WASAPI Id 3 API 0 : In: default[0 0] 00026811: : ************* NSoundInputMgr_Win32::DetectInputDevices_PortAudio FOUND! 0 : In: Rocksmith USB Guitar Adapter - USB Audio[{0.0.1.00000000}.{21C427CC-8370-4DB9-91C6-045C5BDCD062}] 00026813: : **!!!! NSoundInputMgr_Win32::DetectInputDevices_PortAudio Id 0 API 0 : In: Rocksmith USB Guitar Adapter - USB Audio FAILED TO TURN ON INPUT FOR DEVICE 00026813: : ************* NSoundInputMgr_Win32::DetectInputDevices_PortAudio WASAPI Id 3 API 0 : In: default[0 0] 00026813: : ** NSoundInputMgr_Win32::DetectInputDevices_PortAudio Id 3 API 0 : In: default[0 0] 00026813: : ************* NSoundInputMgr_Win32::DetectInputDevices_PortAudio FOUND! 0 : In: default[{0.0.1.00000000}.{BF732D33-9717-4133-945B-18BB2F37CAAF}] 00026815: : **!!!! NSoundInputMgr_Win32::DetectInputDevices_PortAudio Id 3 API 0 : In: default FAILED TO TURN ON INPUT FOR DEVICE
http://bugs.winehq.org/show_bug.cgi?id=35224
--- Comment #20 from Luke A. Guest laguest@archeia.com --- Created attachment 48560 --> http://bugs.winehq.org/attachment.cgi?id=48560 Explanation of the registry entries
Some information gained about the various registry entries from hellas' log.
http://bugs.winehq.org/show_bug.cgi?id=35224
--- Comment #21 from Luke A. Guest laguest@archeia.com --- Also, the above was managed with ALSA, had to kill pulseaudio. If there is a way to enumerate the devices in pulseaudio, then that would be good to know.
http://bugs.winehq.org/show_bug.cgi?id=35224
--- Comment #22 from Luke A. Guest laguest@archeia.com --- Created attachment 48562 --> http://bugs.winehq.org/attachment.cgi?id=48562 Last run
Added these two registry entries as well
{A45C254E-DF1C-4EFD-8020-67D146A850E0},24 = USB {1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},7 = 1
But they don't get me any further.
It seems that the log shows that that the AudioClient is trying to initialise the device exclusively and then it releases it.
http://bugs.winehq.org/show_bug.cgi?id=35224
--- Comment #23 from Luke A. Guest laguest@archeia.com --- So, it looks like the code is getting to here in winealsa.drv/mmdevdrv.c (AudioClient_Initialize):
FIXME("EXCLUSIVE mode with EVENTCALLBACK\n"); return AUDCLNT_E_DEVICE_IN_USE;
http://bugs.winehq.org/show_bug.cgi?id=35224
Adam Bolte abolte@systemsaviour.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |abolte@systemsaviour.com
http://bugs.winehq.org/show_bug.cgi?id=35224
--- Comment #24 from Luke A. Guest laguest@archeia.com --- In the Rocksmith.ini change:
ExclusiveMode=0 Win32UltraLowLatencyMode=0
The second line forces the game not to use defaults, so you can set it to shared mode, as exclusive mode will not work with a callback.
It initialised the device at this point, but still thinks the cable is disconnected when you go to the tuner.
http://bugs.winehq.org/show_bug.cgi?id=35224
Luke A. Guest laguest@archeia.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |INVALID
--- Comment #25 from Luke A. Guest laguest@archeia.com --- This is not what is stopping the cable being detected.
http://bugs.winehq.org/show_bug.cgi?id=35224
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #26 from Austin English austinenglish@gmail.com --- Closing.
https://bugs.winehq.org/show_bug.cgi?id=35224
--- Comment #27 from Adam Bolte abolte@systemsaviour.com --- RockSmith 2014 still does not detect the cable in 1.7.33. Should I open a new bug report? I'm not 100% clear on why this was closed in the first place.
Some clarification for non-developers please Hellas: what were the lines that needed commenting in dlls/winepulse.drv/mmdevdrv.c? Are they still required with Luke's suggested Rocksmith.ini changes? I would be happy to add this information to the appdb page if it can be provided. I know a lot of people are waiting on this to work, and it seems so close.
As I understand the situation, hellas is saying an implementation of Win32_PnPEntity isn't required for RockSmith to run, only some registry keys under [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\MMDevices\Audio\Capture{something}. I've tried importing the registry file provided (changing {FAC4EC4C-C928-48E1-8A14-4A3CC3017F3D} to the value automatically created), using both PulseAudio and ALSA, both times without the cable being detected.
Also of note, the entry: "{B3F8FA53-0004-438E-9003-51A46E139BFC},2"="{1}.USB\VID_12BA&PID_00FF&MI_00\7&2443AC09&0&0000" is always replaced by "{B3F8FA53-0004-438E-9003-51A46E139BFC},2"="{1}.USB\VID_12BA&PID_00FF\0&0C08962B" each time RockSmith 2014 is loaded.
I've compiled with Luke's Win32_PNPEntity patch as well just in case it helped the situation (as I see that is not upstream). It did not help.
So in short, I would appreciate documenting the exact steps required to get this working (a documented work-around that I can post to appdb), and at least one bug report open to identify this as an issue while it remains an issue. Thanks.
https://bugs.winehq.org/show_bug.cgi?id=35224
--- Comment #28 from hellas@burntcomma.com --- With the latest version of Wine, you shouldn't need to edit any of the source files or edit anything in the registry - it'll overwrite those values anyway.
You do still need to edit Rocksmith.ini though - by default the game tries to open a kernel handle to speak to the microphone directly, which Wine doesn't support. The only change you should have to make is Win32UltraLowLatencyMode=0. I think you might also have to change your Windows version in winecfg to Windows 7 - it has Vista listed as a minimum, and I seem to recall it doesn't like running in the default XP mode.
You can find/open a bug for WDM/KS support if you like, but I don't think it's worth it. I've never found anything that relies on it solely, and its only advantage on Windows is low latency - whereas Wine's latency using mmdevapi is lower than that anyway.
https://bugs.winehq.org/show_bug.cgi?id=35224
--- Comment #29 from Adam Bolte abolte@systemsaviour.com --- Ahh... Looks like I was wasting time on things that wouldn't have any impact, so appreciate you sending me on the correct path.
All working for me now (although latency is worse for me than Windows). I have also submitted an appdb entry with your tips and my findings. Thanks again.
https://bugs.winehq.org/show_bug.cgi?id=35224
--- Comment #30 from hellas@burntcomma.com --- No problem, glad I could help. Both games ought to be rated Gold now, I think. Feel free to e-mail me if you've got any other issues with them.
https://bugs.winehq.org/show_bug.cgi?id=35224
hamakei web@pacifist.co.uk changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |web@pacifist.co.uk
--- Comment #31 from hamakei web@pacifist.co.uk --- This bug still exists for me. I'm running Wine 2.15, have set Win32UltraLowLatencyMode=0 and am running the game in "Windows 7" mode. But it still says the cable isn't plugged in.
Using Pulseaudio, the cable is correctly detected as a mono microphone input and I can record from it using Audacity, and the USB device appears as:
Bus 006 Device 007: ID 12ba:00ff Licensed by Sony Computer Entertainment America Rocksmith Guitar Adapter