The Fruit of an Internal Hackathon Bounty
Installing Doom on everything from a calculator to a pregnancy test has been a running hacker meme. Not surprisingly, there’s hardly any device with a processor and display in existence that cannot run the seminal shooter. Taking cue from this trend, The Qt Company had tasked its developers with porting the game on microcontrollers during an internal hackathon.
The winning implementation of Doom was ported to a hardware platform sporting a relatively beefy NXP Semiconductors MCU equipped with a 600MHz ARM Cortex-M7 core with 512KB RAM. The device also incorporates 256-Mbit SDRAM, 512-Mbit Hyper Flash, and 64-Mbit QSPI Flash, in addition to an SD card socket. The official Qt blog delves further into the port, along with a few other noteworthy Qt Doom entries.
Interestingly, the Qt implementation of Doom runs on a 4.3-inch touchscreen display within a “Painted item” widget element. This allows some of the touchscreen real estate to be freed up for on-screen controls to emulate the keyboard input scheme of the original MS-DOS game.
What’s Special About Qt for MCUs Implementation?
This may not seem like a big deal, considering how, according to ZDNet, Doom has already arrived on popular microcontrollers such as the Raspberry Pi Pico, but Qt for MCUs incorporates all the graphics framework and relevant assets required to run graphically intensive applications, such as Doom, on a wide range of supported microcontrollers. The widget toolkit for MCUs supports both Real-Time Operating Systems (RTOS) as well as bare-metal operation. The latter is enabled by Qt Quick, which works with third-party C++ libraries for improved versatility.
The lack of flash memory restricts Doom to its shareware versions on microcontrollers, but you might want to follow our guide on running Doom natively on the Raspberry Pi if you want the unadulterated retro FPS experience.
Clever Marketing Ploy to Highlight Cross-Platform Capability
The Qt Company’s Doom showcase is a clever marketing ploy that underscores Qt for MCUs unique ability to port applications across a wide swath of microcontrollers, without having to worry about hardware compatibility for the most part.
The Qt software framework is popular for developing cross-platform and cross-device software that run natively on multiple mobile and desktop operating systems. The KDE desktop environment, DaVinci Resolve, and Blackberry 10 OS are popular examples of the Qt framework.