
El ODROID-N2 todavía es muy reciente, aunque ya tiene un par de meses. A muchos les gusta porque tiene un procesador y una GPU bastante rápidos, además cuenta con más memoria RAM que los anteriores modelos ODROID. Aun así, debido a que no contamos con drivers X11 para el sistema, las posibilidades del ODROID-N2 están un tanto limitadas por ahora. Quiero analizar de lo que es capaz actualmente, y hasta donde podemos llegar a la hora de ejecutar juegos en el ODROID-N2 desde un escritorio.
Situación actual
Ya hemos visto que existen imágenes de juegos por ahí, y usar Retroarch con una interfaz como EmulationStation no es gran cosa ni es nada nuevo. Lo hemos hecho antes, y no lo voy a tratar en este artículo. PPSSPP también parece funcionar bien, aunque estas son aplicaciones que se ejecutan en modo de aplicación individual, lo que significa que son las únicas aplicaciones que se ejecutan y no se pueden usar desde un escritorio (aunque se inician desde un escritorio y, por lo tanto, pueden usarse igualmente). Sin embargo, muchos usuarios quieren usar el N2 como un ordenador de escritorio, con la esperanza de tener una experiencia fluida tanto en el propio escritorio como en las aplicaciones, pero dado que el ODROID-N2 no tiene drivers de video X11, las opciones se reducen notablemente.
El N2 es bastante bueno como para sustituir a ordenador de escritorio, y su rápida CPU permite la superposición del escritorio, lo cual permite disponer de ventanas transparentes, dando al N2 la apariencia de un ordenador de escritorio más rápido. La falta de aceleración por hardware supone una notable desventaja, especialmente en el navegador web.
Aunque Chromium es muy lento, especialmente cuando reproducimos videos de YouTube, Firefox funciona ligeramente mejor, aunque ambos no tienen aceleración por hardware, de modo que no hay soporte para WebGL o desplazamiento acelerado por hardware. Aun así, con la ayuda de gl4es de @ptitSeb (un contenedor OpenGL para OpenGL ES), muchos programas se pueden ejecutar con aceleración OpenGL en modo "Pantalla completa". Esto nos permite ejecutar varios juegos que ya he compilado y configurado para los ODROIDs, incluido el ODROID-N2.
Configurando el entorno
Después de instalar el escritorio MATE con los drivers de la GPU, necesitaba instalar gl4es desde mi repositorio, aunque también instalé monolibs-odroid ya que ofrece una versión libSDL2 que admite OpenGL, que por defecto está desactivado en las versiones libSDL2 para ODROID, que normalmente usan OpenGL ES. Aún lo necesitamos para que todo funcione, así que instalaremos ambos:
$ apt install -t stretch libgl-odroid monolibs-odroidLa mayoría de las aplicaciones no se inician directamente desde el menú y deben arrancarse desde la línea de comandos, de lo contrario utilizarán el Software OpenGL de MESA o la versión SDL2 incorrecta. Por lo tanto, configuro mi entorno definiendo las siguientes variables:
export LIBGL_FB=1 export LIBGL_GL=21 export LD_LIBRARY_PATH=/usr/local/lib/monolibsAlgunos de los juegos que hemos probamos ya estaban diseñados para usar OpenGL y gl4es en primer lugar, de modo que la única diferencia para estas aplicaciones es la opción "LIBGL_FB=1", así que merece la pena poner esta variable en /etc/environment, de lo contrario quedará activada para todas las aplicaciones (requiere reiniciar). No todos los programas se pueden ejecutar con las otras dos opciones del archivo de entorno, de modo que debes omitirlas. Con esto pude iniciar la mayoría de las aplicaciones directamente desde el terminal. En muy contadas ocasiones, tuve que hacer algo más, aunque lo detallaré cuando llegue el momento.
Una cosa que observé es que todos los juegos parecen ejecutarse a unos 45 FPS. No creo que esto se deba al bajo rendimiento, probablemente esté relacionado con algún tipo de limitación de los drivers X11. Ahora, con nuestra configuración completada, veamos qué juegos podemos ejecutar.
Cendric
Cendric es un juego de rol con un ligero estilo retro. Muchos de los gráficos parecen estar dibujados a mano o por el ordenador, aunque el juego en sí no está nada mal. Utiliza X11 y OpenGL directamente, de modo que podría iniciarse prácticamente por sí sólo. Aunque la variable LIBGL_FB=1 está definida, puedes ejecutar el juego desde la línea de comandos o incluso desde el menú. El juego presenta algunos problemas gráficos con otros ODROID, aunque me he encontrado con el problema de que cuando cambias desde la vista de mapa del mundo a la vista de las mazmorras, la pantalla no se actualiza y aparece la última imagen que viste del nivel. Salte del juego con ALT + F4, reiniciar el juego y reanudarlo, y aparecerás en la nueva área a la que querías acceder. Por lo general, el juego funciona bien con los drivers, aunque el error al cambiar la vista del mundo es un poco molesto.
Dune Legacy
Este es uno de mis juegos favoritos de todos los tiempos. Dune 2, el abuelo de todos los RTS modernos (juegos de estrategia en tiempo real), Dune Legacy es una versión mejorada y optimizada del juego con mejor interfaz y opciones de control que el original.
Dune Legacy depende de SDL2 como driver gráfico, que en mi imagen ARM64 normalmente usa OpenGL ES por defecto, pero como no tenemos OpenGL ES con soporte de X11, necesitamos una versión que admita OpenGL y use gl4es. Éste funciona siempre que ejecutemos el juego con "LD_LIBRARY_PATH =/usr/local/lib/monolibs", lo que significa que es mejor iniciarlo desde la línea de comandos.
Esto, junto con la opción LIBGL_FB = 1, es suficiente para ejecutar el juego. Aparte de algunos errores de transparencia, no he observado ningún problema con el juego. Todos los menús funcionan, el juego se ejecute bien y es fluido. Es completamente jugable y se puede disfrutar bastante sobre el ODROID-N2.
EasyRPG Player
EasyRPG Player es un intérprete para juegos RPG Maker 2000 y 2003 que también requiere SDL2, de modo que debes iniciarlo desde la línea de comandos. Por lo que sé, no utiliza ningún shader, así que la aceleración por hardware realmente no es necesaria, aunque si es un requisito para iniciar el intérprete.
No hay mucho que decir al respecto, excepto que funciona bien. No he observado ningún problema que ya no estuviese presente en cualquier otro ODROID.
Friking Shark
Este juego es un remake del clásico juego de arcade Flying Shark (también conocido como Sky Shark), que fue adaptado para muchas y diferentes plataformas, como Amiga, C64 o NES. Este remake 3D utiliza OpenGL 2.0 y shaders, por lo que no es tan simple como otros juegos y tenía algunos problemas en el pasado con gl4es. Actualmente, se ejecuta magníficamente en el ODROID-N2 con gl4es y LIBGL_FB=1. Como solo se ejecuta sobre OpenGL y no necesita SDL2, se puede iniciar directamente desde el menú si configuras la variable de entorno.
Frogatto (and friends)
Este juego de plataformas resultó ser uno de los juegos más complicados de ejecutar. Creé una versión que fuera capaz de ejecutarse directamente bajo OpenGL ES/EGL/X11, pero no funcionaba en el ODROID-N2 al no contar con drivers X11 OpenGL ES.
Esta versión no se puede usar con gl4es porque fue reescrita para utilizar OpenGL ES/EGL/X11, así que recurrí a la versión de Debian. Solo necesita SDL 1.2 así como OpenGL, y debe iniciarse con LIBGL_FB y LD_LIBRARY_PATH. Aunque este método funciona, saca a la luz otro problema que solucioné con mi propia versión del juego: sólo se inicia con una resolución de 800x600 y esto no se puede configurar. Por lo tanto, la pantalla se ve bastante mal a menos que también cambies la resolución de tu ODROID a 800x600. Aun así, el juego funciona bien a pesar de estos problemas gráficos.
Gigalomania
Este remake de MegaLoMania es un juego de estrategia que me encantaba en Amiga, utiliza SDL2 para renderizar sus gráficos, por lo que también necesita LIBGL_FB y LD_LIBRARY_PATH. El juego no hace nada sofisticado con los gráficos, así que debería funcionar bien.
GZDoom
GZDoom es un motor que te permite ejecutar juegos basados en el motor Doom. Hay toneladas de juegos que incluso se publican hoy en día que llevan el motor Doom a sus límites y más allá. Esta versión en particular usa OpenGL para optimizar gráficos y añade más efectos de iluminación, niebla, etc. Todo debe compilarse, de modo que tan pronto como tengas LIBGL_FB configurado, podrás iniciarlo desde el menú o desde el terminal que desee.
Hedgewars
Hedgewars fue uno de los primeros juegos que probé con este método y llego a funcionar bastante bien. Este clon de Worms es muy divertido y debería funcionar perfectamente en tu ODROID-N2 con gl4es. Pero requiere tanto LIBGL_FB como LD_LIBRARY_PATH. Asegúrate de configurar el juego para usar el modo de pantalla completa.
Naev
Este fue un poco complicado, ya que el juego se inicia sin un archivo de configuración y en modo ventana, aunque debe controlarse con el ratón y el teclado, lo que hace que sea muy difícil de interactuar al principio.
“Afortunadamente” la ventana del juego empezó a parpadear de fondo cuando inicié el juego por primera vez, de modo que pude mover el marco de la ventana a la esquina inferior izquierda donde se muestra la imagen del juego. Después de hacer eso, el menú se volvió más amigable y pude configurar la pantalla para usar el modo de pantalla completa en 1080p, tras lo cual el juego funcionó perfectamente.
El juego solo usa SDL 1.2 y OpenGL que ya estaba vinculado correctamente, de modo que debería poder ejecutarse directamente con solo LIBGL_FB desde el menú.
Neverball / Neverputt
Ambos juegos del repositorio de Debian funcionan bien, aunque requieren LIBGL_FB y LD_LIBRARY_PATH, ya que utilizan SDL2 y OpenGL para el renderizado, por lo que es más fácil iniciarlos desde la línea de comandos. Después de ello los juegos debería funcionar sin problemas.
OpenXCom
Este es uno de mis juegos favoritos de todos los tiempos. Un juego táctico basado en turnos con gestión de recursos y estrategia. Tiene un montón de opciones y es compatible con el original UFO Enemy Unknown y Terror de los juegos Deep. El juego utiliza SDL 1.2 y OpenGL, que ya está vinculado correctamente, por lo que debería funcionar simplemente iniciándolo desde el menú una vez que configures LIBGL_FB.
Este juego es un poco confuso: aunque es el único que se ejecuta a 60 FPS, en este caso utiliza el renderizado por software. Si activo OpenGL para el renderizado, el juego se bloquea, de modo que los sombreadores no funciona, aunque funcionan en cierta medida en otras plataformas. Aun así, el juego es completamente jugable a pesar de que solo tira de software aportando una experiencia nostálgica, aunque moderna.
RVGL (ReVolt)
Este fue un poco más complicado de ponerlo a trabajar. Tiene diferentes backends que permiten cambiar entre OpenGL y OpenGL ES, además de configurar si quieres usar shaders o no. Puede definir esto en un archivo de configuración, pero el archivo de configuración solo se crea si cambias algo, lo que significa que debes poder iniciar el juego para se cree el archivo de configuración, pero no puedes iniciar el juego a menos que tenga la configuración correcta, lo que cual complica las cosas bastante. Yo copié la configuración de mi ODROID XU3 y cambié /home/odroid/.rvgl/profiles/rvgl.ini:
GLProfile = 1 Shaders = 0 ScreenWidth = 1920 ScreenHight = 1080Este juego también requiere que utilicemos, además de LIBGL_FB y LD_LIBRARY_PATH, la opción LIBGL_GL=21, que fija gl4es en modo de compatibilidad OpenGL 2.1, de lo contrario, el juego se bloqueará tras aparecer el primer logotipo. Después de todos estos cambios, el juego funciona estupendamente.
SuperTux 2
Esta versión de Mario para Linux, si se instala desde mi repositorio tal y como se describe en https://forum.odroid.com/viewtopic.php?t=5908, debería aparecer vinculada a las librerías correctas, de modo que sólo es necesario LIBGL_FB para iniciar el juego. Es posible que quieras editar /home/odroid/.local/share/supertux2/config y activar la pantalla completa #t y configurar las dimensiones correctas de la pantalla.
SuperTuxKart
Este clon de Mario Kart de Linux no fue fácil de ejecutar y presenta algunos problemas aquí y allá. En primer lugar, la versión de mi repositorio fue creada para OpenGL ES y no funciona con el ODROID-N2, pero la versión de Debian Stretch funciona ya fue diseñada para OpenGL. Requiere LIBGL_FB y LD_LIBRARY_PATH para funcionar, aunque normalmente necesitaría OpenGL 3.1 o superior, que no es compatible con gl4es. Por lo tanto, nos encontramos ante un modo heredado alternativo, que se ejecuta en OpenGL 1.x sin sombreadores. Tiene gráficos muy reducidos, sin transparencia ni reflejos, y creo que algunos elementos ni siquiera se muestran para nada. Aún así, el juego funciona y es bastante rápido.
VICE
VICE es el Versatile Commodore Emulator. Dado que utiliza SDL2, requiere tanto LIBGL_FB como LD_LIBRARY_PATH. Una vez iniciado el emulador, puedes abrir la pantalla de opciones con F12 y activar el modo de pantalla completa, tras lo cual la imagen debería verse normal y podrás ejecutar tus juegos favoritos de Commodore.
Podría ejecutar incluso más juegos como Witchblast o Yquake 2 (remake de Quake 2 OpenGL), que funcionan bien, pero presentas algunos problemas (Yquake funcionó bastante bien, pero es más lento de lo esperado), y hay algunos juegos que no he tenido tiempo de probar aún.
Conclusión
Por supuesto, no todos los juegos que he probado ha llegado a funcionar, hubo algunos que no pude iniciar. CGMadness, por ejemplo, se bloqueó cuando empecé a jugar, a pesar de que el menú principal funcionaba. CorsixTH (Theme Hospital) no actualizaba la pantalla correctamente pudiendo leer cualquier item en pantalla. OpenClaw no se inició para nada, no logré entender por qué. Algunos juegos funcionaban, pero tenían problemas gráficos, como Witchblast, pero por lo general me sorprendió la cantidad de juegos que realmente llegaron a ejecutarse. Algunos de estos juegos podrían incluso ponerse en segundo plano simplemente presionando alt + tab para volver al escritorio, que funciona bien en algunos juegos que admitían esta opción. Todo esto ha sido posible gracias al impresionante driver gl4es de @ptitSeb, que nos permite ejecutar estas aplicaciones desde un escritorio. Puede que no sea capaz de ejecutar todo lo que queramos desde un escritorio, pero recurriendo a algunos trucos, una gran cantidad de aplicaciones parecen poder ejecutarse en el N2, muchas de las cuales no están disponibles bajo fbdev y requieren un entorno X11 funcional.
Be the first to comment