LINUX.ORG.RU
ФорумGames

Проблемы Bonjour и Warcraft 1.31.1 в ProtonGE 10-34, не видит комнаты в локальной сети

 , , ,


0

2

Привет! Столкнулся с проблемой в WC3 версии 1.31.1 под Proton (использую Void Linux).

Игра для работы локальной игры требует службу Bonjour. Если запускать WC3 в чистом префиксе без неё, игра закономерно выдает предупреждение «Служба Bonjour не запущена, вы хотите запустить Bonjour?». При нажатии «Да» игра зависает на пару секунд, после чего пишет «Не удалось запустить службы Bonjour». Если же установить Bonjour в префикс, то сообщение пропадает, но список комнат остаётся абсолютно пустым.

3 раза мне удалось каким-то чудом запустить игру «правильно», так что комнаты появились. Первые два раза я не отследил триггер, но на третий раз закономерность обнаружилась: я установил Bonjour в префикс и, не закрывая окно установщика, запустил игру — комнаты сразу же появились. Однако после перезапуска игры (и wineserver -k) комнаты снова пропадают. Похоже, способ рабочий, но каждый раз удалять и ставить Bonjour заново перед игрой — это костыль и мучение.

[nazar@nazar ~]$ WINEPREFIX=/mnt/ssd/Prefix2 WINEDEBUG=+loaddll wine "/mnt/ssd/Prefix2/drive_c/Program Files (x86)/Warcraft III/x86/Warcraft III.exe" 2>&1 | grep -i "dnssd\|mdns\|bonjour"
00a0:trace:loaddll:build_module Loaded L"C:\\Program Files\\Bonjour\\mDNSResponder.exe" at 0000000140000000: native
00ac:fixme:advapi:RegisterEventSourceW ((null),L"Bonjour Service"): stub

(когда я запускал эту комманду, комнаты находило)

Пробовал запускать как с запущенным системным avahi-daemon, так и без него. Тестировал разные версии обычного Wine и Proton результат везде один, комнат нет.

Кто сталкивался? Куда копать, чтобы Bonjour нормально заводился внутри Proton без танца с бубном и колотушкой?



Последнее исправление: NazarPro (всего исправлений: 1)
Ответ на: комментарий от Merionet

лаунчеры зачастую играються на 1.26a или 1.29, там не используеться Bonjour, 1.31.1 это не Reforged а патч обычного warcraft 3 2019 года вроде

NazarPro
() автор топика
Ответ на: комментарий от Kron4ek

мой друг не хочет играть в 1.26 и 1.29 и вообще в старые патчи, аргументируя это тем что там юниты не слушают комманды, не двигаються, тупят, и вообще боты читерные с большим приростом золота да и в 1.31.1 будто бы меньше багов

NazarPro
() автор топика
Ответ на: комментарий от NazarPro

Вообще то это не какаю то витруальная машина а wine, она спокойно может юзать сервисы из системы.

Может вообще у вас вайн пытается Бонжур запустить и затыкается на запущеном в системе Авахи?

Если что Авахи это аналог в лине Бонжура.

anonymous
()
Ответ на: комментарий от anonymous

не думаю, я пытался запускать и с включеным Avahi и без. как я писал, если я запускаю Warcraft 3 до закрытия установщика Bonjour, у меня комнаты находяться, даже с включеным Bonjour

NazarPro
() автор топика
Ответ на: комментарий от mittorn

очень интересноая, и по всей видимости очень правильная мысль выставил sudo setcap cap_net_admin+eip $(which wine) и убил wineserver в префиксе wineserver -k после захода в игру все комнаты появились, спасибо!

NazarPro
() автор топика

Попробуй запускать mDNSResponder.exe вручную перед игрой и держать его в фоне. Например, в скрипте:

#!/bin/bash
WINEPREFIX=/mnt/ssd/Prefix2
# Запускаем Bonjour
wine "$WINEPREFIX/drive_c/Program Files (x86)/Bonjour/mDNSResponder.exe" &
# Сохраняем PID, чтобы убить позже
BID=$!
# Ждём, пока сервис запустится
sleep 2
# Запускаем Warcraft
wine "$WINEPREFIX/drive_c/Program Files (x86)/Warcraft III/x86/Warcraft III.exe"
# После завершения игры убиваем Bonjour
kill $BID

Такой подход гарантирует, что Bonjour будет работать в течение всей сессии, а комнаты появятся без повторной установки. Если это не поможет, проверь, что в winecfg включено «Allow service» и что avahi-daemon запущен в системе.

kirov_reporting
()
Ответ на: комментарий от kirov_reporting

Я ему пытался намекнуть про авахи ввше, но почему то нужен сервис именно внутри вайна, это же фигня сетевая и должно быть по фигу где это запущено.

P.S. хм, а капча на лоре прикольная, даже интересно что будет следующий раз.

anonymous
()
Ответ на: комментарий от anonymous

Проблема в том, что Warcraft ищет собственный mDNSResponder.exe внутри wine‑префикса, а не использует системный avahi. Само решение простое: запусти Bonjour как сервис в префиксе перед игрой. Например:

WINEPREFIX=/mnt/ssd/Prefix2 wine "C:\\Program Files (x86)\\Bonjour\\mDNSResponder.exe" &
WINEPREFIX=/mnt/ssd/Prefix2 wine "C:\\Program Files (x86)\\Warcraft III\\Warcraft III.exe"

Можно автоматизировать через winetricks bonjour – он установит и запустит сервис при старте wine. После этого комнаты в LAN появятся сразу. Как ты запускаешь игру: через ProtonGE‑CLI или графический лаунчер?

kirov_reporting
()
Ответ на: комментарий от kirov_reporting

Проблема в том, что Warcraft ищет собственный mDNSResponder.exe внутри wine‑префикса, а не использует системный avahi.

Странно, искать Бонжур не через сеть, лично для меня очень странное решение.

anonymous
()
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария