Not Can It Run DOOM, But Can DOOM Run It?

It’s the standard test for a hardware hack, half serious half in jest, “Can it run DOOM?”. The iconic early-90s shooter from id software has made an appearance on everything from toothbrushes to LEGO bricks, but nobody has yet posed the opposite question: Can DOOM run it?“. It’s one answered by [Danny Spencer], who has proved that it’s possible to perform computational tasks in the game by producing a working adding machine in a DOOM level.

If you’re familiar with the folks who build working computers within Minecraft, this is in a similar vein. Game elements are used to create logic elements, and from there more complex systems can be assembled. DOOM doesn’t have the in-game logic that Minecraft has, but by clever combination of monster behaviour with in-game actions involving rooms, buttons, and doors, it’s possible to create the simplest of building blocks, the NAND gate.

The video below the break shows the adder in action, first in operation (we like the monster-driven display!), and then a tour of the logic area with its rooms full of computational monsters. It’s important to note that this isn’t a computer, he hasn’t proved it as Turing complete, and that the maximum size of a DOOM level whatever it is will impose an upper limit on what can be done. But it does show that in theory at least a computer can be made in DOOM, and we’re sure people will continue this work.

Continue reading “Not Can It Run DOOM, But Can DOOM Run It?”

Merry Christmas! Rip And Tear!

If you want a little mayhem on your Christmas tree, you can check out [Sprite_tm]’s tiny PC Christmas ornament. With 3D printing, that isn’t such a tall order, but [Sprite]’s does have a unique ability: it plays DOOM, as you can see in the video below.

The device uses an ESP32, and while [Sprite] had ported the iconic shooter to the microcontroller before, he decided to use a Game Boy port that is more lightweight instead. There were a few reasons for the choice, including the ability to do Bluetooth so you could connect controllers so you can play the game. The only catch was he had to pull off the flash memory and replace it with a larger one (see the second video below).

Granted, the screen is tiny, so it is sort of a novelty. But if you want to have a go, the files are all there. As you might expect, there is a tiny battery and the circuitry required to recharge it, as well. We’d probably make an adapter to let it charge from the Christmas lights, but that can wait for version 2.

The input device handling is a bit strange. Bluetooth BLE devices will automatically grab an input device that is in pairing mode. There is no provision for connecting using the “normal” Bluetooth mechanism. A fun project and you could use the case for some other tiny projects, too. A larger flash on an ESP32 has lots of possibilities, as well.

If you need a primer on the ESP32, we got it. If you want to play DOOM on something truly strange, try seven-segment displays.

Continue reading “Merry Christmas! Rip And Tear!”

A smartphone-sized PCB is in a person's hand. A large blue chip package houses a 486 and the board has a SoundBlaster card and a 40 PIN Raspberry Pi Connector along one edge for attaching a Raspberry Pi Zero.

TinyLlama Is A 486 In Your Pocket

We love retrocomputing and tiny computers here at Hackaday, so it’s always nice to see projects that combine the two. [Eivind]’s TinyLlama lets you play DOS games on a board that fits in your hand.

Using the 486 SOM from the 86Duino, the TinyLlama adds an integrated Crystal Semiconductor audio chip for AdLib and SoundBlaster support. If you populate the 40 PIN Raspberry Pi connector, you can also use a Pi Zero 2 to give the system MIDI capabilities when coupled with a GY-PCM5102 I²S DAC module.

Audio has been one of the trickier things to get running on these small 486s, so its nice to see a simple, integrated solution available. [Eivind] shows the machine running DOOM (in the video below the break) and starts up Monkey Island at the end. There is a breakout board for serial and PS/2 mouse/keyboard, but he says that USB peripherals work well if you don’t want to drag your Model M out of the closet.

Looking for more projects using the 86Duino? Checkout ISA Sound Cards on 86Duino or Using an 86Duino with a Graphics Card.

Continue reading “TinyLlama Is A 486 In Your Pocket”

Hackaday Links Column Banner

Hackaday Links: October 30, 2022

Sad news for kids and adults alike as Lego announces the end of the Mindstorms line. The much-wish-listed line of robotics construction toys will be discontinued by the end of this year, nearly a quarter-century after its 1998 introduction, while support for the mobile apps will continue for another couple of years. It’s probably fair to say that Mindstorms launched an entire generation of engineering careers, as it provided a way to quickly prototype ideas that would have been difficult to realize without the snap-fit parts and easily programmed controllers. For our money, that ability to rapidly move from idea to working model was perhaps the strongest argument for using Mindstorms, since it prevented that loss of momentum that so often kills projects. That was before the maker movement, though, and now that servos and microcontrollers are only an Amazon order away and custom plastic structural elements can pop off a 3D printer in a couple of hours, we can see how Mindstorms might no longer be profitable. So maybe it’s a good day to drag out the Mindstorms, or even just that big box of Lego parts, and just sit on the carpet and make something.

Continue reading “Hackaday Links: October 30, 2022”

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.

Recreating DOOM On A Homebrew 8-Bit CPU

[James Sharman] has been working away on a 8-bit CPU of his own design. Naturally, with his computing device largely functional, the obvious question was asked: can it run DOOM? [James’] latest video explores this question, showing just how close he was able to get.

[James’] 8-bit pipelined CPU also has its own UART, VGA adapter, and sound adapter all built up on discrete components on various PCBs. There’s also a custom interface for a SNES controller as an input device. However, it’s fundamentally well below the specs that DOOM originally required at launch. His 8-bit CPU runs at just 4 MHz, with 64 KB of RAM. This compares poorly to the 32-bit, 33 MHz Intel 386 chips and 4 MB of RAM originally recommended to run the game.

In lieu of running the real thing, [James] demonstrated the limitations of his machine by coding his own demo, nicknamed Doomed. It’s able to average 19 fps video output at a resolution of 80×60, and consists of over 5,000 lines of hand-written assembly code. Fundamentally, it’s a basic 3D engine not dissimilar to Wolfenstein 3D, though without any actual gaming interactions involved.

[James] could have simply stated the machine won’t run DOOM. However, trying to get something similar up and running was a useful learning experience, and in his own words, highly satisfying. This attitude of pushing on in the face of adversity is what propels many other DOOM porting efforts.

Continue reading “Recreating DOOM On A Homebrew 8-Bit CPU”

DOOM Runs On The EMFCamp Tidal Badge

If it’s got a chip and a screen, someone’s trying to run DOOM on it. The latest entry in this fad is from [Phil Ashby], who figured out how to get the game running on the EMFCamp Tidal Badge as seamlessly as possible.

The badge is based on the ESP32-S3. It’s the latest version of the ESP32, which can run the iconic shooter pretty easily. However, [Phil] set himself a trickier challenge. He wanted to port DOOM to the badge while having it remain compatible with the MicroPython platform already on it. Plus, he wanted to be able to distribute it easily with the TiDAL Hatchery, a platform for sharing apps for the badge.

In the end, it took some deft hacking to make the game run on a microcontroller platform that isn’t really set up for running “applications.” It took some tricks to scale the video output and get the colors right, of course, but it’s there and working.

The state of the art is now so advanced that they managed to port DOOM into DOOM so you can DOOM while you DOOM. Video after the break.

Continue reading DOOM Runs On The EMFCamp Tidal Badge”