SiLabs Dooms SparkFun's Thing Plus Matter Board, Porting Id Software's Classic — with BLE Deathmatch

Popping the IoT-focused board into a carrier with game pad, this port offers a higher vertical resolution and four-play multiplayer.

Engineers at Silicon Labs have added a new entry to the classic "can it run Doom" list, taking SparkFun's Internet of Things (IoT) focused Thing Plus Matter board and porting the popular 90s first-person shooter to the platform — complete with Bluetooth Low Energy (BLE) multiplayer capabilities.

"In the spirit of Doom's 30th birthday (happy birthday Doom!) our friends over at SiLabs ported this classic to our biggest collaborative launch of the year, the SparkFun Thing Plus Matter Board featuring the MGM240P wireless module," SparkFun writes by way of introduction to the project. "The best part, it runs BLE-based multiplayer!"

Not just for the smart home any more: Silicon Labs has ported Id Software's Doom to the SparkFun Thing Plus Matter board. (📹: Silicon Labs)

The SparkFun Things Plus Matter launched earlier this year as a device heavily focused on Internet of Things (IoT) projects, packing a SiLabs MGM240P wireless module — providing support for IEEE 802.15.4 and Bluetooth Low Energy (BLE) connectivity, making it compatible with the new cross-vendor Matter smart home standard.

SiLabs' latest project with the board, though, focuses less on the smart home and more on a demonic one: porting Doom, Id Software's classic 1993 first-person shooter which spawned a generation of "Doom-likes," to the platform, joining a long list of Doom-compatible devices ranging from the Raspberry Pi Pico to Teletext-capable TVs — and even, in one particularly unusual project, porting Doom to Doom.

"Porting Doom to a microcontroller or RF [Radio Frequency] system on a chip (SoC) is often very challenging," SiLabs' Nicola Wrachien writes of the project, "because typically the available RAM is much smaller the original Doom requirements, which are at least 4MB for the original DOS version."

The target device in SiLabs' project has just 256kB of static RAM (SRAM), along with 1.5MB of internal flash. To supplement this, and to meet the target of a device which has "no reduction in the graphics or game engine [quality] and can run on a 320×240 display with stereo audio and full music support, SiLabs added two 8MB SPI flash chips for storing the game files, an SD Card, and a shift register for an eight-key keyboard providing local control.

Perhaps the most impressive part of the port, though, is that it includes multiplayer capabilities — connecting compatible devices together over Bluetooth Low Energy for some classic deathmatch action. "Multiplayer runs typically at 320×240 pixels at around 30 fps [frames per second] even with four players," Wrachien says.

"All these performances are achieved when the music is enabled (default configuration). All the full-edition game maps work even at the 'Ultra-Violence' difficulty level, i.e. where all the objects are spawned in the map, representing the most memory-intensive operation."

The full project write-up is available on the Silicon Labs website, with additional technical details on Next-Hack.com; the project source code and hardware design for the carrier board which offers the eight-key control system, are available on GitHub under various licenses.

Gareth Halfacree
Freelance journalist, technical author, hacker, tinkerer, erstwhile sysadmin. For hire: freelance@halfacree.co.uk.
Latest articles
Sponsored articles
Related articles
Latest articles
Read more
Related articles