Ice40 Runs DOOM

Spec sheets are an important tool in determining the performance of a given part or system, but they’re not the be all and end all when it comes to engineering. However, specs alone don’t prove whether a given system can complete a given task. Sometimes, you need to actually do the work to prove it instead – as [Sylvain] has done, running DOOM on the iCE40 FPGA.

DOOM’s minimum specifications demand a 386 with 4MB RAM minimum, but it’s commonly agreed that a 486 DX2 running at 66MHz with 8MB of RAM is required to play the game smoothly. With an iCEBreaker v1.0b running a RISC V softcore at 25MHz, it may seem like a difficult task, but the RISC V core has the benefit that many instructions run in a single clock cycle that take many on the 486. While the iCEBreaker doesn’t have much RAM onboard, it’s a simple job to piggyback an 8MB SPI device on top of the existing flash storage. Control of the game is via keystrokes sent to the iCEBreaker over serial, while video is handled over a PMOD video interface with an HDMI connector.

[Sylvain] does a great job of explaining all the minute details of the work that was required to get things working, and has provided files on Github for those keen to replicate the feat or expand upon the code. Music is notably absent but MIDI output could likely be achieved without much hassle. “Does it run DOOM?” is still a question asked of many platforms, even the new Nintendo Game & Watch. Video after the break.

Continue reading “Ice40 Runs DOOM”

The DOOM Chip

It’s a trope among thriller writers; the three-word apocalyptic title. An innocuous item with the power to release unimaginable disaster, which of course our plucky hero must secure to save the day. Happily [Sylvain Lefebvre]’s DOOM chip will not cause the world to end, but it does present a vision of a very 1990s apocalypse. It’s a hardware-only implementation of the first level from id Software’s iconic 1993 first-person-shooter, DOOM. As he puts it: “Algorithm is burned into wires, LUTs and flip-flops on an #FPGA: no CPU, no opcodes, no instruction counter. Running on Altera CycloneV + SDRAM”. It’s the game, or at least the E1M1 map from it sans monsters, solely in silicon. In a very on-theme touch, the rendering engine has 666 lines of code, and the level data is transcribed from the original into hardware tables by a LUA script. It doesn’t appear to be in his GitHub account so far, but we live in hope that one day he’ll put it up.

“Will it run DOOM” is almost a standard for new hardware, but it conceals the immense legacy of this game. It wasn’t the first to adopt a 1st-person 3D gaming environment, but it was the game that defined the genre of realistic and immersive FPS releases that continue to this day. We first played DOOM on a creaking 386, we’ve seen it on all kinds of hardware since, and like very few other games of its age it’s still receiving active development from a large community today. We still mourn slightly that it’s taken the best part of three decades for someone to do a decent Amiga port.

Doom Clone Shows What An Alternate-Reality Amiga Could’ve Had

Can you run Doom on the Amiga? No, not really, and arguably that was one of the causes for the computer’s demise in the mid-90s as it failed to catch up on the FPS craze of the PC world. [Krzysztof Kluczek] of the Altair demogroup has managed not exactly to remedy that status with the original article, but to show us how a potential contender could’ve been designed for the unexpanded Amiga hardware back in the day.

Many developers tried to emulate the thrill and ambiance of the id Software shooter, but they all required high-end Amigas with faster processors and expanded memory, limiting their player base on an already diminished demographic. Not only that, but even with fancier hardware, none of them quite managed to match how well Doom ran on your run-of-the-mill 486 at the time. [Krzysztof] isn’t trying to port Doom itself, but instead creating an engine custom-designed to take advantage of, and minding the limitations of the OCS Amiga as it existed in 1987. The result is Dread, a 2.5D engine that resembles the SNES port of Doom and uses assets from the Freedoom project in order to remain copyright-abiding.

It might not be Doom, but it’s a good peek at what the 33-year old hardware could’ve done in the right hands back then. Technically it already surpasses what the Wolfenstein 3D engine could do, so there’s an idea if someone ever aims to make a straight up port instead of their own game. If you like seeing Doom run on machines it wasn’t meant to, boy do we have some posts for you. Otherwise, stick around after the break for two videos of Dread’s engine being demonstrated.

