# Vanilla-Conquer **Repository Path**: CastleJing/Vanilla-Conquer ## Basic Information - **Project Name**: Vanilla-Conquer - **Description**: Vanilla Conquer provides clean, cross-platform builds of the C&C Remastered Collection and the standalone legacy games. - **Primary Language**: C++ - **License**: GPL-3.0 - **Default Branch**: vanilla - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-01-07 - **Last Updated**: 2026-09-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Vanilla Conquer Vanilla Conquer is a fully portable version of the first generation C&C engine and is capable of running both Tiberian Dawn and Red Alert on multiple platforms. The main focus of Vanilla Conquer is to keep the default out-of-box experience faithful to what the games were back when they were released and work as a drop-in replacement for the original executables while also providing bug fixes, compatiblity and quality of life improvements. This fork ships only the standalone executables (`vanillara` / `vanillatd`), with the internal map editor enabled by default. Product-line and backend plans are in [docs/ROADMAP.md](docs/ROADMAP.md). Current upstream project goals are tracked as [GitHub issues with the goal label](https://github.com/Vanilla-Conquer/Vanilla-Conquer/issues?q=is%3Aissue+is%3Aopen+label%3Agoal). ## Chat with us There are rooms on multiple platforms for discussion: - [The Assembly Armada](https://discord.gg/UnWK2Tw) on [Discord](https://discord.gg) - [#vanilla-conquer:vi.fi](https://matrix.to/#/#vanilla-conquer:vi.fi) on [Matrix](https://matrix.org) - [#vanilla-conquer](https://web.libera.chat/?channel=#vanilla-conquer) on [Libera.Chat](https://libera.chat]) IRC network All of these rooms are bridged together so people can choose their preferred service. Please be nice to each other. ## Building We support wide variety of compilers and platforms to target. Vanilla Conquer is known to compile with recent enough gcc, MSVC, mingw-w64 or clang and known to run on Windows, Linux, macOS and BSDs. ### Presets A [CMakePresets.json](CMakePresets.json) file is provided that contains presets for common build configurations and is used by our CI scripts to build the release builds. These presets require the [Ninja](https://ninja-build.org/) build tool to be available in the system PATH in order to be used. We also provide an example [CMakeUserPresets.json](resources/CMakeUserPresets.json.example) that can be copied to the root source directory and renamed. You can edit this file to create your own development presets that won't be included in git commits. A few example presets are provided which override the release presets to build a "debug" configuration. To build using a preset, add `--preset preset_name` to the CMake command line examples below. ### Windows #### Requirements The following components are needed to build Vanilla Conquer executables: - [MSVC v142 C++ x86/x64 build tools](https://visualstudio.microsoft.com/visual-cpp-build-tools/) - Windows 10 SDK - CMake (installable from MSVC build tools) - [SDL2 development libraries, Visual C++](https://libsdl.org/download-2.0.php) - [OpenAL Core SDK](https://www.openal.org/downloads/) Extract SDL2 and OpenAL somewhere you know. #### Building In a VS command line window in the Vanilla Conquer source directory: ```sh cmake -DSDL2_ROOT_DIR=C:\path\to\SDL2 -DOPENAL_ROOT=C:\path\to\OpenAL -B build . cmake --build build ``` This will build Vanilla Conquer executables in the build directory. ### Linux / macOS / BSD #### Requirements - GNU C++ Compiler (g++) or Clang - CMake - SDL2 - OpenAL On Debian/Ubuntu you can install the build requirements as follows: ```sh sudo apt update sudo apt install g++ cmake libsdl2-dev libopenal-dev ``` On Fedora/RedHat based system you can install the build requirements as follows: ```sh sudo dnf install gcc-c++ cmake SDL2-devel openal-soft-devel ``` #### Building ```sh cmake -B build . cmake --build build ``` This will build Vanilla Conquer executables in the build directory. Optional CMake flags: - `-DBUILD_TOOLS=ON` — also build `vanillamix` - `-DBUILD_TESTS=ON` — unit tests - `-DNETWORKING=OFF` — disable LAN play - `-DMAP_EDITORRA=OFF` / `-DMAP_EDITORTD=OFF` — omit the internal scenario editor #### macOS considerations To create a portable bundle for macOS we run [macdylibbundler](https://github.com/auriamg/macdylibbundler) in our CI builds as an extra step to add the SDL2 and OpenAL libraries to the bundle. If you wish to create a portable bundle yourself, you will need to do this step manually as CMake will not currently do it for you. ### Icons CMake will attempt to generate icons in an appropriate format for Windows and macOS if ImageMagick is found in the system PATH. Otherwise you will end up with generic "program" icons. ## Releases Binary releases of the latest commit are available from [here](https://github.com/TheAssemblyArmada/Vanilla-Conquer/releases/tag/latest), which is updated whenever new code is merged into the main branch. ## Running Copy the Vanilla executable (`vanillatd` / `vanillara`, or `.exe` on Windows) to your legacy game directory. On Windows also copy `SDL2.dll` and `OpenAL32.dll`. On Linux you can also point at a data directory: ```sh ./vanillara -CD/path/to/mix/ ``` The engine looks for `REDALERT.MIX` (RA) or the equivalent Tiberian Dawn mix files when resolving the data path. See [docs/ROADMAP.md](docs/ROADMAP.md) for details on search paths. ### Expansion data The Counterstrike and Aftermath content is picked up from whichever of these MIX files is present, so both the retail/Remastered layout and the community (PortableRA / CnCNet) layout work without renaming anything: - `EXPAND.MIX` (Counterstrike) or `COUNTERSTRIKE.MIX` - `EXPAND2.MIX` (Aftermath) or `AFTERMATH.MIX` - `EXPAND3.MIX` … `EXPAND10.MIX`, `CAMPAIGN.MIX`, `SMALLINFANTRY.MIX`, `OOS-FIX.MIX`, `MOVIES-TLF.MIX`, `MOVIES-1.MIX` … `MOVIES-10.MIX` These are registered ahead of `MAIN.MIX`, so a file that exists in both an expansion pack and the base data resolves to the expansion copy. The data of each disc can also be kept in a folder named after it (`allied/`, `soviet/`, `counterstrike/`, `aftermath/`) inside the data, user or program directory; the game switches to the matching folder when a mission needs it. Startup options and custom missions: - `-ANTMISSIONS` — start the hidden ant campaign (`SCA01EA.INI`) directly. - Map files named `CMU01EA.INI` … `CMU999EA.INI` are listed by the "Custom Missions" menu, titled by the `Name` entry of their `[Basic]` section. They can be dropped next to the game data or shipped inside one of the packs below — `sc-flamedancers.mix` for example carries 19 such missions. The "Expansions Missions" menu lists the built-in Counterstrike and Aftermath missions that the data provides. Like the official 3.03 patch, the game also registers every `SC*.MIX` and `SS*.MIX` pack it finds in the search paths. That is the hook for the add-on mission videos: the Counterstrike, Aftermath and ant mission files refer to movies (`ALLX1`, `SOVEXP2`, `ANTBRF`, …) which the retail discs never shipped, and the community "The Lost Files" pack ([ra95.tk](http://www.ra95.tk), by Nyerguds) restores as `sc-TLFvid.mix`. Drop that file into the data directory to play the missing cutscenes; nothing has to be merged into `MAIN.MIX`. For Tiberian Dawn the final freeware Gold CD release ([GDI](https://www.moddb.com/games/cc-gold/downloads/command-conquer-gold-free-game-gdi-iso), [NOD](https://www.moddb.com/games/cc-gold/downloads/command-conquer-gold-free-game-nod-iso)) works fine. For Red Alert the freeware [CD release](https://web.archive.org/web/20080901183216/http://www.ea.com/redalert/news-detail.jsp?id=62) works fine as well. The official [Red Alert demo](https://www.moddb.com/games/cc-red-alert/downloads/command-conquer-red-alert-demo) is also fully playable. The demo supports custom skirmish maps (except interior) and includes one campaign mission for both Allied and Soviet from the retail game. While it is possible to use the game data from the Remastered Collection, The Ultimate Collection or The First Decade they are currently _not_ supported. Any repackaged version that you may already have from any unofficial source is _not_ supported. If you encounter a bug that may be data related like invisible things or crashing when using a certain unit please retest with the retail data first before submitting a bug report.