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:
48
docs/games/UNITY_POINTER_MOUSE_FIX.md
Normal file
48
docs/games/UNITY_POINTER_MOUSE_FIX.md
Normal file
@@ -0,0 +1,48 @@
|
||||
# HoMM Olden Era: курсор двигается, клики не работают (Whisky / Wine на macOS)
|
||||
|
||||
## Корневая причина (не «битая мышь»)
|
||||
|
||||
Современный Unity (в т.ч. ветки с Unity 6 input stack) вызывает Windows API **`EnableMouseInPointer`** и дальше ждёт сообщения **`WM_POINTER`**. В типичном Wine из Whisky эта функция сейчас **заглушка** → в `Player.log` появляется строка:
|
||||
|
||||
```text
|
||||
EnableMouseInPointer failed with the following error: Call not implemented.
|
||||
```
|
||||
|
||||
Пока это так, **никакие** танцы с `WineBus` / SDL / виртуальным desktop / оконным fullscreen **не обязаны** починить ЛКМ: курсор может двигаться, а нажатия и hover в UI игнорируются.
|
||||
|
||||
Проверка одной командой (после хотя бы одного запуска игры):
|
||||
|
||||
```bash
|
||||
bash ~/code/local_machine/scripts/games/diagnose-homm-mouse.sh
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Что реально работает сегодня
|
||||
|
||||
### Вариант A — CrossOver (рекомендуется для Unity с этим симптомом)
|
||||
|
||||
1. Установить **CrossOver** для macOS (CodeWeavers).
|
||||
2. При необходимости применить готовый патч слоя Wine под `EnableMouseInPointer` (см. репозиторий с инструкцией и бинарниками под конкретную версию CrossOver):
|
||||
[dabielf/crossover-unity-mouse-fix](https://github.com/dabielf/crossover-unity-mouse-fix)
|
||||
3. Запускать игру **из CrossOver**, а не из «голого» WhiskyWine, если патч ставился в CrossOver.
|
||||
|
||||
Важно: патч из репозитория рассчитан на **пути внутри `CrossOver.app`**, а не на `~/Library/Application Support/com.isaacmarovitz.Whisky/Libraries/`. Копирование DLL из CrossOver в Whisky **вручную** — высокий риск несовместимости ABI (краши Wine).
|
||||
|
||||
### Вариант B — ждать/переезжать на Wine с upstream-фиксом
|
||||
|
||||
Следить за [Wine Bug #53847](https://bugs.winehq.org/show_bug.cgi?id=53847) и обновлениями **WhiskyWine**, когда туда попадёт полноценная реализация (или использовать сборку Wine, где она уже есть), и только потом снова тестировать в Whisky.
|
||||
|
||||
---
|
||||
|
||||
## Связь с нашими скриптами
|
||||
|
||||
- `start.sh input` / `fix-homm-wine-input.sh` — про **HID/SDL и геймпады**, не про `EnableMouseInPointer`.
|
||||
- `start.sh game` + DXVK-macOS — про **графику (D3D11)**, не про pointer stack Unity.
|
||||
|
||||
---
|
||||
|
||||
## Быстрый чеклист
|
||||
|
||||
1. `bash ~/code/local_machine/scripts/games/diagnose-homm-mouse.sh`
|
||||
2. Если exit code **2** и есть строка про `EnableMouseInPointer` → идём в CrossOver/другой Wine, а не в «ещё один SDL-твик».
|
||||
Reference in New Issue
Block a user