Mount C&C .mix archive files as virtual drives in Windows Explorer. Supports Red Alert 1, Red Alert 2, and Tiberian Sun. Files can be added, removed, renamed, and edited directly - changes are automatically saved back to the .mix file.
- Download the latest
MixVFS-vX.Y.Z-win-x64.zipfrom Releases - Extract anywhere (e.g. Downloads)
- Run
MixVFS.exe— the Setup & Settings window opens - Click Install/Update: this installs WinFsp if needed, copies MixVFS to
%LocalAppData%\MixVFS\, registers Explorer shell integration, and optionally adds a Start menu shortcut
- Windows x64
- .NET 10 runtime (bundled in the release zip — no separate install needed)
- WinFsp runtime — bundled in the release zip and installed automatically when you click Install/Apply settings
MixVFS <file.mix>
MixVFS list <file.mix> [--game <auto|td|ra|ts|ra2>] [--gmd <path>]
list prints the contents of a .mix file.
Passing only <file.mix> triggers mount/unmount toggle (the same action used for Explorer double-click integration).
MixVFS mount <file.mix> <mount-point> [options]
MixVFS unmount <file.mix|mount-point>
MixVFS list-mounts
Mounts a .mix file as a virtual drive. mount-point can be a drive letter (X:) or an empty folder. The archive is unpacked to a workspace cache on first mount; subsequent mounts reuse the cache. Changes made through Explorer are debounced and saved back to the .mix automatically. Press Ctrl+C to unmount cleanly from the terminal.
Mount options:
| Option | Default | Description |
|---|---|---|
--force |
off | Rebuild workspace cache even if one already exists |
--debounce-ms <ms> |
1000 | Delay after last change before saving back to .mix |
--no-explorer |
off | Don't open Explorer after mounting |
--game <auto|td|ra|ts|ra2> |
auto | Force game variant for ID hashing |
--gmd <path> |
auto | Path to a global mix database .dat file for filename resolution |
MixVFS unpack <file.mix> <output-folder> [--force] [--game ...] [--gmd ...]
MixVFS pack <input-folder> <file.mix>
Extracts a .mix to a folder, or packs a folder back into a .mix. The folder contains a hidden MixVFS.json manifest that tracks file IDs, names, and header/encryption metadata for accurate repacking. If the name of a file is not known its ID is preserved as-is from the manifest; files named 0xXXXXXXXX.bin are treated as explicit hex IDs.
MixVFS settings
MixVFS (no arguments — same as above)
Opens the Setup & Settings window. From here you can:
- Install/Update — saves settings, installs WinFsp if missing, copies MixVFS to
%LocalAppData%\MixVFS\, registers Explorer shell integration, and optionally creates a Start menu shortcut - Uninstall — removes Explorer shell integration and the Start menu shortcut
- Configure workspace/backup paths, context-menu options, and auto-backup behaviour
Advanced CLI equivalents (rarely needed):
MixVFS shell-install [--exe <path>]
MixVFS shell-uninstall
MixVFS shell-toggle <file.mix>
- Windows Notepad cannot open files with content — Notepad fails to open non-empty files mounted via MixVFS with "Make sure a disk is in the drive you specified". No idea why. Other editors (Notepad++, VS Code, etc.) work correctly. As a workaround, use any editor other than Notepad.
MixVFS uses WinFsp to present the workspace cache directory as a virtual filesystem. When you open, edit, save, rename, or delete a file through Explorer, WinFsp calls back into MixVFS which performs the operation on the real files in the cache. A debounced timer then calls pack to rewrite the .mix from the current cache state.
The workspace cache is stored under %LOCALAPPDATA%\MixVFS\workspace\ by default, keyed by a hash of the .mix path so each file gets its own cache folder.
MixVFS is released under the GNU General Public License v3.
- WorldAlteringEditor by Rampastring — portions of the .mix format parsing and file ID hashing code were referenced or adapted from this project (GPL v3)
- ccmix by OmniBlade — additional reference for .mix format details and cryptography (GPL v2+)
- Old format (Tiberian Dawn):
[fileCount:2][dataSize:4][index]- no flags prefix - New format (RA1 and later):
[flags:4][fileCount:2][dataSize:4][index] - Flags:
0x00010000= SHA1 checksum appended,0x00020000= header encrypted with Blowfish (TS/RA2) - Encrypted archives use an RSA-encrypted Blowfish key stored in an 80-byte block after the flags; the index is decrypted before reading.
- Encrypted repack is supported when the archive was unpacked by MixVFS (the workspace manifest preserves the encrypted key blob and MixVFS reuses it).
- Creating a brand-new encrypted archive from a non-encrypted source is still not supported (no key blob to reuse).
- Checksum trailers are still not written on pack, so checksum flags are cleared during repack.
- File IDs are CRC32 hashes of the uppercase filename (TS/RA2) or a rotate-and-add hash (TD/RA1). The local mix database embedded in most archives maps IDs back to filenames.