TUTORIAL: Call of Duty 4 no Wine

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

TUTORIAL: Call of Duty 4 no Wine

Mensagem por Arraia_Jato em Sab Mar 26, 2011 9:57 pm

Call of Duty 4 no Wine
Aplicando patches, compilando e gerando o rpm


Neste breve tutorial, explicarei como usar o pacote src.rpm do Wine do Mandriva 2008 para aplicar alguns patches e compilar o wine, gerando um novo pacote rpm com um wine capaz de rodar o jogo Call of Dutty 4 e outros como Unreal Tounament 3 e o aplicativo 3DMark.

É bem verdade que o Unreal não precisa ser rodado embaixo do wine pois ele tem um instalador nativo para Linux, assim como toda a série Unreal, Doom, Quake e outros. Mas se o wine é capaz de rodar esses jogos, muitas vezes com desempenho superior ao rWindows, então ele deve ser capaz de rodar vários outros jogos também. Basta tentar a sorte!


Baixando e instalando pacotes e arquivos necessários


Para começarmos, vamos pegar os patches necessários para fazer os programas 3D citados rodarem: (http://78.108.96.64/wine/patches/)

3dmark.diff
graphic_et.diff
ut3.diff

Agora temos de ir à um mirror qualquer do Mandriva, para isso podemos usar o easyurpmi.zarb.org para escolhermos um. No mirror, subimos no árvore de diretórios e procuramos pelo diretório SRPMS, dentro dele estão todos os pacotes src.rpm. Então baixamos o pacote do wine que está dentro do diretório main/backports. Enquanto escrevo isso, o pacote mais recente que encotraremos la é o wine-0.9.50-1mdv2008.0.src.rpm, que usaremos neste tutorial, mas o procedimento se aplica a qualquer versão anterior e muito provavelmente à futuras versões.
Com ele em mãos, instalamos ele e suas dependencias com dois cliques sobre o arquivo ou pela linha de comando como root, com o seguinte comando:

urpmi wine-0.9.50-1mdv2008.0.src.rpm

Neste momento é preciso estar com todas as mídias configuradas corretamente pois o urpmi instalará todas as dependencias que o wine possui. Para garantir, verifique se os pacotes x11-server-devel e fontforge estão instalados, pois sem eles o wine até compila, mas será meio inútil. Também será necessário instalar o pacote rpm-build e suas dependencias.

É desnecessário dizer que os pacotes instalados com o task-c-devel precisam estar instalados, assim como o kernel-devel exatamente DA MESMA VERSÃO que o kernel que você estiver utilizando (veja a versão do kernel com o comando uname -r).

Por algum motivo que desconheço, o urpmi instala todas as dependencias do wine, mas não instala o src, então resolvemos isso com o seguinte comando:

rpm -ivh wine-0.9.50-1mdv2008.0.src.rpm

Você também precisará no mínimo dos arquivos d3dx9_24.dll ao d3dx9_35.dll (e outros como os input e os do DirectX 10, se quizer) no seu diretório system32 do wine, que fica em ~/.wine/drive_c/windows/system32. Você pode encontrar esses arquivos na internet, pegar de uma instalação do Windows ou rodando a instalação do DirectX no wine. Como a instalação do DirectX faz outras coisas além de copiar os arquivos, eu prefico copia-los na mão, para não correr o risco de danificar o regedit do wine.


Fazendo as modificações necessárias e compilando o wine


Agora com o source instalado vamos ao diretório de compilação de RPMs.

cd /usr/src/rpm/SOURCE

Copiamos os patches para dentro desse diretório. Então vamos à pasta /usr/src/rpm/SPECS e editamos o arquivo wine.spec. (Eu uso o vi, use o editor que mais lhe agradar. Gráfico eu recomando o vim ou o kate).

No wine.spec, logo no começo do arquivo, no da versão 0.9.50 pelo menos, você vai encontrar uma linha com Source2: wine.init, abaixo dela acrescente as seguintes linhas (no vi aperte i para inserir e esc quando terminar):

Source2: wine.init
Patch001: 3dmark.diff
Patch002: graphic_et.diff
Patch003: ut3.diff

Mais abaixo no arquivo, encontraremos as linhas do bloco %prep, abaixo dela estão os patches que ja vêm com o src, abaixo desses patches adicione as linhas dos nossos patches, deixando parecido com:

%prep
%setup -qfind . -type d -name CVS|xargs rm -rf
%patch001 -p1 -b .conf
%patch002 -p1 -b .conf
%patch003 -p1 -b .conf

Se você está rodando um Linux 64-bit, é bem provável que queira comentar as linhas que vêm logo abaixo do %prep em %build, ou seu wine será compilado como 64-bit o que fará com que ele execute apenas aplicativos 64-bit do rWindows, ou seja, quase nenhum jogo:

#%ifarch x86_64
# --enable-win64
#%endif

Salve e feche o arquivo (no vi Mad e enter para salvar e fechar).

Agora vamos para a parte mais demorada, a compilação, que pode levar até mais de 1 hora, dependendo da maquina. Para compilar, use o seguinte comando:

rpmbuild -bb wine.spec

Espere a compilação terminar.


Instalando seu novo wine


Terminada a compilação, dentro da pasta RPM/i586, aparecerão os dois novos arquivos rpm gerados, o wine-0.9.50-1mdv2008.0.i586.rpm e o libwine1-0.9.50-1mdv2008.0.i586.rpm.
Basta irmos la e instalarmos eles, mas se você ja possuir o wine 0.9.50 instalado, o urpmi dirá que esses pacotes ja estão instalados, então você terá de remover eles antes, com o comando:

urpme wine libwine

Agora sim, entrando no diretório /usr/src/rpm/RPMS/i586/, instale seu novo wine:

urpmi wine-0.9.50-1mdv2008.0.i586.rpm libwine1-0.9.50-1mdv2008.0.i586.rpm

Pronto!


Configurações avançadas do wine


Primeiramente entre no configurador gráfico do wine (winecfg) e faça as configurações que lhe forem convenientes.

Na aba Applications, em Windows Version, você tem que por Windows XP, na aba Graphics, no Vertex Shader support, ponha Hardware, marque o Allow Pixel Shader e na aba Áudio, deixe apenas o ALSA Driver marcado, com Direct Sound em Full/44100/16 e Driver Emulation desmarcado.

Clique Ok para fechar a configuração. Agora entremos no registro do wine (regedit) e vamos adicionar algumas coisas manualmente:
Em HKEY_CURRENT_USER/Software/Wine/, crie a Chave Direct3D. Dentro de Direct3D, você irá criar 4 valores, todos do tipo texto, que serão:

DirectDrawRenderer
UseGLSL
VideoMemory
SizeOffscreen
RenderingMode

E seus valores serão respectivamente:

opengl (também pode ser gdi, que é mais lento porém mais estável)
enabled (com disabled quase nada 3D irá funcionar)
64 (64 é o padrão, mas você deve por quanto sua placa de vídeo tem de memória)
backbuffer (pode ser também pbuffer ou fbo)

Feche o registro e com o seu usuário, execute o comando:

wineprefixcreate

Pronto! Wine instalado e configurado para 3D.

Agora basta você ir instalar seu jogo e tentar roda-lo. Boa sorte!


Detalhes específicos sobre o Call of Duty 4


O jogo instala e funciona de cara. Na minha maquina, um Athlon 64 X2 4000+ com 1.5 Gb DDR2, com uma humilde GeForce 6150 onboard e com 128MB compartilhados (+ ou - equivalente a uma GeForce MX 480) o jogo funciona, mas mesmo no mínimo da bons trancos. Mas se você não tem opção e quer jogar mesmo assim, saiba que pelo menos funciona e até da pra se divertir.

Com uma GeForce 7600GT de 256MB GDDR3 e PCI-E, o jogo funciona com tudo no máximo em 800x600 (ou como prefiro à 720x480p na HDTV) e da apenas algumas engasgadas de vez em quando, nada que atrapalhe muito a diversão. Nesse caso é perseptível que o jogo não é tão fluido como um jogo nativo do Linux, mas tenho certeza que baixando um pouco a qualidade ele ficará liso... mas no máximo os gráficos são estonteantes.

É necessário desligar as opções Depth of Field e Soften Smoke Edges no menu Graphics do COD4, se não a tela fica toda verde quando entra no jogo efetivamente.

No fórum overclock.net eu peguei as seguintes dicas de um post para um bom desempenho quando jogado no rWindows (ainda não testei a fundo para confirmar):

Water = Normal
Model = Low (não há diferença visível entre low e medium)
Bullet Holes = Yes
Rag Doll = Yes
Soften Smoke Edges = No
Depth of Field = No (é um efeito legal mas custa 10fps)
Dynamic Lights = OFF (é bonito masi custa 25fps)
Glow = Yes (faz o mapa ficar maravilhoso, custa entre 8 e 10 fps quando ligado)
Vertical Sync = Off
AA = Off (você pode forçar 2xAA no Control Panel da nVidia)
Resolution = Prefira a resolução nativa do seu monitor caso seja um LCD, para ter qualidade de imagem.

Na console do jogo você pode entrar com o seguinte comando... /com_maxfps 0. Isso desbloqueia o limite de 91fps do COD4.


É isso ai... bom divertimento!

_________________




Spoiler:
avatar
Arraia_Jato
Administrador
→ Administrador

Mensagens : 24
Pontos : 36
Reputação : 0
Data de inscrição : 26/03/2011

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum