Project · 07

Kirby's Escape From Dreamland

A side-scroller written in Verilog on a Basys 3 FPGA, with VGA graphics from scratch and a USB-mouse hacked into a Kirby-themed controller.

Year2018
CourseDigital Systems Lab
HardwareBasys 3 FPGA
LanguageVerilog
01

The brief

Digital Systems Lab closed with a project built on a Basys 3 FPGA in Verilog. I wanted to build a game, partly because it was harder, mostly because it was fun.

02

What I had to build

Everything was from scratch. The physics of Kirby's flappy-bird-style flight had to be written as hardware logic, not as functions. The VGA output stage drove the game's tiles and images to a monitor at the right timing on its own. The score, the enemies (Gordos), and the lives system (surviving five consecutive columns changed the level's colors and earned an extra life, up to three) all ran in parallel hardware logic, not on a CPU.

The piece I had the most fun with was the controller. I intervened a USB mouse, wiring its buttons into the FPGA so a spacebar could fly Kirby, and gave the housing a custom look to match the game. It's the kind of detail nobody asked for, and it made the project.

03

Why the detour was worth it

Most of my work has lived a few layers above the metal: Python on a Pi, Edge ML, ROS2 nodes. Spending a semester writing Verilog reminded me that under all those layers there's still someone deciding what happens on each clock cycle. Whenever I work on edge-AI hardware now, that perspective comes back. It changed how I think about latency budgets and what "fast enough" actually means.

The finished setup: Basys 3, the breadboard VGA stage, and the monitor running the game