Trying to get Parsec loaded through wine for hosting - Will code if needed!

Hello all!

I wasn't sure what the best category was for this issue, so I'm sorry if this doesn't belong in programming in advance...

I'm trying to get the Parsec streaming client to work on Linux, to use Hosting.

Please see here for a quick background for why the native Linux client won't suffice for what I'm trying to do. It's the team's most requested feature as of right now.

As a quick test for myself, I attempted to load the client using default settings, except I had the Windows version set to 8.1. This loads, with the exception of the Account settings tab (in settings), which fails with an exception. I don't think I need this right now, though, so I'll ignore it for now.

Also, the fabled 'Hosting' tabs do not show up under settings in spite of my OS being set to 8.1.

I'm not sure what I'm doing wrong here, but I'm willing to program if I have to get this to work. I'm just not sure what the best solution for this issue is at the moment!

Can someone help me please? And if programming a solution ends up being the correct method, can someone point me in the right direction on that? Please don't just link the language's documentation unless there's some competent examples for newcomers to said language to go along with them.

Thanks!

Wine output:

env WINEPREFIX="/home/$USER/parsecd2" /usr/bin/wine C:\\windows\\command\\start.exe /Unix /home/$USER/parsecd/dosdevices/c:/users/$USER/Start\ Menu/Programs/Parsec/Parsec.lnk
000b:fixme:winediag:start_process Wine Staging 4.13 is a testing version containing experimental patches.
000b:fixme:winediag:start_process Please mention your exact version when filing bug reports on winehq.org.
0025:err:module:import_dll Library WDFLDR.SYS (which is needed by L"C:\\windows\\system32\\drivers\\ViGEmBus.sys") not found
0025:err:ntoskrnl:ZwLoadDriver failed to create driver L"\\Registry\\Machine\\System\\CurrentControlSet\\Services\\ViGEmBus": c0000142
000f:fixme:service:scmdatabase_autostart_services Auto-start service L"ViGEmBus" failed to start: 1114
002e:fixme:plugplay:pnp_manager_device_pnp Unhandled PnP request 0x7.
002e:fixme:plugplay:pnp_manager_device_pnp Unhandled PnP request 0x7.
002e:fixme:plugplay:pnp_manager_device_pnp Unhandled PnP request 0x7.
0009:fixme:exec:SHELL_execute flags ignored: 0x00000100
0009:fixme:exec:SHELL_execute flags ignored: 0x00004100
0039:fixme:msvcrt:_configure_wide_argv (1) stub
0039:fixme:msvcrt:_initialize_wide_environment stub
0039:fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub
0039:fixme:msvcp:_Locinfo__Locinfo_ctor_cat_cstr (0032FA18 1 C) semi-stub
0039:fixme:ntdll:EtwEventRegister ({d2d578d9-2936-45b6-a09f-30e32715f42d}, 0x6e5f70, 0x37ba840, 0x38022c8) stub.
0039:fixme:winsock:WS_EnterSingleProtocolW unknown Protocol <0x00000000>
0039:fixme:winsock:WS_EnterSingleProtocolW unknown Protocol <0x00000000>
0039:fixme:msvcp:_Locinfo__Locinfo_ctor_cat_cstr (0032F6D8 1 C) semi-stub
0039:fixme:msvcp:_Locinfo__Locinfo_ctor_cat_cstr (0032F508 1 C) semi-stub
0039:fixme:ntdll:NtQueryVolumeInformationFile 0xf4: faking volume info
0039:fixme:toolhelp:CreateToolhelp32Snapshot Unimplemented: heap list snapshot
0039:fixme:toolhelp:Heap32ListFirst : stub
0039:fixme:nls:GetThreadPreferredUILanguages 00000038, 0x32fc00, (nil) 0x32fc04
0039:fixme:nls:get_dummy_preferred_ui_language (0x38 0x32fc00 (nil) 0x32fc04) returning a dummy value (current locale)
0039:fixme:nls:GetThreadPreferredUILanguages 00000038, 0x32fc00, 0x62d7a90 0x32fc04
0039:fixme:nls:get_dummy_preferred_ui_language (0x38 0x32fc00 0x62d7a90 0x32fc04) returning a dummy value (current locale)
0039:fixme:winsock:WSALookupServiceBeginW (0x32f8f4 0x00000ff0 0x32f934) Stub!
0039:fixme:iphlpapi:NotifyAddrChange (Handle 0x32fa74, overlapped 0x3de8b1c): stub
0039:fixme:win:RegisterDeviceNotificationW (hwnd=0x1007e, filter=0x32fae8,flags=0x00000000) returns a fake device notification handle!
0039:fixme:win:RegisterDeviceNotificationW (hwnd=0x1007e, filter=0x32fae8,flags=0x00000000) returns a fake device notification handle!
0039:fixme:msg:ChangeWindowMessageFilterEx 0x10082 4a 1 (nil)
0039:fixme:shcore:SetCurrentProcessExplicitAppUserModelID L"Parsec.App.0": stub
004f:fixme:wlanapi:WlanEnumInterfaces (00000001, 00000000, 0885F228) semi-stub
0039:fixme:dwmapi:DwmIsCompositionEnabled 00329E7C
0039:fixme:win:RegisterTouchWindow (0x10086 00000002): stub
0039:fixme:wtsapi:WTSRegisterSessionNotification Stub 00010076 0x00000000
0039:fixme:shcore:GetCurrentProcessExplicitAppUserModelID 00329CAC: stub
0039:fixme:win:RegisterTouchWindow (0x1008c 00000002): stub
0039:fixme:process:GetProcessMitigationPolicy (0xffffffff, 4, 0x32f38c, 4): stub
005f:fixme:msvcrt:_configure_wide_argv (1) stub
005f:fixme:msvcrt:_initialize_wide_environment stub
005f:fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub
005f:fixme:winsock:WS_EnterSingleProtocolW unknown Protocol <0x00000000>
005f:fixme:winsock:WS_EnterSingleProtocolW unknown Protocol <0x00000000>
005f:fixme:ntdll:EtwEventRegister ({d2d578d9-2936-45b6-a09f-30e32715f42d}, 0x6e5f70, 0x37ba840, 0x38022c8) stub.
005f:fixme:msvcp:_Locinfo__Locinfo_ctor_cat_cstr (0032FB58 1 C) semi-stub
005f:fixme:msvcp:_Locinfo__Locinfo_ctor_cat_cstr (0032F968 1 C) semi-stub
005f:fixme:gdi:GdiInitializeLanguagePack stub
0059:fixme:ntdll:NtLockFile I/O completion on lock not implemented yet
001c:fixme:process:WTSGetActiveConsoleSessionId stub
0058:fixme:shcore:SetCurrentProcessExplicitAppUserModelID L"Parsec.App.1": stub
005f:fixme:ntdll:NtQueryVolumeInformationFile 0x218: faking volume info
007b:fixme:kernelbase:AppPolicyGetThreadInitializationType FFFFFFFA, 010EFF04
0058:fixme:shell:propertystore_SetValue (0xa0e958)->(0x1038c114 0x32d6a8): stub
0058:fixme:process:WTSGetActiveConsoleSessionId stub
0058:fixme:process:ProcessIdToSessionId Unsupported for other processes.
0058:fixme:security:ImpersonateLoggedOnUser (000000F0)
0075:fixme:crypt:CRYPT_CheckUsages unimplemented for RequestedIssuancePolicy
0075:fixme:crypt:CRYPT_CheckUsages unimplemented for RequestedIssuancePolicy
0092:fixme:rawinput:RegisterRawInputDevices Unhandled flags 0x100 for device 0.
0092:fixme:rawinput:RegisterRawInputDevices Unhandled flags 0x100 for device 1.
0092:fixme:rawinput:RegisterRawInputDevices Unhandled flags 0x100 for device 2.
008f:fixme:crypt:CRYPT_CheckUsages unimplemented for RequestedIssuancePolicy
008f:fixme:crypt:CRYPT_CheckUsages unimplemented for RequestedIssuancePolicy
0099:fixme:avrt:AvSetMmThreadCharacteristicsW (L"Pro Audio",0D85FECC): stub
0099:fixme:avrt:AvSetMmThreadPriority (12345678)->(2) stub
0039:fixme:imm:NotifyIME IMC_SETCANDIDATEPOS
0039:fixme:imm:ImmReleaseContext (00010086, 04CE9168): stub
0099:fixme:avrt:AvRevertMmThreadCharacteristics (12345678): stub
0092:fixme:rawinput:RegisterRawInputDevices Unhandled flags 0x100 for device 0.
0092:fixme:rawinput:RegisterRawInputDevices Unhandled flags 0x100 for device 1.
0092:fixme:rawinput:RegisterRawInputDevices Unhandled flags 0x100 for device 2.
0039:fixme:win:UnregisterDeviceNotification (handle=0xcafeaffe), STUB!
0039:fixme:win:UnregisterDeviceNotification (handle=0xcafeaffe), STUB!
0039:fixme:iphlpapi:CancelIPChangeNotify (overlapped 0x3de8b1c): stub
0039:fixme:wtsapi:WTSUnRegisterSessionNotification Stub 00010076
0039:fixme:ntdll:EtwEventUnregister (deadbeef) stub.
0058:fixme:process:ProcessIdToSessionId Unsupported for other processes.

