A pixel-perfect Pac-Man clone built for the Seeed Wio Terminal and Adafruit Fruit Jam using CircuitPython 10.
| Seeed Wio Terminal | Adafruit Fruit Jam |
|---|---|
![]() |
![]() |
- 🎮 Authentic Gameplay - Classic Pac-Man mechanics including ghost AI, power pellets, and frightened mode
- 👻 Four Unique Ghosts - Blinky, Pinky, Inky, and Clyde with arcade-accurate behavior patterns
- 🍒 Bonus Fruits - Cherry, strawberry, orange, apple, and more appear as you progress
- 🔊 Sound Effects - Waka-waka eating sounds, death melody, and startup jingle via the built-in buzzer
- 📊 Scoreboard - Arcade-style display with 1UP, HIGH SCORE, lives, and current level fruit
- 🎨 Custom Font - Press Start 2P retro arcade font
- ⚡ Optimized Performance - Runs smoothly on the Wio Terminal's limited resources
| Control | Action |
|---|---|
| Joystick | Move Pac-Man |
| Button 1 | Toggle Sound On/Off |
| Item | Points |
|---|---|
| Dot | 10 |
| Power Pellet | 50 |
| Ghost (1st) | 200 |
| Ghost (2nd) | 400 |
| Ghost (3rd) | 800 |
| Ghost (4th) | 1600 |
| Cherry | 100 |
| Strawberry | 300 |
| Orange | 500 |
| Apple | 700 |
| Melon | 1000 |
| Galaxian | 2000 |
| Bell | 3000 |
| Key | 5000 |
- Seeed Wio Terminal
- ATSAMD51P19 (ARM Cortex-M4F @ 120MHz)
- 192 KB RAM
- 2.4" LCD (320x240, used in portrait mode: 240x320)
- Built-in 5-way joystick
- Built-in buzzer
- Adafruit Fruit Jam
- RP2350B dual 150MHz Cortex M33 microcontroller
- 8 MB PSRAM
- DVI video output on the HSTX port (landscape and portrait mode supported depending on display resolution)
- USB keyboard input
- I2S stereo headphone + mono speaker output
Download and install CircuitPython 10.x for Wio Terminal or Fruit Jam.
Copy these libraries from the Adafruit CircuitPython Bundle to your CIRCUITPY/lib/ folder:
adafruit_bitmap_font/(folder)adafruit_display_text/(folder)- For Adafruit Fruit Jam:
adafruit_imageload/(folder)adafruit_fruitjam/(folder)
Copy the entire contents of this repository to your CIRCUITPY drive:
CIRCUITPY/
├── code.py
├── fonts/
│ └── press_start_2p.bdf
├── images/
│ ├── maze_empty.bmp
│ └── sprites.bmp
└── lib/
├── adafruit_bitmap_font/
└── adafruit_display_text/
Additional file structure for Adafruit Fruit Jam
CIRCUITPY/
└── lib/
├── adafruit_imageload/
└── adafruit_fruitjam/
This application also supports installation within Fruit Jam OS. Install it using the same principles above but instead of using CIRCUITPY/ as the root directly, it can be installed into CIRCUITPY/apps/ and then opened from the launcher application.
The game starts automatically when you plug in the device. Enjoy! 🎮
- Original Pac-Man: 224x288 pixels
- Wio Terminal: 240x320 pixels (portrait mode)
- Game area is centered with a small border
Each ghost has unique targeting behavior:
- Blinky (Red) - Directly chases Pac-Man
- Pinky (Pink) - Targets 4 tiles ahead of Pac-Man
- Inky (Cyan) - Complex targeting using Blinky's position
- Clyde (Orange) - Chases when far, scatters when close
- Scatter - Ghosts retreat to corners
- Chase - Ghosts actively pursue Pac-Man
- Frightened - Blue ghosts flee (can be eaten)
- Eaten - Eyes return to ghost house
This project was developed with assistance from GitHub Copilot (Claude) in VS Code. The entire game was built iteratively through conversation, from basic sprite rendering to full arcade-accurate gameplay.
- Pac-Man is a trademark of Bandai Namco Entertainment Inc.
- This is a fan-made educational project, not for commercial use
- Press Start 2P Font by CodeMan38
- Built for the amazing CircuitPython community
This project is provided for educational purposes. See LICENSE for details.
- Adafruit for CircuitPython and incredible learning resources
- Seeed Studio for the Wio Terminal
- The Pac-Man Dossier for detailed game mechanics documentation
Made with 💛 and lots of dots

