A fan-made Pac-Man Championship Edition port runs on an eight-bit microcontroller, generating composite video and audio with a handful of inexpensive components.

An eight-bit microcontroller normally used in electronics experiments can now run a fast-paced version of Pac-Man Championship Edition on a television. The project uses an Arduino Uno, a handful of resistors and a few buttons to create a simple arcade machine without a dedicated graphics chip or additional memory.
Created by maker Scott Porter, the project brings the timed score-attack mode of Pac-Man Championship Edition to the original Arduino Uno. The game runs on a custom engine previously used to port Manic Miner, a classic game originally released for the ZX Spectrum. The latest version also joins Scramble and Space Invaders among the games supported by the engine.
The hardware requirements are modest. The build uses an Arduino Uno with an ATmega328P microcontroller, six resistors and buttons for player input. A custom shield is also available, with a circuit board layout that integrates the buttons, video output and speaker-driving circuit. The shield can accommodate a Nintendo Entertainment System (NES) controller port as an alternative to individual buttons.
The game produces composite video, allowing it to connect to a compatible television or monitor through an RCA connection. A composite-to-HDMI converter can provide an alternative for displays without composite video input, although compatibility depends on the converter and display.
The Uno does not have a dedicated graphics processor. Instead, the game engine generates the video signal directly through the microcontroller’s digital pins. Resistors combine the signals to produce the voltage levels needed for composite output, including the synchronisation information used by the display.
The engine uses a technique known as racing the beam, generating graphics in time with the television’s scan rather than storing a complete frame in a framebuffer. According to the project’s documentation, it supports an effective resolution of 256 × 256 pixels, scrolling tile maps and up to nine sprites measuring 16 × 16 pixels. The engine also provides split-screen scrolling and a fixed frame rate of 50 frames per second. These are the developer’s stated engine capabilities rather than independently measured performance results.
Audio is generated using two-channel pulse-width modulation (PWM). The project uses additional resistors and a transistor-based circuit to drive a speaker. Audio is optional, so the game can be built without the speaker circuit.
One important hardware detail is the Uno’s clock source. The developer warns that some inexpensive compatible boards use ceramic resonators instead of quartz crystals. Their timing may be insufficiently accurate for stable video generation, resulting in visible image jitter. The repository specifically recommends using the original Uno with the ATmega328P and a proper 16 MHz crystal; the project should not be assumed to work on every board carrying the Uno name.

Building the console involves wiring the video-output network, connecting the controls and uploading the appropriate game sketch. The repository contains separate sketches for the supported games, along with instructions for selecting button or NES-controller input through a setting in engine.def. The developer has also published circuit schematics and PCB production files for those who want to assemble the optional shield.
Once the firmware is uploaded, the Uno can be connected to a compatible display through its composite-video connection. For the Pac-Man game, holding the Start and Select buttons while powering on the board clears the high-score table. The game itself challenges players to collect dots and fruit against a timer. Clearing half the maze changes the layout, keeping the score-attack gameplay moving.
The firmware and engine are available in a public GitHub repository under the GNU General Public License version 3 (GPL-3.0). Developers can inspect and modify the code, adapt the engine and experiment with the other games included in the project. The repository also provides the custom shield files needed to reproduce the hardware.
However, the availability of the code under an open-source licence should not be confused with the licensing of the original Pac-Man intellectual property. This is a fan-made port, not an official release from the game’s rights holder.
For electronics students and hobbyists, the project demonstrates how careful timing, software-generated video and simple analogue circuitry can turn a microcontroller into a basic gaming system. It also offers a practical way to explore composite-video generation, PWM audio and low-level game programming using familiar hardware.
For more information, click here.





