miércoles, 23 de noviembre de 2011

Cómo jugar juegos Windows en Linux.

Para poder correr tus juegos Windows vamos a precisar de la ayuda de varias herramientas: WINE, Dx Wine, Winetricks y Lutris.

En este tuto vamos a ver cómo instalar y configurar cada una de ellas.

Introducción a WINE.

Como todos saben, Linux no soporta archivos .EXE. Entonces, ¿cómo demonios se pueden ejecutar los programas de Windows? Bueno, unos genios hicieron un programa llamado WINE, que significa Wine is not an emulator, que es una de las formas de correr un programa de Windows bajo Linux.
Pero, si no es emulador, ¿cómo hace?

La razón por la cual Wine no es un emulador es que los emuladores tienden a duplicar el entorno completo en el que un programa vive, incluyendo la simulación de una arquitectura de microprocesador determinada. Wine, por el contrario, implementa lo que podría ser llamado una capa de compatibilidad, la cual provee alternativas a las bibliotecas de Windows.

¿Eso es bueno? Sí y No. Vamos a decir un par de verdades...


Mejor uso de la memoria RAM.

Windows (en cualquiera de sus versiones) tiene cargados en la memoria RAM una cantidad importante de programas que en Linux no suelen cargarse (léase, el antivirus, antimalware, etc.). WINE, no hace eso. Por consiguiente, consume menos recursos que Windows.


Direct X.

Direct X es la API más utilizada en los juegos Windows y es exclusiva de este sistema operativo. Linux, por su parte, utiliza OpenGL.
Entonces, ¿cómo hace Linux para correr juegos que precisan de DirectX si sólo usa OpenGL? Ahí es donde entra la magia de Wine: hace que OpenGL emule a DirectX.

¿El resultado? Obviamente, al emular, perdés rendimiento.

¿Corren mejor los juegos en Windows? Te diría que depende del juego. Sin embargo, la respuesta es SI, justamente por la emulacion de Direct X. Se podría decir que los juegos basados en Direct X 7 funcionan igual en Windows que Linux, pero ya con DX9 en adelante la cosa cambia mucho: aproximadamente, un 20% menos de rendimiento.


Games for Windows.

A Wine le cuesta enormemente correr los juegos que traen este sistema. Por eso, al día de hoy, no corre por ejemplo juegos como Street Fighter IV, Resident Evil 5 o Gear of Wars.


Un Windows diferente por cada juego.

Una ventaja que tiene WINE es que si querés podés hacer que un juego viejo corra en Windows 95, y uno nuevo en Windows 7.

Y no solo terminan ahi las opciones, sino que también permite la instalación de otros programas, como por ejemplo, el framework, directx, y todo lo que se te ocurra.

Y es ahí en donde WINE le saca el jugo a sus funciones ya que, por ejemplo, hay juegos que andan bien con un Windows, con x programas instalados, etc.

Esto también significa que si usás una configuracion de WINE general, hay juegos que van a funcionar mejor y otros peor. Por eso, para correr juegos conviene correr WINE usando un programa llamado PlayOnLinux, que le dice a WINE que corra un Windows configurado a la perfeccion para ese juego. ¿Qué te parece?


Los drivers de video de Windows son mejores que los de Linux

Todos los tests indican que al correr, por ejemplo, Open Arena, tanto en  Windows XP como en Linux, en Windows tira más cuadros. O sea, en Windows la pantalla se refresca más rápido que en Linux, lo que significa que aprovecha mejor la placa de video.

Esto no pasa porque el juego no sea nativo o por culpa de WINE u otro emulador. Las pruebas se han realizado corriendo los respectivos ejecutables nativos para cada sistema operativo. ¿Entonces? La respuesta es que, eliminados todos los otros factores, sólo queda decir que los drivers de las placas de video para Windows son mejores (desde un punto de vista técnico) que los de Linux.


Guía de Wine.

Recomiendo instalar la versión beta de Wine, porque en muchos casos tiene mejoras que no están en las versiones estables, y más en la última versión 1.3.28 que funciona espectacular y con un montón de mejoras. Una vez terminado, deberías tener Wine y Winetricks instalados. También tenés la posibilidad de instalar Lutris, PlayOnLinux y Vineyard que pueden llegar a ser bastante útiles, pero eso lo dejamos para más adelante.


Direct X.

Lo primero que tenemos que hacer, es instalar DirectX.

Dx Wine es la mejor forma de instalar DirectX.

Bajá Dx Wine (el maravilloso programa hecho por kuboode) que instala fácilmente DirectX 9c en Wine. Es fantástico e incluso te da la opción de tener Dxdiag.


Tenés la opción de instalar DX10 y DX11, todo depende de si las placas de video que tengas lo soportan o no.

DxDiag, ideal para saber si todo el hardware está reconocido en Wine.


Visual Basic, .Net, etc.

Luego, con Winetricks podés instalar los siguientes programas que, si bien no son obligatorios, pueden ser necesarios para ejecutar algún juego.

