aluigi wrote:P.S.: why there are 2 headers? should the first one be ignored?
That's where the things get complicated... in my tests, when there's 1 "CHUNKS", there's 2 Headers, more than 1 "CHUNKS", only one header, but I still have my doubts...
You will need use findloc to get the "idstring", somethimes there's 4 or 8 bytes before... (AC Liberation HD have at least one RAW with 5 bytes before)
You need check if there's a "idstring", otherwise the RAW is not compressed.
Your "VER" check will not work with all RAW. Assassin's Creed III has VER = 1 and the CHUNKS is short.
It's needed to colect many informations in *.forge package to determinate how each RAW data should be readed...
The same game could have diferente forge version and the same forge version could have a different structure in diferent games... many Ubisoft studios working on same game and the result was this mess...
I can provide to you samples of the all games if you have interest in solve this mistery... because I'm almost giving up...
PS.: MichaelDarkAngel Wiki have some mistakes too.