Bueno, este es un proyecto que impulsa un microcontrolador ATMega32 de 8 bits a los límites.
Como adivinado desde el título, es un sistema de juego. Estas son algunas de las especificaciones:
* 27MHz overclockeado (de 16MHz) microcontrolador ATmega32 AVR , con 32KB flash, de 2 KB de RAM. Creo que también se puede utilizar un ATMega644.They tienen las mismas conexiones. Personalmente no he probado con un atmega644.
* 128 x 64 monocromo KS0108 basado en pantalla
* Motor de sonido de voz 4: (Suena igual que la NES)
* 2 canales de onda cuadrada de volumen variable.
* 1 canal de tabla de onda DDS (síntesis Digital directa) con volumen fijo, que puede jugar: ondas sinusoidales, ondas triángulo, ondas diente de sierra, ondas cuadradas o cualquier otra forma de onda simple.
* 1 canal de ruido blanco de DDS (básicamente igual que el primer canal de tabla de onda, pero éste utiliza una tabla de onda de ruido blanco).
* Frame buffer basado en controlador de video: (Pingüino utiliza un controlador de vídeo que está muy avanzado en comparación con las otras librerías gráficas encontrará en microcontroladores con pantallas LCD KS0108 )
* Efecto de inversión de color instantánea
* Transiciones
* Texto dibujo
* Sprite con altura de 8 y X escala fija (rápido)
* Sprite con altura de 8 fija con X e Y escalamiento (lento)
* Gráficos vector con rotación
* Dibujo de figuras geométricas: triángulo, cuadrado, círculo (sin relleno de cualquier forma)
* Múltiples antecedentes de dibujo (para fondo transparente)
Función *Draw_pixel(x,y) (bastante autoexplicativo...)
El controlador de vídeo utiliza 1KB de RAM para el frame buffer y tiene alrededor de 30 FPS con un fondo transparente, sonido motor en marcha y 50 sprites en la pantalla.
Hay ningún límite de fondo, límite de sprite o algo así. Lo único malo es que si se dibujan demasiado cosas en la pantalla, se pone más lento y más lento. Las funciones de gráficos de vector utilizan un formato propietario que es generado por una herramienta que se encuentran en la categoría «Herramientas» en este instructable.