fabiangreffrath / crispy-doom

Crispy Doom is a limit-removing enhanced-resolution Doom source port based on Chocolate Doom.
https://fabiangreffrath.github.io/crispy-homepage
GNU General Public License v2.0
800 stars 130 forks source link

No Rest for the Living does not work in multiplayer. #96

Closed Danfun64 closed 8 years ago

Danfun64 commented 8 years ago

Upon attempting to input "-merge nerve.wad" or "-file nerve.wad" into the multiplayer hosting command options and pressing F10, I get the error D_InitNetGame: Failed to connect to local server. "-solo-net" works, however.

Inputting "start crispy-doom -iwad doom2.wad -merge nerve.wad -privateserver -server -warp 1" in windows cmd does the same thing.

Danfun64 commented 8 years ago

doom2.wad is version 1.9. Using bfgdoom2.wad made no difference, nor does using Linux as the server OS.

fabiangreffrath commented 8 years ago

Hm, while https://github.com/fabiangreffrath/crispy-doom/commit/ac51126478d6883aef11462ee9535292c92cc1a7 fixes the issue, I am afraid (though pretty sure) that this breaks network compatibility with Choco when playing with NERVE.WAD as PWAD. If this is the case, another more rigorous fix needs to get applied.

Danfun64 commented 8 years ago

what network compatibility with Choco when playing with NERVE.WAD? NRFTL is limit removing. Unless the proposed plan for Choco to have Doom-Plus's limits goes through, this seems to be all that is necessary.

As for Hacx...

fabiangreffrath commented 8 years ago

Well, probably you are right. In this specific case, maintaining network compatibility with Choco for a WAD that would crash Choco anyway seems a bit pointless.

Else, I would have proposed the following patch to forcefully set gamemission to doom2 when starting a network game with NERVE.WAD:

--- a/src/doom/d_net.c
+++ b/src/doom/d_net.c
@@ -191,6 +191,11 @@ static void InitConnectData(net_connect_data_t *connect_data)

     // Game type fields:

+    if (gamemission == pack_master || gamemission == pack_nerve)
+    {
+   gamemission = doom2;
+    }
+
     connect_data->gamemode = gamemode;
     connect_data->gamemission = gamemission;
Danfun64 commented 8 years ago

Personally, I think that since prboom-plus and the unofficial nrftl.exe can probably play demos recorded from crispy-doom in multiplayer mode, it's a good thing you allowed the nerve gamemission to record its own demos.