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.

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!]

25 thoughts on “Sansa MP3 Player Runs Doom Unplayably

  1. It’s much better on the Sansa Clip Zip, which has a color screen — it’s actually quite playable, as well as many other games included in RockBox, and the GameBoy Color emulator that is built into it.

    1. One of my favorite things about rockbox on the clip zip is that it updates the directory in the background, instead of having to wait for five or ten minutes every time you add new music. Also cool is the ability to still be able to boot up the original firmware if you want.

    2. I have a couple of old Sansa e250s with Rockbox, and iirc Doom is much more playable on that as well. I spent a lot more time playing Gameboy games on it, though. I need to figure out what I did with the weird proprietary charge cable. (They used the same 30-pin connector as the iPod, but with a different pinout.)

  2. Rockbox + sansa clip is epic, esp the feature to speak menus etc, I m suffering from recurrent corneal erosions and spend some days in blindness but thx to rockbox browsing menus and music collection/audiobooks is freakin easy in ‘blind’ mode ;-}

      1. when I am on ‘blind-mode’ the voice over is not that helpful (I don’t even know blind-typing).

        I had a mac and I tried to use this mode, but keep in mind none of the apps and web are designed for disabled people, try to browse the web on voiceover – *if* you manage to find a page without even f* ads, well even is shit under text mode (lynx browser + TTS) so that time my only entertaining is devices that have buttons like the sansa-clip(with TTS) and a small radio.
        Once I knew a blind guy, he could manage very weel during 80s/90s , msdos + TTS and for communication the apps and even the BBS had easy menus that could read by the TTS.

  3. Why not just start with a color MP3 player?

    The Sansa Fuze has a color screen, similar if not better specs to the Clip. I bought it because it had a memory expansion slot, and would do .ogg files. I wish I’d bought a spare before they disappeared, now most standalone MP3 players are quite low end, lacking features. But even if I had a smartphone, the MP3 player of choice apparently, you may not get the same capacity.

    And yes, there’s a Rockbox port for the Fuze.


  4. I remember doing this when I got my sansa clip+ about 4 years ago. I also remember the game getting stuck and having to wait for the 15-hour battery to die before I could reboot it. Good times!

      1. Not when it’s really frozen. I had that happen with my Sansa e250 (the clip+’s big brother) on a number of occasions, both on the original software and with Rockbox (though it seemed to happen less with Rockbox) and it wouldn’t respond to the power button even when held for over a minute. Letting the battery run down was the only way I could figure out to get it going again.

  5. My Clip wouldn’t play flac as the site said it would. I updated the OS and it now plays flac, that was all I wanted. I am familiar with Rockbox for getting flac on play on appall etc. Putting rockbox on something like an old i-pod seemed too hard. My Android phone plays flac and high def.

  6. been running rockbox on my 5th gen ipod for a very long time. i rather like that i can just drop files on it and go and dont have to fumble around with itunes. doom runs just fine, if you can tolerate the limited controls (but ive seen serial hacks to rectify this issue). you could probibly go through the wad files and replace the textures with ones that would look better on a monochromatic screen.

    i for one wouldn’t mind seeing a rockbox based open source mp3 player. some people have build them but as far as i know, there is no production model. my g5 ipod wont last forever.

    1. Same here. Ran Rockbox on a 5.5G iPod and fell in love with the Meier crossfeed feature (goodbye, listening fatigue!) Plus it plays everything, and it lets you sort your library however you like.

      Later on I upgraded to a Clip Zip (also Rockboxed) for the microSD slot and smaller size. I’m still using it as of today.

  7. One thing I’d try to do to improve the image quality is to equalize the colour spectrum of each frame before turning it to black and white with the dithering. I did this trick in the past to watch a webcam from an old gprs phone and it worked well.

    1. Doom isn’t rendered with polygons, so it’s not as simple as just using wireframes. There are no wireframes. You’d have to detect where to put them in each image. And to do that consistently. Maybe if you went through the WAD and altered the game data significantly you could perhaps simplify the textures. Would be a LOT of work though.

      Still, Quake released the source, I think.

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.