Friday 13 May 2016

NES + Pi = Awesome!

A few years ago I got my Raspberry Pi Model B, my plan was just to tinker with it and see what it could do.  Operating system wise I knew what to expect, I'm a programmer and used Suse and Ubuntu as my main desktop for a few years, as well as for work - but hardware wise I'd never owned anything like the Pi before so I was excited! 

After a few weeks of playing with it, trying various distros (such as raspbmc that turned the Pi into a kodi media player), life kind of got in the way a bit - so it just gathered dust in a box for about a year.  
A little while later I remembered about it, and that was when I decided to show my eldest son what console games I played at his age!  I got a few USB SNES pads on Amazon, loaded a few emulators and it was alright, but not great... then I found the RetroPie project!  If you've not heard of it, RetroPie uses various open source projects such as EmulationStation, RetroArch and a Raspbian OS to create a pre-configured emulation console.  It's a very easy to use UI based on XBM system (think PS3 menu), with in-built emulator cores, and some nice features like box art / meta data scrapers.  

I was blown away by it - took less than 5 minuts to download / install, and it was easier for my 5 yr old to use than the Wii or xbox 360.  I loved seeing box art for games I'd not seen/played in 3 decades - it jogged a lot of memories!! 

So - fast forward to last month - I have set myself up a desk in the dining room, it's become the "dad-corner".  To go in the dad corner my kids created me some Mario pixel-art from hama beads to decorate it which looked awesome, so I got an idea - what if I had a NES box to go in the corner too?  I loaded eBay up and bought myself a faulty NES box for £30, with the intention of using it as a retro case for my Pi.  The NES box is the perfect retro case for a pi - it's just pure 80s gaming!  



Realising I've actually put cash into this now, I decided to get serious  so I started to make a list of the things I want out of the project - a requirement spec.  
  1. Externally it has to look authentic, no visual clues from the front that it isn't a standard NES
  2. I need proper NES controllers for the front ports, otherwise we fail #1
  3. The front power switch needs to be functional! Because my 7 yr old will use this too, it needs to be as user friendly as a console. For that reason, the LED indicator has to work too!
  4. For 16bit and greater consoles I really would like additional hidden ports at the back, or wireless pad capability so we can use 6+ button pads.
  5. I want to keep the cartridge loader!  There is no reason for it, it doesn't have to function - but it feels wrong to not be able to open the front, take a cartridge, insert it in and click down!
Incidentally there was 6th requirement, but it got removed after a little digging into it.  I wanted a working light gun for duck hunt.  I realised there may be issues with differences in TV technology now, so checked how it worked.  The gun uses very precise timings used in CRTs to coordinate flashing up of a binary image with the press of the trigger, with the reading from the light sensor in the barrel of the gun.  The NES and CRTs were very predicable timing wise, which is why this method worked well - but modern TVs, and running games through emulators mean this is very unlikely to work most of the time, if at all.

Obviously I realised I might not be alone in wanting to do all this, I've seem GameBoy mods in the past with a small LCD display and a Pi, so I searched around for projects similar to mine, and there were several!  People mostly did similar things, some remove front ports, some don't use the front buttons, but every single one removed the cartridge loader.  Each project seems slightly different to the others.


I didn't want to be influenced too much by the others who've done this before me so I've tried not to read into the details too much, but I think there should be enough room in the box for the pi and a usb hub around the loader, so I'll try my best to keep that in!  

I'm involving my son in the build (as a learning exercise), he's just turned 7 and is very eager to help - so progress will likely be slow as it'll be restricted to a few hours every weekend.  

I'll be documenting the project on here as we do it, and there will be less waffle from me, and more pictures / build details!  

No comments:

Post a Comment