A python library for working with Red Alert 2 / Yuri's Revenge *.mix files
Mix files are archive files used to store most game files from the games Command And Conquer Red Alert 2 and its expansion pack Yuri's Revenge.
This library allows you to interact with the mix files much like you'd interact with zip files using a program like 7-zip -- except programmatically, of course 😎. You can create mix files by archiving a list of several files, or read existing mix files and do something with the archived files contained within it.
pip install ra2mixImport the package
import ra2mix-
Read:
The
ra2mix.readfunction can take a*.mixfilepath and return adict[str, bytes]object. The keys are filenames and the values are file data as bytes.import ra2mix mix_filepath = "path/to/mixfile.mix" filemap = ra2mix.read(mix_filepath) print(f"filenames: {list(filemap.keys())}") for filename, file_data in filemap.items(): # do something with the file data
-
Extract:
The
ra2mix.extractfunction takes a*.mixfilepath and an extraction folder path. The files contained in the mix file will be written to the folder.import ra2mix mix_filepath = "path/to/mixfile.mix" extract_folder = "extract/to/folder" ra2mix.extract(mix_filepath, extract_folder)
The ra2mix.write function supports three methods for specifying files to include in a
new *.mix file:
filemap: Adict[str, bytes]object consisting of filenames and file datafolder_path: A path to a folder; all files in the folder are added to the mixfilepaths: Alist[str]containing exact filepaths to include in the mix
import ra2mix
mix_filepath = "path/to/mixfile.mix"
target_folder = "read/from/folder"
mix_data = ra2mix.write(mix_filepath, folder_path=target_folder)
# Optionally do something with mix_data if you want; file is already written to
# `mix_filepath`