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.