HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

Notice to MPQ Editor Writers

11-18-2004, 10:14 PM#1
Quantam
There is a new "official" (as official as the "CEX" system, which has been used almost universally, thus far) flags system for listing files in MPQs. I invented the CEX system for MPQ2K, and it worked well enough, as those were almost the only flags that were identified at the time.

But now it's rather out of date, and a new system is needed. The new system is basically an expanded version of the old system: single letter flags in the string "DBMCEXS", which are '-' if the flag isn't set. However, the new system is case insensitive, and one flags's value has changed. The full list:

D - file is deleted (0x80000000 not set. this flag can be omitted if the editor only lists files that aren't deleted, or indicates deleted files in some other way, such as greying the file entry)
B - single block ("solid") file (0x01000000)
M - file has metadata (0x40000000)
C - compressed (0x00000200. not ZLib, as MPQEx says it is) or I - imploded (0x00000100, previously 'c')
E - encrypted (0x00010000)
X - offset adjusted encryption key (0x00020000)
S - digital signature (0x10000000)
11-18-2004, 11:20 PM#2
BlacKDicK
I also noticed that they added support for bzip2 compression:
0x01 = Huffman Compression
0x02 = Zlib Deflate Compression
0x08 = PkWare Implode Compression
0x10 = bZip2 Compression (Altough I am not 100% sure)
0x40 = Ima ADPCM Mono Compression
0x80 = Ima ADPCM Stereo Compression

Quantam, the single sector ("solid") file are easy to understand. Could you plz tell me an example of the "metadata" files and "digital signature" files (wich mpq, wich files) so I can take a look on them? I also noticed that some files have the 0x00000001 flag set wich it seems to tag the file as a dummy file or empty/erased file. Still need to look on those files tough.
11-19-2004, 06:41 AM#3
Quantam
Quote:
Originally Posted by BlacKDicK
Quantam, the single sector ("solid") file are easy to understand. Could you plz tell me an example of the "metadata" files and "digital signature" files (wich mpq, wich files) so I can take a look on them? I also noticed that some files have the 0x00000001 flag set wich it seems to tag the file as a dummy file or empty/erased file. Still need to look on those files tough.
0x00000001 would have been generated by an incompetant MPQ library. That's a flag to the library that specifies the file should be deleted before being added (in effect, overwrite the file if it exists); competant editors will mask that off before putting it in the file table (then again, competant editors will properly delete files, too...).

IIRC, the digital signature flag is used in some of the newer patches, on the weak digital signature files. Can't recall off the top of my head, but Skywing sent me a couple of MPQs when the flag showed up in MPQDump dumps of the archives, so that I could figure out what it was.
11-28-2004, 06:40 PM#4
terranghost
I add new flag system to PowerMPQ, but all files have the Deleted Flag. Why??
11-29-2004, 08:11 AM#5
BlacKDicK
terranghost u got it the wrong way. Let me try to explain.
The flag "D - file is deleted" actually does not exists at all. The one you u can check is 0x80000000, known as MAFA_EXISTS on SFmpq, for an example.

Quantam just recommends us to tag the files as "D - file is deleted" whenever 0x80000000 is not found for that file. The behavior is simple: instead of tagging a lot of files as existing files we only tag the ones without 0x80000000 as "deleted files". Actually you probable don´t have to bother with it unless the editor is listing ALL the files from the Mpq, as Quantam says:

Quote:
this flag can be omitted if the editor only lists files that aren't deleted