Wine Runtime Builds
Runtime Lines
Section titled “Runtime Lines”The wine-build repository provides reproducible macOS Wine runtime build and packaging pipelines for the Bob-Ddong-Iri-Hoyo Launcher.
Three runtime lines are currently maintained.
| Runtime | Build Command | Output |
|---|---|---|
wine-winehq-11.11 | ./scripts/winehq-11.11/build-all.sh | artifacts/wine-winehq-11.11/wine-winehq-11.11 |
wine-winehq-11 | ./scripts/winehq-11/build-all.sh | artifacts/wine-winehq-11/wine-winehq-11 |
wine-crossover-26.1.0 | ./scripts/crossover-26.1.0/build-all.sh | artifacts/wine-crossover-26.1.0/wine-crossover-26.1.0 |
WineHQ 11.11 is the current WineHQ baseline. WineHQ 11.0 is a separate comparison and compatibility line. CrossOver 26.1.0 applies a separate CrossOver-based patch set and does not bundle the WineHQ-only DWProton extras or HoYoPlay proxy by default.
Preparation
Section titled “Preparation”The build is intended for macOS. Prepare the Homebrew dependencies and shared toolchain first.
./scripts/common/install-brew-deps.sh./scripts/common/fetch-toolchain.shEach build-all.sh also calls the shared toolchain step.
Running the setup commands first makes it easier to separate dependency failures from runtime build failures.
Run the build-all.sh for the runtime you want to produce.
./scripts/winehq-11.11/build-all.sh./scripts/winehq-11/build-all.sh./scripts/crossover-26.1.0/build-all.shFor a clean patch replay, run the target runtime’s clean.sh first.
./scripts/winehq-11.11/clean.sh./scripts/winehq-11.11/build-all.shclean.sh removes the selected flavor’s source and outputs while keeping shared download caches and toolchains.
When validating patch application, prefer a clean build without --keep-source.
Pipeline
Section titled “Pipeline”The CrossOver line is built with this flow.
common/fetch-toolchain.shcrossover-26.1.0/fetch-source.shcrossover-26.1.0/apply-patches.shcrossover-26.1.0/configure.shcommon/build.shcommon/install.shcommon/package.shThe WineHQ lines also prepare DWProton extras and the HoYoPlay proxy.
common/fetch-toolchain.shBDIH-HelperProgram/hoyoplay-proxy/build.shwinehq-*/fetch-source.shwinehq-*/apply-patches.shwinehq-*/fetch-dwproton-source.shwinehq-*/prepare-dwproton-lsteamclient.shwinehq-*/configure.shcommon/build.shwinehq-*/build-proton-steam.shcommon/install.shcommon/package.shWineHQ packages include DWProton steam.exe, lsteamclient, the HoYoPlay proxy, GStreamer, macOS msync, Steam CEF compatibility patches, and the HoYoPlay routing backend.
CrossOver packages include Steam and object-directory compatibility patches plus the shared process telemetry patch, but not the WineHQ-only extras by default.
Steam Baseline
Section titled “Steam Baseline”The WineHQ and CrossOver lines use the same Steam UI stability baseline for eligible steamwebhelper.exe processes.
--no-sandbox --in-process-gpu --disable-gpuThe arguments are not appended to steam.exe itself.
They are also not injected into crashpad handlers or host-resolver helpers.
Steam overlay DLL overrides are not part of the Wine patch and should be set explicitly for overlay tests.
HoYoPlay Baseline
Section titled “HoYoPlay Baseline”The WineHQ lines include a backend that detects HoYoPlay game child processes and sends a route event so the launcher can start the actual game in a separate game prefix. This keeps HoYoPlay login and update state in the launcher prefix while game-specific state such as DXMT, media, HoYoProtect, and msync belongs to the game prefix.
This is not a complete end-user workflow inside Wine alone. The Bob-Ddong-Iri-Hoyo Launcher is responsible for prefix creation, event validation, game profile preparation, actual launch, and process tracking.
Eternal Return Notes
Section titled “Eternal Return Notes”WineHQ 11.11 has an investigation note showing higher set_timer and select wineserver request traffic in Eternal Return compared with WineHQ 11.0.
The docs treat this as a performance investigation item that may affect CPU and thermal headroom, not as a confirmed regression or release blocker.
Do not leave temporary request counters in a release build. A change should only move into the release patch set after frametime improvement is measured and Steam plus HoYoverse workloads are checked for regressions.
Options And Outputs
Section titled “Options And Outputs”Common override examples:
BUILD_NAME=winehq-11-test ./scripts/winehq-11/build-all.shBREW_PREFIX="$(brew --prefix)" ./scripts/crossover-26.1.0/build-all.shBUNDLE_PROTON_EXTRAS=0 ./scripts/winehq-11/build-all.shBUNDLE_DXMT_RUNTIME=1 \DXMT_RUNTIME_DIR=/path/to/dxmt-runtime \./scripts/winehq-11.11/build-all.shPackaging produces this layout.
artifacts/wine-$BUILD_NAME/ wine-$BUILD_NAME-build/ wine-$BUILD_NAME-install/ wine-$BUILD_NAME/ wine-$BUILD_NAME.tar.gz wine-$BUILD_NAME.tar.gz.sha256 wine-$BUILD_NAME.json