Got it working! ;)
Requirement: Rocksmith no-real-tone-cable "patch" http://adf.ly/QBPpk
Source: http://www.alessandrogonella.com/2013/02/how-to-play-rocksmith-without-the-real-tone-cable/
Application Details:
Version: | 1.1 |
License: | Shareware |
URL: | http://rocksmith.ubi.com/ |
Votes: | 0 |
Latest Rating: | Gold |
Latest Wine Version Tested: | 1.9.5 |
Maintainers: About Maintainership
What works
Game runs pretty smoothly, graphics and audio are fine.
What does not
Realtone cable detection
Workarounds
What was not tested
Everything after the login and game startup.
Hardware tested
Graphics:
Additional Comments
Partial audio dump from windows 8 (my current install is crashing and is why it's partial): 00000000: : INIT ExclusiveMode 1 00000000: : INIT LatencyBuffer 4 00000000: : INIT ForceWDM 0 00000000: : INIT ForceDirectXSink 0 00000047: : WASAPI::OpenStream(output): framesPerUser[ 128 ] framesPerHost[ 144 ] latency[ 3.00ms ] exclusive[ YES ] wow64_fix[ NO ] mode[ EVENT ] 00000047: : pSinkPortAudio->Init() == AK_Success00000047: : AkCreateThread EventMgrThread 0x264 ID = 15412784 00000047: : ************* NSoundInputMgr_Win32::SETUP mUsePortAudio 1 mUseNWin32 0 mUseWaveIn 0 mForceDirectXSink 0 mForceWDM 0 00026424: : ************* NSoundInputMgr_Win32::DetectInputDevices_PortAudio WASAPI Id 3 API 0 : Microphone (High Definition Audio Device)[0 0] 00026424: : ************* NSoundInputMgr_Win32::DetectInputDevices_PortAudio WASAPI Id 4 API 0 : Microphone (High Definition Audio Device)[0 0] 00026424: : ************* NSoundInputMgr_Win32::DetectInputDevices_PortAudio WASAPI Id 5 API 0 : Line In (High Definition Audio Device)[0 0] 00026424: : ************* NSoundInputMgr_Win32::DetectInputDevices_PortAudio WASAPI Id 6 API 0 : Microphone (Rocksmith USB Guitar Adapter)[ff 12ba] 00026424: : ** NSoundInputMgr_Win32::DetectInputDevices_PortAudio Id 6 API 0 : Microphone (Rocksmith USB Guitar Adapter)[ff 12ba] 00026424: : ************* NSoundInputMgr_Win32::DetectInputDevices_PortAudio WASAPI Id 7 API 0 : Line In (High Definition Audio Device)[0 0] 00026424: : ************* NSoundInputMgr_Win32::DetectInputDevices_PortAudio FOUND! 0 : Microphone (Rocksmith USB Guitar Adapter)[{0.0.1.00000000}.{c04e4d81-2847-410d-924e-edc1d6c6b116}] 00026434: : WASAPI::OpenStream(input): framesPerUser[ 128 ] framesPerHost[ 192 ] latency[ 4.00ms ] exclusive[ YES ] wow64_fix[ NO ] mode[ EVENT ] 00026441: : ** NSoundInputMgr_Win32::DetectInputDevices_PortAudio Id 6 API 0 : Microphone (Rocksmith USB Guitar Adapter) INPUT ON Slot 0 00026441: : ************* NSoundInputMgr_Win32::DetectInputDevices_PortAudio WASAPI Id 3 API 0 : Microphone (High Definition Audio Device)[0 0] 00026441: : ************* NSoundInputMgr_Win32::DetectInputDevices_PortAudio WASAPI Id 4 API 0 : Microphone (High Definition Audio Device)[0 0] 00026441: : ************* NSoundInputMgr_Win32::DetectInputDevices_PortAudio WASAPI Id 5 API 0 : Line In (High Definition Audio Device)[0 0] 00026441: : ************* NSoundInputMgr_Win32::DetectInputDevices_PortAudio WASAPI Id 6 API 0 : Microphone (Rocksmith USB Guitar Adapter)[ff 12ba] 00026441: : ** NSoundInputMgr_Win32::DetectInputDevices_PortAudio Id 6 API 0 : Microphone (Rocksmith USB Guitar Adapter)[ff 12ba] 00026441: : ************* NSoundInputMgr_Win32::DetectInputDevices_PortAudio WASAPI Id 7 API 0 : Line In (High Definition Audio Device)[0 0] 00026441: : ************* NSoundInputMgr_Win32::DetectInputDevices_PortAudio WASAPI Id 6 API 0 : Microphone (Rocksmith USB Guitar Adapter)[ff 12ba] Output from lsusb -v |grep Rock: us 001 Device 003: ID 12ba:00ff Licensed by Sony Computer Entertainment America Rocksmith Guitar Adapter idProduct 0x00ff Rocksmith Guitar Adapter My audiodump from wine: 00000000: : INIT ExclusiveMode 1 00000000: : INIT LatencyBuffer 4 00000000: : INIT ForceWDM 0 00000000: : INIT ForceDirectXSink 0 00000121: : WASAPI::OpenStream(output): framesPerUser[ 128 ] framesPerHost[ 1440 ] latency[ 30.00ms ] exclusive[ NO ] wow64_fix[ NO ] mode[ POLL ] 00000121: : pSinkPortAudio->Init() == AK_Success00000121: : AkCreateThread EventMgrThread 0x1b4 ID = 15412784 00000121: : ************* NSoundInputMgr_Win32::SETUP mUsePortAudio 1 mUseNWin32 0 mUseWaveIn 0 mForceDirectXSink 0 mForceWDM 0 00027061: : ************* NSoundInputMgr_Win32::DetectInputDevices_PortAudio WASAPI Id 0 API 0 : In: Rocksmith USB Guitar Adapter - USB Audio[0 0] 00027061: : ************* NSoundInputMgr_Win32::DetectInputDevices_PortAudio WASAPI Id 1 API 0 : In: HDA Intel - AD198x Digital[0 0] 00027062: : ************* NSoundInputMgr_Win32::DetectInputDevices_PortAudio WASAPI Id 2 API 0 : In: default[0 0] 00027062: : ************* NSoundInputMgr_Win32::DetectInputDevices_PortAudio WASAPI Id 3 API 0 : In: HDA Intel - AD198x Analog[0 0] 00069914: : AK::ReleaseAudioSink WMFocusCallback00073744: : AK::RestoreAudioSink WMFocusCallback00073805: : WASAPI::OpenStream(output): framesPerUser[ 128 ] framesPerHost[ 1440 ] latency[ 30.00ms ] exclusive[ NO ] wow64_fix[ NO ] mode[ POLL ] 00073805: : pSinkPortAudio->Init() == AK_Success00077635: : AK::ReleaseAudioSink WMFocusCallback00078313: : AK::RestoreAudioSink WMFocusCallback00078391: : WASAPI::OpenStream(output): framesPerUser[ 128 ] framesPerHost[ 1440 ] latency[ 30.00ms ] exclusive[ NO ] wow64_fix[ NO ] mode[ POLL ] 00078391: : pSinkPortAudio->Init() == AK_Success00083045: : AK::ReleaseAudioSink WMFocusCallback00083452: : AK::RestoreAudioSink WMFocusCallback00083534: : WASAPI::OpenStream(output): framesPerUser[ 128 ] framesPerHost[ 1440 ] latency[ 30.00ms ] exclusive[ NO ] wow64_fix[ NO ] mode[ POLL ] 00083534: : pSinkPortAudio->Init() == AK_Success00100456: : AK::ReleaseAudioSink WMFocusCallback00301703: : AK::RestoreAudioSink WMFocusCallback00301801: : WASAPI::OpenStream(output): framesPerUser[ 128 ] framesPerHost[ 1440 ] latency[ 30.00ms ] exclusive[ NO ] wow64_fix[ NO ] mode[ POLL ] 00301801: : pSinkPortAudio->Init() == AK_Success I believe the game is probing specifically somehow for the cable ID's.
Operating system | Test date | Wine version | Installs? | Runs? | Used Workaround? | Rating | Submitter | ||
Show | Fedora 23 x86_64 | Mar 27 2016 | 1.9.5 | Yes | Yes | Gold | Martti Huttunen | ||
Current | Debian GNU/Linux 8.x "Jessie" x86_64 | Dec 21 2013 | 1.7.8 | Yes | Yes | Silver | Luke A. Guest | ||
Show | Fedora 19 x86_64 | Oct 20 2013 | 1.7.3 | Yes | Yes | Silver | oliver z. |
Bug # | Description | Status | Resolution | Other apps affected |
35214 | mmdevapi should support PKEY_AudioEndpoint_FormFactor | CLOSED | INVALID | View |
35224 | Rocksmith 2014 fails to detect USB Rocksmith Real Tone cable (needs Win32_PnPEntity WMI class) | CLOSED | INVALID | View |
37042 | Rocksmith requires exclusive mode access to the cable (missing support for PulseAudio backend) | STAGED | View |
The following comments are owned by whoever posted them. WineHQ is not responsible for what they say.
by Lockheed on Sunday September 23rd 2018, 8:26
Anyway - after spending the night crawling lots of old and partly outdated tips I just gave it a shot and fired steam in wine and then Rocksmith and ... it worked! Might be that some additional packages I installed triggered it. Anyway - will do some more tests and update this entry with a fresh test result.
by Luke A. Guest on Tuesday August 5th 2014, 12:24
"{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},0"=dword:00000004
"{B3F8FA53-0004-438E-9003-51A46E139BFC},2"="{1}.USB\\VID_12BA&PID_00FF&MI_00\\7&2443AC09&0&0000"
The first entry tells wine that this is a microphone, the second gives it's vendor and product id's.
Under PulseAudio, you have to add those two keys to the pulseaudio capture device, very strange, which is under HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\MMDevices\Audio\Capture\{25DA76D0-033C-4235-9002-19F48894AC6F}.
I still have no audio recording from the cable at this time. Output is fine.
by Luke A. Guest on Tuesday August 5th 2014, 13:11
if(mode != AUDCLNT_SHAREMODE_SHARED && mode != AUDCLNT_SHAREMODE_EXCLUSIVE)
return AUDCLNT_E_NOT_INITIALIZED;
You will be able to get input from the guitar, unfortunately, it's really bad and you won't get further.
by Adam Bolte on Saturday December 20th 2014, 0:54
Is commenting these lines and re-compiling supposed to solve this problem? Or is it only to get audio captured if the cable is already detected?
I see
"{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},0"=dword:00000004
gets created automatically. However
"{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&28D2DB3A"
every time the program is launched. Is that supposed to happen? Does it matter? Where did you get the 7&2443AC09 from?
This is all under [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\MMDevices\Audio\Capture\{3524DE93-905E-446D-9A6E-C71A28D2DB3A}\Properties], despite using PulseAudio (well, Wine's using ALSA, and my .asoundrc defaults everything to pulse - not sure if you meant "pulse running and in use" or "wine with pulseaudio patches").
by Luke A. Guest on Sunday December 22nd 2013, 21:58
LONG ret;
/* HACK for Rocksmith cable test */
const GUID *ffid = &PKEY_AudioEndpoint_FormFactor.fmtid;
if (id->Data1 == ffid->Data1 && id->Data2 == ffid->Data2 && id->Data3 == ffid->Data3 &&
id->Data4[0] == ffid->Data4[0] && id->Data4[1] == ffid->Data4[1] && id->Data4[2] == ffid->Data4[2] &&
id->Data4[3] == ffid->Data4[3] && id->Data4[4] == ffid->Data4[4] && id->Data4[5] == ffid->Data4[5] &&
id->Data4[6] == ffid->Data4[6] && id->Data4[7] == ffid->Data4[7] && key->pid == PKEY_AudioEndpoint_FormFactor.pid)
{
if (flow == eCapture)
{
pv->vt = VT_UI4;
pv->u.ulVal = Microphone;
}
else
{
pv->vt = VT_UI4;
pv->u.ulVal = Speakers;
}
return S_OK;
}
/* END HACK */
hr = MMDevPropStore_OpenPropKey(devguid, flow, ®key);
This still didn't detect the device.
by oliver z. on Monday December 23rd 2013, 10:58
I was not able yet to get it working (RS2014) under Linux as there is atm no "no-cable"-patch available (small correction: they are but they dont work under wine).
by Luke A. Guest on Monday December 23rd 2013, 14:04
Now, after a few days of following wrong leads (GUID's) on MSDN, I found this
msdn.microsoft.com/en-us/library/windows/desktop/ee417014%28v=vs.85%29.aspx
which I believe they will have lifted and put into the game to detect the cable. I was right to add +wbemprox as the "cimv2" keeps popping up. I also believe this is being used as the guys who implemented the no-cable hack modified the dword with the pid/vid values in, the "pGuidProductFromDirectInput->Data1" in that link to make their cables work.
In essence, what we need to get this working is a way to add the PID_ff and VID_12ba into the registry so that that code can detect it properly.
Or best way, when the device is detected, put those values into the DIDEVICEINSTANCE::guidProduct element. This is done in the dinput dll for input devices.
by oliver z. on Monday December 23rd 2013, 14:40
by Luke A. Guest on Wednesday December 25th 2013, 14:10
Luke.
by Luke A. Guest on Sunday December 22nd 2013, 19:29
007e:trace:alsa:get_alsa_name_by_guid Found matching device key: L"1,plughw:2,0"
007e:trace:mmdevapi:MMDevice_AddRef Refcount now 1
007e:trace:alsa:AudioClient_AddRef (0x8671dd0) Refcount now 1
007e:trace:alsa:AudioClient_GetMixFormat (0x8671dd0)->(0x32f94c)
007e:trace:alsa:dump_fmt wFormatTag: 0xfffe (WAVE_FORMAT_EXTENSIBLE)
007e:trace:alsa:dump_fmt nChannels: 2
007e:trace:alsa:dump_fmt nSamplesPerSec: 48000
007e:trace:alsa:dump_fmt nAvgBytesPerSec: 384000
007e:trace:alsa:dump_fmt nBlockAlign: 8
007e:trace:alsa:dump_fmt wBitsPerSample: 32
007e:trace:alsa:dump_fmt cbSize: 22
007e:trace:alsa:dump_fmt dwChannelMask: 00000003
007e:trace:alsa:dump_fmt Samples: 0020
007e:trace:alsa:dump_fmt SubFormat: {00000003-0000-0010-8000-00aa00389b71}
007e:trace:alsa:AudioClient_Release (0x8671dd0) Refcount now 0
007e:trace:alsa:AudioClient_Stop (0x8671dd0)
007e:trace:mmdevapi:MMDevice_Release Refcount now 0
007e:trace:mmdevapi:MMDevice_SetPropValue Blob 0x86f0dd8 40
007e:trace:mmdevapi:MMDevice_SetPropValue Writing L"{F19F064D-082C-4E27-BC73-6882A1BB8E4C},0" returned 0
007e:trace:mmdevapi:MMDevice_SetPropValue Blob 0x86f0dd8 40
007e:trace:mmdevapi:MMDevice_SetPropValue Writing L"{E4870E26-3CC5-4CD2-BA46-CA0A9A70ED04},3" returned 0
007e:trace:mmdevapi:MMDevEnum_QueryInterface (0x86f0ea0)->({a95664d2-9614-4f35-a746-de8db63617e6}, 0x32fb84)
007e:trace:mmdevapi:MMDevEnum_AddRef Refcount now 2
007e:trace:mmdevapi:MMDevEnum_AddRef Refcount now 3
007e:trace:mmdevapi:MMDevEnum_RegisterEndpointNotificationCallback (0x86f0ea0)->(0x12451cd0)
007e:trace:mmdevapi:MMDevEnum_Release Refcount now 2
007e:err:ole:CoInitializeEx Attempt to change threading model of this apartment from multi-threaded to apartment threaded
007e:trace:mmdevapi:DllGetClassObject ({bcde0395-e52f-467c-8e3d-c4579291692e}, {00000001-0000-0000-c000-000000000046}, 0x32f82c)
007e:trace:mmdevapi:MMCF_CreateInstance (0x7c4bfc18, (nil), {a95664d2-9614-4f35-a746-de8db63617e6}, 0x8671e68)
007e:trace:mmdevapi:MMDevEnum_QueryInterface (0x86f0ea0)->({a95664d2-9614-4f35-a746-de8db63617e6}, 0x8671e68)
007e:trace:mmdevapi:MMDevEnum_AddRef Refcount now 3
007e:trace:mmdevapi:MMDevEnum_GetDefaultAudioEndpoint (0x86f0ea0)->(0,1,0x32f8f4)
007e:trace:mmdevapi:MMDevice_AddRef Refcount now 1
007e:trace:mmdevapi:MMDevice_GetId (0x8671840)->(0x32f8f8)
007e:trace:mmdevapi:MMDevice_GetId returning L"{0.0.0.00000000}.{BD12F083-8FC3-4629-8ECC-479A5CA0D81A}"
007e:trace:mmdevapi:MMDevice_Release Refcount now 0
007e:trace:mmdevapi:MMDevEnum_GetDefaultAudioEndpoint (0x86f0ea0)->(1,1,0x32f8f4)
007e:trace:mmdevapi:MMDevice_AddRef Refcount now 1
007e:trace:mmdevapi:MMDevice_GetId (0x86f1800)->(0x32f8f8)
007e:trace:mmdevapi:MMDevice_GetId returning L"{0.0.1.00000000}.{AC2B8964-242E-4C02-9A5A-29F7723ABA4A}"
007e:trace:mmdevapi:MMDevice_Release Refcount now 0
007e:trace:mmdevapi:MMDevEnum_EnumAudioEndpoints (0x86f0ea0)->(2,1,0x32f8e4)
007e:trace:mmdevapi:MMDevCol_GetCount (0x8671a70)->(0x8671e6c)
007e:trace:mmdevapi:MMDevCol_Item (0x8671a70)->(0, 0x8672888)
007e:trace:mmdevapi:MMDevice_AddRef Refcount now 1
007e:trace:mmdevapi:MMDevice_GetId (0x86f0d20)->(0x32f8f8)
007e:trace:mmdevapi:MMDevice_GetId returning L"{0.0.1.00000000}.{4B4E922F-B62B-42D8-9A3D-E4EE473607DA}"
007e:trace:mmdevapi:MMDevice_GetState (0x86f0d20)->(0x8672c8c)
007e:trace:mmdevapi:MMDevice_OpenPropertyStore (0x86f0d20)->(0,0x32f8ec)
007e:trace:mmdevapi:MMDevPropStore_GetValue (0x8671d10)->("{a45c254e-df1c-4efd-8020-67d146a850e0},14", 0x32f894)
007e:trace:mmdevapi:MMDevPropStore_GetValue (0x8671d10)->("{f19f064d-082c-4e27-bc73-6882a1bb8e4c},0", 0x32f8b8)
007e:trace:mmdevapi:MMDevPropStore_GetValue (0x8671d10)->("{1da5d803-d492-4edd-8c23-e0c0ffee7f0e},0", 0x32f884)
007e:warn:mmdevapi:MMDevice_GetPropValue Reading L"{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},0" returned 2
007e:trace:mmdevapi:MMDevPropStore_GetCount (0x8671d10)->(0x32f8b4)
007e:trace:mmdevapi:MMDevPropStore_GetCount Returning 5
007e:trace:mmdevapi:MMDevPropStore_GetAt (0x8671d10)->(0,0x32f8fc)
007e:trace:mmdevapi:MMDevPropStore_GetValue (0x8671d10)->("{233164c8-1b2c-4c7d-bc68-b671687a2567},1", 0x32f8a4)
007e:trace:mmdevapi:MMDevPropStore_GetAt (0x8671d10)->(1,0x32f8fc)
007e:trace:mmdevapi:MMDevPropStore_GetAt (0x8671d10)->(2,0x32f8fc)
007e:trace:mmdevapi:MMDevPropStore_GetAt (0x8671d10)->(3,0x32f8fc)
007e:trace:mmdevapi:MMDevPropStore_GetValue (0x8671d10)->("{e4870e26-3cc5-4cd2-ba46-ca0a9a70ed04},3", 0x32f8a4)
007e:trace:mmdevapi:MMDevPropStore_GetAt (0x8671d10)->(4,0x32f8fc)
007e:trace:mmdevapi:MMDevPropStore_GetValue (0x8671d10)->("{f19f064d-082c-4e27-bc73-6882a1bb8e4c},0", 0x32f8a4)
007e:trace:mmdevapi:MMDevPropStore_Release Refcount now 0
007e:trace:mmdevapi:MMDevice_QueryInterface (0x86f0d20)->({1be09788-6894-4089-8586-9a2a6c265ac5},0x32f8e8)
007e:trace:mmdevapi:MMEndpoint_AddRef (0x86f0d20)
007e:trace:mmdevapi:MMDevice_AddRef Refcount now 2
007e:trace:mmdevapi:MMEndpoint_GetDataFlow (0x86f0d20)->(0x8672c90)
007e:trace:mmdevapi:MMEndpoint_Release (0x86f0d20)
007e:trace:mmdevapi:MMDevice_Release Refcount now 1
007e:trace:mmdevapi:MMDevice_Activate (0x86f0d20)->(0x10f8aa4,1,(nil),0x32f8f8)
007e:trace:alsa:AUDDRV_GetAudioEndpoint {4b4e922f-b62b-42d8-9a3d-e4ee473607da} 0x86f0d20 0x32f8f8
Firstly, I'd like to say that I'm actually testing RS 2014, not the original, but as they're using the same Audio code (or similar), it should work for both versions.
My RT cable has GUID of 4b4e922f-b62b-42d8-9a3d-e4ee473607da on Wine.
The line: MMDevPropStore_GetValue (0x8671d10)->("{1da5d803-d492-4edd-8c23-e0c0ffee7f0e},0", 0x32f884) is failing returning a value of 2 which is not success.
According to MSDN, this line is wanting to know what kind of device this is, see msdn.microsoft.com/en-us/library/windows/desktop/dd316569%28v=vs.85%29.aspx, it should return Microphone for the RT cable. This is at least one reason why the game is not detecting the cable.