A prova está no Wine, DirectX e o jogo Silkroad
Introdução
Como eu gosto desse sistema, sua versatilidade, sua capacidade de adaptação, cada dia me apaixono mais pela liberdade que juntos conquistamos. Essa paixão, de tão grande e avassaladora, me fez migrar totalmente para o Linux, todas as minhas necessidades foram pouco a pouco sendo saciadas a cada lançamento de uma nova distribuição. Vários anos se passaram, e hoje, possuo um posicionamento mais maduro a cerca do software livre e tenho como eleita uma distribuição favorita. Apesar de todas as conquistas do Software Livre, ainda havia um ponto que me assombrava durante vários anos: os jogos. Por mais que eu não seja um jogador nato, passei anos de fora de encontros casuais de amigos nas intituladas “lanparty” por ser o único a utilizar um sistema operacional diferente. Mas não mais.
É comum afirmarem que o Linux não é capaz de fazer funcionar jogos antes desenvolvidos para a plataforma Microsoft Windows. Teoricamente – e apenas teoricamente – um aplicativo desenvolvido exclusivamente para uma plataforma não será compatível com a outra e vice versa. Entretanto, esse cenário mudou desde o inicio do desenvolvimento do Wine [1] – que completa 10 anos de desenvolvimento em breve – e mais ainda com a solução proprietária para jogos TransGaming Cedega [2]. Ao contrário do que muitos pensam, o Wine – que em suas páginas de documentação o descreve como: “Wine is Not a Emulator” – não é um emulador de aplicativos Windows e sim uma implementação da API do Windows, OpenGL e Unix, utilizando-se de códigos “não-Microsoft”, mas podendo utilizar-se de bibliotecas nativas do mesmo – fica a gosto do usuário. Apesar de estar falando de jogos, o Wine pode ser utilizado para aplicativos comuns de ambiente Windows, um exemplo é o Adobe Photoshop.
O Cedega é uma solução para Linux especializada em games, o que talvez não seja de conhecimentos de todos é que o mesmo é baseado nos sources do Wine. A solução cumpre o que promete e faz da instalação de jogos muito rápida e prática, passando a impressão que o jogo foi feito para a plataforma aberta. Em contrapartida, é uma solução proprietária e seu uso é através do pagamento de licença.
Falando em Wine, hoje em dia é comum empresas utilizarem um sistema operacional Linux e aplicativos desenvolvidos para Windows, graças ao Wine. Isso significa economia e estabilidade para o usuário e para a empresa. Eu disse “empresa” porque a minha própria empresa ja prestou diversas vezes consultoria nessa área, e ela é bem ampla.
O Sistema Utilizado
Em especial para este artigo, o sistema operacional utilizado foi o CentOS / RHEL 5.1 [3], a versão do Wine é 0.9.52, o DirectX 9c Release March 2008 [4], uma placa gráfica 3D devidamente instalada e configurada e o jogo Silkroad [5] – que pode ser baixado gratuitamente em seu website oficial. Duas observações importantes: É importante utilizar o release do DirectX proposto, pois a instalação de uma versão anterior ou superior requer configurações adicionais das quais serão apresentadas. Será necessário o uso de DLLs de uma instalação válida do Windows. Existem vários sites na Internet que disponibilizam essas DLLs mas eu não irei citá-las por não ter certeza da legalidade do download dessas DLLs sem que o usuário possua uma licença do sistema.
Instalação e Configuração
O Wine está presente em todas as grandes distribuições Linux atualmente, em Debian e seus derivados a instalação é simples: apt-get install wine. Em RedHat e derivados – como o próprio CentOS – talvez seja necessário habilitar o repositório rpmforge [6], mas o comando de instalação segue a mesma linha lógica: yum install wine.
Com o Wine instalado corretamente, execute o comando winecfg e na aba applications escolha o sistema operacional Windows XP. Na aba audio, habilite o driver de som apropriado e em video habilite o virtual desktop com a resolução de 1024×768. O leitor está livre para escolher a resolução adequada as suas necessidades. Em libraries adicione a DLL nativa d3d8.dll – essa manobra irá facilitar o encontro das linhas que serão adicionadas no arquivo user.reg.

