LINUX.ORG.RU

Хм, вообще-то если у тебя нормальная пиратка или оригинал, то worms2 должны пахать в wine только в путь. Ты бы хоть симптомы описал.
Еще подозреваю у тебя wine не самосборный с нужным патчем (как раз он лечит черные экраны в w2/wa/wwp/diablo/etc, я его давно выкладывал тут), а чья-нибудь криворукая "сборка".

Вот в моём рипе вторых червей просто нереально искромсали. Звуков почти нет, "русифицировано" всё транслитом, в игре всё по-китайски и т.д.
У меня не работало в wine потому что я запускал runme.exe, а он вылетает (также как и в вантузе) с какой-то ошибкой.
А запускать надо было worms2.hbd (переименовав в .exe), тогда запускается фронтенд и всё нормально пашет. Правда перед запуском надо стереть из реестра все упоминания о worms2/Team17/etc, иначе - сегфолт. Еще по-моему надо выставлять совместимость с 95 виндой. Всё пашет с незапамятных времён даж в последнем wine.

А с WA/WWP-то какие проблемы?
Правда там чтобы не висло надо сделать кое-какое шаманство - переписать из маздая quartz.dll и devenum.dll и сделать в winecfg замещения для Wa.exe, больше никаких проблем не вижу, а если у тебя чёрный экран, см. выше про патч. Даже последние беты (у меня 3.6.22.1) вормсов пашут на ура.

Cedega вообще в топку, уже давно забил на неё. Всё нужное в сто раз лучше и быстрее пашет в wine.

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

Сборка у меня своя. Из cvs и несколько старых версий (в новый версиях вайна hmm3 так тормозит, что играть невозможно; точнее, тормозит почему-то противник и тормозит довольно сильно - пока след дня дождёшься - офигеешь =)). Собирал так: ./configure && make && make install

Симптомы: появляется чёрный экран и какая-то ошибка вылетает... Уже не помню. Ок нажимаешь и до свидания =) А у WA под вайном чёрный экран.

Короче, приду домой, буду пробовать =)

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

Ну, так я и предполагал. Ты всё делал как не надо :)

Во-первых, вот этот патч жизненно необходим, иначе ни в червей, ни в дьябло (если оно есть у тебя) ты не поиграешь:



--- dlls/wined3d/surface_gdi.c.orig
+++ dlls/wined3d/surface_gdi.c
@@ -61,7 +61,7 @@
 
         hSurfaceDC = This->hDC;
 
-        hDisplayWnd = This->resource.wineD3DDevice->ddraw_window;
+	hDisplayWnd = GetDesktopWindow();
         hDisplayDC = GetDCEx(hDisplayWnd, 0, DCX_CLIPSIBLINGS|DCX_CACHE);
         if(rc)
         {
         
         
Применять его так:

cd wine-0.9.xx/dlls/wined3d
patch < file_with_copypasted_patch

Потом, ты обязан заоптимизировать OpenGL, как написано в этом http://www.linux.org.ru/jump-message.jsp?msgid=1189645 треде (прибавка нехилая. Бл*, когда это уже в фак добавят)
Не забудь про вендовые quartz & devenum
И еще, когда собираешь wine, следи чтобы не было флага -fomit-frame-pointer, он многое ломает к чертям.
Самое оптимальное - просто '-O2 -march=ПРОЦ -pipe'

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

Прикольно =) Почитал =)) Что до патчика, то встречал его уже в форуме, но было это давно и забылось ;) Спасибо, будем пробовать!

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

С патчем заминка :(

# pwd
/mnt/hd/wine/wine-0.9.10/dlls/wined3d
bash-3.1# ls | grep surface
surface.c

нет тама такого файла :(

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

# grep -r hDisplayWnd .

./dlls/ddraw/surface_user.c: HWND hDisplayWnd;
./dlls/ddraw/surface_user.c: hDisplayWnd = get_display_window(This, &offset);
./dlls/ddraw/surface_user.c: hDisplayDC = GetDCEx(hDisplayWnd, 0, DCX_CLIPSIBLINGS|DCX_CACHE);
./dlls/ddraw/surface_user.c: ReleaseDC(hDisplayWnd, hDisplayDC);
./dlls/ddraw/surface_user.c: HWND hDisplayWnd;
./dlls/ddraw/surface_user.c: hDisplayWnd = get_display_window(This, &offset);
./dlls/ddraw/surface_user.c: hDisplayDC = GetDCEx(hDisplayWnd, 0, DCX_CLIPSIBLINGS|DCX_CACHE);
./dlls/ddraw/surface_user.c: ReleaseDC(hDisplayWnd, hDisplayDC);
./dlls/ddraw/surface_user.c: HWND hDisplayWnd;
./dlls/ddraw/surface_user.c: hDisplayWnd = get_display_window(This, &offset);
./dlls/ddraw/surface_user.c: hDisplayDC = GetDCEx(hDisplayWnd, 0, DCX_CLIPSIBLINGS|DCX_CACHE);
./dlls/ddraw/surface_user.c: ReleaseDC(hDisplayWnd, hDisplayDC);
./dlls/ddraw/surface_user.c: HWND hDisplayWnd = get_display_window(This, &offset);
./dlls/ddraw/surface_user.c: HDC hDisplayDC = GetDC(hDisplayWnd);
./dlls/ddraw/surface_user.c: ReleaseDC(hDisplayWnd, hDisplayDC);

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

Да. и при старте W2 говорит что рантайм еррор и в консоли:

$ /mnt/hd/wine/0.9.10/bin/wine Worms2.exe
fixme:ddraw:Main_DirectDraw_SetCooperativeLevel (0x7fd2b318)->(0x10024,00000011)
fixme:xrandr:X11DRV_XRandR_SetCurrentMode Cannot change screen BPP from 32 to 8
fixme:xrandr:X11DRV_XRandR_SetCurrentMode Cannot change screen BPP from 32 to 8
fixme:x11drv:X11DRV_DDHAL_CreatePalette stub
fixme:mci:MCI_LoadMciDriver Couldn't load driver for type L"CDAUDIO".
If you don't have a windows installation accessible from Wine,
you perhaps forgot to create a [mci] section in system.ini
fixme:ddraw:DIB_DirectDrawSurface_Blt Can't handle DDBLT_WAIT flag right now.
fixme:winmm:MMDRV_Exit Closing while ll-driver open

Может дело в этом CDAUDIO?

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

0.9.10 это слишком старая версия для этого патча!!!

Попробуй => 0.9.15.

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

да пиратка конечно. Насколько обрезанная сказать не могу... Надо сначала запустить =) Но с русским вроде всё в порядке =)

в 0.9.16 действительно нашёлся файл для патча. Дома попробую.

Но вот для W2 проблема не с чёрным экраном :( рантайм эррор и всё тут :(((

vovans ★★★★★
() автор топика
5 января 2007 г.
Ответ на: комментарий от RatMann

ЛорФак, не смотрите, там видать патч для старых вайнов :)))

kerzol
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.