Тихая война за Worms Armageddon и Diablo I в Wine (способ запустить эти игры в Wine, плюс недовольные размышления)

Нативные и в Wine/Cedega - проблемы, настройка, обсуждение

Модератор: Модераторы разделов

Ответить
zenitur
Сообщения: 594
Статус: Одмин
ОС: openSuSE 10.2

Тихая война за Worms Armageddon и Diablo I в Wine

Сообщение zenitur »

Текст полностью переписан, так как был монструозен и сумбурен, всё было не понятно.

Как всё начиналось

Запуску WA и Diablo I мешает сбой. DirectDraw всё рисует как настоящий Windows, но мы видим только чёрный квадрат, который всё перекрывает. Патча нет но есть хак, который не принимают в код Wine, потому что он сломает что-нибудь ещё. Для Wine 0.9 - 0.9.48 нужно было просто скачать файл ddraw.dll для именно своей версии Wine и положить в каталог с игрой. Сам патч для исходного кода - это один-единственный файл для всех версий Wine - просто уже пропатченные бинарники не подходили к другим Wine (кстати не замечал такого для других всевозможных патчей) вследствие частого переписывания больших частей кода библиотеки ddraw.

P.S. Для Wine 0.9 - 0.9.12 один-единственный файл, а потом почему-то для каждой новой версии Wine приходилось вручную патчить исходник! Либо загружать из Интернета файл ddraw.dll для свей версии Wine, как я и делал. Список. (Исходный код патча для всех версий один и не менялся, бинарники 0.9.49-0.9.52 неработоспособны).

Что было дальше

Начиная с Wine 0.9.49 всё поменялось, патч не работал. Для тех кто не помнит версии Wine объясняю. Последним Wine был 0.9.61, потом релиз-кандидаты (пять штук) и 1.0 в мае 2008 года. Как всегда, разница во времени между релизами - 2 недели. Всё это время я использовал Wine 0.9.48. А потом нашёл решение. Его знали и раньше, но после совмещения двух страничек на AppDB про WA нужный комментарий удалился. Я его нашёл только потом. Надо было пропатчить user32.dll (а точнее, одну строчку заккоментировать), и старый патч для ddraw работал. Я тут же послал результаты тестов для Wine 1.1.2 - последнего на тот момент. В 1.1.3 всё работать перестало. Ссылку удалил.

Держал два Wine. Потом нашёл страницу человека, который улучшил патч для ddraw так, что он стал работать! Патчить user32 уже не надо было. С 1.0 по 1.1.26 всё работало, а на appdb и не знают. Ну что, никто больше результаты тестов после меня не выкладывал, я написал что в 1.1.26 всё работает вот с этим патчем. В 1.1.27 - перестало. Ссылка на бинарник. Страничка с патчами закрылась, видимо зря я выложил результат тестов с ссылкой на патч.

Потом кто-то ещё написал работающий патч для Wine 1.1.35. Как нетрудно догадаться, в одном из следующих релизов (1.1.38) работать перестало. Потом был патч для 1.1.44, с какого релиза Wine не работает не знаю.

Как обстоит дело сейчас

В комментариях к 1.2 ValdikSS (один из лучших и известных игроков) написал что нашёл принципиально новое решение, не трогающее ddraw. Я попробовал - в сетевой игре не удаётся отправлять по Enter тексты (встречался с этим глюком и раньше, но вот в каком релиза - не помню, 1.1.20 наверное, до того как прикрыли страничку с патчами). Патч для Wine 1.2, бинарник для Wine 1.2.

Сегодня последняя версия Wine 1.3.15 и патч от ValdikSS опять не работает. В Bugzilla об этом написали, тут же кто-то ответил просьбой больше сюда не писать ("в этой теме полезных комментариев штук 20, так давайте же писать только полезные комментарии", и в качестве антиоффтопика какие-то полезные размышления).

Почему так происходит? Мне кажется, разработчики Wine намеренно ломают работоспособность стороннего патча для ddraw сразу как он появляется. Правда с последним пришлось повозиться, так как он ddraw не трогает. Сделано это может быть например для того, чтобы больше людей приобрели коммерческий Wine от CodeWeavers.

P.S. Чтобы сделать Wine 1.1.2 с работающим Worms Armageddon и Diablo I, нужно закомментировать строчку

Код: Выделить всё

if (hwnd == GetActiveWindow()) WINPOS_ActivateOtherWindow( hwnd );


в файле dlls/user32/dialog.c, и пропатчить ddraw старым патчем. Закомментировать - поставить перед ней // и пробел. Да, кстати, 1.1.2 больше не собирается с новыми компиляторами, используйте строчку "CC=gcc-4.2 ./configure" чтобы собрать со старым, если он установлен в систему.
А йа Ктулху! А йа - Медве-ед! А где Путин? Путина не-ет! Если встретишь - зохавай моск! А вернёшься - скажи ПРЕВЕД! Превед, Ктулху! Превед, Медвед!
Спасибо сказали:
iglezz
Сообщения: 43
ОС: Debian testing

