Play DOOM On Seven-Segment Displays

Getting DOOM to run on a computer it was never meant to run on is a fun trope in the world of esoteric retro computers. By now we’ve seen it run on everything from old NES systems to microwaves, treadmills, and basically anything with a computer inside of it. What we don’t often see are the displays themselves being set up specifically to run the classic shooter. This build might run the game itself on ordinary hardware, but the impressive part is that it’s able to be displayed on this seven-segment display.

This build makes extensive use of multiplexers to drive enough seven-segment displays to use as a passable screen. There are 1152 seven segment digits arranged in a 48 by 24 array, powered by a network of daisy-chained MAX7219 chips. A Python script running on a Raspberry Pi correlates actual image data with the digit to be displayed on each of the segments, and the Raspberry Pi sends all of that information out to the screen. The final result is a display that’s fast enough and accurate enough to play DOOM in a truly unique way.

There is much more information available about this project on their project page, and they have made everything open source for those who wish to follow along as well. The project includes more than just the ability to play DOOM, too. There’s a built-in video player and a few arcade programs programmed specifically to make use of this display. Perhaps one day we will also see something like this ported to sixteen-segment displays instead of the more common seven-segment.

12 thoughts on “Play DOOM On Seven-Segment Displays

  1. How much current would these 7 segment displays take? How much power? Think it would be inefficient compared to a modern Computer Monitor. I think it is amazing to see this done; to see Doom in different ways. Maybe the next challenge for you is to use RGB leds for color.

    1. I can do you one better: how much all those display cost? Last I checked, each display cost around $1.50, so in total there should be at least $1.5k worth of displays đź‘€

      1. I can get a block of 4 segments for 1.25euro from a local shop here. Or $0.67 from china. So only like $150 for the segments in the cheapest option. And that’s without bulk discounts.

      2. You think it would be the seven-segment digits that cost a bunch, but its actually the MAX7219s that add up quickly. Using name brand ones would be ~$10 a piece on DigiKey…but of course a nice deal on AliExpress dropped it to ~$2 piece ;)

  2. And yet you decided to waste even more time typing that out? I think you would be better off not wasting time expounding your dislike for other people’s work and doing something you find useful with your non zero value time.

    I personally think it’s great. Gonna cure cancer? Nope, but it doesn’t have to, it’s a display and does exactly what it’s supposed to do.

  3. It looks like this is using a fairly simple translation method of treating every 7seg as a pixel and using pixel value to drive the number of segments lit, i.e. direct pixel brightness to 7seg brightness and a 48×24 pixel display.
    An alternative would be to render a much higher resolution source image, split that image into 48×24 tiles (e.g. 10×20 or whatever to match the actual 7seg aspect ratio), then for each tile determine what actual segment lines being lit would best approximate the contents of the tile. Similar to macroblock DCT but instead of the basis functions use the matrix of possible segment combinations. That would give a pseudo-vector display of greater clarity at the expense of variable brightness (though it would still end up being pretty close if the segments could be brightness controlled using the not-DCT coefficients).

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.