Scott Porter heeft Pacman Championship Edition (CE) succesvol geport naar de Arduino UNO. Het project maakt gebruik van een speciaal ontwikkelde game engine die 256x256 pixel scrolling tilemaps, 9 sprites en 2-kanaals PWM-audio ondersteunt met een vaste framerate van 50 FPS.
Technische details en hardware:
- De video-output verloopt via composiet, waarbij specifieke weerstanden nodig zijn voor het signaal.
- Er is een custom shield beschikbaar voor eenvoudige installatie en ondersteuning van NES-controllers.
- Naast Pacman CE ondersteunt de engine ook andere klassiekers zoals Manic Miner, Scramble en Space Invaders.
Belangrijke opmerkingen:
- De highscore-tabel kan worden gereset via een specifieke knoppencombinatie bij het opstarten.
- Gebruikers worden gewaarschuwd dat goedkope Arduino-klonen met resonatoren in plaats van kristallen videoproblemen kunnen veroorzaken.
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.
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.