<h1>DirectX 9.oc no Linux com Wine</h1><h2>Sobre DirectX</h2><p>Microsoft DirectX é uma coleção de API's para gerenciar tarefas relacionadas a multimídia, especialmente a programação de jogos e vídeos, em plataformas Microsoft. Originalmente, os nomes de todas essas API's iniciaram como Direct, tais como Direct3D, DirectDraw, DirectMusic, DirectPlay, DirectSound, e assim por diante. DirectX, então, foi um termo genérico para todas essas API's Direct-algumacoisa, e aquele termo se tornou o nome da coleção. Ao longo dos anos, algumas dessas API's se tornaram obsoletas e foram substituidas, então [a convenção da nomeclatura não é absoluta. the X has caught on to the point that it has replaced Direct as the common part in the names of new DirectX technologies, including XAct, XInput, and so forth.]</p><p>Direct3D (a APT de gráficos 3D do DirectX) é muito usado no desenvolvimento de jogos de computador para Microsoft Windows, Microsoft Xbox, e Microsoft Xbox 360. Direct3D também é usado por outros softwares para visualizações e tarefas gráficas, mais notavelmente entre os setores de engenharia de CAD/CAM, por causa da sua habilidade de rápido renderimento de gráficos 3D de alta qualidade usando uma placa de vídeo compatível com DirectX. Como Direct3D é a APT mais reconhecida do DirectX, é comum ver o uso do nome DirectX no lugar de Direct3D.</p><h2>Configuração do Wine</h2><p>[Isto é com uma configuração de diretório limpa e rodando em um desktop virtual de 1024x768.]</p><p>$ winecfg</p><p>Uma vez que o diretório .wine é criado, a ferramenta de configuração irá iniciar e você poderá configurar um desktop virtual na aba "Gráficos", se você desejar. Agora é um bom momento para configurar o ser driver de audio na aba "Audio".</p><p>O próximo passo é instalar mscoree.dll e streamci.dll nativos em /system32 a partir de uma instalação Windows e configura-los como nativos do Windows.</p><p>Você irá precisar configurar muitas dlls como nativa para a instalação funcionar corretamente. Aqui está a lista completa de dlls que precisam ser configuradas.</p><p>[Software\\Wine\\DllOverrides] 1195992268"d3d8"="builtin""d3d9"="builtin""d3dim"="native""d3drm"="native""d3dx8"="native""d3dxof"="native""dciman32"="native""ddrawex"="native""devenum"="native""dinput"="builtin""dinput8"="native""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"</p><p>Você pode configurar todas as dlls em winecfg na aba "Bibliotecas" ou apenas configurar a primeira dll "d3d8"="builtin" a então ir para .wine/users.reg e encontrar a seção de sobreposição de DLL [Software\\Wine\\DllOverrides] e copiar a lista acima para dentro da seção.</p><h2>Instalando DirectX</h2><p>Baixe a versão <a href="http://filehippo.com/download_directx/">DirectX 9.oc Novembro</a></p><p>O executável directx_nov2007_redist.exe irá extrair os arquivos de instação para o diretório que você escolher.</p><p>tom@tuxonfire ~ $ wine directx_nov2007_redist.exefixme:advapi:DecryptFileA "z:\\home\\tom\\directx-9\\" 00000000fixme:midi:OSS_MidiInit Synthesizer supports MIDI in. Not yet supported.tom@tuxonfire ~ $ </p><p><img/><img/></p><p>Agora cd para o diretório onde você escolheu extrair o instalador do DirectX e execute DXSETUP.EXE.</p><p>tom@tuxonfire ~ $ cd /home/tom/directx-9tom@tuxonfire ~/directx-9 $ wine DXSETUP.EXEfixme:midi:OSS_MidiInit Synthesizer supports MIDI in. Not yet supported.</p><p><img/><img/><img/></p><p>Você agora terá que executar a instalação pela segunda vez... Se não, você irá receber um erro na red e dplay não funcionará corretamente.</p><p>Agora vamos executar dxdialog.exe</p><p>tom@tuxonfire ~/directx-9 $ cd /home/tom/.wine/drive_c/windows/system32tom@tuxonfire ~/.wine/drive_c/windows/system32 $ wine dxdiag.exefixme:ole:CoInitializeSecurity ((nil),-1,(nil),(nil),1,3,(nil),0,(nil)) - stub!</p><p><img/><img/><img/></p><p>Nós agora podemos testar o ddraw, ddraw 3D, D3D8 e D3D9.</p><p><img/><img/><img/><img/><img/><img/><img/></p><p>Teste do Direct Sound</p><p><img/></p><p>Agora nós precisamos instalar gm.dlls para testar DirectMisic, este driver irá para ~/.wine/drive_c/windows/system32/drivers</p><p><img/></p><p>Teste do Direct Play</p><p><img/></p><p>Você irá notar que d3dx9_24.dll até d3dx9_36.dll estão instalados no diretório system32, isto ajuda muito quando você roda um jogo que precisa destes dlls do DirectX adicional.</p><p>Agora você tem a opção de rodar mais DirectX dlls no modo nativo ou builtin, por exemplo, se você tem um jogo que está dando erro no dll builtin do Wine quartz.dll, você pode testar o jogo com a dll nativa do Windows para ver se irá resolver o problema.</p><p>Lembre-se que d3d8, d3d9, ddraw irão funcionar apenas como builtin, e em muitos casos você deve tentar usar dsound e dinput como builtin. Eu tive um sucesso limitado com dsound e dinput no modo nativo... O motivo dessas dlls precisarem ser usadas no modo builtin é que elas precisam de acesso direto com seus hardwares. direct music e direct play podem ser usadas no modo nativo do windows na maioria das circunstâncias.</p><p>Sinta-se livre para comentar sobre este post no <a href="http://www.wine-forum.org/showthread.php?p=150#post150">wine-forum</a>