A module that bridges the classic C&C file formats for use with the Red Horizon engine. All of the reverse engineering of the old codecs and files takes place here, and serve as working examples for other programmers.
Requires Java 17 on macOS 10.15 Catalina and newer, or Windows 10 64-bit and newer.
Add a dependency to your project with the following co-ordinates:
- GroupId:
nz.net.ultraq.redhorizon
- ArtifactId:
redhorizon-classic
Check the project releases for a list of available versions. Each release page also includes a downloadable JAR if you want to manually add it to your project classpath.
The codecs (encoders/decoders) implemented in this module:
- IMAADPCM_16bit: An IMA-ADPCM compression scheme for 16-bit audio.
- LCW: "Lempel–Castle–Welch" compression, Westwood's response to Unisys enforcing their patent on "Lempel–Ziv–Welch" compression (though it doesn't resemble it), formerly known as "Format80".
- PackData: A combination of Base64 and LCW, used in the *pack data sections of C&C map files.
- RLEZero: A form of run-length encoding that only compresses runs of 0s.
- RunLengthEncoding: A simple compression scheme in which repeated data is compressed to the data and how often it should be repeated.
- WSADPCM_8bit: A custom 8-bit ADPCM compression scheme developed by Westwood.
- XORDelta: A custom compression scheme, similar to LCW but taking into account a set of base data on which to XOR over to get the final output. Formerly known as "Format40".
The older file formats implemented in this module and found in the filetypes package:
- AUD: The sound format used by the classic C&C games.
- CPS: A 320x200 image file format used lightly in Tiberium Dawn.
- MIX: A package format, MIX files hold several other files in an uncompressed form.
- PAL: A standard colour table format used by most programs of the era.
- SHP: "Shape"(?) files, contain the images that comprise a unit or structure.
- TMP: "Template" file for map tiles.
- VQA: Full motion video file for briefing videos and cutscenes.
- WSA: Full screen animations, contain no sound.