Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/azahar-emu/azahar/llms.txt

Use this file to discover all available pages before exploring further.

Building Azahar on Windows requires a C++20-capable compiler, CMake 3.25 or later, and a set of libraries that you can install through MSYS2 or Visual Studio. MSYS2 provides a more Linux-like workflow and is the recommended path for most contributors.
MSYS2 is the recommended toolchain for building Azahar on Windows. It gives you access to a full pacman package ecosystem, avoids many MSVC-specific compatibility quirks, and matches the environment used in CI. Use MSVC only if you have a specific reason to do so.
1

Install a compiler toolchain

Choose one of the two supported toolchains.
2

Install dependencies via MSYS2 pacman

In the MSYS2 MinGW UCRT64 shell, install the required build tools and libraries:
pacman -S \
  mingw-w64-ucrt-x86_64-toolchain \
  mingw-w64-ucrt-x86_64-cmake \
  mingw-w64-ucrt-x86_64-ninja \
  mingw-w64-ucrt-x86_64-qt6-base \
  mingw-w64-ucrt-x86_64-qt6-multimedia \
  mingw-w64-ucrt-x86_64-SDL2 \
  mingw-w64-ucrt-x86_64-boost \
  mingw-w64-ucrt-x86_64-openssl \
  mingw-w64-ucrt-x86_64-zstd \
  mingw-w64-ucrt-x86_64-libusb \
  mingw-w64-ucrt-x86_64-speexdsp \
  git
Several additional dependencies—including dynarmic, fmt, cryptopp, soundtouch, cubeb, openal-soft, glslang, and vulkan-headers—are bundled as Git submodules and built automatically as part of the CMake configuration.
3

Clone the repository with submodules

Clone the Azahar repository and initialize all submodules in a single command:
git clone --recurse-submodules https://github.com/azahar-emu/azahar.git
cd azahar
If you already cloned without --recurse-submodules, fetch the submodules manually:
git submodule update --init --recursive
4

Configure with CMake

Create a build directory and run CMake from inside it. The default configuration builds the Qt frontend and enables SDL2, OpenAL, cubeb, libusb, and the Vulkan renderer.
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
You can pass additional flags to customize the build. Some commonly used options are listed below:
OptionDefaultDescription
ENABLE_QTONBuild the Qt6 desktop frontend
ENABLE_SDL2ONEnable SDL2 input/audio backend
ENABLE_VULKANONEnable the Vulkan renderer
ENABLE_OPENGLONEnable the OpenGL renderer
ENABLE_OPENALONEnable the OpenAL audio backend
ENABLE_CUBEBONEnable the cubeb audio backend
ENABLE_LIBUSBONEnable libusb for GameCube Adapter support
USE_DISCORD_PRESENCEOFFEnable Discord Rich Presence
ENABLE_QT_TRANSLATIONOFFBundle Qt UI translations
For example, to enable Discord Rich Presence:
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DUSE_DISCORD_PRESENCE=ON
5

Build

Compile the project using Ninja (or cmake --build if you are using MSVC):
cmake --build build --config Release
6

Run the built executable

After a successful build, the Azahar executable is placed in:
build\bin\Release\azahar.exe
You can run it directly from that path. To create a distributable bundle that includes all required Qt libraries and plugins, run:
cmake --build build --target bundle
The bundled output appears in build\bundle\.

Build docs developers (and LLMs) love