Does the Arduino UNO Q Run Doom? Of Course: Here's Doom 3, with App Lab Integration

A source port of Id Software's more demanding 2004 entry in its iconic FPS franchise runs surprisingly smoothly on Arduino's new SBC.

Whenever a new piece of hardware is released, someone will always ask the question "does it run Doom?" Usually, they're referring to Id Software's 1993 original — but one hacker has answered in the affirmative for the more demanding Doom 3 (2004) on the flexible new Arduino UNO Q single-board computer.

"Answered the classic question 'does it run Doom?" by running Doom 3 […] on my [Arduino] UNO Q," pseudonymous maker "magichorsie" explains of the project. "The game is running natively on the UNO Q and has been modified to display the in-game health on the UNO's LED matrix. I also have an App Lab app running which receives the health data from the game and passes it using the RouterBridge to the [STMicroelectronics] STM32 [coprocessor] — which in the end displays it on the matrix. The audio is through a Bluetooth speaker."

Can the new Arduino UNO Q run Doom? No problem: it can even run its 2004 successor, Doom 3. (📹: magichorsie)

If all that sounds a little much for a humble Arduino UNO development board, you probably missed the announcement of the Arduino UNO Q — a collaboration between Arduino and new corporate owner Qualcomm to turn what was once an eight-bit microcontroller dev board family into a surprisingly powerful single-board computer, driven by the Qualcomm Dragonwing QRB2210 with four 64-bit Arm Cortex-A53 cores running at up to 2GHz and a 3D-capable Adreno graphics processor.

Running Doom on a microcontroller is old-hat; Doom 3, released more than a decade after the original, is a bigger challenge. The game's original system requirements called for a an Intel Pentium 4 or AMD Athlon XP processor running at 1.5GHz or above, at least 384MB of RAM, and an NVIDIA GeForce 3 or AMD Radeon 8500 or higher graphics card with at least 64MB of RAM. That, you will note, puts its requirements somewhere comfortably below the capabilities of the Arduino UNO Q — and means that, with a recompilation from x86 to Arm carried out on the Arduino UNO Q itself plus a little hackery, Doom 3 will run just fine on the UNO Q.

Arduino's new App Lab is used to pull health data from the game and print it to the UNO Q's on-board LED matrix. (📹: magichorsie)

The final twist in the project is the use of Arduino's new App Lab, which is designed to bridge the main Qualcomm Dragonwing processor and its Linux operating system to an STMicro STM32 coprocessor for real-time workloads: using this, magichorsie was able to pull out the health data from the game and have it printed to the Arduino UNO Q's on-board LED matrix, updating in real-time as the player character takes damage.

More details on the project are available on Reddit; source code for the App Lab integration has not been provided, but the version of Doom 3 used, dhewm 3, is available on GitHub under the GNU General Public License 3 for anyone looking to try compiling it for the Arduino UNO Q themselves.

ghalfacree

Freelance journalist, technical author, hacker, tinkerer, erstwhile sysadmin. For hire: freelance@halfacree.co.uk.

Latest Articles