fabiangreffrath / woof

Woof! is a continuation of the Boom/MBF bloodline of Doom source ports.
GNU General Public License v2.0
208 stars 34 forks source link

No Demo Playback on Legacy of Rust #1853

Closed OpenRift412 closed 4 weeks ago

OpenRift412 commented 4 weeks ago

I don't know if it has to do with the demo format that Legacy of Rust uses (does ID24 have its own demo format?), but in both the latest full release and latest dev build, the internal demos don't seem to play at all.

ceski-1 commented 4 weeks ago

KEX uses a new demo format. Xaser shared some details here. I'm not sure if the demos are intended to work with other source ports, but it may be worth investigating.

rfomin commented 4 weeks ago

The KEX port has an independent implementation of Boom/MBF/MBF21, which is not demo compatible with Woof/DSDA-Doom. If we want compatibility with LoR demos, we need to implement ID24 and a another version of Boom/MBF/MBF21 standarts, I don't think that's going to happen.

OpenRift412 commented 2 weeks ago

The KEX port has an independent implementation of Boom/MBF/MBF21, which is not demo compatible with Woof/DSDA-Doom. If we want compatibility with LoR demos, we need to implement ID24 and a another version of Boom/MBF/MBF21 standarts, I don't think that's going to happen.

Thinking this over, LoR's GAMECONF lump defines compatibility as ID24, so I only assume that it would be its own distinct set of unique behavior compared to Boom/MBF/MBF21, right? Or am I getting that wrong?

rfomin commented 1 week ago

Thinking this over, LoR's GAMECONF lump defines compatibility as ID24, so I only assume that it would be its own distinct set of unique behavior compared to Boom/MBF/MBF21, right? Or am I getting that wrong?

ID24 includes the Boom/MBF/MBF21 standards. The problem is that Doom demos are desynchronized if even the slightest detail in the playsim implementation is different, so we have to copy the Boom/MBF/MBF21 implementation in the KEX port exactly to support LoR demos.

OpenRift412 commented 1 week ago

ID24 includes the Boom/MBF/MBF21 standards. The problem is that Doom demos are desynchronized if even the slightest detail in the playsim implementation is different, so we have to copy the Boom/MBF/MBF21 implementation in the KEX port exactly to support LoR demos.

So I guess the best course of action would be waiting for Kex's Boom/MBF/MBF21 implementation to become more accurate?

rfomin commented 1 week ago

So I guess the best course of action would be waiting for Kex's Boom/MBF/MBF21 implementation to become more accurate?

As I understand it, they can't even look at PrBoom+ sources, so making the Kex port demo compatible with PrBoom+/DSDA-Doom/Woof is a huge task. For example, to archive vanilla demo compatibilty, source ports have to emulate buffer overflows due to lack of memory protection in DOS.

LoR demos are not long, perhaps they could work in Woof with some minimal modifications, but I doubt the Kex port will be used to record demos, so supporting it for only 3 demos is impractical.