DirectX 9.0c en GNU/Linux

6 02 2009
No Gravatar

Hoy no os voy a presentar ningún juego en concreto. El tema que hoy traemos entre manos será la instalación de M$ DirectX9.0c bajo GNU/Linux. Como supongo que sabréis, DirectX es un API desarrollada por Hasecorp para el desarrollo de aplicaciones multimedia, en especial de videojuegos, para la plataforma de Redmond.

Un poco de historia…

Las capacidades 3D de DirectX las incluye la librería Direct3D (D3D), cuyo objetivo es facilitar el manejo y trazado de entidades gráficas elementales, como líneas, polígonos y texturas, en cualquier aplicación que despliegue gráficos en 3D, así como efectuar de forma transparente transformaciones geométricas sobre dichas entidades. Vendría a ser como OpenGL pero en cutre, pues mientras la interfaz de OpenGL es procedural, la de D3D es ejecutada mediante buffers. De tal forma, para dibujar un triángulo en OpenGL sería tan sencillo como

glBegin (GL_TRIANGLES);
glVertex (0,0,0);
glVertex (1,1,0);
glVertex (2,0,0);
glEnd ();
mientras que en D3D sería algo como esto
(pseudocódigo incompleto)

v = &buffer.vertexes[0];
v->x = 0; v->y = 0; v->z = 0;
v++;
v->x = 1; v->y = 1; v->z = 0;
v++;
v->x = 2; v->y = 0; v->z = 0;
c = &buffer.commands;
c->operation = DRAW_TRIANGLE;
c->vertexes[0] = 0;
c->vertexes[1] = 1;
c->vertexes[2] = 2;
IssueExecuteBuffer (buffer);

Vamos, una “joyita” de la programación, a gigantic pain-in-the-ass, como decía John Carnack en el ‘97, el creador de juegos como Doom, Enemy Territory, Wolf3D, y un largo etcétera, en los grupos de noticias de USENET rec.games.programmer y comp.graphics.algorithms.

Hasecorp, tras ver la flame war que inició el famoso desarrollador de videojuegos de Id Software, hizo un intento en el ‘98 junto a SGI (creadores de OpenGL) y Hewlett-Packard, de fusionar Direct3D con OpenGL para crear un estándar. Intento fallido que desencadenó en lo que la compañía de Redmond se le da estupendamente cuando se enfrenta ante un enemigo al que no puede vencer: en 1998 empezó una campaña de FUD contra OpenGL y retiró el soporte al mismo que venía dando desde Windows 95, obligando así a que los desarrolladores de aplicaciones 3D no independientes tuvieran que usar necesariamente D3D.

Pero todo eso queda muy atrás, pues de hecho, cuando todos los programadores ya habían desarrollado aptitudes en el desarrollo de aplicaciones basadas en D3D, la comunidad independiente de OpenGL hizo que fuera compatible con los sistemas NT. Así pues, entre lo uno y lo otro, Hasecorp volvió a dar sop0rte a OpenGL. Pero la batalla ya la había ganado, pues D3D ya era oficialmente la API de desarrollo de videojuegos para la plataforma de los videojuegos.

Cómo instalar DirectX9.0c en GNU/Linux

Como muchos de vosotros sabéis, ya exite DirectX10 e incluso DirectX11, pero son para Windows Vista y superior, así pues, muchos de los usuarios de Hasefroch no pueden tener las ventajas que tienen ambas colecciones de APIs frente a DirectX9.0c, y bien que pueden jugar a todos los juegos que hay para ese sistema operativo.

Desde que Wine es capaz de instalar DirectX, se ha abierto una miríada de posibilidades para poder ejecutar videojuegos diseñados específicamente para Windows. Es estupendo, ¿verdad? Pues como todo en esta vida, no hay nada ni perfecto ni de color de rosa, a la vez que abre muchas posibilidades, estaremos haciendo un poco más inestable nuestra instalación de wine, así que es recomendable que hagáis varios perfiles para emular según qué aplicaciones, para que no os fallen las que funcionan con las APIs que proporciona wine.

