Page 1 of 1

.BFF format from Fast and Furious Crossroads

Posted: Thu Oct 21, 2021 11:27 am
by flipdark95
Hey there, can anyone help me extract these files from Fast and Furious Crossroads? I think judging by the size they contain both the models and textures inside of them, but I need help figuring out how to extract them.

Here's a link to the files.
https://drive.google.com/drive/folders/ ... sp=sharing

Re: .BFF format from Fast and Furious Crossroads

Posted: Thu Oct 21, 2021 7:48 pm
by mono24
flipdark95 wrote: Thu Oct 21, 2021 11:27 am...can anyone help me extract...
Its same format as the old games like NFSShift, Shift2, pCars, 2, 3, etc. but even if you can extract them, their meshes are encrypted, until someone reverses that, you wont be able to get anything out this way.

viewtopic.php?p=31807#p31807

Re: .BFF format from Fast and Furious Crossroads

Posted: Fri Oct 22, 2021 5:17 pm
by Spiritovod
I'm not sure why NFS Shift is mentioned in the list, since it should be supported with ZModeler and 3DSimED. Also, it doesn't seems like the meshes data (meb files) from packages above is truly encrypted. At the beginning there is vertex count -> something -> positions data -> something (count x 2) -> UV -> something (count x 12) -> something (count x 12) -> vertex indices. And judging by point cloud from positions and UVs the only thing that should be somehow recalculated is X axis from positions data.

Sample layout for 04744720.meb from driver_vienna_desert.bff. Credits to Bigchillghost for AXE.

Re: .BFF format from Fast and Furious Crossroads

Posted: Fri Oct 22, 2021 8:29 pm
by mono24
Spiritovod wrote: Fri Oct 22, 2021 5:17 pm I'm not sure why NFS Shift is mentioned in the list, since it should be supported with ZModeler and 3DSimED...
Of course they ARE mentioned in the list since you first need to extract using the script, the software you mentioned do NOT natively support the archives, only the assets with in the BFF archives, hence the mentioned games in the extraction script.

Re: .BFF format from Fast and Furious Crossroads

Posted: Fri Oct 22, 2021 10:23 pm
by shakotay2
After using Aluigi's NfS Shift bms script on FFC (.bff -> several .meb and .tex files):

I can confirm: the (.meb) mesh (vertices) seem to be encrypted (x component, red rectangles, except the blue ones):
.
FFCross_BFF-meb_mesh-vertex_encryption.png

Re: .BFF format from Fast and Furious Crossroads

Posted: Fri Oct 22, 2021 10:53 pm
by Mike Oxmaul
About .bff format:
As it was said above, the format itself is the same as that used in older games, such as NFS Shift 2.
But there are a few differences:
1) In PC versions of new games on the Madness engine, .bff files have an encrypted table of file names and their offsets / sizes. There is no such thing in PS4 versions of the same games.
2) Method of compressing files inside .bff. In PS4 versions of the games, the Oodle algorithm is used for this, and if I understood correctly, in some cases, for unknown reasons, the compression type is indicated incorrectly (but I want to check this a little later), which causes decompression errors.

About .meb format:
At the moment I am writing a parser of this format in C#. The initial base was a script for 3ds Max, but thanks to it I was able to at least partially understand the structure of this format, since I could not find a description or documentation.
Most of it is already ready, there is even an export in .obj format.
But the main problem remains - encoded (or encrypted) vertex position values.
In Project Cars 2, Project Cars 3 and Automobilista 2, only the X-coordinate is "corrupted".
But in Fast and Furious Crossroads everything is a little different - the first vertex can be written "as is", and the next ones can have "corrupted" X and Z coordinates. And, apparently, such a phenomenon is not applicable to all models - for some, only the X coordinate may be "corrupted". This requires more detailed research.

Some useful information:
Not so long ago, I accidentally found through a Google search an open server with a large number of different versions of .exe, and, most importantly, .pdb files for all three parts of Project Cars, as well as Fast and Furious Crossroads. There was also a lot more interesting, but that is beyond the scope of this post. I will not post links publicly for obvious reasons, but I managed to download the files I was interested in.
If there are interested persons among you who want to research them, and ideally try to find algorithms (and possibly keys) in them that are used to protect .bff and .meb files - I can send you samples.

If it is known what kind of algorithm is used there, I will try to add it to my project.

P.S.: I rarely answer here, I mostly use Discord. For contacts in the DM.

Re: .BFF format from Fast and Furious Crossroads

Posted: Sat Oct 23, 2021 12:08 am
by mono24
NFSModDev wrote: Fri Oct 22, 2021 10:53 pm...ideally try to find algorithms...
Quick way to go trough them and see whats available since you say you have so many leaked files and such, is by using:
http://aluigi.altervista.org/mytoolz.htm#signsrch

Re: .BFF format from Fast and Furious Crossroads

Posted: Sat Oct 23, 2021 1:15 am
by Spiritovod
mono24 wrote: Thu Oct 21, 2021 7:48 pm ...like NFSShift... but even if you can extract them, their meshes are encrypted...
Oh, well, it's just that sounded like NFS Shift meshes can't be viewed at all, which is quite confusing. Extracting files with quickbms script and viewing them in a compatible program doesn't require any skills, so I failed to understand how Shift is related to other mentioned games and the game in this topic, except similar files format.

On the other hand, if Shift is using similar layout, it will be much faster to adjust meshes format to the one compatible with Shift's tools. But I doubt it's the case here, unfortunately. Also, I think it's possible to rip some static meshes at runtime and compare positions with those from original files - if it's some kind of constant transformation, it would be visible. Though I have an impression that those vectors are just used in a different way for optimization reasons (like delta for following/previous values in a polygon or something).