Bug Tracker – Bug 1245

Regression: vanilla demo lmps desync in 0.8.0, depending on client config

Last modified: 2019-02-23 15:03:05 CST
Bug 1245 - Regression: vanilla demo lmps desync in 0.8.0, depending on client config
Summary: Regression: vanilla demo lmps desync in 0.8.0, depending on client config
Status: NEW
Alias: None
Product: Odamex
Classification: Unclassified
Component: Client (show other bugs)
Version: 0.7.x (Old)
Hardware: x86 (Windows, Linux, etc) Linux
: P5 minor
Assignee: Odamex Bug Reporter
URL:
Depends on:
Blocks:
 
Reported: 2019-01-24 19:53 CST by Ant P.
Modified: 2019-02-23 15:03 CST (History)
2 users (show)

See Also:

Attachments

Add an attachment (proposed patch, testcase, etc.)

Note You need to log in before you can comment on or make changes to this bug.
Description Ant P. 2019-01-24 19:53:42 CST
I've noticed a bunch of stuff that seems like it ought to work no longer does in 0.8 - every demo in old iwads looks normal, but outside that it's hit-or-miss. However, I've noticed the desync vanishes *sometimes* if I run odamex with a completely default config file - i.e. `odamex -config /dev/null -iwad doom2 -pwad $etc`.

Works 100%:
- doom.wad (md5sum c4fe9fd920207691a9f493668e0a2083)
- doom2.wad (25e1459ca71d321525f84628f45ca8cd)
- plutonia.wad (75c8cf89566741fa9d22447604053bd7)
- tnt.wad (4e158d9953c79ccf97bd0663244cc6b6)

Broken:
- freedoom1.wad v0.11.2 (6d00c49520be26f08a6bd001814a32ab)
  * demo 1 (E1M6) is a 4-player co-op that goes out to lunch almost instantly. Empty config *doesn't* help.
  * demo 3 (E4M3) is singleplayer, but spends its time staggering around the starting room inspecting walls
- freedoom2.wad v0.11.2 (90832a872b5bb0aca4ca0b20419aad5d)
  * demo 2 (map20) dies trying to escape the starting room. Might just be because mike's playing it though.
  * demo 3 (map22) is similarly confused, but this one's co-op
- freedm.wad v0.11.2 (9352b09ae878dc52c6c18aa38acda6eb) -- all demos are DM, and completely desynced

Tests on the demo1 of a few pwads:
- av.wad only works with empty config
- brit11.wad works with empty config
- btsx_e1.wad is OK
- mm.wad's 2-player co-op starts out fine, but desyncs once the players interact toward the end, and null config doesn't help
- mm2.wad is OK
- scythe.wad is OK

All of my old .odd demo files from 2012-2014 are broken too, but I guess those were never expected to work indefinitely…
Comment 1 Maëllig Desmottes 2019-01-25 18:36:05 CST
.odd files are normal. Since there's some protocol changes, you'll need Odamex 0.7.0 to make these run.

About vanilla .lmp ones, good catch. Demo compatibility is sadly still not 100% perfect and are prone to desync since we have to replicate to the perfection the vanilla demos.

However, you said those demos were perfectly working since 0.7.0 ?
Comment 2 Ant P. 2019-01-25 21:14:14 CST
Oh. I just installed 0.7.0 to check and it seems to break in exactly the same places.
I've definitely seen these working correctly in it though... maybe I had less wonky config settings at some point.

Would it even be worth spending effort to fix this then? I know it'd be nice to have from a preservation angle, but if I'd known it was previously broken I probably wouldn't have bothered reporting the bug…
Comment 3 Maëllig Desmottes 2019-01-26 06:58:48 CST
Could you check them in 0.6.X if you have some time, to see from what version the desyncs happened ?

Also, I take care of .lmp playback very carefully, because it shows how close to vanilla we can be. And ZDoom making some physic changes to Doom, we need to find them, and fix them back.
Comment 4 Ant P. 2019-01-26 15:15:05 CST
(In reply to Maëllig Desmottes from comment #3)
The oldest revision that successfully builds on my current system is dead164dc6fdc (0.6.4) - and it breaks in the same way.

So I tried bisecting the config file instead. That gave me answers, but they're bizarre:

- removing "set cl_weaponpref1 1" makes brit11.wad sync
- removing "set cl_showspawns 1" makes av.wad sync.

I've noticed that in the desync case, the player spawns are actually different positions. Something consuming RNG values when it shouldn't be?
Comment 5 Maëllig Desmottes 2019-02-23 15:03:05 CST
I made a pull request force-disabling "visible spawnpoints" , since it actually adds spawns (and thus, new entities) to the demo, making it desync.

I didn't see the desyncs for the AV demos though, so I'll need confirmation from your end.