Para poder instalar efectivamente DirectX9.0c en Linux, deberemos emular un Windows 2000 y no un XP, y emular un escritorio virtual de 1024×768 a través de la herramienta de configuración winecfg

Paso 1: Configurar winecfg en una instalación “limpia” de wine
$winecfg

Si es una instalación “limpia” de wine, tendrá que recrear toda la estructura de directorios en ~/.wine, así que tardará un poquito más de lo normal. En la pestaña Applications seleccionamos Windows 2000

Seleccionamos Windows 2000

La pestaña Graphics la dejamos como muestro

Emulamos escritorio virtual

Y sería un buen momento para seleccionar algún sistema de sonido como ALSA

ALSA suele dar menos problemas que OSS

El siguiente paso, tras Aplicar winecfg, sería copiar a ~/.wine/drive_c/windows/system32, las siguientes dlls, desde un sistema Windows: mscoree.dll y streamci.dll.

Ahora tendremos que hacer nativas un gran número de dlls, os pongo el listado a continuación :

“d3d8″=”builtin”
“d3d9″=”builtin”
“d3dim”=”native”
“d3drm”=”native”
“d3dx8″=”native”
“d3dx9_24″=”native”
“d3dx9_25″=”native”
“d3dx9_26″=”native”
“d3dx9_27″=”native”
“d3dx9_28″=”native”
“d3dx9_29″=”native”
“d3dx9_30″=”native”
“d3dx9_31″=”native”
“d3dx9_32″=”native”
“d3dx9_33″=”native”
“d3dx9_34″=”native”
“d3dx9_35″=”native”
“d3dx9_36″=”native”
“d3dxof”=”native”
“dciman32″=”native”
“ddrawex”=”native”
“devenum”=”native”
“dinput”=”builtin”
“dinput8″=”builtin”
“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”

Para ello, seleccionaremos una a una cada una de las librerias, las añadiremos y la editaremos para que ponga “native” o “builtin” como en la figura anterior.

Paso 2: Descargar e instalar DirectX

Puedes descargar DirectX9 desde aquí. El instalador se descomprimirá en un directorio de tu elección.
malevolent@malevolo ~ $ wine directx_nov2008_redist.exe
fixme:advapi:DecryptFileA "Z:\\home\\malevolent\\dx\\" 00000000
malevolent@malevolo ~ $

Ahora vamos al directorio donde hemos elegido extraer el instalador de DirectX y ejecutamos DXSETUP.EXE.

malevolent@malevolo ~ $ cd /home/malevolent/dx
malevolent@malevolo ~/dx $ wine DXSETUP.exe

Lo siguiente que necesitaremos será instalar gm.dls para poder probar DirectMusic, este driver lo copiaremos en ~/.wine/drive_c/windows/system32/drivers

Paso 3: Vemos que todo funciona

Ejecutaremos pues, dxdiag.exe

malevolent@malevolo~ $ cd /home/malevolent/.wine/drive_c/windows/system32
malevolent@malevolo ~/.wine/drive_c/windows/system32 $ wine dxdiag.exe
fixme:advapi:SetEntriesInAclA 1 0x33f79c (nil) 0x33f7d4
fixme:advapi:SetSecurityInfo stub

Observarás que en system32 están ahora desde d3dx9_24.dll hasta d3dx9_36.dll, esto realmente ayudará cuando juegues a un juego que necesite estas DLLs adicionales de DirectX.

Ahora ya podrás ejecutar la mayoria de las DLLs de DirectX en modo native o builtin, por ejempo, si tuvieras un juego que se cuelga o no funciona con la dll de Wine quartz.dll en modo builtin, puedes probar el juego en el modo DLL native de Windows para ver si la situación mejora.

Recuerda por eso, que d3d8, d3d9 y ddraw solo funcionarán en modo builtin, y en la mayoría de los casos deberías tratar de usar dsound y dinput en modo builtin. La razón de por qué esas DLLs tienen que ser usadas en modo builtin es por la necesidad de tener acceso directo a tu hardware. En la mayoría de ocasiones se puede usar DirectMusic y DirectPlay en modo nativo de windows.

