Proving that the Intel Edison is really a full Pentium-class PC, Lutz has successfully ported Doom to the tiny board. For those who aren’t quite as old as I am and are unfamiliar with the classic title, Doom literally blew away gamers in 1993 with a combination of fast paced action and, for the time, mind-blowing graphics. To port Doom to the Edison, Lutz had to solve to two major issues: driving a TFT display and outputting sound.
Solving the Video Output
Writing a driver for the display proved to be the largest effort, as no existing software provided fast enough solutions for hooking up this TFT display to the Edison. The starting point was the Arduino example code from Adafruit, described in their tutorial (8-bit wiring version). This together with custom code to quickly set the output pins on the Edison, based on the internals from Intel’s MRAA library proved successful.
Solving the Sound Output
The sound solution proved to be much easier than video output, thanks to a Make: tutorial by Jon Thompson on advanced Arduino sound synthesis. Once Lutz got a few tips and tricks from the article, successfully modifying the design to suite the Edison and Doom’s specific 11025 8-bit samples per second wasn’t insurmountable.
One of the best things about the project is that Lutz has made the graphics code and sound code available to the rest of us. Check out the repositories and let us know if you’ve been able to repeat this great Edison project in the comments. We’d love to see a schematic for the entire build!
2 thoughts on “Edidoom: Intel Edison Running Doom”
Is this supposed to be impressive?
Take a look at Doom running on the VoCore, a smaller chip without a massive breakout board.
The LCD is hooked up with SPI so the frame rate is at least eight times slower than it could be if I could find 8 gpio for a parallel hookup. Also, I bothered to scale the screen so it fills the LCD which also slows down drawing compared to just cropping the bottom 40 lines!
Oh and here it is running on a tiny Nokia 6100 LCD to show that the limiting factor is the SPI bus pushing pixels to an LCD. (I had to slow it down to reach this speed)
Game still scares the bejeebus out of me!
Comments are closed.