This is Doom, running headless, on Ubuntu Arm… on a satellite

Ólafur Waage has an unusual take on "will it run Doom?"

Ubuntu Summit Doom takes place on Mars, but up until recently, it has only been played on Earth. However, at the Ubuntu Summit, one enterprising developer explained how he extended the well-established "will it run Doom?" meme all the way into space.

When it was first introduced, id Software's Doom demanded a fairly capable 486 PC, and its ability to offer head-to-head play over an IPX/SPX LAN was radical – and brought down a few such networks. By 2011 The Register did a twentieth anniversary retrospective, long enough ago that it was followed by others when it turned 25 and again for its 30th anniversary.

Doom's longevity comes partly because, back in 1997, id released its source code, leading to lots of ports and revivals. For instance, there's a C++ version of Doom, whose relevance will become apparent soon. There are also other ports, such as Chocolate Doom (the name is a pun on "vanilla Doom"). And of course, ports to very unexpected hardware, such as the famous 2020 one to a digital pregnancy test.

Meanwhile, back in what might tenuously be called the real world, noted Internet humorist and programmer Ólafur Waage presented a talk at the Ubuntu Summit on what might be seen as one logical extreme: Doom in space. In this he recounted his efforts to get Doom running on the hardware of the European Space Agency's intentionally-hackable OPS-SAT satellite. This was not a very recent project – the "flying laboratory" was deliberately de-orbited back in 2024.

He's talked about the effort before, and one version can be seen on YouTube. He's also uploaded the source code including his various adaptations and changes, and you can peruse the repository on GitHub, including various notes and links. He worked out the details alongside ESA researcher Georges Labrèche, who as inspiration points to a classic Saturday Morning Breakfast Cereal comic.

Youtube video

The relevance to an Ubuntu event was that OPS-SAT ran Ubuntu on its dual-core ARM9 chip – specifically, Ubuntu 18.04 LTS. It's not practical or safe to run do-release-upgrade on something that's not on the same planet, so "Bionic Beaver" it had to be. Plus, because this was an unmanned satellite which he described as being "about the size of a carry-on bag", there was nobody there to look at it, and so the bird had no display. You can't see the game running. That was no problem, as Waage had already worked on Headless Doom. In that post, he examines the issues of running Doom in a CI:CD pipeline, such as controlling the game's pseudo-randomness, disabling any display output, and making it able to run in a predictable way that can be timed and checked for repeatability and reliability.

What with the proliferation of existing ports, many problems associated with this exercise had already been solved. Running it on Linux, in a container, on Ubuntu, on Arm, headless with no display, and logging the results – all doable. But a log file containing the word OK over and over again for each successful run is not much fun. Since it's only about 8 MB of code, Doom isn't big enough to use much of the satellite's RAM, so there were no apparent failures from cosmic rays flipping bits in the machine's memory. How else could one actually show that it was running in space?

Waage's solution was inspired: use the OPS-SAT onboard camera to grab images of the planet going by underneath, and use them for the game's largest texture: the sky, which you can see above in any of the areas where the player goes outside.

There were still issues. Running the game headless means that Doom has to run in software rendering mode, as there's no GPU available. That limits the in-game color palette. Also, loading the sky bitmap flips the image. This was the fun part of the project. He used the shareware Doom .WAD file, edited it to insert the satellite's Earth picture, and ran it. He tested this with a default NASA picture of the globe, which showed considerable distortion.

Also, only a limited palette is available, because the game itself uses much of the palette – for instance, Doom uses nine or more shades of blue. So, he "did some magic" with the image color palette, looking for closest available color, averaging the colors in the next space image for each run, and picking the closest match. The project page has some grabs from the virtual screen showing the results.

Also, parenthetically, he noted that to grab a photo of the Earth, they needed to orient the satellite with its camera pointing towards the ground. That, in turn, caused additional drag, which slowed the satellite, lowering its orbit. In other words ...

Playing Doom accelerated the doom of the satellite. ®

More about

TIP US OFF

Send us news


Other stories you might like