? Apoie o Projeto! ?
Seu apoio estimula o desenvolvimento da funcionalidade dd7to9
para permitir que jogos mais antigos rodem sem problemas nas plataformas atuais. Seja um impulso único via PayPal ou suporte mensal contínuo no Patreon, sua contribuição garante melhorias contínuas e comprometimento com o crescimento do projeto. Observe que seu apoio é inestimável, mas não influenciará a priorização de jogos específicos. Junte-se a nós nesta jornada!
Suporte via PayPal | Patreon
DxWrapper
Introdução
DxWrapper é um arquivo .dll projetado para agrupar arquivos DirectX para corrigir problemas de compatibilidade em jogos mais antigos. Este projeto tem como objetivo principal corrigir problemas de execução de jogos no Windows 10/11, simplesmente colocando os arquivos .dll e .ini na pasta do jogo. Seu objetivo secundário é oferecer uma ferramenta única que combine vários projetos em um só.
Características
DxWrapper tem muitos recursos, incluindo:
- Integração do DDrawCompat
- Configurando opções do DDrawCompat para melhorar a compatibilidade
- Conversão do DirectDraw 1-6 para DirectDraw 7
- Conversão de Direct3D 1-6 para Direct3D 7
- Conversão de DirectDraw 1-7 (ddraw.dll) para Direct3D 9 (d3d9.dll) usando Dd7to9
- Conversão de Direct3D 1-7 (ddraw.dll) para Direct3D 9 (d3d9.dll) usando Dd7to9
- Conversão de Direct3D 8 (d3d8.dll) para Direct3D 9 (d3d9.dll) usando d3d8to9
- Conversão de DirectInput 1-7 (dinput.dll) para DirectInput 8 (dinput8.dll) usando dinputto8
- Inclui LegacyD3DResolutionHack para remover o limite de resolução artificial do Direct3D 1-7, que permite que jogos DirectDraw sejam reproduzidos em resolução 4K
- Ajustes de chamadas de função do Microsoft DirectSound usando DSoundCtrl
- Pode fazer com que jogos DirectDraw 1-7, Direct3D 8 e Direct3D 9 sejam executados em modo de janela
- Pode limitar a taxa de quadros de jogos usando ou convertidos para Direct3D 9
- Pode ativar ou desativar a sincronização vertical em jogos usando ou convertidos para Direct3D 9
- Pode definir GraphicsHybridAdapter para Direct3D 9 em laptops com múltiplas placas gráficas
- Pode habilitar Direct3D9On12 para Direct3D 9
- Pode definir modos de processamento de vértices e cache para corrigir o desempenho em alguns jogos Direct3D 9
- Pode remover scanlines de jogos DirectDraw 1-7
- Pode desativar MaximizedWindowedMode (otimizações de tela cheia) para jogos Direct3D 8 e 9
- Pode desativar a escala de alto DPI para resolver problemas com alguns jogos
- Pode desativar o Microsoft Game Explorer (GameUX) para evitar alta CPU do rundll32.exe
- Pode desativar pops e cliques de áudio causados por jogos cortando áudio enquanto o som está sendo reproduzido
- Carregador ASI para carregar bibliotecas personalizadas com a extensão de arquivo .asi nos processos do jogo usando o Ultimate ASI Loader
- Suporta carregamento como um plug-in ASI
- Adicionando suporte AntiAliasing em jogos Direct3D 8 ou 9, mesmo que o jogo não suporte isso
- Suporte a memória hot patch (atualiza a memória do jogo em tempo de execução, pode ser usado para remover verificações de CD/DVD ou resolver gráficos ou outras falhas)
- Defina a afinidade de CPU única (alguns jogos apresentam problemas com CPUs multi-core)
- Capacidade de definir todas as 12 opções do Application Compatibility Toolkit para DXPrimaryEmulation usando a API SetAppCompatData
- Defina a janela do jogo para tela cheia (alguns jogos apresentam problemas de tela cheia)
- Lidando com exceções ou travamentos no jogo
- Carregar arquivos .dll personalizados em jogos
- Execute processos personalizados na inicialização do jogo
Lista de compatibilidade para jogos no Windows 10/11
Até agora, testei isso com centenas de jogos (muitos dos quais não funcionam corretamente) para executá-los no Windows 10/11. A maioria dos jogos funcionará, mas alguns ainda apresentam problemas. Confira o wiki de jogos compatíveis e o wiki de jogos compatíveis com Dd7to9 para obter uma lista.
Instalação
- Baixe a versão binária mais recente na página Release do repositório e descompacte-a em uma pasta.
- Determine qual arquivo stub .dll é necessário para o jogo. Isso depende de muitos fatores que serão explicados na página criada posteriormente. DLLs stub comuns para usar são
ddraw.dll
, d3d8.dll
, d3d9.dll
, dsound.dll
ou winmm.dll
. Você só precisa escolher um arquivo stub para carregar o dxwrapper no jogo. - Copie este arquivo .dll da pasta ‘Stub’ mais os arquivos
dxwrapper.dll
e dxwrapper.ini
para o diretório de instalação do jogo, próximo ao arquivo executável principal. Para alguns jogos, o executável principal está em um subdiretório (como 'Bin', 'Exe' ou 'App'), portanto os arquivos precisarão ser copiados para esse diretório. A substituição de quaisquer arquivos de jogo existentes não é recomendada. - Abra o arquivo
dxwrapper.ini
em um editor de texto e habilite as configurações necessárias para o jogo.
Não tente substituir qualquer .dll em um diretório do sistema Windows, pois atualmente não é compatível e não funcionará.
Desinstalação
Exclua os arquivos DxWrapper .dll e .ini do diretório do jogo. Você também pode excluir o arquivo de log, se houver.
Configuração
Para configurar o DxWrapper, edite o arquivo .ini e habilite as configurações desejadas. Consulte o wiki de configuração para obter mais detalhes.
Arquivo de configuração de amostra: dxwrapper.ini.
Lista de todas as opções de configuração: allsettings.ini
Registro
O arquivo de log será criado na mesma pasta onde o executável do jogo está localizado. Ele será nomeado 'dxwrapper' com o nome do executável do jogo anexado a ele. Portanto, se você estiver executando o arquivo game.exe
, o arquivo de log será chamado dxwrapper-game.log
.
DLLs suportadas
O DxWrapper pode agrupar as seguintes DLLs:
- bcrypt.dll
- criptobase.dll
- cryptosp.dll
- d2d1.dll
- d3d8.dll
- d3d9.dll
- dciman32.dll
- ddraw.dll
- dinput.dll
- dinput8.dll
- dplayx.dll
- dsound.dll
- dwmapi.dll
- msacm32.dll
- msvfw32.dll
- versão.dll
- wininet.dll
- winmm.dll
- winmbase.dll
- winpool.drv
- wsock32.dll
Licença
Copyright (C) 2024 Elisha Riedlinger
Este software é fornecido “no estado em que se encontra”, sem qualquer garantia expressa ou implícita. Em nenhum caso o(s) autor(es) será(ão) responsabilizado(s) por quaisquer danos decorrentes da utilização deste software. É concedida permissão a qualquer pessoa para usar este software para qualquer finalidade, incluindo aplicações comerciais, e para alterá-lo e redistribuí-lo livremente, sujeito às seguintes restrições:
- A origem deste software não deve ser deturpada; você não deve alegar que escreveu o software original. Se você usar este software em um produto, um reconhecimento na documentação do produto será apreciado, mas não será obrigatório.
- As versões de origem alteradas devem ser claramente marcadas como tal e não devem ser deturpadas como sendo o software original.
- Este aviso não pode ser removido ou alterado de qualquer distribuição fonte.
Créditos
DxWrapper usa código de vários outros projetos. Portanto, para dar crédito a quem o merece, abaixo está uma lista de locais de onde o código-fonte foi retirado:
- AppCompatData: comentários usados de blitzbasic.com para criar o recurso para definir as configurações do DirectDraw AppCompatData.
- ddwrapper do Aqrit: Inclui código para ler o arquivo de configuração ini.
- cnc-ddraw: Inclui código para criar contexto de dispositivo de superfície emulado.
- d3d8to9: Inclui o código completo do Direct3D 8 para Direct3D 9.
- D3DParseUnknownCommand: Inclui código para DirectDraw D3DParseUnknownCommand do código-fonte encontrado no ReactOS.
- DDrawCompat: Inclui o DDrawCompat v0.2.0b, v0.2.1 e v0.3.2 completo e para conexão de API.
- doom3.gpl: Inclui código para obter memória de vídeo.
- diablo-ddrawwrapper: Inclui algum código para converter ddraw em Direct3D.
- DSoundCtrl: Inclui o código completo do DirectSoundControl.
- DxWnd: Inclui código do DxWnd para carregamento de proxy (init.cpp) e tratamento de exceções.
- GetComputerManufacturer: Inclui código de rohitab.com para obter o fornecedor e o modelo do computador.
- GetFileVersionInfo: inclui código de stackoverflow.com para obter a versão de um arquivo PE.
- GetPPID: Inclui código retirado do projeto mattn GitHub para obter o PID do processo pai.
- LegacyD3DResolutionHack: Inclui código do LegacyD3DResolutionHack para remover o limite de resolução artificial do Direct3D 7 e inferior.
- MemoryModule: Inclui código para carregar bibliotecas da memória.
- OllyDbg: Inclui o código completo cmdlist.c e disasm.c (disasm.dll) usado para tratamento de exceções.
- PixelShaderPalette: Inclui código de ddraw-cnc para um PixelShader que é usado para visualizar corretamente as superfícies da paleta DirectDraw.
- SilentPatchFarCry: inclui código do SilentPatchFarCry para armazenar em cache o plano de clipe no Direct3D 9.
- Ultimate ASI Loader: Inclui código para carregar plug-ins ASI.
- WineD3D d3d8.dll: Inclui funções ValidatePixelShader e ValidateVertexShader.
Desenvolvimento
DxWrapper é escrito principalmente em C++ usando Microsoft Visual Studio 2022.
O projeto requer o SDK do Windows 10 e o WDK (precisa ter versões correspondentes do SDK e do WDK instaladas). A versão exata necessária pode ser vista nas propriedades do projeto no Visual Studio.
Link do GitHub: https://github.com/elishacloud/dxwrapper
Obrigado por passar por aqui!