Doom comes to Raspberry Pi Pico

When I was seventeen years old, I went to work for IBM for a year. IBM’s pre-university employee (PUE) program was a marvel: run by Ian Nussey out of his Warwick Development Group (WDG – pronounced “wudge”), it took in roughly sixty students a year, and gave them a chance to do real work (God help you if you tried to use a PUE to make coffee or mind the photocopier) at a first-rate technology company. I was lucky enough to be offered one of a handful of roles in the WDG itself.

I arrived on my first day, in my brand-new suit, and found an office full of similarly attired engineers. But one chap in the corner was wearing jeans, a t-shirt, and a sky-blue baseball cap emblazoned with a “Start” button (blasphemy at the height of the OS/2 versus Windows war); and it became clear pretty fast that he could do this because he was one of the brightest people in a room of pretty bright people. His name was Graham Sanderson.

You came here for Doom on a Pico. We’ll get to that, promise

Graham and I have been friends ever since. Meeting him changed my life in a variety of ways: I stopped wearing suits; I quickly learned a lot about Intel assembly language, texture mapping, VGA unchained mode, and the DOS/4GW 32-bit DOS extender; he found me summer vacation work at his first startup in Austin; and many years later I was able to return the compliment by hiring him to run the software effort for what would become RP2040.

Graham’s had a busy year at work since we launched Raspberry Pi Pico in January last year, refining the Pico SDK. But he’s been busy in his spare time too, and now he’s released the fruits of that work: a port of the PC version of Doom to Raspberry Pi Pico. We’ve seen the much simpler Game Boy Advance version running on Pico in the past, but this is the real deal: it’s able to run the original PC WAD files, with the original audio, and as you can see from the video below, it even supports four-player network games over I2C. The executable, and a compressed version of the original shareware WAD, fit into Pico’s 2MB flash memory.

Graham has written up the development process in considerable detail here. Doom might seem like a frivolous application, but it demonstrates just how powerful RP2040 can be in the hands of an experienced user. It offers plenty of memory and integer compute performance; flexible I/O, used here to drive a VGA monitor and interface to a USB keyboard; and, critically, the ability to simultaneously drive every element of the chip hard without tripping over yourself.

With RP2040 now available in single-unit quantities for $1, and in volume from 70 cents, what will you find to do with it?

No comments
Jump to the comment form

Leave a Comment