Inicio / Guías / Errores de programas y archivos

Errores de DLL en juegos: d3dx9, xinput, d3dcompiler y compañía

Los juegos antiguos se construyeron sobre componentes de la era DirectX 9 que el Windows moderno ya no incluye por defecto. Arranca uno de esos juegos en un PC recién estrenado y fallará pidiendo d3dx9_43.dll, xinput1_3.dll o d3dcompiler_43.dll. La cura es un único instalador oficial de Microsoft, no un archivo DLL de un sitio cualquiera.

Respuesta rápida

Descarga el DirectX End-User Runtime Web Installer desde microsoft.com/download, ejecútalo y deja que añada los componentes antiguos de DirectX 9-12. Arregla de una pasada los errores de d3dx9_xx.dll, d3dx10_xx.dll, d3dx11_xx.dll, xinput1_3.dll, d3dcompiler_43.dll y xactengine. En Steam, «Verificar la integridad de los archivos del juego» suele hacer el mismo trabajo.

Síntomas: cómo se manifiesta el problema

«El programa no puede iniciarse porque falta d3dx9_43.dll»
El mismo mensaje nombra xinput1_3.dll, d3dcompiler_43.dll o xactengine3_7.dll
Un juego antiguo falla en un PC nuevo mientras los juegos nuevos van bien
El error apareció justo después de instalar el juego
Un juego compatible con mando pide xinput1_3.dll
Errores de d3d12.dll en un sistema al día (raro - ver FAQ)

Por qué ocurre

El DirectX antiguo no viene preinstalado

Windows 10/11 traen DirectX 12, pero las bibliotecas auxiliares de la era DirectX 9 que usaban los juegos de los 2000 son un complemento opcional.

El instalador del juego se saltó el paso de los redistribuibles

A los juegos reempaquetados o copiados a mano les falta el paso de redistribuibles que un instalador normal ejecuta.

Una limpieza eliminó componentes compartidos de juegos

Las herramientas de limpieza agresivas a veces se llevan por delante los archivos compartidos de DirectX y Visual C++ de los que dependen los juegos.

Archivos del juego dañados

Una descarga corrupta o un error de disco pueden dañar las propias DLL del juego: volver a verificar los archivos las restaura.

Las soluciones, en orden

1. Instala el DirectX End-User Runtime (la solución principal)

  1. Busca «DirectX End-User Runtime Web Installer» y abre el resultado en microsoft.com.
  2. Descarga y ejecuta dxwebsetup.exe - rechaza los extras opcionales que ofrezca.
  3. Deja que termine: instala el conjunto completo de bibliotecas auxiliares antiguas de DirectX.
  4. Reinicia el PC y abre el juego.

2. Deja que la plataforma de juegos se repare sola

  1. Steam: clic derecho en el juego, Propiedades, Archivos instalados, y «Verificar la integridad de los archivos del juego».
  2. Mira también dentro de la carpeta del juego si hay _CommonRedist o redist: ejecutar ahí los instaladores de DirectX y vcredist cubre exactamente lo que ese juego necesita.
  3. Epic, GOG y los demás launchers tienen la misma opción de verificar/reparar en el menú del juego.

3. Cubre la parte de Visual C++

  1. Muchos juegos piden a continuación una DLL vcruntime/msvcp: instala el Visual C++ Redistributable como se describe en nuestra guía de VCRUNTIME140.dll - tanto x64 como x86.

4. Si un juego concreto sigue fallando

  1. Reinstala el juego por completo desde su fuente oficial.
  2. Actualiza el driver de la gráfica: los cuelgues relacionados con shaders (d3dcompiler) a veces vienen de ahí; mira la comprobación del driver gráfico.
  3. Ejecuta sfc /scannow en una terminal de administrador para reparar los archivos de DirectX 12 del propio Windows.

Esto no lo hagas: no descargues d3dx9_43.dll ni xinput1_3.dll como archivos sueltos. Los sitios de DLL son un clásico del malware, y un archivo que no encaja hace que el juego se cuelgue de formas peores. Los instaladores oficiales de arriba restauran cada componente correctamente.

Chuleta: a qué componente pertenece cada DLL

El error nombraComponenteLa solución
d3dx9_24.dll ... d3dx9_43.dllBiblioteca D3DX de DirectX 9DirectX End-User Runtime (método 1)
d3dx10_xx.dll, d3dx11_xx.dll, d3dcompiler_43.dllBibliotecas auxiliares de DirectX 10/11DirectX End-User Runtime (método 1)
xinput1_3.dll, xinput9_1_0.dllEntrada de mando antiguaDirectX End-User Runtime (método 1)
xactengine2_x.dll, xactengine3_x.dll, x3daudio1_x.dllAudio de juegos antiguoDirectX End-User Runtime (método 1)
vcruntime140.dll, msvcp140.dllRuntime de Visual C++Guía de VCRUNTIME140
d3d12.dllNúcleo de DirectX 12 (viene con Windows)Windows Update + sfc /scannow (método 4)

La opción automática

Outbyte PC Repair busca más de 100 problemas habituales - archivos basura, procesos pesados en segundo plano, vulnerabilidades, cuestiones de privacidad - y los corrige desde un solo sitio. Útil si prefieres no ejecutar a mano las herramientas de arriba, o quieres que el mantenimiento periódico se haga solo.

Descargar PC Repair Descarga Outbyte PC Repair para Windows 11, 10, 8 y 7. Prueba gratuita por categorías incluida.

Todas las funciones y detalles →

Preguntas frecuentes

¿Por qué un juego de 2008 necesita archivos extra en un PC nuevo?

Los juegos de esa época incluían bibliotecas auxiliares de DirectX 9 que nunca formaron parte de Windows. El Windows moderno trae solo el runtime principal de DirectX, así que el conjunto antiguo opcional hay que instalarlo una vez: a partir de ahí, todos los juegos viejos encuentran sus archivos.

¿Es seguro instalar el DirectX End-User Runtime junto a DirectX 12?

Sí: solo añade las bibliotecas auxiliares antiguas que faltan y no toca ni degrada el DirectX 12 del sistema. Microsoft lo distribuye exactamente para esto.

Un juego pide d3d12.dll, el propio archivo de DirectX 12. ¿Qué significa?

d3d12.dll viene con Windows, así que si falta, apunta a archivos del sistema dañados o a una compilación de Windows muy desactualizada: ejecuta Windows Update y luego sfc /scannow. Si un juego recién salido simplemente se niega a funcionar en hardware viejo, revisa mejor los requisitos mínimos del juego.