Files
local_machine/docs/games/JA3_MAC_WITHOUT_GALAXY.md

11 KiB
Raw Permalink Blame History

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)
Запуск игры run-ja3.sh (Whisky GOG-Install) — см. 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). На диске мало места (~1012 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.

Алгоритм экономии места (что делает скрипт)

  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% — сначала освободить 12 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 Работало; CrossOver удалён (2026-06).
Whisky + GPTK D3DMetal в GOG-Install bottle — см. install-gptk-whisky.sh

Сообщения GOG API (MatchmakingServers, Music, Game name not defined) — не причина краша.

Канон запуска (2026-06)

bash ~/code/local_machine/scripts/games/gog/run-ja3.sh

Игра в bottle GOG-Install (Whisky). При D3D12-ошибках — GPTK в bottle (JA3_RUNBOOK.md §2).

Запуск игры

bash ~/code/local_machine/scripts/games/gog/run-ja3.sh

Обход swap (тормоза, на свой риск):

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»: установите GPTK и настройте D3DMetal в Whisky — см. JA3_RUNBOOK.md §2. Не запускать JA3.exe из Whisky Run без start /d.

Итог на диске (после успеха на этой машине)

До После
~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/accountJagged 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 ~/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.sh (JA3_RUNBOOK.md)
Whisky Run JA3.exe без CWD run-ja3.sh (start /d)
Жёсткий стоп JA3 при swap 800 MB без Wine Устарело; warn до 4 GB — JA3_RUNBOOK.md §4

Связанные документы