Y este es el resultado:

Imagen de previsualización de YouTube

Happy Linux Gamming!!! :D

Extraido y traducido de: wine-reviews
Datos comparativa OpenGL vs Direct3D: Paul Hsieh

Share This Post


Lord Of The Rings Online

29 10 2008
No Gravatar

Durante más de 50 años la gente alrededor del mundo ha leído los cuentos sobre el viaje épico de Frodo y Sam hasta el Monte del Destino, también han leído acerca de batallas épicas como las del Abismo de Helm, la del Campo de Pelennor o la de la Puerta Negra de Mordor.

Ahora gracias a Turbine Inc, tenemos la ocasión de visitar Bolsón Cerrado, pasear a través del Bosque Viejo, tomar un trago en el Pony Pisador de Bree y contemplar la belleza de Rivendell.

Todo ello gracias al Juego LOTRO™(Lord Of The Rings Online), pues es el primer MMORPG ambientado en el El señor de Los Anillos de J.R.R. Tolkien. LOTRO toma lugar en un moundo online persistente poblado con jugadores humanos y controlados por ordenador que continúan haciendo su función aunque te desconectes.

Pero si eres uno de los muchos que han elegido Linux como sistema operativo te habrás encontrado que no puedes ejecutar el lanzador del juego a través de wine. Pero tenemos una solución a mano, bueno, realmente dos, primero existe un excelente lanzador por línea de comandos escrito por SNy y disponible en su Web site.

La otra opción disponible, un lanzador con interfaz gráfica escrito usando mono, que es el equivalente open source del framework .NET.

El juego actualmente funciona muy bien bajo wine, con apenas unas pequeñas modificaciones en el registro de wine y el en el archivo del juego UserPreferences.ini. Los detalles de estos ajustes se pueden encontrar en la página de wine AppDB.

LOTRO
Licencia: Copyright Turbine Inc.
Precio: 45€ + 9,99$/mes o 45€ + 199$ de por vida otras modalidades de pago aquí
Web: Página Oficial
Juego: Descarga Versión de Prueba de 14 días

Lanzador
Licencia: GPL
Precio: Gratuito
Web: Página Oficial
Aplicación: Descarga

Share This Post


Aprendeclick

15 11 2007
No Gravatar

Hoy pondré un artículo para los más pequeños de la casa. Aprendeclick es una colección de programas educativos libres en castellano, que se distribuye por medio de un CD de  autoarranque. La mayoría son juegos a través de los cuales los chicos pueden aprender y reforzar conocimientos: la versión actual incluye GCompris, Childsplay y Tuxpaint.

Está basado en la distribución Debian GNU/Linux, aunque no es necesario tener previamente instalado algún sistema en especial, ya que el PC arranca desde el CD.

Está destinado a chicos de 2 a 12 años, a docentes y público en general. Es la única colección de este tipo en castellano como idioma predeterminado.
A través de los juegos incluidos los chicos aprenden y refuerzan contenidos y destrezas a la vez que se divierten. Los padres y docentes pueden aprovechar estas cualidades y quedarse tranquilos: no es necesario hacer ninguna instalación en el ordenador, los chicos trabajan en un ambiente separado e independiente por lo que no corren peligro sus configuraciones previas, luego de sacar el CD y reiniciar el PC todo vuelve a estar como antes.

Con este CD educativo, el joven podrá familiarizarse con el ordenador y sus elementos (mouse, teclado) para los más jóvenes, hasta juegos de estrategia como el ajedrez, ejercicios de lectura/escritura, matemáticas y experimentos de ciencia, así como crear dibujos y animaciones.

Gracias a iniciativas como esta, nuestros niños no solo aprenderán a usar un ordenador, sino que también aprenderán a usar software libre, que tanto miedo infunde en sus mayores.

Licencia: GPL
Precio: Gratuito
Web: Página Oficial
Imagen ISO: Descarga

Share This Post


Mumble

26 07 2007
No Gravatar