Copie os arquivos nativos mscoree.dll e streamci.dll de uma instalação do Windows para a pasta /system32 do Wine. Edite o arquivo user.reg, localizado na pasta oculta .wine assim como o diretório /system32 dentro de sua pasta home.
Encontre a linha:
[Software\\Wine\\DllOverrides]
“d3d8″=”builtin”
E adicione as DLLs abaixo. Essas mesmas DLLs deverão ser copiadas de uma instalação do Windows para a pasta /system32 do Wine. Elas são necessárias para o correto funcionamento do DirectX.
“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”
“qcap”=”native”
“quartz”=”native”
“streamci”=”native”
Faça o download do DirectX 9c Release March 2008 e instale-o normalmente. Você pode querer testar os recursos 3D do DirectX, execute o dxdiag.exe localizado no diretório /system32 do Wine. Faça o mesmo com o jogo Silkroad Online e instale-o em seu diretório padrão, algo como C:/Arquivo de Programas/…
Um ponto que fiquei preocupado foi a do anti-cheating gameguard – que impossibilita o uso de aplicativos para bular o jogo e o meu principal problema no passado, mas o Wine contornou a situação com maestria e o jogo foi carregado com sucesso. Abaixo, o resultado da minha pesquisa. Tracei um caminho difícil porém gratificante no final. Meu objetivo era provar que jogos do tipo MMORPG como o Silkroad poderiam tranqüilamente funcionar em conjunto do Wine e não apresentar um um artigo com um simples jogo de plataforma.
Silkroand no CentOS 5.1 e Wine
Conclusão
Prós: Estabilidade e velocidade – Linux é sinônimo de ambiente sempre muito estável, ainda mais utilizando uma distribuição tão bem construída quanto o CentOS 5.1. Em meus testes, joguei por horas o jogo Silkroad Online sem apresentar nenhum tipo de problema. O Wine se comportou muito bem e não obtive nenhum travamento ou lentidão, muito pelo contrário, a sensação era de ter uma velocidade superior ao do ambiente Windows. O modo “free camera” ficou tão solto que o mouse parecia ter vida própria. Habilitei em alguns momentos o anti-aliasing da placa de video no máximo afim de testar a estabilidade do sistema e tanto o hardware quando o sistema em si não apresentaram quaisquer erros.
Contras: Extremamente trabalhoso realizar essa configuração. Usuários iniciantes talvez não irão conseguir realizar todas as operações com sucesso. Na instalação do jogo, presenciei um bug no box que informa localização de onde seriam instalados os arquivos e ele estava em branco, sendo necessário selecionar a caixa para visualizar o endereço, felizmente, em versões mais atuais esse bug foi corrigido. Me desagradou o fato de ter de copiar DLLs da instalação do Windows, espero que no futuro exista uma solução livre para contornar a solução que apresentei.
Gostaria de deixar uma questão na mente dos leitores: Se foi possível a execução de um jogo 3D em uma plataforma não nativa, o que será de um simples aplicativo antes desenvolvido para ambiente Windows? Apesar da dificuldade de preparar uma plataforma perfeita e dos pequenos – e insignificantes – problemas que apresentei, concluo este artigo afirmando: Linux é uma perfeita plataforma para games!
Referências
[1] http://www.winehq.org/
[2] http://www.transgaming.com/products/cedega/
[3] http://www.centos.org/
[4] http://filehippo.com/download_directx/
[5] http://www.silkroadonline.net
[6] https://rpmrepo.org/RPMforge
Consultoria Linux?
Marcellinux Free Software Consulting and Development
A Marcellinux é uma empresa especializada em fornecer consultoria, serviços e soluções baseadas em Software Livre / Código Aberto.
www.marcellinux.com.br
Arquivado em: Artigos, CentOS, Debian, Hacking, Linux, Planeta Ubuntu, Software Livre, Tutoriais | Etiquetado: CentOS, DirectX, How To, Linux, RPMforge, Silkroad, Software Livre, Windows, Wine



