Menu

#665 playdemo (and timedemo) doesn't work.

Always occurs!
closed-fixed
None
5
2020-10-12
2020-06-10
Janez
No

Recording still seems to be working, an .lmp file is created, but the recorded demo cannot be played.
A strange "Start in 0" message appears but nothing happens.
This happens on Fedora 31 and the latest version of Legacy 1.48.4

1 Attachments

Discussion

  • Wesley Johnson

    Wesley Johnson - 2020-06-12

    That message is from network play.
    The release of 1.48.4 was held up due to network play issues, so there were many changes.
    Why regular doom demo still play, is the mystery.

     
  • Wesley Johnson

    Wesley Johnson - 2020-06-16
    • status: open --> pending-fixed
     
  • Wesley Johnson

    Wesley Johnson - 2020-06-16

    Fixed SVN 1538.

    DoomLegacy demos issue a map command using the player 0 textcmd channel.
    New checks on textcmds were blocking the map textcmd to load the map, because player 0 was not in the game yet.
    Fixed the demo playback to use SERVER_ID channel for textcmds issued before player 0 is in the game. This allows the map command to go through.

     
  • Wesley Johnson

    Wesley Johnson - 2020-06-16
    • assigned_to: Wesley Johnson
     
  • Janez

    Janez - 2020-06-17

    I hate to bother you, but it still doesn't work.
    I downloaded and compiled SVN 1538 and this is what I get when I try to playback a demo:

     

    Last edit: Janez 2020-06-17
  • Wesley Johnson

    Wesley Johnson - 2020-06-20

    The screenshots do not really help much. That screenshot looks normal, no error messages.
    The description of what happened is generally much more useful.

    There are three ways to start a demo, command line, console, or embedded in a wad. I need to know which you used.

    The DoomLegacy demo must have a map command in it to start the playing. Without the map command, it will just sit there. DoomLegacy demo record should record the map command that starts the level, assuming it was recorded in a normal manner.
    If the demo comes from somewhere else, then maybe not.

    If you send the demo (zipped) then I can test how it interacts with DoomLegacy.
    There is a huge header on the demo that details everything about how to run it.

    Please inform if this demo is of some importance, such as it will be made public.
    How many people will be affected if DoomLegacy cannot play it?

    Demo playing is a maintenance pain, and demo version compatibility is not fully maintained right now.
    Right now, putting in code to play a particular demo is low priority, up until I find out about some
    publically available demo that many users might run across.

    You should always be able to play a demo recorded with the same version of DoomLegacy.

     
  • Janez

    Janez - 2020-06-20

    As I wrote before I'm using SVN 1538 and this is the command line I used to record a demo:

    [janez@core2duo doomlegacy-svn-r1538]$ ./doomlegacy -iwad /mnt/dos/games/doom2/doom2.wad -skill 4 -warp 1 -record level01

    then I tried to playing it with this:

    [janez@core2duo doomlegacy-svn-r1538]$ ./doomlegacy -iwad /mnt/dos/games/doom2/doom2.wad -playdemo level01

    Or just by writing "playdemo level01" on the console, but the demo never start to play.

    Anyway, the console gives me this list of errors:

    namecolor: invalid player num 32
    got unknown net/demo command (2)=0 len=15
    got unknown net/demo command (3)=106 len=15
    got unknown net/demo command (4)=97 len=15
    got unknown net/demo command (5)=110 len=15
    got unknown net/demo command (6)=101 len=15
    got unknown net/demo command (7)=122 len=15
    got unknown net/demo command (8)=0 len=15
    got unknown net/demo command (9)=109 len=15
    got unknown net/demo command (10)=97 len=15
    got unknown net/demo command (11)=114 len=15
    got unknown net/demo command (12)=105 len=15
    got unknown net/demo command (13)=110 len=15
    got unknown net/demo command (14)=101 len=15
    got unknown net/demo command (15)=0 len=15

    I add the screenshot with the list of errors and the recorded demo as attachments.

     
  • Wesley Johnson

    Wesley Johnson - 2020-06-30

    The problem was worse than just the SERVER_PID textcmd. I tried several fixes, and each ended up have some flaw. I had to abandon extending the older format and create a new incompatible demo format for 1.48 demos.
    I had been trying to put this off tackling the demo format to get 1.48 released, but had to decide something.

    The entire textcmd buffer is copied into the player 0 textcmd slot, which is always present as it was already being used before player 0 was present. The Ver 1.48 textcmd format has player id already embedded in the buffer, so this ignores the existing demo player structure.
    Conversion of textcmd to demo format and back again is no longer needed, and does not introduce new errors anymore.
    The checks that were blocking textcmd before player 0 is present have been disabled for demo playback.

    Because the SERVER_PID is now recorded in the demo, I had to change the value to something with a long-term viewpoint. This changes SERVER_PID from 32 to 250, which would allow expanding the number of players.
    I think I managed to make it netgame compatible with 1.48.4.

    patched svn 1539

     
  • Wesley Johnson

    Wesley Johnson - 2020-06-30

    All demos recorded with 1.48.4 are corrupted. It might be possible to recover them by editing in the missing information by guesswork. I will not undertake that work unless I know if there are any important demos recorded using Ver 1.48.4.

    This does not affect demos recorded with 1.47 or earlier. Those can still be played.

     

    Last edit: Wesley Johnson 2020-06-30
  • Janez

    Janez - 2020-06-30

    Great, it works now.
    Thank you.

     
  • Wesley Johnson

    Wesley Johnson - 2020-10-12
    • status: pending-fixed --> closed-fixed
     

Log in to post a comment.

MongoDB Logo MongoDB