Running Doom on Qt for MCUs

You're probably familiar with the meme that "Doom will run literally on anything", with people running the classic game on, well, anything. It has almost become a competition of who can launch the game on the funniest, or most challenging, environment. Some of my favorites include running doom on a pregnancy test, a calculator, a 1998 digital camera, and literally on a potato.

Considering this, it was only a matter of time until someone would try to run Doom on an embedded micro controller powered by Qt for MCUs and Qt Quick Ultralight. The noble task was taken on by a trio of Qt developers during our internal Hackathon earlier this year. The trio, consisting of Tommi Tauriainen, Kari Hormi, and Timo Aarnipuro, succesfully completed the task and won the "most suprising entry" price for it.


DOOM running on MCU and rendered to the screen via Qt for MCUs

  1. Add image of an old PC as the background
  2. Run DOOM 1 Shareware on a separate FreeRTOS task
  3. Provide touch input information from QUL to DOOM to add controls
  4. Render Doom on the "display" of the old PC

The demo utilizes Painted item to draw Doom to the application. The same method can be used in real world scenarios to draw custom content like video feed from a vehicle rear-view camera.

Board features

  • MIMXRT1052DVL6B MCU featuring 600MHz ARM® Cortex®-M7 core, 512KB RAM
  • 4.3” 480x272 RGB Touch Display
  • 256-Mbit SDRAM memory
  • 512-Mbit Hyper Flash
  • 64-Mbit QSPI Flash
  • Socket for SD card

But wait... there's more!

We loved seeing Doom run on Qt for MCUs so much that we started digging into the Qt community to see if there were other cool Doom projects around. We were not disappointed. We wanted to share some of our favorite Doom projects made by our talented community. All credit goes to the amazing developers that created them.

QtDoom: Portable Doom Wrapper by Mertcan Özdemir

Qt SDL2 plugin by Jesus Fernandez


OpenGL/Qt TEXTURED Doom map renderer by jewalky


Let us know if you have a cool Doom project running on Qt, we'd love to add it to the list!

Blog Topics: