Skip to content


Subversion checkout URL

You can clone with
Download ZIP


Unknown Data Structure: '10' #100

dsjoerg opened this Issue · 6 comments

3 participants


In ggtracker@2fd482b

I committed a new test that is failing on a replay.
SC2Gears can't read it either. And most curiously, I can't open the replays in SC2 itself, neither my WoL nor HotS can open them. I asked the submitter about this and he said "it could be something to do with the fact that I'm using sc2switcher.exe; they seem to open fine in the client but I thought I'd let you know that those who use switcher client might experience problems with ggtracker."

I have seven more replays like that if you need them.
The submitter also said "I do believe I used to WoL and if I remember correctly the version number was something along the lines of I will however check when I get home! ^^ NA region would be my region."


Does anyone know what he means by "I'm using sc2switcher.exe"?

Also, mpyq can't extract the files to disk for me to look at. Maybe @arkx has an idea what the root issue here is:

(env)graylinkim@graylin-ubuntu:~/projects/sc2reader$ mpyq -x test_replays/\ Flats.SC2Replay 
Traceback (most recent call last):
  File "/home/graylinkim/projects/sc2reader/env/bin/mpyq", line 8, in <module>
    load_entry_point('mpyq==0.2.0', 'console_scripts', 'mpyq')()
  File "/home/graylinkim/projects/mpyq/", line 392, in main
    archive = MPQArchive(args.file)
  File "/home/graylinkim/projects/mpyq/", line 99, in __init__
    self.hash_table = self.read_table('hash')
  File "/home/graylinkim/projects/mpyq/", line 170, in read_table
    return [unpack_entry(i) for i in range(table_entries)]
  File "/home/graylinkim/projects/mpyq/", line 168, in unpack_entry
    struct.unpack(entry_class.struct_format, entry_data))
struct.error: unpack requires a string argument of length 16

I guess I'm not going to dig very deep into this until someone tells me that sc2switcher.exe is legitimate and that what ever it is doing to replays should be supported.


sc2switcher.exe is a program from Blizzard that is part of SC2. On Windoze it's in the Support folder, and you can run it directly. I won't pretend to understand exactly what role it plays, but it seems like it might skip part of the auto-patching process that happens when you launch SC2 the regular way.

@GraylinKim GraylinKim referenced this issue in eagleflo/mpyq

Invalid hash_table_offset? #19


I'm moving this issue over to the mpyq issue tracker where it is more appropriate. From what I've seen the MPQ file seems corrupt. Maybe @arkx knows something I don't though.


I gave a detailed answer in the above mpyq issue, but in short the replay file provided had a misaligned header. In general, if you can't open the replay files with your SC2 client, it's corruption.


Putting this issue on hold until eagleflo/mpyq#20 is closed.


Actually, re-reading eagleflo/mpyq#19 again we should just close this entirely and open up a new issue if we find a valid MPQ3 format file in the future.

@GraylinKim GraylinKim closed this
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.