Eh bien, il s’agit d’un projet qui pousse un microcontrôleur ATMega32 de 8 bits aux limites.
Comme vous l’aurez deviné le titre, c’est un système de jeu. Voici quelques-unes des spécifications :
* 27MHz overclocké (à partir de 16MHz) AVR ATmega32 microcontrôleur , avec 32KB flash, 2 Ko de RAM. Je pense que vous pouvez également utiliser un ATMega644.They ont le même brochage. Personnellement, je n’ai pas essayé avec un atmega644.
* KS0108 monochrome 128 x 64 basée affichage
* 4 moteur sonore de la voix : (Sonne comme la NES)
* 2 canaux d’onde carrée à volume variable.
* 1 canal de table vague DDS (Direct Digital Synthesis) avec volume fixe, qui peut jouer : ondes sinusoïdales, Triangle vagues, des ondes en dents de scie, ondes carrées ou toute autre forme d’onde simple.
* 1 canal à bruit blanc DDS (essentiellement identique à la première chaîne de table d’onde, mais celui-ci utilise une table d’onde bruit blanc).
* Frame buffer basé pilote vidéo : (Penguin utilise un pilote vidéo qui est très avancé par rapport aux autres bibliothèques graphiques vous trouver sur microcontrôleurs avec les écrans LCD KS0108 )
* Effet d’inversion de couleur instantanée
* Les transitions
* Dessin du texte
* Sprite dessin avec hauteur de 8 et X l’échelle fixe (rapide)
* Sprite dessin avec hauteur de 8 fixe avec X et Y d’échelle (lent)
* Graphiques vectoriels avec rotation
* Géométriques dessin : Triangle, Rectangle, cercle (pas de remplissage pour toutes les formes)
* Plusieurs fond de dessin (pour les arrière-plans transparents)
*Draw_pixel(x,y) fonction (assez explicite...)
Le pilote vidéo utilise 1 Ko de RAM pour le frame buffer et a autour de 30 FPS avec un arrière-plan transparent, son moteur en marche et 50 sprites à l’écran.
Il y a pas de limite de fond, limite de sprite ou quelque chose comme cela. Le seul inconvénient est que si vous tirez trop de choses sur l’écran, il devient plus lent et plus lent. Les fonctions graphiques vectorielles utilisent un format propriétaire qui est généré par un outil que vous retrouverez dans la catégorie « Outils » dans ce instructable.