LINUX.ORG.RU

Re: Counter Strike 1.6

Я запускал и нормально играл на разогнанном AthlonXP 2100+ и GeforceFX 5500.

Для запуска надо использовать WINE, в Cedega значительно тормознее. Еще я недавно попробовал старый трюк (еще 2001 года) с оптимизацией opengl, который оказывается нехило прибавляет в копилку FPS.
Итак, качаем или берем из CVS последний снапшот WINE, лезем на http://oss.sgi.com/cgi-bin/cvsweb.cgi/projects/ogl-sample/main/doc/registry/s... , тырим два файла: gl.tm и gl.spec, кладём их в wine/dlls/opengl32/specs (каталог specs придётся создать), идём в dlls/opengl32 и правим make_opengl:

$ vi make_opengl

заменяем
my $gen_thread_safe = 1;
my $ext_prefix = "func_";
my $gen_traces = 1;

на
my $gen_thread_safe = 0;
my $ext_prefix = "";
my $gen_traces = 0;

и обновляем opengl32.spec, opengl_norm.c и opengl_ext.c:

$ ./make_opengl specs 1.5

Всё, можно собирать wine. Я делаю так:

$ cd ../../
$ configure --disable-debug --disable-trace
$ make
Следующие строчки для Slackware, рпмщикам checkinstall, а любителям мусора просто make install.
$ make install prefix=~/tmp
$ cd ~/tmp
$ mkdir -p usr/local
$ mv * usr/local
$ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
$ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
$ su
$ chown -R root:root .
$ chown -R root:bin usr/local/bin
$ makepkg -l y -c n wine.tgz
$ installpkg wine.tgz

Если есть мастдайные *.ttf, то надо скопировать/сделать линк на них в ~/.wine/drive_c/windows/fonts, без этого в winecfg будут крякозяблы.
Чтобы избежать запарки с cs1.6 и activex можно скопировать из маздая 3 dll:

$ cp /mnt/windows/WINDOWS/system32/{crypt32.dll,shlwapi.dll,shdocvw.dll} ~/.wine/drive_c/windows/system32

теперь надо запустить winecfg и добавить замещения dll native,builtin для shlwapi и shdocvw, поменять звук с ALSA на OSS (не знаю, как у других, а у меня на ALSA cs1.6 просто замораживается на старте) и сделать десктоп для желаемого разрешения (у себя в fvwm я просто подвожу заголовок окна к краю экрана, он "прилипает" и получается натуральный fullscreen).
Благодаря шаманству с opengl я получил вот такие результаты (на самопальной демке):

CS1.1
_before_
145.07 Avg
102 Min
248 Max
_after_
165.22 Avg
112 Min
285 Max
_sound_off_
180.11 Avg
122 Min
315 Max

CS1.6
_before_
69 fps
_after_
86 fps
_sound_off_
103 fps

CS1.4 (тут уже просто сравнение с вантузом)
_linux_
162.97 Avg
104 Min
251 Max
_windoze_
264.52 Avg
156 Min
357 Max

Блин, почему звук так сильно съедает FPS?

RatMann ★★ ()

Re: Counter Strike 1.6

Вот чёрт! Я нагнал тут такой пурги, прошу извинить если кто-то повёлся на это раньше времени. Просто не сразу разобрался что к чему.

Во-первых, качать надо не только gl.tm и gl.spec, а полный набор. Лучше всего с этим справится скрипт (утянутый из cvs cedega):

#!/bin/sh
mkdir specs
for ff in {,glx,wgl}enum{,ext}.spec {gl,glx,wgl}.{spec,tm} {glx,wgl}ext.spec {,enum}glu.spec
do
wget -P specs "http://oss.sgi.com/cgi-bin/cvsweb.cgi/~checkout~/projects/ogl-sample/main/doc/registry/specs/$ff"
done

Cозданный каталог specs надо потом переместить в wine/dlls/opengl32. И наконец нельзя заменять my $ext_prefix = "func_"; в make_opengl, т.к. это приводит к ошибке компиляции. Достаточно присвоить нули этим двум параметрам:

my $gen_thread_safe = 1;
my $gen_traces = 1;

Потом обязательно
$ ./make_opengl specs 1.5
ну, и компиляция.

А теперь самое интересное. Я ОФИГЕЛ когда увидел прирост фпсов. Возрадуйтесь, контр-страйщики!

CS1.1
(_BEFORE_)
145.07 Avg
102 Min
248 Max
(_AFTER_)
207.93 Avg (+43%)
149 Min (+46%)
311 Max (+25%)

CS1.6
(_BEFORE_)
69 fps
(_AFTER_)
108 fps (+56%)

CS1.4
(_MUSTDIE_)
264.52 Avg
156 Min
357 Max
(_LINUX_)
202.96 Avg (-23%)
139 Min (-10%)
293 Max (-17%)

RatMann ★★ ()

Re: Counter Strike 1.6

Ого... cool...

Я делал проще: ставил cedega и писал скриптик, типа:

#!/bin/bash
cedega -use-pthreads no -workdir "/home/user/.transgaming/c_drive/Program Files/Valve" "C:/Program Files/Valve/hl.exe" -nomaster -game cstrike

:-)

Neksys ★★★ ()
Ответ на: Re: Counter Strike 1.6 от Neksys

Re: Counter Strike 1.6

Скорость в cedega не идёт ни в какое сравнение с wine. На linux-gamers.net люди жаловались, что даже на GF6xxx тормоза.

RatMann ★★ ()
Ответ на: Re: Counter Strike 1.6 от RatMann

Re: Counter Strike 1.6

