Manawyrm Powers Her New Thermal Camera with Hellfire, Thanks to a Playable Port of Doom

The question of "will it run Doom" has been answered for the new crop of affordable handheld thermal cameras: yes. Yes, it will.

Gareth Halfacree
11 months agoGaming

Tinkerer Manawyrm has become the owner of a low-cost yet surprisingly capable handheld thermal camera — and decided to celebrate by hacking the gadget to run Id Software's Doom, because of course she did.

"So, the new generation of semi-affordable thermal imaging cameras (InfiRay C200, Vevor SC240, TopDon, etc.) apparently contain a SoC [System on Chip] from HiSilicon and run Linux," Manawyrm explains of the inspiration behind the project. "Only appropriate to get them to run Doom, then."

What to do when you've tired of taking thermal photographs with your new camera? Play Doom. (📹: Manawyrm)

Released back in 1993 to universal acclaim, Doom solidified the first-person shooter genre of games and triggered a flood of wannabes and clones. Thanks to Id Software's decision to release the source code of its game engines when they're retired, it's also become the go-to game for porting to a range of weird and wonderful devices and output formats — from GPS receivers and thermostats to seven segment displays, Teletext TVs, LEGO bricks, and even running Doom inside Doom itself.

With the clarion call of "can it run Doom" ringing in her ears, Manawyrm set about investigating exactly that — aided by the fact that various Doom engine ports for Linux already exist, such as the fbDoom framebuffer-centric version which Manawyrm chose to port to the thermal camera. "The internal framebuffer is actually YVU420SP," Manawyrm says of one of the project's key challenges, "[a] rather unusual color format (but I guess it makes sense for a surveillance camera SoC)."

"Another very important mod of course is to replace the vendor logo. It‘s actually stored as a JPEG at a fixed offset on the internal eMMC flash and u-boot just reads 64kBytes from that location and feeds it into a hardware JPEG decoder engine," Manawyrm adds. "The SDK source code for this is abhorrent, as you‘d expect and it only works with baseline (not progressive) JPEGs. Oh well!"

Manawyrm has released the source code for her port to GitHub, and while a license is not specified it should be available under the terms of the GNU General Public License 2 or later to match the original Doom source release. Technical details of the effort are available on the EEVblog forum.

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