View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
---|---|---|---|---|---|---|---|---|---|
0001255 | Spring engine | General | public | 2009-01-13 22:32 | 2009-01-14 19:13 | ||||
Reporter | MelTraX | ||||||||
Assigned To | Auswaschbar | ||||||||
Priority | normal | Severity | major | Reproducibility | have not tried | ||||
Status | resolved | Resolution | fixed | ||||||
Product Version | |||||||||
Target Version | Fixed in Version | ||||||||
Summary | 0001255: Demofile has garbage before the startscript | ||||||||
Description | Between 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 Information | Array ( [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 ) | ||||||||
Tags | No tags attached. | ||||||||
Checked infolog.txt for Errors | |||||||||
Attached Files |
|
![]() |
||||||
|
![]() |
|
MelTraX (reporter) 2009-01-13 22:40 |
Probably also the reason why demos can't be played back either. |
MelTraX (reporter) 2009-01-13 22:57 |
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. |
MelTraX (reporter) 2009-01-14 17:43 |
[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) |
![]() |
|||
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 |