cosmonarchy-bw-prerelease/tools/linux/README.md

56 lines
2.8 KiB
Markdown
Raw Normal View History

# 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.