Continue reading “Doom Clone Shows What An Alternate-Reality Amiga Could’ve Had”

DooM Retrospective: 25 Years Of Metal

Metal is many things. A material hard and coarse in nature that by forging it in fire becomes sharp enough to cut through anything in its path. The music that bares its namesake is equally cutting and exudes an unyielding attitude that seeks to separate the posers from the true acolytes. Metal is the sentiment of not blindly following the rules, a path less taken to the darker side of the street. In videogame form, there is nothing more metal than Doom.

The creators of Doom, id Software, were always hellbent on changing the perception of PC gaming in the 1990s. Games of the time were rigid and slow in comparison to their console counterparts. The graphical fidelity was technically superior on PC, but no other developer could nail movement in a game like id. The team had made a name for themselves with their Commander Keen series (which came about after a failed Super Mario Bros. 3 PC demo) along with the genre defining Wolfenstein 3D, but nothing topped Doom. In an era that was already soaking with “tude”, Doom established an identity all its own. The moody lighting, the grotesque monster designs, the signature push forward combat, and all the MIDI guitars a Soundblaster could handle; Doom looked and felt a cut above everything else in 1993.

In December of that year, Senators Joe Lieberman and Herb Kohl held a hearing to publicly condemn the inclusion of violence in videogames sold in America. The bulk of the arguments sought to portray the videogame industry and its developers as deviants seeking to corrupt the nation’s youth. Id Software responded as if to raise the largest middle finger imaginable, by releasing Doom to the world the very next day. A quarter of a century later people are still talking about it.

Continue reading “DooM Retrospective: 25 Years Of Metal”

Doomed Incandescent Light Blinker

[Jānis]’s entry for the Flashing Light Prize was doomed from the start. Or should we say Doomed? It was a complicated mess of Rube-Goldbergery that essentially guaranteed that he’d have no time for making a proper video and submitting and entry. But it also ran Doom. Or at least ran on Doom.

(Note: [Jānis] sent us this hack in the e-mail — there’s no link for this blog post. You’re reading it here and now.)

It starts with a DC motor salvaged from a DVD player that spins a wheel that flips a switch back and forth, which in turn flips the polarity of the power on the motor. It’s like a most-useless machine, but with no human involved. This contraption periodically presses a button on a gutted mouse.

Pressing the mouse button on one computer fires a rocket in a multiplayer Doom game, and triggers a light on a wall when it does. A second Doom player, on another computer, sits facing the wall. Solar cells dangled in front of Player 2’s monitor emit high and low voltages as the LCD blinks on and off. That output goes into the ADC of an Arduino clone that drives a transistor that drives a relay that turns on and off a lightbulb.

We had a lot of fun watching all of the entries for the Flashing Light Prize, and we were also stoked by the presence of so many Hackaday regulars in the Honourable Mention list. (Sad to see [Sprite]’s ping-flasher didn’t make the cut!)

If you, like [Jānis] are still sitting on a design, don’t fret. It looks like the prize will make a return next year. Woot!

Continue reading “Doomed Incandescent Light Blinker”

Sansa MP3 Player Runs Doom Unplayably

DOOM, is there anything it won’t run on? Yes. Your front lawn cannot currently play DOOM. Pretty much everything else can though. It’s a testament to the game’s impact on society that it gets ported to virtually every platform with buttons and a graphical screen.

This video shows a Sansa Clip playing DOOM, but it’s only just barely recognizable. The Sansa Clip has a single color screen, with yellow pixels at the top and grey for the rest of the screen. The monochrome display makes things hard to see, so a dithering technique is used to try and make things more visible. Unfortunately it’s not particularly effective, and it’s difficult to make out little more than the gun at the bottom of the screen.

Continue reading “Sansa MP3 Player Runs Doom Unplayably”