Skip to content

v1.0.3 — cross-compilation & linux proton support

Choose a tag to compare

@e-gleba e-gleba released this 17 Nov 20:09
903fb5a

v1.0.3 — cross-compilation & linux proton support

comprehensive refactor => llvm-mingw cross-compilation support + proton/steam runtime for running on linux.

build system improvements

cross-compilation via llvm-mingw

  • added cmake preset llvm-mingw-i686 for cross-compiling to win32 from linux
  • moved toolchain configuration from separate files into cmake presets — cleaner, reproducible builds
  • switched to .tar.xz packaging on linux (instead of .zip)
  • fixed parallel link deadlock => forced jobs=1 in preset (lld issue in mingw context)
  • updated .gitignore for llvm-mingw/ directory

glad & opengl loader

  • replaced external rust-based glad generator with manual glad config (opengl 2.1, core profile)
  • documented generator url in cmake: https://glad.dav1d.de/
  • removed cpplint, replaced with clang-tidy

cmake policy & deps

  • temporary cmake policy 3.5 for freetype compatibility
  • cleaned up presets structure for better cross-platform workflow

linux compatibility (steam proton)

proton launch automation

  • added launch_proton.sh script for deploying game + overlay under steam proton
  • improved script: symlinks → file copies (wine/proton compat)
  • script auto-deploys bass proxy + runtime to steam compat directory

mesa opengl workaround

  • documented MESA_EXTENSION_MAX_YEAR=2003 fix for old games on amd gpu + fedora linux (already in readme, reinforced in scripts)

runtime fixes

missing runtime dependency

  • resolved startup crash caused by missing bass_real.dll (not bundled properly)

code quality

modern c++ standard

  • upgraded project to c++26 (was c++20)
  • removed unused threading lib calls
  • removed obsolete game_path variable
  • general code cleanup, formatting, logging improvements

readme updates

  • documented lld linker deadlock on parallel linking => workaround via jobs=1 in preset
  • added build instructions for ucrt vs msvcrt llvm-mingw flavors (win10+ vs win7+)

build from source:

# 1. download llvm-mingw from https://github.com/mstorsjo/llvm-mingw/releases
#    - llvm-mingw-YYYYMMDD-ucrt-ubuntu-20.04-x86_64.tar.xz (win10+)
#    - llvm-mingw-YYYYMMDD-msvcrt-ubuntu-20.04-x86_64.tar.xz (win7+ legacy)
# 2. extract to repo root as llvm-mingw/
# 3. run:
cmake --preset llvm-mingw-i686
cmake --build --preset llvm-mingw-i686

run on linux via proton:

./launch_proton.sh

WARNING

x86_64 build is not working and attached only for historical reasons and ease of automation

changelog covers commits from v1.0.2 (2025-08-28) → head (2025-11-17).

Full Changelog: v1.0.2...v1.0.3