Los sistemas operativos son herramientas fundamentales para la computación de propósito general, pero a menudo pueden convertirse en un obstáculo innecesario. Consumen ciclos de procesador y memoria RAM que, para un sistema de juegos, resultan redundantes. La NES y sus sucesoras demostraron durante décadas que es posible crear consolas potentes sin necesidad de un sistema operativo complejo.

[Inkbox] ha querido rescatar esa filosofía al programar juegos bare-metal para una Raspberry Pi 3 que permanecía guardada desde 2016. Los juegos se cargan mediante cartuchos y se ejecutan directamente en assembly, tal como fue concebido originalmente. Además, la consola posee una forma de dodecaedro, una elección estética curiosa dado que el nombre GameCube ya estaba ocupado.

El enlace de GitHub mencionado no cuenta con documentación detallada al momento de escribir este artículo, por lo que es necesario ver el video para obtener todos los detalles técnicos. Si bien el factor de forma dodecaédrico no parece ideal para transportarlo en un bolso, como consola portátil resulta sorprendentemente cómoda de sostener. Dos de las caras del dodecaedro albergan media docena de botones cada una, los cuales están conectados a los pines GPIO de la Raspberry Pi mediante un disparador Schmitt para evitar el rebote del hardware. Al igual que las consolas clásicas, utiliza cartuchos, los cuales fueron adaptados a partir de tarjetas SD montadas en PCBs grandes, siguiendo el diseño de un proyecto destacado anteriormente.

Todo esto suena fascinante, pero lo que realmente destaca es la programación en assembly; se recomienda avanzar hasta el minuto siete del video para observar este proceso. Aunque el video se centra en el ensamblaje físico y no es un tutorial exhaustivo de programación ARM, sirve como una excelente introducción para los interesados. Lamentablemente, no se muestra el código línea por línea del juego PacMan desarrollado, pero el autor lo ha incluido en el repositorio para su análisis. El repositorio también contiene los archivos STL por si alguien desea imprimir su propio dodecaedro.

El creador también ha preparado un cartucho con RetroPie cargado de emuladores, lo cual probablemente sea el uso principal de esta GameDodecahedron. Aun así, siempre mantendremos cierta debilidad por el código en assembly y los proyectos que lo utilizan, ya sea en arquitecturas ARM, el clásico 6502, la arquitectura de código abierto RISC-V, o incluso el complejo conjunto de instrucciones x86.

Vía CNX Software.