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>
12 KiB
Jagged Alliance 3 на Mac без GOG Galaxy
Полный runbook (установка + графика + RCA + антипаттерны): JA3_RUNBOOK.md
Источники: GOG — offline installers, Porting Kit / JA3, практика на этой машине (установка 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) |
| Запуск игры | CrossOver run-ja3-crossover.sh — см. 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 |
# только 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
# ❌ 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.
Алгоритм экономии места (что делает скрипт)
- Перед стартом — безопасная очистка cache (не трогает архивы в
~/Games):scripts/games/cache/gog-galaxy-extract-gog-bottlescripts/games/cache/ja3-extract-testsetup_galaxy.exeв cache, если Galaxy уже установлен в bottle
- Распаковка сразу в bottle —
…/drive_c/GOG Games/Jagged Alliance 3/(без дубликата вcache/). - По ходу
innoextract— при сообщенииOpening "…-2.bin"удаляется-1.bin, при-3.bin→-2.bin, при-4.bin→-3.bin(освобождает ~4 GB за шаг). - Флаг
-m— не извлекать временные файлы Inno (tmp/). - После успеха — удаляются оставшиеся
.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.
Команды (один раз)
# 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 ~/code/local_machine/scripts/games/gog/install-ja3.sh
Недостающий только .exe (~1 MB):
# 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). |
| 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) — не причина краша.
Канон запуска (подтверждено на этой машине)
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 (тот же GPTK/D3DMetal стек).
Запуск игры
bash ~/code/local_machine/scripts/games/gog/run-ja3-crossover.sh
Whisky (run-ja3.sh) — только установка innoextract в GOG-Install; графика D3D12 → CrossOver.
Обход (тормоза, на свой риск):
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)
- https://www.gog.com/account → Jagged Alliance 3
- Windows, язык → Download offline backup game installers
- Скачать все 5 частей (
.exe~1 MB + четыре.bin) в одну папку, например~/Games/
Альтернатива: один .exe без .bin
Если GOG отдал один большой setup_jagged_alliance_3_*.exe (без multipart):
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) |
Whisky run-ja3.sh для D3D12 |
CrossOver + D3DMetal |
RetinaMode=y + LogPixels=192 для мыши JA3 |
Клип курсора на середине экрана → legacy (JA3_RUNBOOK.md §9) |
| Жёсткий стоп JA3 при swap 800 MB без Wine | Устарело; warn до 4 GB — JA3_RUNBOOK.md §4 |
Связанные документы
- JA3_RUNBOOK.md — канон запуска, RCA 28–29.05, антипаттерны
- WINE_APPS_LAUNCH_RUNBOOK.md — §5 JA3
- WINE_MAC_RUNBOOK.md — §3.5
- TROUBLESHOOTING.md — GOG Inno / swap
- GOG_GALAXY_7H_RCA.md