crispy-doom icon indicating copy to clipboard operation
crispy-doom copied to clipboard

Allow netplay with sideloaded WADs

Open DankRank opened this issue 1 year ago • 2 comments

NET_SV_ParseGameStart checks that episode and map are in the correct range. This prevented the episode 5 version of Sigil, as well as sideloaded NRFTL and Master Levels from working in netgames.

This is fixed by changing the number of episodes in the valid_modes table. As a side effect, setup program will now allow warping to E5Mx for the Ultimate Doom IWAD. Outside of Heretic, the valid_modes table is only used for these two things (netgame validation and setup warp UI).

Note that if you try to start a netgame with a non-existent map, the client will simply exit with a W_GetNumForName error.

DankRank avatar Apr 08 '23 20:04 DankRank

Looks like there are open issues for this already: #455 and chocolate-doom/chocolate-doom#875.

I don't think there's a way to prevent clients from erroring out when a map is missing without redesigning the protocol. The server doesn't know which maps players have nor does it know what will be the starting map, because that info only becomes available after the controlling client sends GAMESTART. At that point, every client has already received LAUNCH and closed the GUI. In any case, the MD5 check will give the user an early notice, so this isn't as big of a problem as it might first seem.

Also, note that valid_modes isn't used on the client side. This means that both chocolate and crispy clients will react identically to this change. In particular, chocolate can play E5Mx maps on a patched server just fine (of course Sigil won't work due to the visplane limit, but that's a different matter). Perhaps the server shouldn't validate episode/map at all?

DankRank avatar Apr 18 '23 01:04 DankRank

I'd prefer if people would explicitly load PWADs when attempting network games. Doesn't sound to me like that's asked too much.

fabiangreffrath avatar Apr 18 '23 05:04 fabiangreffrath