2025-07-30 08:44 CEST

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0001255Spring engineGeneralpublic2009-01-14 19:13
ReporterMelTraX 
Assigned ToAuswaschbar 
PrioritynormalSeveritymajorReproducibilityhave not tried
StatusresolvedResolutionfixed 
Product Version 
Target VersionFixed in Version 
Summary0001255: Demofile has garbage before the startscript
DescriptionBetween header and startscript are a few bytes that don't belong there. Since the last few bytes of the startscript are missing, I guess that the size is correct though.

This is probably also the reason why no lobby lists replays atm while the basic structure hasn't changed.

Tested in spring_0.78.1.1-45-g989c41c.
Additional InformationArray
(
    [DemoFileHeader] => Array
        (
            [magic] => spring demofile
            [version] => 3
            [headerSize] => 116
            [spring_version] => 0.78+.0
            [gameID] => fdea6c49fbd24ddc48042fcc8b24631d
            [unixTime] => 1231874221
            [unixTimeHuman] => 2009-01-13 20:17:01
            [scriptSize] => 4336
            [demoStreamSize] => 834121
            [gameTime] => 1000
            [wallclockTime] => 1110
            [maxPlayerNum] => 19
            [numPlayers] => 20
            [playerStatSize] => 400
            [playerStatElemSize] => 20
            [numTeams] => 16
            [teamStatSize] => 81536
            [teamStatElemSize] => 76
            [teamStatPeriod] => 15
            [winningAllyTeam] => 0
        )

    [Data chunks] => Array
        (
            [Startscript] => (CHR 0)(CHR 0)(CHR 0)(CHR 0)9(CHR 17)(CHR 0)(CHR 0)49(CHR 17)[GAME]
{
  Mapname=DeltaSiegeDry.smf;
  StartPosType=2;
  GameType=Balanced Annihilation V6.61;
  ModHash=989582745;
  MapHash=-1900656736;
  AutohostPort=56414;


[...]


  {
  }
  [modoptions]
  {
    gamemode=0;
    startingresources=;
    startmetal=1000;
    startenergy=1000;
    maxunits=10000;
    limitdgun=0;
    ghostedbuildings=1;
    diminishingmms=0;
    fixedallies=0;
    limitspeed=;
    maxspeed=3;
    minspeed=0.3;
    disablemapdamage=0;
    deathmode=
            [Player statistics] => Array
                (
                    [0] => Array
                        (
                            [MousePixels] => 0
                            [MouseClicks] => 0
                            [KeyPresses] => 0
                            [NumCommands] => 0
                            [UnitCommands] => 0
                        )

                    [1] => Array
                        (
                            [MousePixels] => 509104
                            [MouseClicks] => 631
                            [KeyPresses] => 984
                            [NumCommands] => 339
                            [UnitCommands] => 1225
                        )
TagsNo tags attached.
Checked infolog.txt for Errors
Attached Files

-Relationships
related to 0001257resolvedAuswaschbar replay viewing is broken 
+Relationships

-Notes

~0003145

MelTraX (reporter)

Probably also the reason why demos can't be played back either.

~0003146

MelTraX (reporter)

In case you don't want to search: in 0.78.1.1 the startscript wasn't written at all after the header and scriptSize was 0.

In http://is.gd/fLx5 Auswaschbar tried to add it but there still seems to be a little problem with the approach.

~0003164

MelTraX (reporter)

[17:12:28] <[[ITER]]Satirik> btw the replay script is the one from the host or from the player ?
[17:12:51] <baczek> from the player, but the host sends its own script, too
[17:12:57] <baczek> so there should be two of them
[17:13:05] <baczek> but lemme check
[17:13:14] <[[ITER]]Satirik> nice
[17:13:37] <[[ITER]]Satirik> because having the rank flag etc is good for listing replays
[17:13:46] <[[ITER]]Satirik> and autohost don't add them
[17:14:15] <baczek> actually i'm not sure now
[17:14:30] <MelTraX> it should be the hosts..
[17:14:41] <MelTraX> that's what makes it difficult to write it into the file..
[17:14:42] <baczek> it looks like there are two identical scripts in a demo
[17:14:45] <MelTraX> because it's not there yet..
[17:14:50] <MelTraX> yeah, there are..
[17:14:57] <MelTraX> one in the stream, one after the header..
[17:15:16] <MelTraX> and that's correct imo..
[17:15:25] <MelTraX> just has a bug atm
[17:15:44] <baczek> what's the bug?
[17:15:57] <MelTraX> http://is.gd/fRmV
[17:16:00] <[[ITER]]Satirik> nope meltrax it should be the host's one
[17:16:11] <[[ITER]]Satirik> otherwise listing replays will suck
[17:16:22] <[[ITER]]Satirik> players won't have rank nor flag
[17:16:23] <MelTraX> "[17:14:30] <MelTraX> it should be the hosts.."
[17:16:31] <[[ITER]]Satirik> i meant the player's one
[17:16:41] <MelTraX> the players one doesn't even lists players..
[17:16:48] <[[ITER]]Satirik> tasclient does !
[17:16:53] <[[ITER]]Satirik> springlobby should too
[17:16:58] <MelTraX> the autohosts have to had country and rank..
[17:17:15] <MelTraX> the player script doesn't have to be correct though..
[17:17:22] <MelTraX> imo it should be the hosts..
[17:17:25] <baczek> i don't see anything truncated in the replay startscripts
[17:17:42] <[[ITER]]Satirik> ok
[17:17:59] <MelTraX> it's not truncated in there.. but it should begin after the header and last for scriptSize..
[17:18:01] <[[ITER]]Satirik> then we must ask licho and bibim to add ranks and flags to replays
[17:18:07] <MelTraX> but it doesn't begin after the header..
[17:18:18] <MelTraX> licho already said, he'd do it I think..
[17:18:19] <baczek> hmk
[17:18:27] <[[ITER]]Satirik> k
[17:18:38] <MelTraX> baczek, wait a sec.. I'll show you the output of my parser..
[17:19:57] <MelTraX> http://meltraxathome.homeip.net/ladder/Misc/Sandbox
[17:20:24] <MelTraX> the string(100) bit is the start of the demostream (atm containing the last bytes of the startscript)
[17:20:52] <MelTraX> and "[Startscript] => " begins with a few bytes that don't belong to the script..
[17:21:03] <MelTraX> the scriptSize header value is correct..
[17:21:28] <MelTraX> but it's not header, startscript, demostream, ... but header, junk, startscript, dunno, demostream..
[17:21:39] <MelTraX> the startscript probably overwrites some of the stream atm..
[17:22:03] <MelTraX> before http://is.gd/fLx5 it was 0.78.1.1 behaviour.. no script after the header at all..
[17:22:14] <MelTraX> after it it was like it's now..
[17:24:34] <baczek> it's hard to overwrite the stream
[17:24:59] <baczek> but maybe there's some garbage getting written
[17:26:18] <[[ITER]]Satirik> meltrax can you send me a replay from the upcoming spring ?
[17:26:28] <[[ITER]]Satirik> to check if tasclient read it correctly
[17:26:31] <[[ITER]]Satirik> reads
[17:26:33] <MelTraX> the problem is that the demostream already started when you have to write the startscript in there..
[17:26:57] <MelTraX> upcoming springs replays are still broken.. or do you wanna check that I'm right that they're broken? :D
[17:27:03] <[[ITER]]Satirik> mmmh
[17:27:05] <[[ITER]]Satirik> broken how ?
[17:27:12] <[[ITER]]Satirik> just the few chars before the [game] ?
[17:27:17] <MelTraX> that's what we're discussing atm.. read the chat :D
[17:27:18] <MelTraX> yeah
[17:27:33] <[[ITER]]Satirik> i wonder if the tdf parser of tasclient can handle that
[17:27:34] <MelTraX> and the demostream is also overwritten or incomplete or whatever..
[17:27:35] <[[ITER]]Satirik> that's why i ask :)
[17:27:39] <[[ITER]]Satirik> ah
[17:27:58] <MelTraX> http://92.196.113.82:9999/20090113_201701_DeltaSiegeDry_0.78%2B.0.sdf
[17:28:15] <MelTraX> I don't think you can handle it though..
[17:28:25] <MelTraX> the bytes at the beginning are missing at the end (length-wise)
[17:28:37] <baczek> at the end of the replay?
[17:28:37] <MelTraX> ofc you could hack it ;
[17:28:38] <MelTraX> )
[17:28:47] <MelTraX> no, at the end of script text..
[17:29:04] <MelTraX> reading the player info after the demostream works though..
[17:29:24] <MelTraX> so scriptSize+demoStreamSize seem to be correct..
[17:29:39] <MelTraX> I tried to move the startscript for that many bytes, but it wouldn't work
[17:29:55] <MelTraX> so the bytes before the script are not the beginning of the demostream


(if the meltraxathome link is down, ask me)
+Notes

-Issue History
Date Modified Username Field Change
2009-01-13 22:32 MelTraX New Issue
2009-01-13 22:40 MelTraX Note Added: 0003145
2009-01-13 22:57 MelTraX Note Added: 0003146
2009-01-14 16:46 imbaczek Relationship added related to 0001257
2009-01-14 17:43 MelTraX Note Added: 0003164
2009-01-14 19:13 Auswaschbar Status new => resolved
2009-01-14 19:13 Auswaschbar Resolution open => fixed
2009-01-14 19:13 Auswaschbar Assigned To => Auswaschbar
+Issue History