Raspberry Pi Pico 2 developer demonstrates running Doom on RP2350-powered Def Con 32 badge

Doom on an ISA bus graphics card
(Image credit: VswitchZero)

The ultimate test of a microcontroller or SBC is whether it can run Doom. One of the designers responsible for the new Raspberry Pi RP2350 microcontroller hacked the Def Con 32 badge to show that, yes, the latest edition of the Pico can run Doom quite smoothly. Participants in the conference are encouraged to modify, customize, and hack their badges to add more functionality. Since the associated “Badge Life” program focused on gaming, software engineer Graham Sanderson got Doom running on the Def Con 32 badge.

The Raspberry Pi Foundation recently began shipping the Raspberry Pi Pico 2, which includes a new RP2350 microcontroller. That same microcontroller was also integrated into the Def Con 32 badge distributed to attendees of this year’s hacking conference in Las Vegas.

Sanderson is one of the designers behind the RP2350 and previously released a version of Doom for the predecessor to the RP2350, the RP2040. So, it’s only natural that he would work to bring the same classic first-person shooter to the newer version of the microcontroller.

This year’s Def Con badge looks like a handheld gaming device with a small display. Others have demonstrated running PalmOS on the badge and emulating a GameBoy Color. Sanderson’s contribution to GitHub includes sound and save game support. The game itself runs at a smooth 50 frames per second.

Sanderson warns that installing Doom on the badge will overwrite its flash storage contents, so he recommends backing it up first. Once installed, you can run the game’s demo modes, play a game, complete levels, and even save and load a game. Saved games are stored in the badge’s flash memory and persist across power cycles.

A few things don’t work on the badge, at least for now. Doom’s main menu has a “Quit Game” item that doesn’t work because it is meant to quit DOS. Sanderson says he removed DOS mode due to display limitations, but the menu to end an active game found under “Options > End Game” does work. There’s also no button for strafing and no way to enter cheat codes.

If you have a Def Con 32 badge, you can find everything you need to get Doom running on it at Sanderson’s GitHub repository for the project. Sanderson has also updated the original rp2040-doom repository to support the new RP2350 microcontroller for those without a Def Con 32 badge but wishing to install it to a Raspberry Pi Pico 2 instead.

Jeff Butts
Contributing Writer

Jeff Butts has been covering tech news for more than a decade, and his IT experience predates the internet. Yes, he remembers when 9600 baud was “fast.” He especially enjoys covering DIY and Maker topics, along with anything on the bleeding edge of technology.

  • usertests
    https://kilograham.github.io/rp2040-doom/
    He said the RP2040 ran Doom at 30-35 FPS, now it's at 50 FPS.

    The blog post focused on 2 MB (Pico 1) and 8 MB (other boards) storage versions, with 8 MB being enough for Ultimate Doom and Doom II. Pico 2 doubled storage to 4 MB.

    The RAM is almost doubled now, which makes it more comfortable for porting things. It might even be possible to optimize Doom for RP2350 and get it running at 60 FPS.
    Reply
  • NinoPino
    usertests said:
    He said the RP2040 ran Doom at 30-35 FPS, now it's at 50 FPS.
    ...
    RP2040 is a cortex m0+ @ 133 MHz accredited of 0.9 Mips / MHz, a 486DX2 @ 100 is quoted at about 40 Mips, so every RP should be able to run Doom at any speed, also with poor optimizations.
    Reply