Re: Тихая война за Worms Armageddon и Diablo I в Wine

Сообщение iglezz »

В своё время, когда баловался этой игрулей, держал под неё в отдельной папочке пропатченный WINE.
Думается, это лучшее решение для проблемных приложений (тем более на фоне размеров мнргих игрушек лишние 50-100 Мб напрягать не будут).
Спасибо сказали:
Аватара пользователя
Brainsburn
Сообщения: 950
Статус: /
ОС: Gentoo
Контактная информация:

Re: Тихая война за Worms Armageddon и Diablo I в Wine

Сообщение Brainsburn »

Это все, конечно, плохо, но под Linux есть много стоящих аналогов этой игры, которые ни в чем ей не уступают.
Спасибо сказали:
pevzi
Сообщения: 1
ОС: Arch

Re: Тихая война за Worms Armageddon и Diablo I в Wine

Сообщение pevzi »

Brainsburn писал(а):
20.08.2010 14:22
Это все, конечно, плохо, но под Linux есть много стоящих аналогов этой игры, которые ни в чем ей не уступают.

Они уступают хотя бы в том, что они другие (: но в принципе те же Hedgewars уже вполне хороши и в чем-то даже лучше.

Топикстартеру спасибо, не думал, что ее можно запустить под вайном. Попробую как-нибудь.
Спасибо сказали:
Аватара пользователя
AlexYeCu
Сообщения: 1136
ОС: fedora

Re: Тихая война за Worms Armageddon и Diablo I в Wine

Сообщение AlexYeCu »

Кстати, есть пускалка WA, но сильно наколенная — по сути вайн с патчами и меню для установки
Спасибо сказали:
zenitur
Сообщения: 594
Статус: Одмин
ОС: openSuSE 10.2

Re: Тихая война за Worms Armageddon и Diablo I в Wine

Сообщение zenitur »

Дело в сетевой игре. В WA нас круглосуточно ждут человек 70 или больше, чтобы кто-нибудь создал игру. При этом играть можно даже с diiap-up и GPRS, потому что игра пошаговая и работает с любым пингом!
Попробовал я этот патч, который оставил ValdikSS в комментариях... Который для 1.2. В чате сетевой игры сообщения не отправляются! Так и раньше было, я не помню как я это решал (( Кажется, даундейтом или апдейтом.
А йа Ктулху! А йа - Медве-ед! А где Путин? Путина не-ет! Если встретишь - зохавай моск! А вернёшься - скажи ПРЕВЕД! Превед, Ктулху! Превед, Медвед!
Спасибо сказали:
Аватара пользователя
AlexYeCu
Сообщения: 1136
ОС: fedora

Re: Тихая война за Worms Armageddon и Diablo I в Wine

Сообщение AlexYeCu »

zenitur писал(а):
29.08.2010 21:56
Дело в сетевой игре. В WA нас круглосуточно ждут человек 70 или больше, чтобы кто-нибудь создал игру. При этом играть можно даже с diiap-up и GPRS, потому что игра пошаговая и работает с любым пингом!
Попробовал я этот патч, который оставил ValdikSS в комментариях... Который для 1.2. В чате сетевой игры сообщения не отправляются! Так и раньше было, я не помню как я это решал (( Кажется, даундейтом или апдейтом.


Значит так, вот только вчера настроил нормальный запуск без CD (мой диск с червячками изрядно потрёпан жизнью). Хотсит без нареканий. С интернет-играми, насколько помню, была проблема с залогиниванием (автологин прокатывал, а вот с вводом каких-то данных были проблемы из-за потери фокуса). Касаемо отправки сообщений и вообще любых проблем с клавиатурой — рекомендую во-первых прибить все ibus-daemon/scin/xneur и тому подобные приблуды, во-вторых поэкспериментировать с запускам с эмуляцией рабочего стола и без оной (см. winecfg). Запускал с использованием Play Worms Armageddon on linux — спец. сборка wine для червячков от фаната игры.

<троллинг>
Касаемо чата — это проблема windows ) Под linux можно легко метнуться на другой рабочий стол и отправить сообщение в irc, к примеру.
</троллинг>

Апдейт нужен 3.6.29.0-beta, причём что под win, что под lin. Он скачивает все предыдущие.
Спасибо сказали:
zenitur
Сообщения: 594
Статус: Одмин
ОС: openSuSE 10.2

Re: Тихая война за Worms Armageddon и Diablo I в Wine

Сообщение zenitur »

Вовсе нет, это проблема Wine, потому что даунгрейд решает проблему. Эта проблема то есть, то нет её. В новых версиях.
А йа Ктулху! А йа - Медве-ед! А где Путин? Путина не-ет! Если встретишь - зохавай моск! А вернёшься - скажи ПРЕВЕД! Превед, Ктулху! Превед, Медвед!
Спасибо сказали:
Аватара пользователя
AlexYeCu
Сообщения: 1136
ОС: fedora

Re: Тихая война за Worms Armageddon и Diablo I в Wine

Сообщение AlexYeCu »

zenitur писал(а):
29.09.2010 10:03
Вовсе нет, это проблема Wine, потому что даунгрейд решает проблему. Эта проблема то есть, то нет её. В новых версиях.


Гражданин, перечитайте то, что я вам написал. Последний wine, в котором червячки шли нормально — 0.9.38. Для него выходил патченый ddraw.dll. Из-за проблем с freetype2 вы его в современной системе без бубна не соберёте. Вроде бы ddraw ещё для каких-то версий были после 1.0, но на них основательно забили, потому что появился спецсборка wine с лончером именно для WA. Сборка называется Play Worms Armageddon on linux. На сегодня это наименее проблемный способ запуска WA под linux. Замечу, что игрушка весьма не новая и, скажем, под MS Windows 7 приходится точно также монтировать образ и прибивать explorer.exe, при этом с некоторой вероятностью игра может наглухо подвесить систему на этапе загрузки (впрочем, если загрузилось, то дальше уже без проблем), плюс отсутствует возможность переключиться на другой рабочий стол и ответить в im/skype.
Да, после 1.1.2 или около того весь wine один сплошной регресс — на каждый фикс по 10 багов.
Ну и с чатом пробуйте рус./лат.
Спасибо сказали:
Аватара пользователя
BrONtOSAUR
Сообщения: 421
ОС: Debian Sid

Re: Тихая война за Worms Armageddon и Diablo I в Wine

Сообщение BrONtOSAUR »

Относительно верные 2 решения без бубнов:
1. Использовать аналоги, типа hedgewars, wormux, Вормикс ВКонтакте ))
2. Играть в Worms Reloaded, работает идеально.
System: Debian GNU/Linux Sid + kernel 2.6.35 + gcc 4.4.5 + X.org 2:1.7.7-2 + KDE 4.4.5
Config: Asus P5B + Intel Core 2 Duo E6750 2.66 Mhz + GIGABYTE GeForce 9600GT 1GB (260.19.29 drv.) + 4GB RAM + Creative Audigy SE
Спасибо сказали:
zenitur
Сообщения: 594
Статус: Одмин
ОС: openSuSE 10.2

Re: Тихая война за Worms Armageddon и Diablo I в Wine

Сообщение zenitur »

Вы правы - необходимо изменить начальное сообщение. Оно какое-то трудночитаемое.
А йа Ктулху! А йа - Медве-ед! А где Путин? Путина не-ет! Если встретишь - зохавай моск! А вернёшься - скажи ПРЕВЕД! Превед, Ктулху! Превед, Медвед!
Спасибо сказали:
aqua222
Сообщения: 2

Re: Тихая война за Worms Armageddon и Diablo I в Wine

Сообщение aqua222 »

Интересует та же проблема. Единственная игра на которую жалко забить это WA
На сайте разработчиков написано что под wine 1.3.3 WA идёт из коробки.
http://blog.worms2d.info/
Пробовал, не идёт. Чёрный экран. Может нужна новая версия или патч? У меня последний доступный.
Спасибо сказали:
Аватара пользователя
BrONtOSAUR
Сообщения: 421
ОС: Debian Sid

Re: Тихая война за Worms Armageddon и Diablo I в Wine

Сообщение BrONtOSAUR »

Народ, попробуйте вот эту штуку, вдруг подействует
http://sol.gfxile.net/ddhack/
System: Debian GNU/Linux Sid + kernel 2.6.35 + gcc 4.4.5 + X.org 2:1.7.7-2 + KDE 4.4.5
Config: Asus P5B + Intel Core 2 Duo E6750 2.66 Mhz + GIGABYTE GeForce 9600GT 1GB (260.19.29 drv.) + 4GB RAM + Creative Audigy SE
Спасибо сказали:
zenitur
Сообщения: 594
Статус: Одмин
ОС: openSuSE 10.2

Re: Тихая война за Worms Armageddon и Diablo I в Wine

Сообщение zenitur »

Содержимое этого сообщения перенесено в первое сообщение темы автором.
А йа Ктулху! А йа - Медве-ед! А где Путин? Путина не-ет! Если встретишь - зохавай моск! А вернёшься - скажи ПРЕВЕД! Превед, Ктулху! Превед, Медвед!
Спасибо сказали:
aqua222
Сообщения: 2

Re: Тихая война за Worms Armageddon и Diablo I в Wine

Сообщение aqua222 »

Ура! Worms Armageddn с последним патчем работают в Wine!
Спасибо сказали:
zenitur
Сообщения: 594
Статус: Одмин
ОС: openSuSE 10.2

Re: Тихая война за Worms Armageddon и Diablo I в Wine

Сообщение zenitur »

Обновил исходное сообщение. Предлагаю прочитать и обсудить.
А йа Ктулху! А йа - Медве-ед! А где Путин? Путина не-ет! Если встретишь - зохавай моск! А вернёшься - скажи ПРЕВЕД! Превед, Ктулху! Превед, Медвед!
Спасибо сказали:
Ответить