A $14.95 smart lamp from Ikea now has enough computing power to run the classic PC game Doom.
A software engineer named Nicola Wrachien has removed the smart lamp’s computer chip and used it to build a miniaturized Doom gaming system.
The system requires less RAM. The chip from the Ikea lamp has enough processing power to play the game at 35 frames per second over a cheap 160-by-128-pixel display.
Wrachien is from Hungary. He started the project after reading headlines about Doom purportedly running on a pregnancy test. The pregnancy test was only able to run the game due to an added OLED display and streaming it from a PC.
Wrachien decided to challenge himself by porting Doom to an off-the-shelf device, without adding a new CPU. “We must use exactly the microcontroller embedded on the chosen device. No replacement is possible. No additional microcontroller can be added,” he wrote in a blog post on Next-hack.com documenting his effort.
Wrachien decided on a $14.95 smart lamp from Ikea that has an ARM-based Cortex M33 processor with “96 + 12 kB of RAM,”. The same processor is housed in a microcontroller from Silicon Labs.
Wrachien made a separate board outfitted with 8MB of flash memory, power connectors, audio, and keyboard ports—which connected to the Ikea lamp chip. The system is then wired to a display and a makeshift 8-key keyboard.
Additionally, he took an existing Game Boy Advance port of Doom, but decreased the game’s memory requirements and removed the music.
“After a lot of memory optimizations, I was able to run the full shareware episode, including E1M6! (The sixth map on Doom.) This only uses less than 108kB of RAM!” Wrachien wrote in a separate post. He uploaded his Doom software port to GitHub.
The project marks the latest attempt to run Doom on a non-PC platform, which has included iPods, treadmills, and classic console gaming systems. Wrachien says his own work could be used as a starting point to “port Doom to almost any microcontroller featuring enough flash and at least 108 kB of RAM,” so long as the chip has enough processing power.