Bare-metal Tetris duel

A couple of weeks ago, we featured a first-year undergraduate project from Imperial College in London: a bare-metal port of StarFox to the Raspberry Pi. It’s stupendously good; even more so when you realise that the people behind it are 18 and 19 years old.

I discovered that a second group from the very same class has another bare-metal doozy of a gaming project running on the Pi: head-to-head Tetris.

The team says you’re seeing:

– 4000 lines of documented ARM assembly code
– Optimised driver for a NES controller connected via GPIO
– Asynchronous networking for two Pis connected via GPIO
– Doubly buffered rendering logic for HDMI output
– Custom ARMv6 assembler written from scratch in C (released as binary only)

What’s in the water down in South Kensington? I don’t think we’ve seen this much assembly language since … this time last year, when we found an Imperial College bare-metal chess project.

Everything you need to replicate the Tetris setup is available on GitHub. Thanks to Han Qiao, Piotr Chabierski, Michał Sienkiewicz
and Utsav Tiwary for a really lovely piece of work.



Great example of the Pi being used in education :)

Eben Upton

Come on Cambridge! Imperial are making us look rubbish.


Hmm. Makes me want to buy a couple of NES controllers :)

Lovely bit of work.


Mmmm…. tethered tete-a-tete tetris…

(come on, someone had to say it)


Tetris for two, and two for tetris :)


Really impressive, but to make it fair, the same bricks need to come out on both screens.

Liz Upton

Students from Imperial laugh in the face of Poisson distribution.

Leave a Comment

Comments are closed