are you aware that there is a linux version of this clint in the AUR?

~ >>> yay parsec-bin                                                                                    
1 aur/parsec-bin 1:147_9-3 (+16 0.15%) 
    Remotely connect to a gaming pc for a low latency remote computing experience

no need for wine

It appears you didn't read the attached link.

I'm trying to get hosting working, which the official Linux client does not support.

Edit: The only clients that support hosting officially through Parsec are Windows 8.1 (which I'm trying to emulate) and Windows 10 (which crashes on install with Wine, 32 or 64 bit). The server editions of Windows listed on the parsec website appear to be on their way out.

Edit 2: Yes I've tried the -bin package for myself to see if it'll work for this feature. Multiple times. You can see a (nearly) full log of how the Parsec team seems to largely be ignoring this highly requested feature in the attached link.

1 Like

i can get the windows client running fine via wine, settings work, no crashes. but i dont see the hosting tab in settings.

assuming this is you?

Edit: Should clarify: Can't change account settings either on default settings, that crashed the application. We'll see what happens over the next 24h.

Yes that is me! The hosting tab doesn't show up for me either (which I hope I've made clear, but if not my apologies). The account tab seems to crash, however.

Edit: Again, Windows 8.1 (through wine), I can't get 10 to work and below 8.1 doesn't support hosting.

