Expand local_machine docs and automation for connectivity, games, and ops.
Add proxy/VPN/telegram launchd and emergency runbooks; reorganize apps docs; document JA3 CrossOver runbook and Wine troubleshooting; add GOG/HoMM game scripts, disk cleanup guides, and gitea push-via-proxy helper. Ignore temp/. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
216
docs/games/JA3_MAC_WITHOUT_GALAXY.md
Normal file
216
docs/games/JA3_MAC_WITHOUT_GALAXY.md
Normal file
@@ -0,0 +1,216 @@
|
||||
# Jagged Alliance 3 на Mac без GOG Galaxy
|
||||
|
||||
**Полный runbook (установка + графика + RCA + антипаттерны):** [JA3_RUNBOOK.md](JA3_RUNBOOK.md)
|
||||
|
||||
Источники: [GOG — offline installers](https://support.gog.com/hc/en-us/articles/213148105-How-do-I-download-my-purchased-items), [Porting Kit / JA3](https://www.paulthetall.com/jagged-aliance-3-for-mac/), практика на этой машине (**установка 2026-05-28**, **запуск CrossOver 2026-05-29**).
|
||||
|
||||
## Главное
|
||||
|
||||
| | |
|
||||
|--|--|
|
||||
| **GOG Galaxy** | **не нужен** для одиночной игры (DRM-free) |
|
||||
| **Galaxy** | только для мультиплеера (по карточке GOG) |
|
||||
| **Что нужно** | **Offline backup** (Windows): `setup_*.exe` + `setup_*-1.bin` … `-4.bin` |
|
||||
| **Установка** | **`innoextract`** в bottle — **не** Wine-Inno (падает на botva2/gdi32) |
|
||||
| **Исполняемый файл** | `C:\GOG Games\Jagged Alliance 3\JA3.exe` |
|
||||
| **Bottle** | **GOG-Install** (`scripts/games/gog/bottle.env`) — не HoMM/Steam |
|
||||
| **Galaxy в Wine** | **не использовать** для JA3 — CEF, swap ([GOG_GALAXY_7H_RCA.md](GOG_GALAXY_7H_RCA.md)) |
|
||||
| **Запуск игры** | **CrossOver** `run-ja3-crossover.sh` — см. [JA3_RUNBOOK.md](JA3_RUNBOOK.md) |
|
||||
| **Steam.app / Steam.exe** | **не в контуре** — отдельный bottle HoMM; в GOG-bottle клиента Steam быть не должно |
|
||||
|
||||
### Не путать с Steam
|
||||
|
||||
В логе JA3 бывает `Steam initialized (AppId …, Beta branch GOG)` — это **GOG Galaxy wrapper** (`steam_api64.dll` + `Galaxy.dll` в папке игры), **не** установленный Steam client и **не** `Steam.app` на Mac.
|
||||
|
||||
| Файл | Это |
|
||||
|------|-----|
|
||||
| `steam_api64.dll` в папке JA3 | GOG API-шим, **не удалять** |
|
||||
| `Program Files (x86)/Steam/steam.exe` | Steam client — **удалить** из GOG-bottle |
|
||||
|
||||
```bash
|
||||
# только GOG-bottle:
|
||||
bash ~/code/local_machine/scripts/games/gog/purge-steam-from-bottle.sh
|
||||
# все bottle + остатки macOS:
|
||||
bash ~/code/local_machine/scripts/games/purge-steam-wine.sh
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Runbook: установка multipart с экономией диска
|
||||
|
||||
Сценарий: все части offline backup лежат в **`~/Games/`** (или `JA3_GAMES_DIR`). На диске мало места (~10–12 GB свободно) — **нельзя** копировать 15 GB архивов в bottle и **нельзя** распаковывать во вторую папку `cache/`.
|
||||
|
||||
### Файлы (5 частей, одна папка)
|
||||
|
||||
| Файл | Размер | Роль |
|
||||
|------|--------|------|
|
||||
| `setup_jagged_alliance_3_1.5.2_(80730).exe` | ~1.6 MB | Лаунчер Inno (обязателен) |
|
||||
| `setup_jagged_alliance_3_1.5.2_(80730)-1.bin` … `-4.bin` | ~15 GB суммарно | Данные установщика |
|
||||
|
||||
Имя `.exe` должно **совпадать с префиксом `.bin`** (без ` (1)` от браузера). Если скачали как `…(80730) (1).exe` — переименовать в `…(80730).exe`.
|
||||
|
||||
### Почему не Wine
|
||||
|
||||
```bash
|
||||
# ❌ install-ja3-multipart.sh / install-ja3-offline.sh через wine64
|
||||
# Падает за ~10 с — Inno Setup + botva2 в Wine (как GalaxySetup).
|
||||
```
|
||||
|
||||
Канон при **наличии архивов**: **`install-ja3-innoextract.sh`** + **`run-ja3.sh`** (флаг `-unpacked`).
|
||||
|
||||
**Важно:** одного innoextract **мало** — Inno не выполняет пост-скрипты (Lua/VFS). Скрипты копируют `CommonLua` и запускают с **`-unpacked`**. Если графика падает (`Failed creating render device`) — доведите установку Wine-инсталлятором: **`install-ja3-wine-finish.sh`** (нужны все 5 файлов в `~/Games/`) или [Porting Kit](https://www.paulthetall.com/jagged-aliance-3-for-mac/).
|
||||
|
||||
### Алгоритм экономии места (что делает скрипт)
|
||||
|
||||
1. **Перед стартом** — безопасная очистка cache (не трогает архивы в `~/Games`):
|
||||
- `scripts/games/cache/gog-galaxy-extract-gog-bottle`
|
||||
- `scripts/games/cache/ja3-extract-test`
|
||||
- `setup_galaxy.exe` в cache, если Galaxy уже установлен в bottle
|
||||
2. **Распаковка сразу в bottle** — `…/drive_c/GOG Games/Jagged Alliance 3/` (без дубликата в `cache/`).
|
||||
3. **По ходу `innoextract`** — при сообщении `Opening "…-2.bin"` удаляется `-1.bin`, при `-3.bin` → `-2.bin`, при `-4.bin` → `-3.bin` (освобождает ~4 GB за шаг).
|
||||
4. **Флаг `-m`** — не извлекать временные файлы Inno (`tmp/`).
|
||||
5. **После успеха** — удаляются оставшиеся `.bin` и `.exe` в `~/Games` (~15 GB). Отключить: `JA3_KEEP_BINS=1`.
|
||||
|
||||
Пиковая нагрузка на диск: **~16 GB** под игру в bottle + оставшиеся `.bin` (уменьшаются по шагам 3), а не **~31 GB** (архивы + полная копия в cache).
|
||||
|
||||
Минимум свободного места на Data: **~800 MB** во время работы (`JA3_MIN_FREE_MB`, по умолчанию 800), при условии что срабатывает удаление `.bin` по ходу. Если диск забит на 100% — сначала освободить 1–2 GB вручную (Корзина, cache), иначе `innoextract` упадёт на больших `Packs/*.hpk`.
|
||||
|
||||
### Команды (один раз)
|
||||
|
||||
```bash
|
||||
# 1) Bottle GOG-Install (если ещё нет)
|
||||
bash ~/code/local_machine/scripts/games/gog/list-bottles.sh
|
||||
bash ~/code/local_machine/scripts/games/gog/use-bottle.sh <UUID> GOG-Install
|
||||
bash ~/code/local_machine/scripts/games/gog/setup-ja3-bottle.sh # DXVK в GOG-bottle
|
||||
|
||||
# 2) Все 5 файлов в ~/Games/
|
||||
ls ~/Games/setup_jagged_alliance_3_1.5.2_\(80730\)*
|
||||
|
||||
# 3) Установка (innoextract + экономия диска)
|
||||
bash ~/code/local_machine/scripts/games/gog/install-ja3-innoextract.sh
|
||||
# Лог: /tmp/ja3-innoextract-GOG-Install.log
|
||||
```
|
||||
|
||||
Обёртка с автодетектом multipart в `~/Games`:
|
||||
|
||||
```bash
|
||||
bash ~/code/local_machine/scripts/games/gog/install-ja3.sh
|
||||
```
|
||||
|
||||
Недостающий только `.exe` (~1 MB):
|
||||
|
||||
```bash
|
||||
# account.gog.com → JA3 → offline backup, первая часть
|
||||
# или:
|
||||
lgogdownloader --login
|
||||
bash ~/code/local_machine/scripts/games/gog/fetch-ja3-setup-exe.sh
|
||||
```
|
||||
|
||||
### Переменные окружения
|
||||
|
||||
| Переменная | По умолчанию | Назначение |
|
||||
|------------|--------------|------------|
|
||||
| `JA3_GAMES_DIR` | `~/Games` | Папка с `setup_*.exe` и `.bin` |
|
||||
| `JA3_MIN_FREE_MB` | `800` | Стоп, если свободно меньше (MB) |
|
||||
| `JA3_KEEP_BINS` | `0` | `1` — не удалять архивы после установки |
|
||||
| `JA3_CLEANUP_PARTIAL` | `1` | Удалить незавершённую распаковку в bottle при ошибке |
|
||||
|
||||
### Графика: DirectX 12 (обязательно на Mac)
|
||||
|
||||
JA3 на Windows использует **D3D12**. **DXVK-macOS** (только D3D10/11) **не заменяет** D3D12.
|
||||
|
||||
#### Корневая причина «Failed to initialize graphics subsystem» (RCA 2026-05-29, M1 Pro)
|
||||
|
||||
| Слой | Что происходит |
|
||||
|------|----------------|
|
||||
| **Whisky / Gcenx Wine 11.9** | `d3d12.dll` = wined3d → **Vulkan** (`d3d12_get_vk_physical_device Could not find Vulkan physical device`). **Нет D3DMetal hooks** ([Gcenx#97](https://github.com/Gcenx/macOS_Wine_builds/issues/97)). |
|
||||
| **GPTK PE + Gcenx ntdll** | `__wine_unix_call` / `dxgi.dll not found` — PE DLL GPTK несовместимы с чужим Wine. |
|
||||
| **GPTK Wine 7.7 alone** | `comctl32.dll failed to initialize` на этой macOS — не запускается даже notepad. |
|
||||
| **CrossOver 26 + D3DMetal** | **Работает.** Встроенные `apple_gptk` + `WINED3DMETAL=1`. |
|
||||
|
||||
Сообщения GOG API (`MatchmakingServers`, `Music`, `Game name not defined`) — **не причина** краша.
|
||||
|
||||
#### Канон запуска (подтверждено на этой машине)
|
||||
|
||||
```bash
|
||||
brew install --cask crossover # один раз
|
||||
bash ~/code/local_machine/scripts/games/gog/setup-ja3-crossover.sh
|
||||
bash ~/code/local_machine/scripts/games/gog/run-ja3-crossover.sh
|
||||
```
|
||||
|
||||
CrossOver bottle **JA3-GOG** (win10_64, D3DMetal on). Игра клонируется APFS clonefile в bottle (Wine **не читает** symlink за пределы prefix → `CommonLua/Core/autorun.lua not found`).
|
||||
|
||||
**Whisky `run-ja3.sh` для D3D12 на Mac не работает** — только CrossOver (или Porting Kit GUI).
|
||||
|
||||
Альтернатива GUI: [Porting Kit](https://www.paulthetall.com/jagged-aliance-3-for-mac/) (тот же GPTK/D3DMetal стек).
|
||||
|
||||
### Запуск игры
|
||||
|
||||
```bash
|
||||
bash ~/code/local_machine/scripts/games/gog/run-ja3-crossover.sh
|
||||
```
|
||||
|
||||
Whisky (`run-ja3.sh`) — только установка innoextract в GOG-Install; **графика D3D12 → CrossOver**.
|
||||
|
||||
Обход (тормоза, на свой риск):
|
||||
|
||||
```bash
|
||||
JA3_IGNORE_SWAP=1 bash ~/code/local_machine/scripts/games/gog/run-ja3.sh
|
||||
```
|
||||
|
||||
Cmd+Tab → `wine64` / `JA3`. В графике при артефактах: **отключить heat haze**.
|
||||
|
||||
**Ошибка «Failed to initialize graphics subsystem»:** Whisky/Gcenx Wine **не поддерживает D3DMetal** для d3d12. Используйте **CrossOver**: `setup-ja3-crossover.sh` + `run-ja3-crossover.sh`. Из Whisky Run **не запускать** — только CrossOver bottle JA3-GOG с `start /d` (CWD + CommonLua).
|
||||
|
||||
### Итог на диске (после успеха на этой машине)
|
||||
|
||||
| До | После |
|
||||
|----|--------|
|
||||
| ~15 GB архивы в `~/Games` | архивы удалены |
|
||||
| bottle ~1.4 GB | bottle **+~16 GB** (`GOG Games/Jagged Alliance 3`) |
|
||||
| свободно ~10 GB | свободно **~12 GB** (архивы сняты, игра в bottle) |
|
||||
|
||||
---
|
||||
|
||||
## Скачивание (браузер на Mac)
|
||||
|
||||
1. https://www.gog.com/account → **Jagged Alliance 3**
|
||||
2. **Windows**, язык → **Download offline backup game installers**
|
||||
3. Скачать **все 5 частей** (`.exe` ~1 MB + четыре `.bin`) в одну папку, например `~/Games/`
|
||||
|
||||
---
|
||||
|
||||
## Альтернатива: один .exe без .bin
|
||||
|
||||
Если GOG отдал один большой `setup_jagged_alliance_3_*.exe` (без multipart):
|
||||
|
||||
```bash
|
||||
bash ~/code/local_machine/scripts/games/gog/install-ja3-offline.sh ~/Downloads/setup_jagged_alliance_3_*.exe
|
||||
```
|
||||
|
||||
В Wine тоже может упасть — тогда тот же **`install-ja3-innoextract.sh`**, положив единственный `.exe` в `JA3_GAMES_DIR` (без `.bin` innoextract возьмёт данные из exe).
|
||||
|
||||
---
|
||||
|
||||
## Чего не делать
|
||||
|
||||
| ❌ | ✅ |
|
||||
|----|-----|
|
||||
| `GOG_Galaxy_Jagged_Alliance_3.exe` web-stub | offline backup в `~/Games` |
|
||||
| `install-ja3-multipart.sh` (Wine `/VERYSILENT`) | `install-ja3-innoextract.sh` |
|
||||
| Распаковка в `scripts/games/cache/ja3-*` | сразу в `drive_c/GOG Games/…` |
|
||||
| Держать `.bin` после установки без нужды | скрипт удалит (~15 GB) |
|
||||
| `launch-galaxy.sh` / Galaxy CEF для JA3 | **`run-ja3-crossover.sh`** ([JA3_RUNBOOK.md](JA3_RUNBOOK.md)) |
|
||||
| Whisky `run-ja3.sh` для D3D12 | CrossOver + D3DMetal |
|
||||
| `RetinaMode=y` + `LogPixels=192` для мыши JA3 | Клип курсора на середине экрана → **legacy** ([JA3_RUNBOOK.md](JA3_RUNBOOK.md) §9) |
|
||||
| Жёсткий стоп JA3 при swap 800 MB без Wine | Устарело; warn до 4 GB — [JA3_RUNBOOK.md](JA3_RUNBOOK.md) §4 |
|
||||
|
||||
---
|
||||
|
||||
## Связанные документы
|
||||
|
||||
- **[JA3_RUNBOOK.md](JA3_RUNBOOK.md)** — канон запуска, RCA 28–29.05, антипаттерны
|
||||
- [WINE_APPS_LAUNCH_RUNBOOK.md](WINE_APPS_LAUNCH_RUNBOOK.md) — §5 JA3
|
||||
- [WINE_MAC_RUNBOOK.md](WINE_MAC_RUNBOOK.md) — §3.5
|
||||
- [TROUBLESHOOTING.md](TROUBLESHOOTING.md) — GOG Inno / swap
|
||||
- [GOG_GALAXY_7H_RCA.md](GOG_GALAXY_7H_RCA.md)
|
||||
Reference in New Issue
Block a user