GraylinKim / sc2reader

A python library that extracts data from various Starcraft II resources to power tools and services for the SC2 community. Who doesn't want to hack on the games they play?
http://sc2reader.readthedocs.org
MIT License
414 stars 85 forks source link

Replay from latest SC2 fails to parse #11

Closed jjacobsson closed 13 years ago

jjacobsson commented 13 years ago

Parsing this http://dl.dropbox.com/u/10271756/Season%202/Metalopolis.SC2Replay replay results in a "Unknown event: 0x0 - 0x9a at 0x15" exception being throw.

That replay was recently recorded with the latest build of StarCraft 2.

GraylinKim commented 13 years ago

The actual problem is with the event before it which is an 0x08 type camera movement event. This type of event is pretty rare and not exactly understood. Running through the dozen test replays in the repo, I only get 1 instance of this event and it (as is yours) is recorded before the game initialization events (player join and game start).

I'll run through a larger replay set to find the events to see if there is a pattern of sorts. Let us know if you run into more parse errors.

jjacobsson commented 13 years ago

So after doing some really really shallow digging (ahem, I need to rtfm more.) I found that I can use NoEventsConfig and bypass this entire issue.

Since I'm not really interested in events (yet) that works. Bugg still exists ofc. Just thought you would want to know.

GraylinKim commented 13 years ago

Well @jjacobsson, let me get on writing that manual before you try and go reading it. I'm glad you found a way around it though. On the development branch that method of configuration has changed, but the capability is there, so you should be fine when you upgrade to cover the 1.3.3 patch.

Still haven't fixed the bug yet though; I would really like more examples of this kind of event happening if you could find them somehow. It would certainly help with correcting the parsing.

GraylinKim commented 13 years ago

Hey @jjacobsson!

I went and parsed through about 600 replays today and found 6 miss behaving 0x08 camera events and managed to fix the parsing. Update from the obslibmerge branch and give it a shot.

Some things may have changed since the version you are on right now but the manual is up to date for the little information currently included.