the problems i see with trying to make the hosting work is that hosting is not entirely dependent on connection but also dependent on if it can detect a gpu and control it as it could do on windows. i get this impression from the "turn on host" help section that mentions that a laptop with hybrid graphics may not work because the gpu is not connected to the display and this means that they check for that even though i dont see any reason why it would.

not to mention if this were to work you would need dxvk setup in wine. the way i ran it was via a wine prefix i already had setup via lutris. i'll try a few different prefixes and see if it makes a difference but im not very optimistic about it.

the problems i see with trying to make the hosting work is that hosting is not entirely dependent on connection but also dependent on if it can detect a gpu and control it as it could do on windows.

I'm using an AMD card right now. My understanding is that with Linux, AMD cards are at least better? At least when it came to wine Valve didn't have to change how the card operated like they did NVIDIA's for performance reasons.

i get this impression from the "turn on host" help section that mentions that a laptop with hybrid graphics may not work because the gpu is not connected to the display and this means that they check for that even though i dont see any reason why it would.

That I find to be strange, since, again, I'm using a Desktop with a single AMD card.

not to mention if this were to work you would need dxvk setup in wine. the way i ran it was via a wine prefix i already had setup via lutris. i'll try a few different prefixes and see if it makes a difference but im not very optimistic about it.

This might be exactly what I need. Either that or some opengl-based platform, since that's also supported through this client. I've tried loading the latest directx11 library through winecfg and that didn't do anything, but I'm not sure if that was even the right thing to do...

I also feel like there's something other than that I'm missing, something I glossed over. There usually is with this kind of thing. The website says to have port 5309 open, but the only thing using it is wine, through the Parsec client!

This does give me the idea to try the Hearthstone winecfg, as that requires Windows 10, dxvk, and a few other dlls if I recall correctly...

the reason i have doubts about it is not because of laptop/desktop or nvidia/amd, it's because it seems to be a requirement that it can detect the gpu and have control of it like it could on windows with very little in the way, but i could be wrong.

that was my reasoning for running it in one of the prefixes that lutris sets up because each game has a custom tailored prefix for that game only. and you dont need the game to get the prefix setup for it, this way is much easier because winetricks and winecfg are a tangled mess of contradicting settings and packages. choose any game that has an origin, or epic, blizzard, etc... and yes you'll get the epic client installed but you'll also get all the little settings, a recent setup of wine/directx/dxvk thats good enough to trick the bullshi1t protection they add the the client and that's the best bet for getting this working.

