Possible lines of interest from the log:
err:winsock:interface_bind Failed to bind to interface, receiving broadcast packets will not work on socket 04b4.
sendto failed with code -1 for char 5 and length 1464.
It may be worth pointing out that this happens when you try making a Solo/AI game. Also, this applies to Journey Mode. From what I've gathered, the issue is also present on Windows 10 (but not 11). Which is odd given 10 is explicitly listed as supported, while 11 is not.
I am not C programmer but the cause of this issue seems to be
Adding in the following for testing resolves the issue but is clearly a hack. I think what is happening is that it passes a nil address and a length of 0 which I guess means in Windows land "localhost", but I could be wrong.
else if (errno = EINVAL){
async->sent_len += 3000000;
return STATUS_SUCCESS;
}
Instead of a network error you get greeted with the proper screen and can even make a game and play!

I am not C programmer but the cause of this issue seems to be
Adding in the following for testing resolves the issue but is clearly a hack. I think what is happening is that it passes a nil address and a length of
0which I guess means in Windows land "localhost", but I could be wrong.else if (errno = EINVAL){ async->sent_len += 3000000; return STATUS_SUCCESS; }
@beef331
i tried to reproduce this by inserting your code between Lines 819/820 and compiling wine (proton-ge-7.28 in my case) but it still wouldn't let me host a game. Then i noticed there is only one '=' in the condition of your code, which can't be right, so i changed it to '==' and that obviously fixed it. guess you just made a typo somehow.
thank you for this (albeit hacky) workaround. would be nice if you could specify where exactly you inserted the code and what it does there next time. took me a good 10 minutes to figure out where it should go and why.
i hope they manage to fix this network adapter problem in Spellforce itself, rather than making us linux users chase some workarounds. from what i've gathered it seems to be a problem with unused network adapters, which the game will try to bind to, because they are ahead of the active connection in the priority order for some reason. maybe due to a lack of priority all together. like @nstgc said, this is also an issue on windows 10 machines and their workaround is to disable all inactive network adapters. i wish we could do the same through wine somehow.
Ah sorry, for some reason the networking stack in spellforce calls the linux sendMsg with invalid values which causes an error, the following is the verbatim bodge fix:
while ((ret = sendmsg( fd, &hdr, async->unix_flags )) == -1)
{
if (errno == EISCONN)
{
hdr.msg_name = NULL;
hdr.msg_namelen = 0;
}
else if (errno == EINVAL){
async->sent_len += 3000000;
return STATUS_SUCCESS;
}
else if (errno != EINTR)
{
if (errno != EWOULDBLOCK) WARN( "sendmsg: %s\n", strerror( errno ) );
return sock_errno_to_status( errno );
}
}
Hi any new on this ?
Is it possible to apply you fix on Proton-GE ?
yes it's possible, i used proton-ge-7.28. just pull the proton-ge repository instead and modify the socket.c file before compiling it.
also i'd like to report that connecting to the hosted lobby still wasn't possible for me and a friend when we tried to play together. the lobby appears in the online list, but connecting to it will just time out. i'm not sure if that's because of this workaround or another problem all together.
i asked about this on the spellforce discord and they recommended trying the beta branch on steam which apparently contains some networking bug fixes. unfortunately i don't own the game on steam, so i can't verify if it works there. if someone does, please share if it works!
It's likely the bodge does not allow the game to work properly and just allows local skirmish to work. The beta branch does not behave differently.
This merge request does allow the game to work (played an online skirmish atleast). https://gitlab.winehq.org/wine/wine/-/merge_requests/2100 So whatever happens with that will hopefully solve the issues.
Nothing extracted yet.
Compatibility Report
System Information
GPU: GTX 1070 TI
Driver/LLVM version: Nvidia 430.50
Kernel version: 5.0.0-31-generic
Link to full system information report as Gist: https://gist.github.com/o-bri/fef0d71171f1885658261955bdfa2388
Proton version: 4.11
I confirm:
steam-817540.log
Symptoms
The Game seems to run in Single Player Mode.
But it is not possible to host a coop session, to play with another player in coop.
In the main menu of the game, I tried this:
Then, after a few seconds, it gives the Message "Network Request failed. (unknown error)"
I tried this yesterday and today, also the one I wanted to play with tested it (similar PC with Kubuntu).
Reproduction
Just follow the steps mentioned above :-)