cosmonarchy-bw-prerelease/tools/linux/README.md
Kenny Udovic f3f61dc35d 25 August 2026 -- Running in Wine - tooling
Ported from cosmonarchy-bw-release 46d191e, minus plugins/gptp.qdp:
this repo's gptp.qdp is its own newer build (last rebuilt in c7cee7f7)
and the release binary would regress it.
2026-08-25 20:20:52 -04:00

56 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Linux / Wine setup
Cosmonarchy runs under Wine, but a stock prefix gets four things wrong. Each one
fails in a way that does not name its own cause, so they are collected here.
```sh
tools/linux/setup-bottle.sh --check # report, change nothing
tools/linux/setup-bottle.sh # apply
```
Defaults to the Bottles bottle named `Blizzard`. Use `--bottle NAME` for a
different bottle, `--prefix PATH` for a plain `WINEPREFIX`, and `--game-dir PATH`
if the StarCraft directory cannot be read from the prefix's registry.
Every change is backed up next to the file it modifies. `--check` exits non-zero
when something is missing, so it works in a pre-flight.
## What it fixes
| Symptom | Cause | Fix |
| --- | --- | --- |
| Fraud Launcher 2 exits instantly | .NET 8 loads `icu.dll`, which Wine forwards to a nonexistent `icuuc68.dll` | `DOTNET_SYSTEM_GLOBALIZATION_USENLS=1` |
| `Fonts could not be loaded` | `aize_debug.qdp` opens `lucon.ttf` / `arialuni.ttf` with FreeType; Wine ships neither | drop DejaVu in under those filenames |
| Entirely black screen | Wine loads its own `ddraw.dll`, ignoring cnc-ddraw, so StarCraft does a real 640×480 fullscreen mode switch | `ddraw=native,builtin` |
| Black window, correct size | cnc-ddraw's `renderer=auto` draws black here | `renderer=gdi` |
### Notes
- The launcher failure shows up in Wine's output as
`err:module:find_forwarded_export module not found for forward
'icuuc68.u_charsToUChars_68'`. `DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1` also
works but discards culture support, so NLS is preferred.
- FreeType opens fonts by path, not by name, so any monospace / wide-coverage
TTF under those two filenames satisfies it. Needs `fonts-dejavu` (or
Liberation / Noto, which the script also accepts).
- `renderer=gdi` and clearing `shader=` were changed together, so which one
mattered is not isolated. The bundled GLSL shader only applies to the OpenGL
renderer, so it is inert under GDI either way — if you want it back, try
`renderer=opengl` first.
- Only the global `[ddraw]` section of `ddraw.ini` is touched; the per-game
preset sections below it are left alone, and CRLF endings are preserved.
- The `ddraw` override is written to `user.reg` directly, so close the game
first — Wine rewrites that file from memory when the last process exits.
## Verified on
Bottles `Blizzard` bottle, runner **GE-Proton10-25**, X11, dual 2560×1440.
Plain system wine 10.0 could not boot even vanilla StarCraft here (null call
through `storm.dll` ordinal 313 during 640×480 init), so GE-Proton is the
supported runner.
Fraud Launcher 2 installs to `C:\Cosmonarchy\`: `Starcraft\` is a stock 1.16.1
install, `Release\` is a git clone of this repo. The game runs from
`Release\Cosmonarchy BW.exe`, and `_qdp-hotloader.qdp` packs `Release\mpq\` into
`Release\temp.mpq` and loads it alongside the plugins.