Skip to content

[Feature request] COD:OL support #895

Description

@kuromiii

I'd like to see support for dumping Call of Duty: Online fastfiles, as the engine is very similar to IW4 and because the game has been defunct for a long time now. In fact, some COD:OL fastfiles load just fine in OAT today by just accepting certain zone versions in the IW4 loader. I've only tried a few Alpha2 fastfiles, not all of them work because of struct differences.
Implementing fastfile building for this is probably a waste of time, as far as I know, none of the COD:OL builds running around are runnable because they all lack the server code.

The difficulty in supporting this lies in the fact that there are A LOT of different fastfile versions (earliest known version is alpha2 with version 316 and latest update before shutdown uses version 461) with struct changes and OAT as it stands does not seem designed to handle struct differences between fastfile versions like that. I wanted to try implementing it but I'm not really sure how to do it in a manageable way.

If anyone wants more information, the iw4x repo has a lot of code to load COD:OL fastfiles, but the structure differences are not very documented. For example: https://github.com/iw4x/iw4x-client/blob/ea27f0d010b093be4b01ffb6fe643c753066d0cb/src/Components/Modules/Zones.cpp#L1380
Alpha2 (zone version 316) does not have any encryption for fastfiles.
Starting with alpha3 (zone version 319), fastfiles are encrypted (not the header). Code of interest to decrypt those files can be found here: https://github.com/iw4x/iw4x-client/blob/ea27f0d010b093be4b01ffb6fe643c753066d0cb/src/Components/Modules/FastFiles.cpp#L371

Most recent versions of COD:OL store fastfiles and IWIs inside a IFS file, which can be encrypted. Code of interest can be found here: https://github.com/Scobalula/Mecha/blob/master/src/WraithXOL/IFSLib.cpp
https://github.com/momo5502/ifs-tool

IWDs for builds not using the IFS system are encrypted. Code of interest for decrypting those IWDs can be found here: https://github.com/FreeTheTech101/iwd-decryptor

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions