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.
The stunt is achieved through the use of RockBox, a custom firmware for a wide variety of media players, from Apple to Toshiba. Through no small amount of effort, developers would reverse engineer different media players, often by disassembly of both hardware and firmware. Generally, the first steps involve determining the make and model of the controller, along with identifying how to access its programming pins & how to bypass any firmware protection that might be in place. Armed with this knowledge, they could then set about porting the RockBox code. The amount of effort poured into the project is staggering, as evidenced by this documentation for just one Rockbox port.
Rockbox also supports plugins to add functionality. One of these is Rockdoom, which acts as a basic DOOM engine that can load WAD files and play the game. Thus, if you’re keen to duplicate the hack, start out by porting Rockbox to your media player, and then download the Rockdoom plugin.
For another great example of custom firmware running on an obscure platform, check out [Sprite-TM]’s talk on hacking hard drive controller chips.
[Thanks to Itay for the tip!]