? ¡Apoya el Proyecto! ?
Su apoyo impulsa el desarrollo de la funcionalidad dd7to9
para permitir que los juegos más antiguos se ejecuten sin problemas en las plataformas actuales. Ya sea un impulso único a través de PayPal o soporte mensual continuo en Patreon, su contribución garantiza mejoras continuas y un compromiso con el crecimiento del proyecto. Tenga en cuenta que su apoyo es invaluable, pero no influirá en la priorización de juegos específicos. ¡Únase a nosotros en este viaje!
Soporte a través de PayPal | Patreón
DxWrapper
Introducción
DxWrapper es un archivo .dll diseñado para empaquetar archivos DirectX para solucionar problemas de compatibilidad en juegos más antiguos. Este proyecto está dirigido principalmente a solucionar problemas con la ejecución de juegos en Windows 10/11, simplemente colocando archivos .dll y .ini en la carpeta del juego. Su finalidad secundaria es ofrecer una única herramienta combinando varios proyectos en uno.
Características
DxWrapper tiene muchas características que incluyen:
- Integración de DDrawCompat
- Configurar las opciones de DDrawCompat para mejorar la compatibilidad
- Conversión de DirectDraw 1-6 a DirectDraw 7
- Conversión de Direct3D 1-6 a Direct3D 7
- Conversión de DirectDraw 1-7 (ddraw.dll) a Direct3D 9 (d3d9.dll) usando Dd7to9
- Conversión de Direct3D 1-7 (ddraw.dll) a Direct3D 9 (d3d9.dll) usando Dd7to9
- Conversión de Direct3D 8 (d3d8.dll) a Direct3D 9 (d3d9.dll) usando d3d8to9
- Conversión de DirectInput 1-7 (dinput.dll) a DirectInput 8 (dinput8.dll) usando dinputto8
- Incluye LegacyD3DResolutionHack para eliminar el límite de resolución artificial de Direct3D 1-7, lo que permite jugar juegos DirectDraw con resolución 4K.
- Ajuste de las llamadas a funciones de Microsoft DirectSound mediante DSoundCtrl
- Puede hacer que los juegos DirectDraw 1-7, Direct3D 8 y Direct3D 9 se ejecuten en modo ventana
- Puede limitar la velocidad de fotogramas de los juegos que usan o convierten a Direct3D 9
- Puede habilitar o deshabilitar la sincronización vertical en juegos que usan o se convierten a Direct3D 9
- Puede configurar GraphicsHybridAdapter para Direct3D 9 en computadoras portátiles con múltiples tarjetas gráficas
- Puede habilitar Direct3D9On12 para Direct3D 9
- Puede configurar el procesamiento de vértices y los modos de caché para corregir el rendimiento en algunos juegos Direct3D 9
- Puede eliminar líneas de escaneo de juegos DirectDraw 1-7
- Puede desactivar MaximizedWindowedMode (optimizaciones de pantalla completa) para juegos Direct3D 8 y 9
- Puede desactivar la escala de alto DPI para resolver problemas con algunos juegos
- Puede deshabilitar Microsoft Game Explorer (GameUX) para evitar que rundll32.exe tenga un uso elevado de CPU
- Puede desactivar los estallidos y clics de audio causados por juegos que recortan el audio mientras se reproduce el sonido.
- Cargador ASI para cargar bibliotecas personalizadas con la extensión de archivo .asi en procesos de juego usando Ultimate ASI Loader
- Admite la carga como un complemento ASI
- Agregar compatibilidad con AntiAliasing en juegos Direct3D 8 o 9 incluso si el juego no lo admite
- Soporte de memoria de parches activos (actualiza la memoria del juego en tiempo de ejecución, se puede usar para eliminar comprobaciones de CD/DVD o resolver gráficos u otros fallos)
- Establecer afinidad de CPU única (algunos juegos tienen problemas con CPU de múltiples núcleos)
- Capacidad para configurar las 12 opciones del kit de herramientas de compatibilidad de aplicaciones para DXPrimaryEmulation usando la API SetAppCompatData
- Establecer la ventana del juego en pantalla completa (algunos juegos tienen problemas de pantalla completa)
- Manejo de excepciones o bloqueos en el juego
- Cargue archivos .dll personalizados en juegos
- Ejecute procesos personalizados al iniciar el juego
Lista de compatibilidad para juegos en Windows 10/11
Hasta ahora he probado esto con cientos de juegos (muchos de los cuales no funcionan correctamente) para que se ejecuten en Windows 10/11. La mayoría de los juegos funcionarán, pero algunos todavía tienen problemas. Consulte la wiki de Juegos compatibles y la wiki de Juegos compatibles con Dd7to9 para obtener una lista.
Instalación
- Descargue la última versión binaria de la página de lanzamiento del repositorio y descomprímala en una carpeta.
- Determina qué archivo stub .dll es necesario para el juego. Esto depende de muchos factores que se explicarán en la página creada más adelante. Los archivos stub comunes que se utilizan son
ddraw.dll
, d3d8.dll
, d3d9.dll
, dsound.dll
o winmm.dll
. Solo necesitas elegir un archivo stub para cargar dxwrapper en el juego. - Copie este archivo .dll de la carpeta 'Stub' más los archivos
dxwrapper.dll
y dxwrapper.ini
en el directorio de instalación del juego, junto al archivo ejecutable principal. Para algunos juegos, el ejecutable principal está en un subdirectorio (como 'Bin', 'Exe' o 'App'), por lo que será necesario copiar los archivos en ese directorio. No se recomienda sobrescribir ningún archivo de juego existente. - Abra el archivo
dxwrapper.ini
en un editor de texto y habilite las configuraciones necesarias para el juego.
No intente sobrescribir ningún archivo .dll en un directorio del sistema de Windows, ya que actualmente no es compatible y no funcionará.
Desinstalación
Elimina los archivos DxWrapper .dll y .ini del directorio del juego. También puede eliminar el archivo de registro, si lo hay.
Configuración
Para configurar DxWrapper, edite el archivo .ini y habilite las configuraciones deseadas. Consulte la wiki de configuración para obtener más detalles.
Archivo de configuración de muestra: dxwrapper.ini.
Lista de todas las opciones de configuración: allsettings.ini
Explotación florestal
El archivo de registro se creará en la misma carpeta donde se encuentra el ejecutable del juego. Se llamará 'dxwrapper' y se le adjuntará el nombre del ejecutable del juego. Entonces, si está ejecutando el archivo game.exe
, el archivo de registro se llamará dxwrapper-game.log
.
DLL compatibles
DxWrapper puede empaquetar los siguientes archivos DLL:
- bcrypt.dll
- cryptbase.dll
- cryptsp.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
- versión.dll
- wininet.dll
- winmm.dll
- winmmbase.dll
- winspool.drv
- wsock32.dll
Licencia
Copyright (C) 2024 Eliseo Riedlinger
Este software se proporciona "tal cual", sin ninguna garantía expresa o implícita. En ningún caso el autor será responsable de los daños que surjan del uso de este software. Se concede permiso a cualquier persona para utilizar este software para cualquier fin, incluidas aplicaciones comerciales, y para modificarlo y redistribuirlo libremente, sujeto a las siguientes restricciones:
- No se debe tergiversar el origen de este software; no debe afirmar que escribió el software original. Si utiliza este software en un producto, se agradecería incluir un reconocimiento en la documentación del producto, pero no es obligatorio.
- Las versiones fuente alteradas deben marcarse claramente como tales y no deben tergiversarse como software original.
- Este aviso no puede eliminarse ni modificarse de ninguna distribución fuente.
Créditos
DxWrapper utiliza código de varios otros proyectos. Entonces, para dar crédito a quien lo merece, a continuación se muestra una lista de ubicaciones de donde se tomó el código fuente:
- AppCompatData: Se utilizaron comentarios de blitzbasic.com para crear la función para configurar los ajustes de DirectDraw AppCompatData.
- ddwrapper de Aqrit: incluye código para leer el archivo de configuración ini.
- cnc-ddraw: incluye código para crear un contexto de dispositivo de superficie emulado.
- d3d8to9: incluye el código completo de Direct3D 8 a Direct3D 9.
- D3DParseUnknownCommand: incluye código para DirectDraw D3DParseUnknownCommand del código fuente que se encuentra en ReactOS.
- DDrawCompat: incluye DDrawCompat v0.2.0b, v0.2.1 y v0.3.2 completo y para el enlace de API.
- doom3.gpl: Incluye código para obtener memoria de vídeo.
- diablo-ddrawwrapper: Incluye código para convertir ddraw a Direct3D.
- DSoundCtrl: Incluye el código completo de DirectSoundControl.
- DxWnd: incluye código de DxWnd para carga de proxy (init.cpp) y manejo de excepciones.
- GetComputerManufacturer: incluye código de rohitab.com para obtener el proveedor y el modelo de la computadora.
- GetFileVersionInfo: incluye código de stackoverflow.com para obtener la versión de un archivo PE.
- GetPPID: incluye código tomado del proyecto mattn GitHub para obtener el PID del proceso principal.
- LegacyD3DResolutionHack: incluye código de LegacyD3DResolutionHack para eliminar el límite de resolución artificial de Direct3D 7 y versiones anteriores.
- MemoryModule: Incluye código para cargar bibliotecas desde la memoria.
- OllyDbg: incluye el código completo cmdlist.c y disasm.c (disasm.dll) utilizado para el manejo de excepciones.
- PixelShaderPalette: incluye código de ddraw-cnc para un PixelShader que se utiliza para ver las superficies de la paleta DirectDraw correctamente.
- SilentPatchFarCry: incluye código de SilentPatchFarCry para almacenar en caché el plano de recorte en Direct3D 9.
- Ultimate ASI Loader: incluye código para cargar complementos ASI.
- WineD3D d3d8.dll: Incluye las funciones ValidatePixelShader y ValidateVertexShader.
Desarrollo
DxWrapper está escrito principalmente en C++ con Microsoft Visual Studio 2022.
El proyecto requiere tanto el SDK como el WDK de Windows 10 (debe tener instaladas las versiones SDK y WDK coincidentes). La versión exacta requerida se puede ver en las propiedades del proyecto en Visual Studio.
Enlace de GitHub: https://github.com/elishacloud/dxwrapper
¡Gracias por pasar por aquí!