Muito legal, obrigado pela dica. mas como vc mesmo disse vai ser complicado um iniciante como eu fazer isso (mesmo pq não tenho um pc bom pra testar com o jogo hehe)
Conheço Silkroad a bastante tempo, mas sempre jogava no Ruindows.
Gostei de seu artigo e estou tentando voltar a jogar esse MMORPG, só que quando entro da página do jogo está aparecendo uma informação que só posso acessar com IE e Windows. Decepcionante!
Estou usando essa dica para tentar acessar outros jogos com o GameGuard.
É verdade, só com IE. A solução é instalar o IE dentro do Wine ou utilizar um navegador que consiga enganar o site informando que ele é um IE. Me lembro de ter visto um navegador assim, mas nao lembro o nome… seria o gecko? não tenho certeza.
Se conseguir rodar outro jogo (não testei nada além do Silkroad), me informe que publico aqui no blog.
Um abraço e obrigado pela visita.
Ola colega.blz!!!
Adorei esta dica sua… Parabens!
Você permita em repassá-lo no wiki do Ubuntu Games para complementa-lo com que ja tenho por la. Seria muito legal os usuario que acessam o Ubuntu Games e veja esta excelente dicas.
Ja o sobre o IE para acessar o site do Silkroad, pelo firefox voce consegue tranquilo, utilizando um complemento que ate coloquei no Ubuntu Games.
Mas infelizmente o servidor do Ubuntu Brasil passa com problemas e muitos dos meus wikis postados estao bugados.
Mas o pessoal estao tentando arruma-lo e em breve estará funcionando normalmente.
Até mais colega!
Marcellino,
Só consegui rodar mesmo o Silkroad e 12-Sky que utilizam o GameGuard.
Achei uma animação no YouTube com o Shaiya rodando em Linux. O autor da proeza até deixou o link para baixar o client sem GameGuard, mas a versão foi atualizada e não roda o client disponibilizado.
Mas ainda continuo procurando uma solução para o Bendito (para não dizer Maldito) GameGuard, o destruidor de alegrias do Linux.
eu abandonei totalmente o windows, estou usando so o linux agora.
hehehe.. fica dificil pegar essas dll que precisam
Marcellino,
Atualizei meu Wine para 0.60 e agora está dando como os servidores não podem ser conectados.
Teria que mexer em algum arquivo para liberar o IP dos servidores dos jogos para acesso?
Meu Silkroad parou por isso. Esperança no 9Dragons, Shaiya, Priston Tales e Cabal Online.
Espero agora vê-lo de volta as Lan Partys…rs
Vamos agitar isso.
Grande abç
amigo vi seu turorial de jogo pelo wine so que assim nao sei como vc consegue isso ja estou a 3 mes nao porcaria do wine e nao consigo atualizar o game 9dragons ele instala de boa so que nao atualiza dos que nao conecta a net da o seguinte erro faled to conect to an update information server
segue o desafio se conseguir cara vou te venera para sempre rsrsr
abraço e sua dicas sao otimas mais o disafio ta feito
Danilo
Usei o tutorial e funcionou mto bem aqui.
Só que não instalei o Silkroad, coloquei o World of Warcraft, e funcionou perfeitamente.
O melhor tutorial que encontrei na net até agora. E eu sou novo no Linux ;]
Hi,blz
É realmente impressionante como o wine evoluiu a alguns tempo atrás ele mal rodava warcraft hoje já ta aguentando rodar jogos muito mais exigentes…
[]’s