Menu
in

Creando un emulador RISC-V… para jugar Doom

Rip and tear… en arquitecturas alternativas

Doom RISC-V

El mundo informático está gobernado por dos arquitecturas: x86 y ARM. Ambas son arquitecturas «cerradas», sin embargo, existe una alternativa gratuita y open source en la forma de RISC-V, diseñada por la Universidad de California en Berkeley. El youtuber CNLohr ha pasado las últimas semanas trabajando un pequeño emulador RISC-V capaz de ejecutar Linux, pero decidió dar un paso extra… e inevitablemente llegó al Doom.


El canal ExplainingComputers hizo un excelente trabajo al presentar las características principales de la arquitectura RISC-V. La idea de una solución gratuita, abierta y flexible es muy atractiva, pero sus aplicaciones más importantes se encuentran en el espacio integrado, como el chip de seguridad Titan M2 hecho por Google, o el famoso ESP32 de Espressif Systems.

Al mismo tiempo, RISC-V es muy popular en entornos de investigación. De hecho, muchos expertos han creado emuladores RISC-V con varios niveles de complejidad, pero el youtuber CNLohr, a quien recordamos por sus mapas 3D de señales WiFi, decidió crear una versión con la capacidad de ejecutar Linux. Ese fue su primer objetivo:


Doom en un emulador RISC-V


El vídeo original tiene 20 minutos repletos de detalles técnicos que definitivamente vale la pena repasar, pero durante una semana, la Web sólo hizo una pregunta: «¿Puede correr Doom?»

CNLohr explica que en su estado original, la respuesta es no. Doom necesita ejecutar operaciones de escritura sobre un dispositivo gráfico de salida, cosa que el emulador no tiene. Sin embargo, con una serie de ajustes adicionales, el marine comenzó a reventar demonios otra vez. Seis años atrás, CNLohr preparó un proyecto especial llamado embeddedDoom, un build simple y compacto, altamente integrado, y con requerimientos de memoria muy bajos. Su estrategia se basó en realizar un port de embeddedDoom, y presentar los gráficos en toda la gloria de 160×50 píxeles usando códigos ANSI.



El resto es una verdadera cacería de bugs, una ejecución inicial, más errores, y finalmente, Doom en un emulador RISC-V a 25 FPS. Las mejoras de rendimiento probablemente lleguen con trabajo extra (y no es que Doom necesite demasiado a esta altura)… pero esa es otra historia.


Escrito por Lisandro Pardo

Leave a Reply