Skip to content

DEF CON 34 talks are here: 354 talks, summarized and searchable.

Browse DEF CON 34

Yes, it runs Doom over the air gaming on a bladeRF SDR

HardwareRadio Frequency Village23 minAdvanced
Watch on DEF CON media

This recording is not on YouTube. It plays from the DEF CON media server; the button opens the file there.

Where

Radio Frequency Village
DEF CON 34

Duration

23 min

Shows how the classic game Doom was ported to run entirely on a bladeRF software-defined radio's FPGA, with no host computer and video sent over RF.

Summary

The speaker set out to run Doom on a bladeRF software-defined radio without a host computer. The board's Cyclone 5 FPGA has no hard processor core, so the game runs on a soft-core CPU built from logic. Block RAM was the binding limit: the design uses 1,216 of 1,220 memory blocks. To fit, the first level's assets were cut heavily, with textures, sprites and sound removed and one placeholder texture reused everywhere. The level data is baked into the FPGA bitstream, so the board boots straight into the game loop.

The port relies on Doom Generic, which reduces the engine's hardware dependencies to a few callbacks for drawing frames, timing, sleeping and reading input. Frames render at 160 by 120 in monochrome and go out as interlaced NTSC video on a 5.745 GHz FM carrier. Controller input comes from a wireless GameCube controller on 2.4 GHz, decoded with a packet format that earlier reverse-engineering work documented, though some values had to be changed for the speaker's controller. The live demo showed the first level being walked through, with doors that would not open, no menu or HUD, and some ghosting artifacts.

Planned next steps include doors, shooting, color, and two-player play using the board's second radio. A practical takeaway is that logic use was only about 8 percent, so memory-heavy parts could be traded for logic. The code was promised for release after cleanup.

Materials

Related talks