Primeiramente tenho que agradecer a cooperação do pessoal do VOL por muitos sucessos que tive ao resolver problemas com e no
Linux.
Adotei o Linux como SO principal em meados de 2008. No momento uso exclusivamente o
Ubuntu 9.04 (o Jaunty Jackalope) em minha estação de trabalho, um notebook Acer Aspire 4520. Deixei de usar o Windows, inclusive virtualizado - não que eu condene quem precise fazê-lo, mas estou me virando muito bem com o Wine, obrigado!
Como nada do que encontrei aqui ou em outros fóruns foi a solução completa, então resolvi compartilhar os passos que adotei para instalar o meu jogo preferido, o
F1 Challenge. Se este texto simplificar o problema que outros usuários Linux, principalmente os recém-iniciados, estão tendo, então já valeu à pena escrevê-lo.
A seguir um pequeno relato da minha primeira tentativa:
1. Iniciei instalando a versão mais recente do Wine (1.1.24) que pode ser encontrada em:
Optei por adicionar o repositório, pois é mais cômodo.
2. Em um primeiro momento, ao contrário das dicas que vi em vários fóruns (inclusive no VOL) não copiei nada do Windows, segui apenas parcialmente a
dica que se encontra aqui, adicionando somente as bibliotecas sugeridas na seção (chave) [Software\\Wine\\DllOverrides] do arquivo /home/seu_usuario/.wine/user.def, que é equivalente ao registro do Windows. Estas bibliotecas podem ser adicionadas também através do winecfg na aba "Bibliotecas.
3. O procedimento seguinte foi a instalação do jogo através do wine. No entanto, quando o chamei, ocorreu um erro indicando a falta biblioteca
msvcirt, prontamente a adicionei na mesma seção das demais. Chamei novamente o jogo e para minha surpresa eis que o dito cujo abriu "normalmente".
Mas daí em diante fui percebendo algumas limitações: só era possível jogar se a qualidade dos gráficos e a quantidade de carros IA fossem diminuídas. No arquivo de configuração do jogo, gerado através do 3DConfig.exe, nunca era disponibilizado mais que 64MB de memória para os gráficos, sendo que na mesma máquina, com o Windows anteriormente, sempre ficava disponível algo em torno de 620MB.
Querendo um sistema "limpinho", resolvi refazer meu SO, pois achava que tinha fuçado demais nele, mas daí em diante nada do que fizera antes para o jogo funcionava mais, ou seja, apenas compliquei minha vida.
Pois bem, vamos então à solução final que adotei (a qual julgo muito satisfatória):
1. Como anteriormente dito, instale a versão mais recente do wine (no momento 1.1.24) disponível em
http://www.winehq.org/download/;
2. Chame o
winecfg e na aba "Bibliotecas" adicione d3d8 com a opção builtin (aconselho este passo para que seja criada a secção (chave) [Software\\Wine\\DllOverrides] no arquivo /home/seu_usuario/.wine/user.def, obviamente se a mesma não existir, mas se preferir passe para o passo seguinte);
3. Abra o arquivo /home/seu_usuario/.wine/user.def, procure por "d3d8"="builtin" e adicione as demais bibliotecas como a seguir:
[Software\\Wine\\DllOverrides]
"d3d8"="builtin"
"d3d9"="builtin"
"d3dim"="native"
"d3drm"="native"
"d3dx8"="native"
"d3dx9_24"="native"
"d3dx9_25"="native"
"d3dx9_26"="native"
"d3dx9_27"="native"
"d3dx9_28"="native"
"d3dx9_29"="native"
"d3dx9_30"="native"
"d3dx9_31"="native"
"d3dx9_32"="native"
"d3dx9_33"="native"
"d3dx9_34"="native"
"d3dx9_35"="native"
"d3dx9_36"="native"
"d3dxof"="native"
"dciman32"="native"
"ddrawex"="native"
"devenum"="native"
"dinput"="builtin"
"dinput8"="builtin"
"dmband"="native"
"dmcompos"="native"
"dmime"="native"
"dmloader"="native"
"dmscript"="native"
"dmstyle"="native"
"dmsynth"="native"
"dmusic"="native"
"dmusic32"="native"
"dnsapi"="native"
"dplay"="native"
"dplayx"="native"
"dpnaddr"="native"
"dpnet"="native"
"dpnhpast"="native"
"dpnlobby"="native"
"dsound"="builtin"
"dswave"="native"
"dxdiagn"="native"
"mscoree"="native"
"msdmo"="native"
"msvcirt"="native,builtin"
"qcap"="native"
"quartz"="native"
"streamci"="native"
A minha "salvação" veio daqui:
http://wiki.winehq.org/UsefulRegistryKeys
Chame regedit no prompt (isto mesmo regedit!) e crie a chave Direct3D em HKEY_CURRENT_USER->Sofware->Wine (optei por fazer graficamente porque em cada chave do arquivo user.def existe um número que é gerado quando a chave é adicionada). Se julgar melhor siga as instruções do link e adicione graficamente as demais opções do Direct3D ou abra o arquivo user.def novamente, procure por Direct3D e configure como do seguinte modo (exceto os parâmetros que serão comentados logo abaixo):
[Software\\Wine\\Direct3D]
"DirectDrawRenderer"="opengl"
"Multisampling"="enable"
"OffscreenRenderingMode"="backbuffer"
"PixelShaderMode"="disabled"
"RenderTargetLockMode"="readdraw"
"UseGLSL"="enable"
"VertexShaderMode"="none"
"VideoMemorySize"="631"
"VideoPciDeviceID"=dword:000010de
"VideoPciVendorID"=dword:00000533
O parâmetro VideoMemorySize deve estar de acordo com a sua disponibilidade de memória. Por que usei 631? No Windows o arquivo de configuração do jogo sempre mostrava 619MB disponibilizado para vídeo; quando deixo 631 neste parâmetro o jogo continua mostrando o mesmo valor do Windows (cabalístico! Não acham?), poderia ser mais ou menos que isto, é claro.
Observe que o parâmetro "Vertex Shader Suport" não será por hardware, ao contrário do que é orientado em outras dicas nos fóruns de Linux na Internet a fora.
VideoPciDeviceID e VideoPciVendorID deverão ter os valores da sua placa de vídeo, do contrário podem ser excluídos, pois o Wine tenta ajustar as coisas. Se você rodar o 3DConfig.exe do jogo e a placa mostrada não for exatamente a sua, não se preocupe, comigo foi e é assim, mas estou ileso e pronto pra contar a história!).
Para achar os valores de "VideoPciDeviceID" e "VideoPciVendorID" proceda da seguinte forma (siga o coelho branco!):
a. Chame lspci e verifique nos números que aparecem no começo de cada linha qual é o da sua placa de vídeo (eles são da forma 00:12.0);
b. Chame "lspci -n" e compare com o passo anterior para identificar qual se refere a sua placa de vídeo. A terceira coluna de valores é da forma 10de:0533, onde 10de é o valor de "VideoPciDeviceID" e 0533 de "VideoPciVendorID" (que neste caso aliás são da minha placa de vídeo nVidia Corporation GeForce 7000M).
Se alguém souber como fazer os últimos dois passos em único comando, por favor dê a dica, pois eu gostaria de aprender.
Quanto ao "significado" dos demais parâmetros não irei comentar porque o Google tem muito material sobre assunto, além do que os "apaixonados" por jogos do gênero devem saber muito bem o que cada um quer dizer.
É bom ressaltar que esta configuração foi a que atendeu melhor às minhas expectativas com o F1 Challenge, mas creio não deixar de ser uma diretriz para outros jogos, bastando apenas uma pequena consulta a http://wiki.winehq.org/UsefulRegistryKeys com as devidas adequações dos parâmetros à necessidade de cada jogo e às restrições do Wine.
Quanto ao áudio não tive problema, deixei tudo conforme estava na instalação.
Até a próxima!