Pacman Championship Edition op Arduino UNO (8-bit)

De Game Engine

Dit project draait op een compacte game engine die speciaal is ontwikkeld voor de originele Arduino UNO. De engine beschikt over de volgende technische specificaties:

  • Beeld: Ondersteuning voor 256x256 pixel scrolling tilemaps en maximaal 9 sprites van 16x16 pixels.
  • Scrolling: Split-screen scrolling in alle richtingen.
  • Audio: 2-kanaals PWM-audio.
  • Prestaties: Een vaste framerate van 50 FPS.

Vanwege de snelheid kan elke tile en sprite per frame worden bijgewerkt, wat snelle actiespellen mogelijk maakt. Voor Pacman CE was specifiek veel geheugenbeheer nodig, vooral voor de scrollende doolhoven die transformeren wanneer de iconen in het centrum worden opgegeten.

Naast Pacman CE zijn er via GitHub ook andere games en demo's beschikbaar voor deze engine, waaronder Manic Miner, Scramble en Space Invaders.

Hardware en Installatie

Het project is ontworpen voor gebruik met een composietmonitor of televisie, maar kan eventueel worden aangesloten via een composiet-naar-HDMI-converter.

Voor de video- en audio-output zijn enkele weerstanden nodig. Indien er een luidspreker moet worden aangestuurd, is daarnaast een transistor vereist. Voor gebruikers die geen losse componenten willen solderen, zijn er op GitHub bestanden beschikbaar voor een custom shield. Dit shield kan worden uitgebreid met een poort voor een NES-controller, waardoor het systeem plug-and-play wordt.

Benodigde Componenten

  • 1 × Arduino UNO (8-bit)
  • 1 × 75 ohm weerstand
  • 1 × 470 ohm weerstand
  • 2 × 1,2 kOhm weerstanden
  • 2 × 3 kOhm weerstanden

Configuratie en Bediening

Alle games zijn opgeslagen als aparte sketches. In het bestand engine.def kan de gebruiker vóór het compileren en flashen van de firmware aangeven of er gebruik wordt gemaakt van losse knoppen of een NES-controller.

Highscore resetten: Bij Pacman CE kan de highscore-tabel worden gewist door de 'start'- en 'select'-knoppen ingedrukt te houden tijdens het inschakelen. Het scherm geeft vervolgens een bevestiging dat de tabel is gereset.

Technische Waarschuwing

Er is een belangrijk aandachtspunt bij het gebruik van hardware: goedkopere Arduino-klonen maken soms gebruik van resonatoren in plaats van kwalitatieve kristallen om kosten te besparen. Resonatoren zijn niet nauwkeurig genoeg voor de video-output. Indien er problemen met het videobeeld optreden, is dit waarschijnlijk de oorzaak.