Cada vez son más los creadores de software y hardware que se animan a publicar sus obras bajo licencia GNU. Uzebox es una consola de videojuegos, basada en el modesto microcontrolador ATmega644 de 8 bits, que se las trae. Nada tiene que envidiarle a muchas de las máquinas que llenaron nuestras horas hace pocos años atrás. ¡Y tú puedes construirla!
Técnicamente hablando, la Uzebox es una consola de videojuegos hecha en casa. Su autor cuenta que hace tiempo se encontró en la red un par de proyectos basados en microcontroladores que permitían generar imágenes de video. Concretamente, el juego Pong, desarrollado por Rickard Gunee, fue el que le llamó la atención. ¿Por qué? Solo utilizaba con un PIC y algunos resistores para generar una imagen de vídeo monocromática.
A primera vista, parece casi imposible que un pequeño microcontrolador de 8 bits, funcionando a unos pocos MHz, pueda lidiar (con éxito) con la generación de video, sonido y encima disponer del suficiente "tiempo libre" como para poder realizar algunos cálculos relativos a la mecánica del juego. Sin embargo, afinando bien el código del programa, resulta perfectamente viable.
Uzebox utiliza como "cerebro", en lugar de un PIC de Microchip, un microcontrolador perteneciente a Atmel: el ATmega644 de 8 bits. En lugar de limitarse a la generación de imágenes en blanco y negro, se han escrito las rutinas necesarias para que esta consola "retro" disponga de al menos 256 colores simultáneos. También puede generar sonidos de una calidad aceptable (si no nos crees, dale un vistazo a los videos que acompañan el artículo). En lugar de complicarse la vida diseñando unos mandos especiales para su consola, el autor a utilizado un par de buenos (y antiguos) controles de NES.
Existen muchas formas de generar imágenes digitales en colores, y en Uzebox se ha optado por no complicar el diseño utilizado un chip conversor de "RGB" a "NTSC", el AD725 de Analog Devices. Este chip puede encontrarse en las viejas placas de video PCI o AGP con salida para TV. Mediante el uso de interrupciones de software se generan las señales de sincronización de vídeo de forma independiente al programa principal del juego.
Manteniendo el diseño del hardware lo más sencillo posible, para que cualquier aficionado pueda construirse una, solo se emplearon chips comunes con capsula DIP (con excepción del AD725) en la Uzebox. La consola dispone de 4K de RAM (!) y 64K de memoria flash para el programa. El micro, de 20 MHz, funciona overclockeado (a 28.6Mhz, 8 veces la frecuencia del color NTSC.
La "tarjeta de video" es, simplemente, uno de los puertos de 8 bits del ATmega. Operando en RGB, 3 bits son utilizados para el componente rojo, 3 bits para el verde y 2 bits para el azul. Estos datos pasan a un conversor digital-analógico (DAC) construido por tres "escaleras" de resistores "R-2R". La "potencia" disponible permite producir una resolución de 240×224 píxeles, que pueden ser utilizados para representar 40×28 "baldosas" de 6×8 píxeles. Tengamos en cuenta que las imágenes que mostramos, tomadas de la pantalla, no le hacen justicia. En realidad, los gráficos de Uzebox se ven de forma nítida y los colores vibrantes, sin parpadeos.
El sonido se compone de 3 canales, con timbre, frecuencia y volumen independientes. La salida se efectúa mediante un único pin, mediante modulación por ancho de pulso (PWM). El software es capaz de trabajar con un formato especial de archivos MIDI. En cuanto a los juegos disponibles, el autor solo ha tenido tiempo de programar un muy buen clon del viejo y querido Tetris, al que ha bautizado "AVR Megatris". El juego es totalmente funcional, e incluso tiene los mismos sonidos que el original.
Desde aquí aplaudimos la capacidad demostrada al crear una consola tan interesante como esta, y sobre todo, por ponerla a disposición de la comunidad bajo licencia GNU. Esperamos, sinceramente, ver cada día más proyectos así. Si visitan la página oficial, verán que aún no están disponibles los archivos relativos al circuito o el código fuente del microcontrolador, pero el autor avisa que “en breve” los pondrá para que podamos descargarlos.