15.06.2019, 16:26
|
|
Регистрация: 07.02.2008
Возраст: 35
Сообщений: 485
Вы сказали Спасибо: 378
Поблагодарили 227 раз(а) в 130 сообщениях
Сила репутации: 1Репутация: 229 
(весьма и весьма положительная личность)
|
Пообщался я немного с автором IrisTool (утилиты для просмотра ресурсов Beyond Good and Evil), он дал пищу для размышлений:
Parsing bin files are a very complex task. You can only parse those files correctly, if you read exactly the same as game does. Every chunk in bin files have a key, but game simply not uses them, because of binarized format. I can tell, how BGE works, but I have no idea, if it is true for POP games. (I believe, more or less true). Every map related bin file (ff00xxxx.bin, POP games have more meaningful filename, eg map name) starts with world list keys. (You can find same in the wol file with same name as bin). After game collected world keys, it starts read the first world chunk (starts with .wow chars). It can contain more keys, game stores them for further read. After first wow read, it reads second, then third, then etc. After last wow chunk it will read, the first key, what found in first wow chunk. You can not detect, what is the next chunk type, and how should be read (eg ints, bytes, structs, etc), if you are not following game logic. You have to reverse engineer every chunk type, if you want to parse bin files from the beginning to end. There are differences BGE and POP games, BGE only load only one bin file at a time, and loads another one on level change, POP games load several bin files same time. BGE stores textures in separate bin files (ff80xxxx.bin), every POP ff00xxxx bin file contain map data (geometry, bones, scripts, etc) and the second part of the a file contains textures. If you are parsing bin files, you should store how many textures should be read, otherwise there are no way to extract textures correctly. For BGE most of it's textures are paletted textures. It's very difficoult to read, because palettes are stored at different place, than index information. Can you extract every textures from the game?
I hope, you understand, why I don't want to do these things for POP games too. They changed file formats in every game, and POP games lives different life after the beginning.
|
|
|
|