theNizo / linux_rocksmith

Guides to get Rocksmith 2014 running on Linux
https://thenizo.github.io/linux_rocksmith/
GNU General Public License v3.0
111 stars 10 forks source link

JACK to ASIO doesn't work with pipewire #1

Closed theNizo closed 2 years ago

theNizo commented 2 years ago

IIRC the game crashes at start when using pipewire.

(I don't have a log to share right now)

Blu3wolf commented 2 years ago

Heres one: https://pastebin.com/5VMx0NEC

theNizo commented 2 years ago

Pasting a few links for later, haven't read them completely yet:

wineasio issues:

pipewire issues:

something else: https://forum.vb-audio.com/viewtopic.php?t=1204

theNizo commented 2 years ago

Taken from the posted links. Some people said that you can use pipewire with traditional jack. So, install the normal jack, but now the alsa driver is provided by pipewire-alsa.

It's a workaround for now, but it would obviously be better if it worked with pipewire-jack. Also, I didn't test what I've written here yet.

EDIT: Nope, didn't work. I might have overlooked something from the instructions of others.

vscsilva commented 2 years ago

It seems to work now with Pipewire 0.3.50 See here: Gitlab - wineasio crashes

theNizo commented 2 years ago

It seems to work now with Pipewire 0.3.50 See here: Gitlab - wineasio crashes

Had a short look at it, my first vague guess is that it will be kinda experimental, but definitely better than nothing. Got a machine to try out on now, hopefully I find some time this weekend.

Or if someone else wants to try, I'll take pull requests, other forms of instructions, or any kind of pointers. I'd list you in the credits of course.

theNizo commented 2 years ago

Tried with the patched wineasio version. Patchbay does the correct thing out of the box, Rocksmith seems to crash when initializing ASIO.

Relevant console output ``` 0024:fixme:d3d9:D3DPERF_GetStatus (void) : stub 0024:fixme:dinput:dinput8_EnumDevicesBySemantics iface 050BAE9C, username (null), action_format 0032FA34, callback 695422C0, context 0032FA2C, flags 0 stub! 0024:fixme:wbemprox:client_security_SetBlanket 62EA57D0, 050BB190, 10, 0, (null), 3, 3, 00000000, 0x00000000 0024:fixme:wbemprox:client_security_Release 62EA57D0 0024:fixme:wbemprox:enum_class_object_Next timeout not supported 0024:fixme:wbemprox:client_security_SetBlanket 62EA57D0, 050BB190, 10, 0, (null), 3, 3, 00000000, 0x00000000 0024:fixme:wbemprox:client_security_Release 62EA57D0 0024:fixme:wbemprox:client_security_SetBlanket 62EA57D0, 050BB190, 10, 0, (null), 3, 3, 00000000, 0x00000000 0024:fixme:wbemprox:client_security_Release 62EA57D0 0024:fixme:wbemprox:client_security_SetBlanket 62EA57D0, 050BB190, 10, 0, (null), 3, 3, 00000000, 0x00000000 0024:fixme:wbemprox:client_security_Release 62EA57D0 0154:fixme:d3d:state_linepattern_w Setting line patterns is not supported in OpenGL core contexts. Attempting to load original DLL from: C:\windows\system32\avrt.dll Load OK; fetching procedure addresses... 0184:fixme:avrt:AvSetMmThreadCharacteristicsW (L"Pro Audio",22C5FF2C): stub 0188:fixme:avrt:AvSetMmThreadCharacteristicsW (L"Pro Audio",232BFE90): stub [1] 7150 segmentation fault (core dumped) WINEPREFIX=/mnt/Games/Steam/steamapps/compatdata/221680/pfx Rocksmith2014.ex ```
RS_ASIO-log.txt ``` 0.000 [INFO] - Wrapper DLL loaded (v0.5.7) 0.000 [INFO] PatchOriginalCode 0.574 [INFO] Patching CoCreateInstance 0.575 [INFO] Patch_CallAbsoluteAddress - num locations: 5 0.575 [INFO] Patching call at 01C5AA85 0.575 [INFO] Patching call at 01F03B6E 0.575 [INFO] Patching call at 01F5C681 0.575 [INFO] Patching call at 01FAEF75 0.575 [INFO] Patching call at 01FAF40D 0.575 [INFO] Patching PortAudio MarshalStreamComPointers 0.575 [INFO] Patch_CallRelativeAddress - num locations: 1 0.575 [INFO] Patching call at 01F03059 0.575 [INFO] Patching PortAudio UnmarshalStreamComPointers 0.575 [INFO] Patch_CallRelativeAddress - num locations: 1 0.575 [INFO] Patching call at 01F0310E 0.575 [INFO] Patched_CoCreateInstance called: IID_IMMDeviceEnumerator 0.575 [INFO] DebugDeviceEnum::GetDefaultAudioEndpoint - dataFlow: eRender - role: eMultimedia 0.575 [INFO] RSAggregatorDeviceEnum::UpdateAvailableDevices 0.575 [INFO] AsioHelpers::FindDrivers 0.577 [INFO] WineASIO 0.577 [INFO] RSAsioDeviceEnum::UpdateAvailableDevices - output requesting ASIO driver: WineASIO 0.577 [INFO] Creating AsioSharedHost - dll: wineasio.dll 0.588 [INFO] ASIO input channels info: 0.588 [INFO] 0 - active: 0, channel: 0, group: 0, isInput: 1, type: ASIOSTFloat32LSB, name: in_1 0.588 [INFO] 1 - active: 0, channel: 1, group: 0, isInput: 1, type: ASIOSTFloat32LSB, name: in_2 0.588 [INFO] 2 - active: 0, channel: 2, group: 0, isInput: 1, type: ASIOSTFloat32LSB, name: in_3 0.588 [INFO] 3 - active: 0, channel: 3, group: 0, isInput: 1, type: ASIOSTFloat32LSB, name: in_4 0.588 [INFO] 4 - active: 0, channel: 4, group: 0, isInput: 1, type: ASIOSTFloat32LSB, name: in_5 0.588 [INFO] 5 - active: 0, channel: 5, group: 0, isInput: 1, type: ASIOSTFloat32LSB, name: in_6 0.588 [INFO] 6 - active: 0, channel: 6, group: 0, isInput: 1, type: ASIOSTFloat32LSB, name: in_7 0.588 [INFO] 7 - active: 0, channel: 7, group: 0, isInput: 1, type: ASIOSTFloat32LSB, name: in_8 0.588 [INFO] 8 - active: 0, channel: 8, group: 0, isInput: 1, type: ASIOSTFloat32LSB, name: in_9 0.588 [INFO] 9 - active: 0, channel: 9, group: 0, isInput: 1, type: ASIOSTFloat32LSB, name: in_10 0.588 [INFO] 10 - active: 0, channel: 10, group: 0, isInput: 1, type: ASIOSTFloat32LSB, name: in_11 0.588 [INFO] 11 - active: 0, channel: 11, group: 0, isInput: 1, type: ASIOSTFloat32LSB, name: in_12 0.588 [INFO] 12 - active: 0, channel: 12, group: 0, isInput: 1, type: ASIOSTFloat32LSB, name: in_13 0.588 [INFO] 13 - active: 0, channel: 13, group: 0, isInput: 1, type: ASIOSTFloat32LSB, name: in_14 0.588 [INFO] 14 - active: 0, channel: 14, group: 0, isInput: 1, type: ASIOSTFloat32LSB, name: in_15 0.588 [INFO] 15 - active: 0, channel: 15, group: 0, isInput: 1, type: ASIOSTFloat32LSB, name: in_16 0.588 [INFO] ASIO output channels info: 0.588 [INFO] 0 - active: 0, channel: 0, group: 0, isInput: 0, type: ASIOSTFloat32LSB, name: out_1 0.588 [INFO] 1 - active: 0, channel: 1, group: 0, isInput: 0, type: ASIOSTFloat32LSB, name: out_2 0.588 [INFO] 2 - active: 0, channel: 2, group: 0, isInput: 0, type: ASIOSTFloat32LSB, name: out_3 0.588 [INFO] 3 - active: 0, channel: 3, group: 0, isInput: 0, type: ASIOSTFloat32LSB, name: out_4 0.588 [INFO] 4 - active: 0, channel: 4, group: 0, isInput: 0, type: ASIOSTFloat32LSB, name: out_5 0.588 [INFO] 5 - active: 0, channel: 5, group: 0, isInput: 0, type: ASIOSTFloat32LSB, name: out_6 0.588 [INFO] 6 - active: 0, channel: 6, group: 0, isInput: 0, type: ASIOSTFloat32LSB, name: out_7 0.588 [INFO] 7 - active: 0, channel: 7, group: 0, isInput: 0, type: ASIOSTFloat32LSB, name: out_8 0.588 [INFO] 8 - active: 0, channel: 8, group: 0, isInput: 0, type: ASIOSTFloat32LSB, name: out_9 0.588 [INFO] 9 - active: 0, channel: 9, group: 0, isInput: 0, type: ASIOSTFloat32LSB, name: out_10 0.588 [INFO] 10 - active: 0, channel: 10, group: 0, isInput: 0, type: ASIOSTFloat32LSB, name: out_11 0.588 [INFO] 11 - active: 0, channel: 11, group: 0, isInput: 0, type: ASIOSTFloat32LSB, name: out_12 0.589 [INFO] 12 - active: 0, channel: 12, group: 0, isInput: 0, type: ASIOSTFloat32LSB, name: out_13 0.589 [INFO] 13 - active: 0, channel: 13, group: 0, isInput: 0, type: ASIOSTFloat32LSB, name: out_14 0.589 [INFO] 14 - active: 0, channel: 14, group: 0, isInput: 0, type: ASIOSTFloat32LSB, name: out_15 0.589 [INFO] 15 - active: 0, channel: 15, group: 0, isInput: 0, type: ASIOSTFloat32LSB, name: out_16 0.589 [INFO] RSAsioDeviceEnum::UpdateAvailableDevices - OK 0.589 [INFO] RSAsioDeviceEnum::UpdateAvailableDevices - input[0] requesting ASIO driver: WineASIO 0.589 [INFO] RSAsioDeviceEnum::UpdateAvailableDevices - OK 0.589 [INFO] DebugDeviceEnum::UpdateAvailableDevices - 1 render devices, 1 capture devices 0.589 [INFO] hr: S_OK 0.589 [INFO] *ppEndpoint: 13D289D0 0.589 [INFO] DebugDeviceEnum::GetDefaultAudioEndpoint - dataFlow: eCapture - role: eMultimedia 0.589 [INFO] hr: S_OK 0.589 [INFO] *ppEndpoint: 13D28CD0 0.589 [INFO] DebugDeviceEnum::EnumAudioEndpoints - dataFlow: eAll - dwStateMask: 1 0.589 [INFO] hr: S_OK 0.589 [INFO] *ppDevices: 13D8FBB0 0.589 [INFO] {ASIO Out} DebugWrapperDevice::OpenPropertyStore - stgmAccess: 0 0.589 [INFO] {ASIO Out} DebugWrapperDevicePropertyStore::GetCount 0.589 [INFO] {ASIO Out} DebugWrapperDevicePropertyStore::GetAt - iProp: 0 0.589 [INFO] {ASIO Out} DebugWrapperDevicePropertyStore::GetAt - iProp: 1 0.589 [INFO] {ASIO Out} DebugWrapperDevice::QueryInterface - riid: IID_IMMEndpoint 0.589 [INFO] {ASIO Out} DebugWrapperEndpoint::GetDataFlow 0.589 [INFO] *pDataFlow: eRender 0.589 [INFO] {ASIO Out} DebugWrapperDevice::Activate - Activate iid: IID_IAudioClient dwClsCtx: 1 0.589 [INFO] {ASIO Out} DebugWrapperAudioClient::GetDevicePeriod 0.589 [INFO] {ASIO IN 0} DebugWrapperDevice::OpenPropertyStore - stgmAccess: 0 0.589 [INFO] {ASIO IN 0} DebugWrapperDevicePropertyStore::GetCount 0.589 [INFO] {ASIO IN 0} DebugWrapperDevicePropertyStore::GetAt - iProp: 0 0.589 [INFO] {ASIO IN 0} DebugWrapperDevicePropertyStore::GetAt - iProp: 1 0.589 [INFO] {ASIO IN 0} DebugWrapperDevicePropertyStore::GetAt - iProp: 2 0.589 [INFO] {ASIO IN 0} DebugWrapperDevicePropertyStore::GetAt - iProp: 3 0.589 [INFO] {ASIO IN 0} DebugWrapperDevicePropertyStore::GetAt - iProp: 4 0.589 [INFO] {ASIO IN 0} DebugWrapperDevice::QueryInterface - riid: IID_IMMEndpoint 0.589 [INFO] {ASIO IN 0} DebugWrapperEndpoint::GetDataFlow 0.589 [INFO] *pDataFlow: eCapture 0.589 [INFO] {ASIO IN 0} DebugWrapperDevice::Activate - Activate iid: IID_IAudioClient dwClsCtx: 1 0.589 [INFO] {ASIO IN 0} DebugWrapperAudioClient::GetDevicePeriod 0.591 [INFO] {ASIO Out} DebugWrapperDevice::Activate - Activate iid: IID_IAudioClient dwClsCtx: 17 0.591 [INFO] {ASIO Out} DebugWrapperAudioClient::IsFormatSupported - ShareMode: Exclusive 0.591 [INFO] {ASIO Out} DebugWrapperAudioClient::Initialize - ShareMode: Exclusive Flags: 40000 bufferDuration: 3ms periodicity: 3ms 0.591 [INFO] {ASIO Out} RSAsioAudioClient::Initialize - host requested buffer duration: 3ms (144 frames) 0.591 [INFO] {ASIO Out} WAVEFORMATEX wFormatTag: fffe nChannels: 2 nSamplesPerSec: 48000 nAvgBytesPerSec: 384000 nBlockAlign: 8 wBitsPerSample: 32 cbSize: 22 ext.SubFormat: KSDATAFORMAT_SUBTYPE_IEEE_FLOAT ext.Samples: 32 ext.dwChannelMask: 3 0.591 [INFO] {ASIO Out} RSAsioAudioClient::Initialize - actual buffer duration: 5ms (256 frames) 0.591 [INFO] AsioSharedHost::Setup - startCount: 0 0.591 [INFO] post output ready: 0 0.591 [INFO] ASIOBufferSize - min: 256 max: 256 preferred: 256 granularity: 0 0.591 [INFO] Creating ASIO buffers (16 out, 16 in)... 0.591 [INFO] AsioSharedHost::AsioCalback_asioMessage - selector: 1 value: 4 | returning: 0 0.591 [INFO] AsioSharedHost::AsioCalback_asioMessage - selector: 1 value: 3 | returning: 0 0.591 [INFO] AsioSharedHost::AsioCalback_asioMessage - selector: 1 value: 5 | returning: 0 0.591 [INFO] AsioSharedHost::AsioCalback_asioMessage - selector: 1 value: 6 | returning: 0 0.591 [INFO] AsioSharedHost::AsioCalback_asioMessage - selector: 7 value: 0 | returning: 0 0.597 [INFO] {ASIO Out} DebugWrapperAudioClient::GetBufferSize 0.597 [INFO] *pNumBufferFrames: 256 0.597 [INFO] {ASIO Out} DebugWrapperAudioClient::GetStreamLatency 0.597 [INFO] latency: 5ms 0.597 [INFO] {ASIO Out} DebugWrapperAudioClient::GetService - riid: IID_IAudioRenderClient 0.597 [INFO] returning render client 0.600 [INFO] DebugDeviceEnum::RegisterEndpointNotificationCallback 0.602 [INFO] Patched_PortAudio_MarshalStreamComPointers 0.605 [INFO] Patched_PortAudio_UnmarshalStreamComPointers 0.605 [INFO] {ASIO Out} DebugWrapperAudioClient::SetEventHandle 0.605 [INFO] {ASIO Out} DebugWrapperRenderClient::GetBuffer NumFramesRequested: 256 0.605 [INFO] {ASIO Out} DebugWrapperRenderClient::ReleaseBuffer NumFramesWritten: 256 0.605 [INFO] {ASIO Out} RSAsioAudioClient::SwapBuffers 0.605 [INFO] {ASIO Out} DebugWrapperAudioClient::Start 0.605 [INFO] AsioSharedHost::Start - startCount: 0 0.605 [INFO] Starting ASIO stream... 0.610 [INFO] WineASIO - AsioSharedHost::AsioCalback_bufferSwitch - buffer switch 1 0.611 [INFO] {ASIO Out} DebugWrapperRenderClient::GetBuffer NumFramesRequested: 256 0.611 [INFO] {ASIO Out} DebugWrapperRenderClient::ReleaseBuffer NumFramesWritten: 256 0.611 [INFO] {ASIO Out} RSAsioAudioClient::SwapBuffers 0.611 [INFO] AsioSharedHost::AsioCalback_asioMessage - selector: 1 value: 6 | returning: 0 0.611 [INFO] AsioSharedHost::AsioCalback_asioMessage - selector: 1 value: 6 | returning: 0 0.611 [INFO] AsioSharedHost::AsioCalback_asioMessage - selector: 1 value: 6 | returning: 0 0.611 [INFO] AsioSharedHost::AsioCalback_asioMessage - selector: 1 value: 6 | returning: 0 0.612 [INFO] AsioSharedHost::AsioCalback_asioMessage - selector: 1 value: 6 | returning: 0 ```

I will try and test a bit more...

theNizo commented 2 years ago

Different output with freshly compiled wineasio (tobi version)

console output ``` 0024:fixme:dinput:dinput8_EnumDevicesBySemantics iface 050BAE9C, username (null), action_format 0032FA34, callback 695422C0, context 0032FA2C, flags 0 stub! 0024:fixme:wbemprox:client_security_SetBlanket 62EA57D0, 050BB190, 10, 0, (null), 3, 3, 00000000, 0x00000000 0024:fixme:wbemprox:client_security_Release 62EA57D0 0024:fixme:wbemprox:enum_class_object_Next timeout not supported 0024:fixme:wbemprox:client_security_SetBlanket 62EA57D0, 050BB190, 10, 0, (null), 3, 3, 00000000, 0x00000000 0024:fixme:wbemprox:client_security_Release 62EA57D0 0024:fixme:wbemprox:client_security_SetBlanket 62EA57D0, 050BB190, 10, 0, (null), 3, 3, 00000000, 0x00000000 0024:fixme:wbemprox:client_security_Release 62EA57D0 0024:fixme:wbemprox:client_security_SetBlanket 62EA57D0, 050BB190, 10, 0, (null), 3, 3, 00000000, 0x00000000 0024:fixme:wbemprox:client_security_Release 62EA57D0 01b4:fixme:d3d:state_linepattern_w Setting line patterns is not supported in OpenGL core contexts. Attempting to load original DLL from: C:\windows\system32\avrt.dll Load OK; fetching procedure addresses... 01e4:fixme:avrt:AvSetMmThreadCharacteristicsW (L"Pro Audio",1D0FFF2C): stub 01e8:fixme:avrt:AvSetMmThreadCharacteristicsW (L"Pro Audio",1D75FE90): stub wine: Unhandled page fault on execute access to 00000005 at address 00000005 (thread 0024), starting debugger... Unhandled exception: page fault on execute access to 0x00000005 in 32-bit code (0x00000005). Register dump: CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b EIP:00000005 ESP:6d77ed40 EBP:00000000 EFLAGS:00210246( R- -- I Z- -P- ) EAX:6d77ed5c EBX:114df91f ECX:5f9e7b50 EDX:000003e6 ESI:00000003 EDI:05266c30 Stack dump: 0x6d77ed40: 00000040 00000003 0000005b 00000003 0x6d77ed50: ffffffff 00000003 00000000 000003e6 0x6d77ed60: 0000006e 00000001 00000000 00000077 0x6d77ed70: 0000007c 6d77ed84 00000005 00000001 0x6d77ed80: 00000032 00000000 00000000 114dfc01 0x6d77ed90: 00000008 00000003 f7eaae3c f7d22b9d Backtrace: =>0 0x00000005 (0x00000000) 0x00000005: -- no code accessible -- Modules: Module Address Debug info Name (64 modules) PE 003a0000-003c5000 Deferred d3dx9_42 PE 00400000-04f78000 Deferred rocksmith2014 PE 05490000-055c3000 Deferred ole32 PE 055d0000-05f08000 Deferred shell32 PE 068f0000-06ad5000 Deferred d3dx9_42 PE 072b0000-073ed000 Deferred steam PE 0cd90000-0cdbe000 Deferred winepulse PE 0cdc0000-0cdf3000 Deferred avrt PE 0ce00000-0ce08000 Deferred api-ms-win-core-synch-l1-2-0 PE 0d020000-0d027000 Deferred api-ms-win-core-datetime-l1-1-1 PE 0d030000-0d037000 Deferred api-ms-win-core-localization-obsolete-l1-2-0 PE 10000000-10066000 Deferred bink2w32 PE 10dd0000-10dd9000 Deferred ksuser PE 11490000-11516000 Deferred rs_asio PE 38000000-391da000 Deferred steamclient PE 3b400000-3b438000 Deferred steam_api PE 61500000-6152f000 Deferred iphlpapi PE 61740000-61784000 Deferred advapi32 PE 61940000-619cd000 Deferred wininet PE 62b80000-62b88000 Deferred api-ms-win-core-localization-l1-2-1 PE 62e80000-62ec5000 Deferred wbemprox PE 62fc0000-6304e000 Deferred rpcrt4 PE 63480000-6348d000 Deferred version PE 63bc0000-63bda000 Deferred shcore PE 63e00000-63e0b000 Deferred avrt PE 64a40000-64a94000 Deferred shlwapi PE 64ec0000-64fee000 Deferred oleaut32 PE 651c0000-651d6000 Deferred xinput1_3 PE 663c0000-663f5000 Deferred winspool PE 666c0000-666cf000 Deferred hid PE 66b00000-66b3e000 Deferred win32u PE 67800000-67807000 Deferred api-ms-win-core-string-l1-1-0 PE 67840000-6784a000 Deferred psapi PE 67c80000-67f78000 Deferred d3d9 PE 68500000-6855c000 Deferred combase PE 68700000-68730000 Deferred uxtheme PE 69540000-69590000 Deferred dinput8 PE 69940000-6996c000 Deferred propsys PE 6a040000-6a062000 Deferred msacm32 PE 6a280000-6a32e000 Deferred msvcrt PE 6a400000-6a4c8000 Deferred winmm PE 6ac80000-6ac87000 Deferred api-ms-win-core-fibers-l1-1-1 PE 6bc00000-6bc2c000 Deferred sechost PE 6bcc0000-6bd40000 Deferred setupapi PE 6c9c0000-6ca45000 Deferred gdi32 PE 6cc40000-6cd9e000 Deferred comctl32 PE 6d780000-6d7a8000 Deferred ws2_32 PE 6e4c0000-6e4d6000 Deferred dnsapi PE 6ed00000-6ef41000 Deferred user32 PE 6f480000-6f48c000 Deferred nsi PE 70940000-70960000 Deferred mpr PE 70b40000-70c1c000 Deferred ucrtbase PE 70cd0000-70ee3000 Deferred dxgi PE 71200000-7121c000 Deferred imm32 PE 78050000-780b9000 Deferred msvcp100 PE 78aa0000-78b5f000 Deferred msvcr100 PE 78b70000-78b73000 Deferred wineasio PE 7b000000-7b0eb000 Deferred kernelbase PE 7b600000-7b81a000 Deferred kernel32 PE 7bc00000-7bca8000 Deferred ntdll PE 7cef0000-7cef4000 Deferred opengl32 PE 7d5c0000-7d5c4000 Deferred wined3d PE 7da90000-7da93000 Deferred lsteamclient PE 7e290000-7e294000 Deferred winex11 Threads: process tid prio (all id:s are in hex) 00000020 (D) Z:\mnt\Games\Steam\steamapps\common\Rocksmith2014\Rocksmith2014.exe 00000024 0 <== 00000178 2 0000017c 2 00000180 2 00000184 2 00000188 2 0000018c 2 00000190 2 00000194 2 00000198 -1 0000019c 1 000001a0 -1 000001a4 -1 000001a8 -1 000001ac -1 000001b0 0 000001b4 0 000001b8 0 000001bc 0 000001c8 0 000001cc 1 000001d0 1 000001d4 0 000001d8 0 000001dc 0 000001e0 0 000001e4 15 000001e8 0 000001f4 0 00000038 services.exe 0000003c 0 00000040 0 0000004c 0 00000064 0 00000078 0 00000084 0 000000b4 0 000000d0 0 000000f0 0 00000044 winedevice.exe 00000048 0 0000005c 0 00000060 0 00000068 0 0000006c 0 000000dc 0 00000070 winedevice.exe 00000074 0 0000007c 0 00000080 0 00000088 0 0000008c 0 00000090 0 00000094 0 0000009c 0 000000a0 plugplay.exe 000000a4 0 000000bc 0 000000c0 0 000000c4 0 000001c0 0 000001c4 0 000000c8 svchost.exe 000000cc 0 000000d4 0 000000d8 0 000000e8 rpcss.exe 000000ec 0 000000f4 0 000000f8 0 000000fc 0 00000100 0 00000160 0 00000148 conhost.exe 0000014c 0 00000150 explorer.exe 00000154 0 00000158 0 0000015c 0 00000164 tabtip.exe 00000168 0 0000016c 0 00000170 0 System information: Wine build: wine-7.0 Platform: i386 (WOW64) Version: Windows 10 Host system: Linux Host version: 5.17.5-arch1-1 [1] 9688 killed WINEPREFIX=/mnt/Games/Steam/steamapps/compatdata/221680/pfx Rocksmith2014.ex ```
log ``` 0.000 [INFO] - Wrapper DLL loaded (v0.5.7) 0.000 [INFO] PatchOriginalCode 0.565 [INFO] Patching CoCreateInstance 0.565 [INFO] Patch_CallAbsoluteAddress - num locations: 5 0.565 [INFO] Patching call at 01C5AA85 0.565 [INFO] Patching call at 01F03B6E 0.565 [INFO] Patching call at 01F5C681 0.565 [INFO] Patching call at 01FAEF75 0.565 [INFO] Patching call at 01FAF40D 0.565 [INFO] Patching PortAudio MarshalStreamComPointers 0.565 [INFO] Patch_CallRelativeAddress - num locations: 1 0.565 [INFO] Patching call at 01F03059 0.565 [INFO] Patching PortAudio UnmarshalStreamComPointers 0.565 [INFO] Patch_CallRelativeAddress - num locations: 1 0.565 [INFO] Patching call at 01F0310E 0.565 [INFO] Patched_CoCreateInstance called: IID_IMMDeviceEnumerator 0.565 [INFO] DebugDeviceEnum::GetDefaultAudioEndpoint - dataFlow: eRender - role: eMultimedia 0.565 [INFO] RSAggregatorDeviceEnum::UpdateAvailableDevices 0.565 [INFO] AsioHelpers::FindDrivers 0.568 [INFO] WineASIO 0.568 [INFO] RSAsioDeviceEnum::UpdateAvailableDevices - output requesting ASIO driver: WineASIO 0.568 [INFO] Creating AsioSharedHost - dll: wineasio.dll 0.578 [INFO] ASIO input channels info: 0.578 [INFO] 0 - active: 0, channel: 0, group: 0, isInput: 1, type: ASIOSTFloat32LSB, name: in_1 0.578 [INFO] 1 - active: 0, channel: 1, group: 0, isInput: 1, type: ASIOSTFloat32LSB, name: in_2 0.578 [INFO] 2 - active: 0, channel: 2, group: 0, isInput: 1, type: ASIOSTFloat32LSB, name: in_3 0.578 [INFO] 3 - active: 0, channel: 3, group: 0, isInput: 1, type: ASIOSTFloat32LSB, name: in_4 0.578 [INFO] 4 - active: 0, channel: 4, group: 0, isInput: 1, type: ASIOSTFloat32LSB, name: in_5 0.578 [INFO] 5 - active: 0, channel: 5, group: 0, isInput: 1, type: ASIOSTFloat32LSB, name: in_6 0.578 [INFO] 6 - active: 0, channel: 6, group: 0, isInput: 1, type: ASIOSTFloat32LSB, name: in_7 0.578 [INFO] 7 - active: 0, channel: 7, group: 0, isInput: 1, type: ASIOSTFloat32LSB, name: in_8 0.578 [INFO] 8 - active: 0, channel: 8, group: 0, isInput: 1, type: ASIOSTFloat32LSB, name: in_9 0.578 [INFO] 9 - active: 0, channel: 9, group: 0, isInput: 1, type: ASIOSTFloat32LSB, name: in_10 0.578 [INFO] 10 - active: 0, channel: 10, group: 0, isInput: 1, type: ASIOSTFloat32LSB, name: in_11 0.578 [INFO] 11 - active: 0, channel: 11, group: 0, isInput: 1, type: ASIOSTFloat32LSB, name: in_12 0.578 [INFO] 12 - active: 0, channel: 12, group: 0, isInput: 1, type: ASIOSTFloat32LSB, name: in_13 0.578 [INFO] 13 - active: 0, channel: 13, group: 0, isInput: 1, type: ASIOSTFloat32LSB, name: in_14 0.578 [INFO] 14 - active: 0, channel: 14, group: 0, isInput: 1, type: ASIOSTFloat32LSB, name: in_15 0.578 [INFO] 15 - active: 0, channel: 15, group: 0, isInput: 1, type: ASIOSTFloat32LSB, name: in_16 0.578 [INFO] ASIO output channels info: 0.578 [INFO] 0 - active: 0, channel: 0, group: 0, isInput: 0, type: ASIOSTFloat32LSB, name: out_1 0.578 [INFO] 1 - active: 0, channel: 1, group: 0, isInput: 0, type: ASIOSTFloat32LSB, name: out_2 0.578 [INFO] 2 - active: 0, channel: 2, group: 0, isInput: 0, type: ASIOSTFloat32LSB, name: out_3 0.578 [INFO] 3 - active: 0, channel: 3, group: 0, isInput: 0, type: ASIOSTFloat32LSB, name: out_4 0.578 [INFO] 4 - active: 0, channel: 4, group: 0, isInput: 0, type: ASIOSTFloat32LSB, name: out_5 0.578 [INFO] 5 - active: 0, channel: 5, group: 0, isInput: 0, type: ASIOSTFloat32LSB, name: out_6 0.578 [INFO] 6 - active: 0, channel: 6, group: 0, isInput: 0, type: ASIOSTFloat32LSB, name: out_7 0.578 [INFO] 7 - active: 0, channel: 7, group: 0, isInput: 0, type: ASIOSTFloat32LSB, name: out_8 0.578 [INFO] 8 - active: 0, channel: 8, group: 0, isInput: 0, type: ASIOSTFloat32LSB, name: out_9 0.578 [INFO] 9 - active: 0, channel: 9, group: 0, isInput: 0, type: ASIOSTFloat32LSB, name: out_10 0.578 [INFO] 10 - active: 0, channel: 10, group: 0, isInput: 0, type: ASIOSTFloat32LSB, name: out_11 0.578 [INFO] 11 - active: 0, channel: 11, group: 0, isInput: 0, type: ASIOSTFloat32LSB, name: out_12 0.578 [INFO] 12 - active: 0, channel: 12, group: 0, isInput: 0, type: ASIOSTFloat32LSB, name: out_13 0.579 [INFO] 13 - active: 0, channel: 13, group: 0, isInput: 0, type: ASIOSTFloat32LSB, name: out_14 0.579 [INFO] 14 - active: 0, channel: 14, group: 0, isInput: 0, type: ASIOSTFloat32LSB, name: out_15 0.579 [INFO] 15 - active: 0, channel: 15, group: 0, isInput: 0, type: ASIOSTFloat32LSB, name: out_16 0.579 [INFO] RSAsioDeviceEnum::UpdateAvailableDevices - OK 0.579 [INFO] RSAsioDeviceEnum::UpdateAvailableDevices - input[0] requesting ASIO driver: WineASIO 0.579 [INFO] RSAsioDeviceEnum::UpdateAvailableDevices - OK 0.579 [INFO] DebugDeviceEnum::UpdateAvailableDevices - 1 render devices, 1 capture devices 0.579 [INFO] hr: S_OK 0.579 [INFO] *ppEndpoint: 136C89D0 0.579 [INFO] DebugDeviceEnum::GetDefaultAudioEndpoint - dataFlow: eCapture - role: eMultimedia 0.579 [INFO] hr: S_OK 0.579 [INFO] *ppEndpoint: 136C8CD0 0.579 [INFO] DebugDeviceEnum::EnumAudioEndpoints - dataFlow: eAll - dwStateMask: 1 0.579 [INFO] hr: S_OK 0.579 [INFO] *ppDevices: 1371FBB0 0.579 [INFO] {ASIO Out} DebugWrapperDevice::OpenPropertyStore - stgmAccess: 0 0.579 [INFO] {ASIO Out} DebugWrapperDevicePropertyStore::GetCount 0.579 [INFO] {ASIO Out} DebugWrapperDevicePropertyStore::GetAt - iProp: 0 0.579 [INFO] {ASIO Out} DebugWrapperDevicePropertyStore::GetAt - iProp: 1 0.579 [INFO] {ASIO Out} DebugWrapperDevice::QueryInterface - riid: IID_IMMEndpoint 0.579 [INFO] {ASIO Out} DebugWrapperEndpoint::GetDataFlow 0.579 [INFO] *pDataFlow: eRender 0.579 [INFO] {ASIO Out} DebugWrapperDevice::Activate - Activate iid: IID_IAudioClient dwClsCtx: 1 0.579 [INFO] {ASIO Out} DebugWrapperAudioClient::GetDevicePeriod 0.579 [INFO] {ASIO IN 0} DebugWrapperDevice::OpenPropertyStore - stgmAccess: 0 0.579 [INFO] {ASIO IN 0} DebugWrapperDevicePropertyStore::GetCount 0.579 [INFO] {ASIO IN 0} DebugWrapperDevicePropertyStore::GetAt - iProp: 0 0.579 [INFO] {ASIO IN 0} DebugWrapperDevicePropertyStore::GetAt - iProp: 1 0.579 [INFO] {ASIO IN 0} DebugWrapperDevicePropertyStore::GetAt - iProp: 2 0.579 [INFO] {ASIO IN 0} DebugWrapperDevicePropertyStore::GetAt - iProp: 3 0.579 [INFO] {ASIO IN 0} DebugWrapperDevicePropertyStore::GetAt - iProp: 4 0.579 [INFO] {ASIO IN 0} DebugWrapperDevice::QueryInterface - riid: IID_IMMEndpoint 0.579 [INFO] {ASIO IN 0} DebugWrapperEndpoint::GetDataFlow 0.579 [INFO] *pDataFlow: eCapture 0.579 [INFO] {ASIO IN 0} DebugWrapperDevice::Activate - Activate iid: IID_IAudioClient dwClsCtx: 1 0.579 [INFO] {ASIO IN 0} DebugWrapperAudioClient::GetDevicePeriod 0.580 [INFO] {ASIO Out} DebugWrapperDevice::Activate - Activate iid: IID_IAudioClient dwClsCtx: 17 0.580 [INFO] {ASIO Out} DebugWrapperAudioClient::IsFormatSupported - ShareMode: Exclusive 0.580 [INFO] {ASIO Out} DebugWrapperAudioClient::Initialize - ShareMode: Exclusive Flags: 40000 bufferDuration: 3ms periodicity: 3ms 0.580 [INFO] {ASIO Out} RSAsioAudioClient::Initialize - host requested buffer duration: 3ms (144 frames) 0.580 [INFO] {ASIO Out} WAVEFORMATEX wFormatTag: fffe nChannels: 2 nSamplesPerSec: 48000 nAvgBytesPerSec: 384000 nBlockAlign: 8 wBitsPerSample: 32 cbSize: 22 ext.SubFormat: KSDATAFORMAT_SUBTYPE_IEEE_FLOAT ext.Samples: 32 ext.dwChannelMask: 3 0.580 [INFO] {ASIO Out} RSAsioAudioClient::Initialize - actual buffer duration: 5ms (256 frames) 0.580 [INFO] AsioSharedHost::Setup - startCount: 0 0.580 [INFO] post output ready: 0 0.580 [INFO] ASIOBufferSize - min: 256 max: 256 preferred: 256 granularity: 0 0.580 [INFO] Creating ASIO buffers (16 out, 16 in)... 0.580 [INFO] AsioSharedHost::AsioCalback_asioMessage - selector: 1 value: 4 | returning: 0 0.580 [INFO] AsioSharedHost::AsioCalback_asioMessage - selector: 1 value: 3 | returning: 0 0.580 [INFO] AsioSharedHost::AsioCalback_asioMessage - selector: 1 value: 5 | returning: 0 0.580 [INFO] AsioSharedHost::AsioCalback_asioMessage - selector: 1 value: 6 | returning: 0 0.580 [INFO] AsioSharedHost::AsioCalback_asioMessage - selector: 7 value: 0 | returning: 0 0.599 [INFO] {ASIO Out} DebugWrapperAudioClient::GetBufferSize 0.599 [INFO] *pNumBufferFrames: 256 0.599 [INFO] {ASIO Out} DebugWrapperAudioClient::GetStreamLatency 0.599 [INFO] latency: 5ms 0.599 [INFO] {ASIO Out} DebugWrapperAudioClient::GetService - riid: IID_IAudioRenderClient 0.599 [INFO] returning render client 0.602 [INFO] DebugDeviceEnum::RegisterEndpointNotificationCallback 0.604 [INFO] Patched_PortAudio_MarshalStreamComPointers 0.607 [INFO] Patched_PortAudio_UnmarshalStreamComPointers 0.607 [INFO] {ASIO Out} DebugWrapperAudioClient::SetEventHandle 0.607 [INFO] {ASIO Out} DebugWrapperRenderClient::GetBuffer NumFramesRequested: 256 0.607 [INFO] {ASIO Out} DebugWrapperRenderClient::ReleaseBuffer NumFramesWritten: 256 0.607 [INFO] {ASIO Out} RSAsioAudioClient::SwapBuffers 0.607 [INFO] {ASIO Out} DebugWrapperAudioClient::Start 0.607 [INFO] AsioSharedHost::Start - startCount: 0 0.607 [INFO] Starting ASIO stream... 0.610 [INFO] WineASIO - AsioSharedHost::AsioCalback_bufferSwitch - buffer switch 1 0.610 [INFO] {ASIO Out} DebugWrapperRenderClient::GetBuffer NumFramesRequested: 256 0.610 [INFO] {ASIO Out} DebugWrapperRenderClient::ReleaseBuffer NumFramesWritten: 256 0.610 [INFO] {ASIO Out} RSAsioAudioClient::SwapBuffers 0.615 [INFO] WineASIO - AsioSharedHost::AsioCalback_bufferSwitch - buffer switch 2 0.615 [INFO] {ASIO Out} DebugWrapperRenderClient::GetBuffer NumFramesRequested: 256 0.616 [INFO] {ASIO Out} DebugWrapperRenderClient::ReleaseBuffer NumFramesWritten: 256 0.616 [INFO] {ASIO Out} RSAsioAudioClient::SwapBuffers 0.621 [INFO] WineASIO - AsioSharedHost::AsioCalback_bufferSwitch - buffer switch 3 (not logging upcoming switches) 0.630 [INFO] AsioSharedHost::AsioCalback_asioMessage - selector: 1 value: 6 | returning: 0 0.630 [INFO] AsioSharedHost::AsioCalback_asioMessage - selector: 1 value: 6 | returning: 0 0.658 [INFO] {ASIO Out} RSAsioAudioClient::OnAsioBufferSwitch - buffer underrun detected 0.658 [INFO] {ASIO Out} RSAsioAudioClient::SwapBuffers 0.663 [INFO] WineASIO - AsioSharedHost::AsioCalback_bufferSwitch - buffer switch 1 0.663 [INFO] {ASIO Out} RSAsioAudioClient::SwapBuffers 0.668 [INFO] WineASIO - AsioSharedHost::AsioCalback_bufferSwitch - buffer switch 2 0.674 [INFO] WineASIO - AsioSharedHost::AsioCalback_bufferSwitch - buffer switch 3 (not logging upcoming switches) ```
theNizo commented 2 years ago

I GOT IT THROUGH!!!

EDIT: I got sound, but microphone makes an unwanted sound and if it starts is pretty much based on luck.

2nd EDIT: Now it won't start again...

theNizo commented 2 years ago

Seems to work when you move the focus away from the window as fast as possible and let it run until you hear sound. I opened the QJackCTL graph view, so that I can see what's going on. Can't confirm if the window focussed matters, but it most likely doesn't.

theNizo commented 2 years ago

IT IS WORKING

needed and recommended packages: pipewire, pipewire-alsa, pipewire-pulse, pipewire-jack

Instructions for people who don't need pretty ones:

git clone https://github.com/TobiasKozel/wineasio --recursive
cd wineasio
make 64
make 32

do these steps according to the other asio guides:

  1. copy the files to the places where they need to be.
  2. Create a new prefix, register dll

open pavucontrol, make only one output and one input available (it will automatically connect everything, but rocksmith detects only one input device. also, rocksmith crashes when modifying the patchbay.)

cd into the root of the game, then run the game with PIPEWIRE_LATENCY=256/48000 WINEPREFIX=$STEAMLIBRARY/compatdata/221680/pfx $PROTON/bin/wine Rocksmith2014.exe

As soon as the window appears, focus out until it starts loading the game (logo screens start)

modifications that I did to my pipewire config (have yet to figure out the importance of them):

pipewire.conf `default.clock.rate=48000`
jack.conf * `node.latency=256/48000` * `node.rate=4/48000`

(this isn't pretty because I wanted to get the info out as fast as possible)

theNizo commented 2 years ago

Oh, come on, is it really that simple?

The only difference is setting the available input and output devices and unfocussing the window until the logo screens appear (not even always needed, but it's the most reliable way.)

begin-theadventure commented 2 years ago

Will TobiasKozel's fix be implemented upstream? There's no pull request.

vscsilva commented 2 years ago

You should ask him. Makes no sense to ask here.

theNizo commented 2 years ago

Will TobiasKozel's fix be implemented upstream? There's no pull request.

I figured out when writing the actual pipewire guide that wineasio/wineasio works perfectly fine for this usecase. To be fair, I didn't document this piece of information in this issue.

Considering that, this issue is most likely the wrong place to ask.