Skip to content

Build Docs Overview

This section is for maintainers who want to build the Bob-Ddong-Iri-Hoyo Launcher app, Wine runtimes, DXMT runtimes, or understand how those release artifacts are structured. If you only want to install the launcher and play games, you do not need to build these components yourself.

BDIH-Launcher

Builds and packages the macOS launcher app based on Electron, React, and TypeScript.

wine-build

Builds and packages the WineHQ 11.0, WineHQ 11.11, and CrossOver 26.1.0 based Wine runtimes.

dxmt-er-build

Builds a DXMT v0.80 runtime with the Eternal Return specific graphics workaround.

  1. Read Build Docs Overview to understand the overall structure and rules.
  2. Read BDIH Launcher Build for local app builds, packaging, tests, and publishing policy.
  3. Read Wine Runtime Builds to see how the WineHQ and CrossOver runtime lines are built.
  4. Read DXMT Build to see how the Eternal Return DXMT patch and package are produced.
  5. Read Releases and Metadata to understand launcher manifests, artifact layout, and licensing checks.

The build commands and patch order in each repository are the source of truth. If the docs and scripts appear to disagree, check the scripts first.

Source changes should live in tracked patch sets and scripts. Temporary files, experiment logs, and local artifacts under artifacts/ are not release references.

DXMT is managed as an external runtime by default instead of being bundled into the Wine package. That allows the launcher to replace or roll back DXMT without rebuilding Wine.

Release builds should not contain temporary diagnostic counters, tracing code, or local experiment patches. Debug builds used for measurement and release builds shipped to users should be treated separately.

ComponentBaseline
Launcher appElectron 41, React 19, TypeScript 6, Webpack 5
Current WineHQ linewine-winehq-11.11
WineHQ comparison/fallback linewine-winehq-11
CrossOver linewine-crossover-26.1.0
DXMTv0.80
Eternal Return DXMT patchsanitizeOutput only

WineHQ 11.11 is the current WineHQ baseline. WineHQ 11.0 is maintained as a comparison and compatibility fallback. CrossOver 26.1.0 is a separate runtime line focused on Eternal Return validation.

Start by checking these items:

  • Confirm that the command was run from the target repository root.
  • Confirm that the Wine version, DXMT tag, patch set, and toolchain versions match the documented baseline.
  • Confirm that the same patch set can be replayed cleanly after clean.sh.
  • Confirm that an old prefix or stale DLLs are not being mixed with the new runtime.

Compatibility-layer projects are sensitive to dependency versions and local prefix state. Small version differences or stale prefix-local DLLs can become runtime issues even after a build succeeds.