Пробовал и с 0.9.3 и с cvs.

make[2]: Entering directory `/tmp/wine/wine/dlls/opengl32'
gcc -c -I. -I. -I../../include -I../../include -I/usr/X11R6/include -D__WINESRC__ -DWINE_NO_DEBUG_MSGS -DWINE_NO_TRACE_MSGS  -D_REENTRANT -fPIC -Wall -pipe -mpreferred-stack-boundary=2 -fno-strict-aliasing -gstabs+ -Wdeclaration-after-statement -Wpointer-arith  -g -O2  -o opengl_ext.o opengl_ext.c
opengl_ext.c:27: error: parse error before "GLchar"
opengl_ext.c:235: error: parse error before "GLchar"
opengl_ext.c:237: error: parse error before "GLchar"
opengl_ext.c:243: error: parse error before "GLchar"
opengl_ext.c:308: error: parse error before "GLchar"
...
А далее - ошибка и всё ;(

Deleted ()
Ответ на: Re: Counter Strike 1.6 от Deleted

Re: Counter Strike 1.6

Странно, у меня тоже 3.4.4 и всё ок. Может CFLAGS? А спеки правильно скачались? Если что, я могу кинуть их мылом. $ext_prefix = "func_" не трогал? Какой дистрибутив/ядро/карточка/дрова?

RatMann ★★ ()
Ответ на: Re: Counter Strike 1.6 от RatMann

Re: Counter Strike 1.6

CFLAGS и взводил и не взводил(собирал вайн подправленным под твои изменения слакбилдом). Всё скачалось правильно и хорошо. ext_prefix - не трогал. Дистрибутив - каррент. ядро - 2.6.14.3 карточка - гуано(915), дрова - иксовые. Я собираю с тем, чтобы пакадж сделать и в других местах ставить :)

Deleted ()
Ответ на: Re: Counter Strike 1.6 от Deleted

Re: Counter Strike 1.6

>opengl_ext.c:27: error: parse error before "GLchar"

>opengl_ext.c:235: error: parse error before "GLchar"

>opengl_ext.c:237: error: parse error before "GLchar"

>opengl_ext.c:243: error: parse error before "GLchar"

>opengl_ext.c:308: error: parse error before "GLchar"

Такая же фигня :-/

IPFreely ★★ ()
Ответ на: Re: Counter Strike 1.6 от Deleted

Re: Counter Strike 1.6

Проклятье, даже не знаю, что предположить. Единственное, что приходит на ум, это

>карточка - гуано(915), дрова - иксовые

Всё-таки у nVidia свои хидеры ставятся, скорее всего в них всё дело.

IPFreely, а у тебя какая карта?

RatMann ★★ ()
Ответ на: Re: Counter Strike 1.6 от RatMann

Re: Counter Strike 1.6

Кстати, да... В иксорговском glext.h вообще нет GLchar

Временно поставил нвидиевские - буду пробовать.

Deleted ()
Ответ на: Re: Counter Strike 1.6 от Deleted

Re: Counter Strike 1.6

Собирается!!! :) Интересно, будет ли потом нормально работать :)

Спасибо за наводку :))

Deleted ()
Ответ на: Re: Counter Strike 1.6 от RatMann

Re: Counter Strike 1.6

>IPFreely, а у тебя какая карта?

Radeon 9000Pro....Но не в этом суть.. Скорее всего действительно из-за Иксовых хедоров проблема.....

IPFreely ★★ ()

Re: Counter Strike 1.6 (вопрос)

Имеется Counter Strike 1.5 для Linux(csds15.tgz), в папке dlls лежит файл cs_i386.so из чего я сделел заключение, что его можно запустить без wine, но как не знаю, подскажите пожалуйста.

anonymous ()

Re: Counter Strike 1.6

Посмотрев все это, хорошенько подумав и пошаманив я всетаки добился своего. знач так... Создаем в cxoffice 5 бутылку по имени .wine (можно и другое имя, но лучше это), затем убираем ~/.wine, и вместо него ставим папку созданную кроссовером, т.е.

cp -r ~/.cxoffice/.wine ~/.wine

потом копируем вышеозначенные 3 файла из маздая, настройки для этих dll-ок уже есть(спасибо кросовкам).

терь должно запускаться,

Дальше секция для ati-ников, итак, проделав вышеописанные действия по скачке файлов спеков, затем смотрим glxinfo, обана у нас токо 1.3, а не 1.5, делаем

./make_opengl specs 1.3

дальше подредактируем файлик opengl_ext.h

И после строк:

#include <GL/gl.h> #include <GL/glx.h>

добавим еще две:

#include <GL/glATI.h> #include <GL/glxATI.h>

затем еще одна операция.. Добавим в файл /usr/include/GL/glext.h

После строки

typedef char GLcharARB;

вот эту строчку

#define GL_CHAR_ARB_DEFINED

И все, можно собирать opengl32

Прирост на fglrx 8.20.8 - 30 %

B084 ★★ ()
Ответ на: Re: Counter Strike 1.6 от B084

Re: Counter Strike 1.6

Тому у кого была интел-карточка надо делать соотв.

./make_opengl specs 1.4

Версию клиентского опенглюка смотрим в вывод glxinfo

B084 ★★ ()
Ответ на: Re: Counter Strike 1.6 от B084

Re: Counter Strike 1.6

B084, молодец! Теперь и ati'шники с интеловцами порадуются! Кстати, ты не пробовал wine собирать c патчами, ускоряющим Direct Draw (ddraw_over_d3d-0001.patch и paletted_texture-0001.patch)? Я собирал, но нифига не ускорилось, только тормознее стало.

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