Halo: Combat Evolved Anniversary
Halo: Combat Evolved Anniversary, commonly referred to as CEA or H1A was first released in 2011 as a collaboration project between 343 Industries, and Saber Interactive. It aimed to modernize the look and feel of the original game for use with the more powerful Xbox 360. With the release of Halo MCC, CEA has also seen a port to PC.
One of its quirks is the ability to switch between the Saber3d, and blam! engine with the press of a button. This interaction adds some complexity to modding the game, due to both engines running side by side. It's common to see the them referred to as classic, and anniversary to reduce ambiguity.
- BSP vertices are stored outside of the BSP tag (source) and BSP data is loaded at address
0x41448000instead of within the tag data space.
- The tag data address has been adjusted from
- The maps (and other files) are compressed using a variant of zlib compression.
- Bitmaps, and sounds have been relocated from their respective bitmaps.map/sounds.map locations. The sounds are now in FMOD sound banks, and the bitmaps are stored inside ipaks.
The rest of the tags system appears to be unaltered.
With the introduction of the Saber3d engine also came new file formats:
- The ipak holds all the texture information for the game. This includes classic textures as well.
- The imeta holds entries for the ipak. This links textures in the ipak to the level.
- The fmeta is designed to link dependent files together.
- The s3dpak is an archive file holding the files needed for the Saber engine.
- Xbox uses a different compression algorithm. The chunking is still done the same; however, it does not utilize zlib.
- Xbox does not utilize ipak/imeta/fmeta. Instead the primary filetype is the s3dpak.
It is unknown how the MCC Xbox One version compares.
Thanks to the following individuals for their research or contributions to this topic:
- Kavawuvi (CEA BSP data base address)
- zatarita (Documenting H1A differences from PC and between versions, summarizing new formats)