Aprende a ejecutar aplicaciones de Windows en Android con Winlator
¿Hay alguna vía fácil para hacer funcionar software compilado para Windows en Android? Eso es precisamente lo que voy a enseñar a hacer hoy con Winlator, una aplicación que permite crear contenedores de Wine para ejecutar software dirigido al sistema de Microsoft, incluso videojuegos tridimensionales como Fallout 3 y Mass Effect 2 según se puede ver en vídeos publicados por el desarrollador principal.
Winlator puede sonar a algunos usuarios de Linux debido a que conceptualmente se parece a Bottles, una aplicación que permite crear “botellas” que contienen una versión de Wine o un derivado de este como Proton junto a una configuración particular y personalizada. Esto permite crear varias botellas para distintos propósitos.
Winlator, por su parte, permite crear contenedores en lugar de “botellas”, pero la lógica es similar a la de Bottles. El usuario puede establecer en cada contenedor una gran cantidad de configuraciones y parámetros, entre ellos la resolución de la pantalla, el driver gráfico, el traductor de DirectX, el driver de audio, los núcleos del procesador utilizados, el tema del escritorio con su fondo, el soporte para la ejecución de órdenes en multiproceso (CSMT), la cantidad de VRAM y el nombre de la gráfica para imitar diversos modelos de NVIDIA y uno de Intel, entre otras cosas.
Wine es un software extremadamente complejo como para ir profundizando en él, así que en lo que respecta a Winlator me limitaré a mencionar los aspectos superficiales y a enseñar cómo configurar un contenedor de manera básica, lo cual tampoco es que sea tan difícil. Con un poco de suerte se puede usar Android para ejecutar ciertos videojuegos tridimensionales que no son especialmente exigentes. ¿Quieres jugar a Fallout: New Vegas en el autobús? Si profundizas en este artículo, posiblemente puedas hacerlo.
Partes básicas de Winlator
Winlator es una aplicación de código abierto que está publicada bajo la permisiva licencia MIT. Como ya he dicho, se basa en Wine, sin embargo, para ejecutar aplicaciones compiladas para x86 (Intel y AMD) emplea Box86 como emulador para el software de 32-bit y Box64 para la emulación de la arquitectura x86 de 64-bit. Como el móvil o la tablet emplea un procesador ARM, la emulación de la arquitectura x86 se vuelve imprescindible si se quiere ejecutar las aplicaciones para Windows, que en la actualidad sigue teniendo a x86 como la principal arquitectura que soporta.
Winlator toma como base el sistema de ficheros raíz de Ubuntu; PRoot, una implementación en el espacio de usuario de chroot
, mount --bind
y binfmt_misc
; Mesa, que es la pila gráfica que se encarga de proporcionar los soportes de OpenGL, Vulkan y OpenCL en Linux y sistemas BSD; DXVK, que se encarga de traducir las versiones 9, 10 y 11 de Direct3D a Vulkan y es uno de los componentes nucleares de Proton; D8VK, que es un traductor de instrucciones Direct3D 8 a Vulkan; además de CNC DDraw, otro traductor centrado en la compatibilidad con juegos antiguos.
La aplicación no se encuentra en la Play Store de Google, sino que debe ser instalada mediante carga lateral (sideloading) a partir de la descarga de su instalador APK, que está disponible en la sección de lanzamientos de su repositorio de GitHub. Esto hace que el usuario tenga que otorgar permisos para poder instalarla.
En la actualidad se trata de un proyecto en desarrollo al que le queda bastante por mejorar. Esto no sorprende si vemos que muchos proyectos de software libre y de código abierto son desarrollados y mantenidos por muy pocas personas y además en sus tiempos libres, lo que obviamente reduce la velocidad de desarrollo sobre todo en proyectos que entrañan complejidad o que son de gran tamaño.
En mi caso personal, he probado un contenedor con su configuración predeterminada para ver si era capaz de instalar Deus Ex GOTY Editon procedente de GOG. El juego ha arrancado y he podido iniciar la partida, lo cual no está nada mal. Mi móvil es un Xiaomi POCO X3 Pro con la última compilación de LineageOS 20.
Instalando Winlator en Android
Instalar Winlator es sencillo, pero no es un proceso que se haga a través de la vía estándar que se suele seguir con los sistemas Android que vienen preinstalados en los smartphones y las tablets.
Si se tiene una versión reciente de Android, el proceso para permitir la instalación de aplicaciones de origen desconocido es Ajustes > Aplicaciones > Aplicaciones con accesos especiales > Instalar aplicaciones desconocidas. Una vez ahí hay que dirigirse al navegador web utilizado por el usuario (Firefox en mi caso) y activar la opción “Autorizar de esta fuente”.
Tras conceder el permiso, cosa que también se puede hacer en el proceso de instalación de la aplicación, hay que descargar el APK desde la sección de lanzamientos del repositorio GitHub de Winlator y pulsar sobre él para iniciar la instalación. El proceso es extremadamente sencillo y no tiene complicación alguna.
Tras completar la instalación, Winlator puede ser iniciada como cualquier otra aplicación de Android. En el primer inicio pedirá permisos para acceder a las fotos, los vídeos, la música y otros ficheros presentes en el dispositivo. Aquí lo conveniente es conceder si se quiere utilizar la aplicación con normalidad.
Empezando a usar Winlator (aspectos básicos)
Como suele pasar con todo lo relacionado con Wine, el tema da para una extensa enciclopedia, así que aquí me centraré en los aspectos más básicos de Winlator. Tras iniciar la aplicación, el usuario se encontrará con una interfaz sencilla cuya pantalla principal muestra los contenedores de Wine que haya configurado. Como es lógico, la lista en un principio está vacía.
La interfaz de Winlator es bastante estándar, con una configuración a la que se accede pulsando sobre la lista de líneas que hay en la esquina superior izquierda y una creación de contenedores que se inicia haciendo lo mismo sobre el más (+) que aparece en la esquina superior derecha. En primer lugar vamos a centrarnos en un par de aspectos de la configuración.
En la sección “Settings” de la configuración, el usuario puede añadir otras versiones de Wine manualmente, establecer las versiones de Box86 y Box64 y el preajuste de ambos emuladores. Si no se sabe qué se está modificando y para qué, lo recomendable es dejar lo que está establecido por defecto para evitar configuraciones erróneas o incompatibles.
La otra sección interesante es Input Controls, desde donde es posible configurar controles táctiles que resultan útiles principalmente para videojuegos. Winlator proporciona algunos perfiles preestablecidos y permite al usuario crear los suyos para que pueda adaptar la experiencia a los videojuegos que pretende utilizar. También es posible importar y exportar configuraciones para reutilizarlas en otros dispositivos y conservarlas en caso de cambiar el sistema operativo del móvil por una ROM.
Configurando el primer contenedor
Configurar un contenedor en Winlator es relativamente sencillo. El proceso se inicia pulsando sobre el botón más (+) situado en la esquina superior derecha de la pantalla principal de la aplicación.
Tras pulsar el botón más, aparecerá la configuración del contenedor. Aquí se puede establecer un nombre, la resolución de la pantalla de Wine, el driver gráfico, el traductor de instrucciones Direct3D (DX Wrapper) y el driver de audio. También se puede establecer la afinidad del procesador, algunas configuraciones básicas de Wine como el tema y el fondo, componentes de Windows que son ejecutados en Wine, las variables del entorno, los medios a los que se puede acceder desde el contenedor y hay una opción para mostrar la tasa de fotogramas por segundo.
Como vemos, hay muchas opciones, así que voy a mencionar las que en teoría son las más relevantes:
- Resolución de la pantalla (Screen Size): Aquí nada que el usuario común no haya modificado alguna vez en su vida. Este aspecto no es tan relevante para la compatibilidad, pero una mayor resolución supone una mayor carga y una menor autonomía, así que es un aspecto a tener en cuenta.
- El renderizador de instrucciones DirectX (DX Wrapper): Las opciones son WineD3D, que traduce instrucciones Direct3D a OpenGL; DXVK, que traduce las versiones 9, 10 y 11 de Direct3D a Vulkan; D8VK, que traduce las instrucciones Direct3D 8 a Vulkan; y CNC DDraw, que es una reimlpementación de la API DirectDraw sobre OpenGL que mejora la compatibilidad con los juegos clásicos. Aquí la mejor opción sobre el papel es DXVK, pero esto depende del software que se pretenda ejecutar. DXVK ha demostrado su valía más que de sobra a través de Proton, la capa de compatibilidad desarrollada por Valve para facilitar la ejecución de videojuegos de Windows sobre Linux.
- GPU Name: Se trata de un parámetro que permite imitar el modelo de una gráfica en concreto. Por defecto esto se establece en la GeForce 9800GT, pero el usuario puede elegir entre otros modelos.
- Cantidad de VRAM (Video Memory Size): Permite establecer la cantidad de VRAM, la cual obviamente es tomada de la RAM del dispositivo móvil utilizado. Los 2GB establecidos de manera predeterminada deberían ser más que suficientes, más viendo que Winlator no apunta a ejecutar videojuegos de última generación.
Tras configurar el contenedor de Wine, hay que pulsar sobre el botón de verificación que aparece en la esquina inferior derecha.
Poniendo en marcha el contenedor de Wine en Winlator
El contenedor creado puede ser puesto en funcionamiento pulsando primero en los tres puntos verticales que hay a la derecha de su nombre y luego sobre “Run”.
Después de esperar un poco, aparecerá el escritorio del contenedor de Winlator, el cual se basa en Wine. El explorador de archivos se abrirá automáticamente y el usuario tendrá a su disposición el típico menú de inicio de Windows, a partir del cual puede acceder a la herramienta de Ejecutar (Run); a algunas secciones del panel de control como añadir y quitar programas, la gestión de los mandos para videojuegos y la configuración de Internet; a las herramientas de CMD, Mi PC (Computer), el editor del registro, el administrador de tareas, la configuración de Wine y el instalador de Mono para Wine; además de las aplicaciones 7-Zip, Internet Explorer, el Bloc de notas, Wordpad y el Buscaminas.
Un punto que hay que tener en cuenta es que el uso del ratón responde a la lógica del PC y no a una pantalla táctil. El usuario tendrá que guiar el cursor, el cual puede ser movido sin necesidad de poner el dedo sobre él. El clic con el botón principal del ratón requiere de un toque con un dedo y el clic con el botón secundario del ratón se hace igual, pero con dos dedos. El manejo en un principio no es muy intuitivo, pero con un poco de práctica uno empieza adaptarse.
Para cerrar un contenedor de Winlator hay que pulsar sobre el botón táctil de atrás en Android (o realizar el gesto equivalente) y seleccionar “Exit” en el menú que aparece en el lateral izquierdo. Desde aquí se puede activar el teclado virtual de la aplicación, accionar los controles de entradas virtuales que están orientados principalmente a videojuegos, la opción de hacer que el escritorio de Wine se vea a pantalla completa, el administrador de tareas de Winlator (que no el de Wine) y una lupa que permite hacer zoom.
A nivel de interfaz tenemos en esencia un Windows de los años 90 del siglo pasado, mientras que por lo demás no hay nada que no esté presente en Wine. A partir de aquí, y salvando las posibilidades a la hora de configurar Wine, Box86 y Box64, no hay nada que no sea similar a lo que uno vería en un sistema de Microsoft.
Instalando una aplicación en un contenedor de Winlator
Con el contenedor configurado, ya se puede probar a instalar prácticamente cualquier aplicación que haya para Windows, siempre y cuando se tengan en cuenta las limitaciones de la máquina física y de los componentes de software empleados para tener compatibilidad. Aprovecho para recordar que los resultados no están garantizados y desde MuyComputer no nos hacemos responsables de los posibles daños en el dispositivo que pueda provocar el uso de Winlator.
En este caso, y como dije al principio, he decidido instalar el juego Deus Ex GOTY Edition procedente de Good Old Games (GOG). La ausencia de DRM y la posibilidad de obtener el instalador facilita mucho esta demostración.
Si no se han configurado unidades adicionales para el contenedor que den acceso a otras carpetas presentes en el dispositivo, lo suyo es colocar los instaladores en el carpeta de Descargas (Downloads), la cual puede ser accedida desde el contenedor realizando la siguiente ruta en el explorador de archivos de Wine: Unidad Z: > storage > emulated > 0 > Download.
Aquí hay que dirigir el cursor del ratón hasta situarlo encima del instalador y hacer un doble clic con un dedo, gesto que simulará el doble clic con el botón principal del ratón. El instalador debería ejecutarse y permitir hacer la instalación siguiendo la vía estándar en Windows.
Tras completarse el proceso de instalación, se sugiere al usuario iniciar el juego, que además ya tendría que tener su entrada en el menú de inicio de Wine como si de otra aplicación de Windows se tratara. En mi caso he decidido seguir la configuración por defecto para iniciar Deus Ex GOTY Edition y he logrado ponerlo en funcionamiento, aunque el desempeño es algo mejorable y no se ajusta a la pantalla. Eso último se puede corregir modificando la resolución a la que funciona el juego.
Una vez iniciada la partida, los controles pueden activarse pulsando primero sobre el botón táctil de atrás en Android o haciendo el gesto equivalente y dirigiéndose luego a “Input Controls”. Desde ahí se puede seleccionar el control que se quiera utilizar, si bien hay que tener en cuenta que muchos juegos de PC no soportan entradas mediante controlador, por lo que necesitan de una configuración personalizada de los controles basándose en teclado. En mi caso y como atajo he decidido seleccionar los controles para juegos de estrategia en tiempo real, que si bien no se ajustan al juego, al menos permiten superponer controles en la pantalla y realizar algunas acciones.
Una cosa sencilla que puede hacer el usuario es cambiar la versión de Windows “emulada” dirigiéndose al menú de Inicio (Start) > Herramientas del sistema (System Tools) > Wine Configuration. Desde ahí es posible seleccionar la versión del sistema de Microsoft, que por defecto está establecida en Windows 7. La configuración permite retroceder hasta Windows XP o establecer Windows 10.
Conclusión
Y hasta aquí lo más básico de Winlator, una aplicación que en realidad atesora bastante más debido a Wine, que si bien es una de las mayores obras de ingeniería inversa del software libre, no se puede negar que es un componente bastante complejo y cuya configuración avanzada queda fuera del alcance de los perfiles de usuario con menos conocimientos. Cambiando de contexto, aquí es donde entra Proton, que se encarga de preconfigurar todo lo necesario para poder ejecutar videojuegos de Windows sobre Linux con las menores complicaciones posibles.
Por lo demás, Winlator es una aplicación interesante que, con un poco de suerte, abre la puerta a convertir tu smartphone en un dispositivo capaz de ejecutar videojuegos compilados para Windows, pudiendo así asemejarse un poco a la Steam Deck, que por cierto se apoya fuertemente en Proton, o a la Nintendo Switch, que ha llegado a recibir ports de juegos tan potentes como The Elder Scrolls V: Skyrim y The Witcher 3.
Si se logra convertir el smartphone en un improvisado PC para jugar con Winlator, mi recomendación es moderar la configuración gráfica para aumentar la autonomía ofrecida por la batería.
Imagen de portada creada con inteligencia artificial.