-->

domingo, 22 de junho de 2008

Direct3D não disponível (not available)

Eu estava testando a viabilidade de rodar os jogos de Tomb Raider sob Windows XP (a maioria deles é para Windows 9x). Nenhum deles rodou. Não me lembro do comportamento de todos, mas Tomb Raider 4 acusava um erro genérico em tomb4.exe e apenas uma das versões me deu uma pista (acho que foi Tomb Raider Legend), acusando o erro SYS_ERROR_D3D_CREATE_DEVICE.

Cenário:
  • MSI MS-7021 com 1.5GB de RAM;
  • ATI Radeon Saphire 9550 em modo dual monitor (1280x1024 + 1280x1024);
  • Windows XP Professional SP2 sem updates;
  • DirectX 9.0c;
Rodei a ferramenta de diagnóstico do DirectX (dxdiag.exe) e ela acusou que DirectDraw e Direct3D estavam ativados, mas ao tentar rodar os testes de Direct3D, também acusou erro. Vou chamar isso de "Problema 1".

Nesse ponto eu já sabia que o problema estava na máquina e não nos jogos.

Eu tentei diversas coisas, incluindo umas bem simplórias:
  • Instalar versões mais antigas ou mais novas do Catalyst, incluindo a 8.6;
  • Instalar o driver do chipset (Via 4-In-1);
  • Desligar e religar a aceleração de hardware;
  • Desligar o monitor secundário;
  • Mudar resolução;
Houve um ponto logo no início dos testes em que a coisa descambou de vez. Tanto DirectDraw quanto Direct3D passaram a acusar "não disponível" e o desenho de janelas no Windows ficou leeento demais. Vou chamar isso de "Problema 2". Eu "reverti" o driver usando o próprio mecanismo do XP para isso e o Problema 2 foi corrigido, embora o Problema 1 persistisse. Mas com a continuação de minhas tentativas o Problema 2 voltou e o vídeo ficou "esculhambado" de vez.

Felizmente, havia uma solução:
  • Rodei o Catalyst Uninstaller - Mesmo sendo uma versão de 2005, funcionou;
  • Ao reiniciar, o XP começou redetectando minha placa de vídeo como "standard", mas achou sozinho o CD original da Saphire no drive e fez a instalação do driver correto;
Após isso, imediatamente os problemas 1 e 2 sumiram (não precisei instalar ou reinstalar nada). E agora todas as versões de Tomb Raider de 1 a 7 estão rodando sob Windows XP nesse PC.

Coisas que não fiz, em nenhum momento:
  • Mexer no setup do BIOS;
  • Tentar instalar/reinstalar/desinstalar o DirectX.

5 comentários:

  1. Jefferson,

    E você deixou os drivers originais do CD instalados no Windows? Não tentou mais atualizar para uma versão mais recente?

    ResponderExcluir
  2. Não tentei.

    Eu tenho uma certa "resistência" a essa coisa de atualizar "porque é a versão mais nova". Instalei, funcionou, não tem problemas, então eu deixo como está.

    Se o Windows não tivesse achado o CD original no drive eu teria instalado o Catalyst mais novo (8.6), que eu já havia baixado.

    Ainda lembro de quando um jogo instalava uma versão mais nova do DirectX e um ou outro jogo instalados antes paravam de funcionar.

    ResponderExcluir
  3. Ryan,

    Eu tenho uma ATI X800 Pro e tive diversos problemas com o Direct3D até achar a solução.
    O problema é que os desenvolvedores de drivers simplesmente fizeram m**** e não conseguem resolver. É um erro que ocorre desde as versões Catalyst 7.6 ou 7.7... Não sei o numero exato. Acontecem em todas (?) as placas AGP. Só atualizar o Catalyst que o Direct3d fica totalmente instavel. A versão 8.3 acho que chegou a parar o problema na hora do dxdiag. Mas ao jogar o erro.. só esperar uns minutinhos e volá ... reset na máquina. Solução :
    Instalar o Catalyst mais novo, reiniciar a máquina em modo de segurança e copiar a dll : ati3duag.dll

    ------
    Essa solução foi descoberta em um fórum e depois a ATI usou-a..
    Post da ATI :

    Symptoms:

    After installing Catalyst 7.9 or higher an error is received launching DirectX based games. The error indicates that Direct3D Failed to Initialize or similar.

    In Vista your Experience score will drop to 1.0.

    The DirectX Diagnostic tests will fail in both XP and Vista.

    Solution:

    An upcoming driver release will resolve this issue.

    To workaround this issue we recommend you install Catalyst 7.7 as it seems to be most stable driver available for AGP at this time.

    You can also try this workaround.

    Install Catalyst 7.7.
    Browse to c:\windows\system32
    Copy the ati3duag.dll file to your Desktop
    Uninstall Catalyst 7.7.
    Install the latest Catalyst release.
    Copy the ati3duag.dll you saved to your desktop back to c:\windows\system32 replacing the version installed by the latest Catalyst driver.

    If you receive a message that the file is in use, please boot into safe mode to replace the file.

    ----------
    OBS : Ainda não testei no catalyst novo 8.6 ... Destesto ficar atualizando drivers, somente em último caso. E ficar "testando" driver para ver se um fabricante corrigiu a besteira. Sem chances.

    Abraços e parabéns novamente pelo BLOG, é um dos meus preferidos.

    ResponderExcluir
  4. Sobre Tomb Raider: você sabia que há um patch para rodar o Tomb 1 em modo glide, das antigas e legendárias 3DFX ?

    E, para deixar a coisa mais interessante, tem um wrapper, chamado dgVoodoo que intercepta as chamadas ao glide e as transfere para o D3D. Dá até para rodar Unreal Tournament em modo 3DFX, com pouquíssima perda de desempenho.

    Quanto ao Tomb 2 em diante, não lembro, pois nunca gostei muito dessa série.

    ResponderExcluir
  5. Lucas,

    Eu estou ciente, mas não testei. Eu rodei o TR1 no XP usando o DosBox, mas não fiquei satisfeito com o resultado.

    ResponderExcluir

Siga as regras do blog ou seu comentário será ignorado.