i've tried a few, that host tab never appears but in networking settings im able to set ports for both client and server and it restarts the daemon and shows the current ports i set just to check. i've never used parsec before now so i dont know how to check if the server is running correctly.

is this something where if your able to connect to me it works? if you want to test it, the user name i set on there was "I_DIE_QUICKLY" :sweat_smile: . let me know and i'll start it up

That requires a windows host, which I do not have ATM. I guess I could run a QEMU host to test something bare-bones...

Edit: My time to test this is limited, however, as I'm starting Graduate school tomorrow.

I just don't necessarily think this is a DOA issue, I feel like there's something that just needs more development/research time which I just don't have to offer ATM...

Edit 2: I misread yesterday: I wasn't sure on your wording:

Yes, this is a hosting app like that, but doing so requires a windows host server-side.

is that not the point of running it via wine? the prefix that seems to function the best is the one i already have installed for World War Z(lutris), which makes sense because it's new and requires a lot of the latest packages to work properly

2 Likes

Exactly, That's why I was trying to get it running in wine. Currently, there is no wine configuration that either of us have found that will load the hosting tab, no? Unless the World War z one will. So there's no way for us to test in this case unless one of us uses a Windows 8.1 or 10 host.

Edit: I realize I might not be 100% clear here: the point of Parsec is that one main machine acts as the host, while the other machines act as guest machines. The host broadcasts whatever program its running to the guests, and the guests can perform inputs to the host's computer based on whatever the host is broadcasting (could be a game, some high-end software that requires directx or similar, etc.) Parsec is able to perform this action to a greater degree of accuracy due to it working very low-level to the hardware, as opposed to other, similar streamers.

the only possiblity i see this working in is if parsec gives a shyte enough to make this happen on linux, or if you setup a windows VM with pci passthrough but this requires the VM to have exclusive control of your gpu so your linux host would need it's own separate gpu to run on.

well the good news is that this fixes the account tab issue. Bad news is that it doesn't fix the host tab issue.

Maybe we need the AWS executable? Since that's how Parsec delivers host info apparently

1 Like

i didnt see this, i only saw that you could "rent" a setup and pay by the hour for it, in that case it might be better to bite the bullet and dual boot windows :nauseated_face:

The setup you're refering to appears to be phasing out. And yuk dual booting windoze no thanks I don't want that adware crapware on my machines natively at all. I'd rather write the parsec source from scratch and there's no way I have time for that rn. I just wanted to try and get this working since Parsec seems to be ignoring it.

Edit: I especially hate windows for all the BSoDs (one where I wasn't on my machine for 2 months) and slowdowns (had issues running 2d pixel indie platformers from 2014 on a 6gb nvidia gfx card i7 and 32 gb ddr4 ram). And don't get me started on their office suite because there's times I have to use that crap too.

Edit 2: Yeah, funny how issues related to the OS seem to be nonexistant when I use anything Arch-based, but Windows natively on any of my machines is a malware rabbit hole waiting to consume my devices. It's almost like Windows is sloppily put together

1 Like

you wont hear me disagree with that logic, tell me linux is "broken" and i'll know it my fault, tell me windows is broken and i'll start looking for rooftops to jump from.

1 Like

It's all apparent in the communities and how they treat solving major problems when they come up.

Linux's Failsafe? Have an ISO of the current OS you use on a drive, mount your OS, and fix whatever you broke in the terminal, thereby still keeping your stuff.

Windows' Failsafe? Reinstall Windows and pray that none of your files/programs/etc. get overridden, and they almost always do anyway even if you select for none of them to be gone. Like seriously what's the point!?!?!?

1 Like

Wow that got off topic. I'll leave this open for now, because I'm still not 100% convinced that this issue is DOA. I'm sure many recent wine games utilize the hardware to some extent, even similarly to how Parsec handles it.

1 Like

OH.

MY.

GOD.

I THINK I MADE PROGRESS.

I selected windows 8 (not 8.1) for the World War Z wine config and the Hosting menu showed up! (I also added DXGI in winecfg from what I found in a Reddit post on the issue).

Edit: Sent you a friend request. I'm EdgyBama. Let's test this sucka.

Edit 2: It appears that DotNet 4.0 is installed with the World War Z Prefix, so ignore this edit...

Edit 3: Screencap as proof:

parsecwindows

2 Likes

Forum kindly sponsored by