Una de las carencias más frecuentes a la hora de jugar tanto en LAN como Online si lo hacemos desde nuestra máquina Linux es sin duda el número de aplicaciones de comunicación VoIP (Voz sobre IP) que disponemos.

En Windows hay un buen número de ellas, la más famosa es sin duda Ventrilo, el cual tiene servidor para linux (como no) pero el cliente hace ya dos largos años que pone coming soon… en fin.
También hay aplicaciones como TeamSpeak que sí tienen tanto el servidor como el cliente para la plataforma del pingüino, pero está más que demostrado que no son tan buenos como Ventrilo ya que tienen un retraso (delay) que, en según que juegos, puede resultar crucial.

Aquí aparece Mumble, que sigue la misma filosofía de Ventrilo o TeamSpeak pero lo realmente bueno es que es multiplataforma y podremos decirles a nuestros amigos windowseros que hagan la prueba y que lo comparen con ventrilo.

Según sus desarrolladores, Mumble es una aplicación de chat de baja latencia y de alata calidad de sonido para ser usada en combinación con videojuegos. sus características principales son:

  • Latencia muy baja (esto hace que no se incremente el ping mientras jugamos, como pasa con TeamSpeak)
  • Filtro antiruido
  • Cancelación del eco para poder jugar con altavoces y no estar obligado a jugar con auriculares
  • Control automatizado del volumen para que todos los jugadores estén al mismo volumen
  • Audio posicional en los juegos que lo soporten (el audio viene de la dirección del personaje dentro del juego)
  • Número ilimitado de canales y de la profundidad que se deseé
  • Grupos por canal y listas de control de acceso

Como véis, las características sobrepasan incluso al mejor cliente de Windows para este efecto. Así que haced la prueba con vuestros amigos windowseros, no lo lamentarán.

Licencia: GPL
Precio: Gratuito
Web: Página Oficial
Aplicación: Descarga

Share This Post


¡Esto es perfecto!

22 05 2007
No Gravatar

Hoy no puedo hablaros de juegos, lo siento.

¡¡Estoy disfrutando muchísimo con mi gentoo box!!

Estoy sentado frente al PC con una sonrisilla bobalicona, os lo voy a enseñar…. ¡¡es una pasada amigos!!

Imagen de previsualización de YouTube

Lo increible de todo es el PC que estoy usando, un AMD a 1400 Mhz con 512MB de RAM a 266Mhz… una máquina de unos 8 años para entendernos. Se me murió el PC y me he tenido que montar un pequeño “Frankenstein” con piezas que me han prestado mis amigos hasta que me pueda permitir comprarme el siguiente PC… un Quad Core, que ahora son inasequibles para mi humilde sueldecillo.

Y le instalé un Gentoo, bueno, si os he de ser sincero era una sub-distro llamada Sabayon. Descargué la edición “mini” (es decir, en CD) y en poco más de una hora tenía un flamante gentoo linux con todo configurado, tarjetas gráficas, inhalámbricas… hasta el dichoso beryl + emerald, pijadas que a mi personalmente no me atraen, almenos por ahora, cuando corrijan bugs ya hablaremos, claro.

Pues estaba escuchando música con Amarok, y me he acordado de una aplicación que usaba con SuSE: streamtuner. Es una pequeña aplicación con la que se listan directorios de música de radio de internet. Una lástima porque van a desaparecer en breve… por eso os presento este conjunto de aplicaciones. ¡APROVECHAD ANTES DE QUE SEA DEMASIADO TARDE! ¡Los tipos de la SGAE o RIAA son el peor cáncer para los músicos! SGAE y RIAA son lo que diríamos por aquí, los camellos.

Ya sabés con streamtuner y streamripper, dos pequeñas aplicaciones escritas hace mucho tiempo ya, podéis haceros con alguna que otra canción. La música debería ser distribuida gratuitamente por internet. A los músicos se les paga por tocar, no por vender.

EDITADO: Vaya, parece que youtube no acepta formatos de video abierto como ogg… una lástima oye. En fin, nada que una pasadita de mencoder no solucione… ¡si es que amo linux!

Share This Post




Get Adobe Flash playerPlugin by wpburn.com wordpress themes