Requirements
Common Requirements
- CMake 3.22.0 or newer
- MinGW-w64 i686 (32-bit) toolchain
- Python 3 (required for build scripts)
- Git (optional, for version information)
Platform-Specific
Windows:- MSYS2 or standalone MinGW toolchain
- Windows 7 or newer
- MinGW cross-compiler
- Wine 4.0 or newer (for testing)
Building on Windows
There are two methods to build Chimera on Windows: using MSYS2 or using the standalone Winlibs toolchain.Method 1: MSYS2 (Recommended)
MSYS2 provides a complete build environment with package management.Install MSYS2
If you don’t have MSYS2 installed:
- Download from msys2.org
- Run the installer
- Follow the installation instructions
- Update the package database:
pacman -Syu
Configure the build
From the MINGW32 subsystem (not MSYS2, not MINGW64):Replace
<path-to-chimera-source> with the actual path to Chimera’s source directory.Method 2: Winlibs Standalone
For a lighter-weight option without MSYS2:Prepare the source directory
Ensure Chimera’s source is in a short path with no spaces:Paths with spaces can cause issues with the MinGW toolchain.
Install Python
Download and install Python for Windows.Make sure to check “Add Python to PATH” during installation.
Download MinGW toolchain
- Visit winlibs.com
- Download the latest 32-bit GCC MinGW-w64 MSVCRT release
- Extract the archive
- Copy the
mingw32directory to your Chimera source location:C:\source\chimera\mingw32
Create batch file for MinGW environment
Create This sets up the environment to use the MinGW toolchain.
mingw-console.bat in the Chimera source directory with:Note: Git for Windows is not required to compile Chimera, but it’s needed for correct DLL version information. Download from gitforwindows.org.
Windows XP Support
To build with Windows XP support:Building on Linux
Chimera can be cross-compiled on Linux using MinGW.Install MinGW cross-compiler
Install the 32-bit MinGW-w64 toolchain for your distribution:Debian/Ubuntu:Arch Linux:Fedora:
Configure the build
Use the MinGW CMake wrapper:On some distributions, the command might be
mingw32-cmake instead.Build Configuration
Build Types
Chimera supports standard CMake build types:CMake Options
| Option | Description | Default |
|---|---|---|
CMAKE_BUILD_TYPE | Build configuration | Release |
CHIMERA_WINXP | Enable Windows XP support | OFF |
Example: Custom Configuration
Project Structure
Chimera’s source is organized as follows:Build Artifacts
After a successful build, you’ll find:- strings.dll - Main Chimera DLL (replaces Halo’s strings.dll)
- chimera-compress - Map compression utility
- chimera.ini - Configuration file template
Troubleshooting
CMake can’t find MinGW
Windows:- Ensure you’re using the MINGW32 subsystem in MSYS2 (not MSYS2 or MINGW64)
- For Winlibs, verify
mingw32\binis in your PATH
- Install the MinGW package for your distribution
- Try the full command name:
i686-w64-mingw32-cmake
Python not found
- Install Python 3 and ensure it’s in your PATH
- On Windows, reinstall Python and check “Add to PATH”
Build fails with path errors (Winlibs)
- Ensure the source is in a path with no spaces:
C:\source\chimera✓,C:\My Projects\chimera✗ - Keep the path short to avoid MAX_PATH issues
Git version information not included
- Install Git for Windows or git on Linux
- Ensure
.gitdirectory exists in the source tree - Git is optional but recommended for proper version strings
Wrong architecture (64-bit instead of 32-bit)
- Ensure you’re using the i686 (32-bit) MinGW toolchain, not x86_64
- In MSYS2, use MINGW32 not MINGW64
- Verify with:
gcc -dumpmachine(should showi686-w64-mingw32)
Linker errors
- Clean the build directory:
rm -rf build - Reconfigure and rebuild from scratch
- Ensure all dependencies are installed
Testing the Build
Backup original files
Before testing, back up your original Halo installation:
- Rename
strings.dlltostrings-old.dll
Test basic functionality
Launch Halo and verify:
- Game starts without errors
- Main menu appears correctly
- Console opens with backtick (`) key
- Type
chimerain console to see version info
Advanced Topics
Building Dependencies
Chimera’s dependencies are managed independencies.cmake. Most dependencies are header-only or bundled with the source.
Modifying the Build
To customize Chimera:- Edit source files in
src/chimera/ - Reconfigure if you added/removed files:
cmake -B build - Rebuild:
cmake --build build
Cross-Compiling from Other Platforms
Theoretically, you can cross-compile from macOS using MinGW from Homebrew, but this is unsupported and untested.Contributing
If you’re building Chimera to contribute:- Fork the repository on GitHub
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
Resources
- Official Repository: github.com/SnowyMouse/chimera
- MSYS2: msys2.org
- Winlibs: winlibs.com
- CMake Documentation: cmake.org/documentation
- MinGW-w64: mingw-w64.org
