As I’m writing this post, I’m waiting for the extractor tool I have to give me some result after adding a bit of code with timing info (just total duration), since the export is taking an enormous amount of time.
So what I have been doing between the previous post and this one is trying to understand 2 file formats that the game uses that I don’t export from yet.
One of them is called DBI, which seems to custom made, it contains an Autodesk license (on text, like you would write it on code file), and even error messages for things I don’t think I’ll ever seen inside the game.
As my experience reading through undocumented binary formats that I haven’t written is limited, I had to call it a day and leave the DBI files format unsolved.
The other one is the FF file, that starts with the magic word “MFF”. I haven’t found any reference to it online, so I started looking at it on my own. These videos from Mr House helped a lot on this.
I think I understand the file format, so here’s the file structure for the FF file (there’s only one file like that in the game) is more or less as follows:
- 4 bytes, magic word MFF, followed by \0.
- Index of files in the archive header
- 4 bytes with the amount of files in the archive.
- An entry for each file
- 256 ASCII chars, file path
- 4 bytes, offset to the file contents on the file.
- 4 bytes of 0’s.
- Start of file data.
- Each file here is an SMK2 file, so my converter for SMK files can read this.
- There’s no hint (that I’ve been able to find) of each file size.
I’m currently guessing the file size by reading the SMK2 file header and trying to add up, but I’m probably not doing that perfectly, since the SMK2 file format specs I’m using are not official.
After reading through the FF file more or less successfully, I will only need to read through the DBI one and I should have access to everything!