Visual Basic:
- vcrun 2005 (Visual C++ 2005)
- vcrun 2008 (Visual C++ 2008)
- vcrun 2010 (Visual C++ 2010)

Framework:
- dotnet20 (Framework NET 2.0)
- dotnet30 (Framework NET 3.0)
- dotnet35 (Framework NET 3.5)
- dotnet40 (Framework NET 4). Este no aparece en Winetricks. Se puede instalar manualmente.

Hay muchísimas cosas más para instalar. Revisá bien las opciones que da Winetricks. Lo necesario depende de tu máquina y de las aplicaciones que quieras usar. No obstante, lo anterior se podría decir que es lo mínimo e indispensable.

Winetricks


Configurar las opciones de Wine.

Abrí Winetricks y seleccioná "Select the default wineprefix" y "Change settings". Para mí, la mejor configuración es esta:

- ddr=opengl
- dsoundhw=Emulation
- glsl=disabled
- multisampling=disabled
- mwo=enabled
- native_mdac
- npm=repack
- orm=blackbuffer
- psm=enabled
- rtlm=auto
- sound=alsa
- strictdrawordening=disabled
- vd=off

De estas opciones, hay 2 que mejoran el rendimiento

- OffscreenRenderingMode, al poner la opción FM (Framebuffer) tira varios cuadros, se congela, y vuelve a hacer lo mismo una y otra vez. Así es injugable cualquier juego. Por eso es recomendable "backbuffer".

- Direct Sound: Aceleración Hardware, cambiá Completa por Emulación. Esto aumenta mucho el rendimiento y la compatibilidad con respecto a "completa".

También, para ganar rendimiento, podés deshabilitar GLSL y MultiSampling, pero perdés calidad gráfica.

Si WINE, aún después de todo esto, no detecta la placa de video, hacé esto:

Una vez que hayas cambiado las opciones, abrí el directorio .wine en tu carpeta de usuario, y luego abrí un archivo llamado “user.reg” (allí se van almacenando las claves de registro que va creando el usuario).

Ahí buscá [SoftwareWineDirect3D] y al final agregá:

"VideoDescription"="Ingresar el modelo de placa de video con comillas"
"VideoDriver"="nv4_disp.dll"
"VideoMemorySize"="Ingresar la memoria de la placa de video"

En mi caso, queda así:

[SoftwareWineDirect3D] 1318967087
"DirectDrawRenderer"="opengl"
"Multisampling"="disabled"
"NonPower2Mode"="repack"
"OffscreenRenderingMode"="backbuffer"
"PixelShaderMode"="enabled"
"RenderTargetLockMode"="auto"
"StrictDrawOrdering"="disabled"
"UseGLSL"="disabled"
"VideoDescription"="GeForce 7025 / nForce 630a/PCI/SSE2/3DNOW!"
"VideoDriver"="nv4_disp.dll"
"VideoMemorySize"="512"

¡Listo! ¡WINE está preparado para la guerra!

Ya usamos WIne, Dx Wine y Winetricks. Ahora vamos a potenciar todo esto con un programa llamado Lutris.


Introducción a Lutris


Lutris con algunos de mis mayores vicios...

Lutris es un programa que agrupa todos los juegos en una sola plataforma, algo similar a Steam.

Tiene como característica soportar CASI TODO, sino miren la lista de cosas que se banca:

- Juegos nativos de Linux.
- Juegos nativos de Windows.
- Juegos de MAME.
- Amiga 500, 600, 1200.
- Atari 2600, 800, 800XL, 130XE, 5200, ST, STE, TT, Lynx.
- Bandai WonderSwan, WonderSwan Color.
- Juegos online de los navegadores, como Quake Live, Minecraft y todos los flash.
- Commmodore VIC-20, C64, C128, CBM-II, PLUS/4.
- LucasArt SCUMM (Monkey Island, Maniac Mansion, etc).
- Magnavox Odyssey², Videopac+.
- Mattel Intellivision.
- Microsoft MSX, MS-DOS.
- NEC PC-Engine Turbographx 16, Supergraphx, PC-FX.
- Nintendo NES, SNES, Game Boy, Game Boy Advance, Gamecube y Wii.
- Sega Master Sytem, Game Gear, Genesis, Dreamcast.
- SNK Neo Geo, Neo Geo Pocket.
- Sony Playstation.
- Z-Machine.

Pero lo mejor de todo, es que por cada juego te da muchas opciones, por lo que es MAS QUE RECOMENDABLE que lo uses, ya que hay muchas opciones de Wine, que según el juego podés cambiar, sin afectar ni a Wine ni a los demás juegos. Es como PlayOnLinux, pero Lutris me parece mejor, porque no sólo te da acceso a juegos de Windows, sino a una cantidad enorme de emuladores.


Para terminar, decir que no hay mejoras sustantivas en Lubuntu y Xubuntu. Uno podría pensar que al utilizar menos memoria RAM, ello impactaría en el rendimiento de WINE, pero no. Es de suponer que esto sucede porque Wine se maneja utilizando más que nada CPU y placa de video.

No hay comentarios:

Publicar un comentario