4 Replies Latest reply on Feb 2, 2015 11:22 AM by Paridhi_Agrawal

    Built a little Edison video game console running Doom

    llatta

      Hi Edison community!

      I've got a display, sound output and bluetooth input working, and running at high enough performance to nicely play a video game like Doom on the Edison.

       

      I've put a video, lots of details and source code up on my website. http://2ld.de/edidoom/

       

       

      Thanks for all the posts in this forum, that helped me a lot getting this off the ground!

       

      Let me know what you think, and feel free to post questions here.

       

      Cheers,

         Lutz

        • 1. Re: Built a little Edison video game console running Doom
          smaguire

          Great Job!!

           

          I did  something similar a while back (albeit without controller ) using native FBTFT kernel module for the frame buffer and SDL abstraction layer.  This allowed me to use chocolate-doom for doom1/2 etc and ALSA audio.

           

          I had the same issues with performance, although I was using SPI connection.

           

          Here's a link if you're interested.

           

          https://communities.intel.com/thread/57693?start=0&tstart=0

           

          You can add the panel you used to FBTFT (if not already there).  Would be interesting to see if you get the performance your after since FBTFT is kernel module based and using GPIO directly.

           

          Well done again!

          Stew

          • 2. Re: Built a little Edison video game console running Doom
            ronopotomus

            Nice job! I'm new and this is blowing my mind Wish me luck!

            • 3. Re: Built a little Edison video game console running Doom
              llatta

              Thanks Stewart!

              I think I noticed your post about running Doom, when I was about half way done with my project. At first I thought "oh, someone's already doing this", but it became clear we had different goals when you said that you didn't intend to make a PS Vita with this, and I kind of did... You're projects sound really interesting though!

               

              But I agree, that getting Doom to compile/run wasn't the challenge (that took like half a day in my environment), but getting performance out of the display was the interesting part. What kind of frame rate did you get with FBTFT?

              I thought about writing a kernel interface, like a framebuffer device or something custom. Some simple tests showed it wouldn't be faster, so I saved myself the headache with poor debugging and high turnaround time... took like 30 minutes from writing code till having a flashed new kernel running. I hope there are better workflows, maybe when writing a module it's much better?

              The performance test I made was moving the code to clear the whole screen with a single color directly into the kernel GPIO driver (gpio-langwell.c). As a super hack when a pin with a certain pin number would be written, it would actually kick off the test code and write repeatedly as quickly as possible to all the data pins for a full screen fill. It ended up taking exactly as long as the memory mapped IO version from user space. It must be just bound by the bus speed of that memory.

               

              It would probably still be interesting to move the 8-bit display code into FBTFT, so that other programs could use the display easily without code modifications. Feels a bit more like productization instead of hacking though, so a little less fun

              • 4. Re: Built a little Edison video game console running Doom
                Paridhi_Agrawal

                HI smaguire , llatta,

                 

                Can you please elaborate on steps you took to have FBTFT as a loadable module on board?  I am currently using IOT-devkit image which is already compiled image, so can you help me load FBTFT on this image?

                 

                Thanks

                 

                Paridhi