Instalando o Diablo II: Lord of Destruction no Debian Etch

Ontem alguns amigos aqui da teleinformática e eu fizemos um “D2Day” (LAN para jogar Diablo 2), que serviu de inspiração para este artigo. O Diablo 2 é um jogo do tipo Action RPG, ou ARPG (da Blizzard) que gosto muito e acompanho desde que foi lançado.

D2Exp Box

Um problema que tenho constantemente é precisar ir para o Windows sempre que alguém chama para uma partida. Isso é chato e demorado. Depois desta última LAN resolvi tentar instalar o Diablo 2 no Linux através do Wine e reportar aqui no Hypercast os problemas que tive e as configuração adicionais que fiz.

Procedimento

O jogo em si, considerado neste caso, consiste do Diablo II, que são 3 CDs (Install Disk, Play Disc e Cinematics Disc) e da sua expansão Lord of Destruction, mais um CD, totalizando 4 CDs.

Normalmente depois de toda essa instalação é necessário atualizar o jogo com um patch, que normalmente é fornecido via download quando se acessa a battle.net dentro do próprio jogo ou em um arquivo separado, no site da Blizzard. Usarei este segundo caso, já que a versão que jogo não é a última que foi lançada.

Um último passo consiste em usar um crack (NoCD) para não precisar manter o CD da expansão no drive para poder jogar, assim você evita desgastar seu CD original, seu drive leitor, perda de tempo quando é necessário carregar algo do CD e evita o ruído que o leitor faz. Para uma realizar instalação que não precise realmente de nenhum dos 4 CDs, é preciso escolher sempre as opções mais completas que o jogo fornecer (opções Full).

Resumindo, os passos seriam estes:

  • Instalar o Diablo II, utilizando a opção Full;
  • Instalar a expansão Lord of Destruction;
  • Fazer o upgrade para Full, ainda no instalador da expansão;
  • Atualizar a versão do jogo com um patch da sua escolha;
  • Instalar o crack para jogar sem CD.

Essa sequência é de preparação completa do jogo em si, independente de sistema operacional. Vamos agora para o processo de instalação específico para o Linux.

O ambiente de teste

Estou utilizando um Debian Etch, kernel Linux 2.6.18, KDE 3.5.5, Artsd e um chipset Intel 915G. Estou utilizando as versões mais genéricas possíveis destes softwares e suporte a hardware, que já são fornecidos por padrão no Debian Etch, instalado no computador de teste através de uma mídia específica que traz o KDE. Tomei o cuidado de não utilizar nada compilado por fora, como o kernel ou o subsistema de som, para tornar o artigo mais acessível. Já escrevi sobre o processo de instalação do Debian Etch aqui.

Instalando e configurando o Wine

Primeiramente, é preciso instalar o Wine, um software que possibilita rodar aplicativos nativos do Windows no Linux. O Wine é uma reimplementação livre da API do Windows no Unix. Vamos instalar a versão 0.9.25, que está disponível nos repositórios oficiais do Debian:

# aptitude install wine

Agora é preciso configurar o Wine de acordo com as características do seu computador, rodando (como usuário comum) o winecfg:

$ winecfg

Uma janela de configuração será aberta. Poucos ajustes são necessários nesse passo, em geral. No meu caso, estou utilizando a versão Windows 98, que é a mais compatível de todas até agora. A versão é configurável na aba Applications. Vá agora até a aba Drives e clique em Autodetect, para configurar as unidades do Windows de acordo com o seu Linux. Por último vá em Áudio e aguarde o wine detectar seu servidor de som. A configuração do wine é basicamente essa.

Instalando o Diablo II, a expansão LoD, o patch e o crack NoCD
O próximo passo é colocar o Install Disk do Diablo 2, montá-lo e executar o install.exe através do wine:

# mount /media/cdrom
# exit
$ wine /media/cdrom/install.exe

Siga com o processo normal de instalação. Este processo tem um problema quando executado através do wine: as janelas para troca de CDs não aparece! Não sei por que isso acontece. Testei com versões mais novas do wine e com GNOME e o resultado foi o mesmo, até pior.

No KDE, quando a cópia dos dados de um cd acaba e o instalado pede o próximo, aparece uma nova janela na barra de tarefas mas nenhuma janela de verdade associada a ela. No GNOME, você não recebe notificação nenhuma, o processo de instalação apenas dá um pausa e o leitor de cd pára de trabalhar.

Particularmente não tive problemas com isso, pois já instalei o Diablo “algumas” vezes, e sei decorado a ordem dos cds, que é a seguinte:

Instalação do Diablo II:

  • Início com o Install Disk;
  • Play Disk;
  • Cinematics Disk;
  • Install Disk;
  • Fim da instalação, coloque o cd da expansão e inicie seu instalador.

Instalação da expansão LoD:

  • Início com o Expansion Disk;
  • Play Disk do Diablo II;
  • Expansion Disk.

Detalhe importante: não execute o teste de vídeo no final da instalação do Diablo. Aqui ocorreu um erro inesperado e o X foi reiniciado sozinho. Depois tive alguns problemas para conseguir executar o jogo normalmente.

Agora é hora de instalar o patch de atualização. No meu caso, atualizarei para a versão 1.09d. Basta executar o instalador do patch com o wine:

$ wine LOD_109d.exe

Por fim, falta só o crack para jogar sem o cd. Existem diversos tipos de cracks que fazem isso e estão amplamente disponíveis na internet. Eu estou usando um bem simples. É apenas um executável modificado chamado Game.exe, que é utilizado pelo jogo e precisa ser substituído (é nele que está implementada a modificação que permite que o jogo rode sem pedir o cd). Basta substituir o Game.exe original pelo crackeado. Faça uma cópia de segurança, por prevenção:

$ cd ~/.wine/drive_c/Arquivos\ de\ programas/Diablo\ II/
$ mv Game.exe Game.exe.original
$ cp ~/Desktop/Game-crackeado.exe Game.exe

Falta apenas copiar um arquivo do cd da expansão para o diretório do Diablo. Este arquivo é o d2xmusic.mpq. Supondo que você já está na pasta correta (seguindo os comandos anteriores) a cópia ficaria assim:

$ cp /media/cdrom/d2xmusic.mpq .

Só para lembrar, você tem o direito de usar o crack para rodar o jogo sem CD se você possuir o CD original. Concluída a instalação, agora é só executar o jogo com o comando:

$ wine /home/lius/.wine/drive_c/Arquivos\ de\ programas/Diablo\ II/Diablo\ II.exe -w

O parâmetro final serve para abrir o jogo em modo de janela, pois toda vez que tentei em fullscreen, ocorria um erro na inicialização do DirectDraw. O Diablo II já está, neste ponto, completamente instalado. Porém, me deparei com alguns problemas.

Diablo II Battle Chest

Ajustando o som

O primeiro deles foi o som. O wine não detectou nenhum hardware de som ou subsistema de som que pudesse utilizar. Esse problema se deu por que estou utilizando o KDE e seu servidor de som é o Artsd. Por não ter um desenvolvimento muito ativo, o pessoal do wine resolveu não suportá-lo mais.

O wine do Debian vem apenas com suporte ao OSS, ESD e ALSA (só detectando o OSS), então tive que parar o Artsd no Centro de Controle do KDE (na seção de som tem uma checkbox que ativa/desativa o servidor de som), instalar o ALSA e seu wrapper para OSS, afim de tornar transparente para o wine a parte mais baixa da gerência do som. Para ele, o OSS estaria sendo utilizado. Este procedimento foi feito assim:

$ su
# aptitude install alsa alsa-base alsa-utils alsa-oss
# /etc/init.d/alsa reload
# alsamixer
# exit

Ajustando o vídeo

O Diablo II LoD roda muito bem no Linux sobre o wine, porém, é possível aumentar o desempenho fazendo uma configuração adicional. Vou explicar, afinal este artigo não é uma “receita de bolo”. Quero que você saiba o que está fazendo.

A parte gráfica do Diablo 2 é feita sobre o DirectX que já é amplamente suportada pelas implementações atuais do wine, mas sua parte 3D é implementada utilizando duas especificações: Glide ou Direct3D. Você pode escolher. A Blizzard nunca implementou o Direct3D de forma completa, e isso complica as coisas para o wine.

Para resolver o problema, encontrei um projeto do alemão Sven Labush que consiste em um wrapper para Glide3 ser interpretado como OpenGL! A página do projeto por ser acessada por este link. A instalação e geração do arquivo de configuração é bastante simples, basta seguir os passos na documentação.

Depois de transferir todas as instruções Glide para o núcleo OpenGL, o jogo ficou com um desempenho muito superior ao que o próprio Windows poderia conseguir. É impressionante.

Ajustanto a placa de rede

Depois de testar um pouco o jogo em single player, para testar se algum crash iria ocorrer (nenhum problema surgiu), fui tentar jogar em modo multiplayer via TCP/IP. Quando entre nessa opção, o jogo indicou que eu não tinha placa de rede.

O wine utiliza as configurações de rede do arquivos de hosts do Linux. Para resolver o problema foi só editar o arquivo, deixando-o com uma sintaxe mais tradicional (com um nome para cada endereço IP) e adicionando uma linha com um endereço IP válido na rede interna. Meu arquivo /etc/hosts ficou assim:

127.0.0.1 localhost
10.1.1.10 lius-laptop

Agora o jogo deve mostrar este IP como sendo o seu, em jogos que for o host e deixará conectar em outros (como cliente, dando um join).

Otimizando (re)instalações

Você pode utilizar os recursos do Linux para facilitar e agilizar processo de instalação do Diablo II. Primeiro você deve criar as imagens iso a partir dos CDs, com o comando dd:

# dd if=/dev/cdrom of=/tmp/install.iso
# dd if=/dev/cdrom of=/tmp/play.iso
# dd if=/dev/cdrom of=/tmp/cinematics.iso
# dd if=/dev/cdrom of=/tmp/expansion.iso

O prmeiro parâmetro deve ser o dispositivo de bloco vinculado ao seu drive leitor. Agora é só montar as imagens e e começar a instalação normalmente, só que muito mas rápida, já que a leitura está sendo feita do HD:

# mount -o loop /tmp/install.iso /cdrom
# exit
$ wine /cdrom/install.exe

Quando for necessário trocar o CD, não desmonte a imagem. Apenas monte a próxima em cima da anterior. O ponto de montagem irá ficar automaticamente mascarado e mostrará apenas o conteúdo sobreposto, que é o da última montagem:

#mount -o loop /tmp/play.iso /cdrom

À medida que você for desmontando as imagens, o conteúdo das anteriores ficará disponível, na ordem com que foram montadas.

Conclusão

A maturidade do wine impressiona, mesmo sem ainda ter chegado em sua versão 1.0. O Diablo II: Lord of Destruction roda perfeito. Nas listas de compatibilidade do Wine, ele está no topo da lista mais elevada, a Platinum, pelo fato de ser um dos softwares mais votados para ser suportado pelo projeto.

Foram necessários alguns passos “incomuns” para conseguir rodar o D2Exp de forma “mais que perfeita”, mas valeu à pena. O desempenho é excelente, e visivelmente superior do que ao rodar nativamente no Windows (daí o “mais que perfeito”).

Agora é só dar level up! Até a próxima!

Artigos Relacionados:


Sobre este artigo